1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 21:10:27 +02:00
Commit graph

929 commits

Author SHA1 Message Date
Mikael Djurfeldt
c44bfbc946 * coop-defs.h (struct coop_t): Renamed errno --> _errno to prevent
errno macro expansion of this field name.  (errno is a C
preprocessor macro on some systems.)
1997-11-30 10:36:13 +00:00
Tim Pierce
756fa4f89b Doc fix. 1997-11-30 02:35:18 +00:00
Mikael Djurfeldt
b6609fc78a * init.c (scm_start_stack): Removed initialization of
scm_the_last_stack_var.

* backtrace.h: Declare scm_the_last_stack_var.

* backtrace.c: Define scm_the_last_stack_var.

* root.c (mark_root): Don't mark the_last_stack_var.

* root.h (scm_root_state): Removed the_last_stack_var.

* throw.c: Added #include "fluids.h"
(ss_handler): `the-last-stack' is now a fluid.

* (backtrace.h, backtrace.c, throw.c): Renamed the_last_stack_var
--> the_last_stack_fluid.

* backtrace.c: Added #include "fluids.h"
(scm_init_backtrace): Initialize `the-last-stack' to a fluid.
(scm_backtrace): `the-last-stack' is now a fluid.

* init.c (scm_boot_guile_1): Moved call to scm_init_backtrace
after scm_init_fluids.
1997-11-29 10:49:18 +00:00
Mikael Djurfeldt
a5d6d578d6 * backtrace.c: Added #include "fluids.h"
(scm_init_backtrace): Initialize `the-last-stack' to a fluid.
(scm_backtrace): `the-last-stack' is now a fluid.

* init.c (scm_boot_guile_1): Moved call to scm_init_backtrace
after scm_init_fluids.
1997-11-29 01:10:21 +00:00
Tim Pierce
e085f7a634 * iselect.c: #ifdef USE_THREADS around thread-related includes.
* dynl-dl.c (sysdep_dynl_func): Check both USCORE and
	DLSYM_ADDS_USCORE to decide whether to add an underscore.
1997-11-28 22:58:10 +00:00
Mikael Djurfeldt
c718cb0702 * iselect.c (coop_next_runnable_thread,
coop_wait_for_runnable_thread): Disable interrupts so that no
async is executed before a potential error_revive.
(scm_internal_select): Disable interrupts during the parts of the
code which manipulate the sleep queue and the file descriptors.
1997-11-28 01:11:12 +00:00
Mikael Djurfeldt
81e81a5cb7 * iselect.c (coop_next_runnable_thread,
coop_wait_for_runnable_thread): Disable interrupts so that no
async is executed before a potential error_revive.
1997-11-28 00:50:58 +00:00
Mikael Djurfeldt
3666451eb0 * iselect.h, iselect.c: New files. Implements
scm_internal_select.  (See NEWS.)
1997-11-27 18:06:33 +00:00
Mikael Djurfeldt
b902580806 Updated 1997-11-27 18:05:28 +00:00
Mikael Djurfeldt
44e8413c73 * Makefile.am: Added iselect.c and iselect.h.
* coop.c (coop_qinit): Initialize fields used by
scm_internal_select.
(coop_qget, coop_qget, coop_tmp_queue): Made global.
(coop_next_runnable_thread): If GUILE_ISELECT enabled, use
replacement in iselect.c.
(coop_mutex_lock, coop_condition_variable_wait, coop_abort,
coop_join): If GUILE_ISELECT enabled, use
coop_wait_for_runnable_thread instead of
coop_next_runnable_thread.
(usleep, sleep): New replacements for system functions if
GUILE_ISELECT is enabled.

* coop-threads.h: Declare coop_wait_for_runnable_thread.

* coop-defs.h (coop_t): Added fields used by scm_internal_select.

* filesys.c: Added #include "iselect.h".  Moved FD-macros to
iselect.h.  Implement Scheme level `select' using
scm_internal_select.  (See NEWS.)

* genio.c (scm_getc): Block with scm_internal_select.  (See NEWS.)

* init.c: Call scm_init_iselect.
1997-11-27 18:04:56 +00:00
Tim Pierce
3e2043c4dd Fix a memory leak in scm_read_line and a type cast bug in the ptob.
* fports.c (scm_fgets): Use malloc/free rather than scm_must_malloc
 	and scm_must_free, since ultimately the	string returned will be copied
 	by scm_makfrom0str anyway.  Also, read any characters that may have
	been pushed onto the port with scm_ungetc.
	* ports.c (scm_generic_fgets): Same as for scm_fgets.
	* ioext.c (scm_read_line): Free string after Guilifying it.
	* ports.h (scm_ptobfuns): fgets method returns a char *, not a char.
