caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: David Teller <David.Teller@univ-orleans.fr>
To: OCaml <caml-list@inria.fr>
Subject: Re: [Caml-list] Wanted: your feedback on the hierarchy of OCaml Batteries Included
Date: Thu, 20 Nov 2008 22:12:20 +0100	[thread overview]
Message-ID: <1227215540.7676.23.camel@Blefuscu> (raw)
In-Reply-To: <1227002178.6170.25.camel@Blefuscu>

Dear list,

 Feedback from active members of the list (and a few other shy people
who seem to prefer answering off-list:)) seems to indicate that
Batteries shouldn't have a general hierarchies of modules but rather a
flat list of modules with a few submodules here and there, along with a
documentation allowing navigation by topics. While that's not my
personal judgement, I'm willing to go along.

So here's a reworked map of the library, along with a few placeholders
to get an idea of where upcoming modules will fit. Text version follows
and html version available on-line:
http://dutherenverseauborddelatable.wordpress.com/2008/11/20/ocaml-batteries-included-the-hierarchy-reloaded/
. While I personally find this solution a little clumsier than the
previous hierarchy, ymmv. Again, feedback is appreciated.


If anyone is willing to work on a solution for linking documentation
from third-party libraries into one transparent source, as suggested by
Richard Jones, please contact me. I'm sure it is feasible, with a
(un)healthy dose of JavaScript, but I'm not sure that current members of
Batteries have enough brainpower available to work on this on top of
Batteries.

Cheers,
 David

