guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, master, created. release_1-9-4-35-g4d3


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, created. release_1-9-4-35-g4d3406a
Date: Fri, 23 Oct 2009 15:05:30 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=4d3406a84750589ffa70669bb923343082efaeb5

The branch, master has been created
        at  4d3406a84750589ffa70669bb923343082efaeb5 (commit)

- Log -----------------------------------------------------------------
commit 4d3406a84750589ffa70669bb923343082efaeb5
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 23 16:29:06 2009 +0200

    (ice-9 optargs) based on the new lambda* work
    
    * module/ice-9/optargs.scm (let-optional, let-optional*, let-keywords)
      (let-keywords*): Implement in terms of parse-lambda-case, so all the
      logic is in one place.
      (lambda*): Re-export from the default environment -- it's all in the
      VM now :-))
      (define*, define*-public, defmacro*, defmacro*-public): Implement with
      syntax-case.

commit df1cd5e59b38a7ecdb2184d7f0fed3f803969541
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 23 15:50:53 2009 +0200

    lambda* in psyntax
    
    * module/ice-9/psyntax.scm (build-lambda-case): Take an "inits" arg.
      Also work around a nasty memoizer bug: see
      http://article.gmane.org/gmane.lisp.guile.devel/9561.
      (lambda*): Implement in psyntax, in the default environment. Exciting
      stuff!
    
    * module/ice-9/psyntax-pp.scm: Regenerated.
    
    * module/ice-9/optargs.scm (parse-lambda-case): Helper for lambda* when
      we're running under the interpreter.

commit b0c8c187d96a7a4c7905465f4156eeb7e5bfc51e
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 23 15:51:00 2009 +0200

    separate "inits" field in <lambda-case>; compile fixes for inits, kwargs
    
    * module/language/tree-il.scm (<lambda-case>): Add "inits" field, so we
      don't have to parse it out of opt and kw. Adapt the traversal
      procedures.
    * module/language/tree-il/analyze.scm (analyze-lexicals): Analyze
      lexicals in the <lambda-case> init expressions as well. Fix keyword
      allocation.
    
    * module/language/tree-il/compile-glil.scm (compile-glil): Adapt to
      make-lambda-case change.
      (flatten): Adapt to "inits" slot, actually init uninitialized args,
      and fix bugs related to keyword arguments.
    
    * module/language/tree-il/inline.scm (inline!): Adapt a little bit --
      but with no effect.
    
    * module/language/glil/compile-assembly.scm (glil->assembly): Flesh out
      <glil-kw-prelude> compilation some more. Add a "bound?" op for
      <glil-lexical>, which will push #t if the local is bound.
    
    * module/ice-9/psyntax.scm (build-simple-lambda, build-lambda-case):
      Update for new signature of make-lambda-case.
    * module/ice-9/psyntax-pp.scm: Regenerated.
    
    * module/language/brainfuck/compile-tree-il.scm (compile-body):
    * module/language/ecmascript/compile-tree-il.scm (comp):
    * test-suite/tests/tree-il.test ("lambda"): Update for new lambda-case
      syntax.

commit 7ab42fa20cd997ce6ccb4f3f59bb400e04d2d666
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 23 15:47:08 2009 +0200

    add some optargs tests
    
    * libguile/modules.c (scm_module_lookup, scm_lookup): Throw to
      'unbound-variable, like eval.i.c does.
    
    * test-suite/tests/optargs.test: Add an optargs test. Run optargs tests
      under both the VM and the interpreter.

commit 3092a14d6758bd002113ffe4bc51e4c6930c4ce5
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 23 15:44:22 2009 +0200

    vm support for optional/kwarg init code, and bugfixes
    
    * libguile/vm-i-system.c (local-bound?, long-local-bound?)
      (variable-bound?): New instructions, push #f unless the local is
      bound. You can get unbound locals from optional arguments.
      (bind-optionals/shuffle): A number of bugfixes.
      (bind-kwargs): Bugfixes. If we enocunter an improper kwarg list but
      the procedure has a rest argument, just stop kwarg processing, but
      without an error.
      Renumbered ops.
    
    * libguile/_scm.h (SCM_OBJCODE_MAJOR_VERSION): Bump.

commit 899d37a6cf2e5f5a6822b8451cda95f53c007608
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 19 22:13:08 2009 +0200

    more work towards compiling and interpreting keyword args
    
    * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bumparoo
    * libguile/vm-i-system.c (push-rest, bind-rest): Logically there are
      actually two rest binders -- one that pops, conses, and pushes, and
      one that pops, conses, and local-sets. The latter is used on keyword
      arguments, because the keyword arguments themselves have been shuffled
      up on the stack. Renumber ops again.
    
    * module/language/tree-il/compile-glil.scm (flatten): Attempt to handle
      compilation of lambda-case with keyword arguments. Might need some
      help.
    
    * module/ice-9/psyntax.scm (build-lambda-case): An attempt to handle the
      interpreted case correctly. This might need a couple iterations, but
      at least it looks like the compile-glil code.
    
    * module/ice-9/psyntax-pp.scm: Regenerated.
    
    * module/language/glil.scm (<glil>): Rename "rest?" to "rest" in
      <glil-opt-prelude> and <glil-kw-prelude>, as it is no longer a simple
      boolean, but if true is an integer: the index of the local variable to
      which the rest should be bound.
    
    * module/language/glil/compile-assembly.scm (glil->assembly): Adapt to
      "rest" vs "rest?". In the keyword case, use "bind-rest" instead of
      "push-rest".
    
    * test-suite/tests/tree-il.test: Update for opt-prelude change.

commit 7e01997e88c54216678271de36b1c2088377492d
Author: Andy Wingo <address@hidden>
Date:   Sat Oct 17 17:23:09 2009 +0200

    finish support for optional & keyword args; update ecmascript compiler
    
    * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump.
    * libguile/vm-i-system.c (br-if-nargs-ne, br-if-args-lt)
      (br-if-nargs-gt): New instructions, for use by different lambda cases.
      (bind-optionals, bind-optionals/shuffle, bind-kwargs): New
      instructions, for binding optional and keyword arguments. Renumber
      other ops.
    
    * module/language/ecmascript/compile-tree-il.scm (comp, comp-body):
      Update for new tree-il. Use the new optional argument mechanism
      instead of emulating it with rest arguments.
    
    * module/language/glil/compile-assembly.scm (glil->assembly): Tweaks for
      optional and keyword argument compilation.
    
    * module/language/tree-il.scm (parse-tree-il, unparse-tree-il): Make the
      else case optional, in the s-expression serialization of tree-il.
    
    * module/language/tree-il/compile-glil.scm (flatten): Handle all of the
      lambda-case capabilities.

commit 8753fd537c4eadf7495f4ba867def99e77246dfc
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 16 17:56:39 2009 +0200

    fix brainfuck for new tree-il, and add tests
    
    * test-suite/Makefile.am:
    * test-suite/tests/brainfuck.test: Add a brainfuck test.
    
    * module/system/base/compile.scm: Also export read-and-compile.
    
    * module/language/tree-il/spec.scm (join): Fix the joiner in the
      0-expression case.
    
    * module/language/tree-il/primitives.scm (+): Recognize (+ x -1) as 1-.
    
    * module/language/brainfuck/parse.scm (read-brainfuck): Return EOF if we
      actually received EOF, and there were no expressions read.
    
    * module/language/brainfuck/compile-tree-il.scm (compile-body): Fix the
      compiler for the new format of "lambda" in tree-il.

commit 8a4ca0ea3bd3e378fc63ef719ce828b7252b3985
Author: Andy Wingo <address@hidden>
Date:   Wed Oct 14 00:08:35 2009 +0200

    tree-il support for case-lambda
    
    * module/language/tree-il.scm (<lambda>, <lambda-case>): Split lambda
      into the lambda itself, denoting the procedure, and lambda-case,
      denoting a particular arity case. Lambda-case is fairly featureful,
      and has not yet been fully tested.
      (<let-values>): Use a <lambda-case> as the binding expression. Seems
      to suit the purpose well.
      Adapt parsers, unparsers, traversal operators, etc. Sometimes in this
      first version we assume there are no optional args, rest args, or a
      predicate.
    
    * module/language/tree-il/analyze.scm (analyze-lexicals): Adapt for the
      new case-lambda regime. Fairly well commented. It actually simplifies
      things.
      (report-unused-variables): Update for new tree-il.
    
    * module/language/tree-il/compile-glil.scm: Adapt for the new tree-il.
      There are some first stabs here at proper case-lambda compilation, but
      they are untested as of yet.
    
    * module/language/tree-il/inline.scm (inline!): Rework so we can
      recurse on a single node; though these transformations are strictly
      reductive, so they should complete in bounded time. Simplify
      accordingly, and adapt to case-lambda. Oh, and we handle lambda->let
      in not just the nullary case.
    
    * module/ice-9/psyntax.scm (build-simple-lambda, build-case-lambda)
      (build-lambda-case): New constructors. The idea is that after syntax
      expansion, we shouldn't have to deal with improper lists any more.
      Build-simple-lambda is a shortcut for the common case. The others are
      not fully exercised yet. Adapt callers.
      (syntax): Add some debugging in the lambda case. I don't fully
      understand this, but in practice we don't seem to see rest args here.
      (lambda): Inline chi-lambda-clause, and adapt for build-simple-lambda.
    * module/ice-9/psyntax-pp.scm: Regenerated.
    
    * test-suite/tests/tree-il.test: Update tests for new tree-il lambda
      format, and to expect post-prelude labels for all glil programs.

commit c783b0827c5e5485209879b6cd329a7f095ecf9c
Author: Andy Wingo <address@hidden>
Date:   Tue Oct 13 23:58:36 2009 +0200

    procedure property efficiency tweak
    
    * libguile/procprop.c (scm_procedure_property)
      scm_set_procedure_property_x): Fix to not call
      scm_procedure_properties(), and thus to avoid consing up the arity as
      well.

commit 258344b4db4b9dab1979bbef53606c0cd34b4095
Author: Andy Wingo <address@hidden>
Date:   Tue Oct 13 23:55:58 2009 +0200

    flesh out glil support for optional and keyword arguments
    
    * libguile/vm-i-system.c (bind-rest): Renamed from push-rest-list.
      (reserve-locals): Change so that instead of reserving space for some
      additional number of locals, reserve-locals takes the absolute number
      of locals, including the arguments.
    
    * module/language/glil.scm (<glil-std-prelude>, <glil-opt-prelude>)
      (<glil-kw-prelude>): New GLIL constructs, to replace <glil-arity>.
    
    * module/language/glil/compile-assembly.scm (glil->assembly): Compile
      the new preludes. Some instructions are not yet implemented, though.
    
    * module/language/tree-il/analyze.scm (analyze-lexicals): The nlocs for
      a lambda will now be the total number of locals, including arguments.
    
    * module/language/tree-il/compile-glil.scm (flatten-lambda): Update to
      write the new prelude.
    
    * module/system/vm/program.scm (program-bindings-for-ip): If a given
      index doesn't have a binding at the ip given, don't cons it on the
      resulting list.
    
    * test-suite/tests/tree-il.test: Update for GLIL changes.