1997-11-27 06:39:46 +00:00
Anthony Green
2c92112b3d gh bug fix 1997-11-26 03:45:23 +00:00
Anthony Green
18daf95b39 gh bug fix 1997-11-26 03:13:00 +00:00
Mark Galassi
5aadf8c195 completing changes to gh_repl and uniform array stuff 1997-11-25 17:20:23 +00:00
Mark Galassi
ef5d3ae175 made changes in gh_repl() and started adding the uniform array stuff to gh_ 1997-11-25 06:18:08 +00:00
Tim Pierce
0113293e54 fixed dynl memory leak 1997-11-22 19:15:09 +00:00
Tim Pierce
2a0d71767f Added support for leading dlsym underscore. 1997-11-21 19:39:23 +00:00
Tim Pierce
e41530ba09 *** empty log message *** 1997-11-20 04:40:02 +00:00
Mikael Djurfeldt
03ca35af55 Small fix of last fix... 1997-11-06 17:50:19 +00:00
Mikael Djurfeldt
80b991c346 * regex-posix.c (scm_free_regex_t): Return size of regex_t instead
of 0; size_t --> scm_size_t.  Thanks to Bernard Urban.
1997-11-06 15:09:30 +00:00
Mikael Djurfeldt
fdc0361488 * scmconfig.h.in: Updated (HAVE_LIBTERMCAP was added when
configure.in was changed).
1997-10-26 16:06:23 +00:00
Jim Blandy
3fa5bb75c3 *** empty log message *** 1997-10-26 07:24:36 +00:00
Jim Blandy
99dc0f92fb * Makefile.am (modinclude_HEADERS): Include readline.h here.
* Makefile.in: Regenerated.
1997-10-26 07:24:04 +00:00
Marius Vollmer
e5edf9b7e0 *** empty log message *** 1997-10-25 21:57:48 +00:00
Marius Vollmer
0ef4ae82e6 * print.h (SCM_COERCE_OPORT): Renamed to SCM_COERCE_OUTPORT. An
OPORT is an `open' port, not an output port.
1997-10-25 21:54:46 +00:00
Marius Vollmer
7844682850 * filesys.c (scm_close, set_element, get_element, scm_chown,
scm_chmod, scm_stat, scm_truncate_file, scm_fcntl, scm_fsync): Use
SCM_COERCE_OUTPORT to cope with the printstate/port magic.
* ports.c (scm_port_revealed, scm_set_port_revealed_x,
scm_close_port, scm_port_line, scm_set_port_line_x,
scm_port_column, scm_set_port_column_x, scm_port_filename,
scm_set_port_filename_x, scm_port_mode,
scm_close_all_ports_except, scm_set_current_output_port,
scm_set_current_error_port): Likewise
* ioext.c (scm_redirect_port, scm_dup_to_fdes, scm_freopen,
scm_ftell, scm_fileno, scm_isatty_p, scm_primitive_move_to_fdes):
Likewise
* posix.c (scm_ttyname, scm_tcgetpgrp, scm_tcsetpgrp): Likewise
* backtrace.c (display_backtrace_body): Likewise
* fports (scm_setvbuf): Likewise
* socket.c (scm_getsockopt, scm_setsockopt, scm_shutdown,
scm_connect, scm_bind, scm_listen, scm_accept, scm_getsockname,
scm_getpeername, scm_send, scm_sendto): Likewise
* unif.c (scm_uniform_array_write): Likewise
1997-10-25 21:54:12 +00:00
Jim Blandy
83531e61fc *** empty log message *** 1997-10-25 06:55:55 +00:00
Jim Blandy
c2cb25006b Minor problems with substring-related tag changes.
* symbols.h (SCM_SUBSTRP): Don't mask off the S bit; that's
exactly what we want to leave in to detect substrings.
(SCM_ROSTRINGP, ROUCHARS): Formatting tweaks.
* tags.h: Fix diagrams and comments describing the S tag bit;
remove vestigial remarks about the D tag bit.
(SCM_TYP7, SCM_TYP7S): Rephrased for readability.
* strings.c: Formatting tweaks.
1997-10-25 06:53:47 +00:00
Jim Blandy
01cddfc1e8 * load.c (scm_init_load_path): Check GUILE_LOAD_PATH environment
variable first; then SCHEME_LOAD_PATH, with a warning message.
(scm_parse_path): New function.
* script.c: Doc fixes.
1997-10-25 06:53:11 +00:00
Jim Blandy
2e3685828a *** empty log message *** 1997-10-23 05:03:29 +00:00
Jim Blandy
a2d4941fb5 Readline support, from Daniel Risacher.
* readline.c, readline.h: New files.
* init.c: #include "readline.h".
(scm_boot_guile_1): Call scm_init_readline, if we have it.
* Makefile.am (libguile_la_SOURCES): Include readline.c.
* Makefile.in: Regenerated.
* scmconfig.h.in: Regenerated, after change to ../configure.
1997-10-23 05:02:18 +00:00
Mark Galassi
956328d2a4 a couple of name changes for consistency with ! -> _x 1997-10-20 17:32:08 +00:00
Mark Galassi
7fee59bd4a implemented several missing gh_ functions, mostly related to lists and pairs 1997-10-20 03:59:37 +00:00
Mikael Djurfeldt
8a6d7c7ccc * tags.h (scm_tc7_substring): Changed the comment and code to
conform with the changes below.  Folks!  We have suddenly two new
free tc7 codes!!!  Jummy, jummy!
1997-10-18 00:20:50 +00:00
Mikael Djurfeldt
527da70434 * tags.h (scm_tc7_substring): Changed the comment and code to
conform with the changes below.  Folks!  We have suddenly two new
free tc7 codes!!!  Jummy, jummy!
1997-10-18 00:17:34 +00:00
Tom Tromey
b7f3516f99 * Makefile.in: Rebuilt.
* Makefile.am (libguile_la_SOURCES): Removed extchrs.c,
	mbstrings.c.
	(modinclude_HEADERS): Removed extchrs.h, mbstrings.h.
	* unif.c (scm_vector_set_length_x): Don't handle multibyte
	strings.
	* tag.c (scm_utag_mb_string, scm_utag_mb_substring): Removed.
	(scm_tag): Don't handle multibyte strings.
	* read.c: Don't include mbstrings.h.
	(scm_lreadr): Don't handle multibyte ports.
	* kw.c: Don't include mbstrings.h.
	* init.c: Don't include mbstrings.h.
	(scm_boot_guile_1): Don't init mbstrings module.
	* hash.c (scm_hasher): Don't handle mbstrings.
	* gscm.c (gscm_run_scm): Don't init mbstrings module.
	* gc.c (scm_gc_mark): Don't handle mbstrings.
	(scm_gc_sweep): Likewise.
	* eval.c (SCM_CEVAL): Don't handle mbstrings.
	* eq.c (scm_equal_p): Use SCM_TYP7S, not SCM_TYP7SD.
	* tags.h (SCM_TYP7SD): Removed.
	(SCM_TYP7D): Removed.
	(scm_tc7_mb_string): Removed.
	(scm_tc7_mb_substring): Removed.
	* print.c (scm_iprin1): Handle char printing directly.  Don't
	handle mbstrings.
	Don't include "mbstrings.h".
	* symbols.c (scm_intern_obarray_soft, scm_string_to_symbol,
	scm_string_to_obarray_symbol, msymbolize): Don't set symbol's
	multi-byte flag.
	Don't include "mbstrings.h".
	* symbols.h (SCM_SYMBOL_MULTI_BYTE_STRINGP): Removed.
	(SCM_SYMBOL_SLOTS): Define as 4.
	(SCM_ROSTRINGP): Use SCM_TYP7S, not SCM_TYP7SD.
	* arbiters.c, backtrace.c, debug.c, dynl.c, eval.c, fluids.c,
	gc.c, gsubr.c, ioext.c, kw.c, mallocs.c, numbers.c, ports.c,
	print.c, read.c, regex-posix.c, root.c, srcprop.c, stackchk.c,
	struct.c, threads.c, throw.c, unif.c, variable.c: Use new
	("gen"-less) I/O function names.
	* ports.c (scm_add_to_port_table): Don't set port's
	representation.
	* ports.h (scm_port_representation_type): Removed.
	(scm_string_representation_type): Removed.
	(struct scm_port_table ): Removed representation field.
	(SCM_PORT_REPRESENTATION): Removed.
	(SCM_SET_PORT_REPRESENTATION): Removed.
	* genio.h: Use new function names.
	* genio.c: Don't include "extchrs.h".
	(scm_gen_putc, scm_gen_puts, scm_gen_write, scm_get_getc):
	Removed.
	(scm_putc, scm_puts, scm_lfwrite): No longer static.
	(scm_getc): No longer static; handle line and column changes.
	(scm_ungetc): Renamed from scm_gen_ungetc.
	(scm_do_read_line): Renamed from scm_gen_read_line.
	* libguile.h: Don't include "extchrs.h" or "mbstrings.h"
	* extchrs.h, extchrs.c, mbstrings.h, mbstrings.c: Removed.
1997-10-15 17:18:32 +00:00
Mark Galassi
e5eece747e * gh_test_repl.c (c_vector_test): same as gh_test_c.c
* gh_test_c.c (c_vector_test): some improvements on the vector
	routines test.

	* gh.h (gh_vector): this used to exist but do the wrong thing.
	Now it (almost) does the right thing, though it takes a list
	instead of the individual arguments.  I need to see how it could
	be done right.
	(gh_list_to_vector): added this function as a macro.  Corresponds
	to Scheme's (list->vector ...).
	(gh_vector_to_list): added this function as a macro.  Corresponds
	to Scheme's (vector->list ...).

	* gh_data.c (gh_vector_ref): renamed from gh_vref to
	gh_vector_ref, so that it resembles the Scheme routines more.
	(gh_vector_set): renamed from gh_vset to gh_vector_set, so that it
	resembles the Scheme routines more.
	(gh_make_vector): this used to be (stupidly) called gh_vector().
	This is the right name, since it does the same thing as the Scheme
	(make-vector ...) procedure.
1997-10-13 07:25:31 +00:00
Mikael Djurfeldt
da7f71d7d5 * eval.c (SCM_CEVAL, scm_apply): Completed GOOPS support code;
Some indentation fixes.

* objects.h (SCM_METACLASS_STANDARD_LAYOUT): Printer field is no
longer a user field; New field: class_flags.

* objets.c, objects.h: New metaclass: scm_metaclass_operator.
1997-10-12 12:54:54 +00:00
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