Batteries (pack)
     1. Standard (automatically opened)
     2. Legacy 
             A. Arg
             B. Array
             C. ...
     3. Future (things that should become standard eventually)
             A. Lexers 
                     I. C
                    II. OCaml
        
        =====  I. Control =====
     4. Exceptions
     5. Return
     6. Monad (Interfaces for monadic operations )
              ==== I.1. Concurrency ====
     7. Concurrency (Interfaces for concurrency operations)
              === I.1.i. Built-in threads ===
     8. Condition
     9. Event
    10. Mutex
    11. RMutex
    12. Thread
    13. Threads (A module containing aliases to Condition, Event...)
              === I.1.ii. coThreads ===
    14. CoCondition
    15. CoEvent
    16. CoMutex
    17. CoRMutex
    18. CoThread
    19. CoThreads (as Threads but with implementations coming from
        coThreads)
              === I.1.iii. Shared memory ===
    20. Shm_* (Placeholders)
              ===== II. IO =====
    21. IO 
             A. BigEndian 
    22. Codec (common interfaces for compressors/decompressors)
    23. GZip
    24. Bz2
    25. Zip
    26. Transcode  (Unicode transcoding)
              ===== III. Mutable containers =====
    27. Array 
             A. Cap 
                     I. ExceptionLess
                    II. Labels
             B. ExceptionLess
             a. Labels
    28. Bigarray 
             A. Array1
             B. Array2
             a. Array3
    29. Dllist
    30. Dynarray
    31. Enum 
             A. ExceptionLess
             a. Labels
    32. Global
    33. Hashtbl 
             A. Make 
                     I. ExceptionLess
                     i. Labels
        
         
        =====  IV. Persistent containers ======
        
        
    34. Lazy
    35. List 
             A. ExceptionLess
             B. Labels
    36. Map 
             A. Make 
                     I. ExceptionLess
                    II. Labels
    37. Option 
             A. Labels
    38. PMap
    39. PSet
    40. RefList 
             A. Index
    41. Queue
    42. Ref
    43. Set 
             A. Make 
                     I. ExceptionLess
                    II. Labels
    44. Stack
    45. Stream  
              ===== V. Data =====
    46. Unit  
              ==== V.1. Logical ====
    47. Bool
    48. BitSet  
              ==== V.2. Numeric ====
    49. Numeric (Interfaces for number-related stuff)
    50. Big_int
    51. Common
    52. Complex
    53. Float
    54. Int
    55. Int32
    56. Int64
    57. Native_int
    58. Num
    59. Safe_float (placeholder)
    60. Safe_int  
              ==== V.3 Textual data ====
    61. Text (Definition of text-related interfaces)
    62. Buffer
    63. Char
    64. UTF8
    65. Rope
    66. UChar
    67. String
    68. StringText (A module containing aliases to String and modified
        Char)
    69. RopeText (As StringText but with implementations from Rope and
        UChar
    70. UTF8Text (As StringText but with implementations from UTF8 and)
        UChar 
             A. Labels
         
              ===== V. Distribution-related stuff =====
    71. Packages
    72. Compilers  
              ===== VI. Internals =====
    73. Gc
    74. Modules
    75. Oo 
             A. Private
    76. Weak 
             A. Make
         
              ===== VIII. Network (placeholders) =====
    77. URL
    78. Netencoding 
             A. Base64
             B. QuotedPrintable
             a. Q
             b. URL
             A. Html
         
              ==== VIII.1. Http ====
    79. Http
    80. Http_client
    81. Cgi_*
    82. Httpd_*
    83. MIME  
              ==== VIII.2. Ftp ====
    84. Ftp_client  
              ==== VIII.3. Mail ====
    85. Netmail
    86. Pop
    87. Sendmail
    88. Smtp  
              ==== VIII.4. Generic server ====
    89. Netplex_*  
              ==== VIII.5. RPC ====
    90. Rpc_*  
              ==== VIII.6. Languages ====
    91. Genlex
    92. Lexing
    93. CharParser
    94. UCharParser
    95. ParserCo 
             A. Source
    96. Parsing
    97. Format
    98. Printf
    99. Str
   100. PCRE (placeholder)
   101. Scanf 
             A. Scanning
   102. SExpr  
              ===== IX. System =====
   103. Arg
   104. File
   105. OptParse 
             A. Opt
             a. OptParser
             b. StdOpt
   106. Path
   107. Shell
   108. Unix 
             A. Labels
   109. Equeue  
              X. Unclassified
   110. Digest
   111. Random 
             A. State
   112. Date (placeholder)

On Tue, 2008-11-18 at 10:56 +0100, David Teller wrote:
> For this purpose, I have posted a
> tree of the current hierarchy on my blog [1].
> 
> [1]
>
http://dutherenverseauborddelatable.wordpress.com/2008/11/18/batteries-hierarchy/ 


-- 
David Teller-Rajchenbach
 Security of Distributed Systems
  http://www.univ-orleans.fr/lifo/Members/David.Teller
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations. 


  parent reply	other threads:[~2008-11-20 21:12 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-18  9:56 David Teller
2008-11-18 10:06 ` [Caml-list] " Richard Jones
2008-11-18 10:21   ` Zheng Li
2008-11-18 11:22     ` David Teller
2008-11-18 12:52       ` Zheng Li
2008-11-18 14:10       ` [Caml-list] " Alain Frisch
2008-11-18 14:19         ` David Teller
2008-11-19  3:06         ` Yaron Minsky
2008-11-19  3:47           ` Till Varoquaux
2008-11-19 10:57           ` Stefano Zacchiroli
2008-11-19 18:05             ` Stéphane Glondu
2008-11-20  0:14               ` Stefano Zacchiroli
2008-11-18 10:29   ` [Caml-list] " Erkki Seppala
2008-11-18 11:34     ` Daniel Bünzli
2008-11-18 11:47       ` Thomas Gazagnaire
2008-11-18 12:15       ` David Teller
2008-11-18 12:32         ` Richard Jones
2008-11-18 12:56           ` David Teller
2008-11-19 13:38           ` Stefano Zacchiroli
2008-11-19 17:37             ` Richard Jones
2008-11-23 10:32               ` Stefano Zacchiroli
     [not found]         ` <9b415f950811180428x2de94a64q6fa92887f8e00705@mail.gmail.com>
2008-11-18 12:51           ` David Teller
2008-12-19 11:00             ` Benedikt Grundmann
2009-01-05 10:40               ` David Teller
2008-11-18 13:24         ` Daniel Bünzli
2008-11-18 14:46           ` David Teller
2008-11-18 12:40       ` David Teller
2008-11-18 13:31         ` Dario Teixeira
2008-11-18 14:23           ` David Teller
2008-11-18 14:40             ` Stefano Zacchiroli
2008-11-19 13:36       ` Stefano Zacchiroli
2008-11-19 14:28         ` Daniel Bünzli
2008-11-19 14:45           ` Paolo Donadeo
2008-11-21 12:37     ` Michaël Le Barbier
2008-11-18 11:17   ` David Teller
2008-11-18 12:22     ` Richard Jones
2008-11-18 12:49       ` David Teller
2008-11-18 15:20         ` Richard Jones
2008-11-18 18:17   ` Jon Harrop
2008-11-18 17:51     ` Nicolas Pouillard
2008-11-18 22:43       ` Jon Harrop
2008-11-18 18:59     ` Richard Jones
2008-11-18 20:17       ` Jon Harrop
2008-11-18 19:22         ` Richard Jones
2008-11-18 19:50           ` Daniel Bünzli
2008-11-18 21:50             ` Richard Jones
2008-11-19 13:48               ` Stefano Zacchiroli
2008-11-19 19:02                 ` Stéphane Glondu
2008-11-18 22:07     ` Alain Frisch
2008-11-18 23:49       ` Jon Harrop
2008-11-18 23:13         ` Alain Frisch
2008-11-19 13:28   ` Stefano Zacchiroli
2008-11-18 23:30 ` Jon Harrop
2008-11-19  6:29   ` David Teller
2008-11-19  8:36     ` Jon Harrop
2008-11-19  9:46     ` Paolo Donadeo
2008-11-19 20:11       ` Maxence Guesdon
2008-11-20  9:28         ` Nicolas Pouillard
2008-11-20 10:33           ` Richard Jones
2008-11-20 10:49             ` open Module (not?) considered harmful Stefano Zacchiroli
2008-11-20 11:29               ` [Caml-list] " David Allsopp
2008-11-20 11:48                 ` Richard Jones
2008-11-20 17:56                   ` Stefano Zacchiroli
2008-11-20 13:01                 ` Nicolas Pouillard
2008-11-20 13:41                   ` Nicolas Pouillard
2008-11-20 16:44                     ` Stefano Zacchiroli
2008-11-21  2:56                       ` Stability of exceptions Eliot Handelman
2008-11-21  7:39                         ` [Caml-list] " Daniel Bünzli
2008-11-21  9:52                         ` Christophe TROESTLER
2008-11-20 14:46                 ` [Caml-list] open Module (not?) considered harmful Ashish Agarwal
2008-11-20 17:54                 ` Stefano Zacchiroli
2008-11-20 11:31               ` Daniel Bünzli
2008-11-23 10:36                 ` Stefano Zacchiroli
2008-11-20 11:41               ` Richard Jones
2008-11-23 10:38                 ` Stefano Zacchiroli
2008-11-23 11:01                   ` Richard Jones
2008-11-20 12:58             ` [Caml-list] Wanted: your feedback on the hierarchy of OCaml Batteries Included Nicolas Pouillard
2008-11-20 21:12 ` David Teller [this message]
2008-11-20 23:18   ` Daniel Bünzli
2008-11-21  9:34     ` David Teller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1227215540.7676.23.camel@Blefuscu \
    --to=david.teller@univ-orleans.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).