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

12971 commits

Author SHA1 Message Date
Andy Wingo
2fa901a51f rename unif.[ch] to arrays.[ch]
* libguile/Makefile.am:
* libguile/unif.c:
* libguile/unif.h:
* libguile/arrays.c:
* libguile/arrays.h: Rename unif.[ch] to arrays.[ch].

* libguile.h:
* libguile/array-handle.c:
* libguile/array-map.c:
* libguile/bitvectors.c:
* libguile/bytevectors.c:
* libguile/eq.c:
* libguile/gc-card.c:
* libguile/gc-malloc.c:
* libguile/gc-mark.c:
* libguile/gc.c:
* libguile/init.c:
* libguile/inline.h:
* libguile/print.c:
* libguile/random.c:
* libguile/read.c:
* libguile/socket.c:
* libguile/sort.c:
* libguile/srfi-4.c:
* libguile/srfi-4.h:
* libguile/strports.c:
* libguile/vectors.c:
* libguile/vectors.h: Update includers.
2009-07-19 14:53:03 +02:00
Andy Wingo
cf39614240 bitvector exodus from unif.[ch]
* libguile/Makefile.am:
* libguile/unif.c:
* libguile/unif.h:
* libguile/bitvectors.c:
* libguile/bitvectors.h: Move bitvector functionality out of unif.[ch].

* libguile/array-handle.c:
* libguile/array-map.c:
* libguile/init.c:
* libguile/read.c:
* libguile/srfi-4.c:
* libguile/vectors.c: Oh, what a tangled web we weave...
2009-07-19 14:53:03 +02:00
Andy Wingo
c53c0893a3 parts of unif.[ch] to array-handle.[ch]
* libguile/array-handle.c:
* libguile/array-handle.h: Move some parts of unif.c and unif.h to these
  new files.

* libguile/unif.c:
* libguile/unif.h: Update includers. Since unif.h depends on the array
  handle type, we include array-handle.h, which also means that there
  will be no difference for our callers.

* libguile/init.c: Call scm_init_array_handle, though it does nothing as
  of yet.

* libguile/Makefile.am: Adapt for new files.
2009-07-19 14:53:03 +02:00
Andy Wingo
5d1b3b2db9 rename ramap.[ch] to array-map.[ch]
* libguile/array-map.c:
* libguile/array-map.h: Rename from ramap.c and ramap.h.

* libguile.h:
* libguile/Makefile.am:
* libguile/eq.c:
* libguile/init.c:
* libguile/sort.c:
* libguile/unif.c:
* libguile/vectors.c: All referrers changed.
2009-07-19 14:53:03 +02:00
Andy Wingo
b6149d8d9f rename scm_i_make_ra to scm_i_make_array
* libguile/unif.c (scm_i_make_array): Rename from scm_i_make_ra. All
  callers changed.
2009-07-19 14:53:03 +02:00
Andy Wingo
a4a0d399c8 clean up libguile/Makefile.am
* libguile/Makefile.am: Clean up some of the file lists, should make
  future diffs easier to parse.
2009-07-19 14:53:03 +02:00
Andy Wingo
4b12659844 remove convert.{c,i.c,h}
* libguile/convert.c:
* libguile/convert.h:
* libguile/convert.i.c: Remove these functions, which were undocumented,
  not in the libguile/ header, and thus unlikely to have been used.
2009-07-19 14:53:02 +02:00
Andy Wingo
86d88a223c remove deprecated functions from unif.c
* libguile/unif.h:
* libguile/unif.c: Remove deprecated functions.

* module/ice-9/deprecated.scm: Remove array-related deprecated
  functions.

