[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Deviations from the Standard
From: |
Thomas Bushnell BSG |
Subject: |
Re: [Chicken-users] Deviations from the Standard |
Date: |
Wed, 05 Aug 2009 19:01:34 -0700 |
On Wed, 2009-08-05 at 20:24 -0400, Sam Varner wrote:
> Stage 2 of my nit-picking tour through the Chicken docs;)
>
> In "Deviations from the standard"
> http://chicken.wiki.br/man/4/Deviations%20from%20the%20standard could
> someone provide some rationale for the deviations? It's not a big deal
> to me if Chicken doesn't follow R5RS to the letter, I'd just like to
> know the reasons. The numeric tower issue is explained in the FAQ, but
> it's not clear if the others are design decisions, compromises, or bugs.
> Thanks.
I posted recently on chicken-hackers that most of these are not really
deviations, but here is a brief summary.
There are really only four deviations (and maybe fewer, depending on
interpretational issues):
The parameter limitation, I believe, derives from the Scheme->C
translation technique, and reflects limitations in the underlying C as
well as space usage constraints. Fixing it would be a pain for little
benefit.
The numeric tower's only problems are that rationalize is not
implemented, and numerator/denominator only work for integers. Fixing
this is easy, and it seems not to have been done because of a
misunderstanding about what r5rs expects of rationals.
Flonum externalization is inconsistent probably because the C library
routines are being used.
Macro visibility in eval is a pain to sort out b/c the syntax
environment isn't kept separate as you might expect.
The other ones are not deviations from the standard at all, except
char-ready? which would be a deviation, but afaict, the documented
problem does not actually exist, on Linux at any rate.
Thomas