Version “2.10” released 2024-10-10
This version of STklos mostly enhances the 2.00 version released a year ago. As usual, this version could not have be finalized without the help of Jeronimo Pellegrini (@jpellegrini).
Contributors for this version:
- Akinori Hattori (@hattya)
- Jeronimo Pellegrini (@jpellegrini)
Enhancements:
- Corrected the result of
stklos-config --compile
- Added the second (optional) parameter to R7RS
load
(andtry-load
) - Enhanced various things about STklos compilation/installation
- Added information in the summary of configuration script
- Builds are now reproducible
- FFI support can be completely disabled, if needed.
- Updated GTklos, the GTK+ extension
- Optimize
expt
primitive. - Avoid unneeded boxing of numbers in the
+
,-
,*
and/
operations - Added
!
as a shell escape under the REPL - Added statistics to the VM
- Permit to build STklos with the
tcc
C compiler. - Added an simple hybrid (C and Scheme) module in the examples directory
- Correct/enhance implementation of numerical functions in some corner cases (in particular with NaNs and infinities).
- Added an API to add expressions rewriting rules before their compilation.
- Location given in error message is more precise
- Error messages don’t loop anymore when displaying circular structures
- Added
list-set!
as the setter function oflist-ref
- Added the number of allocations and collections to the output of the
time
form - Added special instructions in the VM for
member
,memq
andmemv
- Added special instructions in the VM for
assoc
,assq
andassv
- Do constant folding before in-lining usual functions
- Better UTF-8 support and updated Unicode tables to version 16.0.0
- Enhance the
apropos
primitive - New REPL variables:
@*
,@1
,@2
,@3
,@4
and@5
- New REPL commands:
time
,describe
,expand
,import
,require-feature
,open
,browse
,manual
,apropos
- Documentation of a function can be accessed directly into the HTML Reeference Manual
- Length of symbols is no more limited.
New primitives / parameters:
read-ci
eval-form-string-ci
read-from-sring-ci
compiler:source-rewrite
compiler:peephole-optimizer
1+
and1-
push!
andpop
inc!
anddec!
dolist
apropos/alist
apropos/pp
default-browser
open-in-browser
manual
install-path
define-parameter
Updated embedded libraries
libgc
updated to version 8.2.8libffi
updated to version 3.4.6libpcre2
updated to version 10.44
New supported SRFI
- SRFI-115: Scheme Regular Expressions
- SRFI-178: Bitvector library
- SRFI-232: Flexible curried procedures
Misc:
- Updated documentation
- Added tests
- Code cleaning an optimizations
- Bug fixes
Version “2.00” released 2023-09-12
This is a major version of STklos, bringing it from R5RS to R7RS. It is the fruit of nearly two years of development with the help of the following persons (in alphabetical order):
- Amirouche Boubekki (@amirouche)
- Lassi Kortela (@lassik)
- Ivan Maidanski (@ivmai)
- Tom Niget (@zdimension)
- Jeronimo Pellegrini (@jpellegrini)
- Ryan Schmidt (@ryandesign)
- Ben Taca (@bentaca)
- Robby Zambito (@Zambito1)
The main changes in this version are:
- Support for R⁷RS libraries
- Macro system has been rewritten
- Support for ScmPkg packages has been suppressed
- New options for the commands stklos(1) and stklos-compile(1)
- Optimizations on numerical operations
- Documentation is rewritten in
asciidoctor
and has been greatly enhanced - Updated the Docker build files
- New instructions in the VM
- Fixed some issues in the compilation/installation procedure
- New extension:
curl
to access the multiprotocol file transfer library - Better support for macOS
describe
has been enhanced for some type of objects- REPL has now tab completion
- Bash and zsh completions for
stklos
andstklos-compile
commands - Better
SLIB
support - Use PCRE2 library instead of legacy PCRE
- New-command
stklos-pp(1)
- Better error messages
- New SRFIS supported
- SRFI-19: Time Data Types and Procedures
- SRFI 43: Vector Library
- SRFI-95: Sorting and Merging
- SRFI 116: Immutable List Library
- SRFI 125: Intermediate hash tables
- SRFI-138: Compiling Scheme programs to executables
- SRFI 152: String Library (reduced)
- SRFI-162: Comparators sublibrary
- SRFI 154: First-class dynamic extents
- SRFI-215: Central Log Exchange
- SRFI 217: Integer Sets
- SRFI 222: Compound objects
- SRFI 224: Integer Mappings
- SRFI-227: Optional Arguments
- SRFI 228: Composing Comparators
- SRFI-229: Tagged Procedures
- SRFI-230: Atomic Operations
- SRFI 235: Combinators
- SRFI 236: Evaluating expressions in an unspecified order
- SRFI-238: Codesets
- SRFI 244: Multiple-value Definitions
- Added support for some R7RS-large libraries
- supported libraries of the Red edition are
(scheme bytevector)
(scheme box)
(scheme charset)
(scheme comparator)
(scheme generator)
(scheme hash-table)
(scheme ideque)
(scheme ilist)
(scheme list)
(scheme list-queue)
(scheme lseq)
(scheme set)
(scheme sort)
(scheme stream)
(scheme text)
(scheme vector)
- supported libraries of the Tangerine edition are
(scheme bitwise)
(scheme bytevector)
(scheme division)
(scheme fixnum)
(scheme flonum)
(scheme generator)
(scheme vector @)
- supported libraries of the Red edition are
- New primitives
library-name
library-list
module-list
module-lock!
module-locked?
symbol-mutable?
define-constant
cpointer-null?
syntax-error
hash-table-clear!
environement
send-signal
set-signal-handler!
get-signal-handler
void?
procedure-source
procedure-formals
short-version
radians->degrees
degrees->radians
sinh
,cosh
, …
- New compiler options (also parameter objects):
compiler:gen-line-number
compiler:show-assembly-code
compiler:time-display
compiler:keep-formals
compiler-keep-source
compiler:inline-common-functions
compiler:unroll-iterations
repl-show-startup-message
- New predefined classes
<uvector>
<bytevector>
<hash-table>
<port>
<input-port>
<output-port>
- Code cleaning an optimizations
- Added tests
- Bug fixes
Version “1.70” released 2021-11-25
This version further improves compliance with R7RS and brings some new SRFIs
The main changes in this version are:
- Added the some comma-commands to the REPL (,pwd ,cd and ,shell)
- Use system Posix glob instead of the provided gnu-glob
- Improved reader (
|.|
is wow valid symbol as well as numbers with bars) - New primitive/syntaxes
tagbody
repeat
keyword-colon-position
is a parameter object specifying the places where the colon can be used in keyword.
- Suppressed the calls to insecure C function (such as
strcpy
orstrcat
) - List reading is tail recursive now
- Added an extension directory, which contains for now:
- GTKlos which gives access to the GTK+ toolkit using the OO layer available in STklos. This version uses the GTK+3 toolkit. It also defines a canvas widget. if the to have the goocanvas library is installed.
- an extension which permits to make a file system in Scheme, using FUSE (Filesystem in Userspace).
- Use gmp-mini (which is provided) if gmp is not available, instead of our version which was based on old unmaintained version of mpi.
- Support of new SRFIs:
- SRFI-25: Multi-dimensional Arrays
- SRFI-27: Source of random bits
- SRFI-29: Localization
- SRFI-94: Type-Restricted Numerical Functions
- SRFI-132: Sort Libraries
- SRFI-133: Vector Library (R7RS-compatible)
- SRFI-143: Fixnums
- SRFI-144: Flonums
- SRFI-170: POSIX API
- SRFI-208: NaN procedures
- SRFI-214: Flexvectors
- SRFI-217: Integer Sets
- SRFI-219: Define higher-order lambda
- SRFI-223: Generalized binary search procedures
- SRFI can be implemented in C and Scheme
- Various optimizations
- Documentation update
- Added tests
- Bug fixes
Version “1.60” released 2021-02-15
As the previous version, R7RS compliance is enhanced and a bunch of new SRFIS has been implemented (thanks again to Jeronimo Pellegrini — @jpellegrini).
Changes in this version are:
- Added option -I and -A to prepend and append to the loadpath
- New primitives/syntaxes
require-feature
define-values
- Added makefile targets to install only subparts of STklos on constrained environments
- Reader accepts now
#i
for rationals - Changed the version of LALR-SCM to version 2.5.0
- Added scripts and documentation in the
exemples
directory - Definition of a new framework for implementing SRFIs
- Documentation of SRFI is now automatically built
- SRFI tests are automatically done with
make tests
- Automatic update of the SUPPORTED-SRFIS file
- Support of new SRFIs
- SRFI-5: A compatible let form with signatures and rest arguments
- SRFI-41: Streams
- SRFI-61: A more general COND clause
- SRFI-113: Sets and Bags
- SRFI-127: Lazy Sequences
- SRFI-128: Comparators (reduced)
- SRFI-130: Cursor-based string library
- SRFI-134: Immutable Deques
- SRFI-135: Immutable Texts
- SRFI-137: Minimal Unique Types
- SRFI-192: Port Positioning
- SRFI-193: Command line
- SRFI-195: Multiple-value boxes
- SRFI-196: Range Objects
- SRFI-207: String-notated bytevectors
- SRFI-216: SICP Prerequisites (Portable)
- Documentations update
- Added tests
- Bug fixes
Version “1.50” released 2020-08-17
This version enhances R7RS compliance and a lot of new SRFIs (thanks to the awesome work of Jeronimo Pellegrini — @jpellegrini)
Changes in this version are:
- Exceptions behavior is now R7RS compliant
current{input,ouput,error}-port
are now parameters as required by R7RS.- Socket ports are now both binary and textual.
- Added support for Android.
- Better support of 32 bits big-endian architectures
- Support of more architectures. STklos can be run now on
- GNU/Linux on x86_64 (64 bits)
- GNU/Linux on ARM v7l (32 bits)
- GNU/Linux on MIPS (32 bits little and big endian)
- FreeBSD
- OPenBSD
- MacOS X86_64
- Windows 10 (on WSL)
- Android on ARM 64
- Support of new SRFIs (most of them were implemented by @jpellegrini):
- SRFI-37: args-fold: a program argument processor
- SRFI-51: Handling rest list
- SRFI-54: Formatting
- SRFI-64: A Scheme API for test suites
- SRFI-117: Queues based on lists
- SRFI-118: Simple adjustable-size strings
- SRFI-129: Titlecase procedures
- SRFI-141: Integer Division
- SRFI-145: Assumptions
- SRFI-151: Bitwise Operations
- SRFI-156: Syntactic combiners for binary predicates
- SRFI-158: Generators and Accumulators
- SRFI-161: Unifiable Boxes
- SRFI-169: Underscores in numbers
- SRFI-171: Transducers
- SRFI-173: Hooks
- SRFI-174: POSIX Timespecs
- SRFI-175: ASCII character library
- SRFI-176: Version flag
- SRFI-180: JSON
- SRFI-185: Linear adjustable-length strings
- SRFI-189: Maybe and Either: optional container types
- SRFI-190: Coroutines Generators
- Better documentation (thanks to @jpellegrini again! — need to
be completed)
- description of the internals of STklos
- description of the VM instructions
- instructions to compile STklos on various OS
- updated manual’s bibliography
- Bug fixes
Version “1.40” released 2020-06-05
Changes in this version are:
- Updated the build tools
- Now STklos is case sensitive by default as required by R7RS the R5RS
case insensitivity can be enable with the
--case-insensitive
option - New parameter:
repl-theme
permits to customize REPL prompt colors. - Added more tests
- Added the
#:xxx
syntax for keywords for compatibility with other implementations - Added the R7RS syntaxes letrec, let-values & let-values
- Various bug fixes
Version “1.31” released 2019-07-13
Bug fix version.
Changes in this version are:
- Updated the version of the libraries included in the distribution
- Bug fix of various problems when installing STklos
- Bug fix for MacOs UTF8 detection
- Added SRFI-112
- Updated documentation
Version “1.30” released 2019-07-04
The goal of this version consists to be more R7RS compliant. All the
R5RS functions which have been extended in R7RS are now conform to R7RS
(for instance assoc
and member
accept now an
optional parameter which is a compare function, vector->list accepts
the start
and end
parameters, …)
Changes in this version are:
- Implementations R7RS I/O
- Ports can now be binary or textual (standard ports are both)
- New functions:
write-string
wite-shared
&write-simple
- functions to input and output bytevectors
read-u8
peek-u8
andu8-ready?
call-with-port
textual-port?
binary-port?
open-binary-input-file
open-binary-output-file
utf8->string
&string->utf8
- Updated various functions to be R7RS compliant.
- Added the R7RS functions on bytevectors
- Added R7RS
#true
and#false
constants - Added R7RS exceptions
- Added R7RS system functions
- Upgraded the libraries embedded in STklos source tree
- Optimization of circular structure reading & writing
- New primitives -
display-simple
&display-shared
- R7RSsymbol=?
- R7RSboolean=?
- Updated documentation
- Added SRFI-111
- Bug fixes
Version “1.20” released 2018-06-04
Even if previous version was released more than seven years ago, STklos is not completely dead.
Now the developement tree of STklos is available on Gitlab and Github.
Changes in this version are:
- Corrected some problems on UTF8 encoding
- Bug fix of a long standing bug on
call/cc
. - Function can now be created with the UTF8 symbol
λ
- Added the
#!fold-case
and#!no-fold-case
special notations of R7RS - Updated documentation
- Bug fixes
Version “1.10” released 2011-12-31
This version brings the support of UTF-8 encoding and begins to support some (future) R7RS traits:
- Added full support for UTF-8 strings and symbols
- Added support for Win32 support under Cygwin
- Added some support for R7RS traits:
- bytesvectors
- hexadecimal chars in strings and symbols
- continuations lines in strings
- New primitives
char-foldcase
string-foldcase
string-foldcase!
make-list
string-map
string-for-each
vector-for-each
vector-map
- Added support for MacOs X Lion
- Added back support for Win32 using Cygwin (this support has still rough edges. See the file PORTING-NOTES in the distribution directory for details)
- Bug Fixes
Version “1.01” released 2010-12-30
This is mainly a maintenance version.
- Documentation update
- Modifications to support ScmPkg on MacOs MacPorts
- Fix incompatibilities in FFI introduced in 1.00
- Better x86_64 support
- Bug fixes
Version “1.00” released 2010-08-11
The version 1.00 is finally here (work on STklos started 10 years before …). The main difference with this version and the pre-1.0 ones is that it does not integrate GTK+ 1.x support. In fact, GTK+ support is now available through several ScmPkg packages. Otherwise:
- Complete rewriting of GMP-lite, the provided gmp compatible package for system which does not provide it
- Remove the old extension intsallation mechanism (stklos-install). Use the ScmPkg mechanism for extending STklos now
- functions, generic functions and methods cans now have documentation strings
- Added GNU readline support in REPL if the readline lib can be loaded dynamically
- Configuration files location can now be changed
- Added an interactive help system
- libffi uptated to version 3.0.9
- New implemented SRFIs
- SRFI-74 (Octet-Addressed Binary Blocks)
- SRFI-96 (SLIB Prerequisites )
- SRFI-98 (Interface to access environment variables)
- SRFI-100 (define-lambda-object)
- New primitives
port?
help
make-directories
ensure-directories-exist
- Bug fixes
Version “0.98” released 2008-05-18
- Replaced the C/invoke FFI library by libffi: Now GTk2 *ScmPkg** packages work on MacOs
- Added option –build-sync-file to ease personal ScmPkg repository maintenance
- Bug fixes
Support for GTK2 — initial release 2008-04-15
Two new packages have been released. They permit to use GTK2 for making GUIs.
- the package
stklos-gtk-base
is a wrapper which permits access the GTK toolkit. - the package
stklos-gtk-glade
permits to use interface built with the Glade interface builder
The packages are provided as *ScmPkg** packages. They have been tested only on Linux
Version “0.97” released 2007-12-16
- Fixed support for recent versions of SLIB
- Added boxes: they were used by the system but unavailable to the user.
- Improved the stklos-pkg command
- Fixed several mutexes bugs
- Minor improvements of the FFI
- Updated PCRE to version 7.4
- New implemented SRFIs
- SRFI-45 (Optional positional and named parameters)
- SRFI-59 (Vicinity)
- SRFI-88 (Keyword Objects)
- SRFI-89 (Optional Positional and Named Parameters)
- Bug fixes
Development tree access 2007-09-27
The STklos development tree is now available at the following URL http://www.stklos.net/hgweb.cgi. The development tree is managed by Mercurial Source Control Management system. Having Mercurial on your box may help, but is not necessary if you don’t plan to modify STklos distribution. In effect, the Web interface to Mercurial tree gives easy access to developement versions in common archive formats.
STklos-ssax package release 2007-07-17
A port of SSAX, the Oleg Kiselyov’s XML parser, is available as a *ScmPkg** package. SSAX defines itself as a full-featured, algorithmically optimal, pure-functional parser, which can act as a stream processor. SSAX is an efficient SAX parser that is easy to use.
STklos-fuse package release 2007-07-12
A new release of the stklos-fuse
package is available
through *ScmPkg**. This new release can
be installed with the stklos-pkg
command. This package
permits to implement a fully functional filesystem in a Scheme program
thanks to the FUSE package. Two
exemples of Scheme file systems are provided with the distribution:
- a simple filesystem which only contain one file named “hello”, and whose content is of course “Hello, world!”
- a more realistic filesystem, where all the files are stored in Scheme hash tables (a directory being a hash-table whose entries are the files of this directory. The program which implements this filesystem is about 250 lines long).
Since the support of *ScmPkg** is new, a simple session showing how to install this package is given below:
% mkdir /tmp/X # create a temporary dir
% cd /tmp/X
% stklos-pkg --sync # Sync with servers
...
% stklos-pkg -e stklos-fuse # download package stklos-fuse
% make
...
% make install # Install in ~/.stklos/pkg
...
install done
Let’s use now the package
% cd stklos-fuse/examples
% mkdir /tmp/HASH # create mountpoint for the hashfs
% hashfs /tmp/HASH # mount it
% cd /tmp/HASH # An now manipulate files in our filesystem
% echo Hello foo
% ls -l
total 1
-rw-r--r-- 1 eg stklos 6 Jul 12 17:53 foo
% cat foo
Hello
% mkdir bar
% cp foo bar
% ls -l
total 1
drwxr-xr-x 2 eg stklos 0 Jul 12 17:53 bar
-rw-r--r-- 1 eg stklos 6 Jul 12 17:53 foo
% cat bar/foo
Hello
Version “0.96” released 2007-06-30
This release introduces a simple FFI (Foreign Function Interface).
- Better support for FreeBSD
- Fixed a bug when using the -j option of make during bootstrap
- Fixed several problems with ScmPkg packages installation
Version “0.95” released 2007-06-08
This is a major version introducing support for the *ScmPkg** source packaging system.
- Better support for lexical analyzer generation
- Added some support for fixnum operations
- Added here-strings support
- Added partial module import
- Macros can be local
- Added some peephole optimizations
- Added new options to the compiler
- Added support for reading the tar files
- void and eof objects are now printed back as #void and #eof and can be read back
- New primitives
signal-error
md5sum
md5sum-file
file-prefix
file-suffix
condition-set!
- Bug fixes
Posix version 0.60 2007-04-12
Bug fix version: this version must be used with versions of STklos 0.80.
Version “0.82” released 2006-12-19
- Added the –debug option to the interpreter
- Better error messages when in debug mode and more correct line numbers
- Updated Dominique Boucher lalr parser to the latest version
- Better error messages for POSIX functions
- Internal macro definition are allowed now
- New parameters for controlling compilation
- New primitives
null-environment
scheme-report-environment
interaction-environment
directory-files
make-directory
delete-directory
- Bug fixes
Version “0.81” released 2006-11-06
This is a bug-fix version. Previous release had a bug which prevent to compile it on some architectures/systems.
- Corrected a deadlock when compiling the system
- Corrected bugs in SRFI-0 and SRFI-13
Version “0.80” released 2006-10-27
This is a version with important changes to support multi-threading. This version provides two kinds of threads: LURC threads and Posix threads (aka pthreads). LURC threads are implemented using the LURC library, the Light ULM/Reactive library for C developed at INRIA. LURC supports the creation of synchronous cooperative threads, synchronizing and communicating with each other using signals in a deterministic scheduler (see <http://www-sop.inria.fr/mimosa/Stephane.Epardaud/lurcfor details).
- Thread support
- Better error messages
- Added the possibility to compile byte-codes to a C file.
- New peephole optimizations
- More customizable REPL
- New primitives
read-byte
write-byte
printf
fprintf
base64-{en|de}code
current-second
- New implemented SRFIs
- SRFI-18 (Multithreading support)
- Bug fixes
HtmlPrag Extension 2006-05-27
This extension packages Neil Van Dykes HtmlPrag parser in a STklos extension.
HtmlPrag provides permissive HTML parsing and emitting capability to Scheme programs. The parser is useful for software agent extraction of information from Web pages, for programmatically transforming HTML files, and for implementing interactive Web browsers.
Fuse 0.50 Extension Release 2006-01-15
Ever dreamt to write your own file system in Scheme?
The fuse STklos extension, thanks to the FUSE package FUSE permits to make user lambdas being called by the kernel when performing I/O on a user Scheme file system. This extension indeed permits you to write your own file system in a bunch of Scheme lines. Two exemples of Scheme file systems are provided with the distribution.
Posix 0.50 Extension Release 2006-01-06
This new extension provides access to POSIX system calls.
Version “0.72” released 2006-01-04
This is a minor version
- New primitives
string-blit!
print
printerr
- New implemented SRFIs
- SRFI-66 (Octet Vectors)
- Bug fixes
Version “0.71” released 2005-11-03
- Added virtual ports (ports defined by user functions)
- The reader accepts now
#eof
to denote the eend of file object - Fix problems with SunOS support
- Fix problems with gcc4 compilation
- Hash tables are now compliant to SRFI-69 (Basic Hash Tables). This implies some (compatible) changes in the hash-tables function names.
- New primitives
finite?
infinite?
unsetenv!
file-size
- New implemented SRFIs
- SRFI-62 (S-expression comments)
- SRFI-69 (Basic Hash Tables)
- SRFI-70 (Numbers)
- Bug fixes
Extensions 2005-09-09
Two extensions to STklos:
- imap to access an IMAP mail server
- ssl to extend STklos sockets and accepts SSL connections
For more informations on the extension mechanism, look at the extensions page.
Common Music in STklos 0.70 2005-05-28
Rick Taube has ported Common Music, an object-oridented music composition system, to STklos 0.70. The version of CM that runs in STklos is in the cvs head branch. See Common Music home page for CVS installation instructions.
To start up CM in STklos you can do:
cm/bin/cm.sh -l stklos
or to start it running under xemacs do:
cm/bin/cm.sh -l stklos -e xemacs
The file cm/etc/intro.cm
is a good place to start. The
distribution also contains loop.scm
, an (almost) complete
implementation of the common lisp LOOP macro. You should be able to load
loop.scm into STklos without needing anything else from CM.
Version “0.70” released 2005-05-27
The main changes in this release are: a new back-trace system, a
conform call/cc
/dynamic-wind
implementation
and some performance enhancements.
- Added a way to have a back-trace when an error occurs
call/cc
has been completely implemented. Its interaction withdynamic-wind
is now conform to R5RS.- Performance improvements
- Added some infrastructure for auto-testing a newly built system.
- New primitives
port-rewind
port-seek
current-loading-file
decode-float
read/ss
write/ss
repl
- Multiple EOF can be seen now on an input file to allow staged REPLs
- Added the configure options
--with-provided-gc
and--with-provided-regexp
to force the usage of our GC and PCRE versions, even if there are some version already installed on the system - The boot file is now integrated in the VM instead of being read from a file. This enhances the loading time of the interpreter a bit.
Describe
shows more information for structures types and conditions.- The object system takes now into account conditions and conditions types
- Documention updated
- Bug fixes
Version “0.61” released 2005-04-05
- Documentation updated
- Distribution uses now PCRE 5.0 for regexp
- Build process has changed
- Performance improvement thanks to VM and I/O optimizations
- Added a way to download and install STklos extensions
- Better error signaling on undefined variables when compiling files
- Minor enhancements:
- New primitives
eval-from-string
require/provide
read-chars
read-chars!
write-chars
get-password
- Implementation of SRFI-60 (Integers as bits)
- Bug fixes
Version “0.60” released 2004-11-29
This version is mostly a correcting version which fixes a serious bug on file loading introduced in release 0.59. Very minor changes since previous release
- SRFIs can also have symbolic names
- Minor modifications to allow the compilation of Skribe with STklos on Win32
- Added a bunch of functions on dates
- Implementation of SRFI-55 (Require-extension)
- Bug fixes
Version “0.59” released 2004-11-04
- Documentation has been rewritten in Skribe
- Added Dominique Boucher LALR(1) parser generator. Thanks to Dominique for allowing me to do so
- Added the future R6RS comment syntax #;
- New primitives
read-from-string
load-path
load-verbose
load-suffixes
fork
port-current-position
port-closed?
- New implemented SRFIs
- SRFI-10 (Sharp Comma External Form)
- Bug fixes
Version “0.58” released 2004-07-17
- Better Win32 port (was no more fully functional since 0.55)
- Added a way to configure the system with our version of GMP even if GMP is installed
- Added structure types
- Stack size can be changed when the VM is launched
- New port on Octane/SGI Irix (by Joshua Boyd) and Itanium
- Added the
--interactive
option for embedded VM - Compiler can add line information to the generated code to ease debugging
- error locations are more accurate now
- New primitives
winify-file-name (for Win32 only)
sleep
with-input-from-port
with-output-to-port
with-error-to-port
- New implemented SRFIs
- SRFI-34 (Exception Handling for Programs)
- SRFI-35 (Conditions)
- SRFI-36 (I/O Conditions)
- SRFI-48 (Intermediate Format Strings)
- Bug fixes
Version “0.57” released 2004-01-14
- Added support for non Finked Mac-OS X
- Added the Danny Dub頬(ref :url “http://www.iro.umontreal.ca/~dube/” :text “SIlex”) lexical analyser generator to the distribution. Thanks to Danny for allowing me to do so
- New primitives
fork
register-exit-function!
html->string
uri-parse
chmod
- New implemented SRFIs
- SRFI-16 (Syntax for procedures of variable arity)
- SRFI-26 (Notation for Specializing Parameters without Currying)
- Bug corrections
New web site 2003-11-14
The new web site is online now. It is written in Skribe and compiled using version 0.56 of STklos
Version “0.56” released 2003-11-06
- The reader recognizes now the DSSL keywords #!rest, #!optional and #!key.
- Added the definition of feature
stklos
for SRFI-0 (Feature-based conditional expansion construct) - New parameter object:
real-precision
used to change the precision used when displaying a real number - New primitives
hostname
regexp-quote
make-path
file-separator
hash-table-update!
date
read-with-shared-structure
write-with-shared-structure
- Extended procedures:
gensym
parse-arguments
- New implemented SRFIs
- SRFI-27 (Source of random bits)
- SRFI-38 (External representation of shared structures)
- SRFI-39 (Parameters objects)
- Bug corrections
Version “0.55” released 2003-06-25
This version of STklos is a maintenance release which corrects some bugs. No new feature.
Version “0.54” released 2003-02-14
- Evaluation of parameters is now from left to right rather than the opposite.
- Addded Sockets support
- Changed the Boehm GC version to 6.1
- Code cleaning (again) to be accepted by gcc-3.x
- New Ports: Solaris, Win32, Mac OS X
- New primitives
port-idle-register!
port-idle-unregister!
port-idle-reset!
glob
canonical-path-name
expand-file-name
basename
dirname
decompose-file-name
- New implemented SRFIs
- SRFI-23 (Error reporting mechanism)
- SRFI-30 (Nested Multi-line Comments)
- SRFI-31 (A special form for recursive evaluation)
- Bug corrections
Version “0.53” released 2002-08-06
- Changed the Boehm GC version to 6.1 alpha5
- Code cleaning to be accepted by gcc-3.x
- New primitives
pretty-printer
trace
apropos
die
pair-mutable?
vector-mutable?
string-mutable?
string-titlecase
string-titlecase!
symbol-value*
- New implemented SRFIs
- SRFI-7 (Feature-based program configuration language )
- SRFI-11 (Syntax for receiving multiple values)
- SRFI-14 (Character-Set Library)
- SRFI-28 (Basic Format Strings)
- New syntax:
in-module
- Bug corrections
Version “0.52” released 2002-04-10
- Compiler has been rewritten and deliver code which is more efficient
- New command
compile-file
to compile a STklos file to byte-codes - Complete rewriting of GTklos (support of GTK+ in
STklos)
- the rewriting is still incomplete and needs some work
- support of the Canvas widget needs some work
- more general event management
- All the demos have been rewritten
- Better error reporting
- Errors can now be browsed with Emacs
next-error
andprevious-error
- Virtual slots can now have an initial value
- new option:
--no-init-file
- Added bitwise operations on integers (and bignums)
- New form
parse-arguments
to simplify command line arguments parsing - Better support of dynamic loading
- Minimal LDAP support
- Support of active-slots (as in old *STk**)
- PCRE package version used is now 3.7
- GC package used is now 6.0
- More documentation
- There are now man pages for stklos and utilities
- Many small improvements
- Added the Bigloo
match-case
andmatch-lambda
- New primitives
key-delete!
key-delete
program-name
port-file-name
full-current-time
seconds->date
- New implemented SRFIs
- SRFI-2 (AND-LET: an AND with local bindings, a guarded LET special form)
- SRFI-4 (Homogeneous numeric vector datatypes)
- SRFI-8 (Receive: Binding to multiple values)
- SRFI-9 (Defining Record Types)
- SRFI-22 (Running Scheme Scripts on Unix)
- Bug corrections
Version “0.51” released 2001-03-12
- Added R5RS hygienic macros
- Added compatibility with the Aubrey Jaffer’s SLIB
- New port on Alpha/Linux
- Some parts of the VM have been rewritten to integrate full
call/cc
(not yet finished) - New implemented SRFIs
- SRFI-0 (Feature-based conditional expansion construct)
- SRFI-1 (List Library)
- Exact reals can be read now (e.g
#e3.14 =157/50
) - New demo:
edit.stk
- New primitives
current-time
running-os
find-path
call/ec
load-path
set-load-path!
load-suffixes
set-load-suffixes!
- Bug corrections
Version “0.50” released 2001-01-17
First public release