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

1818 commits

Author SHA1 Message Date
Ludovic Courtès
53f4876abc Merge branch 'master' into strftime-gnulib
Conflicts:
	libguile/ChangeLog
	srfi/ChangeLog
	test-suite/ChangeLog
2008-09-09 22:03:42 +02:00
Ludovic Courtès
242ebeaf08 Get rid of Automake's "maintainer mode".
* NEWS: Update.
* configure.in: Remove `AM_MAINTAINER_MODE' invocation.
* doc/Makefile.am, ice-9/Makefile.am: Ignore `MAINTAINER_MODE'
  conditional.
2008-09-09 18:06:37 +02:00
Ludovic Courtès
69f23174d3 Use Gnulib's `strftime' to address bug #24130.
* libguile/stime.c (scm_strftime): Use `nstrftime ()' from Gnulib.
  This provides the same semantics on all platforms, thereby fixing
  bug #24130.

* doc/ref/posix.texi (Time): Remove note about non-portable `%Z'
  behavior.  Describe the new, portable behavior.

* test-suite/tests/time.test ("strftime")["strftime %Z doesn't return
  garbage"]: Reinstate.
  ["C99 %z format"](have-strftime-%z): Remove.
  ("GMT", "EST+5"): Don't use `have-strftime-%z'.
2008-09-02 21:58:58 +02:00
Andy Wingo
fdc0a82263 merge from guile master
Had to fix up .gitignore for some conflicts.
2008-08-26 12:51:19 -07:00
Andy Wingo
e610dc3851 merge guile-vm to guile
An attempt to pull in the original history from guile-vm into guile itself.
2008-08-02 11:40:32 +02:00
Neil Jerram
091baf9edf Single stepping through code from Emacs
When you use GDS to evaluate Scheme code from Emacs, you can now use
`C-u' to indicate that you want to single step through that code. See
`Evaluating Scheme Code' in the manual for more details.

	* scheme-using.texi (Evaluating Scheme Code): Document use of
        `C-u' prefix with evaluation commands.

        * gds-scheme.el (gds-eval-region, gds-eval-expression)
        (gds-eval-defun, gds-eval-last-sexp): Support `C-u' prefix,
        meaning that user wants to single step through the code.

        * gds-client.scm (handle-nondebug-protocol): Add support for
        setting a trap on code that is about to be evaluated.
2008-07-17 23:05:57 +01:00
Ludovic Courtès
071bb6a840 Add `scm_c_symbol_length ()'. 2008-07-05 20:16:12 +02:00
Julian Graham
e68f492a43 srfi-modules.texi (SRFI-18): New sections.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2008-06-30 19:47:21 +02:00
Ludovic Courtès
c8779dde04 Fix doc typo regarding `use-syntax' and "syntax transformers". 2008-06-28 20:37:21 +02:00
Ludovic Courtès
e36280cb28 Fix SRFI-88 URL in the manual. 2008-06-01 13:09:36 +02:00
Andy Wingo
1f246cb782 autotooling, version bump to 0.7
* acconfig.h: Removed.

* acinclude.m4: Use the extended AC_DEFINE for HAVE_LABELS_AS_VALUES, so
  as to remove the need for acconfig.h.

* autogen.sh: Use autoreconf.

* configure.in: Update info, don't warn about non-gnu make, bump version
  to 0.7.

* doc/texinfo.tex: Automagically updated. (Should this be in VCS?)
2008-05-20 12:10:18 +02:00
Neil Jerram
241d9cea20 Delete trailing whitespace. 2008-05-15 00:00:57 +01:00
Julian Graham
184af225b8 ChangeLog updates for latest set of SRFI-18 changes 2008-05-14 23:58:50 +01:00
Neil Jerram
74926120a3 Delete trailing whitespace. 2008-05-14 23:52:49 +01:00
Julian Graham
adc085f17c latest set of SRFI-18 support changes to core threads 2008-05-14 23:33:16 +01:00
Ludovic Courtès
a728672018 Remove uses of non-portable makefile constructs. 2008-05-07 21:38:13 +02:00
Neil Jerram
b20ef3a6af Add NEWS and concept index entries for traps infrastructure and Emacs support. 2008-05-05 22:39:05 +01:00
Ludovic Courtès
cdbbe19250 Fix omissions and typos in previous commit. 2008-05-04 22:42:13 +02:00
Ludovic Courtès
92826dd0e2 Add `pkg-config' support. 2008-05-04 22:26:57 +02:00
Ludovic Courtès
189681f55b Add `(srfi srfi-88)'. 2008-04-26 19:34:37 +02:00
Ludovic Courtès
1afb97c464 Fix dangling references to files that have been removed. 2008-04-26 19:27:55 +02:00
Ludovic Courtes
9dbbe4bb83 Improved macro handling; started documenting the issue.
* doc/guile-vm.texi (Compiling Scheme Code): New node.

* module/language/scheme/translate.scm (&current-macro-module): New.
  (translate): Evaluate macros in `&current-macro-module'.
  (trans-pair): Likewise.

git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-13
2008-04-25 19:09:30 +02:00
Ludovic Courtes
884d46de23 Tried compiling more code; augmented the doc.
* module/language/Makefile.am: New.

* module/language/scheme/Makefile.am: New.

* configure.in: Produce these two new Makefiles.

* doc/guile-vm.texi: Documented `compile-file', `compiled-file-name', and
  `compile-in'.

* module/system/base/compile.scm: Cosmetic changes.

* module/system/base/language.scm: Likewise.

* module/system/il/Makefile.am: Tried (and failed) to compile more
  things.

* module/system/vm/Makefile.am: All source files in here can now be
  compiled without harming further compilation.

* module/system/vm/assemble.scm: Select only specific bindings from
  `(system vm core)'.
  (dump-object!): Show a more meaningful error message.

* module/system/vm/conv.scm: Select only specific bindings from `(system
  vm core)'.

* module/system/vm/debug.scm: Likewise.

* module/system/vm/frame.scm: Changed the header.  Use a renamer for
  `(system vm core)'.

* src/guilec.in: Added options, via `getopt-long'.

git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-6
2008-04-25 19:09:30 +02:00
Ludovic Courtes
b6368dbbb9 Fixed a Scheme translation bug; cleaned compilation with GCC 4.
* module/language/scheme/translate.scm (trans-pair): In the `set!' case,
  when a procedure-with-setter is passed, call `trans:pair' with an
  actual pair.  This fixes a long-lasting bug which prevented compilation
  of `set!' statements with procedures-with-setter (this showed up when
  compiling `(system vm assemble)').

* module/system/base/compile.scm: Added `objcode->u8vector' to the
  `#:select' clause.

* module/system/base/syntax.scm: Cosmetic changes.

* module/system/vm/assemble.scm (preprocess): Removed debugging
  statements.

* src/frames.c: Cosmetic changes.

* src/frames.h (SCM_FRAME_SET_DYNAMIC_LINK): New.

* src/objcodes.c: Use `scm_t_uint8' instead of `char' when relevant.

* src/vm.c (vm_heapify_frames_1): Use `SCM_FRAME_SET_DYNAMIC_LINK ()'.

* src/vm_loader.c: Added casts to mute GCC 4 warnings.

* testsuite/run-vm-tests.scm (*scheme*): Renamed to `%scheme'.
  (run-test-from-file): Renamed to `compile/run-test-from-file'.
  (run-vm-tests): Run each test using both the VM and the interpreter;
  compare the results.

* testsuite/t-proc-with-setter.scm: Try out `get/set'.

* doc/Makefile.am (info_TEXINFOS): New.

* doc/guile-vm.texi: Added index entries and indices.

* doc/texinfo.tex: New file.

git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-5
2008-04-25 19:09:30 +02:00
Ludovic Courtes
a52b2d3d55 Started documenting the compiler.
* doc/guile-vm.texi:  Documented the compiler (node `The Compiler').
  Removed a number of things that might have been relevant to Guile-VM 0.0.

* module/system/il/compile.scm (optimize):  Commented out the case
  using `<ghil-inst?>'.

* src/vm_engine.c (vm_run)[objects_handle]:  New variable.
  Before leaving the function, release OBJECTS_HANDLE.

* src/vm_engine.h (CACHE_PROGRAM):  Use `scm_vector_writable_elements'
  instead of `scm_vector_elements';  don't release the handle right away.

* src/vm_loader.c (load-program):  New commented out piece of code
  dealing with simple vectors.

* src/vm_system.c (object-ref):  Added the type of OBJNUM.

git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-3
2008-04-25 19:09:30 +02:00
Ludovic Courtes
0b5f0e49a8 * src/objcodes.c (make_objcode_by_mmap): Fixed the error type when the
object file is too small.

* doc/guile-vm.texi:  Documented `make-closure'.  Improved the documentation
  of `load-program'.

* testsuite:  New directory.

* configure.in:  Added `testsuite/Makefile' to `AC_OUTPUT'.

* Makefile.am (SUBDIRS):  Added `testsuite'.

* src/vm_engine.h (VM_CHECK_OBJECT):  New option.
  (CHECK_OBJECT):  New macro.

* src/vm_system.c (object-ref):  Use VM_CHECK_OBJECT.

* module/system/vm/assemble.scm (preprocess):  Commented out the debugging
  code.

* benchmark/lib.scm (do-loop):  New procedure.

git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-2
2008-04-25 19:09:30 +02:00
Ludovic Courtes
6208295910 Removed a few more deprecated function calls; documented closures.
* src/Makefile.am (.c.x):  Fixed the rule.

* src/envs.c:  Use `scm_hash_get_handle ()' instead of
  `scm_sym2ovcell_soft ()' and `scm_hash_create_handle_x ()' instead of
  `scm_intern_symbol ()'.

* src/objcodes.c (bytecode->objcode):  Don't use `SCM_VALIDATE_INUM', use
  `SCM_VALIDATE_NUMBER' instead.
  (make_objcode_by_mmap):  Check whether the file is smaller than the
  magic cookies; check whether the magic cookies are there.

* src/frames.c (frame-local-ref):  Likewise, but use `SCM_MAKE_VALIDATE'.
  (frame-local-set!):  Likewise.

* src/instructions.c (opcode->instruction):  Likewise.

* src/programs.c (program-external-set!):  New function.

* src/guile-disasm.in:  New file.

* src/Makefile.am:  Produce `guile-disasm'.

* doc/guile-vm.texi:  Documented `external-ref', `external-set', `local-ref'
  and `local-set'.

* module/system/vm/disasm.scm (disassemble-bytecode):  Fixed the way
  `load-program' is represented.

git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-1
2008-04-25 19:09:30 +02:00
Ludovic Court`es
f41cb00ce2 Fixed a stack leak. Now observing actual performance.
* src/*.[ch]:  Replaced `scm_mem2symbol' by `scm_from_locale_symboln' and
  `scm_ulong2num' by `scm_from_ulong'.
* src/vm_system.c (tail-call):  Fixed stack leak (SP lacked decrement by
  one more Scheme object in the tail-recursive case).
* benchmark/measure.scm (measure):  Make sure we are using the compiled
  procedure (i.e. a program object) when measuring.  This yields better
  results than before.  :-)
* doc/guile-vm.texi:  Augmented the instruction set documentation with
  branch instructions, `call' and `tail-call'.

git-archimport-id: lcourtes@laas.fr--2004-libre/guile-vm--revival--0.6--patch-7
2008-04-25 19:09:30 +02:00
Ludovic Court`es
2d80426a3e Improved the VM's efficiency. The VM is as fast as the interpreter. :-(
* benchmark/lib.scm:  New file.
* benchmark/measure.scm:  New file.
* README:  Added useful pointers to various threads.
* doc/guile-vm.texi:  Fixed the description of `load-program' (it now expects
  _immediate_ integers).
* src/*.[ch]:  Use immediate integers whereever possible, as in the original
  code.  For `CONS', use `scm_cell' rather than `scm_cons'.

git-archimport-id: lcourtes@laas.fr--2004-libre/guile-vm--revival--0.6--patch-6
2008-04-25 19:09:30 +02:00
Ludovic Court`es
238e7a11a8 Got the VM up and running! Augmented the documentation.
* src/*.[ch]:  Replaced the remaining `SCM_MAKINUM', and changed `SCM_VELTS'
  into `scm_vector_elements ()'.
* src/vm_loader.c (link):  Fixed so that it pushed a variable object on
  the stack.
* src/vm_system.c (variable-ref):  Fixed so that it uses `scm_variable_ref ()'
  and friends.
* module/system/vm/assemble.scm (dump-object!):  Fixed the string case.
* src/vm_engine.h (CONS):  Use `scm_cons' instead of `SCM_NEWCELL'.
* doc/guile-vm.texi:  Added actual instruction definitions, explanations of
  the program invocation mechanism, programs' object tables, etc., in the
  `Instruction Set' chapter.

git-archimport-id: lcourtes@laas.fr--2004-libre/guile-vm--revival--0.6--patch-5
2008-04-25 19:09:30 +02:00
Ludovic Court`es
fa19602c28 Fixed the compiler, got the disassembler working.
* doc/guile-vm.texi:  Texified and cleaned up.
* src/vm.c:  Use `scm_from_locale_string ()' instead of `scm_makfrom0str ()'.
* src/vm_engine.c:  Likewise.
* src/programs.c (scm_program_bytecode):  Return a u8vector instead of a string.
* module/system/vm/conv.scm (make-byte-decoder):  Fixed a few things wrt. to
  the string to u8vector transition.
* src/objcodes.c (bytecode->objcode):  Fixed a bug where the last 10 bytes of
  the bytecode where ignored.
* module/system/vm/assemble.scm (dump-object!):  Don't convert everything
  to a u8vector, keep strings where it makes sense.
* module/system/vm/conv.scm (code->bytes):  Accordingly, convert strings to
  u8vectors when needed.
  (make-byte-decoder):  Accordingly too, when decoding instructions, return
  variable-length instructions' argument as strings except for `load-program'.
* module/system/vm/disasm.scm:  Export `disassemble-bytecode'.

git-archimport-id: lcourtes@laas.fr--2004-libre/guile-vm--revival--0.6--patch-4
2008-04-25 19:09:30 +02:00
Neil Jerram
839e63263c Document file-exists? 2008-04-17 21:37:47 +01:00
Ludovic Courtès
ef4cbc08c8 Add support for SRFI-88-like postfix keyword read syntax. 2008-04-15 19:52:43 +02:00
Neil Jerram
08365ce400 Fix manual typo. 2008-04-08 00:08:34 +02:00
Ludovic Courtès
90ace3e1c1 More `.gitignore'. 2008-04-07 23:55:58 +02:00
Ludovic Courtès
89e3e0dcea More `.gitignore'. 2008-04-07 23:48:48 +02:00
Neil Jerram
9c9b203b80 (Mutexes and Condition Variables): Change
`flag' to `flags' in docstring.
2008-03-24 21:50:51 +00:00
Neil Jerram
24dbb5ed10 * api-debug.texi (Low Level Trap Calls): Removed (material
duplicated elsewhere); doc for with-traps and debug-object? moved
to section on evaluator trap options.
(High Level Traps): Renamed just `Traps'.  Add references to
evaluator trap options and debug options.  Make language
appropriate for core Guile (as opposed to previously separate
package).
(Location Traps): Corrected to reflect that location traps now
specify a specific position, not a range of positions.
(Debugging Examples): New (content moved here from
scheme-debugging.texi, and updated to use traps instead of
breakpoints).

* api-modules.texi (Included Guile Modules): Change `Debugging
Features' reference to `Tracing'.

* api-options.texi (Evaluator trap options): Doc for with-traps
and debug-object? is now here.

* guile.texi, scheme-debugging.texi: Move the `Tracing' content of
scheme-debugging.texi to the Modules section.

* scheme-using.texi (Using Guile in Emacs, GDS Getting Started):
Minor edits.

* scheme-debugging.texi (Debugging Features, Intro to
Breakpoints): Removed.
(Examples): Moved to api-debug.texi.
(Tracing, Old Tracing): Promoted one level.
(New Tracing, Tracing Compared): Removed.
2008-03-19 22:51:24 +00:00
Neil Jerram
6180e336b2 Core enhancements, by Julian Graham, to Guile's thread, mutex and
condvar primitives, in preparation for SRFI-18 support.
2008-03-08 16:22:40 +00:00
Neil Jerram
b226295af8 Release stuff: missing NEWS and 2007/2008 copyrights. 2008-02-15 23:13:59 +00:00
Neil Jerram
8c726cf0b4 (Random): New text about the default random state,
following suggestions by Stephen Uitti.
2008-02-11 22:34:33 +00:00
Neil Jerram
0ea659f3ba (Next-method): Minor improvements to the
text.
2008-02-06 22:47:29 +00:00
Neil Jerram
300b1ae58a (Threads): Add "C Function scm_join_thread"
to doc for join-thread.  Thanks to Antoine Mathys for reporting
that scm_join_thread was missing.
2008-02-01 21:02:15 +00:00
Neil Jerram
7df13834d4 * LICENSE: Change COPYING.LIB to COPYING.LESSER.
* COPYING.LESSER: Renamed, previously COPYING.LIB.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.
2008-01-22 21:46:24 +00:00
Neil Jerram
d3cf93bc25 * srfi-39.scm: Update copyright statement to LGPL.
* __scm.h, _scm.h, weaks.c: Update copyright statement to LGPL.

* compat/compat.h: Update copyright statement to LGPL.

* oldfmt.c: Update copyright statement to LGPL.

* libguile.h: Update copyright statement to LGPL.
2008-01-22 21:06:22 +00:00
Ludovic Courtès
2dffd0537a Changes from arch/CVS synchronization 2007-12-09 17:38:14 +00:00
Ludovic Courtès
dfe8c13bf0 Changes from arch/CVS synchronization 2007-12-09 17:27:03 +00:00
Ludovic Courtès
1317062f0b Changes from arch/CVS synchronization 2007-12-03 12:36:12 +00:00
Ludovic Courtès
07e02175a0 Changes from arch/CVS synchronization 2007-10-29 22:03:37 +00:00
Neil Jerram
5e9086b4bf Add lib-version.texi. 2007-10-24 11:55:07 +00:00