As far as I remember (maybe Arnar or Úlfar or another of the authors would have a different memory, though) we just wanted a “cool cookie” name. We knew about the -oon/-on distinction and liked the sound of -oon. I view…
Thanks for including this! Tweet thread explainer: https://twitter.com/ShriramKMurthi/status/142918126348784435...
If it helps to think about the issue, we have a (free, online) book that manages this transition, so we've thought about this quite a bit and one co-author has been teaching a Pyret -> Python flow for several years.…
The `where:` syntax ought to only be for test cases attached to functions. Maybe this comment is a useful answer: https://news.ycombinator.com/item?id=28265210
https://blog.brownplt.org/2014/04/01/var-vs-yar.html
This is a good question! We addressed this explicitly in our (new) book that starts in Pyret and transitions to Python: https://dcic-world.org/2021-08-21/part_appendix.html#%28part...
You might be interested in Rehearsal: https://people.cs.umass.edu/~arjun/main/papers/2016-rehearsa...
Various flavors of a course based on "An Incremental Approach to Compiler Construction" [1] have most or all materials free online, some with excellent notes. Taught at UCSD, Northeastern, Swarthmore College:…
It's worth noting that Stopify itself isn't an editor or IDE as the title suggests. Stopify is a JavaScript -> JavaScript compiler, implemented as a Babel transform, that enables pausing and restarting control operators…
Nice! Something like this is super-important for user experience. This is a problem we've thought a lot about with Pyret, and have different concrete solutions. Rather than use heuristics that turn long-running…
There is the Canine Good Citizen test (http://www.akc.org/dog-owners/training/canine-good-citizen/), and the more stringent Community Canine Good Citizen Test…
It's worth mentioning that Pyret followed this path. It was originally a Racket #lang. Once we got the design off the ground and decided to primarily target the browser, we wrote a new implementation in JavaScript and…
That paper is amazing. Plug for my course, which is built around the ideas in Ghuloum's paper, and I've talked about before on HN: https://news.ycombinator.com/item?id=13207695…
The Whalesong paper has a detailed comparison to Racket: https://cs.brown.edu/~sk/Publications/Papers/Published/yk-wh... Results range from 20x to 100x slowdown – just fine for the games and animations middle- and…
Cool to see Whalesong up here; it's worth pointing out the incredible effort put into making this really work for Racket, _including_ support for continuations. That is, you can compile a Racket program that uses…
Ben Lerner did a great job writing notes [0] for his version, which are super helpful if you prefer reading to videos. [0] https://course.ccs.neu.edu/cs4410/#%28part._lectures%29
My compilers course has all the lectures recorded, and has starter code for all the assignments provided. It provides all the parsers, and focuses on the backend, including memory management and various details of value…
I think this has lots of potential. I have thought before that if I could make two changes to Slack (which I already think is pretty great), they would be: 1. Hitting "Enter" doesn't send the message. This encourages…
Is there a particular piece of insight from that paper that indicates a mistake in the design of Viper? I love erights' work and don't doubt that there is a lot to be learned from it in this context, but some guidance…
I'm basing my course this quarter on one from Northeastern, where Ben Lerner has written a pretty impressive set of notes, the latter half of which are data structures content:…
Plug for my compilers course, which is incremental and uses some of the ideas from sibling comments re: emitting assembly and Ghuloum's great work. Last time I posted it on HN, someone got back to me in a few weeks that…
Consider Bootstrap: http://www.bootstrapworld.org/ Bootstrap 1 is computing tied to algebra concepts, targeted at the middle school age group (US grade 6-8). Students learn things like order of operations and what a…
See also Artifact Evaluation, a process used in several PL/SE conferences that makes evaluation of code (and datasets/studies) an explicit step in the review process: http://evaluate.inf.usi.ch/artifacts…
Does this imply that a pro may well do better in a multiplayer game with mixed humans and machines (by using "tells" to build up a bigger stack from the humans' inaccuracies), than in heads up against a machine?
> how it can turn recursive structures like expressions and statement blocks into linear sequences of instructions I think this is one of the key concepts in a compiler, yet I don't think it has much to do with parsing.…
As far as I remember (maybe Arnar or Úlfar or another of the authors would have a different memory, though) we just wanted a “cool cookie” name. We knew about the -oon/-on distinction and liked the sound of -oon. I view…
Thanks for including this! Tweet thread explainer: https://twitter.com/ShriramKMurthi/status/142918126348784435...
If it helps to think about the issue, we have a (free, online) book that manages this transition, so we've thought about this quite a bit and one co-author has been teaching a Pyret -> Python flow for several years.…
The `where:` syntax ought to only be for test cases attached to functions. Maybe this comment is a useful answer: https://news.ycombinator.com/item?id=28265210
https://blog.brownplt.org/2014/04/01/var-vs-yar.html
This is a good question! We addressed this explicitly in our (new) book that starts in Pyret and transitions to Python: https://dcic-world.org/2021-08-21/part_appendix.html#%28part...
You might be interested in Rehearsal: https://people.cs.umass.edu/~arjun/main/papers/2016-rehearsa...
Various flavors of a course based on "An Incremental Approach to Compiler Construction" [1] have most or all materials free online, some with excellent notes. Taught at UCSD, Northeastern, Swarthmore College:…
It's worth noting that Stopify itself isn't an editor or IDE as the title suggests. Stopify is a JavaScript -> JavaScript compiler, implemented as a Babel transform, that enables pausing and restarting control operators…
Nice! Something like this is super-important for user experience. This is a problem we've thought a lot about with Pyret, and have different concrete solutions. Rather than use heuristics that turn long-running…
There is the Canine Good Citizen test (http://www.akc.org/dog-owners/training/canine-good-citizen/), and the more stringent Community Canine Good Citizen Test…
It's worth mentioning that Pyret followed this path. It was originally a Racket #lang. Once we got the design off the ground and decided to primarily target the browser, we wrote a new implementation in JavaScript and…
That paper is amazing. Plug for my course, which is built around the ideas in Ghuloum's paper, and I've talked about before on HN: https://news.ycombinator.com/item?id=13207695…
The Whalesong paper has a detailed comparison to Racket: https://cs.brown.edu/~sk/Publications/Papers/Published/yk-wh... Results range from 20x to 100x slowdown – just fine for the games and animations middle- and…
Cool to see Whalesong up here; it's worth pointing out the incredible effort put into making this really work for Racket, _including_ support for continuations. That is, you can compile a Racket program that uses…
Ben Lerner did a great job writing notes [0] for his version, which are super helpful if you prefer reading to videos. [0] https://course.ccs.neu.edu/cs4410/#%28part._lectures%29
My compilers course has all the lectures recorded, and has starter code for all the assignments provided. It provides all the parsers, and focuses on the backend, including memory management and various details of value…
I think this has lots of potential. I have thought before that if I could make two changes to Slack (which I already think is pretty great), they would be: 1. Hitting "Enter" doesn't send the message. This encourages…
Is there a particular piece of insight from that paper that indicates a mistake in the design of Viper? I love erights' work and don't doubt that there is a lot to be learned from it in this context, but some guidance…
I'm basing my course this quarter on one from Northeastern, where Ben Lerner has written a pretty impressive set of notes, the latter half of which are data structures content:…
Plug for my compilers course, which is incremental and uses some of the ideas from sibling comments re: emitting assembly and Ghuloum's great work. Last time I posted it on HN, someone got back to me in a few weeks that…
Consider Bootstrap: http://www.bootstrapworld.org/ Bootstrap 1 is computing tied to algebra concepts, targeted at the middle school age group (US grade 6-8). Students learn things like order of operations and what a…
See also Artifact Evaluation, a process used in several PL/SE conferences that makes evaluation of code (and datasets/studies) an explicit step in the review process: http://evaluate.inf.usi.ch/artifacts…
Does this imply that a pro may well do better in a multiplayer game with mixed humans and machines (by using "tells" to build up a bigger stack from the humans' inaccuracies), than in heads up against a machine?
> how it can turn recursive structures like expressions and statement blocks into linear sequences of instructions I think this is one of the key concepts in a compiler, yet I don't think it has much to do with parsing.…