guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] GNU Guile branch, master, updated. release_1-9-9-50-gf53


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. release_1-9-9-50-gf5318d8
Date: Tue, 06 Apr 2010 22:24:59 +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=f5318d8b188c6636d1f593bb1d2690ba1b0a42e4

The branch, master has been updated
       via  f5318d8b188c6636d1f593bb1d2690ba1b0a42e4 (commit)
       via  4d75554d0a2ed446c1fd7a75f5b69355c5109bcc (commit)
       via  d53e5a7edb091255c5026d6e194f4885a32e769d (commit)
       via  fb53c347a6794b2b8fd7419269633b1f28e31b25 (commit)
       via  a34a2022c8a1e363faaeef2f0d3fb9c1eb9a6f12 (commit)
      from  b9264dc5f3c2c9341852b898bd3eb8587dbd20f3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f5318d8b188c6636d1f593bb1d2690ba1b0a42e4
Author: Andy Wingo <address@hidden>
Date:   Wed Apr 7 00:26:48 2010 +0200

    update NEWS for 1.9.10
    
    * NEWS: Update for new 1.9.10 entries.

commit 4d75554d0a2ed446c1fd7a75f5b69355c5109bcc
Author: Andy Wingo <address@hidden>
Date:   Wed Apr 7 00:09:53 2010 +0200

    very important fix to (system repl command)
    
    * module/system/repl/command.scm (language): s/Have fun/Happy hacking/.
      Heh.

commit d53e5a7edb091255c5026d6e194f4885a32e769d
Author: Andy Wingo <address@hidden>
Date:   Wed Apr 7 00:05:34 2010 +0200

    deprecated sc-expand in deprecated (ice-9 syncase)
    
    * module/ice-9/syncase.scm: Export sc-expand as macroexpand.

commit fb53c347a6794b2b8fd7419269633b1f28e31b25
Author: Andy Wingo <address@hidden>
Date:   Wed Apr 7 00:01:35 2010 +0200

    Update NEWS to reflect the current state
    
    * NEWS: Update a number of old entries.

commit a34a2022c8a1e363faaeef2f0d3fb9c1eb9a6f12
Author: Andy Wingo <address@hidden>
Date:   Tue Apr 6 23:58:51 2010 +0200

    remove transient 1.9.9 entries from the NEWS
    
    * NEWS: Cull 1.9.9 entries.

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

Summary of changes:
 NEWS                           |  135 +++++++++++++++++++---------------------
 module/ice-9/syncase.scm       |    5 +-
 module/system/repl/command.scm |    2 +-
 3 files changed, 68 insertions(+), 74 deletions(-)

diff --git a/NEWS b/NEWS
index cc06bdb..efa8e1a 100644
--- a/NEWS
+++ b/NEWS
@@ -8,87 +8,85 @@ Please send Guile bug reports to address@hidden
 (During the 1.9 series, we will keep an incremental NEWS for the latest
 prerelease, and a full NEWS corresponding to 1.8 -> 2.0.)
 
-Changes in 1.9.9 (since the 1.9.8 prerelease):
+Changes in 1.9.10 (since the 1.9.9 prerelease):
 
-** Faster dynamic binding with fluids
+** Hygienic macros documented as the primary syntactic extension mechanism.
 
