In Racket v6.6.0.4, it appears that the derp-3 parser-based-on-derivatives (as it now exists in the https://bitbucket.org/ucombinator/derp-3 bitbucket repo) doesn’t run at the command-line.
Specifically, if I download this repo and run racket pyparse.rkt … in the src/ directory, I get this output: pcp143094pcs:/tmp/a/b/derp-3/src (git)-[master]- clements> racket ./pyparse.rkt link: bad variable linkage; reference to a variable that has the wrong procedure or structure-type shape reference phase level: 0 variable module: "/tmp/a/b/derp-3/src/derp.rkt" variable phase: 0 reference in module: "/tmp/a/b/derp-3/src/pyparse.rkt" in: set-node-tag1! context...: /tmp/a/b/derp-3/src/pyparse.rkt: [running body] /tmp/a/b/derp-3/src/pyparse.rkt: [running body] It is worth noting that this does not happen when running in DrRacket. instead, you get (correctly) an error about missing command-line arguments. Furthermore, stripping out later parts of the pyparse.rkt file results in a file that still signals the above error at the command-line, but runs without error in DrRacket. After digging through the source a bit, I notice several things: 1) there is no occurrence of ‘tag1’ in the source. 2) There is a structure named ‘node’ that has a field named ‘tag’ 3) Derp-3 is doing some interesting things with structures: specifically, it has an “unsafe-struct” form, and node is one of them. Since this code worked in earlier versions of Racket, it seems likely that either 1) This is a newly introduced bug in Racket, or 2) This is a newly *fixed* bug in Racket, or 3) This is a consequence of changes to the syntax system associated with the transition to scope sets. Because of the fact that I don’t see the error in DrRacket, I’m inclined to lean toward number 1, and more specifically toward optimizations that may be present in the command-line that aren’t present in DrRacket, or more generally simply differences in the .zo files generated by the two systems (if I understand our current compilation process correctly). I’m guessing that the next step in fixing this would be to attempt to convert ‘node’ to a standard structure to see if the problem goes away, but I thought I’d ask you folks first. Best, John -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.