commit 56164a5a6c45a4fba065be2cc9a2539ef5cd2b71
Author: Andy Wingo <address@hidden>
Date:   Tue Oct 13 23:45:22 2009 +0200

    de-nargs struct scm_objcode; procedure-property refactor
    
    * libguile/objcodes.h (struct scm_objcode): Remove nargs, nrest, and
      nlocs, as they are no longer needed. Also obviates the need for a
      padding word.
    
    * libguile/procs.c (scm_thunk_p): Use scm_i_program_arity for programs.
    
    * libguile/procprop.c (scm_i_procedure_arity): Use scm_i_program_arity
      for programs.
      (scm_procedure_properties, scm_set_procedure_properties_x)
      (scm_procedure_property, scm_set_procedure_property_x): Rework so that
      non-closure properties are stored directly in a weak hash, instead of
      needing a weak hash of "stand-in" closures to hold the properties. Fix
      docstrings also.
    
    * libguile/root.h (scm_stand_in_procs): Remove from the scm_sys_protects
      set. Actually with libGC, we should be able to store the elements of
      scm_sys_protects directly as global variables.
    * libguile/gc.c (scm_init_storage): Remove scm_stand_in_procs
      initialization.
    
    * libguile/programs.c (scm_i_program_arity): New private accessor, tries
      to determine the "minimum arity" of a program.
    
    * libguile/vm.c (really_make_boot_program): Adapt to changes in
      struct scm_objcode.
    
    * module/language/assembly.scm (*program-header-len*, byte-length):
    * module/language/assembly/compile-bytecode.scm (write-bytecode):
    * module/language/assembly/decompile-bytecode.scm (decode-load-program):
    * module/language/assembly/disassemble.scm (disassemble-load-program):
      Adapt to changes in objcode.
    
    * module/system/xref.scm (program-callee-rev-vars): Adapt to changes in
      assembly.
    
    * module/language/glil.scm: Remove nargs, nrest, and nlocs from
      glil-program.
    
    * module/language/glil/compile-assembly.scm (make-meta, glil->assembly):
    * module/language/glil/decompile-assembly.scm (decompile-toplevel):
      (decompile-load-program): Adapt to changes in GLIL and assembly.
    
    * module/language/tree-il/compile-glil.scm (flatten-lambda): Adapt to
      changes in GLIL.
    
    * test-suite/tests/asm-to-bytecode.test: Adapt to assembly and bytecode
      changes.
    * test-suite/tests/tree-il.test: Adapt to GLIL changes.

commit a6f15a1eba208c92df5640001390277d641909b8
Author: Andy Wingo <address@hidden>
Date:   Sun Sep 27 20:25:39 2009 -0400

    callees now check their args, cons rest list, reserve locals
    
    * gdbinit: Ignore SIGPWR and SIGXCPU, which the BDW GC seems to use.
    
    * libguile/vm-engine.h (FETCH_WIDTH): Remove unused macro.
      (INIT_ARGS, INIT_FRAME): Remove; callees now check their args and
      reserve space for their locals.
    
    * libguile/vm-engine.c:
    * libguile/vm-i-system.c: Turn on callee arg checking and local
      reservation. Seems to work!

commit 55d9bc947ef529157c5598e097eba23179b94987
Author: Andy Wingo <address@hidden>
Date:   Sun Sep 27 19:50:06 2009 -0400

    callees reserve their own local vars
    
    * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump.
    * libguile/vm-i-system.c (reserve-locals): New instruction, to reserve
      space for local vars. Other ops renumbered.
    
    * module/language/tree-il/compile-glil.scm (flatten-lambda): Emit
      reserve-locals instructions as necessary.
    
    * test-suite/tests/tree-il.test: Update to expect reserve-locals as
      appropriate.

commit 6c6a44390b841d716042e845bf4133fbf987cc9f
Author: Andy Wingo <address@hidden>
Date:   Sun Sep 27 19:25:58 2009 -0400

    runtime and debugging support for callee-parsed procedure args
    
    * libguile/objcodes.h: Bump for metadata format change.
    
    * libguile/frames.h: Rework so we don't frob the program's nargs, nlocs,
      etc at runtime. Instead we don't really know what's a local var, an
      argument, or an intermediate value. It's a little unfortunate, but
      this will allow for case-lambda, and eventually for good polymorphic
      generic dispatch; and the nlocs etc can be heuristically
      reconstructed. Such a reconstruction would be better done at the
      Scheme level, though.
      (SCM_FRAME_STACK_ADDRESS): New macro, the pointer to the base of the
      stack elements (not counting the program).
      (SCM_FRAME_UPPER_ADDRESS): Repurpose to be the address of the last
      element in the bookkeeping part of the stack -- i.e. to point to the
      return address.
    
    * libguile/vm-engine.h:
    * libguile/vm-i-system.c: Adapt to removal of stack_base. Though we
      still detect stack-smashing underflow, we don't do so as precisely as
      we did before, because now we only detect overwriting of the frame
      metadata.
    
    * libguile/vm-engine.c (vm_engine): Remove the stack_base variable. It
      is unnecessary, and difficult to keep track of in the face of
      case-lambda. Also fix miscommented "ra" and "mvra" pushes. Push the
      vp->ip as the first ra...
    * libguile/vm-i-system.c (halt): ...because here we can restore the
      vp->ip instead of setting ip to 0. Allows us to introspect ips all
      down the stack, including in recursive VM invocations.
    
    * libguile/frames.h:
    * libguile/frames.c (scm_vm_frame_stack): Removed, because it's getting
      more difficult to tell what's an argument and what's a temporary stack
      element.
      (scm_vm_frame_num_locals): New accessor.
      (scm_vm_frame_instruction_pointer): New accessor.
      (scm_vm_frame_arguments): Defer to an implementation in Scheme.
      (scm_vm_frame_num_locals scm_vm_frame_local_ref)
      (scm_vm_frame_local_set_x): Since we can get not-yet-active frames on
      the stack now, with our current calling convention, we have to add a
      heuristic here to jump over those frames -- because frames have
      pointers in them, not Scheme values.
    
    * libguile/programs.h:
    * libguile/programs.c (scm_program_arity): Remove, in favor of..
      (scm_program_arities): ...this, which a list of arities, in a new
      format, occupying a slot in the metadata.
    
    * module/language/assembly/decompile-bytecode.scm (decode-load-program):
      Fix mv-call decompilation.
    
    * module/system/vm/frame.scm (vm-frame-bindings, vm-frame-binding-ref)
      (vm-frame-binding-set!): New functions, to access bindings by name in
      a frame.
      (vm-frame-arguments): Function now implemented in Scheme. Commented
      fairly extensively.
    
    * module/system/vm/program.scm (program-bindings-by-index)
      (program-bindings-for-ip): New accessors, parsing the program bindings
      metadata into something more useful.
      (program-arities, program-arguments): In a case-lambda world, we have
      to assume that programs can have multiple arities. But it's tough to
      detect this algorithmically; instead we're going to require that the
      program metadata include information about the arities, and the parts
      of the program that that metadata applies to.
      (program-lambda-list): New accessor.
      (write-program): Show multiple arities.
    
    * module/language/glil/compile-assembly.scm (glil->assembly): Add
      "arities" to the state of the compiler, and add arities entries as
      appropriate.

commit 1e2a8c266d720a5dca97a96e5cde860a9d934ad6
Author: Andy Wingo <address@hidden>
Date:   Sun Sep 27 18:16:56 2009 -0400

    steps on the way to have the callee check the number of arguments
    
    * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump.
    
    * libguile/vm-i-system.c (assert-nargs-ee, assert-nargs-ge)
      (push-rest-list): New instructions, which for now don't actually do
      anything. Renumber the rest of the ops in this file.
    
    * module/language/glil.scm (<glil-arity>): New GLIL type, an entity that
      checks the number of args for a block, optionally consing a rest list,
      and either branching or erroring if the arity doesn't match.
    
    * module/language/glil/compile-assembly.scm (glil->assembly): Compile
      <glil-arity> to assembly. Some of these VM ops are not implemented --
      notably the branching case.
    
    * module/language/tree-il/compile-glil.scm (flatten-lambda): Emit
      <glil-arity>.
    
    * test-suite/tests/tree-il.test: Update.

commit 04c68c039194f33d5bd7e8b1f21eba7c8bd6adbe
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 22 22:58:03 2009 +0200

    Compile Guile modules with `-Wunbound-variable'.
    
    * am/guilec (.scm.go): Compile with `-Wunbound-variable'.

commit 84012ef4b1188770d8087ad82289dbdc27a3adfb
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 22 22:42:45 2009 +0200

    Fix typos leading to unbound variable references.
    
    * module/ice-9/session.scm (help): Fix unbound reference to `env'.
    
    * module/system/vm/program.scm (program-property): Fix typo.
    
    * module/system/vm/frame.scm: Add missing `#:use-module (system vm
      objcode)'.
    
    * module/system/repl/command.scm (guile:load): New.
      (load): Use either `primitive-load' or `load'.
    
    * module/srfi/srfi-18.scm (thread-sleep!): Fix typo.
    
    * module/srfi/srfi-19.scm: Use `(ice-9 rdelim)'.
      (date->broken-down-time, priv:year-day, priv:char->int): Fix typo.
      (time-*->time-*, time-*->time-*!): Fix reference to unbound variable
      `caller'.
    
    * module/oop/goops.scm (bound-check-get): Fix typo.
    
    * module/language/glil/compile-assembly.scm (glil->assembly): Fix typo.
    
    * module/language/glil.scm (parse-glil): Fix typo.
    
    * module/language/ecmascript/base.scm (object->value/string,
      object->value/number, ->number): Fix typos.
    
    * module/language/assembly/disassemble.scm (disassemble-free-vars): Fix
      typo.

commit 6bb891dc6137885182f86aa147dba428e1149a63
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 22 22:33:53 2009 +0200

    Adjust `unbound-variable' GOOPS heuristic for `goops.scm'.
    
    * module/language/tree-il/analyze.scm (goops-toplevel-definition): Add
      ENV argument.  Deal with GOOPS macros expanded within `goops.scm'.
      (report-possibly-unbound-variables): Adjust.

commit 3c365b8efcee9e953b0cad8085ca14f4b0d5d7d5
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 22 22:29:22 2009 +0200

    Fix bytecode disassembler.
    
    * module/language/assembly/decompile-bytecode.scm (decode-load-program):
      Add missing argument to `ensure-label'.

commit 9c2224f2a616bc4fb3fca7947d65c44c6c66ffdf
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 22 19:05:59 2009 +0200

    SRFI-88: Call `read-set!' at compile time and run time.
    
    * module/srfi/srfi-88.scm: Call `read-set!' both at compile time and run
      time.

commit b70f43e318b60f00776fae5580914f31937ec0d8
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 22 00:51:53 2009 +0200

    Remove obsolete `save-stack' case.
    
    * module/ice-9/boot-9.scm (save-stack): Remove obsolete `tk-stack' case.

commit b6d2306d4011909d02c655124f08aaf990a0c07d
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 22 00:37:36 2009 +0200

    Have `-Wunbound-variable' account for GOOPS top-level definitions.
    
    * module/language/tree-il/analyze.scm (goops-toplevel-definition): New
      procedure.
      (report-possibly-unbound-variables): Check for GOOPS top-level
      definitions.
    
    * test-suite/tests/tree-il.test ("warnings")["GOOPS definitions are
      visible"]: New test.

commit 60c8ad9ea3e84c4957d978afc6c311b490e8e5b2
Author: Ludovic Courtès <address@hidden>
Date:   Wed Oct 21 23:41:56 2009 +0200

    Add a `guile-2' SRFI-0 feature.
    
    * doc/ref/srfi-modules.texi (SRFI-0): Mention the `guile-2' feature.
    
    * module/ice-9/boot-9.scm (%cond-expand-features): Add `guile-2'.

commit d587c9e8b27219e68f8813fb648fc6913c93be0f
Author: Ludovic Courtès <address@hidden>
Date:   Tue Oct 20 00:10:18 2009 +0200

    Use proper types for hash/assoc functions in `hashtab.h'.
    
    Partly fixes bug #23681 ("Function declarators with empty parentheses
    should not be used").
    
    * libguile/goops.c (scm_wrap_component): Cast `scm_sloppy_assq'.
    
    * libguile/hashtab.c (scm_hash_fn_get_handle): Update to take functions
      of type `scm_t_hash_fn' and `scm_t_assoc_fn'.  Update callers.
      (scm_ihashx): Change to match `scm_t_hash_fn'.
      (scm_sloppy_assx): Change to match `scm_t_assoc_fn'.
    
    * libguile/hashtab.h (scm_t_hash_fn, scm_t_assoc_fn): New types.
      (scm_t_hashtable)[hash_fn]: Change to `scm_t_hash_fn'.
      (scm_i_rehash, scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
      scm_hash_fn_ref, scm_hash_fn_set_x, scm_hash_fn_remove_x): Change to
      take `scm_t_hash_fn' and `scm_t_assoc_fn' parameters.
    
    * libguile/srcprop.h (scm_whash_get_handle, scm_whash_create_handle,
      scm_whash_lookup): Implement in terms of `scm_hashq_*' instead of
      `scm_hash_fn_*'.
    
    * libguile/struct.c (scm_struct_ihashq): Change to match
      `scm_t_hash_fn'.
      (scm_struct_create_handle): Cast `scm_sloppy_assq'.
    
    * libguile/struct.h (scm_struct_ihashq): Update, make internal.

commit 416c9fb363a2b2f31382c5a488c6e27c31a3b62f
Author: Julian Graham <address@hidden>
Date:   Sun Oct 18 17:56:13 2009 -0400

    Fix typo in psyntax.scm related to syntax-violation reporting.
    
    * module/ice-9/psyntax.scm (chi-macro): Replace `s' with `(wrap-subst w)'.
    
    Signed-off-by: Ludovic Courtès <address@hidden>

