Commit graph

1680 commits

Author SHA1 Message Date
Thien-Thi Nguyen
34472dfe98 *** empty log message *** 2002-02-03 05:20:21 +00:00
Marius Vollmer
1b39c2e37f *** empty log message *** 2002-01-31 19:59:39 +00:00
Stefan Jahn
1fa86ca526 2002-01-31 Stefan Jahn <stefan@lkcc.org>
* convert.c, convert.h, convert.i.c: New files containing C
        array to Scheme conversion helpers meant to be replacement
        functions for the deprecated gh interface.

        * Makefile.am: Setup rules for new `convert.*' files.

2002-01-31  Stefan Jahn  <stefan@lkcc.org>

        * configure.in: Add -DLIBLTDL_DLL_IMPORT to INCLTDL when using
        `libltdl.dll'.
2002-01-31 10:38:50 +00:00
Neil Jerram
bbd26b5ae5 * Rename call-with-readline-completion-function' to with-readline-completion-function'.
* More tests for Elisp nil value.
* Development work on Elisp translator.
2002-01-30 00:03:40 +00:00
Stefan Jahn
af68e5e5a6 2002-01-28 Stefan Jahn <stefan@lkcc.org>
* configure.in (guile_cv_have_uint32_t): Look also in
        `stdint.h' for uint32_t.

2002-01-28  Stefan Jahn  <stefan@lkcc.org>

        * symbols.c (scm_c_symbol2str): New function, replacement for
        `gh_scm2newsymbol()'.

        * strings.c (scm_c_substring2str): New function.  Proper
        replacement for `gh_get_substr()'.

        * socket.c: Include `stdint.h' if available for the `uint32_t'
        declaration.

        * scmsigs.c (s_scm_sigaction): Initialize `chandler' (inhibits
        compiler warning).

        * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
2002-01-28 21:15:55 +00:00
Neil Jerram
c96d76b88d * First batch of libguile changes for Elisp support.
* Fixed a few typos.
* Minor rationalization of macros relating to source breakpoints.
2002-01-22 23:31:39 +00:00
Dirk Herrmann
a392ee1556 * eval.c: Removed outdated references to "everr". Improved some
comments.

(scm_deval_args, deval_args):  Renamed scm_deval_args to
deval_args, since it is not part of the interface.

(SCM_CEVAL):  Added (maybe somewhat verbose) comment.  Avoid to
use references to debug.vect[0] before it exists.  Add parentheses
to switch statement.

* goops.h:  Added local emacs variables.
2002-01-10 21:57:03 +00:00
Dirk Herrmann
2493378052 * eval.[ch] (scm_deval_args): Made static.
* srcprop.c (scm_source_property):  Remove redundant SCM_IMP
test.

* strings.c (scm_c_string2str):  Clarified comment.  Replaced
THINKME by FIXME for uniformness.  Removed question about whether
arguments need to be protected from garbage collection:  Arguments
must be protected as any other variable.
2002-01-10 21:11:22 +00:00
Dirk Herrmann
f9450cdb14 * procs.h (SCM_CLOSURE_BODY): New Macro.
* debug.c (scm_procedure_name, scm_procedure_source), eval.c
(SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
get_slot_value, set_slot_value), procs.c
(scm_procedure_documentation), sort.c (closureless), stacks.c
(get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
SCM_CLOSURE_BODY.

* sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
2002-01-10 20:52:45 +00:00
Marius Vollmer
5dc64f6434 *** empty log message *** 2001-12-26 15:37:14 +00:00
Marius Vollmer
197ee3d388 *** empty log message *** 2001-12-16 21:58:33 +00:00
Stefan Jahn
4d4528e79a 2001-12-08 Stefan Jahn <stefan@lkcc.org>
* strings.c (scm_c_string2str): New function.  Converts a
        given Scheme string into a C string.  Also put in two
        THINKME's regarding the malloc policy for the missing converter
        routines.
2001-12-08 12:50:37 +00:00
Neil Jerram
98347362c7 * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than gh_symbol2scm. 2001-12-01 15:54:58 +00:00
Dirk Herrmann
1fc8902f02 * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT):  New macros.

(SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
SCM_GC_SET_CELL_OBJECT):  Express in terms of SCM_GC_CELL_*
macros.

(SCM_FREE_CELL_P):  Express in terms of SCM_GC_CELL_TYPE.

* inline.h (scm_alloc_cell, scm_alloc_double_cell):  Use
SCM_GC_CELL_* macros when accessing free cells.
2001-11-27 23:18:16 +00:00
Marius Vollmer
4878beecf9 *** empty log message *** 2001-11-25 15:24:07 +00:00
Marius Vollmer
d2bc7faea7 *** empty log message *** 2001-11-23 21:40:39 +00:00
Dirk Herrmann
5eec27e9c5 * numbers.c (scm_divide): Fix more division by zero errors. 2001-11-22 21:30:24 +00:00
Gary Houston
8978878fd8 * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
obsolete.  autogen.sh says:
	invalid unused variable name: `OMIT_DEPENDENCIES'
