Introductions done! Lots of cool people here.
I was typically too verbose in my self-introduction, oops
Language Oriented Programming section now starting
core idea: most languages are multiple languages, composed
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.
I may have misheard, maybe he said "I never use" rather than "I've never used"
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
It sounds like there's a path forward so I'm not too worried but hoo boy
I'm mostly lost
Maybe I need to spend the entire evening going through this part of the class
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 x 2)
(define y 3)))
(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?
Now we're on to Modules, Macros, Languages https://school.racket-lang.org/2019/plan/wed-mor-lecture.html
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!