commit 620c89651ae54f8f35c3d0926f8c2c36c3fdd174
Author: Ludovic Courtès <address@hidden>
Date:   Mon Oct 19 22:38:34 2009 +0200

    Add support for R6RS/SRFI-30 nested block comments.
    
    Suggested by Andreas Rottmann <address@hidden>.
    
    * libguile/read.c (flush_ws, scm_read_sharp): Add support for
      R6RS/SRFI-30 block comments.
      (scm_read_r6rs_block_comment): New function.
    
    * test-suite/tests/reader.test (exception:unterminated-block-comment):
      Adjust to match both block comment styles.
      ("reading")["R6RS/SRFI-30 block comment", "R6RS/SRFI-30 nested block
      comment", "R6RS/SRFI-30 block comment syntax overridden"]: New tests.
      ("exceptions")["R6RS/SRFI-30 unterminated nested block comment"]: New
      test.
    
    * doc/ref/api-evaluation.texi (Block Comments): Mention SRFI-30/R6RS
      block comments.
    
    * doc/ref/srfi-modules.texi (SRFI-30): New node.

commit cbeb479c6e4da67ef37efa2548713fd6eadc71f3
Author: Andy Wingo <address@hidden>
Date:   Sun Sep 27 15:57:06 2009 -0400

    comment fixups to tree-il/compile-glil.scm
    
    * module/language/tree-il/compile-glil.scm: Remove some outdated
      comments.

commit 97fcf583b7239ea17dbb73eae9438d21136eb2db
Author: Andy Wingo <address@hidden>
Date:   Thu Sep 17 14:58:31 2009 +0200

    jumps encoded using 24 bits, not 19; blocks no longer aligned
    
    * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump.
    * libguile/vm-i-system.c (FETCH_OFFSET, BR): Labels are no longer 8-byte
      aligned; instead, jumps are encoded into 3 bytes instead of 2.
      (br, br-if, br-if-not, br-if-eq, br-if-not-eq, br-if-null)
      (br-if-not-null, mv-call): Adapt for new length of br instructions (3
      bytes instead of 2).
    
    * libguile/vm.c (really_make_boot_program): Adapt hand-coded bytecode
      for new offset regime.
    
    * module/language/assembly.scm (align-block): No alignment necessary.
    
    * module/language/assembly/compile-bytecode.scm (write-bytecode): Write
      out breaks as 24-bit relative jumps.
    * module/language/assembly/decompile-bytecode.scm (decode-load-program):
      Decompile break instructions.

commit f95f82f8e183f2744740bdc950dba9c856e09094
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 16 15:27:10 2009 +0200

    compilation enviroments are always modules; simplifications & refactorings
    
    * module/ice-9/boot-9.scm (make-fresh-user-module): New public function,
      makes an anonymous beautified module.
    
    * module/language/objcode/spec.scm: We used to have some things in here
      that allowed lexical variable names and values to be a part of the
      environment, but no more. Now an environment is just a module. If you
      want to "inject" free variables into code, just use lambda.
    
    * module/language/scheme/compile-tree-il.scm (compile-tree-il): Same
      here. Also, rely on the fact that an environment *will* be a module --
      because (system base compile) guarantees that for us.
    
    * module/language/scheme/spec.scm (scheme): In the reader, rely on the
      environment being a module. Define a #:make-default-environment
      handler, which returns a beautified module, augmented with a fresh
      definition for current-reader, so that side effects to current-reader
      are restricted to the compilation unit.
    
    * module/language/tree-il/analyze.scm
      (report-possibly-unbound-variables):
    * module/language/tree-il/compile-glil.scm (compile-glil):
    * module/language/tree-il/optimize.scm (optimize!): The environment will
      be a module.
    
    * module/system/base/language.scm (<language>): New field,
      `make-default-environment'. Defaults to `make-fresh-user-module'.
      (default-environment): New accessor, returns a default environment for
      a language.
    
    * module/system/repl/common.scm (repl-compile): Always compile relative
      to the current module, because a module is always acceptable as an
      environment.
    
    * module/system/base/compile.scm (compile-file, compile-and-load): Both
      of these have a new keyword argument, #:env. For `compile-file', it
      defaults to the default environment of the source language, and for
      `compile-and-load', to the current module.
      (read-and-compile): If there are no expressions read, pass the joiner
      its default environment (via `default-environment joint').

commit 40867c9776de71b0a822e15234711f5259df76aa
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 16 14:04:42 2009 +0200

    no more *compilation-environment* fluid
    
    * module/system/base/compile.scm (current-compilation-environment):
      Remove, as the only thing that needed it (language readers) now get
      the environment as an argument.
      (read-and-compile, compile): Rework for no *compilation-environment*,
      and default the environment using the define* mechanism.
    
    * module/language/tree-il/analyze.scm (env-module): Hack around the lack
      of a current compilation module. Will fix this in the next commit so
      that the environment is always valid.

commit 4b2afc625816ee1f159cdecb8d1316d9958401f7
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 16 13:39:24 2009 +0200

    language-readers receive environment as an arg
    
    * module/language/assembly/spec.scm:
    * module/language/brainfuck/spec.scm:
    * module/language/bytecode/spec.scm:
    * module/language/ecmascript/spec.scm:
    * module/language/glil/spec.scm:
    * module/language/scheme/spec.scm:
    * module/language/tree-il/spec.scm: Language-readers now take two
      arguments: the port and the environment. This should allow for
      compile-environment-specific reader behavior.
    
    * module/system/base/compile.scm (read-and-compile):
    * module/system/repl/common.scm (repl-read): Pass the environment to the
      language-reader.
    
    * module/system/repl/repl.scm (meta-reader, prompting-meta-read):
    * module/system/repl/command.scm (define-meta-command): Use the second
      argument to repl-reader, so we avoid frobbing current-reader.

commit a58b7fbb7eb80bdbc0af9aee86a5ac12b9cfeef3
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 16 13:30:52 2009 +0200

    repl-reader accepts optional "read" argument
    
    * module/ice-9/boot-9.scm (repl-reader): Accept an optional second
      argument, the reader to use. If it is given, use it instead of
      dereferencing the current-reader fluid.
    
    * guile-readline/ice-9/readline.scm (activate-readline): Make our
      replacement definition of repl-reader compatible with boot-9.

commit 27c8177fe424fcf65a2c1cf3245b13382a2d22d9
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 16 12:19:43 2009 +0200

    remove GHIL, Elisp, and R5RS languages
    
    GHIL is obsolete, and it's about time we got rid of it. Elisp and R5RS
    were unmodified since their import from Guile-VM, so we ditch them too.
    
    R5RS compilation is supported via compiling Scheme within an R5RS
    environment.
    
    Elisp will be supported when we merge in Daniel's work.

commit b0fae4ecaa9f602f3183c35eb945c8050e1f3b68
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 16 11:59:30 2009 +0200

    bitvector tweaks
    
    * libguile/arrays.c (scm_from_contiguous_typed_array):
    * libguile/bytevectors.c (scm_uniform_array_to_bytevector): Error if the
      uniform element size is more than 8 bits, but not divisible by 8 --
      because our math could overflow in that case.
    
    * module/ice-9/deprecated.scm (#\y): Indeed, #* is the valid bitvector
      syntax :)

commit 96e15df109ccfdcc2f6b2cffc0b64a083f000903
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 23:52:00 2009 +0200

    Improve TLS detection for systems with compiler support but no libc support.
    
    * acinclude.m4 (GUILE_THREAD_LOCAL_STORAGE): Use `AC_LINK_IFELSE'
      instead of `AC_COMPILE_IFELSE'.

commit d94dcf59c684c3cf52c148ebd3867b0e98b6faa0
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 23:31:57 2009 +0200

    Bump version number for 1.9.4.
    
    * GUILE-VERSION (GUILE_MICRO_VERSION): Increment.

commit cd48c32cf4c1f627e9f9eeb8f7e077e0a414eab8
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 23:29:50 2009 +0200

    Fix compilation of literal bitvectors.
    
    * libguile/arrays.c (scm_from_contiguous_typed_array): Fix BYTE_LEN
      sanity check for bitvectors.
    
    * test-suite/tests/unif.test ("syntax")["bitvector is self-evaluating"]:
      New test.
    
    * module/ice-9/deprecated.scm (#\y): Fix deprecation comment: `#*' is
      not a read syntax.

commit 29553c54b597880d329013c6b4b435e2949a9872
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 23:24:19 2009 +0200

    Fix segfault for `(uniform-array->bytevector (bitvector))'.
    
    * libguile/bytevectors.c (scm_uniform_array_to_bytevector): Fix BYTE_LEN
      computation for bitvectors.
    
    * test-suite/tests/bytevectors.test ("uniform-array->bytevector"): New
      test prefix.

commit 0f3eacf74c634a3c40aa2f4abefe4d0e7d69f1bf
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 21:55:54 2009 +0200

    Fix `gitlog-to-changelog' on NixOS.

commit 1ebe6a63686b341b55848b0dc0532e7b0d665c15
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 21:29:42 2009 +0200

    Document the interaction of the "compilee" with the compiler's current 
module.
    
    This is a followup to 87c595c757b7db84ffdcfda96f736ab235e674a8 ("Compile
    in a fresh module by default.") and
    f65e2b1ec5ae1962e57322ac3085ab4d44025694 ("Honor and confine
    expansion-time side-effects to `current-reader'.").
    
    * doc/ref/api-evaluation.texi (Loading): Explain how to change
      `current-reader' in a compiler-friendly way.
    
    * doc/ref/compiler.texi (The Scheme Compiler): Explain use of a fresh
      compilation module and separate `current-reader' fluid.
    
    * test-suite/tests/compiler.test ("current-reader")["with eval-when"]:
      New test.

commit 30e73c7698daa038a3fce2135781166d1edfa4e0
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 20:51:16 2009 +0200

    Fix REPL environment for languages other than scheme.
    
    * module/system/repl/common.scm (repl-compile): Use `#:env #f' for
      languages other than scheme.

commit 3245c0fbefa2f119918e42cc1691fb9a41feb792
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 15 17:39:34 2009 +0200

    signedness fix fix fix
    
    * libguile/inline.h: Fix signedness fix fix.

commit 1ab3976ef742f01c1e21c92d72277debcd88b2ee
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 15 15:48:14 2009 +0200

    `load' autocompiles -- in the current module.
    
    * module/ice-9/boot-9.scm (load): Pull `autocompiled-file-name' inside
      `load', and make it autocompile in the current module. Should fix
      Julian's issue noted in
      http://article.gmane.org/gmane.lisp.guile.devel/9483.

commit b0217d17046a013763d418f19043a1889fd81a2c
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 15 15:45:03 2009 +0200

    update NEWS for 1.9.4

commit 6d7c440288a65b9eccc65d2b27261c0b3625d1e9
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 15 15:44:45 2009 +0200

    fix scm_array_handle_ref signedness fix
    
    * libguile/inline.h: Fix signedness fix.

commit 10fab724492cac9e2aaf0ae456e84a85e01ada3d
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 15 15:05:36 2009 +0200

    add back support for #y bitvector read syntax
    
    * module/ice-9/deprecated.scm (#\y): Add deprecated support for
      #y(1 0 1 ...) bitvectors.

commit e7acfa88bc26e7c22b1053e2c807cd4b737cfb63
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 01:32:36 2009 +0200

    Use pointer-less memory for `scm_gc_strdup ()'.
    
    * libguile/gc-malloc.c (scm_gc_strndup): Use `GC_MALLOC_ATOMIC ()'
      instead of `GC_MALLOC ()'.

commit 31ab99de563027fe2bceb60bbd712407fcaf868e
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 01:05:32 2009 +0200

    Restore signature of `scm_primitive_load_path ()' as found in 1.8.
    
    The incompatibility was introduced by
    0fb81f95b0222c5ba49efd3e36cf797df54c0863 ("add exception_on_error
    optional arg to primitive-load-path").
    
    * libguile/load.c (scm_primitive_load_path): Change to take 1 rest
      argument.  Interpret the argument as either a file name (C-level
      backward compatibility with 1.8) or an actual argument list.
      (scm_c_primitive_load_path): Update caller.
    
    * libguile/load.h (scm_primitive_load_path): Update accordingly.
    
    * doc/ref/api-evaluation.texi (Loading): Update documentation of
      `primitive-load-path' and `scm_primitive_load_path ()'.

commit 682d78d05e567a46b1c443c5f852c575ab529f5a
Author: Ludovic Courtès <address@hidden>
Date:   Thu Oct 15 00:56:56 2009 +0200

    Use GC-managed memory for port->encoding.
    
    * libguile/ports.c (scm_new_port_table_entry): Use `scm_gc_strdup ()'
      instead of `strdup ()' for `entry->encoding'.
      (scm_i_set_port_encoding_x): Likewise.  Remove free(3) call.
      (scm_i_remove_port): Don't explicitly free memory.
      (scm_unget_byte): Remove outdated and misleading comment.

commit c72b0ca3b076837a8a2b444fa7ab6d8c16b0b0c4
Author: Ludovic Courtès <address@hidden>
Date:   Wed Oct 14 23:20:54 2009 +0200

    Fix signed/unsigned mismatch in `scm_array_handle_{ref,set} ()'.
    
    * libguile/inline.h (scm_array_handle_ref, scm_array_handle_set): Cast
      `h->base' so that it matches the signedness of `p'.

commit 5ebc8b81411ed261d66b9137e737cb9efe0e5aa8
Author: Ken Raeburn <address@hidden>
Date:   Tue Oct 13 11:45:34 2009 -0400

    Flush output before forking, to make test output consistent and avoid
    duplication.
    
    * test-suite/tests/socket.test: Before calling primitive-fork, call
      force-output on the current output and error ports.

commit 28af5ee5eccb7797b73ad1caf88183e95eef0a28
Author: Andy Wingo <address@hidden>
Date:   Tue Oct 13 11:31:02 2009 +0200

    add $libir to the ltdl path, not $pkglibdir; add extensionsdir
    
    * libguile/Makefile.am (libpath.h): Fix SCM_LIB_DIR to point to the
      libdir, not pkglibdir. Add SCM_EXTENSIONS_DIR, for a dir to put in the
      dynamic-link search path that's not managed by ldconfig or the like;
      and put this dir in the "extensionsdir" key of %guile-build-info.
    
    * libguile/dynl.c (sysdep_dynl_init): Rename the installed-libdir
      environment var to GUILE_SYSTEM_EXTENSIONS_PATH (from
      GUILE_SYSTEM_LTDL_PATH). Also add SCM_EXTENSIONS_DIR to the ltdl
      search path in the default case.
    * meta/uninstalled-env.in: Adapt override to match.
    
    * meta/guile-2.0.pc.in: Add extensionsdir, so you can pkg-config
      --variable=extensionsdir guile-2.0.

commit d71db1f9a984b8bbd5879bd09a98ac2444ea7eb2
Author: Michael Gran <address@hidden>
Date:   Mon Oct 12 06:55:25 2009 -0700

    Modify regexp.test to work better with mac/darwin
    
    * test-suite/tests/regexp.test (set-latin-1): also add .ISO8859-1 as a
      possible extension for latin-1 locales.  Use set-latin-1 exclusively
      to set the locale for tests.

commit 03d80c0327de6e38dec6c3c64759e4011ed890a5
Author: Michael Gran <address@hidden>
Date:   Fri Oct 9 07:06:14 2009 -0700

    Revert changes that gather thread-specific local language
    
    The method used was not portable.  However, the underlying problem
    still exists: the uc_locale_language used by libunistring does not
    work with thread-specific locale_t locales.
    
    * libguile/i18n.c (locale_language): avoid unpacking semi-opaque type
      locale_t.
    
    * test-suite/tests/i18n.test: set Turkish string and char locale upcase
      and downcase tests to throw untested

commit 3d1af79fece43fa40665c5dae53afba048827d47
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 9 14:42:07 2009 +0200

    Adjust to match changes in libgc's CVS (pre-7.2).
    
    In libgc CVS the `GC_do_blocking ()' declaration is now public but it
    uses a slightly different signature for its first argument.
    
    * configure.ac: Check for `GC_fn_type'.
    
    * libguile/threads.c (GC_fn_type)[HAVE_GC_DO_BLOCKING &&
      !HAVE_GC_FN_TYPE]: New typedef.
      (scm_without_guile): Explicitly cast `without_guile_trampoline' to
      `GC_fn_type'.  This is because the upstream definition currently
      looks like `typedef void * (extern *GC_fn_type)(void *);', which
      isn't compatible.

commit 705edb959b3093cb1cbe1390110d96ee833b63fc
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 2 16:32:34 2009 +0200

    Use TLS when available for `SCM_I_CURRENT_THREAD'.
    
    * acinclude.m4 (GUILE_THREAD_LOCAL_STORAGE): New macro.
    
    * configure.ac: Use it.
    
    * libguile/__scm.h (SCM_THREAD_LOCAL): New macro.
    
    * libguile/gen-scmconfig.c (main): Define `SCM_HAVE_THREAD_STORAGE_CLASS'.
    
    * libguile/gen-scmconfig.h.in (SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS):
      New.
    
    * libguile/threads.c
      (scm_i_current_thread)[SCM_HAVE_THREAD_STORAGE_CLASS]: New.
      (SET_CURRENT_THREAD): New macro.
      (guilify_self_1, on_thread_exit, init_thread_key): Use it.
    
    * libguile/threads.h
      (scm_i_current_thread)[SCM_HAVE_THREAD_STORAGE_CLASS]: New
      declaration.
      (SCM_I_CURRENT_THREAD)[SCM_HAVE_THREAD_STORAGE_CLASS]: New macro.
      (init_thread_key_once, init_thread_key): Conditionalize on
      `!defined SCM_HAVE_THREAD_STORAGE_CLASS'.
      (scm_i_init_thread_for_guile): Update accordingly.

commit 46935a1fac58e50276f7e7e49e5fa6bab53c0848
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 2 15:28:29 2009 +0200

    Arrange so that `SCM_I_CURRENT_THREAD' is not accessed outside of libguile.
    
    * libguile/__scm.h (scm_async_tick): New declaration.
      (SCM_ASYNC_TICK)[!BUILDING_LIBGUILE]: Use `scm_async_tick ()'.
    
    * libguile/async.c (scm_critical_section_start,
      scm_critical_section_end, scm_async_tick): New functions.
    
    * libguile/async.h (scm_i_critical_section_mutex): Made internal.
      (scm_critical_section_start, scm_critical_section_end): New
      declarations.
      (SCM_CRITICAL_SECTION_START,
      SCM_CRITICAL_SECTION_END)[!BUILDING_LIBGUILE]: Use the same-named
      function (lower-case).
    
    * libguile/stackchk.h (SCM_STACK_OVERFLOW_P): Conditionalize on
      `BUILDING_LIBGUILE'.
    
    * libguile/threads.h (SCM_I_CURRENT_THREAD, scm_i_dynwinds,
      scm_i_set_dynwinds, scm_i_last_debug_frame,
      scm_i_set_last_debug_frame): Conditionalize on `BUILDING_LIBGUILE'.

commit b8ec9daba60ceb14b443d3a44ab5043edcb474df
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 2 15:02:52 2009 +0200

    Deprecate `scm_mask_ints'.
    
    * libguile/async.h (scm_mask_ints): Remove.
    
    * libguile/deprecated.c (scm_i_mask_ints): New.
    
    * libguile/deprecated.h (scm_mask_ints): New macro.
      (scm_i_mask_ints): New declaration.

commit 98241dc53fc66ec86c01b9eeea426def2f787cec
Author: Neil Jerram <address@hidden>
Date:   Wed Oct 7 22:14:38 2009 +0100

    Revert "Change dynwind flag enums to #defines, for greater portability"
    
    This reverts commit b25aa0b9373d2798469e0fe999cd915e8beedc4f.

commit 61aab1c3755a97390fc8e365fbd4a6b1a4f80978
Author: Ludovic Courtès <address@hidden>
Date:   Tue Oct 6 23:40:30 2009 +0200

    Fix typo in `scm_array_p_2 ()'.
    
    * libguile/generalized-arrays.c (scm_array_p_2)[FUNC_NAME]: Fix.

commit f67ddf9dbfec851676806a2f3dff7eae539ac499
Author: Ludovic Courtès <address@hidden>
Date:   Tue Oct 6 23:39:56 2009 +0200

    Add compiler warning for possibly unbound variables.
    
    * module/language/tree-il/analyze.scm (<toplevel-info>): New record
      type.
      (env-module, report-possibly-unbound-variables): New procedures.
    
    * module/language/tree-il/compile-glil.scm (%warning-passes): Add
      `unbound-variable'.
    
    * module/system/base/message.scm (%warning-types): Likewise.
    
    * test-suite/tests/tree-il.test (read-and-compile, %opts-w-unbound):
      New.
      ("warnings")["unbound variable"]: New test prefix.

commit 43eb8acadae88d4b56d0e54fd0870a025bd5259c
Author: Ludovic Courtès <address@hidden>
Date:   Tue Oct 6 23:36:53 2009 +0200

    tree-il: Pass the environment to warning passes.
    
    * module/language/tree-il/analyze.scm (report-unused-variables): Taken a
      new parameter, ENV.
    
    * module/language/tree-il/compile-glil.scm (compile-glil): Pass E to
      individual warning passes.

commit b25aa0b9373d2798469e0fe999cd915e8beedc4f
Author: Neil Jerram <address@hidden>
Date:   Fri Oct 2 22:18:52 2009 +0100

    Change dynwind flag enums to #defines, for greater portability
    
    Thanks to Inge Gutheil for raising this problem.
    
    * doc/ref/api-control.texi (Dynamic Wind): Remove doc for
      scm_t_dynwind_flags, and change uses of scm_t_dynwind_flags to int.
      Mention possible flags inside doc for scm_dynwind_begin instead.
      Similarly for scm_t_wind_flags.  In this case the doc on possible
      flags is moved to after the four functions that can use them.
    
    * libguile/dynwind.c (scm_dynwind_begin): Change scm_t_dynwind_flags
      to int.
      (scm_dynwind_unwind_handler): Change scm_t_wind_flags to int.
      (scm_dynwind_rewind_handler): Ditto.
      (scm_dynwind_unwind_handler_with_scm): Ditto.
      (scm_dynwind_rewind_handler_with_scm): Ditto.
    
    * libguile/dynwind.h (SCM_F_DYNWIND_REWINDABLE): Use #define instead
      of typedef enum.
      (SCM_F_WIND_EXPLICITLY): Ditto.
      (function declarations): Change scm_t_dynwind_flags and
      scm_t_wind_flags to int.
    
    * test-suite/standalone/test-unwind.c (check_cont_body): Change
      scm_t_dynwind_flags to int.

commit 0eb934f1f0e4d607a13cb918f062054556e9694b
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 2 14:48:22 2009 +0200

    Use `SCM_DEPRECATED' in declarations of deprecated functions/variables.
    
    * libguile/deprecated.c (SCM_BUILDING_DEPRECATED_CODE): New macro.
    
    * libguile/async.c (SCM_BUILDING_DEPRECATED_CODE): Likewise.
    
    * libguile/macros.c (SCM_BUILDING_DEPRECATED_CODE): Likewise.
    
    * libguile/async.h, libguile/deprecated.h, libguile/eval.h,
      libguile/gc.h, libguile/gc.h, libguile/macros.h, libguile/ports.h,
      libguile/srfi-4.h, libguile/strings.h: Change declarations of
      deprecated functions and variables to use `SCM_DEPRECATED' instead of
      `SCM_API'.

commit 743b8872907996e717b4bfef360b25122e80d637
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 2 14:34:51 2009 +0200

    Add `SCM_DEPRECATED' macro to declare deprecated C functions/variables.
    
    * libguile/__scm.h (SCM_DEPRECATED): New macro.

commit 5b2f2c75527c5899648eec46c7eca0f57420ff3b
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 2 10:26:30 2009 +0200

    Fix the argument list of gsubr stack frames.
    
    This fixes a bug introduced in e20d7001c3f7150400169fecb0bf0eefdf122fe2
    and reported by Neil.
    
    * libguile/eval.i.c (CEVAL)[DEVAL]: Don't duplicate ARG1 in
      `debug.info->a.args' for gsubr stack frames.
      (scm_apply): Likewise.
    
    * test-suite/tests/eval.test ("stacks")["arguments of a gsubr stack
      frame"]: New test.

commit 187a43907f75265b504116aa1e96b40d57f4aa88
Author: Neil Jerram <address@hidden>
Date:   Thu Oct 1 23:38:57 2009 +0100

    Fix doc for inet-ntop: always produces a string
    
    Thanks to Scott McPeak for reporting this.
    
    * libguile/socket.c (scm_inet_ntop): In docstring, add quotes around
      IPv6 address (+ reflow a bit).
    
    * doc/ref/posix.texi (Network Address Conversion): Corresponding
      change.
    
    * doc/maint/guile.texi: Corresponding change.

commit 1ff4da6570d17b7ce5b74b926e8f9f2c99757896
Author: Neil Jerram <address@hidden>
Date:   Thu Oct 1 23:27:59 2009 +0100

    Fix handling of IPv6 addresses
    
    Thanks to Scott McPeak for reporting this and providing a patch.
    
    * libguile/socket.c (scm_to_ipv6): When address is the wrong type,
      provide more information in the exception message.
    
      (scm_to_sockaddr): scm_to_ipv6 expects just an address, not the
      whole vector.
    
    * test-suite/tests/socket.test ("AF_INET6/SOCK_STREAM"): New set of
      tests.

commit 32bc92570eb9282e46c1b851cc65cae946547ea9
Author: Neil Jerram <address@hidden>
Date:   Thu Oct 1 22:27:07 2009 +0100

    Fix incorrect doc mentions of INADDR_LOCALHOST
    
    Thanks to Scott McPeak for reporting this.
    
    * doc/ref/posix.texi (Network Sockets and Communication): Change
      INADDR_LOCALHOST to INADDR_LOOPBACK.

commit 48dc491dbe0640dcbd1afed59940a16da48218b0
Author: Neil Jerram <address@hidden>
Date:   Thu Oct 1 21:56:49 2009 +0100

    Add define-module to signals.test
    
    * test-suite/tests/signals.test (test-suite): Add define-module form.

commit 899a7e398f41eba457811a1f41a46f7d556d1222
Author: Neil Jerram <address@hidden>
Date:   Thu Oct 1 21:54:49 2009 +0100

    Change signals.test to LGPLv3+
    
    * test-suite/tests/signals.test: Update licence statement.

commit 99cd95d39ffa1bb732f7cdef320ac0e849c8a9df
Author: Neil Jerram <address@hidden>
Date:   Wed Sep 30 23:06:02 2009 +0100

    Remove unused environments code and tests
    
    * libguile/environments.c, libguile/environments.h,
      test-suite/tests/environments.nottest: Deleted.

commit 87f30eda98b9c84807d54af6c76b6195c5cbd009
Author: Neil Jerram <address@hidden>
Date:   Tue Mar 10 23:55:31 2009 +0000

    Fix spurious `throw from within critical section' errors
    
    The crux of this problem was that the thread doing a throw, and so
    checking scm_i_critical_section_level, was different from the thread
    that was in a critical section.
    
    * libguile/async.h (scm_i_critical_section_level): Removed, replaced
      by per-thread critical_section_level.
      (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END): Use
      per-thread critical_section_level.
    
    * libguile/continuations.c (scm_dynthrow): Check per-thread
      critical_section_level.
    
    * libguile/threads.c (guilify_self_1): Init per-thread
      critical_section_level.
      (scm_i_critical_section_level): Removed.
    
    * libguile/threads.h (scm_i_thread): New critical_section_level field.
    
    * libguile/throw.c (scm_ithrow): Check per-thread critical_section_level.

commit 09d978f3f81d7ae43ba952de8dc568f54f5f80b6
Author: Neil Jerram <address@hidden>
Date:   Thu Mar 5 20:03:33 2009 +0000

    Avoid throw from critical section, given invalid sigaction call
    
    * libguile/scmsigs.c (scm_sigaction_for_thread): Exit critical section
      before raising out-of-range error.
    
    * test-suite/Makefile.am (SCM_TESTS): Add signals.test.
    
    * test-suite/tests/signals.test: New file.

commit 43b03fbbdc8d3eddc04daa1a14c5e2eae3ee5a1f
Author: Ludovic Courtès <address@hidden>
Date:   Mon Sep 28 23:27:53 2009 +0200

    Make `weaks.test' slightly more robust.
    
    * test-suite/tests/weaks.test (global-weak): Use `string-copy' on all
      the keys, in case one of them is retained in `scm_source_whash' or
      similar.

commit e0f651351140983ff6a14a4e9aa4a950a9f2d59d
Author: Ludovic Courtès <address@hidden>
Date:   Mon Sep 28 23:21:47 2009 +0200

    Improve description of `scm_set_smob_mark ()'.
    
    * doc/ref/api-smobs.texi (Smobs): Improve description of
      `scm_set_smob_mark ()'.  Mention malloc(3) regions.

commit 8cf0dd6104c58f68e0f0ecdf0ab28a033754acf1
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 25 13:45:16 2009 +0200

    Remove unneeded SMOB/port mark/free procedures.
    
    * libguile/arrays.c (array_mark, array_free): Remove.
      (scm_init_arrays): Adjust accordingly.
    
    * libguile/bitvectors.c (bitvector_free): Remove.
      (scm_c_make_bitvector): Use `scm_gc_malloc_pointerless ()'.
      (scm_init_bitvectors): Adjust accordingly.
    
    * libguile/strports.c (scm_make_stptob): Remove `scm_set_port_mark ()'
      call.
    
    * libguile/vports.c (scm_make_sfptob): Likewise.

commit 3051344be566178999dd8679744e9c3ae9921de4
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 25 12:29:02 2009 +0200

    Remove default port/SMOB finalizers.
    
    * libguile/ports.c (scm_port_free0): Remove.
      (scm_make_port_type): Set `free' to NULL.
    
    * libguile/smob.c (scm_make_smob_type): Leave `free' to NULL.
      (scm_smob_free): Remove.
    
    * libguile/smob.h (scm_smob_free): Remove.
    
    * libguile/deprecated.c (scm_smob_free): New.
    
    * libguile/deprecated.h (scm_smob_free): New declaration.

commit a16eda7a400bcfda52109ed839f4fb2e24fa72eb
Author: Neil Jerram <address@hidden>
Date:   Sat Sep 26 00:51:50 2009 +0100

    Clean meta/guile-config
    
    * meta/Makefile.am (CLEANFILES): New, containing guile-config.

commit b217a822aded0f83a4fdec519c3e29c802ba8275
Author: Neil Jerram <address@hidden>
Date:   Fri Sep 25 22:45:17 2009 +0100

    Don't include guile-config and guile-tools in distribution
    
    They need to be regenerated, with the correct prefix, when configure
    and make run.
    
    * meta/Makefile.am (EXTRA_DIST): Remove bin_SCRIPTS.

commit f60e892819b91dbd0f352cc22a9e1feee70216c6
Author: Neil Jerram <address@hidden>
Date:   Fri Sep 25 20:18:34 2009 +0100

    Fix make distcheck by looking for guile-config in $(srcdir)
    
    make distcheck is currently failing for me with:
    
    In file included from /usr/local/include/libguile/threads.h:35,
                     from /usr/local/include/libguile/async.h:28,
                     from /usr/local/include/libguile.h:37,
                     from ../../examples/box/box.c:22:
    /usr/local/include/libguile/pthread-threads.h:33:31: error: 
libguile/boehm-gc.h: No such file or directory
    In file included from /usr/local/include/libguile.h:93,
                     from ../../examples/box/box.c:22:
    
    - which is because it's picking up a load of installed headers,
    instead of those in the _inst tree
    
    - which is because there is no output from the preceding guile-config
    invocation:
    
    PATH=/home/neil/SW/Guile/ovnight/guile-master-20090924/_inst/bin:$PATH 
PKG_CONFIG_PATH=/home/neil/SW/Guile/ovnight/guile-master-20090924/_inst/lib/pkgconfig
 /home/neil/SW/Guile/ovnight/guile-master-20090924/_inst/bin/guile-config 
compile
    
    - which is because .../_inst/bin/guile-config is empty
    
    - which is because the rule in meta/Makefile.am that generates
    guile-config is missing $(srcdir), and so doesn't find
    guile-config.in.
    
    * meta/Makefile.am (guile-config): Look for guile-config.in in
      $(srcdir).

commit b8fc11d28731e13a5aa08863dfc36cc79fda4923
Author: Michael Gran <address@hidden>
Date:   Fri Sep 25 07:47:56 2009 -0700

    Missing free in nl-langinfo
    
    This is a regression.
    
    * libguile/i18n.c (scm_nl_langinfo): free c_result

commit 52642040e21d79e788dc818f1e7e763ea502e5eb
Author: Michael Gran <address@hidden>
Date:   Fri Sep 25 07:27:11 2009 -0700

    Fix encoding of strings returned by nl-langinfo
    
    Strings returned by nl-langinfo were always being encoded using the
    global setlocale and not the scm_t_locale passed to the function.
    
    * libguile/i18n.c (scm_nl_langinfo): fix encoding of strings

commit aafb5062b834dc468fa2acdec7eda12e389c5bca
Author: Michael Gran <address@hidden>
Date:   Thu Sep 24 08:07:38 2009 -0700

    Language-specific case-conversion doesn't honor locale
    
    Libunistring uses a function uc_locale_language to extract the
    current language from the locale information.  It does this by calling
    setlocale.  This makes incompatible with Guile functions that use the
    locale_t thread-specific locale API, because the values returned by the
    call to setlocale ignore the locale set by uselocale.
    
    As a workaround, this patch extracts the language from the locale_t
    structure's __names field.
    
    A more complete solution is needed.  Perhaps that solution would test
    that the __names field exists in the configure step and revert to
    !USE_GNU_LOCALE_API in that case.
    
    * libguile/i18n.c (locale_language): new function that performs the
      same job as uc_locale_language but is compatible with uselocale
      (u32_locale_casecoll, u32_locale_tocase): replace uc_locale_language
      with locale_language

commit bcccf04158bda5319776d45abd6cc748b794096b
Author: Michael Gran <address@hidden>
Date:   Thu Sep 24 08:10:03 2009 -0700

    Tests for locale-specific case conversion
    
    * test-suite/tests/i18n.test: add tests for case conversion of Turkish
      letters 'i' to verify that the language is being honored.

commit 2c48e4d5b7c5f33f8ddc2ce9c381c9f51ce7b579
Author: Michael Gran <address@hidden>
Date:   Thu Sep 24 07:50:49 2009 -0700

    Try to adjust i18n for strict aliasing
    
    * libguile/i18n.c (u32_locale_tocase, scm_char_locale_downcase)
      (scm_char_locale_upcase, scm_string_locale_downcase)
      (scm_string_locale_upcase): use the scm_t_uint32 type for buffers
      that are used primarily for libunistring and not for Guile strings.

commit 76e8a7588c7cdbdfe96be81366fe9ef43960423f
Author: Ludovic Courtès <address@hidden>
Date:   Thu Sep 24 00:04:37 2009 +0200

    Move "-z relro" out of $LDFLAGS so it's not in `guile-2.0.pc'.
    
    * acinclude.m4 (GUILE_GNU_LD_RELRO): Substitute `GNU_LD_FLAGS'.
    
    * libguile/Makefile.am (libguile_la_LDFLAGS): Add $(GNU_LD_FLAGS).
    
    * srfi/Makefile.am (AM_LDFLAGS): New.

commit 297273e422ac2b382f6e289b9df5cf9c28b39fa6
Author: Ludovic Courtès <address@hidden>
Date:   Wed Sep 23 22:45:07 2009 +0200

    Have `guile-config' close over `pkg-config' and $(pkgconfigdir).
    
    * meta/Makefile.am (guile-config): New target.
      (EXTRA_DIST): Add `guile-config.in'.
    
    * meta/guile-config.in: New, formerly `guile-config'.  Use the right
      installed `guile', with the right $PKG_CONFIG_PATH.  Disable
      auto-compilation.
      (%pkg-config-program): New variable.
      (pkg-config): Use it.

commit d773ba231ce0c8d2c16a50d3449c74c60e0b4921
Author: Ludovic Courtès <address@hidden>
Date:   Wed Sep 23 22:13:09 2009 +0200

    Partially revert e5f5113c21f396705d7479a570c96690135c9d36.
    
    The intent is to maintain the readability of `pmatch' invocations.
    
    * module/language/assembly/disassemble.scm (disassemble-load-program):
      Don't use wildcards in `pmatch' invocations, even when the matched
      elements are unused.
    
    * module/language/glil/decompile-assembly.scm (decompile-toplevel,
      decompile-load-program): Likewise.
    
    * module/system/xref.scm (program-callee-rev-vars): Likewise.
    
    * module/language/assembly.scm (byte-length): Likewise.
    
    * module/language/tree-il/compile-glil.scm (flatten): Likewise.

commit ec370c6ffb560a718280e906c193dcc912923059
Author: Ludovic Courtès <address@hidden>
Date:   Wed Sep 23 22:04:55 2009 +0200

    Reinstate backward-compatible `scm_array_p ()'.
    
    * libguile/generalized-arrays.c (scm_array_p_2): New, formerly
      `scm_array_p ()'.
      (scm_array_p): Add second argument, for compatibility with 1.8 and
      earlier and to match what the doc says and what `SCM_VALIDATE_ARRAY'
      expects.
    
    * libguile/generalized-arrays.h (scm_array_p_2): New.
      (scm_array_p): Adjust.

commit 27f3413eb8f505b8cab8850ea2f35139ea5707d2
Author: Michael Gran <address@hidden>
Date:   Tue Sep 22 21:08:29 2009 -0700

    Modify char and string locale upcase and downcase for Unicode
    
    * libguile/i18n.c (u32_locale_tocase): new helper function
      (scm_char_locale_downcase, scm_char_locale_upcase): add capability
      for UCS-4 characters.
      (scm_string_locale_downcase, scm_string_locale_upcase): modify for
      the new scheme strings.

commit 871d85438d9dba6296c4a714d2707fb8a74b665e
Author: Neil Jerram <address@hidden>
Date:   Tue Sep 22 01:03:43 2009 +0100

    Manual link from `Guile Initialization' to `Initialization'
    
    Thanks to Dale Smith for suggesting this.
    
    * doc/ref/libguile-linking.texi: Add ref to full doc of Guile
      initialisation functions.

commit 5904704335cbc3ced042892f8a02d6916b3507e6
Author: Neil Jerram <address@hidden>
Date:   Tue Sep 22 00:30:44 2009 +0100

    Changes so that benchmark-guile runs successfully
    
    * benchmark-suite/benchmarks/bytevectors.bm: Add "coding: latin1"
      comment where Guile will find it.
    
    * benchmark-suite/benchmarks/chars.bm: Ditto.
    
    * benchmark-suite/benchmarks/srfi-13.bm: Ditto.
    
    * benchmark-suite/benchmarks/read.bm ("read"): Divide numbers of
      iterations by 10, so that the benchmarks complete within a few
      minutes.
    
    * benchmark-suite/lib.scm (benchmark): Use `run-benchmark' in macro
      definition, not `,run-benchmark'.
    
    * benchmark-suite/benchmarks/0-reference.bm,
      benchmark-suite/benchmarks/continuations.bm,
      benchmark-suite/benchmarks/if.bm,
      benchmark-suite/benchmarks/logand.bm: Add define-module.
    
    * benchmark-suite/results/neil-arudy: New file, containing benchmark
      results from my computer.

commit e8e655e21bc315a9522b66dd6de1dc76d928ccd5
Author: Neil Jerram <address@hidden>
Date:   Tue Sep 22 00:00:59 2009 +0100

    GDS usability: operation without a mouse
    
    Derek Peschel provided this patch and described it as follows.
    
    "Most of the time I use Terminal in OS X, rather than xterm.  I also don't
    bother with the GUI versions of Emacs.  So unfortunately I have no mouse
    support in Emacs.  Also the system I'm testing Guile on thinks my terminal
    doesn't support color and I haven't fixed it yet.  The attached patch makes
    GDS more usable for me.
    
    "With no mouse, the "[click here to show error stack]" design is very
    inconvenient.  You added a C-M (return) binding at some point.  I copied
    that, but I also changed the message to show it.  And I made the return
    work when the cursor is after the right bracket."
    
    * emacs/gds-scheme.el (gds-display-results): Make "click here" message
      more helpful for people without mice.  Also extend text properties
      so that a RET key press works at the end of that line.

commit b77afe82a4205bca706a853d7a62aea4ea9b7eed
Author: Neil Jerram <address@hidden>
Date:   Sat Sep 19 01:23:09 2009 +0100

    Typo fixes

commit 4330956d3907b1fa795a35568560f222df94a4c7
Author: Neil Jerram <address@hidden>
Date:   Sat Sep 19 01:20:31 2009 +0100

    Fix GDB in Emacs incantation

commit 5fc424379f360ef1be2e388ec9af3e72f8b65240
Author: Michael Gran <address@hidden>
Date:   Sun Sep 20 20:59:05 2009 -0700

    Tests for record types
    
    * test-suite/tests/records.test: new tests

commit fee95176df1686b9844cd53dc703f0d5a549bb34
Author: Michael Gran <address@hidden>
Date:   Sun Sep 20 20:58:08 2009 -0700

    More tests for strings
    
    * test-suite/tests/vectors.test: test make-vector and interactions between
      strings and vectors
    
    * test-suite/tests/strings.test: test string-null?, string? and backslash
      escapes
    
    * test-suite/tests/srfi-13.test: test null input strings in string-any and
      string-every

commit e5f5113c21f396705d7479a570c96690135c9d36
Author: Ludovic Courtès <address@hidden>
Date:   Mon Sep 21 00:35:19 2009 +0200

    Remove unused variables in system/language.
    
    * module/language/assembly.scm (byte-length): Don't match unused
      record slots.
    
    * module/language/tree-il.scm (tree-il->scheme, post-order!,
      pre-order!): Likewise.
    
    * module/language/tree-il/analyze.scm (analyze-lexicals): Likewise.
    
    * module/language/tree-il/compile-glil.scm (flatten): Likewise.
    
    * module/language/assembly/disassemble.scm (disassemble-load-program):
      Don't match unused list elements.
    
    * module/language/glil/decompile-assembly.scm (decompile-toplevel,
      decompile-load-program): Likewise.
    
    * module/system/xref.scm (program-callee-rev-vars): Likewise.
    
    * module/language/assembly/compile-bytecode.scm
      (write-bytecode)[write-sized-loader]: Remove.
    
    * module/language/assembly/decompile-bytecode.scm (decode-load-program):
      Factorize `pad' variables.
    
    * module/language/ecmascript/base.scm (object->value/string,
      object->value/number)[v]: Remove.
    
    * module/language/ecmascript/tokenize.scm (read-slash)[c0]: Remove.
    
    * module/language/objcode/spec.scm (decompile-value)[nargs]: Remove.
    
    * module/system/repl/command.scm (time)[vms-start, vms-end]: Remove.
    
    * module/system/repl/repl.scm (prompting-meta-read): Use `prompt'.

commit a2ca7252121e968798b0638b758ea99d7bf62409
Author: Ludovic Courtès <address@hidden>
Date:   Mon Sep 21 00:10:28 2009 +0200

    Remove unused variables in ice-9/goops/srfi/scripts.
    
    * module/ice-9/boot-9.scm (scm-style-repl)[-abort]: Remove.
    
    * module/oop/goops.scm (class)[slot-defs]: Remove.
      (compute-slot-accessors)[name]: Remove.
      (compute-get-n-set)[env]: Remove.
    
    * module/oop/goops/active-slot.scm (compute-get-n-set)[env, name]:
      Remove.
    
    * module/oop/goops/dispatch.scm (cache-try-hash!)[max-misses]: Remove.
    
    * module/oop/goops/save.scm (make-mapper)[dims]: Remove.
    
    * module/scripts/autofrisk.scm (>>checks)[prog]: Remove.
    
    * module/srfi/srfi-19.scm (priv:read-directives)[ireaderf, eireader4]:
      Remove.

commit f65e2b1ec5ae1962e57322ac3085ab4d44025694
Author: Ludovic Courtès <address@hidden>
Date:   Mon Aug 17 22:28:54 2009 +0200

    Honor and confine expansion-time side-effects to `current-reader'.
    
    * module/language/scheme/spec.scm (scheme)[#:reader]: Honor the
      compilation environment's `current-reader'.
    
    * module/system/base/compile.scm (*compilation-environment*): New
      fluid.
      (current-compilation-environment): New procedure.
      (make-compilation-module): Provide a fresh `current-reader' fluid.
      (read-and-compile): Set `*compilation-environment*' appropriately.
      (compile): Likewise.
    
    * test-suite/tests/compiler.test (read-and-compile): New.
      ("current-reader"): New test prefix.

commit 60c6a7409501d55405834f12603a21042678ff8f
Author: Ludovic Courtès <address@hidden>
Date:   Sun Sep 20 22:29:28 2009 +0200

    Fix copyright in `(srfi srfi-4 gnu)'.

commit 87c595c757b7db84ffdcfda96f736ab235e674a8
Author: Ludovic Courtès <address@hidden>
Date:   Fri Aug 14 19:30:14 2009 +0200

    Compile in a fresh module by default.
    
    * module/system/base/compile.scm (make-compilation-module,
      language-default-environment): New procedures.
      (read-and-compile, compile): Have ENV default to
      `(language-default-environment from)'.
      (compile-and-load): Compile in `(current-module)'.
    
    * module/system/repl/common.scm (repl-compile): Explicitly compile in
      the current module so that macro definitions are visible.
    
    * libguile/load.c (kw_env): New variable.
      (do_try_autocompile): Call `compile-file' with `#:env (current-module)'.
    
    * test-suite/tests/compiler.test ("psyntax")["compile uses a fresh module by
      default", "compile-time definitions are isolated"]: New tests.
      ["compile in current module"]: Specify `#:env (current-module)'.
      ["redefinition"]: Adjust.
    
    * test-suite/tests/bytevectors.test (c&e): Explicitly compile in the
      current module so that its imports are visible.

commit f5a51caec1bf1900b269da6e07fe466199372970
Author: Andy Wingo <address@hidden>
Date:   Thu Sep 17 13:52:09 2009 +0200

    fix bitvectors after the array handle refactoring
    
    * libguile/uniform.h (scm_array_handle_uniform_element_bit_size): New
      public accessor.
    
    * libguile/uniform.c (scm_array_handle_uniform_element_size): Better
      errors in non-byte-aligned arrays.
      (scm_uniform_vector_element_type, scm_uniform_vector_element_size)
      (scm_c_uniform_vector_ref, scm_c_uniform_vector_set_x):
      (scm_uniform_vector_to_list): Don't require byte-aligned access.
    
    * libguile/bytevectors.c (scm_uniform_array_to_bytevector):
    * libguile/arrays.c (scm_from_contiguous_typed_array):  Fix for
      uniform arrays whose element size is not a multiple of the byte size.

commit c5923112fed7b92ff5f1eeea03c74117b2f75490
Author: Andy Wingo <address@hidden>
Date:   Thu Sep 17 12:24:28 2009 +0200

    fix thinko in api-memory.texi

commit c543e41eb4e1437d3f994b6b8d54540b33145aa7
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 18 12:58:54 2009 +0200

    i18n: Remove non-local exists from `u32_locale_casecoll ()'.
    
    * libguile/i18n.c (u32_locale_casecoll): Add RESULT argument.  Return
      zero or ERRNO.
      (compare_u32_strings_ci): Adjust accordingly.

commit cdf52ff02071055387eaa37e92a3a603abcf0f61
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 18 12:32:09 2009 +0200

    i18n: Always use locale-dependent string collation.
    
    * libguile/i18n.c (compare_u32_strings, compare_u32_strings_ci): Always
      use locale-dependent string collation.
    
    * test-suite/tests/i18n.test: Recoded in UTF-8.
      (%french-utf8-locale-name): New.
      (under-locale-or-unresolved): New.  Don't catch errors on GNU systems.
      (under-french-locale-or-unresolved): Use it.
      (under-french-utf8-locale-or-unresolved): New.
      ("text collation (French)")["string-locale-ci=? (2 args, wide
      strings)", "string-locale-ci=? (3 args, wide strings)",
      "string-locale-ci<>? (wide strings)", "string-locale-ci<>? (wide and
      narrow strings)", "char-locale-ci<>? (wide)"]: New tests.

commit df047aa2b11ccffaa93a523de517fe0c14cecd4c
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 18 12:21:22 2009 +0200

    i18n: Avoid needless heap allocation.
    
    * libguile/i18n.c (SCM_STRING_TO_U32_BUF): Allocate buffers on the stack
      rather on the heap.
      (SCM_U32_BUF_FREE): Remove.  Callers updated.

commit 12f0c3e547810cfe8db669904623a1207b77a67e
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 18 12:15:26 2009 +0200

    i18n: Simplify `RUN_IN_LOCALE_SECTION' (GNU version).
    
    * libguile/i18n.c (RUN_IN_LOCALE_SECTION)[USE_GNU_LOCALE_API]: Remove
      extraneous uselocale(3) call.

commit d7a22073268779fd37a8ef8e69816076f63615d8
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 18 11:40:03 2009 +0200

    Add the `%host-type' global variable.
    
    * configure.ac: Define `HOST_TYPE'.
    
    * libguile/load.c (sys_host_type): New variable.
    
    * doc/ref/api-options.texi (Build Config): Document `%host-type'.

commit 5b87844575ff7e8071d0fd9f10c9212a4f6afd16
Author: Michael Gran <address@hidden>
Date:   Thu Sep 17 08:14:08 2009 -0700

    Adapt i18n string and char comparison funcs for Unicode
    
    * libguile/i18n.c (RUN_IN_LOCALE_SECTION) [USE_GNU_LOCALE_API]: new
      macro for this define.  Should work the same as the !USE_GNU_LOCAL_API
      version
      (SCM_STRING_TO_U32_BUF, SCM_U32_BUF_FREE): helper macros
      (compare_u32_strings, compare_u32_strings_ci): new functions that
      compare scheme strings in the presence of the locale
      (u32_locale_casecoll): new helper function for compare_u32_strings_ci
      (compare_strings, compare_strings_ci): removed and replaced by
      compare_u32_strings and compare_u32_strings_ci
      (scm_string_locale_lt, scm_string_locale_gt, scm_string_locale_ci_lt)
      (scm_string_locale_ci_gt, scm_string_locale_ci_eq): modified to
      use new compare_u32_strings and compare_u32_strings_ci comparison
      functions
      (scm_char_locale_lt, scm_char_locale_gt, scm_char_locale_ci_lt)
      (scm_char_locale_ci_gt, scm_char_locale_ci_eq): modified to use
      new compare_u32_strings and compare_u32_strings_ci comparison
      functions

commit f564f4784f856d0b38008327bc877905e36fc56a
Author: Neil Jerram <address@hidden>
Date:   Thu Sep 17 01:18:14 2009 +0100

    Remove deprecation warnings from the build
    
    * module/srfi/srfi-35.scm: Remove explicit use of (ice-9 syncase).
    
    * test-suite/tests/r5rs_pitfall.test: Same again.
    
    * test-suite/tests/syncase.test: Remove "(ice-9 syncase) loads" test;
      syncase is always loaded now.

commit 93683f9bb16680f66c0784b14ca57bb3b5816ce2
Author: Neil Jerram <address@hidden>
Date:   Thu Sep 17 00:17:58 2009 +0100

    Convenience for running GDB on Guile in Emacs
    
    * meta/gdb-uninstalled-guile.in: Add (in a comment) an elisp form that
      can be evaluated to run GDB on Guile in Emacs.

commit ba20f78a6c91e0535d205f7f5291d860c1bcbc27
Author: Neil Jerram <address@hidden>
Date:   Thu Sep 17 00:14:16 2009 +0100

    Fix omission of VM frames from backtrace
    
    From the time when a #<program> was a SMOB, really_make_boot_program
    in vm.c was still using SCM_SET_SMOB_FLAGS to set the
    SCM_F_PROGRAM_IS_BOOT flag - which meant that it was setting flag
    1<<32 :-) which obviously was then missed by the SCM_PROGRAM_IS_BOOT
    calls in stacks.c.
    
    * libguile/programs.h (SCM_F_PROGRAM_IS_BOOT): Use a less significant
      bit for this flag, now that programs use a tc7 type.
    
    * libguile/vm.c (really_make_boot_program): Don't use
      SCM_SET_SMOB_FLAGS, now that programs aren't SMOBs.

commit 931c82f5b02213c8e9e1cca2b21672b809970e18
Author: Neil Jerram <address@hidden>
Date:   Thu Sep 17 00:05:06 2009 +0100

    Fix incorrect stack count warnings
    
    * libguile/stacks.c (stack_depth): Decrement depth count for a
      macro-expansion frame.  (Missing this decrement will cause a "stack
      count incorrect" warning but is actually benign, as it only means
      that scm_make_stack allocates a bit more space for the stack than it
      really needs.)
    
      (read_frames): Increment count of remaining unused frames, when
      cutting out a macro transformer application frame.  (Missing this
      increment could cause the "stack count incorrect" warning, and could
      make read_frames think it's filled up all the available stack frames
      when there's actually still one frame unused; this wasn't benign,
      because it could cause information to be missing from a stack
      trace.)

commit a29c00447ba91458e35f81c7715c333ff1641018
Author: Neil Jerram <address@hidden>
Date:   Wed Sep 16 23:59:15 2009 +0100

    Remove unhittable else branch for nonexistent type of debug frame
    
    * libguile/stacks.c (stack_depth): Remove unhittable else branch
      apparently catering to a kind of frame that isn't an eval, apply or
      void frame - in fact there are no other kinds of frames.

commit eb350124a85dd4daf39bacbdc50452ef87a33a43
Author: Andy Wingo <address@hidden>
Date:   Wed Sep 16 18:10:19 2009 +0200

    add the libdir to the ltdl lib search path
    
    * libguile/Makefile.am (libpath.h): Fix pkgdatadir, pkglibdir, and
      pkgincludedir entries. Add a new define, SCM_LIB_DIR.
    
    * libguile/dynl.c (sysdep_dynl_init): Add the libdir to the libltdl
      search path. Should fix
      http://thread.gmane.org/gmane.lisp.guile.bugs/4289/focus=4296 -- that
      is, it should allow guile to be invoked from whereever it is
      installed, without munging LTDL_LIBRARY_PATH or the like variables.
    
      There is a trick though -- during the build, we don't want to be
      looking in the $libdir for loadable modules. So as with
      GUILE_SYSTEM_PATH, we have GUILE_SYSTEM_LTDL_PATH.
    
    * meta/uninstalled-env.in: Set GUILE_SYSTEM_LTDL_PATH to "" when
      building.

commit db723980a4b1e4d4d4d665283d1bc0b792c751bf
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 23:54:09 2009 +0200

    Bump version number for 1.9.3.
    
    * GUILE-VERSION (GUILE_MICRO_VERSION): Increment.

commit dddacb233ba4559dcfc4355b33706a32f77e5b64
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 23:48:01 2009 +0200

    Use fixnums for int32 when the native word size of greater than 4 bytes.
    
    This should also fix "condition is always true" warnings.
    
    * libguile/vm-i-scheme.c (bv_u32_native_ref, bv_s32_native_ref,
      bv_u32_native_set, bv_s32_native_set): Conditionalize use of
      `BV_FIXABLE_INT_REF' vs. `BV_INT_REF' based on `SIZEOF_VOID_P'.

commit 238f9a4f72a1537d8be9a21c1140a368a118f85b
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 23:12:39 2009 +0200

    Keep the weak pair API internal.
    
    * libguile/weaks.h (scm_weak_car_pair, scm_weak_cdr_pair,
      scm_doubly_weak_pair): Make them internal.

commit a0faf7ddf9e260916aa1e64cc2ec48ac6925b2d6
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 22:46:55 2009 +0200

    Fix bug #27450 ("Fat mutexes not GC'd until their owner dies").
    
    * libguile/threads.c (do_thread_exit): Deal with `t->mutexes' being a
      weak list.
      (fat_mutex_lock): Use weak-car pairs when building up `t->mutexes'.
    
    * test-suite/tests/threads.test ("mutex-ownership")["mutex with owner
      not retained (bug #27450)"]: New test.

commit aef9e3bd012fdf7b8fe126d89c48eb22019f0ec8
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 22:33:03 2009 +0200

    Fix the (currently unused) weak pair accessors.
    
    * libguile/weaks.h (SCM_WEAK_PAIR_WORD): Fixed; changed to return
      `SCM_UNDEFINED' when the word has been nullified.

commit 0a9a6d142269d54b572d19fb958309be2b5b8818
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 22:31:45 2009 +0200

    "Document" the `set-module-eval-closure!' weak hash table glitch.
    
    * module/ice-9/boot-9.scm (set-module-eval-closure!): Add link to an
      explanation.
    
    * test-suite/tests/gc.test ("gc")["Unused modules are removed"]:
      Increase the `cleanup' loop.

commit 4c0fc0070257cff52d14b340b94d7d05c0ef7260
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 00:40:44 2009 +0200

    Nitpick in `srfi-14.c'.
    
    * libguile/srfi-14.c (scm_i_ucs_range_to_char_set): Fix warning about
      the position of BASE_CS.

commit 8071c4907f895403c1f3a04915b3b34a32881659
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 00:40:00 2009 +0200

    Make the precise stack mark procedure more robust.
    
    * libguile/vm.c (vm_stack_mark): Return if VM is NULL.

commit c058db8a5dd2a9d8ea547236a7d333dfb495bf4a
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 15 00:39:04 2009 +0200

    Use GC-robust queues/lists in `threads.c'.
    
    * libguile/threads.c (remqueue, dequeue, on_thread_exit): Initialize the
      "next" link of the item returned/removed.

commit 706846f66745d5d20909bc5b7c44b566ab0a8f54
Author: Ludovic Courtès <address@hidden>
Date:   Mon Sep 14 23:37:15 2009 +0200

    Remove explicit thread/condvar/mutex finalization.
    
    * libguile/threads.c (fat_mutex_free): Remove explicit `scm_gc_free ()'
      call.
      (fat_cond_free, thread_free): Remove.
      (scm_threads_prehistory): Adjust accordingly.

commit d3a6162490f78e36be2c6c1c5f7319b2266ac7e0
Author: Ludovic Courtès <address@hidden>
Date:   Mon Sep 14 00:41:27 2009 +0200

    Update `NEWS'.

commit 756e8a3acfd52ed391c1f8374d85a8cca0d2bad3
Author: Ludovic Courtès <address@hidden>
Date:   Mon Sep 14 00:40:03 2009 +0200

    Merge `libguile-i18n' into `libguile'.
    
    * GUILE-VERSION (LIBGUILE_I18N_MAJOR, LIBGUILE_I18N_INTERFACE_CURRENT,
      LIBGUILE_I18N_INTERFACE_REVISION, LIBGUILE_I18N_INTERFACE_AGE,
      LIBGUILE_I18N_INTERFACE): Remove.
    
    * doc/ref/api-i18n.texi (i18n Introduction): Don't mention
      `libguile-i18n'.
    
    * libguile.h: Include "libguile/i18n.h".
    
    * libguile/Makefile.am (lib_LTLIBRARIES): Remove `libguile-i18n-v*'.
      (libguile_la_SOURCES): Add `i18n.c'.
      (libguile_i18n_v_*_SOURCES, libguile_i18n_v_*_CFLAGS,
      libguile_i18n_v_*_LIBADD, libguile_i18n_v_*_LDFLAGS): Remove.
    
    * libguile/i18n.c (scm_bootstrap_i18n): New function.
    
    * libguile/i18n.h (scm_nl_langinfo, scm_init_i18n): Made internal.
      (scm_bootstrap_i18n): New declaration.
    
    * libguile/init.c (scm_i_init_guile): Invoke `scm_bootstrap_i18n ()'.
    
    * module/ice-9/i18n.scm: Load from `libguile' instead of
      `libguile-i18n-v-0'.

commit a5229ee822a17caa46400e08bcd37e3d38b19768
Author: Ludovic Courtès <address@hidden>
Date:   Sun Sep 13 16:49:35 2009 +0200

    Switch the `encoding*.test' files to LGPLv3+.
    
    * test-suite/tests/encoding-escapes.test,
      test-suite/tests/encoding-iso88591.test,
      test-suite/tests/encoding-iso88597.test,
      test-suite/tests/encoding-utf8.test: Switch to LGPLv3+ for the sake of
      consistency.

commit d3d6614791099f962aa6462f937d41da2baa6d42
Author: Ludovic Courtès <address@hidden>
Date:   Sun Sep 13 16:22:34 2009 +0200

    Update `scm_without_guile ()' documentation.
    
    * doc/ref/api-scheduling.texi (Blocking): Mention that
      `scm_without_guile ()' & co. aren't needed any longer.

commit 1c44468d771d664d459e22d18884d36dda6908c1
Author: Ludovic Courtès <address@hidden>
Date:   Sun Sep 13 15:59:31 2009 +0200

    Rename "boehm-gc.h" to "bdw-gc.h"; add to the distribution.
    
    * libguile/Makefile.am (modinclude_HEADERS): Add `bdw-gc.h'.
    
    * libguile/bdw-gc.h: Rename from "boehm-gc.h"; users updated.  Update to
      LGPLv3+.

commit b8e18ac25d00e6bf8fee1f534625d4ff5b084f42
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 11 11:42:48 2009 +0200

    Remove unused IA64 macro.
    
    * libguile/threads.c (SCM_MARK_BACKING_STORE): Remove.

commit 7583976b3a408471ce2146bfaa8efab2598f2531
Author: Michael Gran <address@hidden>
Date:   Thu Sep 10 21:30:11 2009 -0700

    More setlocale robustness in regexp tests
    
    * test-suite/tests/regexp.test (mysetlocale, set-latin-1): new functions
      (with-latin1-locale): removed
      (regexp-quote tests): try to print test names in locale but run tests
      in ISO-8859-1.

commit 45f15cac1f7f36c24ad0734fe128483080272e5f
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 11 00:03:03 2009 +0200

    Remove `scm_enter_guile ()' and `scm_leave_guile ()'.
    
    * libguile/threads.c (scm_t_guile_ticket): Remove type.
      (resume, scm_enter_guile, suspend, scm_leave_guile): Remove.
      (scm_i_init_thread_for_guile): Set `t->top' to NULL, which has the
      same effect as calling `scm_enter_guile ()'.
      (scm_leave_guile_cleanup, scm_i_with_guile_and_parent): Remove
      `scm_leave_guile ()' call.

commit 87e003709170c0714ade5cb5a14edeab57558071
Author: Ludovic Courtès <address@hidden>
Date:   Thu Sep 10 23:58:57 2009 +0200

    Add `λ' macro as an alternative to `lambda'.
    
    * module/ice-9/boot-9.scm (λ): New macro.
    
    * NEWS: Update.

commit b7b9328817c0b9d7d4a69c52173ae4ad796be614
Author: Ludovic Courtès <address@hidden>
Date:   Thu Sep 10 19:45:59 2009 +0200

    Report missing libunistring at `configure'-time.
    
    * configure.ac: Reinstate libunistring check from
      1ee2c72eafaae5f91f4c899bc4b4853af5c16f28.

commit 4cf72f0ba67fb2ca412d4e1142c4f5f87d7e5cec
Author: Ludovic Courtès <address@hidden>
Date:   Thu Sep 10 00:21:08 2009 +0200

    Remove unnecessary uses of `scm_{leave,enter}_guile ()'.
    
    * libguile/threads.c (scm_pthread_cond_wait,
      scm_pthread_cond_timedwait): Remove `scm_{leave,enter}_guile ()'
      calls.

commit 9d19a9d61c58053984efa834df2b099efdde1ffc
Author: Ludovic Courtès <address@hidden>
Date:   Thu Feb 12 23:20:15 2009 +0100

    Link with `-z relro' when available.
    
    * acinclude.m4 (GUILE_GNU_LD_RELRO): New macro.
    
    * configure.in: Use `GUILE_GNU_LD_RELRO'.

commit 7b96f3ddfd88f72915afa86eade5c9c91746a59a
Author: Ludovic Courtès <address@hidden>
Date:   Wed Sep 9 23:01:28 2009 +0200

    Update `NEWS'.

commit 6dc797eee9041498eec7053d32d8721c3660fb51
Merge: d66b74dce74c2824726746e82a8a413463cb80fd 
e354d7689aca1f6482bd90a2c367617222052265
Author: Ludovic Courtès <address@hidden>
Date:   Wed Sep 9 22:32:02 2009 +0200

    Merge branch 'master' into boehm-demers-weiser-gc
    
    Conflicts:
        libguile/gc_os_dep.c

-----------------------------------------------------------------------


hooks/post-receive
-- 
GNU Guile




reply via email to

[Prev in Thread] Current Thread [Next in Thread]