guile-devel
[Top][All Lists]
Advanced

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

Condensed NEWS


From: Ludovic Courtès
Subject: Condensed NEWS
Date: Wed, 16 Feb 2011 11:03:32 +0100
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.2 (gnu/linux)

Hi!

Here’s a proposal for a condensed NEWS for the announcement:

  Highlights of changes in 2.0.0 (since the 1.8.x release series):

  * New compiler infrastructure and VM

  Guile 2.0 compiles Scheme code to bytecode, which is then interpreted
  by the VM.  This gives a noticeable performance improvement compared
  to earlier Guile series.

  By default source code is compiled automatically as it is encountered,
  without any manual intervention.  The "guile-tools compile" command
  provides a command-line interface, and there are also Scheme
  procedures to drive the compiler.

  Besides Scheme, the compiler comes with front-ends for the ECMAScript
  and Emacs Lisp languages.

  * New REPL, new debugger

  A read-eval-print-loop (REPL) is available.  Compared to the REPL in
  earlier releases, it supports "meta-commands" that provide convenient
  access to interactive programming features.  For instance, the
  ",compile" meta-command compiles the given expression, ",profile"
  shows an execution profile of the given expression, etc.

  Any error or uncaught exception leads to a "recursive REPL", which is
  a REPL augmented with debugging capabilities: it has meta-commands to
  display a backtrace, inspect the variables on a stack frame, etc.  The
  recursive REPL can be quit to return to the original one.

  * Support for hygienic macros

  The `syntax-rules' and `syntax-case' hygienic macro systems are
  supported natively by Guile, without importing `(ice-9 syncase)', and
  work across module boundaries.  They are a better replacement for
  `defmacro'.

  * Unicode support

  Scheme strings can hold any Unicode character, and ports can read and
  write Unicode text in various encodings.

  * Partial R6RS compatibility

  The `library' and `import' forms of R6RS are supported, and all the
  R6RS libraries defined in the standard are available.  See "R6RS
  Incompatibilities" in the manual, for details about remaining
  incompatibilities.

  * New dynamic foreign function interface

  The `(system foreign)' module provides a new dynamic foreign function
  interface (FFI).  It allows bindings to C libraries to be written
  without a single line of C code.

  * Switch to the Boehm-Demers-Weiser garbage collector

  Guile now uses the Boehm-Demers-Weiser conservative garbage collector
  (aka. libgc).  It makes interaction with C code easier making, for
  instance, the use of mark and free SMOB procedures optional in many
  cases.  It also improves performance.

  * New modules

  ** `(srfi srfi-18)', more sophisticated multithreading support
  ** `(srfi srfi-27)', sources of random bits
  ** `(srfi srfi-38)', External Representation for Data With Shared Structure
  ** `(srfi srfi-42)', eager comprehensions
  ** `(srfi srfi-45)', primitives for expressing iterative lazy algorithms
  ** `(srfi srfi-67)', compare procedures
  ** `(ice-9 i18n)', internationalization support
  ** `(ice-9 futures)', fine-grain parallelism
  ** `(rnrs bytevectors)', the R6RS bytevector API
  ** `(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
  ** `(sxml ...)', tools for XML processing
  ** `(texinfo ...)', parsing and production of Texinfo documents
  ** `(sxml match)', a pattern matcher for SXML
  ** `(srfi srfi-9 gnu)', extensions to the SRFI-9 record library
  ** `(system vm coverage)', a line-by-line code coverage library
  ** `(web ...)', modules for URI and HTTP handling
  ** `(ice-9 poll)', a poll wrapper
  ** `(system base lalr)', the `lalr-scm' LALR(1) parser generator
  ** `(statprof)', statistical profiler

  * New dependencies

  ** libgc 7.x, http://www.hpl.hp.com/personal/Hans_Boehm/gc/
  ** GNU libunistring, http://www.gnu.org/software/libunistring/
  ** libffi, http://sourceware.org/libffi/

Thanks,
Ludo'.



reply via email to

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