RacketWeek / How To Design Languages starts in 8 minutes and I COULD NOT BE MORE EXCITED

This will be an update thread I guess!

Introductions done! Lots of cool people here.

I was typically too verbose in my self-introduction, oops

Show thread

Language Oriented Programming section now starting

school.racket-lang.org/2019/pl

core idea: most languages are multiple languages, composed

Show thread

Jay is showing off how a macro works by using DrRacket's Macro Stepper. "Sorry, I've never used the macro stepper." Worked right on the first try, though.

Show thread

I may have misheard, maybe he said "I never use" rather than "I've never used"

Show thread

Jay showing how to break hygeine.

Jay and Matthias: "but don't do it"

Me: but wait... you can't use this to exfiltrate information from a module that it didn't provide can you?

Them: yes but just don't do it

Me: but this has security implications for the stuff I'm working on

Them: Yep, talk to these people afterwards, we shouldn't distract the class

Me, internally: aaaaaaaaaaaa

Show thread

It sounds like there's a path forward so I'm not too worried but hoo boy

Show thread

Good news that Matthew Flatt told me they planned for this, and it should be possible for me to make a safe racket

Show thread
Follow

Maybe I need to spend the entire evening going through this part of the class

· · Web · 1 · 0 · 0

One other thing that I hadn't considered before today is that a hygenic macro can actually install definitions in the current scope. For example:

(define-simple-macro (maybe-simple-macro)
(begin
(define x 2)
(define y 3)))

(define (foo)
(maybe-evil-macro) ; binds x and y
(+ x y))

In fact I have used such macros before, but hadn't considered the security risk they could pose: you could "surprise" a user by shadowing variables in a previous scope.

I wonder how W7 deals with it?

Show thread

The thing that's semi-evil is it doesn't *look* like maybe-evil-macro is likely to inject bindings into your current scope. Admittedly this isn't much of a concern in present Racket programs, but could more seriously break security considerations in something like dungeon

Show thread

dungeon is my vague plan for an ocap-safe module layer for Racket

Show thread
Sign in to participate in the conversation
Octodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!