source: project/chicken/trunk/NEWS @ 12306

Last change on this file since 12306 was 12306, checked in by felix winkelmann, 13 years ago

updated NEWS

File size: 27.9 KB
3- the macro system has been completely overhauled and converted
4  to hygienic macros
5- a macro-aware module system has been added
6- added "-sx" option to csi
7- removed the following deprecated functions:
8   [un]shift!
9   andmap ormap
10   byte-vector? byte-vector-fill!
11   make-byte-vector byte-vector
12   byte-vector-set! byte-vector-ref
13   byte-vector->list list->byte-vector
14   string->byte-vector byte-vector->string
15   byte-vector-length
16   make-static-byte-vector static-byte-vector->pointer
17   byte-vector-move! byte-vector-append!
18   set-file-position! set-user-id! set-group-id!
19   set-process-group-id!
20- the situation-identifiers "run-time" and "compile-time" have
21  been removed
22- the compiler options "-check-imports", "-import" and "-emit-exports"
23  have been removed
24- new procedures:
25  strip-syntax
26  expand
27- new macros
28  define-syntax
29  module
30  export
31- the following macros have been removed:
32    define-foreign-record
33    define-foreign-enum
34    define-macro
35    define-extension
36- "local" mode, in which locally defined exported toplevel variables can
37  be inlined
38- new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file"
39- optimization levels changed to use inlining:
40  -optimize-level 3: enables -inline -local (but *not* -unsafe)
41  -optimize-level 4: enables -inline -local -unsafe
42- increased default inlining-limit to 20
43- support for cross-module inlining
44- "make <VARIABLES> bench" runs the benchmark suite
45- "chicken-setup" has been replaced by new command line tools
46  "chicken-install", "chicken-uninstall" and "chicken-status", which are
47  more flexible and allow greater freedom when creating local or application-
48  specific repositories
49- extension-installation can be done directly from SVN repositories or a local
50  file tree.
51- enabled chicken mirror site as alternative download location
55- Fixes to the MinGW build.
56- PCRE 7.7
57- Bug fix for bitwise-or use [Joerg Wittenberger]
58- Bug fix in thread-terminate! [thanks to Joerg Wittenberger]
59- Cygwin build patched to put the runtime libraries in the right place.
60  [thanks to Nathan Thern]
61- added support for out-of-tree compilation (via the SRCDIR variable)
62  [thanks to Ivan Shmakov]
63- bug fix for (string->number "/")
64- support for selective procedure profiling in the compiler
65- unit utils: moved file- and pathname-related procedures to unit files
66- new unit files
70- bug fix for bitwise-or use [Joerg Wittenberger]
71- bug fixes for tickets  393, 430, 436
72- bug fix pointer->address
73- the build system now sets the SONAME field of under Linux
74- fixed an allocation bug in decode_literal
75- some fixes to the build system when USE_HOST_PCRE is set
76- added use of unit ports to unit extras and chicken-setup
77- unit utils and extras: moved port extensions to unit ports
78- new unit ports
82- unit extras: moved lists, queues, strings to data-structures
83- new unit data-structures
84- unit library: symbol->string now copies its argument
85- chicken-setup: added option -svn-trunk
86- unit utils: added file-copy and file-move (request by the einit team)
87- unit srfi-69: added hash-table-clear!
88- unit srfi-69: new
89- unit extras: moved SRFI 69 to unit srfi-69
93- - cleaned logic to prevent invalid error message
94- csc - fixed bug preventing static linking of executables (build order issues)
95- unit regex: PCRE 7.6
96- unit regex: avoid string copy in regex matching [Jim Ursetto]
97- chicken-setup: eggs are downloaded to and compiled in a temporary
98  directory determined by CHICKEN_TMPDIR or TMPDIR environment
99  variables, or by -build-prefix and -download-dir options,
100  respectively; -destdir option is replaced with -install-prefix.
101- unit regex: PCRE 7.6
102- unit tcp: use of offset into string rather than substring for faster
103  socket write [Jim Ursetto]
104- MSVC can now be used to build the system, when standard UNIX tools (like
105  MSYS) are available [Many thanks to Ashley]
106- unit library: added "flonum-print-precision" for changing the default of
107  16
108- unit posix: create-directory can now handle DOS drive letters
109  in the given path
110- unit posix: added stat- predicates for file types
111- unit posix: added strftime format string support to "time->string"
112- unit posix: added "string->time", which takes a strptime format string
113  (Unix only)
114- unit extras: added "left-section", "right-section", "none?", "always?",
115  and "never?"
116- unit extras: added "hash-table-merge", "hash-table-map",
117  "hash-table-for-each", and extended "make-hash-table" with minimum/maximum
118  load & initial value
119- unit extras: added "eq?-hash", "eqv?-hash", "equal?-hash", "number-hash",
120  "symbol-hash", "keyword-hash", "##sys#number-hash-hook", and
121  "hash-by-identity" as a synonym for "eq?-hash"
125- upgraded scheme-complete.el to version 0.6 [Thanks to Alex Shinn]
126- unit library: added "blob=?"
127- the library can optionally be built with an already installed libpcre
128- chicken-setup accesses a separate set of eggs, specific on the major CHICKEN
129  version (3)
130- added csi options "-p" ("-print") and "-P" ("-pretty-print")
131- support for Mac OS X universal binaries hase been added [Thanks to Zbigniew]
132- `cond-expand' is available in the set of core macros [Thanks to Alex Shinn]
133- On sparc64 architectures more than 126 procedure arguments are allowed
134  [Thanks to Peter Bex]
135- posix unit: "seconds->string" and "time->string" have now their trailing
136  #\newline character removed. THIS IS A BACKWARD-INCOMPATIBLE CHANGE.
140- the SVN checkout can now be built from a bootstrapping tarball without
141  the need for a pre-installed "chicken" executable
142- literals are compiled in a platform-independent binary encoding into
143  the executable which results in faster C compile times and moe compact
144  binaries. This also makes the "compress-literals" option and declaration
145  unnecessary
146- the "-compress-literals" compiler option and the "compress-literals"
147  declaration have been removed
148- the CHICKEN_HOME environment variable is now obsolete, use CHICKEN_PREFIX
150- added pre GC hook C-level variable
151- Cygwin is now fully supported
152- removed deprecated functions:
153  extension-info
154  print-backtrace
155  test-feature?
156  ___callback (chicken.h)
157  foreign-callback-lambda[*]
158  thread-deliver-signal!
159  critical-section
160  enable-interrupts
161  disable-interrupts
162  invalid-procedure-call-handler
163- There is no platform-dependent pathname directory separator
164  anymore, the slash ("/") and backslash ("\") characters can be
165  used interchangably
166- New procedures "regexp*", "regex-optimize" and "make-anchored-pattern"
167  (regex library unit)
168- New procedures "terminall-size", "terminal-name" and "get-host-name"
169  (posix library unit)
170- chicken-setup: can create repository catalog file from local
171  SVN checkout of egg repository
172- chicken-setup has the new option "-host-extension" to force
173  compiling extensions in "host" mode when using a cross-compiling
174  chicken
175- Better cross-development support for the build system (the
176  Makefile accepts various variables for customizing the build)
177- "file-size" and "file-stat" handle file-sizes of >4GB now
178- "find-files" collects directories as well, now [Thanks to Ivan Raikov]
179- added "dist" target to toplevel makefile
180- "andmap" and "ormap" have been deprecated
181- makefiles support relinking now
182- added "thread-wait-for-i/o!" (srfi-18 library unit)
183- the "chicken-bug" program can now be used to create bug reports
184  and send them to the CHICKEN maintainers
188- New binary compatibility version (3) - installed eggs mst be recompiled!
189- deprecated "shift!" and "unshift!"
190- regex unit:
191  Uses PCRE 7.4
192- utils unit:
193  Uses compiled regular expressions
194- unit posix:
195  Uses compiled regular expressions
196- removed build option for extra symbol slot
197- added Lisp-style symbol property lists
201- countless bugfixes and minor improvements
202- new foreign types:
203  [nonnull-]unsigned-c-string[*]
204  c-string-list[*]
205- added "unused" declaration specifier
206- new GNU Make based build process
207- libffi is not used anymore, handcoded assembler is used for x86, x86-64
208  and powerpc platforms
209- library unit:
210  blob?
211  make-blob
212  blob-size
213  string->blob
214  blob->string
215- regex unit:
216  glob?
217- utils unit:
218  directory-null?
219  port-fold
220- extras unit:
221  hash-table-remove!
222- lolevel unit:
223  mutate-procedure
224- srfi-4 unit:
225  XXXvector->blob[/shared]
226  blob->XXXvector[/shared]
227- csc options:
228  -cxx-name
229  -disable-compiler-macros
230- byte-vectors have been removed and replaced by new "blob" type,
231  added various blob<->SRFI-4 vector conversion procedures in srfi-4 unit
232- ":optional" has been renamed to "optional" (the old name is still
233  available but deprecated)
234- "switch" has been replaced by "select" ("switch" is still available but
235  deprecated)
236- "tcp-connect" and "tcp-accept" handle time-outs via parameters
237  "tcp-connect-timeout" and "tcp-accept-timeout"
238- tcp unit: support for read/write timeouts
243- Many bugfixes
244- Better support for Sun's C compiler
245- Input-performance has been improved
246- PCRE (Perl compatible regular expressions) by Philip Hazel is now
247  bundled with CHICKEN
248- Static linking of extensions is now possible (when supported by
249  the egg)
250- The interpreter warns about references to potentially unbound variables
251  in loaded code and expressions entered on the REPL
252- The expansion process is traced during compilation and interpretation
253  to give (slightly) more usable syntactic context in error messages
254- library:
255  * added `any?`, `bit-set?' and `on-exit'
256- eval:
257  * new procedure `set-parameterized-read-syntax!'
258- posix:
259  * SRFI-17 setters for `file-position`, `current-user-id',
260    `current-group-id', `process-group-id'; the respective setter-procedures
261    are still available but have been deprecated
262  * `file-stat' returns more information (including device info)
263  * added `process*'
264- extras:
265  * added `read-string!'
266- utils:
267  * `apropos' and `apropos-list' procedures
268- srfi-4:
269  * added `read-u8vector', `read-u8vector!' and `write-u8vector'
270- srfi-18: 
271  * added `time->milliseconds' and `milliseconds->time'
272- csi:
273  * `-ss SCRIPTNAME' option
274- csc:
275  * accepts options given in the environment variable `CSC_OPTIONS'
276  * new options `-static-extensions' and `-host'
277- chicken/csc:
278  * new option `-keep-shadowed-macros'
279- chicken-setup:
280  * accepts options given in the environment variable `CHICKEN_SETUP_OPTIONS'
281  * allows retrieval and installation of eggs from subversion repository
282    and the local filesystem
283  * new options `-tree FILENAME', `-svn', `-local', `-revsion' and
284    `-destdir PATHNAME'
285  * added helper procedures `required-chicken-version' and
286    `required-extension-version'
287- Lots of improvements in the CMake build
289Many thanks to Ingo Bungener, Peter Busser, John Cowan, Marc Feeley,
290Stephen Gilardi, Mario Domenech Goulart, Joshua Griffith, Sven
291Hartrumpf, Daishi Kato, mejedi, Dan Muresan, Deanna
292Phillips, Robin Lee Powell, Ivan Raikov, Danial Sadilek, Alex Shinn,
293Tony Sideaway, Minh Thu for reporting bugs, suggesting improvements
294and contributing fixes.
296Thanks again to Brandon Van Every for his extensive work on the CMake
297build process.
299Special thanks to Kon Lovett for many improvements made in the posix
305- Bugfixes
306- CHICKEN can now be built using CMake <>, in fact CMake
307  is required to built CHICKEN from sources on Windows with the Microsoft
308  tools
309- the whole build process has been cleaned up and simplified
310- the "easyffi" and "tinyclos" library units have been removed from the base
311  system and are now available as separate extensions
312- the deprecated "set-dispatch-read-syntax!" has been removed
313- Will Farr cleaned up the behaviour of number-type specific numeric operations
314  ("fx..."/"fp...") with respect to safe/unsafe mode
315- added "(finite? NUMBER)"
316- the "$" macro moved into its own separate extension
317- the values of "software-type", "software-version", "machine-type" and "machine-byte-order"
318  are now registered as features and can be tested using "cond-expand" or "#+"
319- all tools now support the "-release" option
320- chicken-setup: added "-test" option
322Special thanks to Brandon Van Every, who put considerable effort into the
323CHICKEN build system and who ported it to CMake completely from scratch.
324The installation instructions and build file are extensively documented and may
325serve as a tutorial for creating non-trivial software projects with CMake.
326Thanks, Brandon! Also thanks to Bill Hoffmann and Brad King from Kitware
327for their support.
329Many thanks to Peter Bex, Toby Butzon, Thomans Chust, John Cowan, Alejandro Forero Cuervo,
330dgym, Alex Drummond, Mario Domenech Goulart, Kon Lovett, Benedikt Rosenau and Zbigniew
331Szadkowski for reporting bugs, suggesting improvements and contributing fixes.
336- Bugfixes galore
337- compiler:
338  * added support for the generation of "export" files through the "-emit-exports" option
339  * new option `-check-imports' (csc: `-G') checks for unimported symbols and can be quite
340    helpful in finding unbound variable errors (this requires all extensions ("eggs") to be
341    adapted to this new feature, a process which isn't complete yet)
342  * new declarations `emit-exports', `constant' and `import'
343  * new option `-disable-warning' and declaration `disable-warning'
344  * new options `-release' and `-import'
345- chicken-setup:
346  * new `exports' extension property
347  * option `-check' checks for extension upgrades
348  * added `-eval' option
349  * added parameters `setup-install-flag' and `setup-verbose-flag'
350- FFI:
351  * added the handy `$' macro, which lets you do foreign calls directly without declaring
352    a placeholder procedure
353  * `define-foreign-enum' for treating C enums as symbol-sets
354  * `foreign-safe-wrapper' has been deprecated
355- Slight reorganization of TinyCLOS and match macros and support code
356- `thread-join!' has been generalized to allow a thread to have multiple results
357- Renamed `thread-deliver-signal!' to `thread-signal!' and `invalid-procedure-call-handler'
358  to `set-procedure-call-handler!'
359- The system can be configured to add an extra slot to symbol objects
360- Another configuration option enables GC of unused symbols by default
361- The extension repository is now versioned to catch binary incompatible
362  installations, this requires to either move all installed extensions to the
363  new location ("$prefix/lib/chicken/1") or reinstall them
364- Now supports SRFI-61 (extended `cond')
365- Added procedures `load-relative', `tcp-buffer-size`, `string-chomp'
366- trivial implementations of `real-part', `imag-part', `angle' and `magnitude' have
367  been added to the library to allow more portable code
368- Breakpoints and single-stepping of compiled code on the function-level, new
369  procedures `breakpoint' and `singlestep'
370- csi: new toplevel commands `,info', `,step', `,br', `,ubr', `,breakall', `,breakonly',
371  `,exn' and `,c'
372- csi: `set-describer!' allows definition of custom output for the `,d' command
373- Added `integer64' foreign type specifier
374- The environment variable "CHICKEN_PREFIX" allows (together with "CHICKEN_REPOSITORY") overriding
375  the installation path prefix in case you want to install and run multiple instances/versions
376  of CHICKEN or install on a shared network
377- csc: added `-dry-run' option
378- removed `-split...' options (and the ability to generate multiple C files from a single
379  Scheme file)
380- `crictical-section', `disable-interrupts' and `enable-interrupts' shouldn't be used from
381  now on (deprecated), use SRFI-18 mutexes instead
383Many thanks to Nico Amtsberg, Arto Bendiken, Jean-Francois Bignolles, Peter Busser, Thomas Chust,
384John Cowan, Alejandro Forero Cuervo, Jaarod Eells, Brandon van Every, Graham Fawcett, Mario Domenech
385Goulart, Sven Hartrumpf, Markus Hülsmann, Goetz Isenmann, Heath Johns, Daishi Kato, Kon Lovett, Dan
386Muresan, Ian Oversby, Göran Weinholt, Burton Samograd, Reed Sheridan, Alex Shinn, Sunnan, Zbigniew
387Szadkowski and Peter Wright for their helpful contributions, suggestions and bug reports!
392- Many many bugfixes
393- compiler:
394  * new option `-profile-name FILENAME'
395- the `chicken-config' script has been removed, identical functionality can be provided
396  by `csc'
397- csc:
398  * new option `-objc' compiles generated C files in Objective-C mode
399  * accepts .m files and handles the case when only object files are given
400  * new options `-framework', `-F<dir>' and `-rpath'
401  * options `-home', `-cflags', `-ldflags', `-libs', `-cc-name' and `-ld-name'
402- chicken-setup:
403  * detects whether eggs are gzipped or not and accepts ungzipped eggs
404  * if no other actions are specified and no eggs are given on the command line, then
405    all .setup scripts in the current directory are executed
406  * added `setup-build-directory' and `setup-root-directory' parameters
407  * helper procedures `copy-file', `move-file', `remove-file' and `create-directory'
408- csi commands `,s', `,l' and `,ln' accept multiple inputs, the `trace'/`untrace'
409  macros have been replaced byy the toplevel commands `,tr' and `,utr'
410- new toplevel commands in csi can be defined with the `toplevel-command' procedure
411- `extension-info' has been renamed to `extension-information'. The old name is
412  still available, but deprecated
413- `print-backtrace' has been renamed to `print-call-chain'. The old name is still
414  available (and deprecated)
415- `transcript-on' and `transcript-off' are no longer supported
416- New macro `define-for-syntax'
417- library:
418  (get-call-chain [DEPTH])
419  (current-read-table)
420  (copy-read-table READ-TABLE)
421  (current-gc-milliseconds)
422  `print-error-message' writes now to the current output-port, not the error port
423  `number-string' does now a slightly better job converting large exact integers
424  with non-decimal base
425- extras:
426  (each PROC ...)
427  `hash-table-ref' throws (exn access) on error
428- posix:
429  (local-time->seconds TIME)
430  (utc-time->seconds TIME)
431  (local-timezone-abbreviation)
432  `directory' takes optional path and dotfiles arguments
433  `[group|system]-information' return lists instead of multiple values
434- tcp:
435  (tcp-port-numbers PORT)
436- `set-dispatch-read-syntax!' has been renamed to `set-sharp-read-syntax!' (the old
437  name is still available but deprecated)
438- evaluated code generates call-trace information (as compiled code does), which
439  results in much better back-traces.
440- new foreign types `[unsigned-]int32' and `[unsigned-]integer32'
441- added SRFI-17 setters for many accessors of the core libraries
442- tinyclos: added a couple of missing classes for core library structures
443- `let[*]-values' is now SRFI-11 compliant
444- the finalizer-table is now resized dynamically, which speeds up code that uses
445  very many finalizers [Thanks to Zbigniew Szadkowski]
446- reloading compiled code dynamically does basically work (but still leaks memory)
447- the manual contains a section on pattern matching
448- libffi is used by default, when available
449- CHICKEN has now experimental support for the "CMake" build system <>
450  Many thanks to Bill Hoffmann from Kitware and Brandon van Every for helping with this
451- added compiler/runtime support for object serialization via the `s11n' extension
452  (see <>)
454Sergey Khorev has offered to help with maintaining the Windows port of CHICKEN.
455Thanks, Sergey!
457Many thanks Jean-Francois Bignolles, Patrick Brannan, Adam Buchbinder, Hans Bulfone, Category 5,
458John Cowan, datrus, Guillaume Germaine, Mario Domenech Goulart, Daniel B. Faken, Andrey Fomichev,
459Jarod Eells, Sven Hartrumpf, David Janssens, Daishi Kato, Levi Pearson, Pupeno, Eric Raible, Benedikt
460Rosenau, Reed Sheridan, Zbigniew Szadkowski and Mark Wutka for their helpful contributions,
461suggestions and bug reports!
463Special thanks to Kon Lovett for fixing countless open issues and many useful sugestions.
468- Many bugfixes
469- The read-syntax `#+X Y' is provided as a shorthand for `(cond-expand (X Y) (else))'
470- `foreign-parse' and `foreign-parse/spec' have been removed
471- lolevel: Executable byte-vector stuff has been removed
472- SRFIs 28, 31, 62 and 69 are now officially supported
473- New compiler option `-extension' simplifies static compilation of eggs
474- csc: changed `-E' to `-P', `-E' is now an alias for `-extension'
475- Embedding:
476  * All the `entry-point' related things have been removed, as has been `define-embedded',
477    calling Scheme from C is now exclusively done with callbacks
478  * Integrated boilerplate embedding API into the `eval' unit
479  * Added `CHICKEN_continue' API function
480  * Default "stub" toplevel (`CHICKEN_default_toplevel') allows embedding without a
481    separate Scheme file
482  * Different stack-levels during invocation of CHICKEN_run or callbacks could result
483    in crashes - this is now detected (or can be checked manually)
484- Added extension-specifier `(version ...)'
485- New FFI macros `foreign-declare', `foreign-parse' and `foreign-parse/declare' replace
486  the declaration-specifiers of the same name
487- Hash-table resizing was ridiculously slow, and should now be much faster
488- `define-foreign-record' handles recursive structures
489- `require-extension' is now available by default, and so can be used with the
490  plain Scheme evaluator
491- Procedures now contain some basic debug information, unless a file was compiled
492  with `-no-lambda-info'
493- compiler: `-debug-level 2' is now the default (enables trace- and lambda-info)
494- chicken-setup:
495  * handles direct downloads from arbitrary URLs
496  * HTML documentation for eggs can now be included into the egg and will be installed
497    in the repository (using the `documentation' info-property)
498  * `chicken-setup -docindex' shows path of generated documentation index for all
499    installed eggs
500- extras:
501  * SRFI-69 is now fully supported, note that THIS WILL BREAK EXISTING CODE, since
502    the API is not compatible to the previous one
503  * `clear-hash-table!', `get' and `put!' are gone
504  * `read-file' accepts optional reader procedure and max count
505  * `read-lines' accepts filename instead of port
506- library:
507  * `signum' is now exactness-preserving
508  * `procedure-information' returns some basic debug info for a given procedure
509  * Added `(warning MESSAGE ARGUMENTS ...)'
510  * `(promise? X)'
511- posix:
512  * `(current-directory DIR)' is equivalent to `(change-directory DIR)'
513- regex:
514  * `pattern->regexp' has been renamed to `glob->regexp'
515- The `format' library unit has been removed from the base system and is noww available
516  separately
517- SRFI-17, on the other hand has been moved into the base system
518- String literals and the print-names of symbol literals are now allocated in static
519  (non-GC'd) memory
520- If static or shared build is disabled, no `...-static' executables will be generated
523Many thanks to Ashley Bone, Thomas Chust, John Cowan, Alejandro Forero Cuervo, Daniel Faken, Sven
524Hartrumpf, Daishi Kato, Sergey Khorev, Kon Lovett, Gene Pavlovsky, Reed Sheridan and Ed Watkeys for
525their helpful contributions, suggestions and bug reports!
530- Many bugfixes
531- Loads of minor improvements (better error messages, more warnings, more error
532  checks, etc.)
533- On systems supported by the "libffi" library, the 128-argument limit can
534  be exceeded (currently to an arbitrary maximum of 1000). To take advantage
535  of this, add `--with-libffi' to the configuration options when building
536  chicken
537- The `libsrfi-chicken' and `libstuffed-chicken' libraries have been folded
538  into `libchicken', so only a single library is linked with generated
539  executables, which greatly simplifies and speeds up the build process.
540  It is recommended to remove any traced of `libstuffed-chicken.*' and
541  `libsrfi-chicken.*' before installing a new release. This requires also
542  to reinstall all eggs (extension libraries).
543- The compiler is able to inline more procedure calls
544- Implicit non-multival continuations (like in `begin' or 'let') accept multiple
545  values and discard all but the first value
546- finalization should actually work now and is much more efficient (unless
547  used excessively)
548- csi:
549  `advise' has been removed
550  `-eval' implies `-batch' and `-quiet'
551  added `-require-extension'
552  short option names are now supported and may be collapsed, if unambigous
553- New runtime options:
554  -:b (enter REPL on error)
555  -:B (ring bell on every major GC)
556  -:fNNN (set pending finalizer maximum limit)
557- New compiler options:
558  -accumulate-profile
559  -inline
560  -inline-limit
561  -emit-external-prototypes-first
562- The compiler-option `-require-for-syntax' has been renamed to `-require-extension'
563  and is the same as putting a `(require-extension ...)' form directly into the code
564- Removed compiler- and interpreter option `-no-feature'
565- New declarations:
566  (lambda-lift)
567  ([not] inline)
568  (inline-limit LIMIT)
569  (emit-external-prototypes-first)
570  ([not] check-c-syntax)
571- `foreign-callback-lambda[*]' has been renamed to `foreign-safe-lambda[*]' - the
572  old names are still valid but deprecated
573- New foreign type specifier `scheme-pointer' (the same as `pointer', which is
574  deprecated now)
575- Easy FFI:
576  `___scheme_pointer' and `___byte_vector' pseudo types
577  `___pointer' and `___length' markers
578  `default_renaming' and `opaque' pseudo declarations
579  `___inout' and `___out' argument markers work also for C++ reference types
580  Recognizes `C_word' and `size_t'
581- The reader supports selective case sensitive/insensitive reading using the
582  `#cs...' and `#ci...' syntax (as supported in PLT Scheme)
583- `\uXXXX' and `\UXXXXXXXX' escape-sequences for string literals
584- `#\UXXXXXXXX' character literal syntax
585- `\v', `\a' and `\f' escape sequences and `#\delete', `#\esc', `#\alarm', `#\vtab'
586  and `#\nul' character literals
587- `chicken-setup' supports proxy connections via the `-proxy' option
588- library:
589  (set-dynamic-load-mode! MODE)
590  `(end-of-file)' has been removed (use `#!eof' instead)
591- The alternative continuation API described in Marc Feeley's paper
592  "A better API for first class continuations" is supported natively:
593  (continuation-capture PROC)
594  (continuation-graft K THUNK)
595  (continuation-return K VALUE ...)
596  (continuation? X)
597- `foreign-primitive' and `define-extension' macros
598- tinyclos:
599  (instance-of? X)
600  `define-method' specializes on all arguments and allows DSSSL keyword argument lists
601- eval:
602  (set-dispatch-read-syntax! CHAR PROC)
603- extras:
604  (hash-table-update! HT KEY PROC INIT)
605  (hash-table-exists? HT KEY)
606  (hash-table-values HT)
607  (hash-table-keys HT)
608  (alist->hash-table ALIST [TEST SIZE])
609  `hash-table->list' has been renamed to `hash-table->alist
610  `hash-table-for-each' takes the arguments in reversed order (the old order is still
611  valid but deprecated)
612  Hash-tables support now user-defined hash functions
613- posix:
614  (file-link OLD NEW)
615  (symbolic-link? FILENAME)
616  (regular-file? FILENAME)
617  errno/exist
618  `process' and `process-execute' allow passing an environment
619- regex:
620  (regexp-escape STR)
621- tcp:
622  (tcp-listener-fileno LISTENER)
623- utils:
624  (port-for-each FN THUNK)
625  (port-map FN THUNK)
626- On Windows, the batch file `win-install.bat' can be used to install the system
627  into the desired location
628- Building Chicken on Windows with the free development tools from Microsoft (VCToolkit,
629  Platform Core SDK) has been tested and is documented in the file `vctk-install.txt'
630- The `-script-meta' option has been removed
631- The srfi-25 and srfi-37 library units and the test-infrastructure facility have been
632  removed from the core system and is now separately available as an extensions (eggs)
633- The syntax-case macro and module system has been removed and also available as an
634  extension. This implies that all compiler- and interpreter options related to hygienic
635  macros and syntax-case are gone as well.
636- All strictness compiler- and interpreter options (and the `strict-reader' parameter)
637  have been removed
638- the `examples' directory and its contents have been removed from the distribution
641Many thanks to William Annis, Mark Baily, Peter Bex, Dominique Boucher, Patrick Brannan,
642Thomas Chust, Alejandro Forero Cuervo, Graham Fawcett, Damian Gryski, Sven Hartrumpf,
643Hans Huebner, Christian Jaeger, Dale Jordan, Daishi Kato, Sergey Khorev, Krysztof Kowalczyk,
644Goran Krampe, John Lenz, Kon Lovett, Scott G. Miller, Julian Morrison, Nicolas Pelletier,
645Carlos Pita, Benedikt Rosenau, Andreas Rottmann, Reed Sheridan, Alex Shinn, Andrey Sidorenko,
646Michele Simionato, Volker Stolz, Sunnan, Zbigniew Szadkowski, Andre van Tonder, Henrik
647Tramberend and Mark Wutka for their helpful contributions, suggestions and bug reports!
Note: See TracBrowser for help on using the repository browser.