Changes in VSCode behaviour running v0.9.1 extempore

18 views
Skip to first unread message

George

unread,
May 26, 2026, 12:59:00 AM (14 days ago) May 26
to Extempore
Ben
I noticed a couple of changes in the way Code behaves while running extempore code.

1. One is that selecting several scheme statements at a time will result in only the first of them being evaluated. For example:

selecting both of these and hitting Command + Enter

(make-instrument samp1 sampler)
(make-instrument fmsynth fmsynth)

will evaluate only the first.

2. I was in the habit of quietening something like this from electrofunk.xtm:

(define test808
(lambda (beat dur)
(play samp1
(case (modulo beat 4)
((0 1 2 3) *gm)
((1/2 3/2 5/2 7/2) *gm-mute-hi-conga*)
(else -1))
160 .1)
(play samp1 (random '(60 58 55 64)) (cosr 120 40 7/3) .01)
(callback (*metro* (+ beat (* .5 dur))) 'test808 (+ beat dur) dur)))

(test808 (*metro* 'get-beat 4) 1/4)

by adding a couple of parentheses after
(define test808
(lambda (beat dur) ))

And then re-evaluating.
Now it won’t work unless I do this:
(define test808
(lambda (beat dur) #f))

which is fine once you get used to it!

3. I also noticed the period character appearing in strange places when I press spacebar.
But that behaviour may have disappeared as I can’t reproduce an example.

I see extempore extensions has been modified last week so maybe you are working on these changes.

Anyhow Ben I am enjoying the 0.9 version. I appreciate that you have done lots of work on it.
Thanks
Regards
George

George J Wright




Ben Swift

unread,
May 26, 2026, 9:11:05 PM (13 days ago) May 26
to extemp...@googlegroups.com, Extempore
Hi George, can you pull the just created v0.9.2 and see if that fixes it?

Cheers
Ben

On 26 May 2026, at 2:59 pm, 'George' via Extempore <extemp...@googlegroups.com> wrote:

Ben
--
You received this message because you are subscribed to the Google Groups "Extempore" group.
To unsubscribe from this group and stop receiving emails from it, send an email to extemporelan...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/extemporelang/9cfc2929-1f2a-44f2-b0f3-101aef1ed959n%40googlegroups.com.

Ben Swift

unread,
May 27, 2026, 12:28:33 AM (13 days ago) May 27
to 'George' via Extempore
Hi George,

Thanks for the careful report --- good news on item 1.

1. Multi-statement eval. This was a real regression from the TinyScheme → s7 swap in v0.9.0. The s7-backed eval path was using s7_eval_c_string, which reads exactly one top-level form and silently discards anything after it; the old TinyScheme equivalent used to do the load-style "iterate every form" thing instead. I've pushed v0.9.2 with a one-line fix and binaries are up at https://github.com/digego/extempore/releases/tag/v0.9.2 --- selecting multiple s-expressions and hitting Cmd+Enter should now evaluate them all.

2. Empty lambda body. This one isn't a bug as such. Both R5RS and R7RS require at least one expression in a lambda body, and s7 enforces it; TinyScheme was the permissive outlier. Your #f workaround is exactly right --- '() or (begin) work too if you prefer something even less semantically loaded. Worth knowing about for the comment-out-by-stripping-the-body habit; I'll add a line about it to the v0.9.x migration notes.

3. Stray period on spacebar. I had a dig through the VSCode extension and the only character it intercepts on-type is newline --- no handler for space or period anywhere. The vscode-extempore extension itself hasn't actually been touched since April 2021 (the "modified last week" you spotted may have been a marketplace listing artifact rather than a code change). My best guess is paredit/parinfer or some other lisp-aware extension sitting alongside it. If you can ever pin down a repro I'll happily dig further.

Thanks again, and glad you're enjoying 0.9.

Cheers,
Ben
>(lambda (beat dur) *))*
>
>And then re-evaluating.
>Now it won’t work unless I do this:
>(define test808
>(lambda (beat dur) *#f))*
>
>which is fine once you get used to it!
>
>3. I also noticed the period character appearing in strange places when I
>press spacebar.
>But that behaviour may have disappeared as I can’t reproduce an example.
>
>I see extempore extensions has been modified last week so maybe you are
>working on these changes.
>
>Anyhow Ben I am enjoying the 0.9 version. I appreciate that you have done
>lots of work on it.
>Thanks
>Regards
>George
>
>George J Wright
>geor...@bigpond.net.au
>
>
>
>
>--
>You received this message because you are subscribed to the Google Groups "Extempore" group.
>To unsubscribe from this group and stop receiving emails from it, send an email to extemporelan...@googlegroups.com.
>To view this discussion visit https://groups.google.com/d/msgid/extemporelang/9cfc2929-1f2a-44f2-b0f3-101aef1ed959n%40googlegroups.com.


--

Cheers,
Ben

George J Wright

unread,
May 28, 2026, 7:10:02 PM (11 days ago) May 28
to extemp...@googlegroups.com
Ben
I'm dazzled by your skills at all this!
Your v9.0.2 mod #1  above just works. Your explanation for #2 and #3 are valued. I haven't found anything on #3 as yet.
Thanks.

Just for the record I outline the steps I had to go through to get the new version started on macOS Tahoe 26.5.

1. On starting the new extempore version  I get a "extempore" not opened message popup.
2. Go to System Settings > Privacy & Security and scroll down to Security.
3. There is a message "extempore" has been blocked to protect your Mac.
4. Click the Allow Anyway button.
5. In Terminal stop extempore and restart it.
6. Everything gets stopped again at xtmsndfile where the  libsndfile message comes up.
7. Repeat steps 2 to 5 for libsndfile and then all goes normal again.

Regards
George

George J Wright


Reply all
Reply to author
Forward
0 new messages