Version française
Home     About     Download     Resources     Contact us    
Browse thread
Wanted: more feedback on the non-hierarchy candidate of Batteries
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: David Teller <David.Teller@u...>
Subject: Wanted: more feedback on the non-hierarchy candidate of Batteries
[Sorry for double-post, this message deserved its own thread]

      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
   Latest News of French Research: System being liquidated. Researchers angry.