Commit graph

346 commits

Author SHA1 Message Date
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
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
Marius Vollmer
e5edf9b7e0 *** empty log message *** 1997-10-25 21:57:48 +00:00
Jim Blandy
83531e61fc *** empty log message *** 1997-10-25 06:55:55 +00:00
Jim Blandy
2e3685828a *** empty log message *** 1997-10-23 05:03:29 +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
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
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
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
Jim Blandy
5aa28c1e21 *** empty log message *** 1997-09-30 03:57:02 +00:00
Radey Shouman
de59897ac6 *** empty log message *** 1997-09-29 03:37:26 +00:00
Jim Blandy
f6a2912315 *** empty log message *** 1997-09-28 04:09:06 +00:00
Jim Blandy
8a01e7548c *** empty log message *** 1997-09-28 03:17:07 +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
830613a0e0 *** empty log message *** 1997-09-24 18:17:41 +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
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
Jim Blandy
614590c57a *** empty log message *** 1997-09-02 23:17:28 +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
34695603c7 *** empty log message *** 1997-08-27 22:48:58 +00:00
Mikael Djurfeldt
f2ae0a19bd Updated 1997-08-25 13:34:17 +00:00
Mikael Djurfeldt
88482b31af * error.c, error.h (scm_error_callback): Removed (see NEWS). 1997-08-25 12:33:50 +00:00
Mikael Djurfeldt
a46d5ff2dd * regex-posix.c: If <regex.h> can't be found, try <rxposix.h> or
<rx/rxposix.h>.  (This is in order to accomodate for the GNU Rx
library.)
1997-08-24 15:33:49 +00:00
Mikael Djurfeldt
95f5b0f5ec * ramap.c (scm_ra_matchp, scm_array_fill_int, racp, ramap_1,
ramap_2o, scm_array_index_map_x, raeql_1, scm_array_equal_p),
unif.c (scm_vector_set_length_x, scm_uniform_vector_length,
scm_array_p, scm_array_rank, scm_array_dimensions,
scm_enclose_array, scm_array_in_bounds_p, scm_uniform_vector_ref,
scm_cvref, scm_array_set_x, scm_array_contents, scm_array_to_list,
scm_array_prototype): Added case scm_tc7_wvect.
1997-08-24 03:29:35 +00:00
Gary Houston
efb997f535 * errno.h: prototype for scm_strerror.
* error.c (scm_strerror): new procedure.
1997-08-23 18:49:35 +00:00
Mikael Djurfeldt
1a0e096c86 * list.c (scm_list_append_x): Allow non-pair as last argument.
This is consistent with the R4RS append and is probably the
correct behaviour as specified by R2RS.  (Thanks to Radey Shouman)
1997-08-18 13:17:46 +00:00
Gary Houston
6afcd3b2b6 * stime.h: prototype for scm_times.
* stime.c (scm_times): new procedure.
* ioext.c (scm_fseek): if the first argument is a file descriptor
call lseek.
(scm_ftell): if the first argument is a file descriptor call lseek
(sic).
* filesys.h: prototypes for scm_open_fdes, scm_fsync.
* filesys.c (scm_chmod): if the first argument is a file descriptor,
call fchmod.
(scm_chown): if the first argument is a port or file descriptor,
call fchown.
(scm_truncate_file): new procedure.
Add DEFER/ALLOW INTS to a few other procedures.
(scm_fsync): new procedure.
(scm_open_fdes): new procedure.
(scm_open): use scm_open_fdes.  If mode isn't specified, 666 will
now be used.
(scm_fcntl): the first argument can now be a file descriptor.  The
third argument is now optional.

* posix.c (scm_execl, scm_execlp): make the filename argument
compulsory, since omitting it causes SEGV.
(scm_sync): return unspecified instead of #f.
(scm_execle): new procedure.
(environ_list_to_c): new procedure.
(scm_environ): use environ_list_to_c.  disable interrupts.
(scm_convert_exec_args): take pos and subr arguments and
improve error checking.

* boot-9.scm: define tms accessors: clock, utime, stime, cutime,
cstime.
1997-08-16 18:48:44 +00:00
Mikael Djurfeldt
0824b52425 * stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c
(scm_call_with_new_thread): Bugfix: SCM_WNA should go as third
argument to SCM_ASSERT.  Furthermore, the name of the function
should be passed as first argument when signalling
SCM_WNA. (Thanks to Thomas Morgan)
1997-08-14 15:00:03 +00:00
Mikael Djurfeldt
4ed948d4f1 * * gh_io.c (gh_write): New function. 1997-08-13 14:55:34 +00:00
Gary Houston
7a6f1ffa10 * ioext.h: fix up prototypes.
* ioext.c (scm_dup_to_fdes): renamed from scm_primitive_dup2.
Scheme name is now dup->fdes.
(scm_dup_to_fdes): make the second argument optional and
fold in the functionality of scm_primitive_dup.
(scm_primitive_dup): deleted.
* fports.h (SCM_P): prototypes for scm_setvbuf, scm_setfileno.
* fports.c (scm_setbuf0): don't disable the setbuf if MSDOS or
ultrix are defined.  Use setvbuf instead of setbuf.
(scm_setvbuf): new procedure.
(scm_init_fports): intern _IOFBF, _IOLBF, _IONBF.
(scm_setfileno): moved from ioext.c.
(scm_fgets): cast SCM_STREAM to (FILE *), remove unused lp variable.
(top of file): Delete 25 lines of probably obsolete CPP hair for MSDOS.

* boot-9.scm (move->fdes, dup->port): use dup->fdes, not primitive-dup.
(dup->fdes): deleted, now done in C.
1997-07-29 02:21:08 +00:00
Marius Vollmer
a0cb6cb0ec *** empty log message *** 1997-07-27 09:11:05 +00:00
Mikael Djurfeldt
269861c775 * eval.c (scm_apply): Handle the case when a tc7_sybr_2 is applied
to a list of length zero correctly.
1997-07-25 15:04:50 +00:00
Tim Pierce
3cb988bd00 Line-oriented i/o:
scm_gen_read_line
scm_read_line
scm_fgets
scm_generic_fgets
1997-07-23 21:20:55 +00:00
Gary Houston
e38303a26d * ioext.h: removed scm_duplicate_port prototype.
* ioext.c (scm_primitive_dup2): return the new file descriptor
instead of SCM_UNSPECIFIED, since similarity to scm_primitive_dup
is convenient.
(scm_fdopen): bug fix: don't try to make port unbuffered until its
stream has been set.
(scm_duplicate_port): deleted, there's now an implementation in
boot-9.scm.
(scm_primitive_dup2): do nothing if newfd == oldfd.

* boot-9.scm (dup->port, dup->inport, dup->outport, dup->fdes,
dup, fdes->inport, fdes->outport, port->fdes): new procedures.
(duplicate-port): was a C primitive, now it's here.
(move->fdes): allow the first argument to be a file descriptor.
Return the modified port or file descriptor (was unspecified.)
1997-07-21 08:52:26 +00:00