code has support for. Fixes building with AIX cc, which is ansi but
doesn't define __STDC__. Reported by Keith Crane.
(var_start): Remove macro, this variation no longer required.
(scm_list_n): Use va_start directly.
code has support for. Fixes building with AIX cc, which is ansi but
doesn't define __STDC__. Reported by Keith Crane.
(var_start): Remove macro, this variation no longer required.
(scm_list_n): Use va_start directly.
scm_round_number): New functions, replacing scm_tc7_cxr definitions,
and ensuring exact arguments give exact results, as required by R5RS.
Derived in part from the same by Marius in the cvs head. Reported by
Ray Lehtiniemi.
Cast char to int for
ctype.h tests, to avoid warnings from gcc on HP-UX about char as array
subscript. Reported by Andreas Vögele.
Also cast through unsigned char to avoid passing negatives to those
macros if input contains 8-bit values.
mem2uinteger, mem2decimal_from_point, mem2ureal): Cast char to int for
ctype.h tests, to avoid warnings from gcc on HP-UX about char as array
subscript. Reported by Andreas Vögele.
Also cast through unsigned char to avoid passing negatives to those
macros if input contains 8-bit values.
(scm_m_define): Change order to first create binding and
evaluating the expression afterwards.
(scm_m_set_x): Memoize complete set! expression. Only leave
symbols if no binding exists at memoization time. Throw error if
assigning to a syntactic keyword.
(lazy_memoize_variable): New function.
(CEVAL): When execution set!, perform lazy memoization if
unmemoized symbol is detected.
* libguile/modules.c (module_variable): Return variables with
unbound value.
* libguile/tags.h: Fix comment.
* test-suite/tests/syntax.test: Add test case to check the correct
handling of define expressions.
scm_downcase): Use ctype.h toupper and tolower. This will be useful
in 8-bit locales, and ensures consistency with char-upper-case? and
char-lower-case? which already use ctype.h.
(scm_upcase_table, scm_downcase_table, scm_lowers, scm_uppers): Remove.
(scm_tables_prehistory): Remove.
scm_c_downcase): Use ctype.h toupper and tolower. This will be useful
in 8-bit locales, and ensures consistency with char-upper-case? and
char-lower-case? which already use ctype.h.
(scm_c_upcase_table, scm_c_downcase_table, scm_lowers, scm_uppers): Remove.
(scm_tables_prehistory): Remove.
expression a new variable in the local module is defined in terms
of an equally named variable from some other module, use @ to
refer to the variable in the other module. This is necessary due
to section 5.2.1 of R5RS: In a define expression first the new
binding is created and then the expression is evaluated.