2001-11-21 23:35:15 +00:00
Dirk Herrmann
164826d3ae * numbers.c (scm_divide): Fix (/ 0). Thanks to Keith Wright for
reporting the bug.
2001-11-21 23:23:53 +00:00
Marius Vollmer
84aff7a7f2 *** empty log message *** 2001-11-21 20:22:01 +00:00
Stefan Jahn
6063dc1ddd 2001-11-21 Stefan Jahn <stefan@lkcc.org>
* win32-socket.c (getservent, setservent, endservent,
        getprotoent, setprotoent, endprotoent): New functions.
        Appropriate replacements for M$-Windows.

        * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
        these definitions for GUILE_DEBUG.

        * net_db.c: Include "win32-socket.h" if compiling with a native
        M$-Windows compiler.  Include some pieces of code (protoent and
        servent interface) protected by HAVE_* macros when using a
        native M$-Windows compiler.
2001-11-21 07:59:53 +00:00
Marius Vollmer
351982f656 *** empty log message *** 2001-11-20 22:45:37 +00:00
Thien-Thi Nguyen
849038b542 *** empty log message *** 2001-11-20 10:54:56 +00:00
Rob Browning
5c790b44f8 *** empty log message *** 2001-11-18 23:03:10 +00:00
Neil Jerram
694a9bb34e * Updates for string- and vector-move-right/left! docstrings.
* Update Tcl war URLs.
2001-11-18 22:10:41 +00:00
Dirk Herrmann
302c12b4b7 * eval.c: Removed bogus comment about acros.
(scm_unmemocar):  Use !SCM_CONSP instead of SCM_IMP.
Minimize scope of local variable.  Eliminate dependency on
macro DEBUG_EXTENSIONS.

(s_splicing):  New error message string.

(scm_m_body):  Issue 'bad body' message rather than 'missing
expression' message.

(scm_m_quote):  Eliminate unnecessary copying.

(scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let):  Leave the
checking of the body to scm_m_body.

(scm_m_do):  Move comment to function header.  Rename arg1 to
binding.  Made the code a bit easier to read.

(evalcar):  Removed.

(iqq):  Added a comment.  Changed the depth parameter to
unsigned.  Use size_t for vector lengths.  Make sure vector object
is gc protected as long as its contents are read.  Add some syntax
checks.  Get rid of unnecessary SCM_IMP test.  Clean up the
control structure a bit.

(scm_m_delay):  Added comment about the implementation of
scm_m_delay.

(scm_m_define):  Add comment about guile's currying define
syntax.  Renamed 'proc' to 'name'.  Eliminate dependency on macro
DEBUG_EXTENSIONS.  Simplified code a bit.  Eliminate SICP code.

(scm_m_letrec1):  Removed.  Part of the functionality is taken
over by the new function 'transform_bindings'.

(transform_bindings):  New function.  Takes over some of the
functionality of removed function 'scm_m_letrec1', namely to split
a list of bindings into a reversed list of variables and a list of
initializers.

(scm_m_letrec):  Call 'transform_bindings'.

(scm_m_let):  Minimized scope of local variables.  Renamed 'proc'
to 'temp' and 'arg1' to 'binding'.  Eliminated redundant SCM_NIMP
test.  Use 'transform_bindings'.  Fixed scoping error with named
let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
Jerram for suggesting the fix).  Cleaned up the control structure
a bit.

(scm_m_expand_body):  Use 'transform_bindings'.  Eliminated
unnecessary consing.  Eliminated unnecessary
SCM_DEFER/ALLOW_INTS.

(SCM_CEVAL):  Un-obfuscated some loops.
2001-11-17 11:43:28 +00:00
Neil Jerram
8f85c0c6c3 * Adding C function declarations from the SCM interface to the
reference manual documentation.
2001-11-16 15:04:17 +00:00
Neil Jerram
cecb4a5e9d * These changes add a @deffnx C function declaration and function
index entries for each Guile primitive to the copy of the doc
  snarf output that is used for reference manual synchronization.
  Online help is unchanged.
2001-11-16 09:55:54 +00:00
Dirk Herrmann
ddea3325eb * eval.c (RETURN): Wrap in do{}while(0) in order to make it
safely usable as a single statement followed by a ';', for example
in an if statement.

(SCM_CEVAL, SCM_APPLY):  Clean up code using 'RETURN'.
2001-11-15 17:19:53 +00:00
Neil Jerram
72dd0a03e0 * Miscellaneous small doc updates and fixes. 2001-11-13 23:44:29 +00:00
Marius Vollmer
409b85880d *** empty log message *** 2001-11-13 22:17:08 +00:00
Marius Vollmer
adb8c0f235 *** empty log message *** 2001-11-13 15:46:56 +00:00
Marius Vollmer
6558eda6e7 *** empty log message *** 2001-11-13 14:29:02 +00:00
Marius Vollmer
5d8fc6409a *** empty log message *** 2001-11-12 01:14:26 +00:00
Thien-Thi Nguyen
d6b8cf1192 *** empty log message *** 2001-11-11 20:51:44 +00:00
Neil Jerram
9401323e63 * Documentation work. 2001-11-11 15:01:52 +00:00
Stefan Jahn
b4e15479e9 2001-11-07 Stefan Jahn <stefan@lkcc.org>
* configure.in: Include `win32-socket.o' in the list of object
        files if networking is enabled on Win32.

2001-11-07  Stefan Jahn  <stefan@lkcc.org>

        * win32-socket.[ch]: New files.  Defines Winsock-API error codes
        and makes them available through Guile.  That is because the
        Winsock-API does not store its errors in `errno' and thus cannot
        return error messages via `strerror (errno)'.

        * socket.c (scm_init_socket): Initialize `win32-socket' part
        here under M$-Windows.

        * numbers.h: Added missing declaration of
        `scm_sys_check_number_conversions()'.

        * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
        and use in `(strerror)' and `(system-error)'.

        * Makefile.am (EXTRA_libguile_la_SOURCES): Added
        `win32-socket.[ch]' to extra source and header files.
2001-11-07 15:08:45 +00:00
Marius Vollmer
7ab89df17c *** empty log message *** 2001-11-05 23:12:20 +00:00
Stefan Jahn
0233bfc11b 2001-11-05 Stefan Jahn <stefan@lkcc.org>
* struct.c (s_scm_struct_vtable_p): Corrected docstring.
2001-11-05 21:12:33 +00:00
Stefan Jahn
8f99e3f38b 2001-11-04 Stefan Jahn <stefan@lkcc.org>
* NEWS: Corrected remarks about SCM_API.

        * configure.in: Defining USE_DLL_IMPORT definition to indicate
        usage of DLL import macros in `libguile/__scm.h'.
        (LIBOBJS): Removed `fileblocks.o' from the list of object files.
        Somehow Jim Blandy's patch from 1997 did not survive.

2001-11-04  Stefan Jahn  <stefan@lkcc.org>

        * configure.in (EXTRA_DEFS): Follow-up patch.  Using SCM_IMPORT
        instead of __SCM_IMPORT__.

        * readline.c (scm_readline_init_ports): Disable input/output
        stream redirection for Win32.  The readline package for Win32
        does not support this.  The guile-readline library works fine
        for command line editing.

        * readline.h (SCM_RL_API): Renamed __FOO__ macros into FOO.

2001-11-04  Stefan Jahn  <stefan@lkcc.org>

        * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
        here (was at guile_LDADD) which describes the dependency
        correctly and allows a clean build on Win32.

        * __scm.h (SCM_API): Follow-up patch.  Renamed __FOO__ macros
        into FOO.

        * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
        import macros for external libraries (libcrypt, libqthreads,
        libreadline and libregex).

        * coop-defs.h: Include <winsock2.h> for `struct timeval'.

        * posix.c (flock): Added support for flock() in M$-Windows.

        * guile.c (SCM_IMPORT): Follow-up patch.  Use SCM_IMPORT instead
        of __SCM_IMPORT__.

        * fports.c (getflags): Differentiate reading and writing pipes
        descriptors.

        * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
        M$-Windows.

        * coop.c (coop_condition_variable_timed_wait_mutex): Use
        conditionalized error code if `ETIMEDOUT' is not available.
        (scm_thread_usleep): Remove bogus declaration of `struct timeval
        timeout'.

        * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
        belongs.  That is because NO_PREPRO_MAGIC gets undefined after
        each inclusion of `num2integral.i.c'.
        (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.

2001-11-04  Stefan Jahn  <stefan@lkcc.org>

        * md/Makefile.am (EXTRA_DIST): Added `i386.asm'.

        * md/i386.asm: New file.  Contains the Intel syntax version for
        nasm/tasm/masm of the file `i386.s'.

        * qt.h.in: Definition of QT_API, QT_IMPORT and QT_EXPORT.
        Prefixed each symbols which is meant to go into a DLL.

        * Makefile.am (libqthreads_la_LDFLAGS):  Put `-no-undefined'
        into LDFLAGS to support linkers which do not allow unresolved
        symbols inside shared libraries.
        (EXTRA_DIST): Add `libqthreads.def', which is an export file
        definition for M$-Windows.  It defines exported symbols.  This is
        necessary because the M$VC linker does not know how to export
        assembler symbols into a DLL.

2001-11-04  Stefan Jahn  <stefan@lkcc.org>

        * srfi-13.h, srfi-14.h, srfi-4.h: Follow-up patch.  Renamed
        __FOO__ macros into FOO.

2001-11-04  Stefan Jahn  <stefan@lkcc.org>

        * tests/ports.test: Run (close-port) before (delete-file) if
        necessary/advisory.
2001-11-04 15:52:30 +00:00
Marius Vollmer
4e21fa6096 *** empty log message *** 2001-11-03 18:46:31 +00:00
Mikael Djurfeldt
7663c008a5 * print.c (scm_iprin1): Mark print state as revealed when
dispatching to generic write or display.
2001-11-02 13:55:38 +00:00
Mikael Djurfeldt
08112c957b * unif.c (scm_ra2contig): Fixed memory overwrite bug. 2001-11-02 12:31:50 +00:00
Marius Vollmer
f712d833cc *** empty log message *** 2001-11-02 00:21:34 +00:00
Mikael Djurfeldt
d245ce231d * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
Don't apply scm_uniform_vector_length on arrays.
2001-10-28 11:13:35 +00:00
Dirk Herrmann
8ea4624953 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
SCM_CEVAL, scm_map, scm_init_eval):  When building lists, prefer
scm_list_<n> over scm_cons[2]?.

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

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

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

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

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

(scm_c_improper_memq):  Made the comment somewhat clearer.

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

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

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

(build_binding_list):  New static function.

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

(SCM_CEVAL):  Removed side effecting operation from macro call.
Handle the 'else clause of the 'cond form specially - the symbol
'else is not replaced with #t any more.
2001-10-18 21:38:04 +00:00
Gary Houston
8186c4f536 * version.c (scm_version): use sprintf instead of snprintf,
for portability.  thanks to Bill Schottstaedt.
2001-10-14 21:28:23 +00:00
Mikael Djurfeldt
89759084ab * read.c (scm_lreadr): When user-defined hash procedure returns
SCM_UNSPECIFIED: Fall back to standard handling instead of raising
an exception.  (This prevents parsing of uniform vectors from
interfering with parsing of numbers.)

* arrays.scm (read:uniform-vector): Return *unspecified* instead
of raising an exception if hash extend character isn't followed by
the array list. (This prevents parsing of uniform vectors from
interfering with parsing of numbers.)
2001-10-14 16:05:04 +00:00
Marius Vollmer
9c7ce56302 *** empty log message *** 2001-10-13 15:42:52 +00:00
Dirk Herrmann
1fe5e088ff * numbers.c (mem2uinteger): Return number read so far when coming
across a hexdigit after having read a # or if not reading a hex
value.  This will enable the calling code to correctly handle
forms like 1e2.  (The background is, that the exponent markers d,
e and f are also hexdigits.)  Thanks to Mikael Djurfeldt for
providing this patch.

(mem2complex):  Fix erroneous double-negation.  Now, numbers like
1-i will be read correctly.
2001-10-13 12:39:26 +00:00