mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
Update history.texi
* doc/ref/history.texi (A Timeline of Selected Guile Releases, Status): Update.
This commit is contained in:
parent
0d1788039a
commit
f5729276a9
1 changed files with 26 additions and 27 deletions
|
@ -1,6 +1,6 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 2008, 2010, 2011
|
||||
@c Copyright (C) 2008, 2010, 2011, 2013
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
|
@ -211,6 +211,13 @@ via Geiser. Guile caught up to features found in a number of other
|
|||
Schemes: SRFI-18 threads, module-hygienic macros, a profiler, tracer,
|
||||
and debugger, SSAX XML integration, bytevectors, a dynamic FFI,
|
||||
delimited continuations, module versions, and partial support for R6RS.
|
||||
|
||||
@item 2.2 --- mid-2014
|
||||
The virtual machine and introduced in 2.0 was completely rewritten,
|
||||
along with much of the compiler and toolchain. This speeds up many
|
||||
Guile programs as well as reducing startup time and memory usage. A PEG
|
||||
parser toolkit was added, making it easier to write other language
|
||||
frontends.
|
||||
@end table
|
||||
|
||||
@node Status
|
||||
|
@ -250,19 +257,13 @@ than in other languages.
|
|||
These days it is possible to write extensible applications almost
|
||||
entirely from high-level languages, through byte-code and native
|
||||
compilation, speed gains in the underlying hardware, and foreign call
|
||||
interfaces in the high-level language. Smalltalk systems are like
|
||||
this, as are Common Lisp-based systems. While there already are a
|
||||
number of pure-Guile applications out there, users still need to drop
|
||||
down to C for some tasks: interfacing to system libraries that don't
|
||||
have prebuilt Guile interfaces, and for some tasks requiring high
|
||||
performance.
|
||||
|
||||
The addition of the virtual machine in Guile 2.0, together with the
|
||||
compiler infrastructure, should go a long way to addressing the speed
|
||||
issues. But there is much optimization to be done. Interested
|
||||
contributors will find lots of delightful low-hanging fruit, from
|
||||
simple profile-driven optimization to hacking a just-in-time compiler
|
||||
from VM bytecode to native code.
|
||||
interfaces in the high-level language. Smalltalk systems are like this,
|
||||
as are Common Lisp-based systems. While there already are a number of
|
||||
pure-Guile applications out there, users still need to drop down to C
|
||||
for some tasks: interfacing to system libraries that don't have prebuilt
|
||||
Guile interfaces, and for some tasks requiring high performance. Native
|
||||
ahead-of-time compilation, planned for Guile 3.0, should help with
|
||||
this.
|
||||
|
||||
Still, even with an all-Guile application, sometimes you want to
|
||||
provide an opportunity for users to extend your program from a
|
||||
|
@ -270,19 +271,17 @@ language with a syntax that is closer to C, or to Python. Another
|
|||
interesting idea to consider is compiling e.g.@: Python to Guile. It's
|
||||
not that far-fetched of an idea: see for example IronPython or JRuby.
|
||||
|
||||
And then there's Emacs itself. Though there is a somewhat-working Emacs
|
||||
Lisp language frontend for Guile, it cannot yet execute all of Emacs
|
||||
Lisp. A serious integration of Guile with Emacs would replace the Elisp
|
||||
virtual machine with Guile, and provide the necessary C shims so that
|
||||
Guile could emulate Emacs' C API. This would give lots of exciting
|
||||
things to Emacs: native threads, a real object system, more
|
||||
sophisticated types, cleaner syntax, and access to all of the Guile
|
||||
extensions.
|
||||
And then there's Emacs itself. Guile's Emacs Lisp support has reached
|
||||
an excellent level of correctness, robustness, and speed. However there
|
||||
is still work to do to finish its integration into Emacs itself. This
|
||||
will give lots of exciting things to Emacs: native threads, a real
|
||||
object system, more sophisticated types, cleaner syntax, and access to
|
||||
all of the Guile extensions.
|
||||
|
||||
Finally, there is another axis of crystallization, the axis between
|
||||
different Scheme implementations. Guile does not yet support the
|
||||
latest Scheme standard, R6RS, and should do so. Like all standards,
|
||||
R6RS is imperfect, but supporting it will allow more code to run on
|
||||
Guile without modification, and will allow Guile hackers to produce
|
||||
code compatible with other schemes. Help in this regard would be much
|
||||
different Scheme implementations. Guile does not yet support the latest
|
||||
Scheme standard, R7RS, and should do so. Like all standards, R7RS is
|
||||
imperfect, but supporting it will allow more code to run on Guile
|
||||
without modification, and will allow Guile hackers to produce code
|
||||
compatible with other schemes. Help in this regard would be much
|
||||
appreciated.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue