Skip to content

Releases: damien-mattei/Scheme-PLUS-for-Racket

Scheme+ for Racket version 12.1

28 Aug 20:43
Compare
Choose a tag to compare

Scheme+ for Racket version 11.7

26 Aug 19:07
Compare
Choose a tag to compare

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

25 Aug 19:37
Compare
Choose a tag to compare

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

23 Aug 11:12
Compare
Choose a tag to compare

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

18 Aug 09:51
Compare
Choose a tag to compare

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

15 Aug 09:00
Compare
Choose a tag to compare

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

13 Aug 12:53
Compare
Choose a tag to compare

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

11 Aug 18:56
Compare
Choose a tag to compare

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

03 Aug 20:49
Compare
Choose a tag to compare

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

21 Jul 18:37
Compare
Choose a tag to compare

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)