tonyg changed the topic of #racket to: The Racket Programming Language -- https://racket-lang.org/ -- https://gather.town/app/wH1EDG3McffLjrs0/racket-users -- http://pasterack.org -- logged at https://libera.irclog.whitequark.org/racket/ -- This is the right place to ask for help with (Dr)Racket. Remember to wait around for an answer!
codaraxis has quit [Quit: Leaving]
monkey_ has quit [Remote host closed the connection]
williewillus has joined #racket
badkins has joined #racket
badkins has quit [Ping timeout: 260 seconds]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #racket
mzan has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
mzan has joined #racket
dos__^^ has joined #racket
badkins has joined #racket
badkins has quit [Ping timeout: 244 seconds]
jao has quit [Ping timeout: 244 seconds]
williewillus has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
codingquark has quit [Read error: Connection reset by peer]
ur5us has quit [Ping timeout: 244 seconds]
nihilazo has left #racket [Leaving]
codingquark has joined #racket
jao has joined #racket
<taw10> nuance: I'm not sure, but I suspect it might be related to this issue described in the Guile manual: https://www.gnu.org/software/guile/manual/html_node/Hygiene-and-the-Top_002dLevel.html
<taw10> nuance: Basically, you can't create a situation where the module ABI changes programmatically, but you can get away with it if the compiler can see that the bindings you're making aren't going to change. However Racket probably handles this situation in a different way to Guile.
badkins has joined #racket
badkins has quit [Ping timeout: 255 seconds]
ttree has quit [Ping timeout: 252 seconds]
xgqt has quit [Quit: WeeChat 3.4.1]
xgqt has joined #racket
mange has quit [Ping timeout: 268 seconds]
notzmv has quit [Ping timeout: 268 seconds]
jao has quit [Ping timeout: 268 seconds]
vtbsubt has joined #racket
vtbsub has quit [Ping timeout: 260 seconds]
vtbsubtitle has joined #racket
vtbsubt has quit [Ping timeout: 260 seconds]
badkins has joined #racket
badkins has quit [Ping timeout: 260 seconds]
xgqt has quit [Quit: WeeChat 3.5]
<nuance> taw10: Thanks. My gut instinct is that you're more or less right--that this has to do with hygiene and/or phase level. I've tried variations on local-require and regular require, and there *are* some pointers on Stack Overflow (e.g. https://stackoverflow.com/questions/18852921/generating-require-clauses-with-racket-macros), but they aren't exactly applicable. The use of body ... in the macro is
<nuance> what's likely making life miserable at this point.
<nuance> I'll keep poking at it, but would welcome any additional thoughts if someone in the channel has them.
notzmv has joined #racket
nuance has quit [Read error: Connection reset by peer]
codingquark has quit [Ping timeout: 268 seconds]
codingquark has joined #racket
badkins has joined #racket
badkins has quit [Ping timeout: 255 seconds]
badkins has joined #racket
badkins has quit [Ping timeout: 260 seconds]
lowak has quit [Remote host closed the connection]
lowak has joined #racket
codingquark has quit [Ping timeout: 268 seconds]
codingquark has joined #racket
ncf has quit [Ping timeout: 268 seconds]
ncf has joined #racket
xgqt has joined #racket
badkins has joined #racket
badkins has quit [Ping timeout: 255 seconds]
badkins has joined #racket
<samth> nuance: the problem is hygiene; if you change `make-module` to be `(make-module nm lang body ...)` then it will work
<samth> alternatively you can use `datum->syntax` to introduce the lang position with the correct scopes
badkins has quit [Remote host closed the connection]
morte_ has joined #racket
badkins has joined #racket
morte_ has quit [Remote host closed the connection]
dos__^^ has quit [Remote host closed the connection]
dos__^^ has joined #racket
codingquark has quit [Ping timeout: 255 seconds]
codingquark has joined #racket
badkins has quit [Remote host closed the connection]
nuance has joined #racket
badkins has joined #racket
<nuance> samth: ahhh, thanks. Glad it's a straightforward fix, but I'm definitely smacking my forehead on this one. I suppose on the plus side I managed to read a lot of documentation.
<samth> nuance: `require`, including the implicit one in the language position, is unhygenic binding and thus annoying to abstract over, so it's not too surprising to get tripped up
jao has joined #racket
<nuance> samth: maybe it's a silly question, but is there any way to modify the language to make this hygienic (e.g., by default namespacing)?
<samth> If you want `#lang foo` to bind `lambda` inside the body (which basically you do want) then the non-hygiene is fundamental
<samth> you could make it be `foo.lambda` but then you've just made `lambda` a string instead of a reference and thus you haven't really added hygiene
<nuance> Nod. I'll have to noodle on this a bit. I understand basic hygiene (cue bad jokes about bad breath), but obviously there are some things missing for me. It smelled like a hyginee issue, but I couldn't quite make the jump to the binding there.
<nuance> i.e., what's happening in my understanding is that within the context of the transformer, `racket` means nothing, more or less?
<samth> you could imagine a language (eg a slightly modified java) where (a) keywords like `class` aren't "bound", but handled by the parser and (b) there's only import of specified names
<samth> then there wouldn't be this issue, but that would be very different from how Racket works
<samth> in the context of the transformer, `racket` doesn't have the same scopes as the body forms (in particular it has an extra scope from the expansion step)
ttree has joined #racket
<nuance> samth: that makes sense, thanks.
ec has joined #racket
FreeFull has joined #racket
badkins has quit [Remote host closed the connection]
badkins has joined #racket
tonyg has quit [Quit: The Lounge - https://thelounge.chat]
lowak has quit [Remote host closed the connection]
lowak has joined #racket
nuance has quit [Ping timeout: 268 seconds]
morte_ has joined #racket
ur5us has joined #racket
ur5us has quit [Remote host closed the connection]
ur5us has joined #racket
morte_ has quit [Ping timeout: 248 seconds]
badkins has quit [Remote host closed the connection]
Avichi has joined #racket
morte_ has joined #racket
ur5us has quit [Ping timeout: 260 seconds]
lowak has quit [Remote host closed the connection]
lowak has joined #racket
morte_ has quit [Ping timeout: 268 seconds]
sagax has joined #racket
badkins has joined #racket
tonyg has joined #racket
badkins has quit [Ping timeout: 260 seconds]
badkins has joined #racket
ur5us has joined #racket
badkins has quit [Ping timeout: 260 seconds]
badkins has joined #racket
badkins has quit [Ping timeout: 255 seconds]
runrin has quit [Quit: leaving]
runrin has joined #racket
badkins has joined #racket
lowak has quit [Remote host closed the connection]
badkins has quit [Remote host closed the connection]
badkins has joined #racket
<runrin> Why is it that if I don't explicitly put ``#lang racket`` at the top of a file I load into the command line REPL, I can define procedures that reference each other out of order, but if I make the language explicit I can't?
lowak has joined #racket
<runrin> For instance, if I have ``(define (test x) (proc x x))``, if the language is set explicitly, ``proc'' needs to be defined before test.
<runrin> if it's not explicitly set, the order the procedures are defined makes no difference
chimp_ has joined #racket
micro_ has quit [Ping timeout: 240 seconds]
[dpk] has joined #racket
dTal has quit [Ping timeout: 244 seconds]
ecraven has quit [Ping timeout: 252 seconds]
xgqtd has joined #racket
wwalker_ has joined #racket
sagax has quit [*.net *.split]
xgqt has quit [*.net *.split]
notzmv has quit [*.net *.split]
wwalker has quit [*.net *.split]
Psybur has quit [*.net *.split]
dpk has quit [*.net *.split]
badkins has quit [Remote host closed the connection]
badkins has joined #racket
badkins has quit [Ping timeout: 244 seconds]
dTal has joined #racket
ecraven has joined #racket
micro has joined #racket
xgqtd has quit [Quit: WeeChat 3.5]
xgqt has joined #racket
badkins has joined #racket
ec has quit [Remote host closed the connection]
irc_user has joined #racket
wwalker_ is now known as wwalker