Cyclone Scheme
0.4
|
Features
import
declaration. A program can now also use cond-expand
to selectively expand import
declarations.-A
and -I
compiler options from SRFI 138 to cyclone
:
-A directory
Append directory to the list of directories that are searched in order to locate imported libraries.
-I directory
Prepend directory to the list of directories that are searched in order to locate imported libraries.
-CP
, -CE
, and -CL
compiler options to allow passing arbitrary flags to the C compiler:
-CP cc-commands
Specify a custom command line for the C compiler to compile a program module. See Makefile.config for an example of how to construct such a command line.
-CE cc-commands
Specify a custom command line for the C compiler to compile an executable.
-CL cc-commands
Specify a custom command line for the C compiler to compile a library module.
display
and write
.make_int
C macro which was deprecated and could cause problems when used in FFI functions.with-handler
exception handler form based on the syntax from Bigloo.Bug Fixes
equal?
has been updated to check bytevectors for deep equality.#\space
correctly when output via write
.ck_string.h
which is not provided in older versions of libck
.Features:
#true
and #false
.Bug Fixes
#\tab
, #\alarm
, and #\return
.+
or *
without any arguments.((lambda x x) 3 5)
.Features:
current-thread
to SRFI 18.include
and include-ci
macros.Bug Fixes
cyclone
on 32-bit platforms.Features:
exact-integer-sqrt
to (scheme base)
.+inf.0
, -inf.0
, +nan.0
, and -nan.0
.cond-expand
to test for whether a library exists using the form (library {library name})
.-O
to set the optimization level. For now there is -O0
to disable optimizations and the default setting to enable them. Going forward there will be more fine-grained control.Bug Fixes
nan
.AI_V4MAPPED
and AI_ALL
, which are not defined on OpenBSD.member
functions to always return the list when a value is found, instead of #t
.string->number
to return #f
if the string cannot be converted.set-car!
) was passed an expression rather than an identifier as the variable argument.Features:
assq
, assv
, memq
, and memv
back to primitives for improved performance. In addition the compiler was modified to allow for more efficient compilation of assoc
and member
.only
, except
, prefix
, and rename
.define-syntax
from eval
.get-environment-variables
function from R7RS.Bug Fixes
let-values
macro.error
by using write
to output objects as they are represented in memory.(random-source-randomize! default-random-source)
when using SRFI 27.list->string
encounters a list element that is not a character.Features:
and-let*
parameterize
from section 4.2.6 of R7RS to the (scheme base)
library.let-values
and let*-values
to (scheme base)
.infinite?
, finite?
, and nan?
to (scheme inexact)
.(scheme base)
- open-input-string
, open-output-string
, and get-output-string
.(scheme base)
- get-output-bytevector
, open-input-bytevector
, and open-output-bytevector
.cyclone
to also search the current working directory for built-in headers and libraries.Bug Fixes:
write
and display
.write
to display escaped character sequences (EG: \t
) instead of literal characters.((lambda test (write test)) 1 2 3 4)
eval
to handle functions that take an optional number of arguments.number->string
to omit leading zeros for binary conversions.apply
to use the proper semantics when receiving more than one data argument.assoc
and member
functions to accept an optional comparison function, and modified both families of functions to be native Scheme functions instead of C primitives.import
, begin
, and export
sections.