X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/29ff38c406747b10cd1ac401fa174b67761ac0e7..2a52b4295e286373bf663d6b6880eb467e02526b:/libguile/ChangeLog diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 5e0d89c3d..e0ad0271b 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,13 +1,99 @@ 1999-07-29 Mikael Djurfeldt + * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X): + New isym operations. + * eval.h: Added prototypes for multi language support functions. * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use improper lists in the low-level representation, since that will cause a begin to be prepended at macro expansion. - * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X): - New isym operations. + * eval.c (scm_cons_source): Version of cons which copies source + properties from an existing cell. + (scm_m_quote, scm_m_begin, scm_m_if, scm_m_set_x, scm_m_and, + scm_m_or, scm_m_case, scm_m_cond, scm_m_lambda, scm_m_letstar, + scm_m_do, scm_m_letrec, scm_m_let, scm_copy_tree): Use + scm_cons_source. + + * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto + procedure source before calling scm_unmemocopy instead of faking + an environment. + +1998-10-25 Marius Vollmer + + Ported `internal defines' fix from SCM. Original ChangeLog entry: + + 1998-07-09 Radey Shouman + + * eval.c (ceval_1): Modifications to allow rewriting of interal + DEFINE to LETREC: If an ISYM is evaluated in non-tail position the + body of which it is the CAR is macro expanded by m_expand_body, + which rewrites internal DEFINE. + + (m_expand_body): Added. + + (m_macroexp1): Added argument to control error checking: + m_expand_body may speculatively expand forms in the wrong + environments. Made argument number checks conditional on + RECKLESS. + + (m_body): Added, error checks bodies and inserts the ISYM tokens. + + (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now + call m_body. + + (m_cond): (m_case): (m_quote): Modified to avoid destructively + changing their argument forms. Since m_expand_body + speculatively macro expands forms the process must be + reversible. + + (m_ident_eqp): Fixed to use proper environment. + + (renamed_ident): Added DEFER_INTS_EGC. + + Added prototypes for static functions. + + * eval.c + + (undef_cell): New. + + (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK + is false, do not produce an error for unbound variables, return a + pointer to cell_undef instead. + + (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1. + + (scm_m_body): New. + + (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid + destructively changing their argument forms. Since m_expand_body + speculatively macro expands forms the process must be reversible. + + (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for + SCM_IM_LET introduced by named lets. + + (scm_m_letstar): Use scm_m_body instead of bodycheck. + + (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and + scm_letrec. scm_letrec1 does not check for a null binding and + takes an additional argument to specify the ISYM of the body. Use + scm_m_body instead of bodycheck. + + (scm_m_let): Use scm_m_body instead of bodycheck. + + (scm_m_expand_body, scm_macroexp): New. + + (unmemocopy): Account for ISYMs introduced by scm_m_body. + + (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with + check=1. Throw error for internal defined that have not been + rewritten by scm_m_expand_body. + + * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp. + Removed prototype for SCM_APPLY. + + * tags.h: Added extern declaration of scm_isymnames. 1999-07-27 Mikael Djurfeldt