1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-22 11:34:09 +02:00
Commit graph

11336 commits

Author SHA1 Message Date
Ludovic Courtès
404bb5f87b bytevectors: Add a C-friendly API.
* doc/ref/api-data.texi (Bytevector Manipulation): Add
  `scm_is_bytevector ()', `scm_c_bytevector_length ()',
  `scm_c_bytevector_length ()', and `scm_c_bytevector_set_x ()'.

* libguile/bytevectors.c (scm_is_bytevector, scm_c_bytevector_length,
  scm_c_bytevector_ref, scm_c_bytevector_set_x): New functions.
  (scm_bytevector_p): Use `scm_is_bytevector ()'.
  (scm_bytevector_length): Use `scm_c_bytevector_length ()'.

* libguile/bytevectors.h (scm_is_bytevector, scm_c_bytevector_length,
  scm_c_bytevector_ref, scm_c_bytevector_set_x): New declarations.
2009-06-22 01:05:43 +02:00
Ludovic Courtès
2d34e9244b bytevectors: Use size_t' rather than unsigned' for sizes.
* doc/ref/api-data.texi (Bytevector Manipulation): Update.

* libguile/bytevectors.c (INTEGER_ACCESSOR_PROLOGUE,
  make_bytevector_from_buffer, scm_c_make_bytevector,
  scm_c_take_bytevector, scm_i_shrink_bytevector): Use `size_t' for
  bytevector lengths.
2009-06-22 01:00:41 +02:00
Ludovic Courtès
d64fc8b039 Fix documentation of `make-bytevector'.
* doc/ref/api-data.texi (Bytevector Manipulation): Fix documentation of
  the FILL argument of `make-bytevector'.
2009-06-22 00:58:11 +02:00
Andy Wingo
5c27902e5e add brainfuck->tree-il compiler
* module/Makefile.am (BRAINFUCK_LANG_SOURCES): Compile at the end. Add
  compile-tree-il.scm.

* module/language/brainfuck/compile-tree-il.scm: New compiler, compiles
  to tree-il instead of scheme. I thought it would be more illustrative,
  though there are some uncommented bits.

* module/language/brainfuck/parse.scm: Modify not to put a header on the
  scheme representation. After all, we don't put <scheme> before scheme
  code, do we? :)

* module/language/brainfuck/spec.scm: Add tree-il compiler.

* module/language/tree-il.scm: Understand (set! (lexical foo) ...).

* module/system/base/language.scm: Update license. Actually, updates
  licenses on all these.
2009-06-21 15:06:04 +02:00
Andy Wingo
fe2400b214 formatting changes to (language brainfuck compile-scheme)
* module/language/brainfuck/compile-scheme.scm: Standalone comments
  should have more than one semicolon, and update copyright to LGPLv3+.
2009-06-21 15:06:03 +02:00
Andy Wingo
4e432dab1f link to brainfuck wikipedia page
* doc/ref/compiler.texi: Point to more info on Brainfuck. Patch by
  Daniel Kraft.
2009-06-21 15:06:03 +02:00
Daniel Kraft
e63d888ef6 added documenting comments to the brainfuck compiler and mention it in the VM documentation.
* doc/ref/compiler.texi: Mention the new brainfuck compiler as an example.
* module/language/brainfuck/compile-scheme.scm: Add a lot of documentation comments.
* module/language/brainfuck/parse.scm: Ditto.
* module/language/brainfuck/spec.scm: Ditto.
2009-06-21 15:06:03 +02:00
Daniel Kraft
6370a6ad25 basic brainfuck -> scheme example compiler.
* module/Makefile.am: Install the brainfuck compiler modules.
* module/language/brainfuck/spec.scm: New file.
* module/language/brainfuck/parse.scm: New file.
* module/language/brainfuck/compile-scheme.scm: New file.
2009-06-21 15:06:03 +02:00
Andy Wingo
cf6d8d344c remove obsolete guile-vm.texi
* doc/guile-vm.texi: Remove, has been folded into the Guile manual for a
  while now.

* doc/Makefile.am: Remove guile-vm.texi.
2009-06-21 15:06:03 +02:00
Andy Wingo
c60be0404d update .gitignore
* .gitignore: Update.
2009-06-21 15:06:03 +02:00
Neil Jerram
4574ec212a Deterministic test for the r6rs-ports.test segmentation fault
* test-suite/tests/r6rs-ports.test ("7.2.7 Input Ports"): Add (gc), to
  test the (ex-)bug in cbp_mark () when marking a closed port.
2009-06-21 13:31:58 +01:00
Andy Wingo
8806afa7dd Fix crash when marking closed custom bytevector port
* libguile/r6rs-ports.c (cbp_mark): A closed port will have had its
  stream destroyed, so don't dereference the stream in that case. Patch by
  Mike Gran.
2009-06-21 12:41:46 +02:00
Andy Wingo
179fe33632 put autocompiled files into ~/.cache or $XDG_CACHE_HOME
* module/system/base/compile.scm (compiled-file-name): Remove unneeded
  path separator.

* libguile/load.c (scm_init_load_path): Change so the default cache path
  is ~/.cache/guile/ccache/1.9, and respect $XDG_CACHE_HOME.
2009-06-20 14:26:54 +02:00
Andy Wingo
89cb70a0d5 fix source information lossage for (define (foo) ...) lambda sugar
* module/ice-9/psyntax.scm (source-wrap): Use decorate-source, for
  clarity.
  (syntax-type): When turning the RHS of (define (foo) ...) into a
  lambda, decorate the resulting lambda expression with source
  information, as the RHS later goes to chi-expr, which receives no
  source information. Perhaps that is a bug. In any case, fixes some
  source location lossage, reported by Jao.

* module/ice-9/psyntax-pp.scm: Regenerated.
2009-06-20 12:41:11 +02:00
Andy Wingo
74fdb02e5e better error in make_objcode_by_mmap
* libguile/objcodes.c (make_objcode_by_mmap): Better error when the
  object header is incorrect.
2009-06-20 11:41:50 +02:00
Andy Wingo
fc5b616b58 source information for the interpreter
* module/ice-9/psyntax.scm: Try to propagate source information when
  generating output for the interpreter.

* module/ice-9/psyntax-pp.scm: Regenerate.
2009-06-20 10:47:37 +02:00
Ludovic Courtès
f4bf64b4d4 Make `cond-expand' compilable.
* module/ice-9/boot-9.scm (cond-expand): Changed into a `define-macro'
  macro.
2009-06-19 22:46:07 +02:00
Ludovic Courtès
23044464c2 Fix copyright year and authorship of `guile-tools'. 2009-06-19 22:01:56 +02:00
Ludovic Courtès
93617170fa Slightly improve `NEWS'. 2009-06-19 21:55:53 +02:00
Ludovic Courtès
8141fc3b46 Fix "guile-tools disassemble".
* module/scripts/disassemble.scm (disassemble): Accept a variable number
  of arguments.  Invoke the right `disassemble' procedure.
