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-3-75-g1ab


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. release_1-9-3-75-g1ab3976
Date: Thu, 15 Oct 2009 13:47:47 +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=1ab3976ef742f01c1e21c92d72277debcd88b2ee

The branch, master has been updated
       via  1ab3976ef742f01c1e21c92d72277debcd88b2ee (commit)
       via  b0217d17046a013763d418f19043a1889fd81a2c (commit)
       via  6d7c440288a65b9eccc65d2b27261c0b3625d1e9 (commit)
       via  10fab724492cac9e2aaf0ae456e84a85e01ada3d (commit)
      from  e7acfa88bc26e7c22b1053e2c807cd4b737cfb63 (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 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.

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

Summary of changes:
 NEWS                        |  163 +++++++++++++++++++------------------------
 libguile/inline.h           |    2 +-
 module/ice-9/boot-9.scm     |   64 +++++++++---------
 module/ice-9/deprecated.scm |   17 +++++
 4 files changed, 122 insertions(+), 124 deletions(-)

diff --git a/NEWS b/NEWS
index 66e21de..a9a7adf 100644
--- a/NEWS
+++ b/NEWS
@@ -8,109 +8,63 @@ 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.3 (since the 1.9.2 prerelease):
+Changes in 1.9.4 (since the 1.9.3 prerelease):
 
+** Guile now adds its install prefix to the LTDL_LIBRARY_PATH
 
-** Guile now uses libgc, the Boehm-Demers-Weiser garbage collector
-
-The semantics of `scm_gc_malloc ()' have been changed, in a
-backward-compatible way.  A new allocation routine,
-`scm_gc_malloc_pointerless ()', was added.
-
-Libgc is a conservative GC, which we hope will make interaction with C
-code easier and less error-prone.
-
-** Files loaded with `load' will now be compiled automatically.
-
-As with files loaded via `primitive-load-path', `load' will also compile
-its target if autocompilation is enabled, and a fresh compiled file is
-not found.
-
-There are two points of difference to note, however. First, `load' does
-not search `GUILE_LOAD_COMPILED_PATH' for the file; it only looks in the
-autocompilation directory, normally a subdirectory of ~/.cache/guile.
-
-Secondly, autocompilation also applies to files loaded via the -l
-command-line argument -- so the user may experience a slight slowdown
-the first time they run a Guile script, as the script is autocompiled.
-
-** Support for non-ASCII source code files
-
-The default reader now handles source code files for some of the
-non-ASCII character encodings, such as UTF-8. A non-ASCII source file
-should have an encoding declaration near the top of the file. Also,
-there is a new function, `file-encoding', that scans a port for a coding
-declaration. See the section of the manual entitled, "Character Encoding
-of Source Files".
-
-The pre-1.9.3 reader handled 8-bit clean but otherwise unspecified source
-code.  This use is now discouraged.
-
-** Support for locale transcoding when reading from and writing to ports
-
-Ports now have an associated character encoding, and port read and write
-operations do conversion to and from locales automatically. Ports also
-have an associated strategy for how to deal with locale conversion
-failures.
-
-See the documentation in the manual for the four new support functions,
-`set-port-encoding!', `port-encoding', `set-port-conversion-strategy!',
-and `port-conversion-strategy'.
-
-** String and SRFI-13 functions can operate on Unicode strings
+Users may now install Guile to nonstandard prefixes and just run
+`/path/to/bin/guile', instead of also having to set LTDL_LIBRARY_PATH to
+include `/path/to/lib'.
 
-** Unicode support for SRFI-14 character sets
+** Dynamically loadable extensions may be placed in a Guile-specific path
 
-The default character sets are no longer locale dependent and contain
-characters from the whole Unicode range. There is a new predefined
-character set, `char-set:designated', which contains all assigned
-Unicode characters. There is a new debugging function, `%char-set-dump'.
+Before, Guile only searched the system library paths for extensions
+(e.g. /usr/lib), which meant that the names of Guile extensions had to
+be globally unique. Installing them to a Guile-specific extensions
+directory is cleaner. Use `pkg-config --variable=extensionsdir
+guile-2.0' to get the location of the extensions directory.
 
-** Character functions operate on Unicode characters
+** The programmatic `compile' procedure compiles its expression in a
+   fresh module, by default
 
-`char-upcase' and `char-downcase' use default Unicode casing rules.
-Character comparisons such as `char<?' and `char-ci<?' now sort based on
-Unicode code points.
+This should make the results of `compile' more predictable. Users may
+specify a specific module in which to compile via the `#:env' keyword
+argument to `compile' (and `compile-file').
 
-** Unicode symbol support
+** `compile-file' preserves expansion-time side-effects to `current-reader'
 
-One may now use U+03BB (GREEK SMALL LETTER LAMBDA) as an identifier.
+User modules may now modify the `current-reader' fluid at expansion
+time, usually within an eval-when, and those modifications will remain
+in place when compiling subsequent forms in the file.
 
-** New readline history functions
+See "The Scheme Compiler" in the Guile manual for more details.
 
-The (ice-9 readline) module now provides add-history, read-history,
-write-history and clear-history, which wrap the corresponding GNU
-History library functions.
+** Guile's Emacs integration is now more keyboard-friendly
 
-** Removed deprecated uniform array procedures:
-   dimensions->uniform-array, list->uniform-array, array-prototype
+Backtraces may now be disclosed with the keyboard in addition to the
+mouse.
 
-Instead, use make-typed-array, list->typed-array, or array-type,
-respectively.
+** Compile-time warnings: -Wunbound-variable
 
-** Removed deprecated uniform array procedures: scm_make_uve,
-   scm_array_prototype, scm_list_to_uniform_array,
-   scm_dimensions_to_uniform_array, scm_make_ra, scm_shap2ra, scm_cvref,
-   scm_ra_set_contp, scm_aind, scm_raprin1
+Guile can warn about potentially unbound free variables. Pass the
+-Wunbound-variable on the `guile-tools compile' command line, or add
+`#:warnings '(unbound-variable)' to your `compile' or `compile-file'
+invocation.
 
-These functions have been deprecated since early 2005.
+** Wide character/string support in locale-specific character/string
+   functions
 
-** scm_array_p has one argument, not two
+The `(ice-9 i18n)' functions (`string-locale<?', etc.) now work
+correctly on wide strings as well. This should finish off the remaining
+Unicode support patches. Please send any Unicode bug reports to
address@hidden'.
 
-Use of the second argument produced a deprecation warning, so it is
-unlikely that any code out there actually used this functionality.
+** ABI harmonization
 
-** GOOPS documentation folded into Guile reference manual
-
-GOOPS, Guile's object system, used to be documented in separate manuals.
-This content is now included in Guile's manual directly.
-
-** `libguile-i18n' has been merged into `libguile'
-
-The C support code for `(ice-9 i18n)', which used to be in
-`libguile-i18n', is now part of `libguile'.
-
-** Last but not least, the `λ' macro can be used in lieu of `lambda'
+`scm_primitive_load_path' now has the signature it did in 1.8.
+`scm_array_p' does as well, reverting an incompatible change made in
+1.9.3. Finally, Guile now has the same ABI when built with or without
+threads, something that should make Debian users happy.
 
 ** And of course, the usual collection of bugfixes
  
@@ -160,6 +114,17 @@ documented in the manual. This will be fixed before 2.0.
 Pass the `--help' command-line option to these commands for more
 information.
 
+** Guile now adds its install prefix to the LTDL_LIBRARY_PATH
+
+Users may now install Guile to nonstandard prefixes and just run
+`/path/to/bin/guile', instead of also having to set LTDL_LIBRARY_PATH to
+include `/path/to/lib'.
+
+** Guile's Emacs integration is now more keyboard-friendly
+
+Backtraces may now be disclosed with the keyboard in addition to the
+mouse.
+
 * Changes to Scheme functions and syntax
 
 ** Procedure removed: `the-environment'
@@ -651,6 +616,13 @@ There was an EBCDIC compile flag that altered some of the 
character
 processing.  It appeared that full EBCDIC support was never completed
 and was unmaintained.
 
+** Compile-time warnings: -Wunbound-variable
+
+Guile can warn about potentially unbound free variables. Pass the
+-Wunbound-variable on the `guile-tools compile' command line, or add
+`#:warnings '(unbound-variable)' to your `compile' or `compile-file'
+invocation.
+
 ** New macro type: syncase-macro
 
 XXX Need to decide whether to document this for 2.0, probably should:
@@ -701,6 +673,12 @@ the variable. This was an error, and was fixed.
 As syntax-case is available by default, importing `(ice-9 syncase)' has
 no effect, and will trigger a deprecation warning.
 
+** New readline history functions
+
+The (ice-9 readline) module now provides add-history, read-history,
+write-history and clear-history, which wrap the corresponding GNU
+History library functions.
+
 ** Removed deprecated uniform array procedures:
    dimensions->uniform-array, list->uniform-array, array-prototype
 
@@ -753,11 +731,6 @@ definition depends on the application's value for 
`_FILE_OFFSET_BITS'.
 
 These functions have been deprecated since early 2005.
 
-** scm_array_p has one argument, not two
-
-Use of the second argument produced a deprecation warning, so it is
-unlikely that any code out there actually used this functionality.
-
 * Changes to the distribution
 
 ** Guile's license is now LGPLv3+
@@ -788,6 +761,14 @@ macros should now require `guile-2.0' instead of 
`guile-1.8'.
 If $(libdir) is /usr/lib, for example, Guile will install its .go files
 to /usr/lib/guile/1.9/ccache. These files are architecture-specific.
 
+** Dynamically loadable extensions may be placed in a Guile-specific path
+
+Before, Guile only searched the system library paths for extensions
+(e.g. /usr/lib), which meant that the names of Guile extensions had to
+be globally unique. Installing them to a Guile-specific extensions
+directory is cleaner. Use `pkg-config --variable=extensionsdir
+guile-2.0' to get the location of the extensions directory.
+
 ** New dependency: libgc
 
 See http://www.hpl.hp.com/personal/Hans_Boehm/gc/, for more information.
diff --git a/libguile/inline.h b/libguile/inline.h
index a8f24d4..eaa7494 100644
--- a/libguile/inline.h
+++ b/libguile/inline.h
@@ -243,7 +243,7 @@ SCM_C_EXTERN_INLINE
 SCM
 scm_array_handle_ref (scm_t_array_handle *h, ssize_t p)
 {
-  if (SCM_UNLIKELY (p < 0 && -p > (ssize_t) h->base))
+  if (SCM_UNLIKELY (p < 0 && ((size_t)-p) > h->base))
     /* catch overflow */
     scm_out_of_range (NULL, scm_from_ssize_t (p));
   /* perhaps should catch overflow here too */
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index a1537d1..c8881c6 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -899,39 +899,39 @@
 
 (set! %load-hook %load-announce)
 
-;;; Returns the .go file corresponding to `name'. Does not search load
-;;; paths, only the fallback path. If the .go file is missing or out of
-;;; date, and autocompilation is enabled, will try autocompilation, just
-;;; as primitive-load-path does internally. primitive-load is
-;;; unaffected. Returns #f if autocompilation failed or was disabled.
-(define (autocompiled-file-name name)
-  (catch #t
-    (lambda ()
-      (let* ((cfn ((@ (system base compile) compiled-file-name) name))
-             (scmstat (stat name))
-             (gostat (stat cfn #f)))
-        (if (and gostat (= (stat:mtime gostat) (stat:mtime scmstat)))
-            cfn
-            (begin
-              (if gostat
-                  (format (current-error-port)
-                    ";;; note: source file ~a\n;;;       newer than compiled 
~a\n"
-                    name cfn))
-              (cond
-               (%load-should-autocompile
-                (%warn-autocompilation-enabled)
-                (format (current-error-port) ";;; compiling ~a\n" name)
-                (let ((cfn ((@ (system base compile) compile-file) name)))
-                  (format (current-error-port) ";;; compiled ~a\n" cfn)
-                  cfn))
-               (else #f))))))
-    (lambda (k . args)
-      (format (current-error-port)
-              ";;; WARNING: compilation of ~a failed:\n;;; key ~a, throw_args 
~s\n"
-              name k args)
-      #f)))
-
 (define (load name . reader)
+  ;; Returns the .go file corresponding to `name'. Does not search load
+  ;; paths, only the fallback path. If the .go file is missing or out of
+  ;; date, and autocompilation is enabled, will try autocompilation, just
+  ;; as primitive-load-path does internally. primitive-load is
+  ;; unaffected. Returns #f if autocompilation failed or was disabled.
+  (define (autocompiled-file-name name)
+    (catch #t
+      (lambda ()
+        (let* ((cfn ((@ (system base compile) compiled-file-name) name))
+               (scmstat (stat name))
+               (gostat (stat cfn #f)))
+          (if (and gostat (= (stat:mtime gostat) (stat:mtime scmstat)))
+              cfn
+              (begin
+                (if gostat
+                    (format (current-error-port)
+                            ";;; note: source file ~a\n;;;       newer than 
compiled ~a\n"
+                            name cfn))
+                (cond
+                 (%load-should-autocompile
+                  (%warn-autocompilation-enabled)
+                  (format (current-error-port) ";;; compiling ~a\n" name)
+                  (let ((cfn ((@ (system base compile) compile-file) name
+                              #:env (current-module))))
+                    (format (current-error-port) ";;; compiled ~a\n" cfn)
+                    cfn))
+                 (else #f))))))
+      (lambda (k . args)
+        (format (current-error-port)
+                ";;; WARNING: compilation of ~a failed:\n;;; key ~a, 
throw_args ~s\n"
+                name k args)
+        #f)))
   (with-fluid* current-reader (and (pair? reader) (car reader))
     (lambda ()
       (let ((cfn (autocompiled-file-name name)))
diff --git a/module/ice-9/deprecated.scm b/module/ice-9/deprecated.scm
index c8d7621..c55e13b 100644
--- a/module/ice-9/deprecated.scm
+++ b/module/ice-9/deprecated.scm
@@ -185,3 +185,20 @@
          `(begin *unspecified* . ,exps)))
    (else
     `(begin))))
+
+(read-hash-extend
+ #\y
+ (lambda (c port)
+   (issue-deprecation-warning
+    "The `#y' bitvector syntax is deprecated.  Use `#*' instead.")
+   (let ((x (read port)))
+     (cond
+      ((list? x)
+       (list->bitvector
+        (map (lambda (x)
+               (cond ((zero? x) #f)
+                     ((eqv? x 1) #t)
+                     (else (error "invalid #y element" x))))
+             x)))
+      (else
+       (error "#y needs to be followed by a list" x))))))


hooks/post-receive
-- 
GNU Guile




reply via email to

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