On Thu, 21 Nov 2013 12:29:58 +0100, "Jörg F. Wittenberger"
<joerg.wittenber...@softeyes.net> wrote:

> The attached diff makes the whole thing compile under rscheme too (and 
> run some simple tests).
> No changes where made, which where not strictly necessary to that end.

Excellent!  Thanks so much for your work!
I have a few comments and questions below...
please modify after taking a look at the comments and resubmit.
 
> I'm sure you'll take issues with the positioning of cond-expand'ed stuff.

:-).

> I tried for now to keep the compatibility layer before the actual 
> module.  But that might leak definitions (like the rudimentary guard 
> implementation) outside, which would have to be avoided. For this to we 
> would have to move the whole section into the body of 
> `readable-kernel-module-contents`, right?

Correct. To the extent that we *can*, I think we need to move things inside
the macro that creates the module to minimize leakage.  So if you would please
maximally move the macro definitions inside the module creation macro,
that'd be great.

I'm pretty sure we cannot put the "create a module" macro inside the module.
Guile's "define-module" lets us scope things, but I doubt that
approach will work everywhere else.  I don't see how to avoid that.
But if we have to leak names, hopefully it'll be just
be a single "readable-kernel-module-contents" macro, which is rather
unlikely to conflict elsewhere :-).
Someday in the great grand future all Scheme implementations will
implement a standard module system.
Then we wouldn't have the problem... but today is not that day.

I really don't like how "translate-cl" was changed.  I strongly prefer:
  (define (translate-cl x)
over:
  (define translate-cl   ...  (lambda (x) ... ))
because it's MUCH easier in the first format to determine that this is
a procedure that accepts exactly one parameter.
Also, the patched version will calculate 3 values on every entry;
the case should compute and return ONLY what it needs to compute.
I presume that this isn't working:
    '+++CL-QUASIQUOTE-abbreviation+++
but you could replace *just* that with this format, yes?:
   (string->symbol "+++CL-QUASIQUOTE-abbreviation+++")

Why all the redefines from "body" to "read-body"?
We normally use the same name as per the grammar.
We could do that if it's important to port to rscheme,
I just want to know why before making the change.
I presume you had a reason; if so, we need to
document why this is an exception to the naming convention.
Basically, just add a comment at the definition of "read-body"
to explain why the naming convention is NOT being followed.

Could you resend the patch, per those comments?
Overall this looks really promising.

--- David A. Wheeler

------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing 
conversations that shape the rapidly evolving mobile landscape. Sign up now. 
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to