1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 20:00:19 +02:00
Commit graph

393 commits

Author SHA1 Message Date
Dirk Herrmann
8ea4624953 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
SCM_CEVAL, scm_map, scm_init_eval):  When building lists, prefer
scm_list_<n> over scm_cons[2]?.

(scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY):  Use
SCM_C[AD][AD]R instead of explicit form.

(scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do):  Reordered
comparison parameters.

(scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL):  Use
!SCM_NULLP instead of SCM_NIMP.

(scm_m_case):  Don't copy the form.  Renamed proc to clause and
minimized its scope.  Renamed x to clauses.  Removed side
effecting operation from macro call.

(scm_m_cond):  Don't copy the form.  Renamed arg1 to clause and
minimized its scope.  Renamed x to clauses.  Minimized the scope
of variable 'len'.  Make sure the else clause is treated specially
even in case of '=>' occurences.  Don't change the else to #t in
order to be able to distinguish this case in the evaluator.  Leave
type checking of the recipient to the evaluator.

(scm_c_improper_memq):  Made the comment somewhat clearer.

(scm_m_lambda):  Renamed proc to formals.  Removed unnecessary
test for SCM_IM_LET at the place of the formal parameters.
Simplified the formal parameter checking.

(scm_m_letstar):  Added Comment.  Renamed proc to bindings.
Renamed arg1 to binding and minimized its scope.  Eliminated
unnecessary consing.

(scm_m_do):  Renamed proc to bindings.  Minimized the scope of
variable 'len'.

(build_binding_list):  New static function.

(unmemocopy):  Don't use SCM_TYP7 on pairs (it's unclean).
Further, split up the 'letrec' unmemoizing code to the
corresponding parts for 'do', 'let' and 'letrec', adding comments
to each form.  Cleanup the handling of the do form (This removes
some *real* code :-).

(SCM_CEVAL):  Removed side effecting operation from macro call.
Handle the 'else clause of the 'cond form specially - the symbol
'else is not replaced with #t any more.
2001-10-18 21:38:04 +00:00
Marius Vollmer
311f67823d (scm_m_atbind): First try to find the variable without defining it
locally; when it has not been found, define it locally.
2001-10-13 15:41:12 +00:00
Dirk Herrmann
8c494e9973 * Removed lots of deprecated stuff. 2001-08-31 14:42:31 +00:00
Marius Vollmer
2e1711782d * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
dynamic scope.
* dynwind.h (scm_swap_bindings): Declare.
* dynwind.c (scm_swap_bindings): Make non-static.
2001-08-25 16:08:13 +00:00
Dirk Herrmann
01f11e027e * Minor changes. 2001-07-30 18:55:50 +00:00
Marius Vollmer
904a077df1 * tags.h: Update tag system docs.
(scm_tc3_cons_gloc): Renamed to scm_tc3_struct.  Changed all uses.
(scm_tcs_cons_gloc): Renamed to scm_tcs_struct.  Changed all uses.
(SCM_ECONSP, SCM_NECONSP): Removed.  Changed all uses to SCM_CONSP
or SCM_NCONSP, respectively.

* struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
of scm_tc3_cond_gloc and scm_tcs_cons_gloc.  See above.

* print.c (scm_iprin1): Remove printing of glocs.  Do not try to
tell glocs from structs.

* gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.

* eval.c (scm_m_atbind): Make a list of variables, not glocs.
(scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
instead of with glocs.
(EVALCAR): Do not test for glocs.
(scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
condition.
(scm_unmemocar): Do not handle glocs.
(scm_m_atfop): Memoize as a variable, not as a gloc.
(scm_eval_args, scm_deval_args): Do not handle glocs.
(scm_ceval, scm_deval): Likewise.

* eval.h (SCM_XEVALCAR): Do not test for glocs.
(SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
Removed.

* debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.

* dynwind.c (scm_swap_bindings): Likewise.
(scm_dowinds): Updated to recognize lists of variables instead of
lists of glocs.

* __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
2001-07-26 21:40:18 +00:00
Marius Vollmer
a130e9829b (scm_ceval, scm_deval): Use "RETURN" macro when returning value of a
variable, not the plain "return" statement.
2001-07-25 22:01:27 +00:00
Marius Vollmer
d22a0ea164 Allow variables in memoized code (in addition to glocs).
(scm_lookupcar): Handle variables in lost races.  Replace symbol
with variable directly, do not make a gloc.
(scm_unmemocar): Rewrite variables using a reverse lookup, just
like glocs.
(scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
the main switch.
2001-07-25 21:03:28 +00:00
Thien-Thi Nguyen
a06e3a75b2 Remove "face-lift" comment. 2001-07-09 07:36:48 +00:00
Keisuke Nishida
1afff62054 * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
scm_list_n): New functions.
	(SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
	SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
	(lots of files): Use the new functions.

	* goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.

	* strings.c: #include "libguile/deprecation.h".
2001-06-28 01:11:59 +00:00
Neil Jerram
d95c0b76d6 * Handle evaluator traps by calling trap handlers directly rather than
by scm_ithrow and a lazy catch handler.
2001-06-26 21:55:45 +00:00
Keisuke Nishida
fdc2839563 * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
2001-06-26 15:46:40 +00:00
Michael Livshin
ac13d9d210 * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
* guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
simplify.

* eval.c: all hash signs are in column 0.

* Makefile.am (guile_filter_doc_snarfage): build using
c-tokenize.c, not filter-doc-snarfage.c.
rearrange snarfing dependencies a bit.

* c-tokenize.lex: new file.
2001-06-25 03:30:02 +00:00
Marius Vollmer
1385d8aee3 Replace "scm_*_t" with "scm_t_*", except "scm_lisp_t". 2001-06-14 20:14:09 +00:00
Marius Vollmer
92c2555f69 replace "scm_*_t" with "scm_t_*". 2001-06-14 19:50:43 +00:00
Dirk Herrmann
e81d98ec2d * Introduce SCM_UNUSED and mark unused function parameters.
* Introduce SCM_DEBUG_PAIR_ACCESSES.
* Extend the possibilities of SCM_DEBUG_CELL_ACCESSES.
2001-06-07 21:12:19 +00:00
Dirk Herrmann
17fa3fcf36 * Introduce macro SCM_VALIDATE_NON_EMPTY_COMBINATION. 2001-06-05 20:48:28 +00:00
Dirk Herrmann
729dbac32f * Changed the default definition of SCM.
* Fixed some typing problems detected by the above change.
* Fixed some problems that were detected by compiling guile with -W.
2001-05-27 22:00:03 +00:00
Michael Livshin
c014a02eec revert the ill-considered part of the 2001-05-24 changes 2001-05-26 20:51:22 +00:00
Marius Vollmer
863e833bc6 * eval.c (scm_debug_opts): New option `show-file-name'.
* debug.h (SCM_SHOW_FILE_NAME): New.
2001-05-25 00:17:32 +00:00
Michael Livshin
1be6b49ccb * validate.h
(SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
new macros.

* unif.h: type renaming:
scm_array -> scm_array_t
scm_array_dim -> scm_array_dim_t
the old names are deprecated, all in-Guile uses changed.

* tags.h (scm_ubits_t): new typedef, representing unsigned
scm_bits_t.

* stacks.h: type renaming:
scm_info_frame -> scm_info_frame_t
scm_stack -> scm_stack_t
the old names are deprecated, all in-Guile uses changed.

* srcprop.h: type renaming:
scm_srcprops -> scm_srcprops_t
scm_srcprops_chunk -> scm_srcprops_chunk_t
the old names are deprecated, all in-Guile uses changed.

* gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
vectors.c, vports.c, weaks.c:
various int/size_t -> size_t/scm_bits_t changes.

* random.h: type renaming:
scm_rstate -> scm_rstate_t
scm_rng -> scm_rng_t
scm_i_rstate -> scm_i_rstate_t
the old names are deprecated, all in-Guile uses changed.

* procs.h: type renaming:
scm_subr_entry -> scm_subr_entry_t
the old name is deprecated, all in-Guile uses changed.

* options.h (scm_option_t.val): unsigned long -> scm_bits_t.
type renaming:
scm_option -> scm_option_t
the old name is deprecated, all in-Guile uses changed.

* objects.c: various long -> scm_bits_t changes.
(scm_i_make_class_object): flags: unsigned long -> scm_ubits_t

* numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
SCM_I_FIXNUM_BIT.

* num2integral.i.c: new file, multiply included by numbers.c, used
to "templatize" the various integral <-> num conversion routines.

* numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
deprecated.
(scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
scm_num2size): new functions.

* modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.x

* load.c: change int -> size_t in various places (where the
variable is used to store a string length).
(search-path): call scm_done_free, not scm_done_malloc.

* list.c (scm_ilength): return a scm_bits_t, not long.
some other {int,long} -> scm_bits_t changes.

* hashtab.c: various [u]int -> scm_bits_t changes.
scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
(scm_ihashx): n: uint -> scm_bits_t
use scm_bits2num instead of scm_ulong2num.

* gsubr.c: various int -> scm_bits_t changes.

* gh_data.c (gh_scm2double): no loss of precision any more.

* gh.h (gh_str2scm): len: int -> size_t
(gh_{get,set}_substr): start: int -> scm_bits_t,
len: int -> size_t
(gh_<num>2scm): n: int -> scm_bits_t
(gh_*vector_length): return scm_[u]size_t, not unsigned long.
(gh_length): return scm_bits_t, not unsigned long.

* fports.h: type renaming:
scm_fport -> scm_fport_t
the old name is deprecated, all in-Guile uses changed.

* fports.c (fport_fill_input): count: int -> scm_bits_t
(fport_flush): init_size, remaining, count: int -> scm_bits_t

* debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
those prototypes, as the functions they prototype don't exist.

* fports.c (default_buffer_size): int -> size_t
(scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
default_size: int -> size_t
(scm_setvbuf): csize: int -> scm_bits_t

* fluids.c (n_fluids): int -> scm_bits_t
(grow_fluids): old_length, i: int -> scm_bits_t
(next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
scm_bits_t
(scm_c_with_fluids): flen, vlen: int -> scm_bits_t

* filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
the new and shiny SCM_NUM2INT.

* extensions.c: extension -> extension_t (and made a typedef).

* eval.h (SCM_IFRAME): cast to scm_bits_t, not int.  just so
there are no nasty surprises if/when the various deeply magic tag
bits move somewhere else.

* eval.c: changed the locals used to store results of SCM_IFRAME,
scm_ilength and such to be of type scm_bits_t (and not int/long).
(iqq): depth, edepth: int -> scm_bits_t
(scm_eval_stack): int -> scm_bits_t
(SCM_CEVAL): various vars are not scm_bits_t instead of int.
(check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
i: int -> scm_bits_t

* environments.c: changed the many calls to scm_ulong2num to
scm_ubits2num.
(import_environment_fold): proc_as_ul: ulong -> scm_ubits_t

* dynwind.c (scm_dowinds): delta: long -> scm_bits_t

* debug.h: type renaming:
scm_debug_info -> scm_debug_info_t
scm_debug_frame -> scm_debug_frame_t
the old names are deprecated, all in-Guile uses changed.
(scm_debug_eframe_size): int -> scm_bits_t

* debug.c (scm_init_debug): use scm_c_define instead of the
deprecated scm_define.

* continuations.h: type renaming:
scm_contregs -> scm_contregs_t
the old name is deprecated, all in-Guile uses changed.
(scm_contregs_t.num_stack_items): size_t -> scm_bits_t
(scm_contregs_t.num_stack_items): ulong -> scm_ubits_t

* continuations.c (scm_make_continuation): change the type of
stack_size form long to scm_bits_t.

* ports.h: type renaming:
scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
scm_port -> scm_port_t
scm_ptob_descriptor -> scm_ptob_descriptor_t
the old names are deprecated, all in-Guile uses changed.
(scm_port_t.entry): int -> scm_bits_t.
(scm_port_t.line_number): int -> long.
(scm_port_t.putback_buf_size): int -> size_t.

* __scm.h (long_long, ulong_long): deprecated (they pollute the
global namespace and have little value besides that).
(SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
SCM handle).
(ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
exist (for size_t & ptrdiff_t)
(scm_sizet): deprecated.

* Makefile.am (noinst_HEADERS): add num2integral.i.c
2001-05-24 00:50:51 +00:00
Marius Vollmer
c6772927b4 Use SCM_EQ_P insteda of ==' or !=' in certain
places. (scm_c_improper_memq): Return q instead of SCM_BOOL_T.
2001-05-20 23:39:55 +00:00
Marius Vollmer
9a441ddb34 (scm_c_make_gsubr, scm_c_define_gsubr, scm_c_make_gsubr_with_generic,
scm_c_define_gsubr_with_generic): New functions.  They replace
scm_make_gsubr and scm_make_gsubr_with_generic.  The `make' variants
only create the gsubr object, while the `define' variants also put it
into the current module.  Changed all callers.  (scm_make_gsubr,
scm_make_gsubr_with_generic): Deprecated.

(scm_c_make_subr, scm_c_define_subr, scm_c_make_subr_with_generic,
scm_c_define_subr_with_generic): New functions.  They replace
scm_make_subr, scm_make_subr_opt and scm_make_subr_with_generic.  The
`make' variants only create the subr object, while the `define'
variants also put it into the current module.  Changed all callers.
(scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
Deprecated.
2001-05-20 00:35:43 +00:00
Marius Vollmer
86d31dfe7d Merge from mvo-vcell-cleanup-1-branch. 2001-05-15 14:57:22 +00:00
Dirk Herrmann
7c33806ae6 * Make SCM_DEBUG_CELL_ACCESSES=1 work with GUILE_DEBUG_FREELIST. 2001-05-15 09:45:10 +00:00
Marius Vollmer
26fb6390fb (scm_i_eval): Copy expression before passing it to
SCM_XEVAL.  The copy operation was removed unintendedly during my
change on 2001-03-25.
2001-05-09 20:25:44 +00:00
Neil Jerram
7a095584a9 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
	Change R4RS references to R5RS.

	* guile-snarf.awk.in: Fixes so that (i) blank lines in the
	docstring source are correctly reproduced in the output (ii)
	we don't anymore get occasional trailing quotes.  Also reorganized
	and commented the code a little.

	* scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
	fixes.

	* new-docstrings.texi, posix.texi, scheme-control.texi,
	scheme-data.texi, scheme-debug.texi, scheme-evaluation.texi,
	scheme-io.texi, scheme-memory.texi, scheme-procedures.texi:
	Automatic docstring updates (mostly argument name updates and
	blank lines).

	* scheme-modules.texi: Change double hyphens to single.

	* scheme-control.texi (Lazy Catch): Completed.

	* posix.texi (Network Databases and Address Conversion): New
	subsubsection `IPv6 Address Conversion'.
2001-05-04 21:54:00 +00:00
Marius Vollmer
bcdab802c9 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
into the conditionally compiled sections.
* eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
scm_current_module_transformer instead of scm_system_transformer.
2001-04-24 23:27:13 +00:00
Dirk Herrmann
726d810a75 * Fixed scm_thunk_p's results when applied to closures.
* Extracted macro printing code from print.c to macros.c.
* Minor cleanups.
2001-04-19 14:46:01 +00:00
Dirk Herrmann
22a52da14d * Replaced a lot of calls to SCM_C[AD]R with more appropriate macros.
* Minor cleanups to hashtable implementation.
* Minor code beautifications.
2001-03-30 15:03:23 +00:00
Marius Vollmer
90cd76d9d8 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr. 2001-03-29 22:38:00 +00:00
Marius Vollmer
a513ead308 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
* eval.c: Include "libguile/values.h"
(scm_m_at_call_with_values, scm_sym_at_call_with_values):
New.
(unmemocopy, scm_ceval, scm_deval): Handle new isym.
* eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
New delcarations to support above change.

* eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
errors with last change.

* eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
scm_i_eval): Moved the application of the system transformer from
scm_i_eval to scm_primitive_eval.
2001-03-26 22:39:35 +00:00
Dirk Herrmann
160bb34a53 * Removed unused object parameter from SCM_ASSYNT. 2001-03-15 09:50:20 +00:00
Martin Grabmüller
67e8151b65 * load.c (scm_primitive_load, scm_primitive_load_path),
(scm_sys_search_load_path): Corrected docstrings (file ->
	filename).

	* eval.c (scm_force): Added texinfo markup to docstring.
	(scm_promise_p): Renamed parameter to `obj' to match docstring.

	* debug-malloc.c: Reinserted #include <stdio.h>.
2001-03-12 07:08:46 +00:00
Keisuke Nishida
e0c08f17b1 Use SCM_LISTn instead of scm_listify. 2001-03-11 09:44:08 +00:00
Keisuke Nishida
783e777478 Remove #include <stdio.h>. Add #include <string.h>. 2001-03-09 23:33:41 +00:00
Mikael Djurfeldt
586d7da237 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
Duplicate bindings are OK in a let* since a let* is semantically
equivalent to a nested set of let:s.
2001-03-05 18:54:55 +00:00
Dirk Herrmann
db4b4ca64f * Eliminate some calls to scm_wta. 2001-03-04 17:09:34 +00:00
Marius Vollmer
185ab0ef10 * eval.c (scm_s_duplicate_bindings): New error message.
(scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
2001-03-03 23:52:57 +00:00
Marius Vollmer
d9d39d76e7 Cosmetic cleanups. 2001-03-03 17:24:51 +00:00
Marius Vollmer
5280aacabc * eval.h (SCM_EVALIM2): New macro. Use it when a
immediate, literal constant should be evaluated.
* eval.c (scm_s_duplicate_formals): New error message string.
(scm_c_improper_memq): New function.
(scm_m_lambda): Check for duplicate arguments.
(scm_ceval, scm_deval): When executing a body: only cons a new
toplevel environment frame when it is different from the
existing one; use EVALCAR instead of SIDEVAL so that we can properly
check for empty combinations; use SCM_EVALIM2 for the same reason
in the non-toplevel loop.
(nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
New labels with the meaning of their non-"nontoplevel" partners,
but they are used when it is known that the body is not evaluated at
top-level.
(scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
reporting for empty combinations.
2001-03-03 15:10:37 +00:00
Neil Jerram
2069af3835 * Minor docstring updates. 2001-02-23 20:24:15 +00:00
Marius Vollmer
23c46fa69a * eval.c (scm_ceval, scm_deval): When evaluating expressions on
top level, create a fresh top-level environment for each
expression instead of mutating the exisint frame.  This is
important when that frame is closed over.
2001-02-22 20:54:12 +00:00
Marius Vollmer
a820af98a7 Only check number of arguments for closures, see last change.
I just love this evaluator, man.
2001-02-21 22:52:59 +00:00
Marius Vollmer
e37a4fbae1 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
before applying arrow procedure in `cond' and before applying
receiver procedure in call-with-current-continuation.
(scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
macro.  The argument is expanded more than one time.
2001-02-21 20:14:47 +00:00
Martin Grabmüller
b3f26b140b (scm_eval_options_interface, scm_evaluator_traps, s_scm_nconc2last):
Added docstrings.
2001-02-16 15:20:00 +00:00
Marius Vollmer
018008c17f Do not use "//" comment syntax. It's not ANSI. 2001-02-15 15:39:32 +00:00
Marius Vollmer
a2abcb5823 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
SCM_CEVAL when evaluating subforms of `begin' forms.  SCM_CEVAL
can not deal with immediates.
2001-02-13 01:09:00 +00:00
Marius Vollmer
4163eb7236 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
evaluated at top-level and synronize lookup closure before
executing every subform.
(scm_primitve_eval_x, scm_primitive_eval): New functions.
(scm_eval_x, scm_eval): Reimplement in terms of
scm_primitive_eval_x and scm_primitive_eval, respectively.
2001-02-11 18:13:07 +00:00
Marius Vollmer
aa767bc58f * modules.h (scm_selected_module, scm_current_module): Renamed
scm_selected_module to scm_current_module to synchronize Scheme
and C names.
(scm_select_module, scm_set_current_module): Likewise.  Changed
all uses.
2001-02-08 18:49:52 +00:00