2009-06-19 21:54:51 +02:00
Andy Wingo
b57501c3b7 don't autocompile at installcheck
* examples/Makefile.am: Don't autocompile our tests at installcheck
  time.
2009-06-19 14:27:56 +02:00
Andy Wingo
25b82b3485 new function: canonicalize-path. use when autocompiling
* libguile/filesys.h:
* libguile/filesys.c (scm_canonicalize_path): New function,
  canonicalize-path.

* module/system/base/compile.scm (compiled-file-name): Canonicalize the
  filename so that compiling e.g. ../foo.scm doesn't compile to
  ~/.guile-ccache/1.9/../foo.scm.
2009-06-19 14:26:47 +02:00
Andy Wingo
ffca4c2203 gnulib-tool --import canonicalize-lgpl 2009-06-19 13:01:11 +02:00
Andy Wingo
5b55e29320 generate changelogs at dist time
* Makefile.am: Add rule to make a ChangeLog at dist-time. The rule comes
  from coreutils.

* build-aux/gitlog-to-changelog: New helper script, from gnulib.
2009-06-19 12:32:01 +02:00
Andy Wingo
ce471ab8b0 rename SCM_SNAME to SCM_SUBR_NAME
* libguile/procs.h: Rename SCM_SNAME to SCM_SUBR_NAME.

