Alan Manuel Gloria:
> Ah, I see.  My main concern was that the current module structure has
> sugar separately loadable from modern, so I thought you wanted to
> retain that, but use a more Scheme-y interface.  So if you prefer to
> have complete integration of modern into sugar, that's fine.  You lose
> the ability to get just sugar without modern, but who'd want that? ^^;

In fact, I think we do NOT want it.

That kind of generality has a cost in complexity of interface, and would make 
certain kinds of integration more difficult (e.g., for performance).

Also, if someone wants indentation processing, I really want them to get "the 
whole package".  Otherwise, if people mix-and-match it will be harder to figure 
out what reader semantics a given piece of code requires.

> Actually, the main purpose of that is to support the current usage of
> (use-modules (sugar)).  Currently, this importation auto-enables the
> syntax at the REPL and all future use-modules.  So the modules are
> just convenience modules, possibly for interactive usage, where you
> just suddenly load (use-modules (sweet)) and then switch to using
> sweet-expressions.
> 
> Basically, instead of doing (use-modules (readable sweet-impl))
> (replace-read modern-read) you just type in (use-modules (readable
> modern)).  Otherwise, it's just a convenience module that does not
> need to be ported at all, and even if ported is just composed of the
> single expression (replace-read modern-read) or (replace-read
> sweet-read), which I think is ridiculously trivial to port.

Okay, that makes sense.

What about putting all the "-impl" stuff in one module, perhaps call it 
(readable base), and then having separate modules for the various convenience 
enablers: (readable curly-infix), (readable modern), (readable sweet)?

While obviously the code *could* be split into more modules, including one 
module for each tier's implementation, the annoyances of porting to all the 
module systems worries me.  If it's all in one module, if someone just can't 
get the convenience systems working on another Scheme implementation, they can 
still just (load ..) the file and invoke them directly.  Also, when they're in 
one module, they can exploit private information to get the job done 
efficiently.  We can order the code so (curly, then modern, then 
sweet-expressions) so that if we want to divide it up later we could do so. 

--- David A. Wheeler

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to