-`fluid-ref' and `fluid-set' now have dedicated bytecode instructions.
-Dynamic binding via `with-fluids' or `with-fluids*' no longer causes
-recursive VM invocations, nor closure allocation of the body. Unused
-fluid numbers are now garbage-collected.
+The macro documentation was finally fleshed out with some documentation
+on `syntax-case' macros, and other parts of the macro expansion process.
+See "Macros" in the manual, for details.
 
-** Incompatible Tree-IL changes
+** Interactive Guile follows GNU conventions
 
-There were a number of incompatible changes made in the last cycle
-regarding Tree-IL, Guile's high-level intermediate language. See the
-change logs for details. If these affected you, clearly you need to
-submit your compiler patches upstream!
+As recommended by the GPL, Guile now shows a brief copyright and
+warranty disclaimer on startup, along with pointers to more information.
+On the other hand, changing languages is more concise.
 
-** Prompts: Delimited, composable continuations
-
-Guile now has prompts as part of its primitive language. See "Prompts"
-in the manual, for more information.
-
-Expressions entered in at the REPL, or from the command line, are
-surrounded by a prompt with the default prompt tag.
-
-** Deprecated: `lazy-catch'
-
-`lazy-catch' was a form that captured the stack at the point of a
-`throw', but the dynamic state at the point of the `catch'. It was a bit
-crazy. Please change to use `catch', possibly with a throw-handler, or
-`with-throw-handler'.
-
-** `catch', `throw', `with-throw-handler' implemented in Scheme
-
-This doesn't have any end-user impact, but we're so proud of being able
-to implement these constructs in terms of prompts and fluids, while not
-changing the user API, that we need to mention it in the NEWS. Thanks
-for reading!
-
-** Current-module tracking in the syntax expander
-
-Expanding a `begin' expression that changed the current module via an
-`eval-when' wasn't working, due to a bug. This was fixed.
-
-** Backtraces at the REPL don't show REPL frames
-
-The 1.9 series has had overly verbose backtraces, which showed frames
-internal to the implementation of the REPL. This has been mostly fixed.
-Please report bugs to address@hidden
-
-** Additions to the foreign function interface (FFI)
+** Support for arbitrary procedure metadata
 
