are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
3.9.0
=====
* Prerelease of the 4.0.0 that will be R6RS compliant.
* The doc directory temporary removed from distrib.
The old docs obsolete and new is not ready.
* Simple R6RS-like library manager implemented.
"load" function removed (use "import" syntax instead).
* the ksi module system removed in a favour of new R6RS library system.
* `psyntax.ss' that implemented 'syntax-case' in older revisions of the ksi, was removed.
As a result, only core syntax evaluated by ksi.
And ksi core is not a R6RS core :-(
* '(gensym)' generate (almost) unique symbol names.
As a part of generated symbol name used a 'session_id' that is initialized at startup.
So, each ksi invocation has its own 'session_id'.
This can help (in a future) to hardly optimize the scheme code evaluation
Now the 'session_id' is initialized with random bits converted to readable string.
* the "do" syntax, "delay" syntax and "force" function was removed from the ksi core.
* the 'struct Ksi_Environ' and companions was rewriten almost completly.
Now the environment has the name, the export list
and the hashtab that maps the symbol to the value
A value can be a plain value (the symbol is a variable) or a syntax value.
If a symbol is bound to a syntax value, it can not be defined, assigned or
used in any other case except in a intented syntax form
As a special case, if a symbol is bound to a syntax value and the value is a procedure,
the procedure is applyed to the form before evaluating it.
(Look at 'ksi_defsyntax()' and 'ksi_compile()' for details).
This mechanics is intended for low-level macros (as "define-macro!")
and derived forms such as 'cond', 'case', etc.
The normal sanitary macro system planned ;-).
* All packed-in-the-pointer objects was removed.
Such objects as 'ksi_nil', 'ksi_false' and so on,
are implemented as a pointers to a memory location
that allocated when initializing the ksi library.
Do not be suprized the error if you use its before calling `ksi_init()'.
* The 'struct Ksi_Char' (added) is internal representation of a character now.
(first step to unicode).
* the GMP library used for exact arithmetics now.
As a result, the ksi supports the exact rational numbers now.
* The short integers was removed. Bignums are the only exact numbers now.
And predefined constans 'ksi_zero', 'ksi_one', etc was removed too.
(Use 'ksi_long2num()' in C code)
* A flonum has real and imag part always, and so, a flonum is a complex number now.
But 'real?' returns #t if imaginary part is zero
and 'number->string' do not print "+0.0i" if imaginary part is zero.
(This is not what R6RS requires but alas, it is the ksi)
* balanced comments are writen within "#| |#" construct now
(not with "#! !#" as in the previous revisions of the ksi).
The sequence "#!<identifier>" used for the reader directives now.
In addition, to support the scheme scripts, the sequence "#! " (note whitespace)
and "#!/" in the very begin of a file supposed as a one-line comment.
* Reader now case-sensitive by default, as required R6RS.
Use the "#!fold-case" directive to switch the reader to the case-insensitive mode,
and "#!no-fold-case" to switch to the case-sensitive mode back.
* By default, the reader parses postfix keyword notation, such as "key:".
"#!keyword-prefix" switches the reader to prefix mode, such as ":key",
and "#!keyword-postfix" switches the reader back to postfix mode.
* By default, the reader do not parses the old ksi keyword notation, such as "#:key".
Use the "#!keyword-sharp" directive to switch the old mode on,
and "#!no-keyword-sharp" to switch off.
* "#!r6rs" directive switches the reader to the R6RS mode,
and "#!ksi" directive switches the reader to the default mode back.
In the r6rs mode:
-- the keywords are not parsed at all;
-- any sequence that starts with digit, '+', '-', '.', tried to be parsed as a number
and, if cannot, exception raised.
Otherwice the sequence is parsed as a symbol.
In the ksi mode:
-- the keywords are parsed;
-- any sequence, that starts with digit, or '+', '-', '.' folowed by digit,
tried to be parsed as a number and, if cannot, exception raised.
Otherwice the sequence is parsed as a symbol.
So, the sequence like '+x' is parsed as symbol in the ksi mode, but raise exception in the r6rs mode.
Note that in the previous revisions of the ksi, any sequence,
that cannot be parsed as a number, was considered as a symbol (never exception raised).
3.5.1
=====
* bugfixes
* (Windows) ksi dll name has version info now.
3.5.0
=====
* code refactoring
makeinfo if no native makeinfo executable exists. Honor TEXINFO_REQD
when determining whether the native makeinfo can be used.
* Remove USE_MAKEINFO and replace it with USE_TOOLS+=makeinfo.
* Get rid of all the "split" argument deduction for makeinfo since
the PLIST module already handles varying numbers of split info files
correctly.
NOTE: Platforms that have "makeinfo" in the base system should check
that the makeinfo entries of pkgsrc/mk/tools.${OPSYS}.mk are
correct.
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
This is a Ksi (Ksi Scheme Interpreter), a portable,
embeddable Scheme implementation written in C.
Ksi provides a machine independent execution platform that
can be linked in as a library when building extensible programs.
And what is more important it is not a Guile. :-)