* libguile/debug.c:
* libguile/eval.c:
* libguile/eval.i.c:
* libguile/goops.c:
* libguile/gsubr.c:
* libguile/print.c:
* libguile/procs.c: Update callers.
2009-06-19 11:20:34 +02:00
Andy Wingo
96b73e84bb another draft of NEWS
* NEWS: Another draft.
2009-06-19 11:19:34 +02:00
Ludovic Courtès
159399850d Fix decompilation of the `load-array' instruction.
This allows, e.g., ",c #u8(1 2 3)" at the REPL to actually work instead
of failing to decode `load-array'.

* module/language/assembly/decompile-bytecode.scm (decode-bytecode):
  Account for the `load-array' instruction, which is followed by a
  bytevector instead of a string.  We should find a more elegant way to
  do that.
2009-06-19 02:37:04 +02:00
Ludovic Courtès
81e002fcb9 Fix the REPL's `,compile' command.
* module/system/repl/command.scm (compile): Use `guile:disassemble'
  instead of the former `disassemble-objcode'.
2009-06-19 02:14:22 +02:00
Ludovic Courtès
0ba0b38489 Implement R6RS bytevector read syntax.
* libguile/read.c (scm_read_bytevector): New function.
  (scm_read_sharp): Add `v' case for bytevectors.

* test-suite/lib.scm (exception:read-error): New variable.

* test-suite/tests/bytevectors.test ("Datum Syntax"): New test set.
2009-06-19 00:47:11 +02:00
Ludovic Courtès
55bf8cb7af Fix `equal?' on bytevectors.
* libguile/bytevectors.c (bytevector_equal_p): New function.