-The `(system foreign)' module now provides additional foreign types
-corresponding to C's `int', `long', `size_t', etc.
+Building on its support for docstrings, Guile now supports multiple
+docstrings, adding them to the tail of a compiled procedure's
+properties. For example:
 
-In addition, the `dynamic-link' procedure can now be called without any
-argument, in which case it returns a "global symbol handle", allowing
-symbols currently available to the program to be looked up.
+  (define (foo)
+    "one"
+    "two"
+    3)
+  (use-modules (system vm program))
+  (program-properties foo)
+  => ((name . foo) (documentation . "one") (documentation . "two"))
+
+Also, vectors of pairs are now treated as additional metadata entries:
+
+  (define (bar)
+    #((quz . #f) (docstring . "xyzzy"))
+    3)
+  (use-modules (system vm program))
+  (program-properties bar)
+  => ((name . bar) (quz . #f) (docstring . "xyzzy"))
+
+This allows arbitrary literals to be embedded as metadata in a compiled
+procedure.
+
+** Better documentation infrastructure for macros
+
+It is now possible to introspect on the type of a macro, e.g.
+syntax-rules, identifier-syntax, etc, and extract information about that
+macro, such as the syntax-rules patterns or the defmacro arguments.
+`(texinfo reflection)' takes advantage of this to give better macro
+documentation.
+
+** Autocompilation for applications that use Guile as an extension language
+
+It used to be that only applications that ran Guile through the
+`scm_shell' function got the advantages of autocompilation. This has
+been changed so that all applications have autocompilation on by
+default.
 
-** Documentation of `syntax-rules' macros
+** Better integration of Lisp nil
 
-The documentation of macros in the manual is now separate from that of
-procedures.  A new section on `syntax-rules' macros has been added.
+`scm_is_boolean', `scm_is_false', and `scm_is_null' all return true now
+for Lisp's `nil'. This shouldn't affect any Scheme code at this point,
+but when we start to integrate more with Emacs, it is possible that we
+break code that assumes that, for example, `(not x)' implies that `x' is
+`eq?' to `#f'. This is not a common assumption. Refactoring affected
+code to rely on properties instead of identities will improve code
+correctness.
 
-** Effective version bump to 2.0
+That is to say, user code should test falsity with `if', not with `eq?'.
 
-Guile has had an "effective version" for some time, typically generated
-as "MAJOR-VERSION.MINOR-VERSION". This release decouples the effective
-version from the actual version, setting it prematurely to 2.0. This
-should shake out any version-related distribution bugs.
+** Integration of lalr-scm, a parser generator
 
-** Parallel installability fixes
+Guile has included Dominique Boucher's fine `lalr-scm' parser generator
+as `(system base lalr)'. See "LALR(1) Parsing" in the manual, for more
+information.
 
-Guile now installs its header files to a effective-version-specific
-directory, and includes the effective version (e.g. 2.0) in the library
-name (e.g. libguile-2.0.so).
+** Documentation for the dynamic foreign function interface (FFI).
 
-This change should be transparent to users, who should detect Guile via
-the guile.m4 macro, or the guile-2.0.pc pkg-config file. It will allow
-parallel installs for multiple versions of Guile development
-environments.
+See "Foreign Function Interface" in the manual, for more information.
 
+** Unicode character set update to Unicode 5.2.
+    
 ** And of course, the usual collection of bugfixes
  
 Interested users should see the ChangeLog for more information.
@@ -105,7 +103,7 @@ Changes in 1.9.x (since the 1.8.x series):
 ** `(rnrs io ports)', a subset of the R6RS I/O port API
 ** `(system xref)', a cross-referencing facility (FIXME undocumented)
 ** `(ice-9 vlist)', lists with constant-time random access; hash lists
-** `(system foreign)', foreign function interface (FIXME: undocumented)
+** `(system foreign)', foreign function interface
 
 ** Imported statprof, SSAX, and texinfo modules from Guile-Lib
     
@@ -253,13 +251,6 @@ will be created if needed.
 To inhibit autocompilation, set the GUILE_AUTO_COMPILE environment
 variable to 0, or pass --no-autocompile on the Guile command line.
 
-Note that there is currently a bug here: automatic compilation will
-sometimes be attempted when it shouldn't.
-
-For example, the old (lang elisp) modules are meant to be interpreted,
-not compiled. This bug will be fixed before 2.0. FIXME 2.0: Should say
-something here about module-transformer called for compile.
-
 ** Files loaded with `load' will now be compiled automatically.
 
 As with files loaded via `primitive-load-path', `load' will also compile
@@ -289,11 +280,6 @@ Scheme binding for the `getaddrinfo' C library function.
 
 ** New procedure in `(oops goops)': `method-formals'
 
-** BUG: (procedure-property func 'arity) does not work on compiled
-   procedures
-
-This will be fixed one way or another before 2.0.
-
 ** New procedures in (ice-9 session): `add-value-help-handler!',
    `remove-value-help-handler!', `add-name-help-handler!'
    `remove-name-help-handler!', `procedure-arguments',
@@ -642,6 +628,11 @@ environment as well: `syntax->datum', `datum->syntax',
 `bound-identifier=?', `free-identifier=?', `generate-temporaries',
 `identifier?', and `syntax-violation'. See the R6RS for documentation.
 
+** Documentation of `syntax-rules' and `syntax-case' macros
+
+The documentation of macros in the manual is now separate from that of
+procedures.  A new section on hygienic macros has been added.
+
 ** Tail patterns in syntax-case
 
 Guile has pulled in some more recent changes from the psyntax portable
diff --git a/module/ice-9/syncase.scm b/module/ice-9/syncase.scm
index 6dac66d..219803e 100644
--- a/module/ice-9/syncase.scm
+++ b/module/ice-9/syncase.scm
@@ -17,13 +17,16 @@
 
 
 (define-module (ice-9 syncase)
-  #:export (datum->syntax-object syntax-object->datum))
+  ;; FIXME re-export other procs
+  #:export (datum->syntax-object syntax-object->datum
+            sc-expand))
 
 (issue-deprecation-warning
  "Syntax-case macros are now a part of Guile core; importing (ice-9 syncase) 
is no longer necessary.")
 
 (define datum->syntax-object datum->syntax)
 (define syntax-object->datum syntax->datum)
+(define sc-expand macroexpand)
 
 ;;; Hack to make syncase macros work in the slib module
 ;; FIXME wingo is this still necessary?
diff --git a/module/system/repl/command.scm b/module/system/repl/command.scm
index e5e77cb..f3b0d1b 100644
--- a/module/system/repl/command.scm
+++ b/module/system/repl/command.scm
@@ -324,7 +324,7 @@ List current bindings."
 Change languages."
   (let ((lang (lookup-language name))
         (cur (repl-language repl)))
-    (format #t "Have fun with ~a!  To switch back, type `,L ~a'.\n"
+    (format #t "Happy hacking with ~a!  To switch back, type `,L ~a'.\n"
             (language-title lang) (language-name cur))
     (set! (repl-language repl) lang)))
 


hooks/post-receive
-- 
GNU Guile




reply via email to

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