OCaml Batteries Included: The Hierarchy, reloaded
November 20, 2008 § Leave a Comment
Well, my previous post on the Hierarchy of OCaml Batteries Included certainly triggered reactions. Essentially, judging from these, the OCaml community doesn’t seem to want of a module hierarchy. So here’s a reworked version of the library layout, without hierarchy. Again, feedback is appreciated and should go to the OCaml mailing-list.
Batteries
- Standard (automatically opened)
- Legacy
- Arg
- Array
- …
- Future
- Lexers
- C
- OCaml
I. Control
- Lexers
- Exceptions
- Return
- Monad Interfaces for monadic operations
I.1. Concurrency
- Concurrency Interfaces for concurrency operations
I.1.i. Built-in threads
- Condition
- Event
- Mutex
- RMutex
- Thread
- Threads A module containing aliases to Condition, Event…
I.1.ii. coThreads
- CoCondition
- CoEvent
- CoMutex
- CoRMutex
- CoThread
- CoThreads as Threads but with implementations coming from coThreads
I.1.iii. Shared memory
- Shm_* Placeholders
II. IO
- IO
- BigEndian
- GZip
- Bz2
- Zip
- Transcode
III. Mutable containers
- Array
- Cap
- ExceptionLess
- Labels
- ExceptionLess
- Labels
- Cap
- Bigarray
- Array1
- Array2
- Array3
- Dllist
- Dynarray
- Enum
- ExceptionLess
- Labels
- Global
- Hashtbl
- Make
- ExceptionLess
- Labels
IV. Persistent containers
- Make
- Lazy
- List
- ExceptionLess
- Labels
- Map
- Make
- ExceptionLess
- Labels
- Make
- Option
- Labels
- PMap
- PSet
- RefList
- Index
- Queue
- Ref
- Set
- Make
- ExceptionLess
- Labels
- Make
- Stack
- Stream
V. Data
- Unit
V.1. Logical
- Bool
- BitSet
V.2. Numeric
- Numeric Interfaces for number-related stuff
- Big_int
- Common
- Complex
- Float
- Int
- Int32
- Int64
- Native_int
- Num
- Safe_float placeholder
- Safe_int
V.3. Textual
- Text Definition of text-related interfaces
- Buffer
- Char
- UTF8
- Rope
- UChar
- String
- StringText A module containing aliases to String and Char1
- RopeText As StringText but with implementations from Rope and UChar
- UTF8Text As StringText but with implementations from UTF8 and UChar
- Labels
VI. Distribution-related stuff
- Packages
- Compilers
VII. Internals
- Gc
- Modules
- Oo
- Private
- Weak
- Make
VIII. Network (placeholders)
- URL
- Netencoding
- Base64
- QuotedPrintable
- Q
- URL
- Html
VIII.1. Http
- Http
- Http_client
- Cgi_*
- Httpd_*
- MIME
VIII.2. Ftp
- Ftp_client
VIII.3. Mail
- Netmail
- Pop
- Sendmail
- Smtp
VIII.4. Generic server
- Netplex_*
VIII.5. RPC
- Rpc_*
VIII.6. Languages
- Genlex
- Lexing
- CharParser
- UCharParser
- ParserCo
- Source
- Parsing
- Format
- Printf
- Str
- PCRE place-holder
- Scanf
- Scanning
- SExpr
IX. System
- Arg
- File
- OptParse
- Opt
- OptParser
- StdOpt
- Path
- Shell
- Unix
- Labels
- Equeue
X. Unclassified
- Digest
- Random
- State
- Date placeholder
- 1
- Actually a slightly modified version of Char to match signatures for Latin-1 and Unicode
OCaml Batteries Included, release 0: Where it should all have begun
August 29, 2008 § Leave a Comment
After a few discussions on IRC, by e-mail and on forums, I have come to realize that both the purpose of Batteries Included and what the development of Batteries involved were quite unclear to most people — and that we should probably have started our work in quite a different manner. All these discussions have prompted a few changes and the release of a first pre-version of Batteries Included, which you may find on the OCamlForge project (you may also browse source code here and API documentation here).
This release represents what we should have produced in the first place; a simple and uniform presentation layer on top of existing libraries.