[CM] S7 integrated in TIC-80, and bug reports

David St-Hilaire sthilaire.david at gmail.com
Wed Feb 1 17:48:26 PST 2023


Hi! First I hope that I'm sending this to the right place! I'm working at
integrating S7 into the tic-80 fantasy console (https://tic80.com/)

I've been craving using scheme for these fun toys and decided to add
support to this open source console. It's going very well and should be
done soon!

While I was texting my integration, I came across two issues that seems
like S7 bugs:

- if you can map inside a define-macro you get a 100% crash. Si e for
instance

(define-macro (test x . args) (list ,@(map car args)))
(test 10 ('x 1) ('y 2))
;; Seg fault

- The second issue is the fact that macro expansion seems to happen after
set! arguments are parsed. For example this works:

(let ((x (cons 1 2))) (set! (car x) 3) x) ; (3 2)

Yet this doesn't:

(define-macro (test x) `(car ,x))
(let ((x (cons 1 2))) (set! (test x) 3) x) ; error

I don't know if these are real issues or of that are known but I wanted to
report them because they caused me some problems!

I'm really at how easy it was to use and embed S7! It was really a breeze!
Well done!

ps: it seems that performance wise it runs a bit slowly though

Cheers!

--
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cm-mail.stanford.edu/pipermail/cmdist/attachments/20230201/396dca75/attachment.html>


More information about the Cmdist mailing list