On May 31, 2008, at 11:30 AM, Daniel Ehrenberg wrote:
> So, hopefully, we can get Factor 1.0 done this year. This was my goal
> in an unofficial (but no one objected to it yet) roadmap, to have
> Factor done by December 31.
That's my goal too.
> (1) Documentation (2)
> Unit tests (3) Metadata. Maybe (4) Clean code should be added to that
> list, but it's less essential.
I think clean code is essential too.
I think extra/ needs a lot of cleanup, but I have a slightly different
plan to go about it.
The first step is to make a new vocabulary root 'basis'. This would
contain libraries that are essential for a modern programming
language, but don't belong in the core. Examples, in no particular
order:
- Calendar
- XML, JSON, binary serialization
- Concurrency abstractions
- Logging
- Unicode
- Relational database access
- Various data structures such as balanced trees, maybe union-find, etc
- Sockets, monitors, launcher, and other advanced I/O
- HTTP client and server
- FTP client and server
- SMTP client
- Regular expressions
- PEGs
- Units
- UI
- Development tools
- Checksum and crypto algorithms
- Useful language abstractions: locals, fry, ...
Code in basis would be allowed to depend on core but not on extra, and
would only be added there once your criteria are satisfied -- unit
tests, docs, metadata, clean code.
Another requirement for basis would be that all the latest
abstractions must be used and no deprecated features are permitted
(delegation, old slot accessors). Also,
{combinators,assocs,namespaces,arrays}.lib would not be allowed be
used in basis. Instead, code going into basis would be refactored to
use more core abstractions, with the essential parts of *.lib going
into core.
I would also argue that binary packages ship with all the C libraries
required by basis, but this is not essential.
Once basis is complete and documented, we can then do an audit of
extra/.
This partitions the work into two phases: first we audit the essential
parts of extra/, then the rest. I think having something like SMTP or
database access be documented and tested is more important than, say,
mandelbrot fractal or rot13.
Slava
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk