1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-04 05:50:26 +02:00
Commit graph

9141 commits

Author SHA1 Message Date
Mikael Djurfeldt
e0d86ad2fb * ports.h: #include "libguile/print.h" 1997-10-12 12:52:59 +00:00
Mark Galassi
dbb3005d81 renamed gh_int2scmb to gh_bool2scm 1997-10-07 15:39:24 +00:00
Mikael Djurfeldt
4bfdf1584d 1997-10-03 Mikael Djurfeldt <mdj@nada.kth.se>
* print.h (SCM_PRINT_STATE_P): Removed SCM_NIMP test.  (NIMP
	macros should by convention not test for NIMPness.)
	(SCM_COERCE_OPORT): Adjust indentation.

	* print.c (scm_valid_oport_value_p): Adjusted indentation; Added
	SCM_NIMP test before SCM_PRINT_STATE_P.

	* struct.c, struct.h, gc.c: Renamed:
	scm_struct_i_layout	   --> scm_vtable_index_layout
	scm_struct_i_vcell	   --> scm_vtable_index_vcell
	scm_struct_i_vtable	   --> scm_vtable_index_vtable
	scm_struct_i_printer	   --> scm_vtable_index_printer
	scm_struct_i_vtable_offset --> scm_vtable_offset_user

	* struct.c (scm_print_struct): Use new printer slot; Default
	printing: Also output hex code of vtable so that type identity
	will be indicated as well.
	(scm_init_struct): Updated required_vtable_fields to "pruosrpw";
	Removed struct_printer_var; Removed struct-vtable-offset;
	(vtable-index-layout, vtable-index-vtable, vtable-index-printer,
	vtable-offset-user): New constants.

	* struct.h (scm_struct_i_vtable_offset): Bumped from 3 to 4.
	(scm_struct_i_printer, SCM_STRUCT_PRINTER): New slot in vtables.
  	If this slot contains a procedure, use that to print structures of
 	the type represented by this vtable.

	* print.c (scm_iprin1): Don't print arguments of macro
 	transformers.  (They are always: exp env.); Bugfix: Unmemoize
 	transformer source with correct environment.
1997-10-03 00:44:28 +00:00
Mikael Djurfeldt
f44dd64b76 Small adjustment to remove compiler warning message. 1997-10-02 22:13:26 +00:00
Mikael Djurfeldt
ba031394ec * print.c (scm_iprin1): Don't print arguments of macro
transformers.  (They are always: exp env.); Bugfix: Unmemoize
transformer source with correct environment.
1997-10-02 17:52:03 +00:00
Marius Vollmer
20cb8b8c4f *** empty log message *** 1997-10-02 15:09:45 +00:00
Marius Vollmer
1345df5d0d * throw.h (scm_handle_by_proc_catching_all): New prototype
throw.c (scm_handle_by_proc_catching_all): New function
1997-10-02 15:05:57 +00:00
Marius Vollmer
45113884d6 *** empty log message *** 1997-10-02 15:01:11 +00:00
Marius Vollmer
e71575d925 * root.c (cwdr_inner_body, cwdr_body): Remove "inner" from name,
there is now only one catch.
(cwdr_outer_body): Removed.
(cwdr_handler): New function.
(scm_internal_cwdr): New function to perform the function of cwdr
but take args that are more useful to C code.  Also, the handler
is now invoked *outside* of the new dynamic root, like the docs
say.  We no longer have to catch absolutely all errors, the caller
is responsible for using a handler that does not throw, if he
wants that.
(cwdr): Reimplemented in terms of scm_internal_cwdr.
* root.h (scm_internal_cwdr): New prototype.

* root.c (USE_STACKJMPBUF): New define to activate a stack-based
allocation of the jumpbuf of a root continuation.  The changes
below are controlled by it.  They are now deactivated.
(scm_internal_cwdr): Allocate the scm_contregs on the stack.  Set
the JMPBUF of the scm_rootcont to NULL before returning.
1997-10-02 15:00:03 +00:00
Marius Vollmer
bb35f3151b * print.h (SCM_PRINT_STATE_P, SCM_COERCE_OPORT): New macros.
(struct scm_print_state) [revealed]: New field.
(scm_print_state_vtable): Make visible to the outside world for
type checking purposes.
(scm_valid_oport_value_p): New prototype.

* print.c (scm_valid_oport_value_p): New function to check whether
a certain value is acceptable as a port argument.
(scm_print_state_vtable): New variable.
(scm_free_print_state): Set `revealed' field to false.
(scm_iprin1): Call user supplied closure printer with
scm_printer_apply.  Print in the traditional way when there isn't
one or when it returns #f.
(scm_prin1, scm_display, scm_write, scm_newline, scm_write_char):
Accept a port/print-state pair in addition to just a port.
(scm_prin1): Don't return the print_state to the pool when it has
been `revealed'.
(scm_printer_apply): Set `revealed' field of print_state to true.
(scm_init_print): Set scm_print_state_vtable.
(print_state_fluid, print_state_fluid_num): Removed.
1997-10-02 14:55:02 +00:00
Marius Vollmer
c68296f8fd * gc.c (scm_gc_sweep): Free the SCM_VELTS of a scm_tc7_contin only
when they are non-NULL.
(scm_gc_mark): Likewise, mark only when non-NULL.

* gc.c (scm_done_malloc): New function.
gc.h (scm_done_malloc): New prototype.
1997-10-02 14:45:09 +00:00
Marius Vollmer
5fccacb91b * gc.c (scm_done_malloc): New function.
gc.h (scm_done_malloc): New prototype.
1997-10-02 14:42:58 +00:00
Marius Vollmer
5ddca2ef51 Make dynamic linking work on Dec Unix. (Thanks to Clark McGrew)
* dynl.c: Include "dynl-dl.c" also when HAVE_DLOPEN is defined.
1997-10-02 14:40:30 +00:00
Jim Blandy
5aa28c1e21 *** empty log message *** 1997-09-30 03:57:02 +00:00
Jim Blandy
7370e377a2 * Makefile.in: Regenerated with automake 1.2c. 1997-09-30 03:55:48 +00:00
Radey Shouman
de59897ac6 *** empty log message *** 1997-09-29 03:37:26 +00:00
Radey Shouman
e42c09cc6f Fixed problem in scm_array_index_map_x: looped endlessly with zero-rank
argument.
1997-09-29 03:29:27 +00:00
Jim Blandy
f6a2912315 *** empty log message *** 1997-09-28 04:09:06 +00:00
Jim Blandy
0d7368d7c1 * strports.c (scm_eval_string): Don't close the port. 1997-09-28 04:08:02 +00:00
Jim Blandy
3cef7514cb * stime.c (bdtime2c): Use SCM_LENGTH, not scm_vector_length; the
former returns a nice normal integer.  (Thanks to Daniel
Risacher.)
1997-09-28 04:07:04 +00:00
Jim Blandy
8a01e7548c *** empty log message *** 1997-09-28 03:17:07 +00:00
Jim Blandy
af3509d72c * script.c (scm_compile_shell_switches): If we hit the -c or --
arguments, don't set the car of (command-line) to scm_usage_name,
the prettified name of the guile executable; give it the full
path, the way shells usually handle $0.
1997-09-28 03:13:36 +00:00
Jim Blandy
f8392303c5 Thanks to Shiro Kawai:
* gc.c (scm_gc_mark): Pass NULL to scm_wta as the subroutine name.
* ports.h (scm_ptobfuns): The fgets method returns a char *, not
an SCM.
1997-09-28 03:12:42 +00:00
Jim Blandy
cbab9700c3 * Makefile.am (libpath.h): Include the value of the THREAD_LIBS
makefile variable as a build parameter called LIBS.  The
build-guile program will use this, for the time being.
* Makefile.in: Regenerated.

* Makefile.in: Regenerated with automake 1.2a.
1997-09-28 03:12:04 +00:00
Mikael Djurfeldt
7e7904004c * ramap.c (scm_array_map): Renamed to scm_array_map_x. Removed
Scheme-level name `array-map' and renamed `serial-array-map' to
`serial-array-map!'.
1997-09-24 21:29:02 +00:00
Mikael Djurfeldt
bdf8afffb5 * backtrace.c: Introduced exception handlers which now enclose
`display-error' and `display-backtrace' so that error reporting
won't get into infinite loops if an error occurs during displaying
of the error.  This can very easily happen with user supplied
print call-back routines.
1997-09-24 20:18:54 +00:00
Mikael Djurfeldt
152800f1d3 Bugfix of the bugfix. 1997-09-24 19:46:47 +00:00
Mikael Djurfeldt
830613a0e0 *** empty log message *** 1997-09-24 18:17:41 +00:00
Mikael Djurfeldt
1d9ee7c788 * init.c (scm_boot_guile_1): Added scm_init_objects ().
Added #include "objects.h"

* Makefile.am (libguile_la_SOURCES): Added objects.c.
(modinclude_HEADERS): Added objects.h.
1997-09-22 00:45:19 +00:00
Mikael Djurfeldt
0c32d76caf * init.c (scm_boot_guile_1): Added scm_init_objects ().
Added #include "objects.h"

* eval.c (scm_makprom): Added SCM_DEFER_INTS and SCM_ALLOW_INTS.
Add #include "feature.h".

* ports.h (SCM_EOF_OBJECT_P): New macro predicate.
This test is needed at many places in the code and should be
abstracted.  (Motivated by the need of this test in libguiletk.)

* ports.c (scm_eof_object_p), vports.c (sfgetc), strports.c
(scm_eval_string), load.c (scm_primitive_load,
scm_read_and_eval_x), gh_eval.c (gh_eval_str):
Use SCM_EOF_OBJECT_P.

* eval.c (scm_init_eval): Add feature `delay'.
1997-09-22 00:43:52 +00:00
Mikael Djurfeldt
25eaf21abc * eval.c (scm_init_eval): Add feature `delay'. 1997-09-20 13:58:58 +00:00
Mikael Djurfeldt
51916da6be * scmhob.h: Removed. 1997-09-16 00:21:06 +00:00
Mikael Djurfeldt
a4e6e865d8 *** empty log message *** 1997-09-15 21:27:58 +00:00
Mikael Djurfeldt
e0e4ffd234 * sequences.h, sequences.c, append.h, append.c: Removed. These
files implemented non-R4RS operations which would encourage
non-portable programming style and less easy-to-read code.

* Makefile.am (sequences.h, sequences.c, append.h, append.c):
Removed.

* libguile.h, eval.c, init.c, stime.c, unif.c: Removed #include
sequences.h, #include append.h.

* init.c (scm_boot_guile_1): Removed calls to scm_init_append and
scm_init_sequences.

* stime.c (bdtime2c): Changed scm_obj_length --> scm_vector_length.
1997-09-15 21:26:06 +00:00
Mikael Djurfeldt
6ddf5b7d43 * Makefile.am (sequences.h, sequences.c, append.h, append.c):
Removed.
1997-09-15 21:23:07 +00:00
Mikael Djurfeldt
92396c0aa1 * list.h (SCM_LISTn): New macros. Make list creation in C code
prettier.  The idea comes from STk.

* sequences.h, sequences.c, append.h, append.c: Removed.  These
files implemented non-R4RS operations which would encourage
non-portable programming style and less easy-to-read code.

* Makefile.am (sequences.h, sequences.c, append.h, append.c):
Removed.

* libguile.h, eval.c, init.c, stime.c, unif.c: Removed #include
sequences.h, #include append.h.

* gh.h, gh_list.c: Renamed gh_list_length --> gh_length.

* list.h, list.c: Renamed scm_list_length --> scm_length, scm
1997-09-15 21:20:48 +00:00
Mikael Djurfeldt
80ea260cdf * procprop.h: Added declaration of scm_i_inner_name.
* gsubr.c: New global symbol scm_i_inner_name.

* debug.c (scm_procedure_name): Try procedure property
`inner-name' if `name' fails.

* print.c (scm_iprin1): Use scm_macro_name.

* eval.c (scm_m_define): Give names to macros as well; Only the
first top-level definition gives a procedure/macro a name.
Otherwise confusing names can turn up in backtraces.
(SCM_CEVAL): SCM_IM_DEFINE: Set `inner-name' property instead of
`name'; Give names to macros as well.

* procs.c (scm_closure_p), print.c (scm_iprin1), eval.c
(scm_macro_transformer): Use SCM_CLOSUREP instead of
scm_closure_p.
1997-09-11 00:09:57 +00:00
Mikael Djurfeldt
7332df6644 * * eval.c (macro?, macro-type, macro-name, macro-transfomer): New
procedures;
	(prinmacro): Removed.  The code has been moved/merged into print.c
	in order to decrease code redundancy.  We want macros to print in
	a way equivalent to procedures, and it would be silly to duplicate
	the required code.  (We don't want to maintain two places.)
	(macrosmob): Print field is now a NULL pointer.

	* eval.h (scm_macro_p, scm_macro_type, scm_macro_name,
	scm_macro_transformer): New prototypes.
	(scm_tc16_macro): Declared.

*	* print.c (scm_iprin1): Added code for printing of macros.  Macros
	are now printed in a way equivalent to procedures.
1997-09-10 20:05:28 +00:00
Mikael Djurfeldt
87688f5f12 * procs.h (scm_closure_p): Added declaration. 1997-09-10 20:03:55 +00:00
Mikael Djurfeldt
0869cca611 * gc.c (scm_gc_mark): Fixed "rogue pointer in heap" message:
Shouldn't pass "heap" as the subr name.
1997-09-10 20:03:27 +00:00
Jim Blandy
614590c57a *** empty log message *** 1997-09-02 23:17:28 +00:00
Jim Blandy
e69ebe6af6 * gh_predicates.c (gh_boolean_p, gh_symbol_p, gh_char_p,
gh_vector_p, gh_pair_p, gh_number_p, gh_string_p, gh_procedure_p,
gh_list_p, gh_inexact_p, gh_exact_p, gh_eq_p, gh_eqv_p,
gh_equal_p): Use SCM_NFALSEP, instead of testing against
SCM_BOOL_T.  Any non-false value is true.
1997-09-02 23:17:15 +00:00
Mikael Djurfeldt
1ff4df7a83 * symbols.h (scm_builtin_bindings, scm_builtin_weak_bindings,
scm_gensym): Added prototypes.

* symbols.c (scm_gensym): New function.  This will speed up
certain types of applications (such as macro systems) which
generate lots of symbols.
1997-09-01 22:28:49 +00:00
Mikael Djurfeldt
d28da0496e * numbers.c (logand, logior, logxor): Handle 0 or 1 arguments. 1997-09-01 20:41:31 +00:00
Gary Houston
20a54673cd * unif.c (scm_shap2ra): tighten the checking of the array dimension
specifier, since (2) or (2 . 3) would cause SEGV.
(scm_transpose_array): more argument checking fixes.
1997-08-30 19:28:38 +00:00
Jim Blandy
6f527da051 * Makefile.in: Regenerated. 1997-08-29 04:50:17 +00:00
Jim Blandy
34695603c7 *** empty log message *** 1997-08-27 22:48:58 +00:00
Jim Blandy
2fe609e0d7 * Makefile.in: Regenerated, so it uses "tar", not "gtar". 1997-08-27 22:47:18 +00:00
Jim Blandy
4dd8323f1f doc fix 1997-08-26 23:53:28 +00:00
Mikael Djurfeldt
02fbff5e8d Regenerated. 1997-08-25 20:05:30 +00:00