* test-suite/tests/bytevectors.test ("2.3 Operations on Bytes and
  Octets")["equal?"]: New test.
2009-06-19 00:10:21 +02:00
Ludovic Courtès
b242715b28 Import documentation for the R6RS bytevector and port APIs.
* doc/ref/api-compound.texi (Uniform Numeric Vectors): Add xref to the
  bytevector API.

* doc/ref/api-data.texi (Bytevectors): New node.

* doc/ref/api-io.texi (R6RS I/O Ports): New node.
2009-06-18 23:20:56 +02:00
Andy Wingo
fa1804e943 update NEWS, THANKS
* NEWS: Update, but only partially. I wanted to push out this
  incomplete, not yet organized draft for review, if anyone had
  comments. I'll pick it up tomorrow morning.

* THANKS: Add Juhani, whose last name changed?
2009-06-18 23:02:51 +02:00
Neil Jerram
b82a8b4850 Change guile-readline license to GPLv3+ 2009-06-17 22:35:30 +01:00
Neil Jerram
83ba2d3750 Complete changing license to LGPLv3+
(Still guile-readline to do, but that will all be GPLv3+.)
2009-06-17 22:30:26 +01:00
Neil Jerram
1b34e26a20 Reinstate lines removed by mistake from chars.test 2009-06-17 21:35:31 +01:00
Neil Jerram
53befeb700 Change Guile license to LGPLv3+
(Not quite finished, the following will be done tomorrow.
   module/srfi/*.scm
   module/rnrs/*.scm
   module/scripts/*.scm
   testsuite/*.scm
   guile-readline/*
)
2009-06-17 00:22:09 +01:00
Neil Jerram
a89cafc056 Update README on using libraries in non-standard locations
* README: Update instructions on using libraries in non-standard
  locations.  Also change expected next stable release number from
  1.10.0 to 2.0.0.
2009-06-14 18:41:50 +01:00
Neil Jerram
5aaccd35a2 Add Tex and texinfo output and auxiliary suffixes to .gitignore 2009-06-14 18:07:01 +01:00
Neil Jerram
39b94fee43 Provide easier configure options for GMP and readline
This patch uses the AC_LIB_LINKFLAGS macro, provided by Gnulib's
havelib module, to provide --with-gmp-prefix and
--with-readline-prefix configure options.  Many thanks to Bruno Haible
for suggesting and explaining this to me.

* configure.in (top level): Add AC_LIB_LINKFLAGS(gmp).

* guile-readline/configure.in (AC_CONFIG_AUX_DIR): Change to
  ../build-aux, to share the main build-aux directory and so avoid
  having to distribute multiple copies of config.rpath.
  (top level): Add AC_LIB_LINKFLAGS(readline).

* lib/Makefile.am, m4/gnulib-cache.m4: Regenerated by gnulib-tool for
  new import of the `havelib' module.
2009-06-14 17:58:15 +01:00
Neil Jerram
f856c2b6d7 Fix for make distcheck
* examples/Makefile.am (AM_CFLAGS, AM_LIBS): Set PATH so that
  guile-config can find guile.
2009-06-13 12:17:23 +01:00
Neil Jerram
62e9a9b704 Fix `make distcheck'
* libguile/r6rs-ports.c (scm_init_r6rs_ports): Add libguile/ to
  included .x file name.
2009-06-12 23:04:48 +01:00
Neil Jerram
dffd0672fa Note Andy as a contributor 2009-06-11 23:24:34 +01:00
Andy Wingo
76e834686e fix defmacro*, defmacro*-public
* module/ice-9/boot-9.scm (define-private): Remove apocyphal comment. The
  FIXME would really be to remove `define-private', though...

* module/ice-9/optargs.scm (defmacro*, defmacro*-public): Fix these
  macros. Thanks to Dale Smith for the report.
2009-06-10 10:53:22 +02:00
Andy Wingo
de3d1fc988 bump default stack limit to 160000 words
* libguile/eval.c (scm_debug_opts): Up the default stack limit by a
  factor of 4. Psyntax expansions currently bounce back and forth between
  the VM and the interpreter, due to `map'. (Hopefully that won't be the
  case in the future, when have map in scheme, and we get an inliner.)
  Anyway when expanding a big nested expression, as for example in
  (language ecmascript compile-ghil) -- the pmatch code ends up being
  super-nested -- we can consume loads o stack.

  So given that on desktop machines, where rlimit is likely to be unset,
  default rlimits are around 8 or 10 MB or so, let's bump up our default
  limit to 640KB (on 32-bit). Should be enough for anyone.

  See http://thread.gmane.org/gmane.lisp.guile.devel/8599/focus=8662 for
  more info. Thanks to Mark H. Weaver for the diagnosis!
2009-06-10 10:53:22 +02:00
Andy Wingo
9ea12179ff fix debug-options
* module/ice-9/boot-9.scm (define-option-interface): Fix (debug-options
  'full), along with other options. Thanks to Mark Weaver for the tip.

* THANKS: Update, though many more names need to be added.
2009-06-10 00:03:52 +02:00
Andy Wingo
8f9b968329 some attempts to solve the ecmascript stack overflow problem
* module/language/ecmascript/compile-ghil.scm (comp): Just use pmatch,
  not ormatch. Now with syncase running over everything, it doesn't
  matter.

* module/ice-9/boot-9.scm (false-if-exception): Avoid saving stacks
  inside false-if-exception. There's probably a more general solution to
  this, though. Fixes getting bogus backtraces sometimes.

* module/Makefile.am (ECMASCRIPT_LANG_SOURCES): Reorder things so that
  spec comes last.
2009-06-09 23:42:05 +02:00
Andy Wingo
ac4d09b164 a start to changing VM scheme copyrights
* module/language/tree-il/primitives.scm: Change copyright to LGPLv2.1.
  Others will follow.
2009-06-08 22:44:01 +02:00
Andy Wingo
65dd9e3846 pretty-print psyntax-pp.scm
* module/ice-9/compile-psyntax.scm: Pretty-print psyntax-pp.scm, given
  that we are going to compile it anyway.

* module/ice-9/psyntax-pp.scm: Regenerated.
2009-06-08 22:44:01 +02:00
Andy Wingo
8dd42d3bc9 don't autocompile snarfing m4 docs
* doc/ref/Makefile.am (autoconf-macros.texi): Yet another place we
  shouldn't autocompile.
2009-06-08 11:44:51 +02:00
Andy Wingo
55dce020bd fix bootstrapping after last night's psyntax patch
* module/Makefile.am (ice-9/psyntax-pp.scm): Don't try autocompiling when
  making psyntax-pp.scm.

* module/ice-9/psyntax-pp.scm: Regenerated.

* module/ice-9/psyntax.scm (chi-top): Only affect the compile-time
  environment if modules have booted.
2009-06-08 01:04:16 +02:00