mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-28 07:50:20 +02:00
6613 lines
246 KiB
Text
6613 lines
246 KiB
Text
1998-10-29 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
This change adds the ability to use `unread-char' multiple times
|
||
without interspersed reads and adds the new procedure
|
||
`unread-string'. The change is optimized for the common case of
|
||
unreading a single character. This is also the reason behind the
|
||
choice to store characters in the port itself: in most cases no
|
||
extra malloc is required.
|
||
|
||
The amount of code in some macros in ports.h has been increased to
|
||
the extent that they would fit better as C functions, but, since
|
||
this code belongs to the port representation, such functions
|
||
should be placed in ports.c which would cause calls back and forth
|
||
between ports.c and genio.c. That is not good for performance.
|
||
Also, keeping them as macros allows the compiler to do some
|
||
optimizations which are needed to make the current interface
|
||
(SCM_CRDYP, SCM_CGETUN, SCM_TRY_CLRDY) efficient.
|
||
|
||
One benchmark (Guile startup time) indicates an increase of
|
||
loading speed of 1%. Another (reading (using `read') boot-9.scm
|
||
10 times) shows no change in performance.
|
||
|
||
(Caveat: Since Gary is redesigning I/O anyway, no big efforts were
|
||
made to find a beautiful solution.)
|
||
|
||
* ports.h (SCM_CLRDY, SCM_CUNGET, SCM_CGETUN): Rewritten.
|
||
(SCM_TRY_CLRDY): New macro: Only clear the first unread
|
||
character. (SCM_CLRDY clears all.)
|
||
(SCM_N_READY_CHARS): New macro: Returns number of unread
|
||
characters in a port. Returns wrong answer if SCM_CRDYP is false.
|
||
(struct scm_port_table): New fields: `entry' contains port table
|
||
index, `cp' points to last unread char, `cbuf' is the buffer for
|
||
unread chars, `cbufend' points after end of the character buffer.
|
||
|
||
* ports.h, ports.c (scm_unread_string): New procedure.
|
||
(scm_grow_port_cbuf): New function.
|
||
|
||
* ports.c (scm_add_to_port_table, scm_remove_from_port_table):
|
||
Handle new fields.
|
||
(scm_generic_fgets), fports.c (local_fgets): Use a loop
|
||
to read unread characters. Use SCM_TRY_CLRDY instead of
|
||
SCM_CLRDY.
|
||
|
||
* ioext.c (scm_ftell): Use SCM_N_READY_CHARS to correct position.
|
||
|
||
* genio.c (scm_getc): Use SCM_TRY_CLRDY instead of SCM_CLRDY.
|
||
|
||
* genio.c, genio.h (scm_ungets): New function.
|
||
|
||
* genio.c (scm_puts): Removed mysterious TRANSCRIPT_SUPPORT code
|
||
sections.
|
||
|
||
1998-10-28 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* threads.h (scm_thread_sleep, scm_thread_usleep): Fixed
|
||
declarations. (Thanks to Russ McManus.)
|
||
|
||
1998-10-26 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* numbers.c (num2long): As a software archeologist, I'm proud of
|
||
this finding! :) Preliminary dating suggests an almost 4 year old
|
||
remnant from the SCM ancestor. The sample has been removed from
|
||
the finding site and is now safely stored in the repository.
|
||
|
||
* numbers.h: Removed prototype for num2long.
|
||
|
||
* unif.c (scm_array_set_x): Use scm_num2long instead of num2long.
|
||
|
||
* gh_data.c (gh_scm2doubles): Make it possible to pass result
|
||
array as second arg.
|
||
(gh_chars2byvect, gh_shorts2svect, gh_floats2fvect, gh_scm2chars,
|
||
gh_scm2shorts, gh_scm2longs, gh_scm2floats): New functions.
|
||
* gh.h: Updated and added prototypes.
|
||
|
||
* gh_data.c (gh_ints2scm): Handle integers outside INUM limits.
|
||
|
||
1998-10-24 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* gc.h: Remove all uses of SCM_P. (Thanks to Richard Polton.)
|
||
|
||
* guile-snarf.in: Never generate an empty file. (Thanks to
|
||
Richard Polton.)
|
||
|
||
* gh.h (gh_enter, gh_new_procedure0_0, gh_new_procedure0_1,
|
||
gh_new_procedure0_2, gh_new_procedure1_0, gh_new_procedure1_1,
|
||
gh_new_procedure1_2, gh_new_procedure2_0, gh_new_procedure2_1,
|
||
gh_new_procedure2_2, gh_new_procedure3_0, gh_new_procedure4_0,
|
||
gh_new_procedure5_0): Specify argument types, to appease C++
|
||
compilers. (Thanks to Brad Bowman.)
|
||
|
||
Bug reports from Russ McManus:
|
||
* guile-snarf.in: If the CPP environment variable is set, use that
|
||
as the C preprocessor, instead of the preprocessor autoconf
|
||
found.
|
||
* snarf.h (SCM_PROC): Cast the function pointer passed to
|
||
scm_make_gsubr, to satisfy C++.
|
||
|
||
* gh_eval.c (gh_eval_str_with_catch, gh_eval_file_with_catch):
|
||
Use the handler passed, instead of ignoring it and using
|
||
gh_standard_handler. (Thanks to Etienne Bernard.)
|
||
|
||
1998-10-20 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* ports.h: Put text after #endif in comment. (Thanks to Nicolas
|
||
Neuss.)
|
||
|
||
1998-10-19 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* __scm.h, alist.c, async.c, async.h, backtrace.h, chars.c,
|
||
continuations.c, debug.c, debug.h, dynl-dl.c, dynl.c, dynl.h,
|
||
dynwind.c, dynwind.h, eq.c, error.c, error.h, eval.c, eval.h,
|
||
feature.c, filesys.c, filesys.h, fports.c, fports.h, gc.c, gc.h,
|
||
genio.c, genio.h, gh.h, gh_data.c, gsubr.c, gsubr.h, hash.c,
|
||
hashtab.c, init.c, init.h, ioext.c, ioext.h, kw.c, libguile.h,
|
||
list.c, list.h, load.c, load.h, mallocs.c, markers.c,
|
||
mit-pthreads.c, net_db.c, numbers.c, numbers.h, options.c,
|
||
ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
|
||
procprop.h, procs.c, procs.h, ramap.c, ramap.h, regex-posix.c,
|
||
regex-posix.h, root.c, root.h, scmsigs.c, scmsigs.h, script.c,
|
||
script.h, simpos.c, simpos.h, smob.c, smob.h, snarf.h, socket.c,
|
||
srcprop.c, stackchk.c, stackchk.h, stacks.c, stime.c, stime.h,
|
||
strings.c, strings.h, strports.c, struct.c, struct.h, symbols.c,
|
||
symbols.h, tags.h, threads.c, throw.h, unif.c, variable.c,
|
||
vectors.c, vectors.h, version.h, vports.c, weaks.c: Update
|
||
copyright years.
|
||
|
||
* script.c (scm_compile_shell_switches): Define
|
||
use-emacs-interface in the root module, so the repl code can see
|
||
it. See today's change to top-repl in ice-9/boot-9.scm.
|
||
|
||
* filesys.c (set_element, get_element): Make sure that `element'
|
||
is a cell before applying SCM_FPORTP to it. (Thanks to Jost
|
||
Boekemeier and Jorgen "forcer" Schaefer.)
|
||
|
||
1998-10-18 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* chars.c (scm_charnames): In ASCII character name table, make
|
||
newlines print as #\newline by default, not #\nl.
|
||
|
||
* Makefile.am (libguile_la_SOURCES, BUILT_SOURCES): Put these in
|
||
alphabetical order. Oh thrills. But it helps me know how far
|
||
along in the compilation I am.
|
||
* Makefile.in: Regenerated.
|
||
|
||
1998-10-18 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* unif.c (scm_raprin1): Changed print syntax for byte vectors from
|
||
#bytes(...) to #y(...), and syntax for short vectors from
|
||
#short(...) to #h(...). This may seem nutty, but, like the other
|
||
uniform vectors, byte vectors and short vectors want to have the
|
||
same print and read syntax (and, more basic, want to have read
|
||
syntax!). Changing the read syntax to use multiple characters
|
||
after the hash sign breaks with the conventions used in R5RS and
|
||
the conventions used for the other uniform vectors. It also
|
||
introduces complexity in the current reader, both on the C and
|
||
Scheme levels. (The Right solution is probably to change the
|
||
syntax and prototypes for uniform vectors entirely.)
|
||
|
||
1998-10-17 Jim Blandy <jimb@savonarola.red-bean.com>
|
||
|
||
Don't use local_fgets on sockets; ftell doesn't work on sockets.
|
||
(Thanks to Jorgen "forcer" Schaefer.)
|
||
* ports.h (SCM_NOFTELL): New flag.
|
||
* fports.c (local_fgets): If it's set, use the generic fgets.
|
||
* socket.c (scm_socket): Set SCM_NOFTELL on the ports we produce.
|
||
|
||
1998-10-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* script.c (scm_compile_shell_switches): Add handling of -q switch
|
||
(inhibit loading of user init file).
|
||
(scm_shell_usage): Add usage text for -q switch.
|
||
(scm_compile_shell_switches): Always load user init file first if
|
||
it is loaded at all.
|
||
|
||
1998-10-16 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* stime.c: The CPP hair to determine a value for CLKTCK is weird,
|
||
and is now broken under NetBSD. I can't fathom what it's trying
|
||
to do, so I've replaced it with something that I do understand,
|
||
which seems to work, and which isn't broken on NetBSD. "Progress?
|
||
You Decide." (Thanks to Perry Metzger.)
|
||
|
||
* regex-posix.c (scm_regexp_exec): Add a cast to remove a
|
||
signed/unsigned comparison.
|
||
|
||
1998-10-15 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
Warning fixes from Greg Harvey:
|
||
* unif.c (scm_array_set_x): initializer for pos
|
||
* throw.c (scm_ithrow): added initializer for jmpbuf (SCM_UNDEFINED)
|
||
* struct.c (scm_struct_ref, scm_struct_set_x): Added
|
||
initializers for field_type, since EGCS so desparately wants to
|
||
play dumb
|
||
* debug.h (scm_make_gloc, scm_gloc_p, scm_make_iloc, scm_memcons,
|
||
scm_mem_to_proc, scm_proc_to_mem, scm_debug_hang): Added prototypes
|
||
when GUILE_DEBUG is defined.
|
||
* dynwind.h (scm_wind_chain): Same.
|
||
* ports.h (scm_pt_size, scm_pt_member): Same.
|
||
* print.h (scm_current_pstate): Same.
|
||
* procs.h (scm_make_cclo): Same.
|
||
|
||
1998-10-14 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
Handle short and long long uniform arrays properly. (Thanks to
|
||
Clark McGrew.)
|
||
* ramap.c (scm_ra_matchp, scm_array_fill_int, scm_array_index_map_x,
|
||
raeql_1): Add cases for scm_tc7_svect (short vectors) and
|
||
scm_tc7_llvect (long long vectors).
|
||
|
||
Change the way libguile and boot-9.scm are timestamped, to try to
|
||
get rid of these spurious mismatch warnings. Now both
|
||
libguile/versiondat.h and ice-9/version.scm are generated directly
|
||
by the configuration process, rather than having version.scm
|
||
generated directly, and libguile/versiondat.h generated by the
|
||
Makefile, which is generated by configure. It seems that
|
||
sometimes the Makefile would change, but versiondat.h depends on
|
||
Makefile.in, not Makefile, so it wouldn't get rebuilt.
|
||
* Makefile.am (versiondat.h): Target removed; this is generated
|
||
directly by the configure script now.
|
||
(BUILT_SOURCES): Remove versiondat.h.
|
||
* versiondat.h.in: New file, transformed by the configure script
|
||
into versiondat.h.
|
||
* Makefile.in: Regenerated.
|
||
|
||
* (__scm.h, alist.c, eval.c, feature.c, gsubr.c, numbers.c,
|
||
options.c): Rename RECKLESS -> SCM_RECKLESS, CAUTIOUS ->
|
||
SCM_CAUTIOUS; this way, 1) there's only one version of each flag
|
||
to define (we used to have both RECKLESS and SCM_RECKLESS), and 2)
|
||
if we want to use them in a header file some day, we can. (Thanks
|
||
to Michael Livshin.)
|
||
|
||
* stime.c (scm_get_internal_real_time): Do the arithmetic using
|
||
SCM numbers, so we won't have rollover problems; the range of a
|
||
signed long in milliseconds is about 25 days. (Thanks to Karl
|
||
Hegbloom.)
|
||
|
||
Don't redefine sleep and usleep; fix this problem now.
|
||
* coop.c (sleep, usleep): Remove declarations; we don't use or
|
||
redefine these any more.
|
||
(scm_thread_usleep, scm_thread_sleep): New functions which do the
|
||
job of usleep and sleep in a thread-friendly way. We can use
|
||
these in the rest of Guile. Define versions for systems both with
|
||
and without iselect.
|
||
* threads.h (scm_thread_usleep, scm_thread_sleep): New declarations.
|
||
* scmsigs.c (usleep): Clean up oddities declaring usleep; since
|
||
we're just using it, not redefining it, we can use a K&R style
|
||
declaration here.
|
||
(sleep): Declare this, too, if the system hasn't.
|
||
(scm_sleep, scm_usleep): Use scm_thread_sleep and
|
||
scm_uthread_sleep if they're available; otherwise, just call the
|
||
system functions.
|
||
* scmconfig.h.in: Regenerated.
|
||
|
||
* coop.c (scm_thread_sleep): Make `slept' an unsigned long.
|
||
|
||
* coop.c (coop_sleephelp): Remove ANSI #ifdef hair.
|
||
|
||
1998-10-12 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* threads.c: Doc fix.
|
||
|
||
The argument type of usleep varies from system to system,
|
||
as does the return type. We really shouldn't be redefining usleep
|
||
at all, but I don't have time to clean that up before the 1.3.
|
||
release. It's on the schedule for afterwards. (Thanks to Julian
|
||
Satchell.)
|
||
* coop.c (usleep): Use USLEEP_ARG_TYPE in prototype and
|
||
definition.
|
||
* scmsigs.c (usleep): Use USLEEP_ARG_TYPE in prototype.
|
||
* scmconfig.h: Regenerated.
|
||
|
||
* simpos.c (scm_software_type): Procedure deleted. This isn't the
|
||
right way to handle system variation. Autoconf's approach is the
|
||
way and the light.
|
||
* simpos.h (scm_software_type): Declaration deleted.
|
||
|
||
* script.c (scm_find_executable): Don't test if unix is #defined
|
||
here; first, NetBSD doesn't #define it, and second, it's the wrong
|
||
way to go about these things. (Thanks to Perry Metzger.)
|
||
(dld_find_executable): Delete this MSDOS support code. This isn't
|
||
the way we want to support this; it needs to be rethunk at a
|
||
larger scale.
|
||
|
||
* genio.c (scm_do_read_line): Don't just politely check that the
|
||
line was either non-empty or EOF. Abort if it's empty and not
|
||
EOF.
|
||
|
||
1998-10-11 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* scmconfig.h.in: Regenerated.
|
||
|
||
* libguile.h: Don't omit the dynamic linking functions. (Thanks
|
||
to Greg Badros.)
|
||
|
||
* genio.c (scm_do_read_line): Count lines correctly when the file
|
||
doesn't end in a newline.
|
||
|
||
1998-10-10 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* genio.c (scm_do_read_line): Maintain the line count correctly.
|
||
(Thanks to Harvey J. Stein and Greg Harvey.)
|
||
|
||
* gc.c (scm_return_first): Remove #ifdef __STDC__ garbage; Guile
|
||
requires ANSI now.
|
||
|
||
* numbers.c (big2str): Protect t from garbage collection until
|
||
we're done. (Thanks to Gary Houston.)
|
||
|
||
1998-10-09 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* Makefile.am (libguile_la_LDFLAGS): Increment shared library
|
||
version number.
|
||
* Makefile.in: Regenerated.
|
||
|
||
* fports.h (scm_setbuf0, scm_setvbuf, scm_setfileno,
|
||
scm_evict_ports, scm_open_file, scm_stdio_to_port): Get rid of
|
||
SCM_P macro.
|
||
|
||
Do magic to mix reads and writes on stdio FILE-based ports.
|
||
(Thanks to Christian Lynbech.)
|
||
* fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY):
|
||
New macros.
|
||
(pre_read, pre_write): New functions.
|
||
(local_fgetc, local_fgets, local_ffwrite, local_fputc,
|
||
local_fputs): Call them.
|
||
(local_fflush): Mark the port as ready for reading and writing.
|
||
(scm_stdio_to_port): Set the FPORT_READ_SAFE, FPORT_WRITE_SAFE
|
||
flags on new port objects. This might not be accurate --- who
|
||
knows what state the FILE * is in when we get it --- but it won't
|
||
do extraneous calls to fflush or fseek, so it's no worse than the
|
||
behavior before this change.
|
||
* ports.h: Add comment.
|
||
|
||
Centralize the creation of port objects based on stdio FILE * in
|
||
fports.c; don't just throw them together anywhere.
|
||
* fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
|
||
what the rest of Guile wants. Don't set the revealed count;
|
||
that's only appropriate for stdin, stdout, stderr.
|
||
(scm_standard_stream_to_port): This function does set the revealed
|
||
count.
|
||
* init.c (scm_init_standard_ports): Use scm_standard_stream_to_port,
|
||
not scm_stdio_to_port.
|
||
* filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
|
||
* fports.c (scm_open_file): Same.
|
||
* posix.c (scm_pipe): Same.
|
||
* socket.c (scm_sock_fd_to_port): Same.
|
||
* ioext.c (scm_fdopen): Same.
|
||
(scm_freopen): Moved from here to...
|
||
* fports.c (scm_freopen): ... here. This is really something that
|
||
munges the internals of an fport, so it should go here.
|
||
* fports.h (scm_stdio_to_port): Adjust prototype.
|
||
(scm_standard_stream_to_port, scm_freopen): New protoypes.
|
||
* ioext.h (scm_freopen): Prototype removed.
|
||
|
||
* filesys.c (set_element, get_element): This can work on both pipe
|
||
and file ports, so use SCM_FPORTP to typecheck, instead of testing
|
||
for scm_tc16_fport.
|
||
|
||
* scmconfig.h.in: Regenerated.
|
||
|
||
Change the definition of the functions in scm_ptobfuns so that
|
||
they get passed the port object, not the port's stream.
|
||
* ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
|
||
* gc.c (scm_gc_sweep): Pass the port itself to the free function.
|
||
* genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
|
||
Pass the port itself to the scm_ptobs function.
|
||
* ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
|
||
scm_generic_fgets): Same.
|
||
(putc_void_port, puts_void_port, write_void_port, flush_void_port,
|
||
getc_void_port, fgets_void_port, close_void_port): Just change the
|
||
argument names; these functions don't really do anything.
|
||
* fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
|
||
local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
|
||
port as an argument, and use SCM_STREAM to get the stdio FILE *.
|
||
Also, use prototyped definitions, and get rid of the extra
|
||
declarations.
|
||
(scm_fptob, scm_pipob): We don't need casts here any more.
|
||
* strports.c (prinstpt): Use prototype declarations.
|
||
(stputc, stwrite, stputs, stgetc): Take the port as an argument,
|
||
and use SCM_STREAM to get the string info. Also, use prototyped
|
||
definitions, and get rid of the extra declarations.
|
||
* vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
|
||
noop0): Same.
|
||
|
||
* ports.h (scm_ptobfuns): Replace uses of SCM_P with a straight
|
||
prototype; it's okay (preferred, even!) to use ANSI C in Guile.
|
||
|
||
* fports.c (local_fgetc, local_fgets): Renamed from scm_fgetc and
|
||
scm_fgets, for consistency.
|
||
(scm_fptop, scm_pipob): References updated.
|
||
|
||
1998-10-08 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
Include the source location in error messages for scripts.
|
||
* init.c (scm_boot_guile_1): Use scm_internal_lazy_catch, so the
|
||
stack is still there when we catch the error.
|
||
* throw.c (handler_message): If we are handling an error with a
|
||
message, then put together the proper arguments and call
|
||
scm_display_error, instead of scm_display_error_message. That
|
||
displays source location, if it can find it.
|
||
|
||
1998-10-07 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* gc.c (scm_unprotect_object): Change this so that calls to
|
||
scm_protect_object and scm_unprotect_object nest properly.
|
||
(scm_protect_object): Doc fixes.
|
||
|
||
* strings.c (scm_string_set_x): Require the argument to be a
|
||
writable string, not a substring or a symbol.
|
||
* strings.h (SCM_RWSTRINGP, SCM_NRWSTRINGP): New predicates.
|
||
(Thanks to John Redford and Charbel Jacquin.)
|
||
|
||
* scmconfig.h.in: Regenerated; ../acconfig.h has changed.
|
||
|
||
1998-10-07 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* eval.c (safe_setjmp): Remove this misunderstanding.
|
||
(ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Replace with references to
|
||
ordinary setjmp.
|
||
|
||
1998-10-06 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* libguile.h: Mark these as C declarations, for compilation by C++
|
||
compilers.
|
||
|
||
* snarf.h (SCM_PROC, SCM_PROC1): Remove very odd code in #ifdef
|
||
__cplusplus clause. I seriously doubt this ever worked the way
|
||
the author seems to have intended.
|
||
|
||
1998-10-05 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
Utterly needless cleanups to hopelessly messy code.
|
||
* ports.c: Doc fixes.
|
||
(scm_fflush): Moved to ...
|
||
* genio.c (scm_fflush): ... here, amongst all the other port
|
||
method invocation functions.
|
||
* genio.h, ports.h: The prototype moves too.
|
||
|
||
1998-10-04 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* backtrace.c (display_error_body): The current frame does not
|
||
always have a parent frame; consider a function called directly
|
||
from the MAIN_FUNC passed to scm_boot_guile. (Thanks to Maciej
|
||
Stachowiak.)
|
||
|
||
* alloca.c (alloca): Undo yesterday's changes, and simply call
|
||
malloc directly for storage, and abort if we don't get what we
|
||
want. The situation is much simpler --- just call malloc. Emacs
|
||
has bizarre/evil requirements (signal handlers might malloc unless
|
||
you set this global flag, so you have to set the flag around all
|
||
calls to malloc) which we are certainly not going to conform to,
|
||
so we can do the simple and obvious thing.
|
||
|
||
* coop.c (coop_condition_variable_wait): Make this function
|
||
static. It's only useful internally --- you should never just
|
||
wait on a condition variable.
|
||
* coop-defs.h (coop_condition_variable_wait): Delete prototype.
|
||
|
||
1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* unif.c (scm_array_set_x): Accept any kind of number as an
|
||
element for a uniform vector of doubles. This is more consistent
|
||
with Scheme's view of numbers. (Thanks to Miroslav Silovic.)
|
||
|
||
* alloca.c: Use scm_must_malloc to obtain storage. Hopefully this
|
||
works; I can't conveniently test it myself. (Thanks to Dvid
|
||
Tillman for the bug report.)
|
||
|
||
* init.c: Doc fixes.
|
||
|
||
* init.c (invoke_main_func): Load the startup files (boot-9.scm)
|
||
from here, not from scm_compile_shell_switches (which is a pretty
|
||
dumb place to do it).
|
||
(scm_load_startup_files): New function.
|
||
(scm_ice_9_already_loaded): Variable moved to here from script.c.
|
||
* script.c (scm_compile_shell_switches): Don't load the startup
|
||
files here.
|
||
(scm_ice_9_already_loaded): Variable moved.
|
||
* init.c (scm_load_startup_files): Prototype for new function.
|
||
* gh_init.c (gh_enter): Doc fix.
|
||
|
||
1998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
|
||
|
||
Some anti-warning changes from Greg Harvey.
|
||
* gh_data.c (gh_scm2doubles): Initialize m, to avoid compiler
|
||
warnings when it doesn't understand our NORETURN declarations in
|
||
error.h.
|
||
* posix.c (scm_mknod): Similar.
|
||
|
||
1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* posix.c (scm_getpwuid): If we can't find an entry, return our
|
||
own message, instead of using scm_syserror --- the getpwMUMBLE
|
||
functions don't set `errno' to anything interesting.
|
||
|
||
1998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
|
||
|
||
Get rid of warnings from the cooperative threading system.
|
||
* threads.h (scm_single_thread_p, scm_yield,
|
||
scm_call_with_new_thread, scm_join_thread, scm_make_mutex,
|
||
scm_lock_mutex, scm_unlock_mutex, scm_make_condition_variable,
|
||
scm_wait_condition_variable, scm_signal_condition_variable): Add
|
||
prototypes for these Scheme-visible functions.
|
||
* coop-defs.h (coop_next_runnable_thread,
|
||
coop_wait_for_runnable_thread_now, coop_wait_for_runnable_thread):
|
||
Prototypes for these here, even though they're from iselect.c.
|
||
(coop_condition_variable_wait, coop_join): Add prototypes.
|
||
* coop-threads.c (scm_threads_free_thread, scm_threads_free_mutex,
|
||
scm_threads_free_condvar): Make these smob functions static.
|
||
* coop-threads.h (coop_init): Give this a real prototype.
|
||
* coop.c: #include <unistd.h>, if we have it, for `usleep' and `sleep'.
|
||
(coop_next_runnable_thread): No need to provide prototype; it's in
|
||
coop-defs.h.
|
||
|
||
* scmconfig.h.in: .detarenegeR
|
||
|
||
* iselect.c, threads.c: Doc fixes.
|
||
|
||
1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* Makefile.in: Regenerated with a patched automake, to get
|
||
dependency generation right when using EGCS.
|
||
|
||
* inet_aton.c (inet_aton): Add prototype, to remove compiler
|
||
warning. (Thanks to Robert Pluim.)
|
||
|
||
* inet_aton.c (inet_aton): Reassure the compiler that the
|
||
arguments to the <ctype.h> macros are all unsigned characters, not
|
||
signed characters.
|
||
|
||
1998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
|
||
|
||
Getting rid of more warnings...
|
||
* iselect.c: Test for MISSING_BZERO_DECL, not DECLARE_BZERO; see
|
||
today's change to ../configure.in.
|
||
* scmsigs.c: Test for MISSING_USLEEP_DECL, not DECLARE_USLEEP.
|
||
* scmconfig.h.in: Regenertaded.de.,.__
|
||
* stime.c (strptime): Declare this, #ifdef MISSING_STRPTIME_DECL.
|
||
(scm_localtime, scm_mktime): Use a const char * to manipulate the
|
||
time zone name.
|
||
|
||
* readline.c: Doc fix.
|
||
(rl_cleanup_after_signal, rl_free_line_state): Make these static.
|
||
* readline.h (scm_filename_completion_function): Add prototype.
|
||
(scm_init_readline): Make this into a prototype.
|
||
|
||
* readline.c (scm_filename_completion_function): Use SCM_PROC to
|
||
declare this, instead of calling scm_make_subr manually.
|
||
|
||
1998-10-02 Jim Blandy <jimb@savonarola.red-bean.com>
|
||
|
||
* readline.h (scm_init_readline): Add prototype for this.
|
||
(scm_init_readline): Make this a real prototype.
|
||
|
||
1998-09-30 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
Warning fixes from Maciej Stachowiak:
|
||
* backtrace.h (scm_display_application, scm_backtrace): Add
|
||
prototypes.
|
||
* debug.c (scm_m_start_stack): Make this function static.
|
||
* fluids.h (scm_fluid_p): Add prototype.
|
||
* procprop.c (scm_i_procedure_arity): Make this function static.
|
||
* regex-posix.c (scm_regexp_error_msg): Make this function static.
|
||
* regex-posix.h (scm_init_regex_posix): Use prototype, not K&R decl.
|
||
* root.h (scm_dynamic_root): Add external prototype.
|
||
* scmsigs.h (scm_usleep): Add external prototype.
|
||
* script.h (scm_init_script): Use prototype, not K&R decl.
|
||
* stacks.h (scm_stack_id): Add external prototype.
|
||
* symbols.h (scm_sysintern0_no_module_lookup): Add external prototype.
|
||
|
||
1998-09-30 Mark Galassi <rosalia@cygnus.com>
|
||
|
||
* gh.h: took out the definitions of vset and vref, since they are
|
||
replaced by the proper vector routines that correspond to the R4RS
|
||
procedures.
|
||
|
||
1998-09-29 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* snarf.h (SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): New macros;
|
||
these are analogous to SCM_VCELL and SCM_GLOBAL_VCELL but take a
|
||
third argument, a C expression that should result in a SCM value,
|
||
which is used to initialize the variable. Reimplemented
|
||
SCM_CONST_LONG in terms of SCM_VCELL_INIT. (Thanks to Maciej
|
||
Stachowiak.)
|
||
|
||
* version.h (scm_libguile_config_stamp): Add prototype.
|
||
(From Maciej Stachowiak.)
|
||
|
||
1998-09-26 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* eval.c (scm_force): Assert that x is SCM_NIMP to fix segv when
|
||
(force 9) is tried. (Thanks to Karl M. Hegbloom.)
|
||
|
||
1998-09-06 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* print.c (scm_iprin1): Rather than having one i, and using it in
|
||
several places, declare a fresh i local to each block where it is
|
||
used, and give it a signedness appropriate to its use in each case.
|
||
(scm_iprlist): Same.
|
||
|
||
* print.c (scm_iprin1): Add cast to avoid unsigned/signed
|
||
comparison warnings.
|
||
|
||
* print.c (ENTER_NESTED_DATA): Make i an unsigned long, to avoid
|
||
signed/unsigned clashes.
|
||
|
||
* posix.h (scm_tmpnam): Added prototype.
|
||
|
||
* objects.h (scm_set_object_procedure_x, scm_make_class_object,
|
||
scm_make_subclass_object): Add external prototypes.
|
||
|
||
* numbers.c (scm_mkbig): Add cast, and note that signed/unsigned
|
||
comparison is okay here.
|
||
|
||
* numbers.c (scm_istr2int): Add cast; len is known to be positive.
|
||
|
||
* numbers.c (scm_bigcomp): Clarify logic, and avoid relying on the
|
||
(true, but confusing) fact that -1 == ((unsigned) 0 - 1).
|
||
|
||
* numbers.c (scm_adjbig): Make nsiz an scm_sizet, to avoid mixing
|
||
signed/unsigned.
|
||
|
||
* load.c (swap_port): Make this function static.
|
||
|
||
* load.c (scm_search_path): Make max_path_len and max_ext_len
|
||
unsigned, since they're compared against string sizes.
|
||
|
||
* load.c (init_build_info): Make i unsigned.
|
||
|
||
* ioext.h (scm_read_line): Add prototype.
|
||
|
||
* hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
|
||
scm_hash_fn_remove_x): Make hash bucket index local variable k
|
||
unsigned. Use scm_ulong2num to pass it to SCM_ASSERT as
|
||
accurately as possible.
|
||
|
||
* gh_data.c (gh_set_substr): Add casts to avoid signed/unsigned
|
||
comparisons, and range checking to make sure those casts are
|
||
harmless.
|
||
|
||
* stackchk.h (SCM_STACK_OVERFLOW_P): Change definition to avoid
|
||
signed/unsigned comparisons.
|
||
|
||
* smob.c (scm_numsmob): Make this an int, not an scm_sizet, to
|
||
avoid signed/unsigned comparisons.
|
||
* smob.h (scm_numsmob): Change extern declaration to match.
|
||
|
||
* ports.c (scm_numptob): Make this an int, not an scm_sizet, to
|
||
avoid signed/unsigned comparisons.
|
||
* ports.h (scm_numptob): Change extern declaration to match.
|
||
(scm_current_load_port, scm_set_port_line_x,
|
||
scm_set_port_column_x): New prototypes.
|
||
|
||
* gsubr.c (GSUBR_TEST): Don't #define this. Nobody's using the
|
||
test code, and it causes warnings.
|
||
|
||
* gh.h (gh_int2scmb, gh_uniform_vector_length,
|
||
gh_uniform_vector_ref): Added prototypes.
|
||
|
||
* Makefile.am (libguile_la_SOURCES): Include Scheme-level
|
||
debugging support unconditionally. That's backtrace.c, stack.c,
|
||
debug.c, and srcprop.c.
|
||
(EXTRA_libguile_la_SOURCES): Omit those from here.
|
||
* Makefile.in: Regenerated.
|
||
|
||
1998-08-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* options.c (scm_options): Bugfix: Allow empty list of options!
|
||
|
||
* debug.c, debug.h (scm_single_step): Removed.
|
||
(scm_with_traps): New procedure. This procedure could easily be
|
||
written in Scheme but needs to be highly optimized.
|
||
|
||
* eval.h, eval.c: New evaluator trap flag: SCM_TRAPS_P.
|
||
|
||
* eval.c (SCM_CEVAL, SCM_APPLY): Removed resetting of trap flags.
|
||
Check SCM_TRAPS_P before trapping.
|
||
|
||
1998-07-30 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
Changes to avoid signed/unsigned comparison warnings.
|
||
* gc.c (scm_mtrigger, scm_heap_size): Make these unsigned longs.
|
||
(scm_gc_sweep): Make n and j local to the blocks they're used in,
|
||
so they can have appropriate types for each application. Make i
|
||
signed. Use initializers in some spots. I'll probably pay for
|
||
all this tweaking.
|
||
(scm_must_malloc, scm_must_realloc): Use scm_sizet for size args.
|
||
(scm_must_realloc): Make nm unsigned.
|
||
(init_heap_seg): Make new_seg_index and n_new_objects signed.
|
||
(scm_init_storage): Use prototype-style definition, and make the
|
||
argument unsigned.
|
||
* gc.h (scm_heap_size, scm_mtrigger, scm_must_malloc,
|
||
scm_must_realloc, scm_init_storage): Adjust prototype accordingly.
|
||
|
||
* filesys.c (scm_readlink): Make local vars rv and size ints, to
|
||
avoid signed/unsigned comparison warnings, and because the return
|
||
value of readlink may be -1. Don't bother casting the third
|
||
argument to readlink.
|
||
|
||
* filesys.c (scm_dirname, scm_basename): Move these to their own
|
||
page, at the end of the file.
|
||
* filesys.h (scm_dirname, scm_basename): Add prototypes for these.
|
||
|
||
* eval.h (scm_eval_options_interface): Add external prototype for this.
|
||
* eval.c (scm_eval_options_interface): Use prototype-style def'n.
|
||
|
||
* eval.c (scm_lookupcar1): Make this static.
|
||
|
||
* dynl.h (scm_registered_modules, scm_clear_registered_modules):
|
||
Make these prototype declarations, not K&R-style.
|
||
|
||
* chars.c (scm_tables_prehistory): Add cast, to remove signed/
|
||
unsigned comparison warning.
|
||
|
||
* appinit.c: File removed. It had a single function in it, empty,
|
||
whose reason for existence is explained in no documentation or
|
||
comment. I think it's there as a default for some Tcl-style
|
||
initialization, but Tcl abandoned that approach a while ago.
|
||
* Makefile.am (libguile_la_SOURCES): Remove appinit.c.
|
||
(BUILT_SOURCES): Remove appinit.x.
|
||
* Makefile.in: Regenerated.
|
||
|
||
1998-07-29 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* Makefile.in: Regenerated using the last public version of
|
||
automake, not the hacked Cygnus version.
|
||
|
||
1998-07-28 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
Remove Totoro kludge.
|
||
* Makefile.in, scmconfig.h.in: Regenerated.
|
||
* init.c, readline.c: Don't check if TOTORO is #defined.
|
||
|
||
1998-07-26 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
* Makefile.am: Adjust for new thread configuration system.
|
||
(INCLUDES): Include the value of THREAD_CPPFLAGS.
|
||
(guile_LDADD, check_ldadd): THREAD_LIBS_LOCAL has been renamed from
|
||
THREAD_LIBS.
|
||
(THREAD_LIBS): Definition deleted; automake will generate such
|
||
things automatically.
|
||
* Makefile.in: Regenerated.
|
||
|
||
1998-07-23 Jim Blandy <jimb@zwingli.cygnus.com>
|
||
|
||
Simplify smob and port marking; set the mark bit in the generic
|
||
marking code, and make marker routines only responsible for
|
||
turning up outgoing pointers.
|
||
* gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
|
||
before calling the marking function. Don't call the marking
|
||
function if it's zero.
|
||
* markers.c (scm_mark0): Just return #f. This function isn't
|
||
necessary at all now, but it's harmless to call it. We'll leave
|
||
it in so other folks' code doesn't croak at link time.
|
||
(scm_markcdr): Don't call SCM_SETGC8MARK.
|
||
* async.c (mark_async): Don't call SCM_SETGC8MARK.
|
||
* dynl.c (mark_dynl_obj): Same.
|
||
* root.c (mark_root): Same.
|
||
* srcprop.c (marksrcprops): Same.
|
||
* unif.c (markra): Same.
|
||
* variable.c (scm_markvar): Same.
|
||
* ports.c (scm_markstream): Same.
|
||
(void_port_ptob): Specify zero for our marking function.
|
||
* debug.c (debugobjsmob): Same.
|
||
* dynwind.c (guardsmob): Same.
|
||
* filesys.c (dir_smob): Same.
|
||
* fluids.c (fluid_smob): Same.
|
||
* fports.c (scm_fptob, scm_pipob): Same.
|
||
* mallocs.c (mallocsmob): Same.
|
||
* regex-posix.c (regex_t_smob): Same.
|
||
* smob.c (freecell, flob, bigob): Same.
|
||
* threads.c (thread_smob, mutex_smob, condvar_smob): Same.
|
||
* throw.c (jbsmob, lazy_catch_funs): Same.
|
||
|
||
1998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* eval.c (scm_copy_tree): Reverted last change: `eval' uses
|
||
scm_copy_tree on code in order not to let memoized code to leak
|
||
out. Thus, scm_copy_tree needs to copy vectors as well since
|
||
quasiquote can introduce evaluated code also inside vector
|
||
constants.
|
||
|
||
1998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* eval.c (scm_copy_tree): Removed ability to copy vectors.
|
||
|
||
* gh_data.c, gh.h (gh_ints2scm, gh_longs2ivect,
|
||
gh_ulongs2uvect): New procedures. (Complements gh_doubles2scm and
|
||
gh_doubles2dvect.)
|
||
|
||
* unif.c: Say that ivect and uvect are of type signed and unsigned
|
||
long instead of int in commentary so that it correctly describes
|
||
the implementation.
|
||
|
||
1998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* stime.c: Removed declaration of strptime. (It should be
|
||
declared by the system headers. If it turns out that some systems
|
||
don't, we'll handle that then.) (Thanks to Greg Troxel.)
|
||
|
||
* stime.h: Renamed TIMEH --> STIMEH
|
||
|
||
* backtrace.c (scm_display_error, scm_display_backtrace): In order
|
||
to increase portability, don't use structure assignment.
|
||
(Thanks to Nicolas Neuss.)
|
||
|
||
* iselect.c: Use LONG_MAX instead of ULONG_MAX for increased
|
||
portability.
|
||
(finalize_fd_sets): Added empty statement after last case label.
|
||
(Thanks to Nicolas Neuss.)
|
||
|
||
* gc.c (scm_igc): Changed //-comment into /*-comment. (Thanks to
|
||
Nicolas Neuss.)
|
||
|
||
Sat Jul 11 22:08:21 1998 Mikael Djurfeldt <mdj@totoro.red-bean.com>
|
||
|
||
* init.c, readline.c: OK, I won't have these readline.x bug
|
||
reports anymore. We've had them since April. The current reason
|
||
is a completely unintelligible failure of totoro.red-bean.com to
|
||
do the test for rl_getc_function in libreadline correctly. This
|
||
kludge overrides the test if we're on totoro so that the snapshot
|
||
generation process can work.
|
||
|
||
* readline.c: Define a strdup replacement if not existent on system.
|
||
|
||
1998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* vectors.c, vectors.h (scm_make_vector): Removed third argument.
|
||
This change makes scm_make_vector R5RS compatible. We cannot keep
|
||
the third argument since people want to be able to deduce the form
|
||
of the C function call only by looking at R5RS. (At the same time
|
||
we have removed some unnecessary complexity!)
|
||
|
||
* eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
|
||
net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
|
||
stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
|
||
argument in call to scm_make_vector.
|
||
|
||
1998-07-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* numbers.h (SCM_NUM2DBL): New macro. Complements SCM_NUMBERP.
|
||
This macro is useful in applications.
|
||
|
||
1998-06-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* load.c (scm_internal_parse_path): Renamed from scm_parse_path.
|
||
(scm_parse_path, scm_search_path): New Scheme level procedures.
|
||
|
||
* load.h (scm_internal_parse_path, scm_parse_path,
|
||
scm_search_path): Declared.
|
||
|
||
1998-06-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* filesys.c (dirname, basename): New procedures.
|
||
|
||
* init.c (scm_boot_guile_1): Removed condition around
|
||
scm_init_options.
|
||
|
||
* dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
|
||
new data type (guards) for representation of C level guards and
|
||
data on the wind chain.
|
||
(scm_internal_dynamic_wind): New function.
|
||
|
||
* dynwind.h: Declare scm_internal_dynamic_wind.
|
||
|
||
* root.h (scm_root_state): Added scm_cur_loadp.
|
||
|
||
* root.c (mark_root): Added comment about cur_loadp.
|
||
|
||
* load.c: #include "dynwind.h";
|
||
(scm_primitive_load): Use scm_inner_dynamic_wind to update
|
||
scm_cur_loadp.
|
||
|
||
* init.c (scm_init_standard_ports): Initialize scm_def_loadp.
|
||
|
||
* ports.c (current-load-port): New procedure.
|
||
|
||
1998-06-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* ioext.c (scm_isatty_p): Accept any kind of data as argument. If
|
||
not a tty, return #f.
|
||
|
||
* regex-posix.c (scm_regexp_exec): Free malloced memory. (Thanks
|
||
to Julian Satchell and Roland Kaufmann.)
|
||
|
||
* gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
|
||
(gh_write): Added declaration. (Thanks to Eiichi Takamori.)
|
||
|
||
1998-06-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
|
||
|
||
* debug.h, debug.c (scm_start_stack): New function. Implements
|
||
the guts of old scm_m_start_stack.
|
||
|
||
* debug.c (scm_m_start_stack): Use scm_start_stack.
|
||
|
||
* init.c (scm_start_stack, scm_restart_stack): Renamed to
|
||
start_stack and restart_stack. (These have static scope.)
|
||
|
||
1998-05-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* readline.c (rl_cleanup_after_signals, rl_free_line_state): New
|
||
readline functions to come in release 2.3. (Thanks to Chet
|
||
Ramey.)
|
||
(handle_errors): Use the above functions.
|
||
|
||
1998-05-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* readline.c: Improvements for readline support: Handle errors
|
||
better; Implement before-read-hook.
|
||
|
||
1998-05-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* init.c (scm_boot_guile_1), readline.c: Test for
|
||
HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE. (Need to
|
||
assure that we have version >= 2.1.)
|
||
|
||
1998-05-11 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* readline.c (scm_readline): Defer interrupts while we're calling
|
||
readline.
|
||
|
||
* readline.c (scm_add_history): Bugfix: Do strdup before giving
|
||
away the string to add_history.
|
||
(completion_function): Do completion for readline. (Thanks to
|
||
Andrew Archibald.)
|
||
(scm_filename_completion_function): New procedure: Filename
|
||
completer.
|
||
(current_input_getc): New function. Use this one instead of
|
||
standard getc from readline.
|
||
|
||
* throw.c, throw.h (scm_handle_by_throw): New function: This
|
||
handler throws errors to next handler on the dynwind chain.
|
||
|
||
1998-05-09 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* scmsigs.c (scm_usleep): Bugfix: Don't define j if it isn't
|
||
used.
|
||
|
||
1998-05-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* procprop.c (scm_i_procedure_arity): New function. Returns arity
|
||
of procedure.
|
||
(scm_procedure_properties): Modified to return arity together with
|
||
other properties.
|
||
(scm_procedure_property): Added the read-only property `arity'.
|
||
(scm_set_procedure_property_x): It is an error to set the `arity'
|
||
property.
|
||
|
||
* gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
|
||
prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
|
||
|
||
* procprop.h (scm_sym_arity): New symbol.
|
||
|
||
* objects.c (scm_set_object_procedure_x): New procedure: Use this
|
||
to set the dispatch procedure of an operator or entity object.
|
||
|
||
* objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
|
||
Made procedure slots read-only.
|
||
|
||
* eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
|
||
scm_tcs_cons_gloc case in zero args switch; Fixed args
|
||
construction for operators in scm_tcs_cons_gloc case in two args
|
||
switch.
|
||
|
||
1998-05-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* fluids.c: Removed use of assert.h (in order to avoid
|
||
__eprintf).
|
||
|
||
* Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
|
||
|
||
* dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
|
||
|
||
* eval.c (SCM_CEVAL): Do more thorough argument checking. This
|
||
change makes the evaluator safer at the cost of evaluation speed.
|
||
It handles the case when the user has added a non-immediate
|
||
improper end of the application form, e.g., `(+ 0 . x)'.
|
||
(Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to
|
||
minimize the extra cost as much as possible. The new code is
|
||
enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the
|
||
problem with structs planted directly in the code (e.g. by a
|
||
macro). This no longer causes segmentation fault. (Thanks to
|
||
Eric Hanchrow.)
|
||
|
||
* eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
|
||
arg `proc' in order to be able to throw errors; New argument
|
||
checking code.
|
||
|
||
* Removed extra #include "debug.h"
|
||
|
||
1998-04-25 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* scmsigs.c: Declare usleep as returning void on some systems.
|
||
(scm_usleep): Return SCM_INUM0 on those systems. (Thanks to Julian
|
||
Satchell.)
|
||
|
||
* coop.c (usleep): Return void on some systems.
|
||
|
||
1998-04-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
|
||
|
||
* coop.c: Changed return type of usleep to int.
|
||
|
||
* scmsigs.c (scm_usleep): New procedure; Declare usleep if it
|
||
isn't found in the OS.
|
||
|
||
* iselect.h: #define scm_internal_select select if GUILE_ISELECT
|
||
isn't enabled. (Thought that I had made this change ages ago...)
|
||
|
||
* iselect.c: Declare bzero if not defined by OS.
|
||
|
||
1998-04-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* dynl.c (scm_must_free_argv): Fixed memory leak due to negated
|
||
condition. (Thanks to John Tobey.)
|
||
|
||
* continuations.c (scm_make_cont), debug.c (scm_make_memoized,
|
||
scm_make_debugobj), eval.c (scm_makprom): SCM_DEFER/ALLOW_INTS -->
|
||
A section.
|
||
|
||
* __scm.h: Start the long-term project of moving to POSIX threads.
|
||
Phase 1: Classification of all critical sections.
|
||
(SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): New macros: Delimiters
|
||
for A sections. (See comments in __scm.h for details.)
|
||
|
||
* dynl.c: Only check that HAVE_DLOPEN is defined before loading
|
||
dynl-dl.c; Test on HAVE_LIBDLD instead of HAVE_DLD.
|
||
|
||
1998-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* Makefile.am (BUILT_SOURCES): Added cpp_err_symbols.c,
|
||
cpp_sig_symbols.c, libpath.h and versiondat.h to BUILT_SOURCES
|
||
(libpath.h, versiondat.h): Replaced dependency on Makefile with
|
||
dependencies on $(srcdir)/Makefile.in
|
||
$(top_builddir)/config.status in order to avoid circularity.
|
||
|
||
* script.c (scm_compile_shell_switches): Bugfix: Don't discount i
|
||
from argc if argc was 0 initially.
|
||
|
||
* Makefile.am (Makefile.am): Replaced THREAD_LIBS --> GUILE_LIBS
|
||
in generation of libpath.h.
|
||
|
||
1998-04-15 Mikael Djurfeldt <mdj@nada.kth.se>
|
||
|
||
* Makefile.am (libguile_la_LDFLAGS): Bumped version number of
|
||
libguile from 2 to 3.
|
||
|
||
1998-04-14 Mikael Djurfeldt <mdj@nada.kth.se>
|
||
|
||
* Makefile.am: Added .x-dependencies to variable BUILT_SOURCES.
|
||
|
||
1998-04-13 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
|
||
scm_set_port_column_x, scm_port_filename,
|
||
scm_set_port_filename_x): Removed optional arguments. Added
|
||
proper argument checking.
|
||
|
||
* eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
|
||
stack size in machine words.
|
||
|
||
* unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
|
||
rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings. (Thanks
|
||
to Ole Myren R<>hne.)
|
||
|
||
1998-04-12 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* socket.c: Check for HAVE_UNIX_DOMAIN_SOCKETS instead of
|
||
UNIX_DOMAIN_SOCKETS. (Thanks to Lauri Alanko.)
|
||
|
||
* gc.c (scm_gc_sweep): Count cells correctly. (Thanks to Ben
|
||
Caradoc-Davies.)
|
||
|
||
* eval.c (SCM_CEVAL, SCM_APPLY): In SCM_IM_APPLY and in the
|
||
procedure apply: Copy argument lists before pushing them unto the
|
||
environment so that the environment won't get mutated due to
|
||
manipulation of procedure arguments. This should perhaps be
|
||
regarded as a temporary solution until someone finds a more
|
||
efficient one. (Thanks to Maciej Stachowiak.)
|
||
|
||
1998-04-10 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* script.c (scm_compile_shell_switches): Use "guile" as default
|
||
zero arg if argc is NULL.
|
||
|
||
1998-04-02 Mikael Djurfeldt <mdj@nada.kth.se>
|
||
|
||
* script.c (scm_compile_shell_switches): Allow NULL argv if argc
|
||
is zero. (Thanks to Dirk Herrmann.)
|
||
|
||
1998-03-30 Mikael Djurfeldt <mdj@nada.kth.se>
|
||
|
||
* ports.c (scm_add_to_port_table): First line is now line 0
|
||
(was 1). (Interface changed according to suggestion by Per
|
||
Bothner.)
|
||
|
||
* backtrace.c (display_header): Add 1 to line and column numbers
|
||
when presenting them to the user.
|
||
|
||
* eval.h, eval.c, debug.h, debug.c (scm_evaluator_traps): Moved
|
||
from debug.c --> eval.c
|
||
|
||
* eval.h, eval.c (scm_eval_options_interface): New options
|
||
interface.
|
||
(SCM_EVAL_STACK): New option: Size of newly created stacks,
|
||
i.e. stacks for new threads.
|
||
|
||
* coop.c (COOP_STKSIZE): Use SCM_EVAL_STACK.
|
||
|
||
* eval.c (unsafe_setjmp): Removed with #if 0.
|
||
|
||
* gsubr.c (scm_gsubr_apply): Added dummy return to avoid compiler
|
||
warning.
|
||
|
||
* eval.c, numbers.c, unif.c, srcprop.c: Added a few curly braces
|
||
to avoid compiler warnings.
|
||
|
||
* dynl-dl.c (sysdep_dynl_func): Only define usymb if needed.
|
||
|
||
1998-03-28 Mikael Djurfeldt <mdj@nada.kth.se>
|
||
|
||
* throw.c (handler_message): Print message on current error port
|
||
instead of default error port. (Thanks to Maciej Stachowiak.)
|
||
|
||
Mon Mar 2 21:35:02 1998 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ports.c (scm_add_to_port_table): allocate in units of
|
||
struct scm_port_table *, not struct scm_port_table.
|
||
* posix.c (scm_close_pipe): remove the port from the port table
|
||
and mark as closed.
|
||
Thanks to Rob Engle for both fixes.
|
||
|
||
1998-02-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* iselect.h, iselect.c, coop.c, coop-threads.c, coop-threads.h,
|
||
coop-defs.h, throw.c, backtrace.c: Added new copyright year 1998.
|
||
|
||
1998-02-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* throw.h: Removed jmpbuf arg in scm_catch_body_t.
|
||
|
||
* backtrace.c (display_error_body, display_backtrace_body),
|
||
coop-threads.c (scheme_body_bootstrip, c_body_bootstrip),
|
||
gh_eval.c (eval_str_wrapper, eval_file_wrapper), init.c
|
||
(invoke_main_func), root.c (cwdr_body), throw.c (cwss_body,
|
||
scm_body_thunk, hbpca_body): Removed the second jmpbuf arg on body
|
||
functions.
|
||
|
||
* throw.c (scm_internal_catch, scm_internal_lazy_catch): Bodies
|
||
don't receive the jmpbuf arg anylonger.
|
||
(scm_catch): Don't accept a #f tag.
|
||
(scm_throw): Check that key is a symbol.
|
||
(scm_ithrow): Don't take a jmpbuf as key. Don't check key arg.
|
||
|
||
Fri Jan 30 22:28:07 1998 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* async.c (async_pending): Removed declaration.
|
||
|
||
1998-01-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* dynwind.c (scm_wind_chain): New debug function.
|
||
|
||
* coop-threads.c (scheme_launch_data, scheme_body_bootstrip,
|
||
scheme_handler_bootstrip, scheme_launch_thread, c_launch_data,
|
||
c_body_bootstrip, c_handler_bootstrip, c_launch_thread): Add an
|
||
extra layer of functions around the body and handler of a thread.
|
||
This extra layer makes sure that the handler is called in the
|
||
dynamic context of the surround (= empty dynwind list), but under
|
||
the *dynamic root* of the body. We can not use the dynamic root
|
||
of the surround since that root belongs to another thread => stack
|
||
is not handled correctly. It may seem ugly to use this extra
|
||
layer, but the extra cost in terms of execution time is really
|
||
negligible compared to the total amount of time required to create
|
||
a thread, and it would reduce maintainability to duplicate the
|
||
crucial and complicated steps performed by cwdr.
|
||
|
||
* __scm.h (SCM_ASYNC_TICK): Removed thread switching code.
|
||
(SCM_ALLOW_INTS): Added thread switching code before interrupts
|
||
get re-enabled. The important effect of this is that interrupts
|
||
are blocked during thread switching so that thread data structures
|
||
don't risk getting messed up by an unfortunate signal.
|
||
(SCM_REDEFER_INTS, SCM_REALLOW_INTS): It turned out that gcc-2.8.0
|
||
seems to do more aggressive optimization which actually move
|
||
instructions around in these macros in a fatal way. Therefore:
|
||
Introduce Anthony's SCM_FENCE macro! (And I who thought he was
|
||
just superstitious...)
|
||
(SCM_TICK): Maybe do a context switch and take care of asyncs.
|
||
This macro should be used instead of SCM_ASYNC_TICK since the
|
||
latter doesn't do context switches any more.
|
||
|
||
* eval.c (scm_eval, scm_deval), eq.c (scm_equal_p): Use SCM_TICK
|
||
instead of SCM_ASYNC_TICK.
|
||
|
||
* coop.c, iselect.c: Since thread switches are now performed with
|
||
interrupts masked, we can't use the old mechanism of delivering
|
||
signals immediately when they arrive. Signals must instead be
|
||
delivered when the asyncs run *after* the end of the critical
|
||
section in scm_internal_select. But this also means after context
|
||
switch so that the signal will be delivered to a different thread.
|
||
To avoid this, I have changed the protocol of
|
||
coop_wait_for_runnable_thread and friends so that they are allowed
|
||
to return the original thread. So, if a signal arrives during
|
||
scm_internal_select, we won't any longer be forced do a context
|
||
switch, but can remain in the same thread and deliver the signal
|
||
to it.
|
||
|
||
* async.c, async.h (asyncs_pending): Renamed asyncs_pending -->
|
||
scm_asyncs_pending and made it global.
|
||
|
||
* iselect.c: Small fixes.
|
||
|
||
* coop.c (coop_mutex_init, coop_mutex_lock, coop_mutex_unlock,
|
||
coop_condition_variable_init, coop_condition_variable_wait,
|
||
coop_condition_variable_signal): Changed return type from `void'
|
||
to `int'. This is to adhere closer to the pthreads interface.
|
||
This, in turn, is part of an attempt to provide C versions of the
|
||
mutex and condition variable primitives which can be part of a
|
||
frontend to COOP or pthreads.
|
||
|
||
* coop.c (coop_mutex_destroy, coop_condition_variable_wait_mutex,
|
||
coop_condition_variable_destroy): New functions.
|
||
|
||
* coop-threads.c (scm_wait_condition_variable): Use
|
||
coop_condition_variable_wait_mutex.
|
||
|
||
* coop-threads.h, coop-defs.h (coop_q_t, coop_m, coop_c):
|
||
Definitions moved to coop-defs.h.
|
||
|
||
* coop-defs.h (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock,
|
||
scm_mutex_destroy, scm_cond_init, scm_cond_wait, scm_cond_signal,
|
||
scm_cond_destroy): New C interface to mutecis and cond vars.
|
||
|
||
1998-01-24 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* error.c (scm_wta): Added support for SCM_ARG6 and SCM_ARG7.
|
||
|
||
* iselect.c: Now several threads can wait on the same file
|
||
descriptor. The behaviour is compatible with OS select: All
|
||
threads waiting for the fd return with the same status.
|
||
|
||
1998-01-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* coop-threads.c, threads.h (scm_spawn_thread): New function.
|
||
Can spawn a thread from application C code.
|
||
|
||
1998-01-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* gh.h, gh_data.c (gh_doubles2scm, gh_doubles2dvect,
|
||
gh_doubles2scm): New functions.
|
||
|
||
1998-01-15 Mark Galassi <rosalia@nis.lanl.gov>
|
||
|
||
* gh_eval.c (gh_eval_str): cleanup -- threw out the old
|
||
commented-out version of gh_eval_str()
|
||
|
||
Sun Jan 4 02:23:36 1998 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* socket.c (scm_bind): free soka after use.
|
||
|
||
Sat Jan 3 20:55:07 1998 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* stime.c (tzvar): new variable.
|
||
(setzone, restorezone, scm_localtime, scm_mktime, scm_strftime):
|
||
avoid memory leaks when allocating.
|
||
|
||
1998-01-03 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* iselect.h: Some systems require <sys/types.h> to get the FD_SET
|
||
macro definitions.
|
||
|
||
* gc.c, tags.h: Doc fixes.
|
||
|
||
1998-01-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* eval.c (macro-eval!): Removed. This function was a design bug.
|
||
It allowed memoized code to leak out to the scheme level. Most
|
||
things that you could do with `macro-eval!' can be done with
|
||
`local-eval'.
|
||
|
||
1997-12-20 Tim Pierce <twp@skepsis.com>
|
||
|
||
* fports.c (scm_pipob): Use scm_generic_fgets for line i/o, since
|
||
scm_fgets now depends on ftell(3) to know how many bytes were
|
||
read. Sigh.
|
||
|
||
1997-12-15 Tim Pierce <twp@skepsis.com>
|
||
|
||
* gh_data.c (gh_scm2newstr, gh_get_substr): Use RO macros for
|
||
dealing with strings.
|
||
|
||
1997-12-13 Tim Pierce <twp@skepsis.com>
|
||
|
||
Make %read-line more suitable for implementing read-line efficiently.
|
||
* ioext.c (scm_read_line): Strip the terminating newline from a
|
||
string, and return a cons of the string and its terminator.
|
||
|
||
* fports.c, fports.h (scm_fgets): Add `len' argument. The length
|
||
of the string that is read is stored in this memory location.
|
||
* ports.c, ports.h (scm_generic_fgets, fgets_void_port): Same.
|
||
* genio.c, genio.h (scm_do_read_line): Update caller.
|
||
* ports.h (scm_ptobfuns): Update typedef.
|
||
* fports.c (scm_fptob, scm_pipob): Update struct.
|
||
|
||
1997-12-08 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* filesys.c (set_element): Return file descriptor.
|
||
(fill_select_type): Return the highest file descriptor.
|
||
(scm_select): Tell select about the highest file descriptor. On
|
||
some systems the SELECT_SET_SIZE can be as much as 128 bytes.
|
||
Therefore the extra overhead for calculating the maximum fd seems
|
||
to be more than compensated. Is this correct? In any case,
|
||
scm_internal_select will be much faster with this info.
|
||
(scm_select, fill_select_type, set_element): Don't accept any kind
|
||
of object in the file descriptor list or vector.
|
||
|
||
1997-12-07 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* iselect.c (finalize_fd_sets): Bugfix.
|
||
|
||
1997-12-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* filesys.c (scm_select): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS
|
||
when using scm_internal_select (since we might switch to another
|
||
thread).
|
||
|
||
Sun Dec 7 01:43:56 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* simpos.c (scm_system): always define: use sysmissing if not
|
||
available. Check for HAVE_SYSTEM instead of _Windows (does
|
||
Windows lack system or does it have an unusable one?).
|
||
Check for error conditions -1 and 127. Use SCM_DEFER_INTS.
|
||
Let the argument be optional: if not supplied, call system(NULL).
|
||
|
||
* ports.c (scm_close_port): relax the type check from OPPORTP to
|
||
PORTP; closing a closed port is allowed.
|
||
|
||
1997-12-04 Tim Pierce <twp@ppp39.Nantucket.net>
|
||
|
||
* fports.c (scm_fgets): Return if the last char in a chunk is
|
||
newline. When fgets returns a string whose length is `size-1', it
|
||
is ambiguous whether a whole line was retrieved, so we must check
|
||
explicitly whether a line terminator is present.
|
||
|
||
1997-12-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* print.h (SCM_COERCE_OUTPORT): Check that the object is a pair
|
||
before taking the CDR. (Thanks to Harald Meland.)
|
||
|
||
* filesys.c (scm_stat): Slightly optimized.
|
||
|
||
Wed Dec 3 12:23:06 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* ports.c (scm_close_port): Make sure the port is open before
|
||
trying to close it.
|
||
|
||
* guile-snarf.in: Pass args through to gcc in a way that preserves
|
||
whitespace boundaries. (Thanks to Greg Badros.)
|
||
|
||
1997-12-02 Tim Pierce <twp@skepsis.com>
|
||
|
||
* stacks.c (scm_frame_procedure): Reverse the logic in the return
|
||
statement. (Thanks to Doug Evans for pointing this out.)
|
||
|
||
1997-12-01 Tim Pierce <twp@skepsis.com>
|
||
|
||
* scmconfig.h.in: Regenerated for USCORE change in ../acconfig.h.
|
||
|
||
Sun Nov 30 11:29:18 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* 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-29 Tim Pierce <twp@skepsis.com>
|
||
|
||
* iselect.c: Doc fix.
|
||
|
||
Sat Nov 29 01:16:53 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* 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-28 Tim Pierce <twp@skepsis.com>
|
||
|
||
* 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 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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-27 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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.
|
||
|
||
* iselect.h, iselect.c: New files. Implements
|
||
scm_internal_select. (See NEWS.)
|
||
|
||
1997-11-27 Tim Pierce <twp@skepsis.com>
|
||
|
||
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-26 Anthony Green <green@hoser.cygnus.com>
|
||
|
||
* gh_data.c (gh_set_substr): Strings can be longer than 256 bytes.
|
||
|
||
* gh.h: Safely wrap prototypes for c++ usage.
|
||
|
||
1997-11-25 Mark Galassi <rosalia@cygnus.com>
|
||
|
||
* gh_test_repl.c (main_prog): changed invocation of gh_repl() to
|
||
gh_repl (argc, argv).
|
||
|
||
1997-11-24 Mark Galassi <rosalia@nis.lanl.gov>
|
||
|
||
* gh_init.c (gh_repl): modified gh_repl() to accept argc and argv
|
||
and to invoke scm_shell().
|
||
(gh_launch_pad): took out the loading of boot-9.scm from here,
|
||
since it is probably best to let the user control that. In fact,
|
||
gh_repl() now invokes scm_shell() which does that.
|
||
|
||
1997-11-23 Mark Galassi <rosalia@cygnus.com>
|
||
|
||
* gh_test_repl.c (main_prog): added argc and argv to the gh_repl()
|
||
invocation.
|
||
|
||
1997-11-22 Tim Pierce <twp@twp.tezcat.com>
|
||
|
||
* dynl-dl.c (sysdep_dynl_func): Fix memory leak created by
|
||
yesterday's underscore patch. (Thanks to Marius Vollmer for
|
||
spotting this.)
|
||
|
||
1997-11-21 Tim Pierce <twp@twp.tezcat.com>
|
||
|
||
* dynl-dl.c (sysdep_dynl_func): Prepend symb with underscore if
|
||
DLSYM_ADDS_USCORE is not defined.
|
||
|
||
1997-11-17 Mark Galassi <rosalia@nis.lanl.gov>
|
||
|
||
* gh_data.c (gh_uniform_vector_length):
|
||
(gh_uniform_vector_ref): started implementing the uniform types in
|
||
the gh_ interface.
|
||
|
||
1997-11-06 Mikael Djurfeldt <mdj@nada.kth.se>
|
||
|
||
* 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-10-26 Mikael Djurfeldt <mdj@nada.kth.se>
|
||
|
||
* scmconfig.h.in: Updated (HAVE_LIBTERMCAP was added when
|
||
configure.in was changed).
|
||
|
||
Sun Oct 26 02:20:11 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* Makefile.am (modinclude_HEADERS): Include readline.h here.
|
||
* Makefile.in: Regenerated.
|
||
|
||
1997-10-25 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* print.h (SCM_COERCE_OPORT): Renamed to SCM_COERCE_OUTPORT. An
|
||
OPORT is an `open' port, not an output port.
|
||
|
||
* 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
|
||
|
||
Sat Oct 25 02:52:58 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
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.
|
||
|
||
* 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.
|
||
|
||
Thu Oct 23 01:02:03 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
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-20 Mark Galassi <rosalia@nis.lanl.gov>
|
||
|
||
* gh.h: gh_vector_set -> gh_vector_set_x
|
||
|
||
1997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
|
||
|
||
* gh_data.c (gh_vector_set_x): changed name to make it consistent
|
||
with the ! -> _x mapping when going from Scheme to C.
|
||
|
||
1997-10-19 Mark Galassi <rosalia@cygnus.com>
|
||
|
||
* gh.h (gh_reverse):
|
||
(gh_list_tail):
|
||
(gh_list_ref):
|
||
(gh_memq):
|
||
(gh_memv):
|
||
(gh_member):
|
||
(gh_assq):
|
||
(gh_assv):
|
||
(gh_assoc): added these gh_ functions implemented as macros.
|
||
|
||
* gh_predicates.c (gh_null_p):
|
||
(gh_string_equal_p): added these two missing predicates.
|
||
|
||
* gh_list.c (gh_append):
|
||
(gh_append2):
|
||
(gh_append3):
|
||
(gh_append4):
|
||
(gh_set_car_x):
|
||
(gh_set_cdr_x): added these routines as I go through and try to
|
||
complete the picture R4RS functions that should be mirrored in the
|
||
gh_ interface.
|
||
|
||
Sat Oct 18 01:52:51 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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!
|
||
|
||
Tue Oct 14 22:03:06 1997 Tom Tromey <tromey@cygnus.com>
|
||
|
||
* 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-12 Mark Galassi <rosalia@cygnus.com>
|
||
|
||
* 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.
|
||
|
||
Sun Oct 12 14:41:39 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* ports.h: #include "libguile/print.h"
|
||
|
||
* 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.
|
||
|
||
Tue Oct 7 09:37:24 1997 Mark Galassi <rosalia@cygnus.com>
|
||
|
||
* gh_data.c (gh_bool2scm): new function which replaces
|
||
gh_int2scmb(), which is now tagged as obsolete.
|
||
|
||
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-02 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
Streamlining of call-with-dynamic-root:
|
||
|
||
* 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.
|
||
|
||
Even more but risky streamlining:
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
Make dynamic linking work on Dec Unix. (Thanks to Clark McGrew)
|
||
* dynl.c: Include "dynl-dl.c" also when HAVE_DLOPEN is defined.
|
||
|
||
* gc.c (scm_done_malloc): New function.
|
||
gc.h (scm_done_malloc): New prototype.
|
||
|
||
* 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.
|
||
|
||
* throw.h (scm_handle_by_proc_catching_all): New prototype
|
||
throw.c (scm_handle_by_proc_catching_all): New function
|
||
|
||
Mon Sep 29 23:54:09 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* Makefile.in: Regenerated with automake 1.2c.
|
||
|
||
Sun Sep 28 21:35:42 1997 Radey Shouman <shouman@zianet.com>
|
||
|
||
* ramap.c (scm_array_index_map_x): Fixed for zero-rank arguments,
|
||
was looping endlessly.
|
||
|
||
Sun Sep 28 00:04:29 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* strports.c (scm_eval_string): Don't close the port.
|
||
|
||
* stime.c (bdtime2c): Use SCM_LENGTH, not scm_vector_length; the
|
||
former returns a nice normal integer. (Thanks to Daniel
|
||
Risacher.)
|
||
|
||
Sat Sep 27 20:19:34 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* 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.
|
||
|
||
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.
|
||
|
||
* Makefile.in: Regenerated with automake 1.2a.
|
||
|
||
* 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.
|
||
|
||
Wed Sep 24 22:09:52 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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!'.
|
||
|
||
* 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.
|
||
|
||
Tue Sep 23 12:43:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* ramap.c: Added alias `array-map!' for `array-map'. (Probably,
|
||
the names `serial-array-map' and `array-map' should be removed.)
|
||
|
||
Mon Sep 22 01:21:54 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* 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".
|
||
|
||
* Makefile.am (libguile_la_SOURCES): Added objects.c.
|
||
(modinclude_HEADERS): Added objects.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'.
|
||
|
||
Tue Sep 16 02:12:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* scmhob.h: Removed.
|
||
|
||
Mon Sep 15 20:42:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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.
|
||
|
||
* init.c (scm_boot_guile_1): Removed calls to scm_init_append and
|
||
scm_init_sequences.
|
||
|
||
* gh.h, gh_list.c: Renamed gh_list_length --> gh_length.
|
||
|
||
* list.h, list.c: Renamed scm_list_length --> scm_length, scm
|
||
|
||
* stime.c (bdtime2c): Changed scm_obj_length --> scm_vector_length.
|
||
|
||
Sat Sep 13 00:21:41 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* eval.c: Added #include "objects.h"
|
||
|
||
* tags.h (scm_tc16_object, scm_tc16_entity): Smobtags for objects
|
||
and entities.
|
||
|
||
* smob.c (scm_smob_prehistory): Create two objectsmobs with
|
||
adjacent smob numbers.
|
||
|
||
Thu Sep 11 00:59:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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.
|
||
|
||
Wed Sep 10 20:52:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* eval.c (macro?, macro-type, macro-name, macro-transformer): 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.
|
||
|
||
Sat Sep 6 12:20:42 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* procs.h (scm_closure_p): Added declaration.
|
||
|
||
Fri Sep 5 13:36:14 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* gc.c (scm_gc_mark): Fixed "rogue pointer in heap" message:
|
||
Shouldn't pass "heap" as the subr name.
|
||
|
||
Tue Sep 2 18:14:30 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* 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.
|
||
|
||
Tue Sep 2 00:27:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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.
|
||
|
||
Mon Sep 1 22:30:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* numbers.c (logand, logior, logxor): Handle 0 or 1 arguments.
|
||
|
||
Sat Aug 30 18:56:19 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* 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.
|
||
|
||
Thu Aug 28 23:48:53 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* Makefile.in: Regenerated.
|
||
|
||
Wed Aug 27 17:44:44 1997 Jim Blandy <jimb@totoro.red-bean.com>
|
||
|
||
* Makefile.in: Regenerated, so it uses "tar", not "gtar".
|
||
|
||
Mon Aug 25 13:47:25 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* error.c, error.h (scm_error_callback): Removed (see NEWS).
|
||
|
||
Sun Aug 24 01:25:35 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* 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.)
|
||
|
||
* 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.
|
||
|
||
Sat Aug 23 18:45:44 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* errno.h: prototype for scm_strerror.
|
||
* error.c (scm_strerror): new procedure.
|
||
|
||
Mon Aug 18 14:58:22 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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)
|
||
|
||
Sat Aug 16 18:42:15 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* 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.
|
||
|
||
1997-08-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* 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)
|
||
|
||
* gsubr.c (scm_gsubr_apply): From Radey Shouman
|
||
<shouman@zianet.com>: "The switch in scm_gsubr_apply that
|
||
dispatches on the number of actual args has a default case
|
||
reporting an internal error. This is a vestige from a version
|
||
that mallocated a SCM vector to hold the arguments. In the
|
||
current version this check is too late: if it ever happens we will
|
||
have already overstepped the bounds of the array.
|
||
|
||
Also, the patch [...] adds a check for too many actual arguments."
|
||
|
||
mdj: Removed check for "internal programming error".
|
||
|
||
Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* gh_io.c (gh_write): New function.
|
||
|
||
* gh_eval.c (catch_with_saved_stack): Removed. Replaced by:
|
||
throw.c (scm_internal_stack_catch): New sibling to the other catch
|
||
functions. Code moved from gh_eval.c.
|
||
throw.h: Added header.
|
||
gh_eval.c (gh_eval_str_with_stack_saving_handler): Renamed call to
|
||
scm_internal_stack_catch.
|
||
|
||
Tue Jul 29 01:03:08 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* 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.
|
||
|
||
Mon Jul 28 05:24:42 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* 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.
|
||
|
||
Sun Jul 27 10:54:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* fluids.c (scm_fluid_p): New function.
|
||
* fluids.h (scm_fluid_p): New prototype.
|
||
|
||
Sat Jul 26 21:33:37 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* print.c (scm_iprin1): Enter printed structures into the print
|
||
state as nested data while they are printed.
|
||
(print_state_fluid, print_state_fluid_num): New variables.
|
||
(scm_init_print): Initialize them.
|
||
(scm_iprin): If print_state_fluid carries a print_state, use that
|
||
instead of creating a new one.
|
||
(scm_printer_apply, apply_stub, struct apply_data): New
|
||
definitions to help with calling printer functions written in
|
||
Scheme.
|
||
* print.h (scm_printer_apply): New prototype.
|
||
|
||
* struct.c (scm_print_struct): Use scm_printer_apply to call the
|
||
user defined struct printer.
|
||
|
||
* dynwind.c (scm_dowinds): Handle fluids on the wind list.
|
||
* fluids.h (scm_internal_with_fluids, scm_with_fluids,
|
||
scm_swap_fluids, scm_swap_fluids_reverse): New prototypes.
|
||
* fluids.c (scm_internal_with_fluids, scm_with_fluids,
|
||
scm_swap_fluids, scm_swap_fluids_reverse): New functions.
|
||
|
||
Fri Jul 25 12:05:46 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* fluids.c (scm_fluid_ref, scm_fluid_set_x): Fixed use of
|
||
SCM_ASSERT: arg comes before pos.
|
||
|
||
Fri Jul 25 17:00:38 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* eval.c (scm_apply): Handle the case when a tc7_sybr_2 is applied
|
||
to a list of length zero correctly.
|
||
|
||
Wed Jul 23 16:17:46 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
|
||
|
||
Supply an `fgets' method for port objects to do fast line i/o.
|
||
* ioext.c (scm_read_line): New function.
|
||
* genio.c (scm_gen_read_line): New function.
|
||
* fports.c (scm_fgets): New function.
|
||
(scm_fptob, scm_pipob): Add scm_fgets method.
|
||
* ports.c (fgets_void_port, scm_generic_fgets): New functions.
|
||
(void_port_ptob): Add void fgets method.
|
||
(scm_newptob): Initialize fgets method from ptob struct.
|
||
* ports.h (scm_ptobfuns): Add fgets method.
|
||
* vports.c (scm_sfptob): Supply generic fgets method.
|
||
* strports.c (scm_stptob): Supply generic fgets method.
|
||
|
||
Mon Jul 21 04:03:42 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* 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.
|
||
|
||
Sun Jul 20 03:55:49 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* filesys.c (scm_close): oops, don't call SCM_INUM twice on the
|
||
argument.
|
||
|
||
* ioext.h: new prototypes.
|
||
* ioext.c (scm_primitive_dup, scm_primitive_dup2): new procedures.
|
||
|
||
* fluids.c (next_fluid_num): don't do
|
||
SCM_THREAD_CRITICAL_SECTION_START/END unless USE_THREADS is defined.
|
||
|
||
* ports.h: prototypes too.
|
||
* ports.c (scm_mode_bits, scm_port_mode): moved from fports.c.
|
||
|
||
* fports.h: prototype too.
|
||
* fports.c (scm_evict_ports): moved from ioext.c.
|
||
|
||
Sat Jul 19 04:56:52 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ports.c (scm_close_port): return a boolean instead of unspecified.
|
||
throw an error if an error other than EBADF occurs.
|
||
|
||
* filesys.h: scm_close prototype.
|
||
* filesys.c (scm_close): new procedure, can close file descriptors
|
||
and ports (scsh compatible).
|
||
|
||
* ports.c (scm_flush_all_ports): SCM_PROC incorrectly allowed an
|
||
optional argument.
|
||
|
||
Fri Jul 18 11:19:53 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* fluids.c, fluid.h: New files.
|
||
* Makefile.am (libguile_la_SOURCES): Added "fluids.c".
|
||
(modinclude_HEADERS): Added "fluids.h"
|
||
|
||
* init.c: Include "fluids.h". (scm_boot_guile_1): Added call to
|
||
scm_init_fluids to initialize the fluid machine.
|
||
(scm_start_stack): Initialize the fluids of the first root with
|
||
scm_make_initial_fluids.
|
||
|
||
* root.h: Added "fluids" member to scm_root_state.
|
||
* root.c: Include "fluids.h". (scm_mark_root): Mark "fluids".
|
||
(scm_make_root): Call scm_copy_fluids to make fluid bindings
|
||
unique for the new root when it has a parent.
|
||
|
||
* smob.h: Include "libguile/print.h" to make scm_print_state
|
||
visible.
|
||
|
||
* dynl.c (free_dynl_obj): New function to free the dynamic object
|
||
data. (dynl_smob): Use it.
|
||
* dynl.c (scm_dynamic_link): Moved allocating of the memory for
|
||
the dynamic object data below the linking of the object to avoid
|
||
memory leak when the linking code throws an error. Now the code
|
||
leaks a whole dynamically linked library when must_malloc throws,
|
||
but that should be much less likely.
|
||
|
||
Fri Jul 11 00:19:47 1997 Jim Blandy <jimb@floss.red-bean.com>
|
||
|
||
Changes to compile under gnu-win32, from Marcus Daniels:
|
||
* stime.c (tzset): If tzset isn't provided, make it a NOP.
|
||
(scm_localtime): Change SCM_EOF to SCM_EOL.
|
||
(scm_mktime): Likewise.
|
||
* socket.c: Don't include sys/un.h unless autoconf tells
|
||
us Unix domain sockets are available.
|
||
(scm_fill_sockaddr): Ignore Unix domain code.
|
||
(scm_addr_vector): Likewise.
|
||
(scm_init_addr_buffer): Likewise.
|
||
(scm_socketpair): Don't include unless socketpair was
|
||
found during autoconf.
|
||
* simpos.c (SYSTNAME): Treat cygwin like Unix.
|
||
* scmsigs.c (scm_pause): Don't include unless pause was found
|
||
during autoconf.
|
||
* posix.c (scm_getgroups): Don't include unless support function
|
||
was found during autoconf (in this case, getgroups).
|
||
(scm_setpwent): For setpwent.
|
||
(scm_setegid): For setegid.
|
||
* net_db.c (scm_inet_netof): Don't include unless support
|
||
function was found during autoconf (in this case, inet_netof).
|
||
(scm_lnaof): For inet_lnaof.
|
||
(scm_inet_makeaddr): For inet_makeaddr.
|
||
(scm_getnet): For getnetent, getnetbyname, getnetbyaddr.
|
||
(scm_getproto): For getprotoent.
|
||
(scm_getserv): For getservent.
|
||
(scm_sethost): For sethostent, endhostent.
|
||
(scm_setnet): For setnetent, endnetent.
|
||
(scm_setproto): For setprotoent, endprotoent.
|
||
(scm_setserv): For setservent, endservent.
|
||
* scmconfig.h.in: Regenerated.
|
||
|
||
Thu Jul 10 00:22:24 1997 Jim Blandy <jimb@floss.red-bean.com>
|
||
|
||
* stime.c (scm_localtime, scm_mktime): Pass SCM_EOL to
|
||
scm_misc_error, not SCM_EOF.
|
||
|
||
* error.c (scm_wta): Pass SCM_EOL to scm_misc_error as the list of
|
||
arguments for formatting the error message, not SCM_BOOL_F. I
|
||
think this is left over from the (eq? '() #f) days.
|
||
|
||
* read.c (recsexpr): Give this a dummy definition if
|
||
DEBUG_EXTENSIONS isn't #defined.
|
||
|
||
Fri Jul 4 23:42:17 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* coop-threads.c (scm_wait_condition_variable): Lock mutex again
|
||
after waiting.
|
||
|
||
Thu Jul 3 16:31:24 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* root.c (cwdr_outer_body): Bugfix: Pass `c' instead of `&c' to
|
||
scm_internal_catch.
|
||
|
||
Sat Jun 28 16:14:09 1997 Tim Pierce <twp@twp.tezcat.com>
|
||
|
||
* Makefile.am (libguile_la_LIBADD): Remove @ALLOCA@, since
|
||
alloca.lo will be included in @LIBLOBJS@. Something better than
|
||
this should be possible.
|
||
* Makefile.in: Regenerated.
|
||
|
||
Sat Jun 28 03:40:15 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* simpos.h: prototype for scm_primitive_exit.
|
||
* simpos.c (scm_primitive_exit): new procedure, terminates the
|
||
process without unwinding the stack.
|
||
|
||
Sat Jun 28 03:45:25 1997 Tim Pierce <twp@twp.tezcat.com>
|
||
|
||
* regex-posix.c (scm_make_regexp): Make `flags' a variable-length
|
||
argument and logior its components together, so the user doesn't
|
||
have to do this explicitly. Also, if regexp/basic is supplied, then
|
||
turn off REG_EXTENDED.
|
||
(scm_init_regex_posix): New regexp/basic symbol.
|
||
(REG_BASIC): #define this if it is not already present.
|
||
|
||
Fri Jun 27 20:36:35 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
|
||
|
||
* Makefile.am (libguile_la_LIBADD): Include @ALLOCA@.
|
||
(MOSTLYCLEANFILES): New target, changed from CLEANFILES.
|
||
(CLEANFILES): New target, clean versiondat.h, libpath.h.
|
||
(DISTCLEANFILES): New target, clean *.x.
|
||
* Makefile.in: Regenerated.
|
||
|
||
Tue Jun 24 00:29:07 1997 Jim Blandy <jimb@floss.red-bean.com>
|
||
|
||
* script.c (scm_compile_shell_switches): Add 1997 to copyright
|
||
years in usage message.
|
||
|
||
* Makefile.am (libguile_la_LDFLAGS): Bump library version.
|
||
* Makefile.in: Regenerated.
|
||
|
||
* regex-posix.c (scm_init_regex_posix): Delete the regexp/nosub
|
||
flag; I don't think we support it.
|
||
(scm_make_regexp): Make sure the user doesn't pass the
|
||
regexp/nosub flag.
|
||
|
||
* regex-posix.c (scm_make_regexp, scm_regexp_exec): Add optional
|
||
FLAGS arguments.
|
||
(scm_init_regex_posix): Define constants for the REG_mumble flags;
|
||
name them according to the SCSH convention: regexp/mumble.
|
||
|
||
* regex-posix.h (scm_make_regexp, scm_regexp_exec): Update prototypes.
|
||
|
||
Mon Jun 23 18:44:49 1997 Jim Blandy <jimb@floss.red-bean.com>
|
||
|
||
* Makefile.am (libpath.h): Include the values of all the standard
|
||
Makefile directory variables. Print a message, but don't print
|
||
all the commands.
|
||
(versiondat.h): Print a message, but don't print all the commands.
|
||
* load.c: #include "alist.h".
|
||
(init_build_info): New function.
|
||
(scm_init_load): Call it.
|
||
* Makefile.in: Regenerated.
|
||
|
||
Sun Jun 22 19:12:58 1997 Jim Blandy <jimb@floss.red-bean.com>
|
||
|
||
* root.c: Establish a reliable catch-all handler for the new root.
|
||
After all the Scheme handler function might signal an error too,
|
||
and we don't want to lose that.
|
||
(cwdr_inner_body): Renamed from cwdr_body.
|
||
(cwdr_outer_body): New function, to establish the user's handler,
|
||
and pass control to cwdr_inner_body.
|
||
(cwdr): Establish the reliable catch-all handler here, and pass
|
||
control to cwdr_outer_body.
|
||
(struct cwdr_body_data): New field, handler, to allow cwdr to pass
|
||
the user's handler through to cwdr_outer_body.
|
||
* throw.c (scm_handle_by_message): Move guts into....
|
||
(handler_message): New static function.
|
||
(scm_handle_by_message_noexit): New function.
|
||
* throw.h (scm_handle_by_message_noexit): New prototype.
|
||
|
||
* __scm.h: (SCM_FENCE): New macro: optimizer will not move code
|
||
across this. Only works on GCC. Otherwise, we hope for the best.
|
||
(SCM_DEFER_INTS, SCM_ALLOW_INTS): Use FENCE appropriately. I have
|
||
the feeling that real thread systems will not need this...
|
||
|
||
Sun Jun 22 15:46:35 1997 Jim Blandy <jimb@floss.red-bean.com>
|
||
|
||
Try to detect when people are using one version of libguile and a
|
||
different version of ice-9. People have been skewing things and
|
||
sending in bug reports.
|
||
* Makefile.am (versiondat.h): New file to generate.
|
||
* version.c: #include "versiondat.h", to get version info.
|
||
(scm_libguile_config_stamp): New function.
|
||
* script.c: #include "version.h".
|
||
(scm_compile_switches): Call scm_version to get version number.
|
||
* scmconfig.h.in, Makefile.in: Regenerated.
|
||
* Makefile.in: Regenerated.
|
||
|
||
* Makefile.am (ETAGS_ARGS): Catch SCM_PROC, etc. so we can find
|
||
primitive definitions under their Scheme names.
|
||
|
||
* Makefile.am (libguile_la_LDFLAGS): Update library version to
|
||
1:2. Helps avoid confusion between installed and uninstalled libs.
|
||
|
||
* scmconfig.h.in: Regenerated. (Needed after June 3 change to
|
||
../configure.in.)
|
||
|
||
* gdb_interface.h (GDB_INTERFACE): Remove semicolon and trailing
|
||
backslash from definition; this should be used like: GDB_INTERFACE;
|
||
|
||
Sun Jun 22 04:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ioext.c (scm_duplicate_port): bug fix: don't try to make the
|
||
new port unbuffered until its stream has been set.
|
||
|
||
Sat Jun 21 18:44:03 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ports.h: new prototype.
|
||
* ports.c (scm_flush_all_ports): new procedure, scsh compatible.
|
||
|
||
Sat Jun 21 00:25:03 1997 Jim Blandy <jimb@floss.red-bean.com>
|
||
|
||
Make things compile neatly under Sun's C compiler.
|
||
* dynl.c (scm_dynamic_func): Cast return value from sysdep_dynl_func.
|
||
* extchrs.c (xmbtowc): Make the second arg a normal char, not
|
||
unsigned, because that's what the ANSI function takes.
|
||
* extchrs.h (xmbtowc): Corresponding change to prototype.
|
||
* genio.c (scm_gen_getc): Make buf plain chars. Nobody wants
|
||
uchars here.
|
||
* mbstrings.c (scm_mb_ilength): Use ANSI arg syntax. Make DATA
|
||
argument plain char *.
|
||
* strings.c (scm_string): Use SCM_ROCHARS, since c is a plain
|
||
char.
|
||
* tag.c (scm_tag): Remove unreachable statement.
|
||
* unif.c (scm_array_to_list): If we want to shift a 1 bit to the
|
||
top of the word, it should be unsigned.
|
||
|
||
* eval.c (scm_lookupcar1): Don't declare var2 unless USE_THREADS
|
||
is defined, to avoid warnings; it's only used in the
|
||
conflict-checking code. Which might go away anyway.
|
||
(SCM_CEVAL): All goto's targeting the `dispatch' label are in
|
||
conditionals; put the label definition in an #if too, to stifle
|
||
warnings.
|
||
|
||
* Makefile.am (EXTRA_DIST): Include ChangeLog-gh and
|
||
ChangeLog-threads in the distribution.
|
||
* Makefile.in: Regenerated.
|
||
|
||
Fri Jun 20 10:03:41 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
|
||
|
||
* guile-snarf.in: Changed regexp to support CPPs that insert
|
||
whitespace between lexical tokens (which munges the `%%%' snarf
|
||
cookie).
|
||
|
||
Tue Jun 17 13:49:56 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
|
||
|
||
* load.c (scm_init_load_path): Append $(datadir)/guile to
|
||
%load-path, so modules do not have to be installed in Guile's
|
||
current version directory.
|
||
|
||
Mon Jun 16 17:20:55 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* dynl.c (scm_dynamic_call, scm_dynamic_args_call): Wrap dynamic
|
||
function call in SCM_DEFER_INTS/SCM_ALLOW_INTS.
|
||
(scm_dynamic_link, scm_dynamic_unlink, scm_dynamic_func): Always
|
||
call the sysdep functions with deferred ints.
|
||
* dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c (sysdep_dynl_link,
|
||
sysdep_dynl_unlink, sysdep_dynl_func): Expect to be called with
|
||
deferred interrupts and insert SCM_ALLOW_INTS before throwing an
|
||
error.
|
||
|
||
* dynl.c (scm_dynamic_unlink, scm_dynamic_call): Return
|
||
SCM_UNSPECIFIED.
|
||
|
||
Sat Jun 14 19:00:58 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* scmsigs.c (sys_deliver_signals): add a comment about a probable bug.
|
||
|
||
Wed Jun 11 00:33:00 1997 Jim Blandy <jimb@floss.red-bean.com>
|
||
|
||
* Makefile.in: Regenerated after xtra_PLUGIN_guile_libs change in
|
||
../configure.in.
|
||
|
||
Sun Jun 8 14:37:26 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* eval.c (scm_lookupcar1): New procedure to cope with a race
|
||
condition during lookup (when using threads).
|
||
(scm_lookupcar): Implement in terms of scm_lookupcar1.
|
||
(SCM_CEVAL): Use scm_lookupcar1 instead of scm_lookupcar in one
|
||
place.
|
||
|
||
Fri Jun 6 19:05:07 1997 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* regex-posix.c (scm_regexp_exec): Use the `start' argument if
|
||
supplied. (Change from Tim Pierce.)
|
||
|
||
Thu Jun 5 16:38:19 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* struct.c (init_struct): Forget to mention this in the "Wed Jun 4
|
||
23:47:01 1997" changelog: Slots are now initialized with `#f' by
|
||
default and not `()'. `#f' is the canonical non-value in Scheme,
|
||
right?
|
||
|
||
Wed Jun 4 23:47:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* struct.c (struct_printer): New variable that holds a handle on
|
||
the Scheme variable *struct-printer*. This variable can be set by
|
||
Scheme code to override the printing of structures.
|
||
(scm_print_struct): If struct_printer is set, call it. If it is
|
||
not set, or returns #f, print the structure in the old fashion.
|
||
Include "eval.h" for scm_apply.
|
||
|
||
Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* struct.c (scm_struct_ref, scm_struct_set_x): Use
|
||
scm_struct_i_n_words to get the number of fields, not
|
||
-scm_struct_n_extra_words.
|
||
|
||
On the route to fancier struct printing:
|
||
* struct.c (scm_print_struct): New function to print a structure.
|
||
Include "genio.h" to support it. This function doesn't do
|
||
anything interesting right now, but I think it should be here
|
||
anyway.
|
||
* struct.h: Include "print.h" and add prototype for
|
||
scm_print_struct.
|
||
* print.c (scm_iprin1): Call scm_print_struct instead of trying to
|
||
print structures ourself.
|
||
|
||
Sun Jun 1 07:58:41 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* scmsigs.c (sys_deliver_signals): bug fix: reset got_signal[i]
|
||
before applying the handler in case it doesn't return.
|
||
|
||
Sat May 31 18:57:51 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* scmsigs.h, async.h: updated.
|
||
|
||
* _scm.h: if HAVE_RESTARTS is defined then don't use a SYSCALL
|
||
loop.
|
||
|
||
* posix.c (scm_uname): interpret only negative values as an error.
|
||
Solaris normally returns a positive value.
|
||
|
||
* script.c (scm_compile_shell_switches): if we are not going into
|
||
an interactive repl, set scm_mask_ints to zero so that asyncs can
|
||
run.
|
||
|
||
* simpos.c (scm_system): don't ignore/unignore signals around
|
||
the "system" call.
|
||
|
||
* posix.c (scm_open_pipe): don't ignore/unignore signals around
|
||
the "popen" call.
|
||
|
||
* init.c (scm_boot_guile_1): don't call scm_init_signals, it's
|
||
done in boot-9.scm instead.
|
||
|
||
* scmsigs.c, async.c: Major rewriting of signal handling code.
|
||
(scm_sigaction): new procedure.
|
||
(scm_sleep): don't wrap sleep in SCM_SYSCALL, it would mess up the
|
||
timing.
|
||
(scm_raise): return unspecified, throw error on failure.
|
||
|
||
Thu May 29 02:47:36 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* regex-posix.c (scm_init_regex_posix): Register the "regex"
|
||
feature, to help boot-9.scm decide whether to import the regex
|
||
module.
|
||
|
||
Thu May 29 02:19:40 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* eval.c: Include scmconfig.h at the beginning of the file so that
|
||
HAVE_ALLOCA_H may properly be defined. Thanks to Bill Janssen for
|
||
pointing this out.
|
||
|
||
* regex-posix.c: #include "_scm.h" before conditionally #including
|
||
<regex.h>; the former defines HAVE_REGCOMP.
|
||
|
||
* regex-posix.c: #include <regex.h> conditionally, so the file is
|
||
CPP'able (for dependency scanning) even on systems that don't have
|
||
a <regex.h> header.
|
||
|
||
Tue May 27 23:48:38 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
Add new R4RS-compliant syntax for keywords.
|
||
* read.c (scm_lreadr): Recognize `#:' as a prefix for keywords,
|
||
regardless of the setting of the `keywords' read option.
|
||
* kw.c (prin_kw): Print keywords using the `#:' syntax, so they
|
||
can be re-read no matter what the setting of the `keywords' read
|
||
option.
|
||
|
||
Tue May 27 22:47:31 1997 Tim Pierce <twp@twp.tezcat.com>
|
||
|
||
Add support for POSIX regular expressions.
|
||
|
||
* regex-posix.c, regex-posix.h: New files. (Some code
|
||
is taken liberally from rx/rgx.c in the old Guile dist.)
|
||
|
||
* init.c: Include regex-posix.h.
|
||
(scm_boot_guile_1): Call scm_init_regex_posix.
|
||
|
||
* Makefile.am (EXTRA_libguile_la_SOURCES, modinclude_HEADERS):
|
||
Add regex-posix.[ch] sources.
|
||
* Makefile.in: Regenerated.
|
||
|
||
* scmconfig.h.in: Add HAVE_REGCOMP macro. (automake is supposed
|
||
to do this automatically? It didn't for me, bleh.)
|
||
|
||
Mon May 26 18:51:29 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* fports.c (print_pipe_port): New function.
|
||
(scm_fptob): Use print_pipe_port instead of scm_prinport; the
|
||
latter doesn't even take the right arguments.
|
||
|
||
* Makefile.am: Increment shared lib revision number. I think
|
||
sometimes the uninstalled Guile finds the installed shared lib;
|
||
Gord says doing this might help. As things turned out, I can't
|
||
say whether it does.
|
||
* Makefile.in: Regenerated.
|
||
|
||
* gh_init.c (gh_enter): Cast c_main_prog to a void * before
|
||
passing it as the closure argument to scm_boot_guile. (Bill
|
||
Janssen)
|
||
|
||
* ports.c (print_void_port, putc_void_port, puts_void_port,
|
||
write_void_port, flush_void_port, getc_void_port, close_void_port,
|
||
noop0): Use ANSI prototypes instead of K&R declarations, so the
|
||
initialization of void_port_ptob gets aggressively type-checked.
|
||
Fix arguments of print_void_port and write_void_port. (Bill
|
||
Janssen)
|
||
|
||
* COPYING, __scm.h, _scm.h, alist.c, alist.h, append.c, append.h,
|
||
appinit.c, arbiters.c, arbiters.h, async.c, async.h, backtrace.c,
|
||
backtrace.h, boolean.c, boolean.h, chars.c, chars.h,
|
||
continuations.c, continuations.h, coop-defs.h, coop-threads.c,
|
||
coop-threads.c.cygnus, coop-threads.h, coop-threads.h.cygnus,
|
||
coop.c, debug.c, debug.h, dynl-dl.c, dynl-dld.c, dynl-shl.c,
|
||
dynl-vms.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, eq.h,
|
||
error.c, error.h, eval.c, eval.h, extchrs.h, feature.c, feature.h,
|
||
filesys.c, filesys.h, fports.c, fports.h, fsu-pthreads.h, gc.c,
|
||
gc.h, gdbint.c, gdbint.h, genio.c, genio.h, gh.h, gh_data.c,
|
||
gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c, gh_list.c,
|
||
gh_predicates.c, gh_test_c.c, gh_test_repl.c, gscm.c, gscm.h,
|
||
gsubr.c, gsubr.h, guile.c, hash.c, hash.h, hashtab.c, hashtab.h,
|
||
init.c, init.h, ioext.c, ioext.h, kw.c, kw.h, libguile.h, list.c,
|
||
list.h, load.c, load.h, mallocs.c, mallocs.h, markers.c,
|
||
markers.h, mbstrings.c, mbstrings.h, mit-pthreads.c,
|
||
mit-pthreads.h, net_db.c, net_db.h, numbers.c, numbers.h,
|
||
objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
|
||
ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
|
||
procprop.h, procs.c, procs.h, putenv.c, ramap.c, ramap.h, read.c,
|
||
read.h, root.c, root.h, scmhob.h, scmsigs.c, scmsigs.h, script.c,
|
||
script.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c,
|
||
smob.h, snarf.h, socket.c, socket.h, srcprop.c, srcprop.h,
|
||
stackchk.c, stackchk.h, stacks.c, stacks.h, stime.c, stime.h,
|
||
strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h,
|
||
strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h,
|
||
tag.c, tag.h, tags.h, threads.c, threads.h, throw.c, throw.h,
|
||
unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h,
|
||
version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: New
|
||
address for FSF.
|
||
|
||
Mon May 26 12:37:30 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* script.c (scm_find_executable): Use prototype-style definition
|
||
here; apparently it's not quite right to have const in a prototype
|
||
and then use a K&R declaration. I wonder if stuff like this will
|
||
go away if we compile with -Wrequire-prototypes, or whatever that
|
||
is... (Bernard URBAN)
|
||
|
||
* scmhob.h: New text from Bernard URBAN.
|
||
|
||
Sat May 17 17:14:36 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* script.c: Don't #define const on hpux. Configure takes care of
|
||
this. (Thanks to Larry Schwimmer.)
|
||
|
||
* script.c: Use the HAVE_UNISTD_H symbol provided by autoconf to
|
||
decide whether to #include <unistd.h>, instead of listing a bunch
|
||
of systems. Don't #include stdio twice. Removed dyked-out
|
||
definition of scm_find_impl_file.
|
||
|
||
Fri May 16 03:06:08 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.am (libguile_la_LDFLAGS): Update libguile's shared
|
||
library version info to 1:0.
|
||
* Makefile.in: Regenerated.
|
||
|
||
* backtrace.c, backtrace.h, debug.c, debug.h, eq.c,
|
||
gdb_interface.h, gdbint.c, gdbint.h, gh_data.c, gh_init.c,
|
||
gh_io.c, gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c,
|
||
init.c, net_db.c, options.c, options.h, ports.c, print.c, read.c,
|
||
script.h, snarf.h, srcprop.c, srcprop.h, stacks.c, stacks.h,
|
||
throw.c: Update copyright years; these files have been worked on
|
||
significantly in 1997, but only had copyright years for 1996.
|
||
Also, change name of copyright holder on some from Mikael
|
||
Djurfeldt to Free Software Foundation; he has signed papers
|
||
assigning the changes to the FSF.
|
||
|
||
* script.c (scm_shell_usage): Pass FATAL to exit. There's no
|
||
reason not to give the user the option.
|
||
|
||
* net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
|
||
Return #f on end-of-file when scanning table (i.e. when called
|
||
with no arguments). Try to catch errors, when we can.
|
||
* posix.c (scm_getgrgid, scm_getpwuid): Same.
|
||
|
||
* script.h (scm_shell_usage, scm_compile_shell_switches): New
|
||
external declarations. These are useful.
|
||
|
||
Thu May 15 05:21:36 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* posix.c: don't include <sys/select.h> or define macros for
|
||
select, since they were not used in this file.
|
||
|
||
* filesys.c (scm_select): make the fifth parameter microseconds,
|
||
not milliseconds. let the fourth parameter be either a real value
|
||
or an integer or #f. The first, second and third arguments can
|
||
now be vectors: the type of the corresponding return set will be
|
||
the same.
|
||
(set_element, get_element): new static procedures.
|
||
|
||
Wed May 14 12:18:12 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* strports.c (scm_eval_string): New function.
|
||
(scm_eval_0str): Trivially re-implemented in terms of
|
||
scm_eval_string.
|
||
* strports.h (scm_eval_string): New extern decl.
|
||
|
||
* net_db.c (h_errno): Add extern decl for this.
|
||
|
||
* fports.c (local_pclose): New function.
|
||
(scm_pipob): Use it in the initializer here.
|
||
|
||
From Tim Pierce:
|
||
* net_db.c (scm_gethost, scm_getproto, scm_getnet, scm_getserv):
|
||
Use a meaningful error message when signalling an error. For
|
||
this, scm_gethost must check h_errno rather than errno.
|
||
|
||
Tue May 13 16:40:06 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.in: Regenerated, using automake-1.1p.
|
||
|
||
Tue May 13 04:34:52 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* socket.c (scm_addr_vector): use SCM_UNDEFINED in scm_listify,
|
||
not SCM_UNSPECIFIED.
|
||
|
||
* script.c (scm_compile_shell_switches): don't append (quit) if
|
||
interactive.
|
||
(scm_shell): call scm_exit_status and exit on the result of the
|
||
evaluation.
|
||
|
||
Mon May 12 17:23:58 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
Ensure that shared substrings are handled properly when passed to
|
||
a system call or other foreign function. Many thanks to Tim
|
||
Pierce!
|
||
* symbols.h (SCM_COERCE_SUBSTR): new macro.
|
||
* filesys.c (scm_chmod, scm_rename, scm_delete_file, scm_mkdir,
|
||
scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
|
||
scm_lstat), ports.c (scm_sys_make_void_port), posix.c (scm_utime,
|
||
scm_putenv, scm_setlocale, scm_mknod), stime.c (setzone,
|
||
scm_strftime), vports.c (scm_make_soft_port), backtrace.c
|
||
(scm_display_error_message): use RO macros when strings may be RO.
|
||
* error.c (scm_error_scm), filesys.c (scm_chown, scm_chmod,
|
||
scm_rename, scm_delete_file, scm_mkdir, scm_rmdir, scm_opendir,
|
||
scm_chdir, scm_symlink, scm_readlink, scm_lstat), ioext.c
|
||
(scm_freopen, scm_duplicate_port, scm_fdopen), net_db.c
|
||
(scm_gethost, scm_getnet, scm_getproto, scm_getserv), ports.c
|
||
(scm_sys_make_void_port), posix.c (scm_getgrgid, scm_utime,
|
||
scm_setlocale, scm_mknod), stime.c (setzone, scm_strptime,
|
||
scm_strftime), vports.c (scm_make_soft_port): use
|
||
SCM_COERCE_SUBSTR to make sure shared substrings are
|
||
null-terminated.
|
||
|
||
Mon May 12 15:33:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* error.c (scm_error): Add newline to error message.
|
||
|
||
* init.c (scm_init_standard_ports): Doc fix.
|
||
|
||
Thu May 8 14:38:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* dynl-shl.c: Completely replaced with new code from Bernard
|
||
URBAN.
|
||
|
||
* script.c (scm_ice_9_already_loaded): New variable.
|
||
(scm_compile_shell_switches): Use it.
|
||
|
||
Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* filesys.c (scm_input_waiting_p): add missing third argument to
|
||
scm_misc_error.
|
||
|
||
* stime.c (scm_localtime): copy the result of localtime before
|
||
calling gmtime in case they share a buffer.
|
||
(scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
|
||
nor HAVE_TZNAME.
|
||
|
||
Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
|
||
|
||
Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.am (check-local): New target, which causes 'make check'
|
||
to run gh_test_c and gh_test_repl, with some trivial input.
|
||
* Makefile.in: Rgnrtd.
|
||
|
||
Tue Apr 29 19:00:40 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* dynl.c (print_dynl_obj): Indicate whether the dynamic object has
|
||
been unlinked.
|
||
|
||
Mon Apr 28 06:10:14 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* async.c (scm_sys_tick_async_thunk): commented out. I'm not
|
||
sure how this was supposed to work.
|
||
(scm_async_click): don't send SCM_TICK_SIGNAL.
|
||
(scm_init_async): don't initialize %tick-thunk.
|
||
|
||
* the following change doesn't affect the Scheme interface:
|
||
gc-thunk is called at the end of garbage collection. however it's
|
||
no longer implemented by pretending it's a signal.
|
||
|
||
* gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
|
||
system async corresponding to scm_gc_thunk.
|
||
* async.h: declare scm_gc_async.
|
||
* async.c (scm_sys_gc_async_thunk): apply the thunk named by
|
||
gc-thunk directly, instead of going through a signal handler.
|
||
(scm_gc_async): new variable, points to the GC system-async.
|
||
(scm_init_async): save the GC async as scm_gc_async instead
|
||
of using system_signal_asyncs.
|
||
(scm_gc_vcell): new variable, stores the gc-thunk vcell.
|
||
|
||
Mon Apr 28 19:14:44 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.am (libpath.h, cpp_err_symbols.c, cpp_sig_symbols.c):
|
||
Don't screw up if we're interrupted.
|
||
* Makefile.in: Regeneradet.
|
||
|
||
Sun Apr 27 17:57:15 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* aclocal.m4: Removed; unnecessary, given changes of Apr 24.
|
||
|
||
* Makefile.am (modincludedir): Use "ice-9" instead of "@module@";
|
||
we're not using AM_INIT_GUILE_MODULE any more.
|
||
* Makefile.in: Reneregated.
|
||
|
||
Thu Apr 24 00:41:08 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
Functions for finding variable bindings, grace <20> Tim Pierce.
|
||
* gh_data.c (gh_lookup, gh_module_lookup): New functions.
|
||
* gh.h (gh_lookup, gh_module_lookup): New prototypes.
|
||
|
||
Get 'make dist' to work again.
|
||
* Makefile.am (EXTRA_DIST): Remove PLUGIN files.
|
||
* Makefile.in: Regenerated, like a surry without a fringe on top.
|
||
|
||
Changes for reduced Guile distribution: one configure script,
|
||
no plugins.
|
||
* configure.in, configure: Removed.
|
||
* acconfig.h, acinclude.m4: Moved to parent directory, where the
|
||
real configure script lives.
|
||
* Makefile.in, scmconfig.h.in: Regenerated.
|
||
|
||
* init.c: #include "script.h", to get prototype for script.c's
|
||
init function.
|
||
|
||
Wed Apr 23 21:25:39 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* gh_data.c (gh_scm2newstr, gh_symbol2newstr): Use
|
||
scm_must_malloc, not raw malloc.
|
||
|
||
* script.c (scm_compile_shell_switches): Dyke out debugging output
|
||
code.
|
||
|
||
Mon Apr 21 05:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* eq.c (scm_equal_p): use "SCM_TYP7SD", not "SCM (TYP7SD".
|
||
|
||
* stime.c: include both <sys/times.h> and <sys/timeb.h> if the
|
||
system has them. Hope this is safe. Previously
|
||
sys/timeb.h was included if HAVE_FTIME was defined or if
|
||
HAVE_SYS_TIMEB_H was defined but HAVE_SYS_TIMES_H was not,
|
||
but IRIX iris 5.3 apparently has ftime but not sys/timeb.h.
|
||
|
||
* ioext.c (scm_setfileno): add missing third argument to
|
||
scm_misc_error call.
|
||
|
||
Sun Apr 20 15:09:31 1997 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* eq.c (scm_equal_p): Correctly compare strings of different
|
||
varieties. (Thanks to Tim Pierce.)
|
||
|
||
Sat Apr 19 03:59:02 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* read.c (skip_scsh_block_comment): SCSH says the !# that ends a
|
||
#! block comment must occur on a line all by itself.
|
||
|
||
Move most of the guts of shell command processing into libguile,
|
||
so guile.c can be very small (and eventuallly auto-generated. (I
|
||
mean, generated mechanically, not self-generated. Hmm.))
|
||
* guile.c, script.c, script.h: New source files.
|
||
* init.c (scm_boot_guile_1): Call scm_init_script.
|
||
* libguile.h: #include "script.h".
|
||
* Makefile.am (bin_PROGRAMS, guile_SOURCES, guile_LDADD): New
|
||
targets, for new executable.
|
||
(libguile_la_SOURCES): Mention script.c.
|
||
(modinclude_HEADERS): Add script.h.
|
||
* configure.in: Always check for -lm, -lsocket, -lnsl, whether or
|
||
not dynamic linking is enabled. This is because we're generating
|
||
executables now. Move CY_AC_WITH_THREADS call after those, so the
|
||
values of cy_cv_threads_libs captures the libs chosen above.
|
||
* Makefile.in, configure, aclocal.m4: Regenerated.
|
||
|
||
* Makefile.am (EXTRA_DIST): Don't distribute gscm.c or gscm.h.
|
||
We don't maintain this interface any more, and it just confuses
|
||
people.
|
||
|
||
* alloca.c: #include <scmconfig.h>, not <config.h>.
|
||
* Makefile.am (EXTRA_libguile_la_SOURCES): Mention alloca.c, so
|
||
it'll get included in disties.
|
||
|
||
Thu Apr 17 17:45:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* gscm.c, gscm.h: These aren't supported any more, and shouldn't
|
||
be distributed, because they confuse people.
|
||
* Makefile.am (EXTRA_DIST): Remove gscm.c, gscm.h.
|
||
|
||
Sat Apr 19 11:56:18 1997 Tim Pierce <twp@twp.tezcat.com>
|
||
|
||
* configure.in: check for presence of gethostent (not present on
|
||
OpenBSD by default).
|
||
* net_db.c (scm_gethost): Check HAVE_GETHOSTENT.
|
||
* configure, scmconfig.h.in: Regenerated.
|
||
|
||
Wed Apr 16 17:52:38 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* backtrace.c (scm_backtrace): Split message string across
|
||
newlines properly. GCC is more tolerant of this than other
|
||
compilers.
|
||
|
||
Mon Apr 14 20:20:14 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
Merge threads directory into libguile.
|
||
* coop-defs.h, coop-threads.c, coop-threads.h, coop.c, threads.c,
|
||
threads.h: New source files.
|
||
* Makefile.am (EXTRA_libguile_la_SOURCES): Add threads.c.
|
||
(noinst_HEADERS): Add coop-threads.c, coop-threads.h, coop.c
|
||
here; see comment.
|
||
(modinclude_HEADERS): Add threads.h, coop-defs.h.
|
||
(EXTRA_DIST): Add fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
|
||
coop-threads.c.cygnus, coop-threads.h.cygnus.
|
||
* configure.in: If we're using threads, include threads.o in
|
||
LIBOBJS.
|
||
* _scm.h, libguile.h: threads.h lives in this directory now.
|
||
* fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
|
||
coop-threads.c.cygnus, coop-threads.h.cygnus: New files, not
|
||
currently used, but brought along for information's sake.
|
||
* ChangeLog-threads: log from old 'threads' directory.
|
||
* Makefile.in, configure: Rebuilt.
|
||
|
||
Mon Apr 14 20:15:29 1997 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* stime.c (scm_mktime): #ifndef HAVE_TM_ZONE, Use lt.tm_zone, not
|
||
lt->tm_zone.
|
||
|
||
Mon Apr 14 01:32:57 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* gh_init.c (gh_standard_handler): Return SCM_BOOL_F, not garbage.
|
||
|
||
Merge GH interface library into libguile.
|
||
* gh.h, gh_data.c, gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c,
|
||
gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c: New files.
|
||
* Makefile.am (libguile_la_SOURCES): Add gh_data.c, gh_eval.c,
|
||
gh_funcs.c, gh_init.c, gh_io.c, gh_list.c, gh_predicates.c. Move
|
||
_scm.h to ...
|
||
(EXTRA_libguile_la_SOURCES): ... here.
|
||
(pkginclude_HEADERS): Add variable, to get gh.h installed.
|
||
(THREAD_LIBS, check_ldadd, check_PROGRAMS, gh_test_c_SOURCES,
|
||
gh_test_c_LDADD, gh_test_repl_SOURCES, gh_test_repl_LDADD):
|
||
New variables, describing how to build the gh test programs.
|
||
* configure.in: Check for -lm, -lsocket, -lnsl; we need this to
|
||
build the test programs, and we probably should have been linking
|
||
libguile.la against them all along, to support AIX shared libs.
|
||
Add cflags for threads to CFLAGS; add libs for threads to new
|
||
variable THREAD_LIBS, used in Makefile.am.
|
||
* ChangeLog-gh: log from old `gh' subdirectory.
|
||
* Makefile.in, configure, scmconfig.h.in: Rebuilt.
|
||
|
||
Sun Apr 13 23:03:55 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* acconfig.h: Undo change of Apr 9; including the definition of
|
||
PACKAGE in the guile headers conflicts with applications' own
|
||
definitions.
|
||
* scmconfig.h.in: Regenerated.
|
||
|
||
Fri Apr 11 14:12:13 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* filesys.c (scm_fcntl): New function from Roland McGrath.
|
||
(scm_init_filesys): New symbols for use with fcntl.
|
||
* filesys.h: Added prototype.
|
||
|
||
* eval.c (SCM_APPLY): Set debug apply frame argument list correctly
|
||
when PROC is receiving no arguments.
|
||
|
||
Fri Apr 11 19:39:32 1997 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* filesys.c (S_ISSOCK): Define this if it's missing, but we do
|
||
have S_IFSOCK. This is the case under Ultrix.
|
||
|
||
* posix.c (scm_status_exit_val, scm_status_exit_val,
|
||
scm_status_term_sig, scm_status_stop_sig): Modified to work with
|
||
Ultrix versions of WIFSTOPPED, etc., which assume that their
|
||
arguments are lvalues (hmm).
|
||
|
||
Thu Apr 10 15:10:07 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* eval.c: Doc fixes.
|
||
|
||
* throw.c: Doc fixes; rearranged.
|
||
|
||
* putenv.c: #include "libguile/scmconfig.h", not <config.h>.
|
||
|
||
Wed Apr 9 18:01:20 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* acconfig.h: Added entry for PACKAGE.
|
||
* scmconfig.h.in: Regenerated.
|
||
|
||
Changes to work with automake-1.1n, which has better libtool support.
|
||
* Makefile.am: Use lib_LTLIBRARIES instead of lib_PROGRAMS.
|
||
Use libguile_la_LIBADD instead of libguile_la_LDADD. (What's the
|
||
difference here?)
|
||
(libguile_la_SOURCES, modinclude_HEADERS, EXTRA_DIST): Format for
|
||
readability.
|
||
* Makefile.in: Rebuild.
|
||
|
||
Wed Apr 9 09:08:54 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* stime.c (scm_mktime): take an optional zone argument.
|
||
(scm_localtime): check putenv return value.
|
||
(scm_strftime, scm_strptime): moved from posix.c. move #include
|
||
sequences.h too.
|
||
stime.h, posix.h: update prototypes.
|
||
(bdtime2c, setzone, restorezone): new static procedures.
|
||
(scm_mktime, scm_strftime): use them.
|
||
(scm_strftime): don't call mktime before strftime. Use
|
||
filltime for return value.
|
||
(filltime): convert NULL zname to #f.
|
||
(scm_strptime): return a count of characters consumed, not
|
||
the remaining string.
|
||
|
||
Sun Apr 6 05:44:11 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* stime.c (scm_localtime): check HAVE_TM_ZONE and HAVE_TZNAME.
|
||
(scm_mktime): likewise.
|
||
Declare *tzname[].
|
||
Uncomment localtime and mktime.
|
||
|
||
* configure.in: add AC_STRUCT_TIMEZONE.
|
||
|
||
Sat Apr 5 23:56:40 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* stime.c (scm_init_stime): don't define ticks/sec.
|
||
(scm_gettimeofday): renamed from scm_time_plus_ticks (avoids multiple
|
||
return value problem and is still portable.)
|
||
|
||
Sat Apr 5 17:59:24 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* cpp_err_symbols.in: Renamed from cpp_err_symbols, to avoid
|
||
make's implicit cpp_err_symbols: cpp_err_symbols.c rule.
|
||
* cpp_sig_symbols.in: Renamed from cpp_sig_symbols.
|
||
* Makefile.am (check_errnos, check_signals, cpp_sig_symbols.c,
|
||
cpp_err_symbols.c): Corresponding changes.
|
||
* Makefile.in: Regenerated.
|
||
|
||
Sat Apr 5 02:39:02 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* posix.c (scm_putenv): don't check HAVE_PUTENV.
|
||
* Makefile.am (EXTRA_libguile_la_SOURCES): add putenv.c.
|
||
* configure.in: move putenv from AC_CHECK_FUNCS to AC_REPLACE_FUNCS.
|
||
* putenv.c: new file, from sh-utils 1.12.
|
||
|
||
* posix.c (scm_environ): use malloc in place of scm_must_malloc
|
||
since allocation isn't for Scheme objects.
|
||
(scm_putenv): copy strings before placing in the environment.
|
||
|
||
* stime.c (scm_current_time): throw an error if time returns -1,
|
||
instead of returning #f.
|
||
(scm_get_internal_real_time, scm_get_internal_real_time): use
|
||
scm_long2num for return value instead of SCM_MAKINUM.
|
||
|
||
* stime.h: prototypes updated.
|
||
|
||
* stime.c (scm_time_in_msec): apparently unused, deleted.
|
||
|
||
Fri Apr 4 08:53:41 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* configure.in: check for gettimeofday.
|
||
|
||
* stime.c (scm_time_plus_ticks): new procedure, an scsh interface
|
||
which may be more usefully portable than a gettimeofday interface.
|
||
|
||
Wed Apr 2 17:11:39 1997 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* Makefile.am (EXTRA_DIST): It's cpp_err_symbols, not
|
||
cpp_err_signals.
|
||
* Makefile.in: Regenerated.
|
||
|
||
Mon Mar 31 03:22:37 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* stime.c (filltime): recovered static procedure.
|
||
(scm_localtime, scm_gmtime, scm_mktime, scm_tzset): recovered from
|
||
an earlier Guile.
|
||
|
||
* posix.h: add prototype for scm_close_pipe, remove prototypes for
|
||
scm_open_input_pipe, scm_open_output_pipe, change scm_mknod prototype.
|
||
|
||
* posix.c (scm_mknod): split the mode argument into type and perms
|
||
arguments, like the extra fields returned by stat.
|
||
|
||
* fports.c (scm_pipob): set the close, free and print procedures.
|
||
(scm_close_pipe): new procedure.
|
||
|
||
* posix.c (scm_open_input_pipe, scm_open_output_pipe): deleted,
|
||
define them in boot-9.scm
|
||
|
||
Wed Mar 26 04:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ioext.c (scm_setfileno): throw a runtime error if SET_FILE_FD_FIELD
|
||
wan't defined. Don't include fd.h.
|
||
|
||
* Previously fd.h was regenerated whenever configure was run,
|
||
forcing a couple of files to be recompiled.
|
||
|
||
* fd.h.in: deleted, SET_FILE_FD_FIELD moved to ioext.c.
|
||
* configure.in: AC_DEFINE FD_SETTER instead of HAVE_FD_SETTER.
|
||
Check for _fileno as well as _file.
|
||
Don't output fd.h.
|
||
* ioext.c: don't fd.h.
|
||
* acconfig.h: remove duplicate HAVE_FD_SETTER and change the
|
||
other to FD_SETTER.
|
||
|
||
* Change the stratigy for getting information about errno
|
||
(and now signal number) values, e.g., ENOSYS, SIGKILL. Instead of
|
||
generating lists of symbols during the build process, which will
|
||
not always work, include comprehensive lists in the distribution.
|
||
To help keep the lists up to date, the "check_signals" and
|
||
"check_errnos" make targets can be used.
|
||
|
||
* configure.in: don't check for a command to extract errno codes.
|
||
* Makefile.am: update file lists, remove errnos.list and errnos.c
|
||
targets, add cpp_err_symbols.c, cpp_sig_symbols.c, check_signals,
|
||
check_errnos targets.
|
||
(CLEANFILES): remove errnos.c and errnos.list, add
|
||
cpp_err_symbols_here cpp_err_symbols_diff cpp_err_symbols_new
|
||
cpp_sig_symbols_here cpp_sig_symbols_diff cpp_sig_symbols_new
|
||
* errnos.default: deleted.
|
||
* cpp_signal.c: new file.
|
||
* cpp_errno.c: renamed from errnos_get.c.
|
||
* cpp_err_symbols, cpp_sig_symbols: new files.
|
||
* cpp_cnvt.awk: renamed from errnos_cnvt_awk.
|
||
* error.c (scm_init_error): #include cpp_err_symbols instead of
|
||
errnos.c.
|
||
* posix.c (scm_init_posix): don't intern signal symbols. #include
|
||
cpp_sig_symbols.c.
|
||
|
||
Tue Mar 25 04:51:10 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* strop.c (scm_i_index): allow the lower bound to be equal to the
|
||
length of the string, so a null string doesn't always give an error.
|
||
|
||
* posix.h: new prototypes.
|
||
* posix.c (scm_status_exit_val, scm_status_term_sig,
|
||
scm_status_stop_sig): new functions, as in scsh. They break down
|
||
process status values as returned by waitpid.
|
||
|
||
Sat Mar 22 18:16:29 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* net_db.c (scm_gethost): don't check HAVE_GETHOSTENT, since
|
||
configure doesn't know about it.
|
||
|
||
Fri Mar 21 23:49:28 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* snarf.h, backtrace.c: Name change SCM_GLOBAL --> SCM_VCELL.
|
||
|
||
* snarf.h: Added new macros SCM_GLOBAL_SYMBOL and SCM_GLOBAL_VCELL
|
||
which defines C variables with global linkage.
|
||
|
||
Mon Mar 17 05:57:11 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* snarf.h (SCM_PROC1): Bugfix: Use (void) rather than (...) for
|
||
zero arg subrs.
|
||
|
||
Sun Mar 16 11:43:49 1997 Mikael Djurfeldt <mdj@floss.cyclic.com>
|
||
|
||
* eval.c (safe_setjmp): Temporarily use old setjmp until someone
|
||
has time to check why this doesn't work well with continuations.
|
||
|
||
Sun Mar 16 05:09:55 1997 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* Fix shell syntax error; some shells won't tolerate
|
||
multiple "fi" statements on a single line. (Thanks to Fred Fish.)
|
||
|
||
Sat Mar 15 01:11:40 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* posix.c (scm_uname): throw an error if uname fails instead
|
||
of returning errno.
|
||
|
||
* error.h (scm_errno, scm_perror): obsolete prototypes removed.
|
||
|
||
* error.c (err_head, scm_errno, scm_perror): obsolete procedures
|
||
removed.
|
||
|
||
* async.c (scm_ints_disabled): definition moved from error.c.
|
||
|
||
Sat Mar 15 00:06:08 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* acconfig.h: Removed PACKAGE.
|
||
|
||
* scmconfig.h.in: Regenerated.
|
||
|
||
* snarf.h: g++ says it's non-portable not to specify the first
|
||
argument in a varargs declaration. I introduced the first
|
||
argument by using preprocessor conditionals.
|
||
|
||
Thu Mar 13 21:28:25 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ioext.c (scm_read_delimited_x): use RO string macros for delims.
|
||
(scm_freopen): use RO string macros for filename and modes.
|
||
(scm_duplicate_port, scm_fdopen): use RO string macros for modes.
|
||
|
||
* posix.c (scm_getgrgid): simplify conversion of name to C string.
|
||
(scm_mknod): use RO string macros for path.
|
||
|
||
* socket.c (scm_fill_sockaddr, scm_send, scm_sendto):
|
||
use SCM_ROSTRINGP, SCM_ROCHARS, SCM_ROLENGTH.
|
||
|
||
* net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
|
||
use SCM_ROSTRINGP and SCM_ROCHARS.
|
||
|
||
Thu Mar 13 18:31:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* unif.c (scm_array_set_x): Cast ICHR (obj) to char if storing in
|
||
a scm_tc7_byvect.
|
||
|
||
* ramap.c (scm_ra_matchp, scm_array_fill_int, racp,
|
||
scm_array_index_map_x, raeql_1, scm_array_equal_p): Completed
|
||
support for byte vectors.
|
||
|
||
* print.c (scm_iprin1): Limit number of vector elements printed
|
||
according to pstate->length.
|
||
|
||
Thu Mar 13 00:12:35 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* backtrace.c (scm_display_error_message): don't segv if message
|
||
is an immediate.
|
||
|
||
* error.h: prototype for scm_error_scm.
|
||
|
||
* error.c (scm_error_scm): new procedure, reimplements scm-error
|
||
in C and uses scm_error.
|
||
|
||
Tue Mar 11 03:51:00 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* read.c (scm_read_hash_extend): make scm_read_hash_procedures a
|
||
pointer to the Scheme variable read-hash-procedures and intern it
|
||
in scm_init_read. Modify scm_read_hash_extend and
|
||
scm_get_hash_procedure to use the pointer.
|
||
|
||
Mon Mar 10 06:28:54 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* read.h (SCM_N_READ_OPTIONS): increase SCM_N_READ_OPTIONS to 4.
|
||
(SCM_KEYWORD_STYLE): defined.
|
||
|
||
* read.c (scm_read_opts): add a keywords option. This isn't a
|
||
boolean option, in case someone wants to add support for DSSSL
|
||
keywords too.
|
||
Setup scm_keyword_prefix symbol.
|
||
(scm_lreadr): Only process keywords if SCM_KEYWORD_STYLE is
|
||
set to 'prefix.
|
||
I've left keyword support disabled by default, since it doesn't
|
||
seem to break the module system and it gives R4RS standard behaviour.
|
||
It can be reactivated with (read-set! keywords 'prefix).
|
||
|
||
Sun Mar 9 14:14:39 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* arbiters.c (scm_make_arbiter): Bugfix: Must SCM_DEFER_INTS
|
||
before constructing arbiter.
|
||
|
||
* eval.c (scm_m_define): Bugfix: Check that the object is a
|
||
closure before setting the procedure property!
|
||
|
||
* ports.h: Removed prototype for scm_ungetc_char_ready_p.
|
||
|
||
* ports.c: Removed `ungetc-char-ready?'.
|
||
|
||
Sat Mar 8 00:27:05 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* read.c (scm_init_read): intitialise scm_read_hash_procedures
|
||
(idea from Mikael: make it a pair so scm_permanent object only
|
||
called once.)
|
||
(scm_read_hash_extend): don't call scm_permanent_object.
|
||
(ideas from Mikael): if chr is already in the list, replace its
|
||
procedure instead of appending it again. If proc is #f, remove
|
||
it from the list.
|
||
(scm_get_hash_procedure): take CDR of scm_read_hash_procedures.
|
||
|
||
* strports.c (scm_read_0str, scm_eval_0str): update scm_read usage.
|
||
|
||
* gdbint.c (gdb_read): update scm_lreadr usage.
|
||
|
||
* load.h: update prototypes.
|
||
|
||
* load.c (scm_primitive_load, scm_read_and_eval_x,
|
||
scm_primitive_load_path): remove case_insensitive_p, sharp arguments.
|
||
|
||
* read.h: add prototype for scm_read_hash_extend. Change args for
|
||
other prototypes.
|
||
|
||
* read.c (scm_read_hash_procedures): new variable.
|
||
(scm_read_hash_extend): new procedure.
|
||
(scm_get_hash_procedure): new procedure.
|
||
(scm_lreadr): use scm_get_hash_procedure instead of an argument
|
||
for extended # processing.
|
||
(scm_read, scm_lreadr, scm_lreadrecparen, scm_lreadparen,
|
||
scm_read_token): remove case_i, sharp arguments. Change callers.
|
||
|
||
Fri Mar 7 08:58:21 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* read.h (SCM_N_READ_OPTIONS): increase to 3.
|
||
(SCM_CASE_INSENSITIVE_P): define.
|
||
|
||
* read.c: add case-insensitive option to scm_read_opts.
|
||
(scm_read_token): use SCM_CASE_INSENSITIVE_P instead of an argument
|
||
to determine whether to convert symbol case.
|
||
(default_case_i): definition removed.
|
||
* read.c (scm_read_token): if case_i, downcase ic before doing
|
||
anything with it.
|
||
|
||
Sat Mar 8 03:49:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* configure.in: Added configuration option `guile-debug'.
|
||
Configure with --enable-guile-debug if you want a bunch of extra
|
||
functions used for debugging when developing Guile.
|
||
|
||
* acconfig.h: Added new preprocessor symbol GUILE_DEBUG.
|
||
|
||
* procs.c (make-cclo): New undocumented debugging procedure: Make
|
||
compiled closure with internal procedure PROC and length LENGTH.
|
||
Only compiled if GUILE_DEBUG is defined.
|
||
|
||
* debug.c: Only include `debug-hang' if GUILE_DEBUG is defined.
|
||
|
||
* print.c: Put #ifdef GUILE_DEBUG around `current-pstate'.
|
||
|
||
* ports.c: Changed preprocessor symbol DEBUG --> GUILE_DEBUG.
|
||
|
||
* eval.c (SCM_CEVAL): Added code sections for handling of rpsubrs
|
||
with 3 or more args internally to the evaluator.
|
||
|
||
Fri Mar 7 19:38:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* eval.c (SCM_CEVAL): Added code sections for handling of asubrs
|
||
with 3 or more args internally to the evaluator. This is mainly
|
||
because we don't want to pass entry and exit points of the
|
||
debug support twice, but it also seems to increase the speed of
|
||
the evaluator for such calls (e. g. (+ 1 2 3)).
|
||
|
||
* backtrace.c (scm_display_application): New procedure:
|
||
display-application; Set fancy printing parameters individually
|
||
for different types of display (backtrace, error, application).
|
||
(These should of course be customizable!)
|
||
|
||
* debug.h (SCM_RESET_DEBUG_MODE): Bugfix: The old code didn't
|
||
clear the CHECK-flags.
|
||
|
||
Thu Mar 6 00:53:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* tags.h, eval.c (iqq): Fixes to comments about SCM_ECONSP.
|
||
|
||
Wed Mar 5 23:31:21 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* tags.h (SCM_ECONSP, SCM_NECONSP): Bugfix: Discriminate structs
|
||
from pairs with a GLOC in the car.
|
||
|
||
* symbols.c (msymbolize): Bugfix: Also initialize SCM_SYMBOL_HASH,
|
||
otherwise `symbol-hash' will behave badly.
|
||
(scm_symbol_hash): Bugfix: Must msymbolize if tc7_ssymbol, othwise
|
||
we get segmentation fault!
|
||
|
||
* symbols.c: Added #include "weaks.h". New functions:
|
||
`builtin-bindings' and `builtin-weak-bindings'. (These will be
|
||
moved to an extraneous library when we split libguile.)
|
||
|
||
Tue Mar 4 19:50:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* filesys.c (scm_stat): stat now takes fport arguments too as
|
||
documented in the manual.
|
||
|
||
Mon Mar 3 07:11:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* debug.c (scm_single_step): Bugfix: Call continuation with
|
||
scm_call_continuation instead of throwing to it.
|
||
|
||
Mon Mar 3 09:07:56 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ports.c (scm_char_ready_p): bug fix: in SCM_PROC char-ready's
|
||
argument wasn't declared to be optional.
|
||
|
||
Sun Mar 2 16:34:40 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* stime.c (scm_init_stime): Add feature "current-time".
|
||
|
||
Sun Mar 2 06:37:31 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* throw.h: prototype for scm_exit_status.
|
||
* throw.c (scm_handle_by_message): if a 'quit is caught, use its
|
||
args to derive an exit status. Allows (quit) to work from a
|
||
script.
|
||
(scm_exit_status): new function.
|
||
#include "eq.h".
|
||
|
||
Sat Mar 1 00:09:15 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* eval.c (scm_deval): Removed some old code.
|
||
(ENTER_APPLY): Bugfix: Reset apply-frame trap on trap as is done
|
||
with the others.
|
||
(ENTER_APPLY, scm_deval): Reset trace flag on apply-frame and
|
||
exit-frame traps.
|
||
|
||
* symbols.c (msymbolize): Bugfix: Must initialize property list to
|
||
SCM_EOL.
|
||
|
||
* procs.c: Introduce the existent C function scm_thunk_p at the
|
||
Scheme level as well.
|
||
|
||
Wed Feb 26 12:53:58 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* symbols.c, symbols.h (scm_symbol_value0): New function. Can be
|
||
used from C to easily lookup the value of a symbol in the current
|
||
module.
|
||
|
||
Tue Feb 25 00:14:10 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* unif.c (scm_init_unif): Added #include "unif.x". (There are two
|
||
scm_init_unif in this file. This will also fix a previous problem
|
||
with guile-snarf.)
|
||
|
||
* configure.in: Added AM_MAINTAINER_MODE
|
||
|
||
Fri Feb 21 23:07:26 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* gdb_interface.h (GDB_INTERFACE): Added some (void *) casts to
|
||
avoid warnings.
|
||
|
||
Fri Feb 21 18:00:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* Makefile.am (EXTRA_libguile_la_SOURCES): New variable to hold
|
||
source files that are not always included in libguile but should
|
||
have their dependencies calculated by automake. This variable is
|
||
recognized by automake, no further magic is needed.
|
||
(libguile_la_DEPENDENCIES): Changed to @LIBLOBJS@. Libtool wants
|
||
to deal exclusively with *.lo files, as it seems. The *.o files
|
||
are built automatically when the corresponding *.lo file gets
|
||
built.
|
||
|
||
Wed Feb 19 14:04:23 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* list.h (scm_list_cdr_ref): Delete prototype; function no longer
|
||
exists.
|
||
|
||
Thu Feb 13 21:44:07 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* unif.c (scm_array_set_x): minor change to argument error checking.
|
||
|
||
Tue Feb 11 18:19:47 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.am (libguile_la_SOURCES): Remove backtrace.c, debug.c,
|
||
inet_aton.c, srcprop.c, stacks.c, and strerror.c from this list.
|
||
They should only be included in the library at configure.in's
|
||
discretion.
|
||
(libguile_la_LDADD): Include the appropriate .lo files here.
|
||
(libguile_la_DEPENDENCIES): List the corresponding .o files here,
|
||
so we know when to build them (and their .lo bretheren).
|
||
* configure.in (LIBLOBJS): New substituted variable. We let
|
||
configure decide which .o files to include in LIBOBJS, and then
|
||
put the corresponding list of .lo files in LIBLOBJS. The latter
|
||
is what we pass to libtool.
|
||
* Makefile.in, configure: regenerated.
|
||
|
||
Mon Feb 10 00:08:08 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* symbols.c (scm_sysintern0): New function. Contains the core of
|
||
old scm_sysintern but doesn't take a second value argument.
|
||
(scm_sysintern): Now uses scm_sysintern0.
|
||
(scm_sysintern_no_module_lookup): Renamed to
|
||
scm_sysintern0_no_module_lookup and doesn't take a second value
|
||
argument any longer.
|
||
|
||
* symbols.h (scm_sysintern0: Added declaration.
|
||
|
||
* options.c (scm_init_opts): Use scm_sysintern0 instead of
|
||
scm_sysintern when interning option keys. Otherwise we risk
|
||
destroying the values of already interned variables.
|
||
|
||
* symbols.c (scm_sym2vcell): Bugfix: Treat definedp as
|
||
scheme-level boolean (use SCM_NFALSEP).
|
||
|
||
* backtrace.c (scm_init_backtrace): Make Scheme-level variable
|
||
`the-last-stack'.
|
||
(scm_backtrace): New function. (C version of old function from
|
||
boot-9.scm) Motivation: Make it possible to display backtraces
|
||
without depending on boot-9.scm. (I'm uncertain if this
|
||
motivation is good enough...)
|
||
|
||
* root.h (scm_root_state): Add member the_last_stack_var.
|
||
(scm_the_stack_var): Defined to scm_root->the_last_stack_var.
|
||
|
||
* root.c (mark_root): Mark scm_the_last_stack_var.
|
||
|
||
* init.c (scm_start_stack): Initialize scm_the_last_stack_var to
|
||
SCM_BOOL_F.
|
||
|
||
Sun Feb 9 18:04:41 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* throw.c (mark_lazy_catch, free_lazy_catch): Removed.
|
||
1. mark_lazy_catch didn't mark the smob.
|
||
2. Both functions above have standard variants:
|
||
(lazy_catch_funs): Changed mark_lazy_catch --> scm_mark0,
|
||
free_lazy_catch --> scm_free0.
|
||
|
||
Fri Feb 7 17:30:26 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* throw.c (scm_internal_lazy_catch): New function.
|
||
(scm_lazy_catch): Rewritten to use it.
|
||
(scm_ithrow): Handle the new lazy catch representation.
|
||
Use SCM_LAZY_CATCH_P, instead of assuming that any wind list entry
|
||
that doesn't have a jmpbuf is a lazy catch clause.
|
||
(tc16_lazy_catch, struct lazy_catch, mark_lazy_catch,
|
||
free_lazy_catch, print_lazy_catch, lazy_catch_funs,
|
||
make_lazy_catch, SCM_LAZY_CATCH_P): Support funs, including a new
|
||
smob.
|
||
(scm_init_throw): Register the new lazy-catch smob type.
|
||
* throw.h (scm_internal_lazy_catch): decl for new function.
|
||
|
||
* throw.c (scm_internal_catch): Doc fixes.
|
||
|
||
* alloca.c: New file, needed to support the AC_FUNC_ALLOCA call in
|
||
configure.in. Including this might cause problems if applications
|
||
that link against libguile include their own copies of alloca, but
|
||
if they're using autoconf, they should be adding libguile to LIBS
|
||
before calling AC_FUNC_ALLOCA anyway, in which case they'll find
|
||
the copy in libguile, and things will be okay. (I think.)
|
||
|
||
Thu Feb 6 03:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* strop.c (scm_string_upcase_x, scm_string_downcase_x): moved from
|
||
unif.c.
|
||
strop.h: move prototypes too.
|
||
|
||
Wed Feb 5 08:33:00 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* posix.c (scm_init_posix): don't intern EINTR since it's now done
|
||
elsewhere.
|
||
|
||
* ioext.c (scm_init_ioext): don't intern stat macros, S_IRUSR
|
||
etc. I deleted them from filesys.c long ago, but didn't
|
||
notice they were here too (although ineffective since
|
||
sys/stat.h wasn't included).
|
||
|
||
Tue Feb 4 18:17:50 1997 Tom Tromey <tromey@cygnus.com>
|
||
|
||
* eval.c: Don't define alloca in GCC case. gcc will automatically
|
||
use __builtin_alloca if appropriate.
|
||
|
||
Tue Feb 4 16:57:40 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* eval.c (safe_setjmp): New function: trivial wrapper for setjmp.
|
||
(SCM_CEVAL, SCM_APPLY): Call it, instead of setjmp, to make sure
|
||
that values of automatic variables are preserved. See comments
|
||
for safe_setjmp for details.
|
||
|
||
Change from Thomas Morgan:
|
||
* variable.c: Include eq.h.
|
||
(var_equal): New function.
|
||
(variable_smob): Use var_equal as the discriminator for variables.
|
||
|
||
* throw.c (s_throw): Remove extraneous declaration.
|
||
|
||
* configure.in: Call AC_FUNC_ALLOCA, to see if we have alloca.
|
||
* eval.c: Add necessary CPP cruft to support that.
|
||
* configure, Makefile.in, scmconfig.h.in: regenerated.
|
||
|
||
Change from Thomas Morgan:
|
||
* procprop.c (scm_procedure_properties): Convert the Scheme
|
||
boolean returned by scm_procedure_p into a C boolean before using
|
||
it as a condition for SCM_ASSERT.
|
||
(scm_procedure_property): Likewise.
|
||
|
||
* simpos.c (SYSTNAME): Accept both 'unix' and '__unix' as
|
||
indications of Unixness.
|
||
* stime.c: Same.
|
||
|
||
Tue Feb 4 05:07:35 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
|
||
|
||
Mon Feb 3 06:12:37 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* read.c (scm_lreadr): use scm_misc_error to improve one of the
|
||
"unknown # object" error messages.
|
||
|
||
* strop.c (scm_i_index, scm_i_rindex): combine into one procedure
|
||
(scm_i_index) and declare it static. Add a 'direction' argument
|
||
to indicate what way the search should go.
|
||
(scm_i_index): throw out-of-range error instead of wrong-type-arg
|
||
if indices are bad.
|
||
(scm_string_index, scm_string_rindex): adjust usage of scm_i_index.
|
||
strop.h: remove scm_i_index, scm_i_rindex prototypes.
|
||
|
||
Fri Jan 31 04:33:11 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ioext.c, ioext.h: remove obsolete _sys_ from 9 procedure names.
|
||
|
||
* posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
|
||
to avoid clash with various scsh forks.
|
||
|
||
Thu Jan 30 20:14:09 1997 Mikael Djurfeldt <mdj@syk-0606.pdc.kth.se>
|
||
|
||
The following two changes (ramap.c, throw.c) are motivated by the
|
||
apparent unportability of forward declarations of static arrays of
|
||
the form `static foo bar[];'.
|
||
|
||
* ramap.c (scm_array_fill_x): Moved above scm_array_fill_int.
|
||
(ra_rpsubrs, ra_asubrs): Moved to the top of array code.
|
||
|
||
* throw.c (scm_throw): Moved above scm_ithrow.
|
||
|
||
* options.h: Removed the extern declarations of scm_yes_sym and
|
||
scm_no_sym since these are static.
|
||
|
||
Fri Jan 24 06:16:32 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ports.c: add SCM_PROC declarations for pt-size and pt-member.
|
||
|
||
* Makefile.am: remove AWK=@AWK@.
|
||
Add a rule for generating errnos.list.
|
||
(CLEANFILES): put errnos.list here instead of in DISTCLEANFILES.
|
||
|
||
* configure.in: add AC_SUBST(AWK) and AC_SUBST(ERRNO_EXTRACT).
|
||
don't extract errnos, just set a variable (avoids the
|
||
need to recompile error.c just because configure is run.)
|
||
|
||
* unif.h: update prototypes.
|
||
* unif.c (scm_uniform_array_read,write): change the offset and
|
||
length arguments to start and end, for consistency.
|
||
|
||
* __scm.h: uncomment SCM_ARG6 and SCM_ARG7, I needed SCM_ARG6.
|
||
|
||
* ioext.h: update prototypes.
|
||
* ioext.c (scm_read_delimited_x): replaces scm_read_line and
|
||
scm_read_line_x, it's a more general procedure using an
|
||
interface from scsh. read-line and read-line! are now defined
|
||
in boot-9.scm.
|
||
Note that the new read-line trims the terminator
|
||
by default, previously it was appended to the returned string. An
|
||
optional argument specifies how to process the terminator (scsh
|
||
compatible). For the old behaviour: (read-line port 'concat).
|
||
scm_read_line, scm_read_line_x: deleted. (read-line port 'split)
|
||
returns a pair, but is converted to multiple values if the scsh
|
||
module is loaded.
|
||
|
||
socket.h: update prototypes.
|
||
* socket.c (scm_recvfrom): for consistency with other procedures,
|
||
take start and end as separate optional arguments.
|
||
(scm_recv, scm_recvfrom): don't allow the second argument
|
||
to be a size, only a buffer. Change the scheme names to
|
||
recv! and recvfrom!. Don't return the buffer.
|
||
|
||
* ioext.h, posix.h: move prototypes too.
|
||
* ioext.c, posix.c (scm_read_line, scm_read_line_x, scm_write_line:
|
||
moved back from posix.c to ioext.c. Also move #includes of "genio.h"
|
||
"read.h" and "unif.h".
|
||
* ioext.c: include "chars.h"
|
||
|
||
Mon Jan 20 19:54:49 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* dynl.c: The dynamic linking and module registration functions
|
||
are now defined even when dynamic linking is not available for the
|
||
host system. Some of their functionality can be done without
|
||
dynamic linking; when it's really needed, they throw errors.
|
||
|
||
Thu Jan 16 16:39:29 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* configure.in: Only define DYNAMIC_LINKING when one of the system
|
||
dependent functions is detected.
|
||
* dynl.c (scm_dynamic_func): New function to get the address of a
|
||
function in a dynamic object.
|
||
(scm_dynamic_call, scm_dynamic_args_call): Accept the values
|
||
produced by scm_dynamic_func as the thing to call.
|
||
|
||
Sun Jan 12 21:09:42 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c: Restructured.
|
||
(scm_register_module_xxx, scm_registered_modules,
|
||
scm_clear_registered_modules): New functions.
|
||
|
||
Sat Jan 11 21:37:15 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* symbols.c (scm_sysintern): Renamed to
|
||
scm_sysintern_no_module_lookup.
|
||
(scm_sysintern): New function to take the place of the old
|
||
scm_sysintern. It uses the current toplevel lookup closure to give
|
||
the symbol its value. This is a temporary hack to put packages
|
||
like gtcltk into their own module.
|
||
(scm_can_use_top_level_lookup_closure_var): New variable to tell
|
||
us whether `scm_top_level_lookup_closure_var' has been initialized
|
||
and is usable.
|
||
* eval.c (scm_init_eval): Set it.
|
||
|
||
Sat Jan 18 00:03:31 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* fports.c (scm_open_file): pass errno to scm_syserror_msg.
|
||
* filesys.h: update prototypes. Remove macros: SCM_FD_P, SCM_FD_FLAGS,
|
||
SCM_FD.
|
||
* filesys.c (scm_sys_stat, scm_sys_lstat): pass errno to
|
||
scm_syserror_msg.
|
||
(scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
|
||
scm_sys_dup): deleted: FD capability will be added to other
|
||
procedures.
|
||
Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
|
||
scm_fd_free, fd_smob, scm_intern_fd.
|
||
(scm_open): renamed from scm_sys_open. Return a port instead of
|
||
an FD object. Make the mode argument optional.
|
||
(scm_sys_create): deleted, it's just a special case of open.
|
||
(scm_init_filesys): move interning of constants O_CREAT etc.,
|
||
here (were previously using SCM_CONST_LONG macro).
|
||
Add missing constants: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT.
|
||
don't newsmob fd.
|
||
(numerous _sys_ procedures): remove gratuitous _sys_ from names.
|
||
include "fports.h" and <stdio.h>
|
||
(scm_stat, scm_select): don't support FD objects.
|
||
|
||
* error.h: adjust scm_syserror_msg prototype.
|
||
* error.c (scm_syserror_msg): take an extra argument for errno.
|
||
Using the global value didn't always work, since it could be
|
||
reset by procedure calls in the message or args arguments.
|
||
|
||
* fports.c (scm_setbuf0): call setbuf even if FIONREAD is not defined.
|
||
I don't understand why the check was there (and what about the
|
||
ultrix check?)
|
||
|
||
* strop.c (scm_string_copy): allow shared substrings to be copied.
|
||
|
||
* unif.h: corresponding change to prototypes.
|
||
* unif.c (scm_uniform_array_read_x, scm_uniform_array_write_x):
|
||
recognize two new optional arguments: offset and length. Allow
|
||
the port argument to be an integer (file descriptor, for scsh).
|
||
Include <unistd.h> for "read" prototype.
|
||
|
||
Tue Jan 14 02:42:02 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* socket.c: don't include filesys.h.
|
||
|
||
Mon Jan 13 03:47:04 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* Makefile.am: add AWK=@AWK@ (?)
|
||
|
||
* Makefile.am (EXTRA_DIST): add errnos_cnvt.awk, errnos.default,
|
||
errnos_get.c.
|
||
Add a rule to generate errnos.c from errnos.
|
||
* error.c (scm_init_error): include errnos.c.
|
||
* errnos_cnvt.awk: new file, converts the list of errno codes to
|
||
C expressions.
|
||
* errnos_get.c: new file.
|
||
* errnos.default: new file, contains errnos to try if they can't
|
||
be extracted from errno.h.
|
||
* configure.in: if using GCC, try and extract errno codes from
|
||
errno.h.
|
||
Added AC_PROG_AWK.
|
||
|
||
Sat Jan 11 14:47:00 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* configure.in: Replaced AC_PROG_RANLIB with AM_PROG_LIBTOOL.
|
||
* Makefile.am: Made libguile into a libtool library.
|
||
* PLUGIN/guile.config: Removed "-L ../libguile" from xtra_cflags.
|
||
Set libtool_libs to indicate that libguile is a libtool library.
|
||
See guile/ChangeLog for details.
|
||
* .cvsignore: ignore "*.lo", the libtool library objects.
|
||
|
||
Wed Jan 8 06:54:54 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* net_db.c (scm_getserv): add missing SCM_ALLOW_INTS.
|
||
use htons in getservbyport argument.
|
||
|
||
Tue Jan 7 18:11:24 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* ports.h (SCM_PTOBNUM): Removed extraneous semicolon.
|
||
* smob.h: (SCM_PTOBNUM): Removed entirely; this definition is a
|
||
duplicate.
|
||
|
||
* objprop.c (scm_object_property): No need to take the CDR of the
|
||
value returned by scm_object_properties, since Aug 20 change.
|
||
|
||
* configure.in: When checking for struct linger, #include
|
||
<sys/types.h> as well as <sys/socket.h>. I've never known
|
||
<sys/types.h> to cause any portability problems, and Solaris's
|
||
<sys/socket.h> needs it.
|
||
* configure: Rebuilt.
|
||
|
||
I think the Sun compiler has chosen a perverse way to interpret
|
||
ANSI declarations combined with K&R definitions. We'll
|
||
appease it a little bit. But when it invades France, we fight.
|
||
* print.c (scm_iprlist): Change 'tlr' argument to an int.
|
||
* print.h (scm_iprlist): Here too.
|
||
* numbers.c (scm_divbigdig): Change definition to match
|
||
declaration in numbers.h.
|
||
* unif.c (scm_makflo): Change definition to match declaration in
|
||
unif.h.
|
||
|
||
* init.c (scm_boot_guile): Don't return the value of
|
||
scm_boot_guile_1. This function doesn't return a value;
|
||
scm_boot_guile_1 doesn't return a value (or return at all).
|
||
|
||
* eval.c (unmemocopy): Add a semicolon to appease the Sun
|
||
compiler.
|
||
|
||
* simpos.c (SYSTNAME): Add case for AIX; otherwise it won't
|
||
compile. I have a feeling this function is a bad idea anyway ---
|
||
one should always test for features, not systems.
|
||
|
||
* smob.h (SCM_SMOBNUM, SCM_PTOBNUM): Remove extraneous
|
||
semicolons. Only pure luck kept this from being noticed earlier.
|
||
|
||
Tue Jan 7 15:04:06 1997 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* socket.c (scm_recvfrom): Added missing semicolon.
|
||
|
||
Mon Jan 6 20:39:08 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* socket.c (scm_recvfrom): allow buff_or_size to be a list containing
|
||
the buffer and start and end positions for scsh networking
|
||
implementation.
|
||
|
||
Sun Jan 5 13:53:53 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* configure.in: Revert previous change to this file; the problem
|
||
is due to transient automake weirdness.
|
||
* configure: Rebuilt.
|
||
|
||
* Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in, not
|
||
PLUGIN/guile.libs. configure generates the latter from the former.
|
||
* Makefile.in: Rebuilt.
|
||
|
||
* configure.in: Call AM_PROG_INSTALL; the automake manual says we
|
||
need this if we install scripts, like guile-snarf.
|
||
* configure: Rebuilt.
|
||
|
||
Thu Jan 2 01:56:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* Makefile.am (EXTRA_DIST): Added DYNAMIC-LINKING
|
||
|
||
Sat Dec 28 19:14:01 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* socket.c (scm_addr_vector): fix faulty scm_listify.
|
||
|
||
Sat Dec 28 13:55:58 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* read.c (scm_lreadr): Encountering EOF after skipping a SCSH
|
||
style block comment is no longer considered an error.
|
||
|
||
Fri Dec 27 13:44:23 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* PLUGIN/guile.libs.in: New file.
|
||
* PLUGIN/guile.libs: Removed from repository.
|
||
* configure.in: Create PLUGIN/guile.libs from
|
||
PLUGIN/guile.libs.in. This is for including additonal libraries
|
||
needed for dynamic linking.
|
||
* Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in
|
||
instead of PLUGIN/guile.libs.
|
||
|
||
* Makefile.am: Added explicit dependency "dynl.o: dynl.x".
|
||
|
||
Sun Dec 22 23:06:14 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* list.c (scm_delq_x, scm_delv_x, scm_delete_x): Delete all
|
||
occurrences of the given element from the list, not just the
|
||
first. This is how the Emacs Lisp functions behave, how the
|
||
analogous Common Lisp functions behave, and (I believe) how the
|
||
older Maclisp functions worked. I realize that this change may
|
||
break code, but it seemed better to break it before the Guile
|
||
release than after.
|
||
|
||
* gc.c (scm_protect_object, scm_unprotect_object): New functions.
|
||
Their prototypes were already present in gc.h, but they weren't
|
||
implemented.
|
||
(scm_init_storage): Initialize scm_protects.
|
||
* root.c (scm_protects): New element of scm_sys_protects.
|
||
|
||
* net_db.h (scm_init_net_db): Fix spelling from scm_init_netdb.
|
||
|
||
Sat Dec 21 15:38:32 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* libguile.h: Added #include "libguile/net_db.h".
|
||
|
||
* libguile.h: Don't #include "libguile/libpath.h", contrary to Oct
|
||
30 change. That file is only meant for communication between the
|
||
configuration process and load.c. If code linked against libguile
|
||
wants to get at the paths mentioned in libpath.h, it can call
|
||
functions declared in load.h.
|
||
|
||
Sat Dec 21 14:50:42 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* libguile.h: Removed #include "libguile/fdsocket.h"
|
||
|
||
* net_db.c: Added #include <sys/socket.h>.
|
||
|
||
Sat Dec 21 00:33:03 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* filesys.c (scm_input_waiting_p): use select in preference to
|
||
FIONREAD, since the latter doesn't detect EOF.
|
||
Throw error if neither select nor FIONREAD available.
|
||
|
||
* socket.c (scm_connect): take a port, not a fd object.
|
||
(scm_fill_sockaddr): throw an error if fam is not recognised.
|
||
(scm_bind): use scm_fill_sockaddr.
|
||
(scm_listen): take a port, not a fd object.
|
||
(scm_accept): take and return a port. return #f in the car if
|
||
address can't be got
|
||
(scm_sock_fd_to_port): new procedure.
|
||
(scm_socket): use scm_sock_fd_to_port.
|
||
(scm_addr_vector): throw error if unrecognised address type.
|
||
take an extra argument with the calling procedure name.
|
||
(scm_getsockname): take a port. return #f if address can't be got.
|
||
(scm_getpeername): take a port. return #f if address can't be got.
|
||
(scm_recvfrom): take a port. return #f for address component if can't
|
||
be got.
|
||
(scm_sendto, scm_socketpair, scm_getsockopt scm_shutdown,
|
||
scm_setsockopt, scm_recv, scm_send): take a port not a fd object.
|
||
|
||
Fri Dec 20 23:06:53 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* throw.c (scm_internal_catch): Make body funcs and handler funcs
|
||
use separate data pointers, to allow them to be designed
|
||
independently and reused.
|
||
(scm_body_thunk, scm_handle_by_proc, scm_handle_by_message):
|
||
Renamed from catch_body, catch_handler, and uncaught_throw; made
|
||
generically useful.
|
||
(struct scm_catch_body_data): Renamed from catch_body_data; moved
|
||
to throw.h.
|
||
(scm_catch): Use the above.
|
||
(scm_throw): Don't bother printing a message for an uncaught
|
||
throw; we establish a default handler in init.
|
||
* throw.h (scm_internal_catch): Prototype updated.
|
||
(scm_body_thunk, scm_handle_by_proc, scm_handle_by_message): New
|
||
decls.
|
||
(struct scm_body_thunk_data): New structure, used as data
|
||
argument to scm_body_thunk.
|
||
* init.c (struct main_func_closure): New structure, packaging up
|
||
the data to pass to the user's main function.
|
||
(scm_boot_guile): Create one. Pass it to scm_boot_guile_1.
|
||
(scm_boot_guile_1): Pass it through to invoke_main_func. Use
|
||
scm_internal_catch to establish a catch-all handler, using
|
||
scm_handle_by_message. This replaces the special-case code in
|
||
scm_throw.
|
||
(invoke_main_func): Body function for scm_internal_catch; invoke
|
||
the user's main function, using the main_func_closure pointer to
|
||
decide what to pass it.
|
||
* root.c (struct cwdr_body_data): Remove handler_proc member.
|
||
(cwdr): Use scm_handle_by_proc instead of cwdr_handler.
|
||
(cwdr_handler): Removed.
|
||
|
||
Thu Dec 19 00:00:26 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* socket.h (SCM_P): update bind prototype.
|
||
* socket.c (scm_init_socket): intern PF_UNSPEC, PF_UNIX, PF_INET.
|
||
include "feature.h".
|
||
(scm_socket): return a port, not a file descriptor object.
|
||
include "fports.h" and <unistd.h>
|
||
(scm_bind): take a port, not a file descriptor object.
|
||
take an extra argument for address args.
|
||
|
||
* net_db.c (scm_init_net_db): intern INADDR_ANY, INADDR_BROADCAST,
|
||
INADDR_NONE, INADDR_LOOPBACK.
|
||
|
||
Tue Dec 17 22:58:26 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* init.c: include net_db.h and not fdsocket.h.
|
||
(scm_boot_guile_1): call scm_init_net_db and not scm_init_fdsocket.
|
||
|
||
* Makefile.am: corresponding changes.
|
||
* socket.h: renamed from fdsocket.h, fix names.
|
||
* net_db.h: renamed from socket.h, fix names.
|
||
* socket.c: renamed from fdsocket.c.
|
||
remove _sys from procedure names.
|
||
(scm_init_socket): rename from scm_init_fdsocket. include socket.x.
|
||
add "socket" to features list.
|
||
* net_db.c: renamed from socket.c.
|
||
remove _sys from procedure names.
|
||
(scm_init_net_db): rename from scm_init_socket. include net_db.x.
|
||
add "net-db" to features list.
|
||
include "net_db.h". don't include <sys/socket.h> or
|
||
<sys/un.h>.
|
||
|
||
Thu Dec 19 14:03:24 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* tags.h (scm_tags): Removed comma at end of last enumerator.
|
||
|
||
Thu Dec 19 02:54:59 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
Don't use GCC extensions to allocate space for debugging frames.
|
||
(Here he goes again! Why do we put up with this?!)
|
||
* debug.h (scm_debug_frame): Make the 'vect' member a pointer to
|
||
an scm_debug_info structure, not an in-line array of them. Add
|
||
'info' member, to say how many vect elements we've used, for eval
|
||
frames.
|
||
* eval.c (SCM_CEVAL): Use alloca to allocate space for vect. Use
|
||
a new variable debug_info_end to mark the end of vect, instead of
|
||
the address of the 'info' pointer itself.
|
||
[DEVAL] (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Remove casts of
|
||
&debug to scm_debug_frame *; debug is a real scm_debug_frame now.
|
||
(SCM_APPLY): Explicitly allocate space for debug.vect.
|
||
* debug.c (scm_m_start_stack): Same, for vframe.vect.
|
||
* stacks.c: Adjusted for new debug frame structure.
|
||
(RELOC_INFO, RELOC_FRAME): New macros.
|
||
(stack_depth, read_frames): Use them, and new scm_debug_frame
|
||
element 'info', instead of magically knowing that eval frames have
|
||
an info pointer sitting after vect.
|
||
(scm_make_stack, scm_stack_id, scm_last_stack_frame): Use
|
||
RELOC_FRAME.
|
||
(scm_init_stacks): Formatting tweaks.
|
||
|
||
Wed Dec 18 14:57:57 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
Give GCC more control flow information, so it can be sure that
|
||
variables aren't used uninitialized.
|
||
* error.h (scm_error, scm_syserror, scm_syserror_msg,
|
||
scm_sysmissing, scm_num_overflow, scm_out_of_range,
|
||
scm_wrong_num_args, scm_wrong_type_arg, scm_memory_error,
|
||
scm_misc_error): Tell GCC that these functions never return.
|
||
* struct.c (scm_struct_ref, scm_struct_set_x): If we can't figure
|
||
out the field type, call abort if SCM_ASSERT returns, to placate
|
||
the optimizer.
|
||
* stacks.c (scm_make_stack, scm_last_stack_frame): abort if
|
||
scm_wta ever returns. We can't handle this case anyway, and this
|
||
gives the optimizer more information.
|
||
* unif.c (scm_uniform_vector_ref, scm_array_set_x): Abort if
|
||
scm_wta ever returns.
|
||
|
||
In some cases, the code is fine, but GCC isn't smart enough to
|
||
figure that out; this usually happens when one variable is only
|
||
initialized and used when a particular condition holds true, and
|
||
we know that condition will never change within a given invocation
|
||
of the function. In this case, we simply initialize the variables
|
||
to placate the compiler, hopefully to a value which will cause a
|
||
crash if it is ever actually used.
|
||
* print.c (scm_iprin1): Initialize mw_pos.
|
||
* read.c (scm_lreadrecparen): Initialize tl2, ans2.
|
||
* throw.c (scm_ithrow): Initialize dynpair.
|
||
* unif.c (scm_uniform_vector_ref): Initialize cra.
|
||
* struct.c (init_struct): Initialize prot.
|
||
* mbstrings.c (scm_print_mb_symbol): Initialize mw_pos and inc.
|
||
|
||
* strports.c (scm_eval_0str): Don't return uninitialized garbage
|
||
if EXPR contains no expressions.
|
||
|
||
Wed Dec 18 11:43:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* eval.c, debug.h: Revert changes of Dec 16 and Nov 21. They
|
||
cause an infinite loop (???). So much for the algebraic
|
||
equivalency of variable-sized arrays and alloca...
|
||
|
||
Tue Dec 17 20:29:03 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* backtrace.c (scm_display_error): Bugfix: scm_procedure_p returns
|
||
a SCM boolean, not a C boolean.
|
||
|
||
Sat Dec 14 23:21:45 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* gc.c (SCM_MTRIGGER_HYSTERESIS): New memory management parameter.
|
||
(scm_must_malloc, scm_must_realloc): Added a hysteresis to the
|
||
rules for raising scm_mtrigger. Previously, unfortunate but not
|
||
unlikely circumstances could result in almost constant invokation
|
||
of the gc. Now, this situations should be less likely, but they
|
||
are not prevented completely.
|
||
|
||
Tue Dec 17 16:19:07 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* numbers.c (scm_fuck): Procedure removed; looks like old test
|
||
code.
|
||
* numbers.h: Prototype removed.
|
||
|
||
Mon Dec 16 18:20:32 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* debug.h (scm_debug_frame): Change `vect' member from an in-line
|
||
array to a pointer, to match my Nov 21 change in eval.c.
|
||
|
||
Fri Dec 13 16:12:14 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* libguile.h: Added #include "libguile/backtrace.h", #include
|
||
"libguile/stacks.h".
|
||
|
||
* strings.c (scm_string scm_make_string scm_string_ref
|
||
scm_string_set_x scm_string_equal_p scm_string_append):
|
||
Bugfix according to scm patch from Aubrey Jaffer:
|
||
Corrected long-standing
|
||
(not (eqv? (integer->char 128)
|
||
(string-ref (make-string 1 (integer->char 128)) 0)))
|
||
bug found by John Kozak <jk@noontide.demon.co.uk>.
|
||
|
||
* strports.c, strports.h: Make scm_eval_0str return the value of
|
||
the last expression evaluated (previously, it returned void).
|
||
|
||
* strports.c, strports.h: New function: scm_read_0str. Does what
|
||
it sounds like.
|
||
|
||
Tue Dec 10 23:38:43 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* simpos.c (scm_getenv): return #f if string can't be found in the
|
||
environment instead of throwing an exception, for compatibility
|
||
with numerous other systems.
|
||
|
||
Mon Dec 9 23:23:35 1996 Tom Tromey <tromey@cygnus.com>
|
||
|
||
* Makefile.am (.c.x): Use guile-snarf.
|
||
* configure.in (AC_OUTPUT): Generate guile-snarf; make it
|
||
executable.
|
||
* guile-snarf.in: New file, resurrected from old guile-snarf.sh.
|
||
|
||
Mon Dec 9 18:36:50 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
|
||
|
||
* backtrace.c (scm_display_error_message): Made non-static, and
|
||
renamed from display_error_message.
|
||
* backtrace.h (scm_display_error_message): Added extern decl.
|
||
* throw.c (uncaught_throw): Use it to display the error message.
|
||
|
||
Mon Dec 9 10:10:38 1996 Tom Tromey <tromey@cygnus.com>
|
||
|
||
* inet_aton.c: Use #if 0, not #ifdef 0.
|
||
|
||
Mon Dec 9 06:36:48 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ioext.c (scm_sys_ftell): use scm_long2num instead of SCM_MAKINUM
|
||
to convert the returned value.
|
||
(scm_sys_fseek): use scm_num2long instead of SCM_INUM to convert
|
||
the offset argument.
|
||
|
||
Sun Dec 8 21:06:38 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
|
||
|
||
Add new interface to catch/throw, usable from C as well as
|
||
Scheme.
|
||
* throw.h (scm_catch_body_t, scm_catch_handler_t): New types.
|
||
(scm_internal_catch): New function, replaces...
|
||
(scm_catch_apply): Deleted.
|
||
* throw.c (scm_catch_apply): Deleted; replaced with a more general
|
||
mechanism which is a bit more code, but can be used nicely from C
|
||
and implement the Scheme semantics as well.
|
||
(scm_internal_catch): This is the replacement; it's named after
|
||
the analogous function in Emacs.
|
||
(scm_catch): Reimplemented in terms of the above.
|
||
(struct catch_body_data, catch_body, catch_handler): New
|
||
functions, used by scm_catch.
|
||
* root.c (cwdr): Reimplemented in terms of scm_internal_catch.
|
||
(struct cwdr_body_data, cwdr_body, cwdr_handler): New functions;
|
||
support for new cwdr.
|
||
|
||
* Makefile.am (libpath.h): Re-incorporate Mikael's changes of Wed
|
||
Oct 30.
|
||
|
||
Sun Dec 8 17:55:34 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* acconfig.h: Added DYNAMIC_LINKING symbol.
|
||
* configure.in: Add option and checks for dynamic linking.
|
||
* dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c,
|
||
dynl.h: New files for dynamic linking support.
|
||
* Makefile.am (libguile_a_SOURCES):
|
||
Added "dynl.c".
|
||
(modinclude_HEADERS): Added "dynl.h".
|
||
(EXTRA_DIST): Added "dynl-dl.c", "dynl-dld.c", "dynl-shl.c" and
|
||
"dynl-vms.c".
|
||
* init.c (scm_boot_guile_1): Call
|
||
scm_init_dynamic_linking to initialize dynamic linking support.
|
||
|
||
Thu Dec 5 22:47:53 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* init.c (scm_boot_guile_1): Moved `live' variable to the toplevel
|
||
(as we Schemers say). It needs to be global, so that I can tweak
|
||
it for the proper operation of unexec.
|
||
(scm_boot_guile_1_live): New variable, see above.
|
||
|
||
Sun Dec 1 00:00:49 1996 Tom Tromey <tromey@cygnus.com>
|
||
|
||
* guile-snarf.sh: Removed.
|
||
* PLUGIN/guile.libs: Added dependency for -lm.
|
||
* acinclude.m4: Renamed from aclocal.m4.
|
||
* PLUGIN/greet: Removed.
|
||
* Makefile.am, aclocal.m4: New files.
|
||
* configure.in: Updated for Automake.
|
||
|
||
Thu Nov 28 00:23:55 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* eval.c (scm_definedp): Use top_level_lookup_closure_var
|
||
and not top_level_lookup_thunk_var.
|
||
|
||
Wed Nov 27 22:04:19 1996 Jim Blandy <jimb@baalperazim.frob.com>
|
||
|
||
* Makefile.in (ancillary): List ChangeLog-scm, not ChangeLog.scm.
|
||
|
||
Wed Nov 27 14:14:56 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* eval.c (scm_definedp): Incompatibly changed to be a builtin
|
||
Scheme function, instead of syntax. Single argument is now a
|
||
symbol.
|
||
|
||
Thu Nov 21 20:26:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* ramap.c (scm_ra_sum, scm_ra_difference, scm_ra_product,
|
||
scm_ra_divide): Properly terminate statements passed as arguments
|
||
to IVDEP macros. (Thanks to Bernard Urban.)
|
||
|
||
* eval.c (SCM_CEVAL): Use alloca, not GCC's extensions for arrays
|
||
with non-constant sizes. (Thanks to Bernard Urban.)
|
||
|
||
Thu Nov 21 11:17:42 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
It's an "eval closure", not an "eval thunk." A thunk is a
|
||
function of no arguments.
|
||
* root.h (struct scm_root_state): Renamed
|
||
top_level_lookup_closure_var from top_level_lookup_thunk_var.
|
||
(scm_top_level_lookup_closure_var): Renamed from
|
||
scm_top_level_lookup_thunk_var.
|
||
* root.c (mark_root): Uses changed.
|
||
* gdbint.c (gdb_eval, gdb_binding): Uses changed.
|
||
* init.c (scm_start_stack): Uses changed.
|
||
* eval.c (scm_eval, scm_eval_x, scm_init_eval): Rename uses.
|
||
Change scheme-visible name to *top-level-lookup-closure* from
|
||
*top-level-lookup-thunk*.
|
||
|
||
Tue Nov 19 22:43:31 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* gc.c (scm_igc, scm_gc_mark): Round up the size of the stack we
|
||
pass to scm_mark_locations. (Thanks to Aubrey Jaffer.)
|
||
|
||
Sun Nov 10 13:35:05 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* gc.c (struct scm_heap_seg_data): Doc fixes.
|
||
|
||
* gc.c (scm_gc_sweep): Empty all segments' freelists before
|
||
sweeping. Then, prepend each segment's free cells to its
|
||
freelist, rather than wiping out the old value. (Thanks to Marius
|
||
Vollmer.)
|
||
|
||
* gc.c (which_seg, scm_map_free_list, scm_newcell_count,
|
||
scm_check_freelist, scm_debug_newcell): New functions and
|
||
variables, for debugging freelist problems.
|
||
* pairs.h (SCM_NEWCELL): New debugging version added.
|
||
* gc.h (scm_debug_newcell): Added extern declaration, used by
|
||
debugging version of SCM_NEWCELL.
|
||
|
||
Sat Nov 9 19:02:46 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
On some systems <libc.h> conflicts with <unistd.h>, and should not
|
||
be #included at all.
|
||
* aclocal.m4 (GUILE_HEADER_LIBC_WITH_UNISTD): New autoconf macro.
|
||
* acconfig.h (LIBC_H_WITH_UNISTD_H): New CPP symbol.
|
||
* configure.in: Call it.
|
||
* posix.c, filesys.c: Use its results to decide whether or not to
|
||
#include <libc.h>.
|
||
* configure, scmconfig.h.in: Rebuilt with autoconf and
|
||
autoheader.
|
||
|
||
Wed Nov 6 16:19:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* fports.c (scm_stdio_to_port, scm_open_file): Set the port's
|
||
pointer to the stdio stream before calling scm_setbuf0, so the
|
||
latter will be able to retrieve it. I'm surprised this didn't
|
||
segfault earlier. (Thanks to Christopher Lee.)
|
||
|
||
Wed Nov 6 16:01:20 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* throw.c (scm_lazy_catch, scm_ithrow): Completed implementation
|
||
of `lazy-catch'.
|
||
|
||
Sat Nov 2 21:01:48 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* stacks.c, stacks.h (scm_make_stack): Now takes arbitrary
|
||
number of stack narrowing specifier pairs. The first specifier in
|
||
a pair controls inner border, the second the outer border. A
|
||
number means cut that number of frames, a procedure object means
|
||
cut until that object is found in operator position in a frame.
|
||
|
||
* root.c (cwdr): Bugfix.
|
||
|
||
* read.c: Recording of positions disabled by default.
|
||
|
||
* procs.c (scm_closure_p): New function.
|
||
|
||
* posix.c (scm_tmpnam): New function.
|
||
|
||
* load.c: Added #include "throw.h".
|
||
(scm_sys_search_load_path): Bugfix: Don't add an extra '/' if path
|
||
ends with '/'.
|
||
|
||
* load.c, load.h (scm_read_and_eval_x): New function.
|
||
|
||
* eval.c: Renamed debug option "deval" to "debug".
|
||
|
||
(scm_eval_x): `eval!' is no longer accessible from the scheme
|
||
level. Motivation: We can't allow operations which introduce
|
||
glocs into the scheme level. Guile's type system can't handle
|
||
these as data. Use `eval' or `read-and-eval!' as replacement.
|
||
|
||
* debug.c (scm_m_start_stack): Bugfix: Use SCM_ECONSP instead of
|
||
SCM_CONSP since this is a macro!; Set vframe.prev to
|
||
scm_last_debug_frame instead of 0. In this way we can look
|
||
"above" the virtual start stack frame if we wish.
|
||
(scm_debug_hang): New function: Useful for debugging Guile in
|
||
certain tricky situations. Will probably be removed later...
|
||
|
||
* debug.h: Changed semantics of debug option "backtrace". This
|
||
option now only indicates whether we want automatic backtrace at
|
||
an error.
|
||
|
||
Wed Oct 30 00:31:55 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* ports.c: #include "filesys.h"
|
||
(scm_char_ready_p): input_waiting renamed and moved to filesys.c.
|
||
|
||
* filesys.c, filesys.h (scm_input_waiting_p): Moved from ports.c.
|
||
Motivation: This is system specific code which is related to file
|
||
I/O. It also may use select. Added code by Gary Houston to
|
||
detect presence of character in stdio buffers.
|
||
|
||
* libguile.h: #include "libguile/libpath.h"
|
||
|
||
* Makefile.in (libpath.h): Renamed definition of: LIBRARY_PATH -->
|
||
SCM_LIBRARY_DIR; Added definitions of: SCM_PKGDATA_DIR,
|
||
SCM_SITE_DIR; Install libpath.h among the other include files.
|
||
|
||
* load.c, load.h (scm_sys_package_data_dir): New function.
|
||
|
||
Mon Oct 28 11:43:41 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* stacks.h: Bugfix: Don't use tail-array length field as stack
|
||
length field! This screwed GC.
|
||
|
||
Tue Oct 22 01:01:00 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* _scm.h: Added #ifndef around definition of macros min and max.
|
||
|
||
* __scm.h: Added hooks for threads to plugin to in ints protection
|
||
macros: SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER,
|
||
SCM_THREAD_ALLOW_1, SCM_THREAD_ALLOW_2. Motivation: We don't want
|
||
the main code in these macros duplicated and spread over multiple
|
||
files. Renamed SCM_THREADS_SWITCHING_CODE ->
|
||
SCM_THREAD_SWITCHING_CODE.
|
||
|
||
Tue Oct 29 14:55:40 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* snarf.h: New file.
|
||
* guile-snarf.sh: New file.
|
||
* Makefile.in (inner_h_files): Added snarf.h
|
||
(ancillary, install, uninstall, distclean): Added actions for
|
||
guile-snarf.
|
||
(.c.x): Use guile-snarf.
|
||
(guile-snarf): New rule, to produce guile-snarf from guile-snarf.sh.
|
||
(gen_c_files): Note that these depend on guile-snarf.
|
||
* _scm.h: Removed the snarfing macros (SCM_PROC, etc). They are
|
||
now in "snarf.h". Added #include "snarf.h" to get them.
|
||
* libguile.h: Added #include "snarf.h".
|
||
(Patches applied and tweaked by Jim Blandy.)
|
||
|
||
Tue Oct 29 13:21:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* socket.c: Use K&R style declaration for 'close'; the GNU coding
|
||
standards suggest against providing prototypes for system
|
||
functions. Thanks to Greg Troxel.
|
||
|
||
Mon Oct 28 16:48:32 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* strports.c (scm_eval_0str): New function.
|
||
#include "read.h", to get prototype for scm_read.
|
||
* Makefile.in (strports.o): Update dependencies.
|
||
* strports.h: New prototype.
|
||
|
||
* numbers.c (scm_integer_p): Renamed from scm_int_p; change its
|
||
scheme name from "int?" to "integer?". It seems to do the job.
|
||
* numbers.h: Rename prototype too.
|
||
* scmhob.h (intp): Change definition to refer to scm_integer_p. I
|
||
hope this is right.
|
||
|
||
* numbers.c (scm_less_p, scm_gr_p, scm_leq_p, scm_geq_p,
|
||
scm_num_eq_p): Rename these according to R4RS conventions: call
|
||
them <, <=, =, >, and >=, not <?, <=?, =?, >?, and >=?. En route
|
||
to making libguile R4RS compliant without ice-9...
|
||
|
||
* load.c (scm_sys_search_load_path): Search for files under all
|
||
extensions listed in the %load-extensions variable. If FILENAME
|
||
is absolute, return it unchanged, without searching the load path.
|
||
(scm_loc_load_extensions): New variable, pointing to
|
||
%load-extensions' value cell.
|
||
(scm_init_load): Initialize it, and the value it points to.
|
||
(scm_primitive_load_path): Improve error reporting.
|
||
|
||
* load.c (scm_loc_load_hook): New variable, pointing to value cell
|
||
of new Scheme variable %load-hook.
|
||
(scm_primitive_load): Apply %load-hook to filename.
|
||
|
||
Mon Oct 28 06:28:28 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* configure.in: add tests for figuring out whether buffered data
|
||
is available in a FILE structure, which is needed by char-ready.
|
||
|
||
* acconfig.h: define FILE_CNT_FIELD, FILE_CNT_GPTR and
|
||
FILE_CNT_READPTR.
|
||
|
||
* simpos.c (scm_getenv): renamed from scm_sys_getenv. Throw
|
||
exceptions using misc_error instead of syserror. It seems a bit
|
||
odd to throw an exception if a string can't be found in the
|
||
environment, but it's consistent with open-file, stat etc.
|
||
(simpos.h): remove sys_ from getenv.
|
||
|
||
* posix.c (scm_putenv): renamed from scm_sys_putenv. If an error
|
||
occurs, throw an error instead of returning errno. Return value
|
||
is now unspecified.
|
||
(numerous in posix.c and posix.h): removed superfluous sys_ from names.
|
||
|
||
Sun Oct 27 01:22:04 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* filesys.c (scm_stat2scm): derive file type and permissions from
|
||
the stat mode and append them to the returned vector.
|
||
There isn't much overhead in doing this and it avoids the need to
|
||
work with S_IRUSR et al. in Scheme.
|
||
Define symbols scm_sym_regular etc.
|
||
(scm_init_filesys): don't intern S_IRUSR etc.
|
||
|
||
* load.c: change s_try_load and s_try_load_path to s_primitive_load
|
||
and s_primitive_load_path.
|
||
|
||
* eval.c, load.c, error.c (scm_wta): use scm_misc_error.
|
||
|
||
* error.h: don't declare error symbols. prototype for scm_misc_error.
|
||
|
||
* stackchk.c (scm_stack_overflow_key): defined here instead of in
|
||
error.c.
|
||
|
||
* error.c: use SCM_SYMBOL to set up error keys.
|
||
scm_misc_error: new procedure.
|
||
|
||
Fri Oct 25 01:56:30 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* read.c (scm_lreadr): Recognize SCSH-style block comments; text
|
||
between `#!' and `!#' is ignored.
|
||
(skip_scsh_block_comment): New function.
|
||
|
||
* feature.c (scm_set_program_arguments): New argument, FIRST.
|
||
* feature.h: Update prototype.
|
||
* init.c (scm_boot_guile_1): Pass new argument to
|
||
scm_set_program_arguments.
|
||
|
||
Tue Oct 22 20:54:42 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* init.c (scm_start_stack): Don't initialize scm_progargs here.
|
||
(scm_boot_guile): Call scm_set_program_arguments here, later than
|
||
the old initialization.
|
||
|
||
* init.c: (scm_boot_guile, scm_boot_guile_1): New, simplified
|
||
initialization procedure.
|
||
- Delete in, out, err arguments; there are other perfectly good
|
||
ways to override these when desired.
|
||
- Delete result argument; this function shouldn't ever return.
|
||
- Rename init_func argument to main_func, for less confusion.
|
||
- Delete boot_cmd argument; main_func is more general.
|
||
-Add 'closure' argument, to help people pass data to main_func
|
||
without resorting to global variables.
|
||
- Abort if reentered; don't bother returning an error code.
|
||
- Call scm_init_standard_ports to set up the default/current
|
||
standard ports; no need to pass them to scm_start_stack.
|
||
- Remove code to evaluate the boot_cmd, and start the repl; let
|
||
the user do something like that in main_func if they want.
|
||
- Remove code to package up a return value; main_func can do any
|
||
of that as needed.
|
||
- Call exit (0), instead of returning.
|
||
(scm_start_stack): Don't initialize the I/O ports here; that's
|
||
weird. Delete in, out, err arguments. Move guts to
|
||
scm_init_standard_ports, scm_stdio_to_port.
|
||
(scm_init_standard_ports): New function, to set up current and
|
||
default standard ports.
|
||
(scm_start_stack, scm_restart_stack): Make these static.
|
||
* init.h (scm_boot_guile): Adjust declaration.
|
||
(scm_start_stack, scm_restart_stack): Remove externally
|
||
visible declarations for these.
|
||
(enum scm_boot_status): Removed; now scm_boot_guile never returns.
|
||
|
||
* fports.c (scm_stdio_to_port): New function. Its guts used to be
|
||
written out several times in scm_start_stack.
|
||
* fports.h: New declaration for the above.
|
||
|
||
* feature.c (scm_set_program_arguments): New function.
|
||
* feature.h: New declaration for the above.
|
||
|
||
* ports.c: Formatting tweak.
|
||
|
||
Sun Oct 20 03:29:32 1996 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
|
||
ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
|
||
for obtaining the address of a car or cdr field. Motivation:
|
||
&SCM_CXR make assumptions about the internal structure of the
|
||
SCM_CXR selectors.
|
||
|
||
* eval.h, eval.c: Added new selector SCM_GLOC_VAL_LOC.
|
||
Motivation: see SCM_CXRLOC.
|
||
|
||
* pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
|
||
srcprop.h, tags.h, throw.c, unif.c: Added new selectors
|
||
SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
|
||
Motivation: Safer use. Some other macros are defined in terms of
|
||
these operations. If these are defined using the SCM_SETCXR
|
||
(<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
|
||
to inefficiency and an <e1> with side-effects could potentially
|
||
break. Also, these particular operations are heavily utilized in
|
||
the garbage collector. In unoptimized code there will be a
|
||
measurable speedup.
|
||
|
||
* alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
|
||
eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
|
||
ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
|
||
pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
|
||
procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
|
||
strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
|
||
vports.c: Cleaned up use of pairs: Don't make any special
|
||
assumptions about the internal structure of selectors and
|
||
mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
|
||
SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
|
||
(Among other things, this change makes it easier to build Guile
|
||
with certain compilers which have problems with casted lvalues.)
|
||
|
||
Fri Oct 18 01:11:56 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||
|
||
* stacks.c: Improve selection of relevant stack frames when making
|
||
a stack object. Introduce one level of indirection in the stack
|
||
object to make it possible to "narrow" to a certain region of the
|
||
stack. This facilitates making use of more clever algorithms (not
|
||
implemented) for selecting relevant frames and gives a cleaner
|
||
design since selection of frames can be done independently of
|
||
extraction of frames from the real stack.
|
||
(scm_stack_id): Also take #t as argument which means look at
|
||
current stack.
|
||
|
||
* stacks.h: In struct scm_stack: Turn field frames into a pointer.
|
||
Turn n_tail into an integer directly representing current number
|
||
of frames in stack. Add field tail.
|
||
|
||
* ports.c (scm_port_line_x, scm_port_column_x): New mutators.
|
||
|
||
* debug.c (scm_make_memoized): Made it available at scheme level.
|
||
(scm_unmemoize, scm_memoized_environment): Bugfix: Check for
|
||
SCM_NIMP before applying heavier predicates in argument checking.
|
||
(scm_local_eval): Also take memoized object as argument.
|
||
|
||
* backtrace.c (scm_display_error): Just a safety measure: Stacks
|
||
aren't created with zero length, but should such a strange
|
||
creature suddenly turn up...
|
||
|
||
Wed Oct 16 11:08:41 1996 Marius Vollmer <mvo@zagadka.ping.de>
|
||
|
||
* hashtab.h (scm_hashx_remove_x): Renamed `delete' parameter to
|
||
`del', for the sake of C++ compilers. (Patch applied by JimB.)
|
||
|
||
Tue Oct 15 17:06:13 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* variable.c (scm_make_variable): Make the name hint optional, as
|
||
documented.
|
||
(anonymous_variable_sym): Renamed from variable_sym. All uses
|
||
changed.
|
||
|
||
* load.c (scm_primitive_load, scm_primitive_load_path): Renamed
|
||
from scm_sys_try_load and scm_sys_try_load_path. The Scheme name
|
||
of scm_primitive_load_path was also changed to
|
||
"primitive-load-path", from "%try-load-path". Callers changed.
|
||
We'd like to respect the convention that a function named
|
||
"try-mumble" should behave just like the function called "mumble",
|
||
but return #f instead of signalling some error.
|
||
* load.h: Rename prototypes.
|
||
|
||
Tue Oct 15 05:34:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* print.c (make_print_state, grow_print_state), print.h: Modified
|
||
the print state representation: Don't use a tail array for
|
||
recording of circular references. Resizing of the print state
|
||
structure invalidates the print state pointer. To avoid passing
|
||
around an indirect print state reference to all printing
|
||
functions, we instead let the print state reference a resizable
|
||
vector.
|
||
|
||
Mon Oct 14 19:25:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* alist.c (scm_sloppy_assq, scm_sloppy_assv, scm_sloppy_assoc):
|
||
Don't crash when passed an improper list terminated by a
|
||
non-immediate value.
|
||
|
||
Mon Oct 14 19:08:33 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
Allocate data for structures on an eight-byte boundary, as
|
||
required by the tagging system.
|
||
* struct.c (alloc_struct): New function.
|
||
(scm_make_struct, scm_make_vtable_vtable): Call it.
|
||
* struct.h (scm_struct_n_extra_words): Bump to 3.
|
||
(scm_struct_i_ptr): New "field".
|
||
* gc.c (scm_gc_sweep): When we need to free the data, use the
|
||
information stored by alloc_struct to find the beginning of the
|
||
block allocated to the structure, so we can free it.
|
||
|
||
Mon Oct 14 17:07:55 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* init.c (scm_boot_guile_1): Moved scm_init_struct in front of
|
||
scm_init_stacks.
|
||
|
||
* debug.h (SCM_VOIDFRAME, SCM_VOIDFRAMEP): New macros.
|
||
(scm_debug_info): New member: id.
|
||
|
||
* stacks.c: Stacks are now represented as structs; Stacks have an
|
||
id given to them by `start-stack'.
|
||
(scm_last_stack_frame): Added predicates `stack?' and `frame?'.
|
||
|
||
* stacks.h: Added declarations of scm_stack_p and scm_frame_p;
|
||
Changed stack representation.
|
||
|
||
* debug.c (scm_procedure_name): Try procedure property `name' for
|
||
compiled closures aswell.
|
||
|
||
* gc.c (scm_init_storage): Initialize scm_stand_in_procs to SCM_EOL.
|
||
|
||
* eval.c: scm_i_name moved to gsubr.c
|
||
(scm_m_define): Record names of all kinds of procedure
|
||
objects. (Earlier, only closures were recorded.)
|
||
|
||
* procprop.h: Added declaration of scm_i_name.
|
||
|
||
* gsubr.c: Added global scm_i_name. Added #include "procprop.h".
|
||
(scm_make_gsubr): Record names of compiled closures.
|
||
|
||
Mon Oct 14 04:21:51 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* debug.c, debug.h: Removed obsolete code.
|
||
|
||
* continuations.c, continuations.h, debug.c, gc.c, init.c, root.c,
|
||
stacks.c: Renamed regs --> scm_contregs.
|
||
|
||
* print.c (scm_free_print_state): Cleanup print state before
|
||
returning it to pool. It is better to do it here than in
|
||
scm_prin1 since scm_prin1 is called often.
|
||
|
||
* srcprop.c (scm_source_properties, scm_set_source_properties_x,
|
||
s_set_source_property_x): Check that first argument is a pair or a
|
||
memoized object.
|
||
|
||
* srcprop.c, srcprop.h: Made scm_i_filename, scm_i_copy,
|
||
scm_i_line, scm_i_column and scm_i_breakpoint global.
|
||
|
||
* init.c: Added #include "backtrace.h" and #include "stacks.h".
|
||
(scm_boot_guile_1): Added calls to scm_init_backtrace and
|
||
scm_init_stacks.
|
||
|
||
* debug.h: Added debug object smob declaration and macro
|
||
definitions.
|
||
|
||
* configure.in: Build with backtrace.o and stacks.o if debug
|
||
support enabled.
|
||
|
||
* Makefile.in: Added entries for new files: backtrace.c,
|
||
backtrace.h, stacks.c and stacks.h.
|
||
|
||
* symbols.c (scm_sym2ovcell): Fixed documentation.
|
||
|
||
* _scm.h (min, max): Added.
|
||
|
||
* async.c: Moved `min' macro to _scm.h.
|
||
|
||
* debug.h: New debug options SCM_BACKTRACE_MAXDEPTH and
|
||
SCM_BACKTRACE_INDENT.
|
||
|
||
* eval.c: Added new debug options `maxdepth' and `indent'.
|
||
|
||
* print.c (make_print_state): Bugfix: Initialize pstate->ceiling.
|
||
|
||
* print.h: Added selector SCM_PRINT_STATE.
|
||
|
||
* print.c: New functions: scm_make_print_state,
|
||
scm_free_print_state.
|
||
|
||
* print.h: Added declarations for scm_make_print_state,
|
||
scm_free_print_state.
|
||
|
||
* debug.c (scm_m_start_stack): New acro.
|
||
|
||
* debug.h: Small cleanup.
|
||
|
||
* init.c (scm_boot_guile_1): Moved scm_init_debug below
|
||
scm_init_eval.
|
||
|
||
Sun Oct 13 20:14:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* __scm.h, alist.c, alist.h, append.c, append.h, appinit.c,
|
||
arbiters.c, arbiters.h, async.c, async.h, boolean.c, boolean.h,
|
||
chars.c, chars.h, continuations.c, continuations.h, debug.c,
|
||
debug.h, dynwind.c, dynwind.h, eq.c, eq.h, error.c, eval.c,
|
||
eval.h, extchrs.c, extchrs.h, fdsocket.c, fdsocket.h, filesys.c,
|
||
filesys.h, fports.c, fports.h, gc.c, gdb_interface.h, gdbint.c,
|
||
gdbint.h, genio.c, genio.h, gscm.c, gscm.h, gsubr.c, gsubr.h,
|
||
hash.c, hash.h, hashtab.c, hashtab.h, init.c, ioext.c, ioext.h,
|
||
kw.c, kw.h, libguile.h, mallocs.c, mallocs.h, markers.c,
|
||
markers.h, mbstrings.c, mbstrings.h, numbers.c, numbers.h,
|
||
objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
|
||
ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
|
||
procprop.h, procs.c, procs.h, ramap.c, ramap.h, read.c, read.h,
|
||
root.c, scmsigs.c, scmsigs.h, sequences.c, sequences.h, simpos.c,
|
||
simpos.h, smob.c, socket.c, socket.h, srcprop.c, srcprop.h,
|
||
stackchk.c, stackchk.h, stime.c, stime.h, strings.c, strings.h,
|
||
strop.c, strop.h, strorder.c, strorder.h, strports.c, strports.h,
|
||
struct.c, struct.h, symbols.c, symbols.h, tag.c, tag.h, unif.c,
|
||
unif.h, variable.c, variable.h, vectors.c, vectors.h, version.c,
|
||
version.h, vports.c, vports.h, weaks.c, weaks.h: Use SCM_P to
|
||
declare functions with prototypes. (Patch thanks to Marius
|
||
Vollmer.)
|
||
|
||
More prototype-related changes from Marius Vollmer:
|
||
* gdb_interface.h: Wrapped header file in #ifdef/#endif
|
||
* gscm.h (gscm_run_scm): Added prototype for `initfn' paramter.
|
||
* ports.h (ptobfuns): Added prototypes. This means some casting in
|
||
fports.c.
|
||
* fports.c: Added casts for initializations, since the functions
|
||
are defined to take FILE * as their stream argument, not SCM.
|
||
* fdsocket.c, fdsocket.h: Made `init_addr_buffer' static.
|
||
* genio.c (scm_gen_puts): Changed `unsigned char *str_data' parameter
|
||
to `char *str_data' to conform to prototype.
|
||
|
||
Sat Oct 12 21:49:29 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* error.c, eval.c, load.c, stackchk.c: use scm_error not lgh_error.
|
||
|
||
* __scm.h (lgh_error): removed, lgh shouldn't be in libguile.
|
||
|
||
* stime.c, stime.h: use SCM_P method.
|
||
|
||
Sat Oct 12 16:16:25 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* eval.c (scm_nconc2last): Don't accept an empty list; apply must
|
||
be given at least two arguments. Insist that lst's last element
|
||
be a list, but don't make any requirements of its predecessors.
|
||
|
||
Fri Oct 11 03:58:25 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* eval.c (scm_nconc2last): Revert last change; there seems to be
|
||
other stuff going on here.
|
||
|
||
Fri Oct 11 02:43:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* eval.c (scm_nconc2last): Make sure that each element of lst
|
||
(which is a list of argument lists, except for the tail) is a
|
||
proper list, i.e., finite and terminated by '().
|
||
|
||
Thu Oct 10 21:09:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* unif.c (scm_ra_set_contp): Localize `inc' declaration.
|
||
Clarifies flow.
|
||
|
||
* struct.c (scm_make_struct, scm_make_vtable_vtable): Use the
|
||
symbolic name for the tag, scm_tc3_cons_gloc, instead of just
|
||
saying "1".
|
||
|
||
* vectors.c (scm_make_vector): Fill vectors with the undefined
|
||
value, to help make Guile Scheme code more portable to other
|
||
Schemes.
|
||
|
||
* symbols.c (scm_intern_obarray_soft, scm_sysintern): Doc fixes.
|
||
* symbols.h, tags.h: Doc fixes.
|
||
|
||
Wed Oct 9 19:39:29 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* async.c (scm_take_signal): Doc fixes.
|
||
|
||
Mon Oct 7 22:30:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* numbers.c (scm_divbigint): When the remainder is zero, we don't
|
||
want to subtract it from the modulus; we just want to leave it
|
||
alone.
|
||
|
||
Mon Oct 7 00:14:17 1996 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* init.c (scm_boot_guile_1): Bugfix: i --> base in argument to
|
||
`scm_init_threads'.
|
||
|
||
* throw.h (scm_catch_apply): Removed the `lazyp' argument.
|
||
|
||
* throw.c (scm_catch_apply): Finished implementation of
|
||
`lazy-catch'.
|
||
|
||
Sun Oct 6 05:26:05 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* filesys.c (scm_sys_select): move SCM_ALLOW_INTS past the sreturn
|
||
check.
|
||
(scm_init_filesys): set "i/o-extensions" feature.
|
||
include feature.h.
|
||
|
||
Sat Oct 5 12:22:00 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.in (root.o): Correct dependencies.
|
||
|
||
Sat Oct 5 18:40:42 1996 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* Makefile.in: Added dependency entry for root.o.
|
||
|
||
* continuations.c, debug.[ch], eval.c, gscm.c init.c, root.c,
|
||
throw.c: Renamed last_debug_info_frame -> scm_last_debug_frame.
|
||
|
||
* init.c (scm_start_stack): Set initial root continuation number
|
||
to 0.
|
||
|
||
* procs.c: New function: scm_thunk_p.
|
||
|
||
* procs.h: Added declarations of scm_thunk_p.
|
||
|
||
* root.c: Renamed `call-with-new-root' -->
|
||
`call-with-dynamic-root'.
|
||
(cwdr): Removed allocation of new root state. This should be done
|
||
separately by use of scm_make_root.
|
||
(scm_apply_with_dynamic_root): New function: Does what it
|
||
sounds like. Needed when spawning threads.
|
||
|
||
* root.h: Added member last_debug_frame to root state.
|
||
Added #include "libguile/debug.h"
|
||
|
||
* throw.c: Renamed scm_catch --> scm_catch_apply and added more
|
||
arguments. The motivation is that code in root.c needs catch
|
||
functionality, and we want to avoid code duplication.
|
||
New functions: scm_catch, scm_lazy_catch. These are wrappers for
|
||
scm_catch_apply. scm_lazy_catch is intended to introduce catch
|
||
handlers that run without popping the stack into the dynwind
|
||
chain.
|
||
|
||
* throw.h: Added prototypes for scm_catch_apply and
|
||
scm_lazy_catch.
|
||
|
||
Thu Oct 3 11:12:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* root.h (scm_root, scm_set_root): Decouple thread support details
|
||
by introducing the selector SCM_THREAD_LOCAL_DATA and the mutator
|
||
SCM_SET_THREAD_LOCAL_DATA.
|
||
|
||
* print.c (scm_iprlist): Bugfix: Added SCM_ECONSP tests in hare
|
||
and tortoise scanning loop.
|
||
|
||
Thu Oct 3 00:04:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* Makefile.in: Rebuild dependencies.
|
||
|
||
* libguile.h: #include "libguile/print.h" before "smob.h", since
|
||
the latter uses the print_state structure.
|
||
|
||
* throw.c (scm_ithrow): Use the correct variable when checking to
|
||
see if a given element of scm_dynwinds is a valid catch.
|
||
|
||
* throw.c (scm_ithrow): If scm_dynwinds has invalid list
|
||
structure, abort; don't just silently ignore the garbage.
|
||
|
||
* _scm.h: #include "print.h" here, since it seems to be used just
|
||
about everywhere.
|
||
* eval.c, gdbint.c, genio.h, numbers.h, smob.h, srcprop.c,
|
||
strports.c, unif.h: Don't #include "print.h".
|
||
|
||
Tue Oct 1 05:15:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* feature.h (scm_loc_features): Removed external declaration.
|
||
(Bug fix suggested by Petr Adamek <adamek@mit.edu>.)
|
||
|
||
Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* feature.c (scm_init_feature): Added threads feature (needs to be
|
||
initialized here, since features doesn't exist when
|
||
scm_init_threads is called).
|
||
|
||
* libguile.h: Added #include "libguile/../threads/threads.h".
|
||
(This is a kludge to get thread support working. This should be
|
||
fixed.)
|
||
|
||
* configure.in, acconfig.h: Added flags for thread support.
|
||
|
||
* scmsigs.c: Define `signal' to be `pthread_signal' if using
|
||
mit-pthreads.
|
||
|
||
* gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
|
||
SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
|
||
root.c:mark_root.
|
||
|
||
* _scm.h: Added conditional #include "threads.h"
|
||
|
||
* __scm.h (SCM_ASYNC_TICK): Added call to macro
|
||
SCM_THREADS_SWITCHING_CODE.
|
||
|
||
* init.c (scm_start_stack): Call `scm_make_root' to dynamically
|
||
allocate the basic dynamic root object.
|
||
(scm_boot_guile): Added call to scm_init_root.
|
||
|
||
* root.c, root.h: Added root smob.
|
||
(cwdr, scm_call_with_new_root, scm_dynamic_root, scm_app_wdr): New
|
||
functions: Implements dynamic roots mostly according to spec in
|
||
SCM manual. Main difference is that the second argument is a
|
||
throw handler rather than an error "thunk".
|
||
|
||
* root.h: Added declaration of scm_init_root.
|
||
|
||
* root.c: Added #include "genio.h", #include "smob.h", #include
|
||
"pairs.h", #include "throw.h", #include "dynwind.h", #include
|
||
"eval.h"
|
||
(scm_init_root): Added #include "root.x".
|
||
|
||
* throw.c: Added #include "stackchk.h"
|
||
(scm_catch): Changed SCM_DEFER_INTS --> SCM_REDEFER_INTS and
|
||
SCM_ALLOW_INTS --> SCM_REALLOW_INTS. This is so that scm_catch
|
||
can be used in scm_call_with_new_root; Added reenabling of stack
|
||
checking when catching a throw.
|
||
|
||
Mon Sep 30 21:48:11 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* list.c, list.h: Use SCM_P instead of CPP hair. Doc fixes.
|
||
|
||
* list.c (scm_member, scm_memv, scm_memq): Return #f if a matching
|
||
element is not found, as per R4RS.
|
||
|
||
Sat Sep 28 18:13:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* list.c: Doc fixes throughout.
|
||
|
||
Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
|
||
declare the char * to be const. Avoids a warning in rgx.c.
|
||
|
||
* ports.h: spelling fix.
|
||
|
||
* filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
|
||
error messages.
|
||
|
||
* load.c (scm_sys_try_load_path): throw an error if file not found
|
||
(like it says it in NEWS).
|
||
|
||
Fri Sep 27 18:27:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* symbols.c (scm_intern_obarray_soft): Initialize the new symbol's
|
||
PROPS slot to '(), not #f; it's an empty alist.
|
||
|
||
* throw.h, throw.c: Use SCM_P instead of #if hair.
|
||
|
||
Remove special support for uncaught throws; see throw.c for
|
||
rationale.
|
||
* throw.c (uncaught_throw): New function.
|
||
(scm_ithrow): Call uncaught_throw if we don't find a throw
|
||
target; don't mess with scm_bad_throw_vcell.
|
||
(scm_bad_throw_vcell): Variable deleted.
|
||
(scm_init_throw): Don't initialize it.
|
||
|
||
* throw.c (scm_ithrow): Don't let outer key matches shadow inner
|
||
#t catches.
|
||
|
||
Wed Sep 25 04:35:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* numbers.c (scm_istr2int): If the number is short (as most
|
||
numbers are), just call scm_small_istr2int to deal with it.
|
||
(scm_small_istr2int): New function, created by un-#ifdefing the
|
||
non-bignum version of scm_istr2int and renaming it.
|
||
|
||
Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* load.c (scm_sys_try_load): don't check whether value returned
|
||
by scm_open_file is #f, it won't be. Always return SCM_UNSPECIFIED.
|
||
Change the Scheme name from %try-load to primitive-load.
|
||
|
||
* error.c (scm_error): convert a NULL message to SCM_BOOL_F.
|
||
Can avoid passing a message, allowing it to be derived in the
|
||
error handler (e.g., if we want to throw to the key both from
|
||
Scheme and C).
|
||
|
||
Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* print.c (scm_iprin1, scm_prin1, scm_iprlist): Circular
|
||
references now have a new appearance which is more compact and
|
||
also gives a clue about what the target of the reference is.
|
||
By setting parameters in the print state, more fancy printing can
|
||
be achieved. This is used by the (not yet commited) backtrace
|
||
code.
|
||
|
||
Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
|
||
"print.h"
|
||
|
||
* print.c: Added #include "struct.h". Removed function
|
||
scm_prlist.
|
||
|
||
* print.h: Modified prototypes for scm_iprlist, scm_prin1 and
|
||
scm_iprin1. Removed prototype for scm_prlist.
|
||
|
||
* arbiters.c (prinarb),
|
||
async.c (print_async),
|
||
debug.c (prindebugobj, prinmemoized),
|
||
eval.c (prinprom, prinmacro),
|
||
filesys.c (scm_fd_print, scm_dir_print),
|
||
kw.c (print_kw),
|
||
mallocs.c (prinmalloc),
|
||
numbers.c, numbers.h (scm_floprint, scm_bigprint),
|
||
smob.h (scm_smobfuns),
|
||
srcprop.c (prinsrcprops),
|
||
throw.c (prinjb),
|
||
unif.c, unif.h (scm_raprin1, rapr1),
|
||
variable.c (prin_var): Changed argument `int writing' to
|
||
`scm_print_state *pstate'.
|
||
|
||
* init.c (scm_boot_guile): Moved scm_init_struct upwards so
|
||
that it will be called before scm_init_print.
|
||
|
||
* print.c (scm_prin1): Print states are now allocated when calling
|
||
scm_prin1 and then passed around to all printing functions as an
|
||
argument. A cache `print_state_pool' enables reuse of print
|
||
states.
|
||
(scm_make_print_state): New function.
|
||
(scm_iprin1): Adaption to print states.
|
||
(scm_iprlist): An initial "hare and tortoise" scan brings down
|
||
time complexity to O (depth * N). (Better time complexity will be
|
||
achieved when the printing code is completely rewritten.)
|
||
|
||
Fri Sep 20 22:01:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* aclocal.m4 (GUILE_STRUCT_UTIMBUF): Use AC_CACHE_CHECK instead of
|
||
AC_CACHE_VAL; #define UTIMBUF_NEEDS_POSIX outside AC_CACHE_VAL, so
|
||
it gets done whether or not the cache variable has a value.
|
||
|
||
Thu Sep 19 17:06:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
Distinguish #f and ().
|
||
* __scm.h: #undef SICP.
|
||
* pairs.h (SCM_EOL): Delete this definition, equating it with
|
||
SCM_BOOL_F.
|
||
* tags.h (SCM_EOL): Give it a new definition here; I think I found
|
||
the value it used to have. Doc fixes, too.
|
||
|
||
Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,
|
||
scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom
|
||
Lord's implementation of structs, allowing for tail arrays as
|
||
described in the manual. Also fixed some bugs. (Both the interface
|
||
and the implementation should be improved.)
|
||
|
||
* read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
|
||
|
||
* print.c, print.h: Closures now print like #<procedure foo (x)>.
|
||
People who whish to see the source can do `(print-enable 'source)'.
|
||
Removed #ifdef DEBUG_EXTENSIONS.
|
||
|
||
Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* filesys.c (scsm_sys_stat): don't SIGSEGV if argument is an
|
||
integer (assuming for now accepting an integer is a good thing).
|
||
|
||
* error.c, fports.c: replace use of %S in lgh_error args with %s.
|
||
%S will be used instead for write'ing arguments.
|
||
|
||
* unif.c (scm_transpose_array): change arguments in the SCM_WNA
|
||
asserts. fix a few other asserts.
|
||
(scm_aind, scm_enclose_array, scm_array_in_bounds_p,
|
||
scm_uniform_vector_ref, scm_array_set_x,
|
||
scm_dimensions_to_unform_array): change args in
|
||
SCM_WNA SCM_ASSERTS and change scm_wta's to scm_wrong_num_args.
|
||
strop.c (scm_substring_move_left_x, scm_substring_move_right_x,
|
||
scm_substring_fill_x): likewise.
|
||
gsubr.c (scm_gsubr_apply): likewise.
|
||
eval.c (SCM_APPLY): likewise.
|
||
|
||
* eval.c (4 places): replace scm_everr with lgh_error or
|
||
scm_wrong_num_args.
|
||
|
||
* error.c, error.h (scm_wrong_num_args, scm_wrong_type_arg,
|
||
scm_memory_error): new procedures.
|
||
scm_everr: deleted. can use scm_wta, dropping first two args.
|
||
scm_error: convert NULL subr to SCM_BOOL_F.
|
||
|
||
* __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
|
||
SCM_ARGERR.
|
||
|
||
* stackchk.c (scm_report_stack_overflow): use lgh_error instead
|
||
of scm_wta.
|
||
|
||
* error.c, error.h: new error keys: scm_arg_type_key,
|
||
scm_args_number_key, scm_memory_alloc_key, scm_stack_overflow_key,
|
||
scm_misc_error_key.
|
||
scm_wta: reimplement using lgh_error instead of scm_everr.
|
||
|
||
Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
|
||
|
||
* gdbint.c: scm_lread now has one more argument.
|
||
|
||
* ports.c, ports.h: Name change: scm_\(line\|column\)_number -->
|
||
scm_port_\1; Added mutator scm_set_port_filename_x (used when
|
||
loading source from non-file ports, which, e. g., happens when
|
||
using the Emacs interface).
|
||
|
||
* fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
|
||
object.
|
||
|
||
* read.c: Added code for recording of positions of source code
|
||
expressions; New functions: recsexpr, scm_lreadrecparen;
|
||
_scm_make_srcprops --> scm_make_srcprops
|
||
(scm_flush_ws): Removed updating of positions counters. This work
|
||
is already done by scm_gen_getc
|
||
|
||
* read.h: Added prototype for scm_lreadrecparen
|
||
|
||
* print.c: Added #include "alist.h"
|
||
|
||
* eval.c: Added #include "hash.h"
|
||
|
||
* eq.c: Added #include "ramap.h"
|
||
|
||
* options.c: Documentation fixes.
|
||
|
||
* srcprop.c (scm_finish_srcprop): Bugfix: update ptr.
|
||
(scm_init_srcprop): Adjusted size of initial source-whash. Name
|
||
changes: tc16_srcprops --> scm_tc16_srcprops, _scm_make_srcprops
|
||
--> scm_make_srcprops
|
||
|
||
* srcprop.h: Name changes: tc16_srcprops --> scm_tc16_srcprops,
|
||
_scm_make_srcprops --> scm_make_srcprops; Remove one layer of
|
||
function calls in the definition of the whash access macros.
|
||
|
||
Tue Sep 17 11:33:16 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
|
||
|
||
* init.c (scm_boot_guile): Add level of indirection to
|
||
scm_boot_guile_1() to ensure that stack base pointer is properly
|
||
initialized. There was no guarantee that variable i was the
|
||
highest/lowest variable on stack (i.e. the call frame of
|
||
scm_boot_guile was not completely protected from gc).
|
||
|
||
Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ports.h (scm_port_table): put back file_name, it will be used to
|
||
support debugging. Undo related changes in fports.c, ioext.c,
|
||
ports.c, gc.c.
|
||
|
||
Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ports.h (scm_port_table): remove file_name member for now, it seems
|
||
undesirable.
|
||
* fports.c (scm_open_file): don't set file_name in PTAB.
|
||
(prinfport): don't use file_name in PTAB.
|
||
* ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB.
|
||
* ports.c (scm_add_to_port_table): don't intialize file_name.
|
||
(scm_port_file_name): remove for now.
|
||
* gc.c (scm_gc_mark): don't mark PTAB file_name.
|
||
|
||
* fports.h (scm_mkfile): prototype deleted.
|
||
* fports.c (scm_mkfile): merged into scm_open_file to simplify.
|
||
|
||
* debug.c, unif.c: use scm_out_of_range instead of
|
||
wta for range errors (ASSERT still needs work).
|
||
|
||
* error.c, error.h (scm_out_of_range): new procedure.
|
||
|
||
* error.c, error.h (scm_out_of_range_key): new key.
|
||
|
||
* posix.c (scm_sync): #else was missing.
|
||
|
||
* error.c, error.h: append _key to names scm_num_overflow and
|
||
scm_system_error.
|
||
|
||
* __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
|
||
of consing an empty list.
|
||
(SCM_SYSERROR etc.): move into error.c, make them procedures instead
|
||
of macros, saves code and string space.
|
||
error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
|
||
fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
|
||
lower case. Rename scm_syserror_m to scm_syserror_msg.
|
||
error.h: prototypes for new procedures.
|
||
|
||
Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
|
||
|
||
* error.c, error.h: setup scm_num_overflow key.
|
||
|
||
* __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
|
||
Remove definition of SCM_OVSCM_FLOW.
|
||
|
||
* fports.c (scm_open_file): use SCM_SYSERROR_M.
|
||
|
||
* __scm.h: SCM_SYSERROR_M: new macro for system errors with an
|
||
explicit message and args.
|
||
|
||
* error.c, error.h, __scm.h: change system_error_sym to
|
||
scm_system_error.
|
||
|
||
* error.c (system_error_sym): remove leading %% from the Scheme name
|
||
"%%system-error".
|
||
|
||
* __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
|
||
|
||
Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* __scm.h, chars.c, debug.c, eval.c, eval.h, extchrs.c, extchrs.h,
|
||
fdsocket.c, feature.c, mbstrings.c, mbstrings.h, numbers.c,
|
||
numbers.h, print.c, scmhob.h, simpos.h, symbols.c, symbols.h,
|
||
tags.h, throw.c, variable.h: Name cleanup. Lots of xxxSCM_yyy
|
||
renamed. (These were introduced by unsupervised name
|
||
substitution.)
|
||
|
||
Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* print.c: Added code for detection of circular references during
|
||
printing. (init_ref_stack, grow_ref_stack): New functions. Added
|
||
a hook for printing of closures (accessible via print options).
|
||
This leads to a split of calls to scm_iprin1 into two classes:
|
||
elementary print operations (e. g. the code which prints a smob)
|
||
still use scm_iprin1 while top level calls (like scm_display) use
|
||
scm_prin1. scm_prin1 begins by clearing the data structure used
|
||
to record reference information.
|
||
|
||
* print.h: Added declarations of scm_prin1 and scm_prlist.
|
||
|
||
* strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
|
||
|
||
* gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
|
||
|
||
* gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
|
||
|
||
* error.c (err_head): scm_iprin1 --> scm_prin1
|
||
|
||
* debug.c: Adjusted header comment.
|
||
|
||
* tags.h: Typo.
|
||
|
||
Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* strerror.c: Doc fix.
|
||
|
||
Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* gdbint.c (gdb_read): Now possible to run during GC.
|
||
(unmark_port, remark_port): New functions.
|
||
|
||
* symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
|
||
|
||
* read.c (scm_grow_tok_buf): Use scm_vector_set_length_x instead
|
||
of allocating a new string object. Also, increase size by
|
||
the factor 2 instead of 1.5.
|
||
|
||
Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
|
||
|
||
* __scm.h (SCM_P): Corrected to run under traditional C.
|
||
|
||
* _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
|
||
removed.
|
||
|
||
* async.c: Calls to scm_sysintern corrected.
|
||
|
||
* async.h (scm_async_clock): Redundant declaration removed.
|
||
|
||
* continuations.c (scm_dynthrow): Redundant declaration removed.
|
||
|
||
* debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
|
||
Definition typos corrected.
|
||
|
||
* debug.h: Missing declarations of functions in debug.c added
|
||
(lots).
|
||
|
||
* eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
|
||
Missing declarations to functions in eval.c added.
|
||
|
||
* filesys.c: Possibly uninitialized variable rv.
|
||
|
||
* gc.h (scm_object_addr, scm_unhash_name): Missing
|
||
declarations of functions defined in gc.c added.
|
||
|
||
* genio.c: Possible typos str_data -> wstr_data. ???
|
||
|
||
* genio.c: Possibly unintended shadowing of local variable
|
||
`int c' (gotos out of scope of inner `c'). ???
|
||
|
||
* init.c: Uninitialized `SCM last' may be used.
|
||
|
||
* ioext.h: (scm_sys_isatty_p): Typo.
|
||
|
||
* list.h (scm_list_head): Missing prototype for function in
|
||
list.c added.
|
||
|
||
* numbers.c (scm_two_doubles): Changed from extern to static
|
||
(is used only within numbers.c).
|
||
|
||
* numbers.h: Repeated declarations removed.
|
||
|
||
* ports.h (scm_close_all_ports_except): Declaration for the
|
||
function defined in ports.c added.
|
||
|
||
* posix.h: Missing declarations added.
|
||
|
||
* procs.h (scm_make_subr_opt): Missing declaration added.
|
||
|
||
* socket.h (scm_sys_gethost): Missing declaration added.
|
||
|
||
* socket.h: Redundant declarations removed (they are in fdsocket.h).
|
||
|
||
* srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
|
||
Missing declarations added.
|
||
|
||
* stime.h (scm_get_internal_real_time): Repeated declarations removed.
|
||
|
||
* struct.c: Uninitialized variable `SCM answer' may be used.
|
||
|
||
* unif.c (l2ra): Declaration prototype.
|
||
|
||
* unif.c (scm_array_equal_p): Dummy definition removed (it is
|
||
defined in ramap.c).
|
||
|
||
* unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
|
||
Redundant declarations removed (they are in ramap.h).
|
||
|
||
* variable.h (scm_make_udvariable,
|
||
scm_make_undefined_variable): Declaration corrected to
|
||
correspond variable.c.
|
||
|
||
* vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
|
||
Missing declarations added.
|
||
|
||
Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.in (distclean): Don't forget to delete fd.h.
|
||
|
||
Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* fd.h.in, tags.h: Trivial cleanups.
|
||
|
||
* marksweep.c, marksweep.h: Deleted; marksweep.c was empty, and
|
||
marksweep.h just declared functions from gc.c.
|
||
* gc.h, libguile.h: Don't #include "marksweep.h".
|
||
* Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
|
||
marksweep.o, marksweep.h, marksweep.c, and marksweep.x. Other
|
||
dependencies updated.
|
||
|
||
* libguile.h: Don't #include "files.h"; it's been deleted.
|
||
|
||
* files.c (scm_sys_delete_file): Moved to filesys.c.
|
||
File is now empty; deleted.
|
||
* files.h: Deleted.
|
||
* filesys.c: scm_sys_delete_file is now here. Remove
|
||
#if's; they seem to rely on remnants of an old portability
|
||
regimen. If the problems come up again, solve them properly,
|
||
using autoconf. Specifically: Don't test M_SYSV, and #define
|
||
remove to be unlink if it's #defined; don't use remove just
|
||
because HAVE_STDC_HEADERS is #defined.
|
||
* filesys.h: Add declarations for scm_sys_delete_file.
|
||
* Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
|
||
files.o, files.h, files.c, and files.x.
|
||
* init.c: Don't #include "files.h", and don't call scm_init_files.
|
||
|
||
Use SCM_P instead of PROTO; the latter intrudes on the user's
|
||
namespace.
|
||
* params.h: Deleted; definition of SCM_P moved to...
|
||
* __scm.h: ... here, where it replaces PROTO macro.
|
||
* libguile.h, smob.h: Don't #include "params.h".
|
||
* continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h,
|
||
smob.h: Fix prototypes accordingly.
|
||
* Makefile.in: Update dependencies.
|
||
(inner_h_files): Remove params.h.
|
||
|
||
* gc.c: #include "gc.h"; every module should include its header,
|
||
to let the compiler cross-check the declarations against the
|
||
definitions.
|
||
|
||
* eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
|
||
simpos.h: #include "libguile/__scm.h".
|
||
|
||
Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* init.c: Don't forget to #include smob.h and init.h.
|
||
* Makefile.in: Dependencies updated.
|
||
|
||
* smob.h: Use PROTO instead of #if __STDC__.
|
||
|
||
* continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
|
||
|
||
* __scm.h: Doc fixes.
|
||
|
||
* __scm.h, libguile.h: Use "quotes" in the #includes, not
|
||
<angles>; this allows `make depends' to work properly.
|
||
|
||
* libguile.h: #include smob.h and pairs.h before the others; they
|
||
define typedefs used by other headers.
|
||
|
||
C files should #include only the header files they need, not
|
||
libguile.h (which #includes all the header files); the pointless
|
||
recompilation was wasting my time.
|
||
* Makefile.in (all .o dependency lists): Regenerated.
|
||
* libguile.h: Don't try to get a definition for size_t here...
|
||
* __scm.h: Do it here.
|
||
* _scm.h: Since this is the internal libguile header, put things
|
||
here that all (or a majority) of the libguile files will want.
|
||
Don't #include <libguile.h> here; that generates dependencies on
|
||
way too much. Instead, get "__scm.h", "error.h", "pairs.h",
|
||
"list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h",
|
||
"boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and
|
||
"async.h".
|
||
* alist.c: Get "eq.h", "list.h", "alist.h".
|
||
* append.c: Get "append.h", "list.h".
|
||
* arbiters.c: Get "arbiters.h", "smob.h".
|
||
* async.c: Get "async.h", "smob.h", "throw.h", "eval.h".
|
||
* boolean.c: Get "boolean.h".
|
||
* chars.c: Get "chars.h".
|
||
* continuations.c: Get "continuations.h", "dynwind.h", "debug.h",
|
||
"stackchk.h".
|
||
* debug.c: Get "debug.h", "feature.h", "read.h", "strports.h",
|
||
"continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h",
|
||
"genio.h", "throw.h", "eval.h".
|
||
* dynwind.c: Get "dynwind.h", "alist.h", "eval.h".
|
||
* eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h",
|
||
"stackchk.h".
|
||
* error.c: Get "error.h", "throw.h", "genio.h", "pairs.h".
|
||
* eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h",
|
||
"hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h",
|
||
"continuations.h", "eq.h", "sequences.h", "alist.h", "append.h",
|
||
"debug.h".
|
||
* fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h".
|
||
* feature.c: Get "feature.h".
|
||
* files.c: Get "files.h".
|
||
* filesys.c: Get "filesys.h", "smob.h", "genio.h".
|
||
* fports.c: Get "fports.h", "markers.h".
|
||
* gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h",
|
||
"genio.h", "struct.h", "stackchk.h", "stime.h".
|
||
* gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h",
|
||
"read.h", "strports.h", "tag.h".
|
||
* genio.c: Get "genio.h", "chars.h".
|
||
* gsubr.c: Get "gsubr.h", "genio.h".
|
||
* hash.c: Get "hash.h", "chars.h".
|
||
* hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h".
|
||
* init.c: Get everyone who has an scm_init_mumble function:
|
||
"weaks.h", "vports.h", "version.h", "vectors.h", "variable.h",
|
||
"unif.h", "throw.h", "tag.h", "symbols.h", "struct.h",
|
||
"strports.h", "strorder.h", "strop.h", "strings.h", "stime.h",
|
||
"stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h",
|
||
"scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h",
|
||
"print.h", "posix.h", "ports.h", "pairs.h", "options.h",
|
||
"objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h",
|
||
"list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h",
|
||
"gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h",
|
||
"feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h",
|
||
"dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h",
|
||
"async.h", "arbiters.h", "append.h", "alist.h".
|
||
* ioext.c: Get "ioext.h", "fports.h".
|
||
* kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h".
|
||
* list.c: Get "list.h", "eq.h".
|
||
* load.c: Get "load.h", "eval.h", "read.h", "fports.h".
|
||
* mallocs.c: Get "smob.h", "genio.h".
|
||
* markers.c: Get "markers.h".
|
||
* mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h",
|
||
"chars.h".
|
||
* numbers.c: Get "unif.h", "genio.h".
|
||
* objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h".
|
||
* options.c: Get "options.h".
|
||
* ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h",
|
||
"markers.h", "chars.h", "genio.h".
|
||
* posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h",
|
||
"read.h", "scmsigs.h", "genio.h", "fports.h".
|
||
* print.c: Get "print.h", "unif.h", "weaks.h", "read.h",
|
||
"procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h",
|
||
"chars.h".
|
||
* procprop.c: Get "procprop.h", "eval.h", "alist.h".
|
||
* procs.c: Get "procs.h".
|
||
* ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h",
|
||
"chars.h", "smob.h", "unif.h".
|
||
* read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h",
|
||
"eval.h", "genio.h", "chars.h".
|
||
* root.c: Get "root.h", "stackchk.h".
|
||
* scmsigs.c: Get "scmsigs.h".
|
||
* sequences.c: Get "sequences.h".
|
||
* simpos.c: Get "simpos.h", "scmsigs.h".
|
||
* smob.c: Get "smob.h".
|
||
* socket.c: Get "socket.h", "feature.h".
|
||
* srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h",
|
||
"alist.h", "smob.h".
|
||
* stackchk.c: Get "stackchk.h", "genio.h".
|
||
* stime.c: Get "stime.h"."libguile/continuations.h".
|
||
* strings.c: Get "strings.h", "chars.h".
|
||
* strop.c: Get "strop.h", "chars.h".
|
||
* strorder.c: Get "strorder.h", "chars.h".
|
||
* strports.c: Get "strports.h", "print.h", "eval.h", "unif.h".
|
||
* struct.c: Get "struct.h", "chars.h".
|
||
* symbols.c: Get "symbols.h", "mbstrings.h", "alist.h",
|
||
"variable.h", "eval.h", "chars.h".
|
||
* tag.c: Get "tag.h", "struct.h", "chars.h".
|
||
* throw.c: Get "throw.h", "continuations.h", "debug.h",
|
||
"dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h".
|
||
* unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h",
|
||
"smob.h", "genio.h", "eval.h", "chars.h".
|
||
* variable.c: Get "variable.h", "smob.h", "genio.h".
|
||
* vectors.c: Get "vectors.h", "eq.h".
|
||
* version.c: Get "version.h".
|
||
* vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h".
|
||
* weaks.c: Get "weaks.h".
|
||
|
||
* stackchk.h: #include "libguile/debug.h",
|
||
|
||
* print.h, read.h: #include "options.h", since everyone who uses
|
||
either of these files will need that.
|
||
|
||
* smob.h: #include "ports.h", "genio.h", and "print.h", since
|
||
anyone who uses this file will need them to define the smob
|
||
printing functions. Also, get markers.h, since people will need
|
||
to #define the mark functions.
|
||
|
||
* smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
|
||
* ports.h: ... to here.
|
||
|
||
* ports.h (scm_port_table_size): Explicitly give type as 'int';
|
||
don't rely on archaic C default type rules.
|
||
|
||
* fports.h: #include "libguile/ports.h", since you need that in
|
||
order to parse this.
|
||
|
||
* genio.h: #include "libguile/print.h", because you need that to
|
||
parse this; don't bother #including "ports.h", since print.h gets
|
||
that.
|
||
|
||
* error.h: Don't #include "pairs.h"; _scm.h will do that now.
|
||
|
||
* eval.h (scm_top_level_lookup_thunk_var): Remove declaration for
|
||
this; it's now a reference to an element of *scm_root.
|
||
|
||
* debug.h: Don't #include "options.h"; the compiler won't be able
|
||
to find that once the headers are installed; instead, #include
|
||
"libguile/options.h".
|
||
* gc.h: Same, with marksweep.h.
|
||
* mbstrings.h: Same, with symbols.h.
|
||
* scmhob.h: Same, with _scm.h.
|
||
* smob.h: Same, with params.h.
|
||
|
||
* Makefile.in (depends): Don't nuke scmconfig.h and the generated
|
||
C files; there's no need for this, and it forces recompilations
|
||
unnecessarily.
|
||
|
||
Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* error.c (scm_error): declare scm_error_callback.
|
||
|
||
* error.h: prototype for scm_error_callback.
|
||
|
||
* __scm.h: define lgh_error.
|
||
(SCM_SYSERROR): redefine using lgh_error.
|
||
|
||
Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* error.c (scm_error): new procedure.
|
||
|
||
* error.h: prototype for scm_error.
|
||
|
||
* Makefile.in (install): install scmconfig.h from the current
|
||
directory, not $(srcdir).
|
||
|
||
Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
|
||
continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
|
||
feature.h, filesys.h, fports.h, gc.h, gdbint.h, genio.h, gsubr.h,
|
||
hash.h, init.h, ioext.h, kw.h, list.h, markers.h, marksweep.h,
|
||
mbstrings.h, numbers.h, objprop.h, options.h, pairs.h, ports.h,
|
||
posix.h, print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
|
||
sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
|
||
strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
|
||
tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
|
||
vports.h, weaks.h: #include "libguile/__scm.h", not
|
||
<libguile/__scm.h>. This allows 'gcc -MM' to determine which
|
||
dependencies are within libguile properly.
|
||
|
||
Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.in (.c.x): Simplify; there's no need to run this rule
|
||
when scmconfig.h doesn't exist.
|
||
|
||
* load.c (scm_sys_try_load): Correct spelling.
|
||
|
||
* feature.c (scm_loc_features): Make this static.
|
||
|
||
* Makefile.in (libpath.h): Omit trailing slash from path. We
|
||
shouldn't require it of users, so why put it here?
|
||
|
||
Move code to initialize and search %load-path from ice-9 to C
|
||
code, so we can use the load-path to find the ice-9 boot code;
|
||
this makes it easier to run Guile without installing it. See
|
||
corresponding changes in guile/Makefile.in.
|
||
* feature.c: Move stuff concerned with the load path to load.c.
|
||
(scm_compiled_library_path): Deleted.
|
||
Don't #include libpath.h here.
|
||
* feature.h: Don't mention scm_compiled_library_path.
|
||
* load.c: #include "libpath.h" here, as well as <sys/types.h>,
|
||
<sys/stat.h>, and <unistd.h> (if present).
|
||
(R_OK): #define if the system hasn't deigned to.
|
||
(scm_loc_load_path): New variable.
|
||
(scm_init_load_path, scm_sys_search_load_path,
|
||
scm_sys_try_load_path): New functions.
|
||
(scm_init_load): Initialize scm_loc_load_path to point to the
|
||
value cell of the Scheme %load-path variable.
|
||
* load.h: Add declarations for scm_sys_search_load_path,
|
||
scm_sys_try_load_path.
|
||
* init.c: Call scm_init_load_path.
|
||
* Makefile.in (feature.o, load.o): Dependencies updated.
|
||
|
||
* load.c, load.h: Rewrite using PROTO macro.
|
||
|
||
Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* gc.c (scm_cellp): New function: C predicate to determine if an
|
||
SCM value can be regarded as a pointer to a cell on the heap.
|
||
|
||
* gc.h: Added declaration of scm_cellp.
|
||
|
||
* gdb_interface.h: New file: The GDB interface header from the GDB
|
||
distribution.
|
||
|
||
* gdbint.c: New file: GDB interface.
|
||
|
||
* gdbint.h: New file: GDB interface.
|
||
|
||
* libguile.h: Added #include <libguile/gdbint.h>.
|
||
|
||
* init.c (scm_boot_guile): Added scm_init_gdbint.
|
||
|
||
* Makefile.in: Added gdb_interface.h, gdbint.[hc].
|
||
Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
|
||
found if object files and source are kept separate).
|
||
|
||
Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
|
||
|
||
Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* configure.in: Don't substitute the values of TCL_SRC_DIR and
|
||
TK_SRC_DIR; they're not relevant any more.
|
||
|
||
* Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
|
||
* configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
|
||
|
||
Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* PLUGIN/guile.config (xtra_cflags): Include .. in the header
|
||
search path, so we can find the <libguile/MUMBLE.h> headers.
|
||
|
||
* Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
|
||
|
||
* Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
|
||
implicit in the .c.o rule.
|
||
(.c.x): Don't mention ALL_CFLAGS here; its value is included in
|
||
$(CC) already.
|
||
|
||
Put the library path in a header file, instead of passing it on
|
||
the command line in every compilation.
|
||
* Makefile.in (libpath.h): New target.
|
||
(feature.o): Depend on libpath.h.
|
||
(clean): Delete libpath.h.
|
||
(ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
|
||
* feature.c: ... #include "libpath.h" here.
|
||
* .cvsignore: Ignore libpath.h.
|
||
|
||
Don't install the unwashed masses of Guile header files in the
|
||
main #include path; put most of them in a subdirectory called
|
||
'libguile'. This avoids naming conflicts between Guile header
|
||
files and system header files (of which there were a few).
|
||
* Makefile.in (pkgincludedir): Deleted.
|
||
(innerincludedir): New variable; this and $(includedir) are enough.
|
||
(INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
|
||
(installed_h_files): Divide this up. Now this variable lists
|
||
those header files which should go into $(includedir) (i.e. appear
|
||
directly in the #include path), and ...
|
||
(inner_h_files): ... this new variable says which files appear in
|
||
a subdirectory, and are referred to as <libguile/mumble.h>.
|
||
(h_files): List them both.
|
||
(install): Create innerincludedir, not pkgincludedir. Put
|
||
the installed_h_files and inner_h_files in their proper places.
|
||
(uninstall): Corresponding changes.
|
||
* alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
|
||
continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
|
||
feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
|
||
ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
|
||
mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
|
||
print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
|
||
sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
|
||
strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
|
||
tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
|
||
vports.h, weaks.h: Find __scm.h in its new location.
|
||
* __scm.h: Find scmconfig.h and tags.h in their new locations
|
||
(they're both "inner" files).
|
||
|
||
Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
|
||
|
||
Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* posix.c: Doc fixes.
|
||
|
||
Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* socket.c: Don't include a prototype for inet_aton; just use a
|
||
K&R style declaration, to avoid warnings but minimize the chance
|
||
of conflicts with the system.
|
||
|
||
On NextStep, <utime.h> doesn't define struct utime, unless we
|
||
#define _POSIX_SOURCE before #including it.
|
||
* aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
|
||
* acconfig.h: New comment text for above CPP symbol.
|
||
* configure.in: Call it.
|
||
* posix.c: #define _POSIX_SOURCE if it seems necessary.
|
||
|
||
* configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
|
||
in the list.
|
||
* posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
|
||
testing for __EMX__.
|
||
|
||
* posix.c: #include <libc.h>, if it exists.
|
||
|
||
* posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
|
||
don't even know if the latter exists.
|
||
|
||
* posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
|
||
s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
|
||
s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
|
||
|
||
* posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
|
||
header files don't.
|
||
(scm_init_posix): Use them when initializing the Scheme constants
|
||
of the same name.
|
||
|
||
Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
|
||
|
||
* Makefile.in (libdir, includedir, bindir): Use the
|
||
autoconf-supplied values, instead of deriving them ourselves.
|
||
(pkgincludedir, datadir, pkgdatadir): New variables.
|
||
(install, uninstall): Put the header files in a special
|
||
subdirectory, not in the main search path.
|
||
|
||
* Makefile.in (ALL_CFLAGS): Provide the proper value for
|
||
LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
|
||
|
||
* Makefile.in (IMPLPATH): Deleted; never used.
|
||
|
||
* Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
|
||
on the Tcl/Tk source any more.
|
||
(INCLUDE_CFLAGS): Remove references to the above.
|
||
|
||
* Makefile.in (version.o): Corrected dependencies.
|
||
|
||
Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
|
||
|
||
* libguile.h: #include "version.h"
|
||
|
||
* init.c (scm_boot_guile): Call scm_init_version.
|
||
* gscm.c (gscm_run_scm): Call scm_init_version.
|
||
|
||
* configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
|
||
GUILE_VERSION): AC_DEFINE these.
|
||
(acconfig.h): #undef the above symbols.
|
||
|
||
* Makefile.in (libobjs): Add version.o.
|
||
(installed_h_files): Add version.h.
|
||
(c_files): Add version.c.
|
||
(gen_c_files): Add version.x.
|
||
(version.o): New rule.
|
||
(alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
|
||
chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
|
||
fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
|
||
genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
|
||
mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
|
||
objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
|
||
procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
|
||
simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
|
||
strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
|
||
throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
|
||
weaks.o): Add version.h to dependency lists.
|
||
(markers.o): Remove duplicate rule.
|
||
|
||
* version.h: New file.
|
||
|
||
* version.c: New file.
|
||
|
||
Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* symbols.c (scm_strhash): scm_downcase is now a function, not an
|
||
array; use it appropriately. Since GCC is quite happy to
|
||
subscript functions, it never warned us about this; we should use
|
||
-Wpointer-arith in the future. I guess we never tested
|
||
case-insensitivity.
|
||
|
||
Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* socket.c: Doc and copyright fixes.
|
||
|
||
Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* debug.c: Fixed and improved gdb support.
|
||
|
||
Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* socket.c: Added declaration of inet_aton to avoid compiler
|
||
warning. (Hope this solution is correct.)
|
||
|
||
* stime.c: Added declaration of ftime. (This is missing in
|
||
Solaris 2 headers.)
|
||
|
||
Fri Aug 23 02:03:32 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* configure, scmconfig.h.in: Updated, using autoconf and autoheader.
|
||
|
||
* Makefile.in (c_files): add strerror.c.
|
||
|
||
* strerror.c: new file from Emacs' sysdep.c.
|
||
maybe configure should also check for sys_errlist.
|
||
|
||
* configure.in (AC_REPLACE_FUNCS): add strerror.
|
||
|
||
Fri Aug 23 03:02:46 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* debug.c (scm_init_debug): Added initialization for
|
||
scm_evaluator_traps.
|
||
|
||
* debug.h, debug.c: Various name changes.
|
||
(Mostly prefixing with SCM_.) Renamed "debug-options" -->
|
||
"debug-options-interface". See commentary in options.c.
|
||
|
||
* options.h, options.c: Options now have documentation strings.
|
||
Also added a long explanatory commentary.
|
||
|
||
* eval.c, print.h, print.c, read.h, read.c: Modifications to
|
||
run-time options.
|
||
|
||
* gscm.c, init.c, root.c, throw.c: Bug fixes:
|
||
last_debug_info_frame is now updated in all cases.
|
||
|
||
* __scm.h, stackchk.h, stackchk.c: Guile now performs stack
|
||
checking.
|
||
|
||
Thu Aug 22 17:34:17 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
|
||
|
||
* __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
|
||
Added option STACK_CHECKING.
|
||
|
||
Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
|
||
|
||
* Makefile.in: Added {debug,options,srcprop}.{h,c}
|
||
|
||
* __scm.h: Removed symbols for debugging support.
|
||
|
||
* acconfig.h: Added symbols for debugging support.
|
||
|
||
* configure.in: Added user option for debugging support.
|
||
--enable-debug will include the debugging code into libguile.a.
|
||
|
||
* continuations.c (scm_make_cont): Enlarged the #if 0 around
|
||
scm_relocate_chunk_to_heap.
|
||
|
||
* debug.c: New file: low-level debugging support. It also
|
||
includes support for debugging with gdb. (The extensions to gdb
|
||
are written by Per Bothner at Cygnus.)
|
||
|
||
* debug.h: New file: low-level debugging support.
|
||
|
||
* eval.c: scm_m_set and SCM_IM_SET no longer supports multiple
|
||
argument pairs. Extensive modifications to the debugging
|
||
evaluator. Added "SECTION:" commentaries to clarify what happens
|
||
when, during double compilation. Renamed EVALIMP --> EVALIM.
|
||
Renamed EVAL --> XEVAL. Removed function evalcar. Defined
|
||
evalcar to scm_eval_car. Added explanation of "EVAL" symbols to
|
||
the beginning of the file. New procedure: scm_unmemocopy.
|
||
Added some global state variables needed by the debugging
|
||
evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode,
|
||
check_entry, check_apply, check_exit, debug_options and
|
||
evaluator_traps. New acro: undefine.
|
||
|
||
* eval.h: Renamed EVAL --> XEVAL.
|
||
|
||
* gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
|
||
--> scm_make_weak_key_hash_table.
|
||
|
||
* init.c (scm_restart_stack, scm_boot_guile): Added initialization
|
||
of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
|
||
|
||
* libguile.h: Conditionally include debug.h
|
||
|
||
* objprop.c (scm_object_properties, scm_set_object_properties_x):
|
||
scm_object_properties shouldn't return handle. `handle' now gets
|
||
initialized in scm_set_object_properties_x. scm_object_properties
|
||
doesn't any longer create an entry in scm_object_whash.
|
||
|
||
* options.c: New file: handling of run time options.
|
||
|
||
* options.h: New file: handling of run time options.
|
||
|
||
* posix.c (scm_getpgrp): Cast pointer to getpgrp.
|
||
|
||
* print.c: New procedure: scm_print_options
|
||
|
||
* print.h: Defines for print options.
|
||
|
||
* read.c: New procedure: scm_read_options
|
||
|
||
* read.h: Defines for reader options.
|
||
|
||
* root.h: Added scm_source_whash among scm_sys_protects.
|
||
|
||
* srcprop.c: New file: source properties.
|
||
|
||
* srcprop.h: New file: source properties.
|
||
|
||
* throw.c (jbsmob): Jump buffers are now correctly allocated.
|
||
(Bug found by A. Green.)
|
||
|
||
* weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
|
||
|
||
* weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
|
||
|
||
Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* libguile.h: #include "objprop.h"; I guess this was forgotten.
|
||
|
||
* init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin,
|
||
and should be called by the final client.
|
||
|
||
Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* gc.h: Use the PROTO macro when declaring functions.
|
||
* gc.c: Use the PROTO macro when declaring static functions.
|
||
Remove the CPP hair around function definitions.
|
||
|
||
* gc.c (scm_init_storage): Initialize scm_asyncs.
|
||
|
||
* libguile.h: #include "__scm.h" before testing the STDC_HEADERS
|
||
preprocessor symbol; "__scm.h" is where it might get #defined.
|
||
* __scm.h: Similar: #include <scmconfig.h> before testing
|
||
HAVE_LIMITS_H.
|
||
|
||
* __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
|
||
|
||
Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* init.c (scm_boot_guile): Add init_func argument; call
|
||
(*init_func) instead of calling scm_appinit; it's ucky to
|
||
hard-code names for the user's procedures.
|
||
* init.h (scm_boot_guile): Adjust declaration.
|
||
|
||
* __scm.h (PROTO): New macro, for declaring functions with
|
||
prototypes.
|
||
|
||
* init.h (scm_start_stack, scm_restart_stack): Use PROTO;
|
||
eliminate all the __STDC__ conditionals.
|
||
(scm_boot_guile): Add declaration.
|
||
* init.c (scm_start_stack, scm_restart_stack, scm_boot_guile):
|
||
Remove __STDC__ conditionals around function definitions; the
|
||
declarations in init.h will provide the same information, more
|
||
usefully.
|
||
|
||
* __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't
|
||
complain about it in the error message; the error message is
|
||
adequate without that note, and there's nothing the user can do
|
||
about it.
|
||
|
||
Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* Makefile.in (ancillary): Drop def.sed.
|
||
|
||
* posix.c (scm_init_posix): Use numeric values, rather than
|
||
CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and
|
||
F_OK. The symbols aren't available on some systems, and I'm
|
||
pretty sure their values are fixed by common widespread practice.
|
||
* ioext.c (scm_init_ioext): Code here defined them too; remove it.
|
||
|
||
More functions unavailable on some systems.
|
||
* configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid,
|
||
tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to
|
||
check for.
|
||
* configure, scmconfig.h.in: Updated, using autoconf and autoheader.
|
||
* posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid,
|
||
scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the
|
||
bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a
|
||
stub that signals an error as the #else.
|
||
|
||
* Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
|
||
|
||
Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* Fixes motivated by Petr Adamek <adamek@mit.edu>:
|
||
|
||
* unif.c: include ramap.h.
|
||
|
||
* read.c (endif): case_insensative_p renamed case_insensitive_p.
|
||
|
||
* ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
|
||
|
||
* ports.c: include sys/ioctl.h.
|
||
|
||
* scmconfig.h.in: add HAVE_SYS_IOCTL_H.
|
||
|
||
* configure.in: check for sys/ioctl.h.
|
||
|
||
* ports.c: include <malloc.h> not "malloc.h".
|
||
|
||
* mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
|
||
|
||
* fports.c: remove ttyname and tmpnam declarations.
|
||
|
||
* posix.c: fewer ttyname declarations.
|
||
|
||
* fports.c: include <string.h> not "string.h".
|
||
|
||
* init.c, ioext.c: include string.h and unistd.h.
|
||
|
||
* gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
|
||
|
||
* async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
|
||
genio.c, simpos.c, vports.c: include string.h.
|
||
|
||
* socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
|
||
|
||
* fdsocket.c (getsockopt, setsockopt): change type of optlen from
|
||
scm_sizet to int.
|
||
(scm_addr_buffer_size): change type from scm_sizet to int.
|
||
(accept, getsockname, getpeername, recvfrom): change type of tmp_size
|
||
from scm_sizet to int.
|
||
|
||
* error.c: include unistd.h.
|
||
|
||
* __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
|
||
defined.
|
||
|
||
* Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
|
||
|
||
* __scm.hd, def.sed: deleted.
|
||
|
||
Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
Changes for NeXT, suggested by Robert Brown.
|
||
* configure.in: Call AC_TYPE_MODE_T.
|
||
(AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the
|
||
NeXT. Put header file list in alphabetical order.
|
||
* configure, scmconfig.h.in: Regenerated.
|
||
* filesys.c [HAVE_LIBC_H]: #include <libc.h>.
|
||
|
||
* filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
|
||
for strerror.
|
||
|
||
* acconfig.h: New file, providing documentation for the CPP
|
||
symbols defined in configure.in
|
||
* acconfig-1.5.h: Removed; superceded by the above.
|
||
|
||
Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* ioext.c (scm_sys_fdopen): fix the port-table assignment.
|
||
|
||
* fports.c (scm_open_file): don't return #f, throw error.
|
||
|
||
* ioext.c (fileno): renamed from %fileno.
|
||
(soft-fileno): deleted.
|
||
|
||
* ports.c (scm_port_revealed): don't need to check for -1 from
|
||
scm_revealed_count.
|
||
(scm_set_port_revealed_x): return unspecified, not #f.
|
||
|
||
* ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
|
||
|
||
* fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
|
||
|
||
* scmconfig.h.in: add HAVE_STRUCT_LINGER.
|
||
|
||
* configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
|
||
|
||
Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
|
||
|
||
* filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
|
||
This is necessary on Ultrix, and doesn't hurt portability.
|
||
|
||
* Makefile.in (dist-dir): New target, implementing a new dist system.
|
||
(installed_h_files): Put in alphabetical order.
|
||
Remove duplicate entries for markers.h and unif.h.
|
||
(c_files): Remove duplicate entries for markers.c.
|
||
(ancillary): Renamed from anillery; all uses changed. Remove
|
||
PLUGIN; it's a directory, and needs special treatment in dist-dir.
|
||
Remove all the ../doc/* files; doc/Makefile.in handles that.
|
||
|
||
* Makefile.in (libobjs): Remove duplicate entry for markers.o.
|
||
|
||
* Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell:
|
||
every if must have an else, or else the whole command has a
|
||
non-zero exit code whenever the if's condition is false.
|
||
|
||
Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* posix.c: include string.h.
|
||
|
||
Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
|
||
|
||
* numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
|
||
have been once.
|
||
|
||
* posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c:
|
||
Remove leading % from scheme names.
|
||
Do not return error values, call SCM_SYSERROR or similar.
|
||
|
||
* __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
|
||
|
||
Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
|
||
|
||
* struct.c (scm_init_struct): new file.
|
||
|
||
Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
|
||
|
||
* list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
|
||
(scm_list_head): added list-head for rapidly chopping argument
|
||
lists off of longer lists (and similar).
|
||
|
||
Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
|
||
|
||
* objprop.c (scm_object_property): assq the cdr of the whash
|
||
handle for obj, not the handle itself.
|
||
|
||
Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
|
||
|
||
* gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
|
||
weak hash tables last of all marking to avoid an obscure gc bug.
|
||
WARNING: circular lists stored in a weak hash table will hose us.
|
||
|
||
Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
|
||
|
||
* vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
|
||
new functions similar to scm_substring_move_left_x and
|
||
scm_substring_move_right_x.
|
||
|
||
Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
|
||
|
||
* init.c (scm_boot_guile): prevent gc with scm_block_gc not
|
||
scm_gc_heap_lock!
|
||
|
||
Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
|
||
|
||
* ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
|
||
|
||
Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
|
||
|
||
* strports.c (scm_strprint_obj): convenience function. C for
|
||
(lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
|
||
|
||
* guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
|
||
removed to a separate library
|
||
|
||
* init.c (scm_boot_guile): copied from guile-tcl.c.
|
||
Initialization specific to tcl interpreters removed.
|
||
|
||
Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
|
||
|
||
* ports.c (scm_ports_prehistory): size malloced here doesn't
|
||
matter so long as it is non-0 (got rid of "* 4").
|
||
|
||
Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
|
||
|
||
* gscm.h: gscm_mkarray eliminated (presumably was not being used
|
||
since its definition was bogus).
|
||
|
||
Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
|
||
|
||
* mallocs.[ch]: back again (for rx at least).
|
||
|
||
Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
|
||
|
||
* ports.c: removed functions relating to the mapping between ports
|
||
and descriptors. (That stuff is unix-specific and should be collected
|
||
in a separate library).
|
||
|
||
* ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
|
||
(Tom Mckay@avanticorp.com)
|
||
|
||
Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
|
||
|
||
* gc.c (scm_gc_sweep): Immediates in weak vectors were not
|
||
handled correctly (SCM_FREEP was applied to them) -- test for
|
||
NIMP. Keys in weak hash tables were spuriously (though harmlessly)
|
||
being overwritten with #f. (brown@grettir.bibliotech.com)
|
||
|
||
Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
|
||
|
||
* gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
|
||
for a specific symbol or for all symbols.
|
||
|
||
Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
|
||
|
||
* gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
|
||
keys and weak values confused).
|
||
|
||
Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
|
||
|
||
* list.c (scm_last_pair): map '()=>'()
|
||
|
||
Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
|
||
|
||
* pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
|
||
Generalized assoc and hash-table functions.
|
||
Factored pairs.c into multiple files.
|
||
|
||
Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
|
||
|
||
* gscm.c (gscm_run_scm): got rid of objprop.
|
||
|
||
Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
|
||
|
||
* genio.c (scm_getc):
|
||
NOTE: fgetc may not be interruptable.
|
||
|
||
* procprop.c (scm_stand_in_scm_proc):
|
||
NOTE: don't use a alist here.
|
||
(scm_set_procedure_properties_x): fix type checking throughout this file.
|
||
|
||
* gc.c (scm_gc_sweep): free heap segments with free, not must_free.
|
||
|
||
* ports.c (scm_remove_from_port_table): adjust scm_mallocated
|
||
after freeing part of the port table.
|
||
|
||
Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
|
||
|
||
* strports.c (scm_mkstrport):
|
||
* vports.c (scm_make_soft_port): allocate a port table entry
|
||
(possibly triggering gc) before setting the tag of the corresponding
|
||
ports handle.
|
||
|
||
* pairs.c (scm_delq_x): never throw an error.
|
||
|
||
* vectors.c (scm_make_vector): made the default vector fill argument
|
||
into '() (much more useful than the previous value, "#unspecified")
|
||
|
||
Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
|
||
|
||
* ports.c (scm_add_to_port_table): Added fields
|
||
to port table entries: file_name, line_num, col.
|
||
Update these in open_file, gen_getc and gen_ungetc.
|
||
Added procedures to access those fields.
|
||
|
||
Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
|
||
|
||
* procs.c (scm_make_subr_opt): new entry point for making
|
||
anonymous subrs.
|
||
|
||
Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
|
||
|
||
* gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
|
||
|
||
Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
|
||
|
||
* numbers.c (scm_exact_p): This function no longer
|
||
implements "integer?".
|
||
|
||
Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
|
||
|
||
* gc.c (scm_gc_end): simulate a signal at the end of each GC.
|
||
(scm_gc_stats): return an assoc of useful data. Replaces "room"
|
||
and the stats reporting formerlly built into repl.
|
||
|
||
* repl.[ch]: removed.
|
||
GC statistics keeping moved to gc.c.
|
||
Other statistics keeping can be done from Scheme.
|
||
REPLS are now written in Scheme.
|
||
|
||
Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
|
||
|
||
* cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
|
||
conservatively marked objects).
|
||
|
||
* throw.c (scm_ithrow): Unwind up to the right catch during a throw!
|
||
|
||
* error.c (scm_init_error): init system_error_sym here, not in repl.c.
|
||
|
||
* feature.c (scm_compiled_library_path): moved here from repl.c.
|
||
This file is for stuff relating specifically to Scheme libraries
|
||
like slib.
|
||
|
||
* eval.c (scm_m_define): don't give warning about redefinition, don't
|
||
check verbosity.
|
||
|
||
NOTE: this should throw a resumable exception with parameters --
|
||
the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
|
||
|
||
* repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
|
||
|
||
* error.c: scm_warn eliminated.
|
||
|
||
* read.c (scm_lreadr): extra right paren gets an error, not a warning.
|
||
|
||
* repl.c, marksweep.c, gc.c (various):
|
||
lose exit_report, growth_mon.
|
||
|
||
* gscm.c: got rid of verbosity functions.
|
||
|
||
Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
|
||
|
||
* throw.c (scm_ithrow): guard against the bad-throw hook changing
|
||
between the call to procedurep and use.
|
||
|
||
* error.c (scm_everr):
|
||
* gc.c (fixconfig):
|
||
* gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
|
||
but less so.
|
||
|
||
* strports.c: don't reveal the port's string to the caller
|
||
because it changes size.
|
||
|
||
(stputc stwrite): check/change the strings length with interrupts
|
||
blocked.
|
||
|
||
* objprop.c (scm_set_object_property_x &c): use the generic
|
||
hashing functions and be threadsafe.
|
||
|
||
* eval.c (scm_unmemocar): do this operation in a thread-safe way.
|
||
(per suggestion jaffer@gnu.ai.mit.edu).
|
||
|
||
* mbstrings.c (scm_multi_byte_string): guard against argument list
|
||
changing length.
|
||
|
||
* strings.c (scm_make_string): loop cleanup
|
||
|
||
* unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
|
||
a scheme function.
|
||
|
||
* weaks.c (scm_weak_vector): guard against argument list
|
||
changing length.
|
||
|
||
* variable.c (scm_builtin_variable): check for/make a built-in
|
||
variable automicly.
|
||
|
||
* vectors.c (scm_vector): while filling the new array,
|
||
guard against a list of fill elements that grows after
|
||
the vector is allocated.
|
||
|
||
* hashtab.c -- new file: general hash table
|
||
functions. hash, hashq, hashv, hashx.
|
||
|
||
* tags.h: made wvect an option bit of vector.
|
||
|
||
Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
|
||
|
||
* symbols.c: made the basic symbol table operations atomic.
|
||
|
||
* root.c &c.: collected stack-specific global state.
|
||
linum/colnum etc *should* be port-specific state.
|
||
|
||
* struct.c (scm_init_struct): init the first struct type during
|
||
initialization to fix a race condition.
|
||
|
||
* continuations.c (scm_dynthrow): pass throwval in the 'regs'
|
||
object, not in a global.
|
||
(suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
|
||
|
||
* throw.c (_scm_throw): Pass throwval on the stack, not in a global
|
||
(suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
|
||
|
||
* *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
|
||
and C symbols to begin with SCM_ or scm_.
|
||
|
||
Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
|
||
|
||
* gsubr.c (scm_gsubr_apply): statically allocate the
|
||
array of arguments (bothner@cygnus.com).
|
||
|
||
Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
|
||
|
||
* scmsigs.c: Simplified to use async rountines.
|
||
|
||
* async.c: New support for interrupt handlers.
|
||
|
||
Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
|
||
|
||
* symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
|
||
set the multi_byte flag correctly in symbols. This is wrong.
|
||
intern_obbary_soft and msymbolize should take an extra parameter.
|
||
Also, weird multibyte symbols don't print correctly.
|
||
The weird symbol syntax is also a bit bogus (emacs doesn't quite
|
||
cope).
|
||
|
||
Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
|
||
|
||
* symbols.c (scm_string_to_obarray_symbol): obarray == #f means
|
||
use the system symhash. == #t means create an uninterned symbol.
|
||
|
||
Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
|
||
|
||
* strings.c (scm_make_shared_substring): build'em.
|
||
It might better to keep a table of these and use one
|
||
less cons-pair per shared-substring.
|
||
|
||
Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
|
||
|
||
* strings.c (scm_string_shared_substring): create shared
|
||
substrings. (Doesn't handle mb strings yet).
|
||
|
||
* mbstrings.c (scm_print_mb_string): handle RO strings.
|
||
|
||
* print.c (scm_iprin1): print substrings as their non-substring
|
||
counterparts (dubious).
|
||
|
||
* marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
|
||
strings.
|
||
|
||
* hash.c (scm_hasher): hash RO and MB strings as bytestrings.
|
||
|
||
* eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
|
||
|
||
* eq.c (scm_equal_p): handle RO and MB strings.
|
||
|
||
* symbols.c (scm_string_to_symbol):
|
||
(scm_string_to_obarray_symbol):
|
||
* strop.c (scm_i_index):
|
||
(scm_i_rindex):
|
||
(scm_string_null_p):
|
||
(scm_string_to_list):
|
||
* strings.c (scm_string_length):
|
||
(scm_string_ref):
|
||
(scm_substring):
|
||
(scm_string_append):
|
||
* simpos.c (scm_system):
|
||
(scm_getenv):
|
||
* fports.c (scm_open_file):
|
||
* strorder.c (scm_string_equal_p):
|
||
(scm_string_ci_equal_p):
|
||
(scm_string_less_p):
|
||
(scm_string_ci_less_p):
|
||
* pairs.c (scm_obj_length):
|
||
* mbstrings.c (scm_multi_byte_string_length):
|
||
|
||
Use RO string macros for RO strings.
|
||
|
||
Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
|
||
|
||
* Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
|
||
|
||
* strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
|
||
index/rindex. Do handle embedded \000 characters.
|
||
|
||
Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
|
||
|
||
* error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
|
||
Eliminate a (presumed) warning on some systems.
|
||
|
||
* gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
|
||
(Mikael Djurfeldt <mdj@nada.kth.se>)
|
||
|
||
Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
|
||
|
||
* eval.c (scm_map): added argument type checking.
|
||
(kawai@sail.t.u-tokyo.ac.jp)
|
||
|
||
* gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
|
||
for C++. (Seth Alves <alves@gryphon.com>)
|
||
|
||
(gscm_cstr): uses an uninitialized local variable causing
|
||
segv. (kawai@sail.t.u-tokyo.ac.jp)
|
||
|
||
|
||
* lvectors.c (scm_get_lvector_hook):
|
||
In guile-ii, the lvector code was broken. It was fixed in guile-iii.
|
||
It seems to me like if it is broken again in guile-iv...Here is a patch.
|
||
"! || (LENGTH (keyvec) == 0))"
|
||
(From: Mikael Djurfeldt <mdj@nada.kth.se>)
|
||
|
||
|
||
* gscm.c (gscm_sys_default_verbosity):
|
||
incorrectly declared for non-__STDC__
|
||
(Tom_Mckay@avanticorp.com)
|
||
|
||
* ports.c (scm_setfileno): Tweak the macro a bit
|
||
to make it easier to port to systems that use
|
||
more than a single structure field to hold a descriptor.
|
||
|
||
* debug.c (change_mode): Avoid GNUCism "int foo[n];"
|
||
Give a warning, not an error, for unrecognized modes.
|
||
|
||
* eval.c (SCM_CEVAL):
|
||
static char scm_s_for_each[];
|
||
static char scm_s_map[];
|
||
not needed.
|
||
|
||
* strings.c (scm_string_p):
|
||
static char s_string[];
|
||
(see next entry)
|
||
|
||
* struct.c (scm_sys_struct_set_x):
|
||
static char s_sys_make_struct[];
|
||
static char s_sys_struct_ref[];
|
||
static char s_sys_struct_set_x[];
|
||
Rearrange code to eliminate those forward decls for the sake of
|
||
broken compilers.
|
||
|
||
* variable.c (make_vcell_variable): static char s_make_variable[];
|
||
isn't needed.
|
||
|
||
* fports.c (scm_port_mode):
|
||
chars modes[3] = "";
|
||
to
|
||
chars modes[3];
|
||
modes[0] = '\0';
|
||
(Tom_Mckay@avanticorp.com)
|
||
|
||
|
||
* pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
|
||
scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
|
||
(Tom_Mckay@avanticorp.com)
|
||
|
||
* numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
|
||
scm_num_eq_p() was scm_equal_p().
|
||
(Tom_Mckay@avanticorp.com)
|
||
|
||
* symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
|
||
(Tom_Mckay@avanticorp.com)
|
||
|
||
Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
|
||
|
||
* weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
|
||
(Tom_Mckay@avanticorp.com)
|
||
|
||
* strop.c (scm_substring_fill_x):
|
||
Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
|
||
(Tom_Mckay@avanticorp.com)
|
||
|
||
* eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
|
||
Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
|
||
|
||
* _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
|
||
Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
|
||
|
||
* lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
|
||
can turn into an obscure gc bug.
|
||
|
||
* chars.c (scm_char_p): fixed PROC call.
|
||
|
||
* gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
|
||
scm_vector_set.
|
||
|
||
Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
|
||
|
||
* elisp.c (new file): dynamic scoping and other bits for
|
||
elisp. Don't use this yet unless you specificly want to
|
||
hack on elisp emulation.
|
||
|
||
* dynwind.c (scm_dowinds): When entering or leaving a dynamic
|
||
scope created by scm_with_dynamic_bindings_operation_x, swap
|
||
the bindings of that scope with the corresponding globals.
|
||
|
||
* continuations.c (scm_make_cont): when a continuation is captured,
|
||
relocate the continuation stack chunks registered on the wind chain
|
||
to the heap.
|
||
|
||
Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
|
||
|
||
* eval.c (SCM_CEVAL): if the function position evaluates
|
||
to a macro, process it accordingly. (Previously, macros were
|
||
handled only if the function position was a symbol naming a
|
||
variable bound to a macro).
|
||
|
||
Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
|
||
|
||
* eval.c (scm_m_set): allow multi-variable set! like
|
||
(set! x 1 y 2 z 3).
|
||
|
||
Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
|
||
|
||
* ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the
|
||
STREAM of ports into the port table and replaced it with a
|
||
port-table index.
|
||
|
||
* repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
|
||
|
||
* marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
|
||
|
||
* mbstrings.c (new file): functions on multi-byte strings.
|
||
|
||
* tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
|
||
for multi-byte strings. Moved the string tag.
|
||
|
||
* chars.h chars.c repl.c (many functions): made scm_upcase and
|
||
scm_downcase functions that are safe for extended character sets.
|
||
|
||
Changed the range of integer->char.
|
||
|
||
Changed the type of SCM_ICHR.
|
||
|
||
Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
|
||
|
||
* guile.c: Changed init file name from "SCM_INIT_PATH" to
|
||
"GUILE_INIT_PATH"
|
||
|
||
Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
|
||
|
||
* guile.c (gscm_is_gscm_type): New function. (Without this how will we
|
||
know that it's safe to pass an object to gscm_get_type?)
|
||
(gscm_get_type): Fix tyop in error message.
|
||
|
||
* variable.c (scm_variable_ref): fixed assertion test.
|
||
(Robert STRANDH <strandh@labri.u-bordeaux.fr>)
|
||
|
||
* gscm.h: fixed several prototypes, notably gscm_vref.
|
||
Add gscm_is_eq and temporarily commented out gscm_eq (see
|
||
the note in gscm.h near gscm_eq if this change effects your
|
||
code).
|
||
(Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
|
||
|
||
* pairs.c (scm_obj_length): see next entry.
|
||
|
||
* gscm.h (gscm_obj_length): A way to get an integer
|
||
length for lists, strings, symbols (treated as strings),
|
||
and vectors. Returns -1 on error.
|
||
|
||
* eq.c (scm_equal_p): fixed smob case.
|
||
(William Gribble <grib@arlut.utexas.edu>)
|
||
|
||
* Makefile.in (X_CFLAGS): defined.
|
||
(William Gribble <grib@arlut.utexas.edu>)
|
||
|
||
* gscm.h (gscm_2_double): provided now
|
||
(reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
|
||
|
||
Tue Jun 13 01:04:09 1995 gnu
|
||
* Vrooom!
|
||
|
||
|