spdegabrielle
2020-10-18 14:48:47

Who is running the racket script effort? (mentioned by Matthias on town hall)


soegaard2
2020-10-18 14:50:06

RacketScript : https://github.com/vishesh/racketscript I believe Stephen Chang was the advisor of Vishesh, but I can be misremembering.


spdegabrielle
2020-10-18 15:09:36

thanks!


badkins
2020-10-18 15:27:06

Chatted with Stephen Chang briefly on Gather at rcon. When the “linklet” change happened in Racket, that broke some things in RacketScript, so RacketScript is a bit out of sync w/ Racket presently.


soegaard2
2020-10-18 15:33:12

FWIW I have a compiler for top-level forms. Instead of making my own compiler for modules, I decided to wait for linklets. I made a few, small experiments with linklets, but didn’t get far.

The input language: https://github.com/soegaard/urlang/blob/master/compiler-rjs/compiler.rkt#L280

The runtime (i.e. primitives implemented in JavaScript): https://github.com/soegaard/urlang/blob/master/compiler-rjs/runtime.rkt

The TODO list, which shows where I ran out of steam … :slightly_smiling_face: https://github.com/soegaard/urlang/blob/master/compiler-rjs/compiler.rkt#L5


sorawee
2020-10-18 15:38:46

^@stchang


soegaard2
2020-10-18 16:12:52

FYI I have just create a new “htdp” tag on Stackoverflow: https://stackoverflow.com/questions/tagged/htdp Feel free to improve the tag description.


yilin.wei10
2020-10-18 17:53:33

For users of Linux distros, apart from Nix; how are the racket BC/CS now bundled? Is it just a single one or are there multiple binaries etc?


samdphillips
2020-10-18 18:07:31

I use the downloads and not the packaged versions myself.


mflatt
2020-10-18 18:33:18

Good question. My guess is that Linux distributions will just switch to CS when that’s the default.


yilin.wei10
2020-10-18 19:06:29

@samth Apologies the CS variant isn’t building on Nix atm and I need to debug the build script so will take some time to check.


cpaulbond
2020-10-18 19:09:56

@cpaulbond has joined the channel


notjack
2020-10-18 21:43:49

This ought to be written down somewhere more permanent than slack history


jcoo092
2020-10-18 22:57:38

I would guess that Debian- and RHEL-based distributions will switch over at their next major release after CS becomes the default. With Arch-based ones, there’s probably already a Racket CS package on AUR (not necessarily completely up-to-date, though). Not sure about other distros.


plragde
2020-10-18 23:23:45

Where can I replay today’s RacketCon events? I can’t find anything pertinent on the YouTube channel. Thanks.


yilin.wei10
2020-10-18 23:24:49

That makes sense - if there are any Nix users; I’m trying to get the current build script working. Below is what I have so far but there’s still a build error while building Chez, before I started doing something else.

racketChez = with pkgs; racket.overrideAttrs(oldAttrs: rec { patchPhase = '' sed -i -n 's//bin/cp/cp/g' src/ChezScheme/workarea sed -i -n 's//bin/ln/ln/g' src/ChezScheme/workarea ''; buildPhase = ''make cs ''; buildInputs = oldAttrs.buildInputs ++ [ libuuid ]; configureFlags = oldAttrs.configureFlags ++ [ "--enable-cs" ]; });


gknauth
2020-10-19 00:03:21

gknauth
2020-10-19 00:04:28

Actually looks like some of the talks have been broken out into separate videos already:



gknauth
2020-10-19 00:06:48

It’s weird, on Chrome (upstairs), I see only Day 1 stuff, but in the basement on my big TV I was seeing Day 2 stuff too.


gknauth
2020-10-19 00:11:53

Now I don’t see Day 2 (2020). My guess is it will appear later. I hope not too long from now.


junjunchia
2020-10-19 02:14:59

@junjunchia has joined the channel


junjunchia
2020-10-19 02:23:59

Hi! I’m new to Racket macros, and I’m having trouble understanding what is happening in the program below. Could anyone tell me why it fails to terminate? Thank you! #lang racket (require (for-syntax racket/base syntax/parse)) (define-syntax (f stx) (syntax-parse stx [(_ lst) #'(begin (if #f (f (syntax->datum #'lst)) (display "else")))])) (f '(1 2 3))


kellysmith12.21
2020-10-19 03:29:39

To me, it looks like the macro is recursive in such a way that it will keep expanding into itself, without a way to stop the expansion.


junjunchia
2020-10-19 04:15:36

Thanks! But the behavior is counter-intuitive, since the condition part of if is #f. How does the non-termination happen?


kellysmith12.21
2020-10-19 05:07:53

The if will be evaluated at run time, after macro expansion.


kellysmith12.21
2020-10-19 05:10:13

#lang racket (require (for-syntax racket/base syntax/parse)) (define-syntax (f stx) (syntax-parse stx [(_ lst) (begin (if #f #'(f (syntax->datum #'lst)) #'(display "else")))])) (f '(1 2 3))


kellysmith12.21
2020-10-19 05:11:13

The version I posted will work how you would expect it to.


kellysmith12.21
2020-10-19 05:12:28

In my version, the if is evaluated during macro expansion, and will produce a piece of syntax.


jesse
2020-10-19 05:31:51

by the way, perhaps we should change the metadata for the channel on YouTube, if possible. “Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.” seems a bit, uh, generic