* NEWS: Update.
2009-07-19 14:53:02 +02:00
Daniel Kraft
f614ca12cd Implemented some important list built-ins.
* module/language/elisp/runtime.scm: Updated/added convenience macros.
* module/language/elisp/runtime/function-slot.scm: Implement list built-ins.
* module/language/elisp/runtime/macro-slot.scm: Implement list built-ins.
* test-suite/tests/elisp-compiler.test: Test the implemented built-ins.
2009-07-18 20:10:24 +02:00
Daniel Kraft
7d1a978289 Implemented unless, when and dotimes using built-in macros.
* module/language/elisp/README: Document that.
* module/language/elisp/runtime.scm: Defined built-in-macro macro.
* module/language/elisp/runtime/macro-slot.scm: Implement unless, when, dotimes.
* test-suite/tests/elisp-compiler.test: Test for those constructs.
2009-07-18 18:38:42 +02:00
Daniel Kraft
570c12aca7 Return correct value for setq form.
* module/language/elisp/compile-tree-il.scm: Fix implementation of setq.
* test-suite/tests/elisp-compiler.test: Check for value of setq form.
2009-07-18 17:58:01 +02:00
Daniel Kraft
9b5ff6a6e1 Implemented real quotation (added support for backquotation).
* module/language/elisp/README: Document that.
* module/language/elisp/compile-tree-il.scm: Implement backquote.
* test-suite/tests/elisp-compiler.test: Test quotation and backquotes.
2009-07-18 17:32:59 +02:00
Daniel Kraft
e905e490fa Implemented eq and equal built-in predicates.
* module/language/elisp/runtime/function-slot.scm: Implement eq and equal.
* test-suite/tests/elisp-compiler.test: Test them.
2009-07-18 17:21:55 +02:00
Daniel Kraft
74c009dadc Implemented macros in elisp compiler.
* module/language/elisp/README: Document it.
* module/language/elisp/compile-tree-il.scm: Implement defmacro and expansion.
* module/language/elisp/runtime/macro-slot.scm: New module to keep definitions.
* test-suite/Makefile.am: Add elisp-compiler.test to list of tests.
* test-suite/tests/elisp-compiler.test: Basic macro tests.
2009-07-16 15:23:38 +02:00
Daniel Kraft
b6b9d59604 Extended test-suite to cover already implemented built-ins and fixed errors found.
* module/language/elisp/runtime/function-slot.scm: Fixed errors in number preds.
* test-suite/tests/elisp-compiler.test: Test built-ins already implemented.
2009-07-16 14:28:07 +02:00
Ludovic Courtès
3b0b6bc1dd Bump version number for 1.9.1.
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
2009-07-15 23:57:18 +02:00
Ludovic Courtès
10331eac7e Make the non-integrated VM test-suite less verbose.
* testsuite/run-vm-tests.scm (run-vm-tests): Don't display the number of
  tests passed since it's always 1 or 0.
2009-07-15 23:56:27 +02:00
Ludovic Courtès
ec99fe8ecb Add FIXMEs about misaligned objcode-metas.
* libguile/objcodes.c (scm_c_make_objcode_slice): Add comment about
  misaligned `objcode-meta'.

* module/language/assembly/compile-bytecode.scm (write-bytecode):
  Likewise.
2009-07-15 23:53:22 +02:00
Ludovic Courtès
5bd047cefa Fix unaligned access in the VM code.
* libguile/vm.c (struct t_32bit_aligned): New.
  (really_make_boot_program)[bytes]: Use it.  This fixes possibly
  unaligned accesses, which cause a "bus error" on some platforms (e.g.,
  sparc-*).
2009-07-15 23:51:42 +02:00
Ludovic Courtès
b67cb2864e Const-qualify buffers passed to `scm_c_make_objcode_slice ()'.
* libguile/objcodes.c (scm_c_make_objcode_slice): Add `const' qualifier
  for PTR and DATA.

* libguile/objcodes.h: Update accordingly.
2009-07-15 23:12:43 +02:00
Ludovic Courtès
e1203ea00f Switch remaining GPLv2+ Guile-VM headers to LGPLv3+.
* module/system/base/compile.scm, module/system/base/syntax.scm,
  module/system/repl/common.scm, module/system/repl/describe.scm,
  module/system/vm/instruction.scm, module/system/vm/objcode.scm,
  module/system/vm/profile.scm, module/system/vm/program.scm,
  module/system/vm/trace.scm: Switch header from GPLv2+ to LGPLv3+.
2009-07-15 22:46:54 +02:00
Daniel Kraft
d158fa62ab Test-suite for elisp compiler so far, excluding the built-ins.
* test-suite/tests/elisp-compiler.test: Tests for compiler so far.
2009-07-15 22:08:36 +02:00
Daniel Kraft
09241ea7f7 Removed wrong not in zerop built-in.
* module/language/elisp/runtime/function-slot.scm: Fix zerop.
2009-07-15 13:51:19 +02:00
Ludovic Courtès
a823e7272e Fix typo in the compile-type verification of `OBJCODE_COOKIE'.
* libguile/objcodes.c: Fix `sizeof (OBJCODE_COOKIE)' assertion: the
  trailing 0 must not be taken into account, and multiple of 8 means the
  3 LSBs are clear.
2009-07-15 01:17:32 +02:00
Ludovic Courtès
07f99e1c6a Make sure at compile-time that `OBJCODE_COOKIE' has the right size.
* libguile/objcodes.c: Use `verify' to assert that the size of
  `OBJCODE_COOKIE' is a multiple of 8.
