Releases: damien-mattei/Scheme-PLUS-for-Racket
Scheme+ for Racket version 12.1
Scheme+ for Racket version 11.7
Scheme+ for Racket version 11.7
Changes of version 11.7:
Removed debug info display that should have been commented before releasing the previous version.
Some new doc will be commited, but it should not be as it is work in progress.
Full Changelog: v11.5...v11.7
Scheme+ for Racket version 11.5
Scheme+ for Racket version 11.5
Changes of version 11.5:
Correct a bug introduced in v11.3: in def+
source code it is no more $nfx$
that should be used but instead $nfx$-rec
.
Rationale: def+
allows both infix and prefix expression in normal parenthesis ( ) by autodetection and this feature is mainly done by $nfx$-rec
, at contrary $nfx$
is now generally preferred for expressions that should be only infix,for example the ones in curly parenthesis { }.
Full Changelog: v11.4...v11.5
Scheme+ for Racket version 11.4
Scheme+ for Racket version 11.4
Changes of version 11.4:
Correct a bug introduced in v11.3 by commenting 2 lines of code that where indeed usefull for multiple in/equalities, now works again.
Examples:
{#t and (#f or 1 < 2 <= 2)}
(and #t (or #f (and (< 1 2) (<= 2 2)))) ; displayed parsed code
#t
#<eof>
{0 ≤ 1 ≤ 2 and #f}
(and (≤ 0 1 2) #f)
#f
Full Changelog: v11.3...v11.4
Scheme+ for Racket version 11.0
Scheme+ for Racket version 11.0
Changes of version 11.0:
Less syntax transformers used.Infix to prefix with operator precedence is now done by default in the reader parser stage. This result in better compatiblity with other language that change the syntax, for example it should be compatible with Qi (even if not tested).Also the external parsing allows extended features with superscripted syntax with not only constants but variables too.
Example:
(define (foo) (define n 3) {3 ⁻²·⁽ⁿ⁻⁴⁾})
(foo)
9
Scheme+ for Racket version 10.8
Scheme+ for Racket version 10.8
Changes of version 10.8:
Only internal changes in code. Prepare for a greater upgrade.Moved some n-arity code use from nfx to infix-with-precedence-to-prefix module.
Updated relatively with the code changes the personal internal documentation design of Scheme+ which is hosted in the Kawa Scheme+ project for historical reason.
Scheme+ for Racket version 10.7
Scheme+ for Racket version 10.7
Changes of version 10.7:
No change in API but i removed depandancies between Scheme+ and SRFI-105-curly-infix that was alternating-parameters procedure. The procedure is now duplicated like it was in old versions. This is not elegant but remove dependancies that would lead in future version when i will use more scheme+ procedure in SRFI-105 parser in fatal circular dependancies.
Scheme+ for Racket version 10.5
Scheme+ for Racket version 10.5
Correct some typos about assignment operators.(strangely a line was commented)
Check that infix code is correct before parsing it to prefix.(previously some wrong code could have been truncated by the parser to the most great valid expression)
Scheme+ for Racket version 10.4
Changes of version 10.4:
Correct a bug that ommiting assignment operators (<- := -> =:
) from being correctly detected as infix in the case the first argument is a procedure which is arising with Racket's contracts.
Example:
{positive-integer? -> (listof positive-integer-triplet?)}
The bug was also preventing a known scheme procedure to be re-assigned (note that by definition procedure are immutable in a Racket module), example now working:
(define (my-cons a b) (display "hello from my-cons") (newline) (cons a b))
(declare a-new-cons)
{a-new-cons := my-cons}
(a-new-cons "hello" "world")
hello from my-cons
'("hello" . "world")
Note for reader: i apologize because perheaps this summary is not clear. At least for Racket's contract i have to update Scheme+ and the pragmas code of SRFI-105.
Deprecate range.rkt
module providing in-range
and reversed
as in-range
is already existing for stream in Racket and was conflicting and used as list which is already done by range
from racket/list
. reversed
was just reverse
and was just named the same way as in Python for porting code.
Added some more examples and update code examples according to this release.
Scheme+ for Racket version 10.3
Scheme+ for Racket version 10.3
Allow multiples In/equalities in expression, examples:
(when {0 ≤ x0 ≤ xws and 0 ≤ x1 ≤ xws and
0 ≤ y0 ≤ ywsp and 0 ≤ y1 ≤ ywsp}
(send dc draw-line
x0 y0
x1 y1))
{#t and (#f or 1 < 2 <= 2)}
#t
{#t and (#f or 1 < 2 < 2)}
#f
(in/equalities-state-1 '(x + 2 < 3 and a + 1 < 3 * b <= c - 1 < d + 2 or y * 3 > 4 and f and 1 < 2 < 3) '() '() '() '())
'(x + 2 < 3 and ((a + 1) < (3 * b) <= (c - 1) < (d + 2)) or y * 3 > 4 and f and (1 < 2 < 3))
removed image doc (now in Scheme+ for Kawa)