2009-07-15 01:03:35 +02:00
Ludovic Courtès
99c7d3caf6 Explicitly use Gnulib's `verify' module.
* m4/gnulib-cache.m4: Add `verify'.
2009-07-15 00:58:01 +02:00
Ludovic Courtès
9e1a18db9f Augment `OBJCODE_COOKIE' to detect wrong endianness or word size.
* libguile/objcodes.c (OBJCODE_ENDIANNESS, _OBJCODE_STRINGIFY,
  OBJCODE_STRINGIFY, OBJCODE_WORD_SIZE): New macros.
  (OBJCODE_COOKIE): Use them.  The intent is that `.go' files compiled
  for a different endianness or word size are detected.
2009-07-15 00:55:33 +02:00
Ludovic Courtès
ba4c43dc3b Remove the long_long' and ulong_long' types.
* libguile/gen-scmconfig.c (main): Don't emit typedefs for `long_long'
  and `ulong_long'.  This was already deprecated in 1.8 and known to
  cause conflicts with other libraries such as HDF5, as reported by Mark
  Patterson <mpatterson@physics.queensu.ca>
  (http://lists.gnu.org/archive/html/bug-guile/2009-02/msg00003.html).
2009-07-15 00:32:25 +02:00
Andy Wingo
19fef497f0 update NEWS
* NEWS: Update.
2009-07-14 22:55:35 +02:00
Andy Wingo
ef283979cf NEWS has info on 1.9.N to 1.9.N+1 in addition to 1.8 to 2.0
* NEWS: Update to have an incremental section in addition to a
  comprehensive 1.8->2.0 section.
2009-07-14 21:40:43 +02:00
Andy Wingo
ad47e35939 fix race in which some instruction name symbols could go unmarked
* libguile/instructions.c: In loops, replace scm_op_last with
  SCM_VM_NUM_INSTRUCTIONS.
  (fetch_instruction_table): Protect the instruction symbols from
  collection. Before they were only marked by the name->opcode hash
  table, leading to races in which they could be collected.
  (scm_lookup_instruction_by_name): Protect the hash table earlier, as
  it's not actually a stack variable, since it's static.
2009-07-14 21:29:41 +02:00
Andy Wingo
cec1d4e33f fix bounds checks for the last element of bv-*-{ref,set}
* libguile/vm-i-scheme.c (BV_FIXABLE_INT_REF, BV_INT_REF):
  (BV_FLOAT_REF, BV_FIXABLE_INT_SET, BV_INT_SET, BV_FLOAT_SET): Fix the
  bounds check for the last element.
2009-07-14 21:29:29 +02:00
Daniel Kraft
de9f26b5f0 Implemented defconst, defvar, defun special forms for elisp.
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement defconst/defvar/defun.
2009-07-14 21:18:07 +02:00
Daniel Kraft
285277590d Merge branch 'master' of git://git.savannah.gnu.org/guile into elisp 2009-07-14 20:20:03 +02:00
Ludovic Courtès
d10c572e38 Remove potential "uninitialized variable" GCC warnings.
* libguile/vm-i-scheme.c (vector_ref, vector_set, BV_FIXABLE_INT_REF,
  BV_INT_REF, BV_FLOAT_REF, BV_FIXABLE_INT_SET, BV_INT_SET,
  BV_FLOAT_SET): Explicitly initialize all locals, to make some versions
  of GCC happier.  Patch by Dale P. Smith <dsmich@roadrunner.com>.
2009-07-14 17:12:04 +02:00
Ludovic Courtès
44362a1086 Fix tests that assumed little endian.
* test-suite/tests/asm-to-bytecode.test (u32->u8-list): New procedure.
  ("compiler")[(load-program 3 2 1 0 () 3 #f (make-int8 3) (return)),
  (load-program 3 2 1 0 () 3 (load-program 3 2 1 0 ...))]: Make these
  tests work on hosts whose endianness is not little endian.
2009-07-14 16:07:13 +02:00
Daniel Kraft
1e018f6c67 Some bug fixes on the way and mainly implemented some built-ins (arithmetic).
* module/language/elisp/README: Document changes.
* module/language/elisp/compile-tree-il.scm: Bug fixes to fluid-creation.
* module/language/elisp/runtime.scm: Some helping definitions for built-ins.
* module/language/elisp/runtime/function-slot.scm: Defined artihmetic built-ins.
2009-07-13 18:35:57 +02:00
Daniel Kraft
f28de79197 Automatically create fluids when necessary.
* module/language/elisp/README: Document that.
* module/language/elisp/compile-tree-il.scm: Create fluids when necessary.
* module/language/elisp/runtime/function-slot.scm: Fix module name.
2009-07-13 17:26:07 +02:00
Daniel Kraft
cef997e82a Fixed lambda expressions and implemented function calls using the basic list notation.
* module/language/elisp/README: Document that.
* module/language/elisp/compile-tree-il.scm: Implement function calls.
2009-07-13 16:51:05 +02:00
Daniel Kraft
fad9b2dc53 Merge branch 'master' of git://git.savannah.gnu.org/guile into elisp 2009-07-13 15:46:46 +02:00
Daniel Kraft
50abfe7649 Lambda expressions in elisp, but not yet function calls.
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement lambda expressions.
2009-07-13 15:43:53 +02:00
Daniel Kraft
3a4b86357e Implemented let and let* in elisp.
* module/language/elisp/README: Document it.
* module/language/elisp/compile-tree-il.scm: Implement let and let*.
2009-07-07 19:38:25 +02:00
Daniel Kraft
d221c18bc0 Implemented while construct in elisp.
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement while construct.
2009-07-07 17:26:22 +02:00
Ludovic Courtès
c4b681fdac Use Gnulib's `vsnprintf' module.
* m4/gnulib-cache.m4: Use `vsnprintf', needed by `deprecation.c'.
2009-07-05 23:57:37 +02:00
Ludovic Courtès
5374ec9c28 Update `NEWS'.
* NEWS: Update.
2009-07-05 23:46:36 +02:00
Ludovic Courtès
9120012f74 Enclose `bit-operations.test' in its own module.
* test-suite/tests/bit-operations.test: Use the `define-module' clause.
2009-07-05 23:46:34 +02:00
Ludovic Courtès
345b17e911 Fix the `BUILD_PTHREAD_SUPPORT' Automake conditional when not using pthread.
* configure.in: Set $build_pthread_support to "no" when thread support
  isn't built.  This fixes the `BUILD_PTHREAD_SUPPORT' Automake
  conditional.
2009-07-05 23:42:02 +02:00
Daniel Kraft
9d09e928cd Merge branch 'master' of git://git.savannah.gnu.org/guile into elisp 2009-07-04 11:09:38 +02:00
Daniel Kraft
344927c3f8 Implemented fluid-based variable references and setting using setq.
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement variable references, setq
* module/language/elisp/runtime.scm: New file for runtime definitions.
* module/language/elisp/runtime/function-slot.scm: Ditto.
* module/language/elisp/runtime/value-slot.scm: Ditto.
2009-07-03 23:00:12 +02:00
Andy Wingo
7c957b8657 fix error message for bad objcode cookie
* libguile/objcodes.c: Whoop-dee :)
2009-07-02 21:55:28 +02:00