home.social

#racketlang — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #racketlang, aggregated by home.social.

  1. Racket meet-up: Saturday, 7 March 2026 at 18:00 UTC

    EVERYONE WELCOME 😁

    Announcement, Jitsi Meet link & discussion at racket.discourse.group/t/racke

    #λ #racketlang #lisp #wasm #webassembly

  2. @cdegroot quotable already, from chapter 8: "Scheme is like a scalpel, and Racket hones that scalpel to a precise tool for language research, Scheme's original focus." #Racketlang

  3. Racket birthday party 🎉🎂and meet-up: Saturday, 7 February 2026 at 18:00 UTC. (in 15minutes)

    EVERYONE WELCOME 😁

    Announcement, Jitsi Meet link & discussion at racket.discourse.group/t/racke
    #racketlang

  4. The official steering committee of the Scheme programming language is calling a vote to replace themselves

    Quoting the memo:

    The outgoing Steering Committee was elected in 2009 and successfully oversaw the production and ratification of the R7RS small language report until 2013. Unfortunately, during the protracted initial development of the R7RS large language after that, it fell dormant.

    The current Scheme Working Group resolved in September 2025 to ask the Steering Commitee for a new election because it felt that after such long dormancy the outgoing Steering Committee was no longer able, as a group, to make and implement decisions effectively.

    The Scheme standardization process charter says, ‘The Steering Committee itself shall establish procedures for replacing its members.’ The outgoing Steering Committee unanimously decided to delegate this task to the current Working Group. The Working Group has very closely modelled the procedure to be used this time on the procedure used last time.

    The Working Group has written a statement to candidates and voters explaining what it hopes for in a new steering committee.

    Lobste.rs thread

    #tech #software #Scheme #SchemeLang #ProgrammingLanguage #R7RS #R7RSLarge #Lisp #FunctionalProgramming #Guile #GuileScheme #ChezScheme #ChickenScheme #GambitScheme #RacketLang #Racket

  5. The official steering committee of the Scheme programming language is calling a vote to replace themselves

    Quoting the memo:

    The outgoing Steering Committee was elected in 2009 and successfully oversaw the production and ratification of the R7RS small language report until 2013. Unfortunately, during the protracted initial development of the R7RS large language after that, it fell dormant.

    The current Scheme Working Group resolved in September 2025 to ask the Steering Commitee for a new election because it felt that after such long dormancy the outgoing Steering Committee was no longer able, as a group, to make and implement decisions effectively.

    The Scheme standardization process charter says, ‘The Steering Committee itself shall establish procedures for replacing its members.’ The outgoing Steering Committee unanimously decided to delegate this task to the current Working Group. The Working Group has very closely modelled the procedure to be used this time on the procedure used last time.

    The Working Group has written a statement to candidates and voters explaining what it hopes for in a new steering committee.

    Lobste.rs thread

    #tech #software #Scheme #SchemeLang #ProgrammingLanguage #R7RS #R7RSLarge #Lisp #FunctionalProgramming #Guile #GuileScheme #ChezScheme #ChickenScheme #GambitScheme #RacketLang #Racket

  6. The official steering committee of the Scheme programming language is calling a vote to replace themselves

    Quoting the memo:

    The outgoing Steering Committee was elected in 2009 and successfully oversaw the production and ratification of the R7RS small language report until 2013. Unfortunately, during the protracted initial development of the R7RS large language after that, it fell dormant.

    The current Scheme Working Group resolved in September 2025 to ask the Steering Commitee for a new election because it felt that after such long dormancy the outgoing Steering Committee was no longer able, as a group, to make and implement decisions effectively.

    The Scheme standardization process charter says, ‘The Steering Committee itself shall establish procedures for replacing its members.’ The outgoing Steering Committee unanimously decided to delegate this task to the current Working Group. The Working Group has very closely modelled the procedure to be used this time on the procedure used last time.

    The Working Group has written a statement to candidates and voters explaining what it hopes for in a new steering committee.

    Lobste.rs thread

    #tech #software #Scheme #SchemeLang #ProgrammingLanguage #R7RS #R7RSLarge #Lisp #FunctionalProgramming #Guile #GuileScheme #ChezScheme #ChickenScheme #GambitScheme #RacketLang #Racket

  7. The official steering committee of the Scheme programming language is calling a vote to replace themselves

    Quoting the memo:

    The outgoing Steering Committee was elected in 2009 and successfully oversaw the production and ratification of the R7RS small language report until 2013. Unfortunately, during the protracted initial development of the R7RS large language after that, it fell dormant.

    The current Scheme Working Group resolved in September 2025 to ask the Steering Commitee for a new election because it felt that after such long dormancy the outgoing Steering Committee was no longer able, as a group, to make and implement decisions effectively.

    The Scheme standardization process charter says, ‘The Steering Committee itself shall establish procedures for replacing its members.’ The outgoing Steering Committee unanimously decided to delegate this task to the current Working Group. The Working Group has very closely modelled the procedure to be used this time on the procedure used last time.

    The Working Group has written a statement to candidates and voters explaining what it hopes for in a new steering committee.

    Lobste.rs thread

    #tech #software #Scheme #SchemeLang #ProgrammingLanguage #R7RS #R7RSLarge #Lisp #FunctionalProgramming #Guile #GuileScheme #ChezScheme #ChickenScheme #GambitScheme #RacketLang #Racket

  8. 🎉 Two new SDKs to announce for our geocoding API: OCaml and Racket both written by our friend Rome Stone 🙌

    Blog post: blog.opencagedata.com/post/oca

    and with that we now have more than 40 different SDKs for you to chose from to make your geocoding as simple as possible. See the full list:
    opencagedata.com/sdks

    #ocaml #racketlang

  9. Racket v8.18

    blog.racket-lang.org/2025/08/r

    posted by Stephen De Gabrielle We are pleased to announce Racket v8.18 is now available from download.racket-lang.org/. As of this release: The racket-lang.org website no longer distributes Racket BC bundles, but it includes...

    #racketlang #lisp @[email protected] [email protected] @racket

  10. Racket v8.17

    blog.racket-lang.org/2025/05/r

    posted by Stephen De Gabrielle We are pleased to announce Racket v8.17 is now available from download.racket-lang.org/. As of this release: The new drracket-core package provides a version of drracket with a smaller set of...

    #racketlang #lisp @[email protected] [email protected] @racket

  11. Racket - the Language-Oriented Programming Language - version 8.17 is now available from download.racket-lang.org
    See blog.racket-lang.org/2025/05/r for the release announcement and highlights.
    #lisp #racketlang #scheme

  12. If you have an idea for a presentation you’d like to give at RacketCon 2025, please write to the RacketCon organizers for consideration. All Racket-y ideas are welcome. We’d love to have you!
    con.racket-lang.org/
    #RacketLang #RacketLisp

  13. There are some issues with it(it shoudl ignore newlines, and it should run the hello world from wikipedia, but it doesn't do either) but here's my #brainfuck interpreter written in #racketlang . I do provide a link to a hello world it does run, showing it's not completely wrong.

    https://github.com/annieworroll/brainfuck

  14. I see #HelixEditor is getting a built-in language (eventually, I don’t know when, and I don’t have links to information about it). The language will be a #Scheme called Steel. Steel is inspired by #RacketLang and written in Rust. I’ve written small programs in Racket and don’t much like it. I find them hard to understand when I come back to them later. Probably that’s just lack of experience. Adding a built-in language is a really good thing. Picking a Scheme is almost certainly a great choice, despite my feelings. If I do settle on Helix and if I do end up scripting it, maybe I’ll end up liking Scheme more. As far as I’m concerned, this addition to Helix can’t come soon enough.

  15. Racket v8.16

    blog.racket-lang.org/2025/03/r

    posted by Stephen De Gabrielle We are pleased to announce Racket v8.16 is now available from download.racket-lang.org/. As of this release: Racket has expanded support for immutable and mutable treelists: A variety of new...

    #racketlang #lisp @[email protected] [email protected] @racket

  16. Are you a Lisper? If yes, What made #lisp special in your view?

    @lxsameer a few things:

    • absolute minimum amount of syntax, makes it very easy to understand how the computer sees each part of the program, makes it easy to implement your own parser if you want to.
    • the ability to define your own evaluator for Lisp syntax, also made considerably easier than other languages due to the minimal syntax. This also makes it easy to develop your own tooling, or to modify existing tooling for the language, which brings me to the next point…
    • macro programming: the ability to hack the Lisp compiler itself so that it can run your own evaluator. This allows you to introduce language features when and where you need them, like linting, type checking, literate programming, alternative evaluation strategies (e.g. lazy evaluation, or concurrent evaluation), etc.
    • functional programming: it is based on the mathematics of lambda calculus, which is a very elegant way of defining algorithms and computation. It is also a computer for the “untyped lambda calculus“ which can implement any other typed lambda calculus as a system of macros.
    • homoiconicity, again a feature of the minimal syntax, allows you to express programs as data, and data as programs. This is very useful for serialization and transport across multiple computers.
    • REPL-based development, which is a feature many languages have nowadays (although Lisp invented this feature), allows for rapid prototyping and easier debugging.
    • stability: Lisp languages like Common Lisp and Scheme have changed very little throughout the decades as there is no need to change them. Macro programming makes it so that you don’t need too add new language features all the time, language features become extensions you can import into your project.

    #tech #software #ComputerProgramming #Lisp #CommonLisp #SchemeLang #Scheme #Clojure #FennelLang #GerbilLang #RacketLang

  17. My 8 year old son has fallen in love with this old laptop that honestly isn’t useful for that much as the speed and wifi is so slow.

    But he says he wants to learn how to code on it.

    @codemonkeymike yes, I would recommend learning Racket. The Racket language is relatively lightweight compared to modern app development frameworks such as VSCode so runs nice and fast on older hardware, and it is designed specifically for teaching coding. There are some nice books aimed at kids for teaching Racket as well:

    It is about as easy as learning BASIC was when I was a kid.

    #tech #software #Lisp #RacketLang #LearnCoding #LearnToCode #QBASIC

  18. "While the new curriculum begins in Pyret, which is similarly designed for teaching purposes, it will quickly transition to Python in the first course. Python does not have anything similar — students must be taught complex features upfront, before they learn the design skills to cleanly and effectively use those features."

    #racketlang #python #compsci

  19. "The new courses will primarily teach Python, and the college claims it is an added bonus that Python “is currently the most requested language by co-op employers.” But we should not teach a language simply because it is currently popular in industry — we must choose a language with real pedagogical merit. Racket was chosen because it has “teaching languages” that can gradually introduce features as students are taught the relevant design principles."

    #racketlang #python #compsci

  20. "The college’s proposed overhaul will phase out Fundies 1, Fundies 2, and Object-Oriented Design, replacing them with entirely new courses"

    #racketlang #python #compsci

  21. "I have often heard computer science students complain that Fundies 1 teaches Racket instead of a “useful language” like Python. But the point of Fundies is not to teach Racket — it is to teach program design skills that can be applied using any programming language."

    huntnewsnu.com/82511/editorial

    #racketlang #python #compsci

  22. Friday night. Weekend!
    What I'm up to?
    - Party out until dawn? No
    - Relax in front of the TV? No
    - Playing videogames? No
    - Sleeping all night? No

    I'm working through the book How To Design Programs to get my feet wet with #LISP family languages

    #racket #racketlang

  23. After reading all the comments and doing my own research I think that I'm going to start with Racket. Maybe I'll use part of my Christmas holidays to start with it.

    Thanks to all the people that has participated and helped with their comments.

    #racket #racketlang #lisp #scheme

  24. “Question for lispers with experience: If you should start to learn a LISP style language today, which one do you pick up? Why?”

    @syntaxerror The R7RS “Small” Scheme standard is roughly 80 pages, so you can learn about all of the language features very quickly. I love it because of it’s minimalism, it is my preferred language.

    My take on it is that the “Small” Scheme standard is perfectly designed to construct larger programming languages with more features. One such language is R7RS “Large” Scheme, but you could theoretically use it to implement Common Lisp, Python, JavaScript, or any other language.

    The R7RS “Large” standard is still being discussed (10 years after “small” was ratified), but it relies heavily on the “Scheme Request For Implementation“ (SRFI) process to fill out features. The larger portion of the R7RS “Large” standard is already ratified and published, so it is still useful even though it is not complete.

    There are many Scheme implementations, but I recommend Guile, as it is almost completely R7RS-Small compliant, and has a ton of other useful features that come with it out of the box. So if you need, for example, a quick web server, or a way to search your filesystem, Guile has modules for that.

    Another good batteries-included Lisp is Racket, which is a larger language built on top of Chez Scheme (an R6RS Standard Scheme implementation). You can easily install the R7RS Scheme language pack on Racket and write your code in Scheme as you read through the R7RS standard document.

    Both Guile and Racket/CS (Chez Scheme) not only have many useful features, but compile to binary code that runs extremely fast for a high-level language.

    Also, if you haven’t already, try to learn to use Emacs.

    #tech #software #Lisp #CommonLisp #Scheme #SchemeLang #R7RS #Emacs #GuileScheme #RacketLang

  25. Racket v8.15

    blog.racket-lang.org/2024/11/r

    posted by Stephen De Gabrielle We are pleased to announce Racket v8.15 is now available from download.racket-lang.org/. As of this release: Documentation search results are ordered, with visual cues indicating what their source...

    #racketlang #lisp @[email protected] [email protected] @racket

  26. Never thought about dice before, how "snake eyes" should be as probable as 12s and much less than 7s... Vague rainy Saturday so I started putting those musings into Racket with Graphite, Scribble and `random. I guess stay-at-home days are needed/healthy every one in a while...
    > the theory of.. probability... unsavoury origin.. from... nobility of France.. competing in a race to ruin at the gaming tables.
    codeberg.org/bsmall2/statistic
    #RacketLang #StatisticsClass #GoofingWithCoding #RaceToRuin

  27. Racket makes learning fun...
    --- apologies to Fleetwood Mac

    I started translating (improving?) the Statistics classes R graphics with Racket plotting and math/distribution.

    codeberg.org/bsmall2/racket-di

    #RacketLang #RacketPlot #StatisticsRacket
    #RacketStatistics

  28. I was talking with the teacher of the statistics class today and trying to convince him (along with myself, so: convince us) that we could teach everything with one language: Racket. So I got distracted trying to learn enough statistics to tranlsate R-code into Racket Code.



    #lang racket
    (require plot)
    (require math/distributions)
    ;; R to Racket
    ;; ; Ztable, ZScore ??
    ;; ; (curve(dnorm(x, mean=0, sd=1), from=-4 to=4)
    ;; ; abline(v=qnorm(p=0.025, mean=0, sd=1)) ;; a=0.05(5%)とした場合
    ;; ; abline(v=qnorm(p=0.975, mean=0, sd=1))

    (define n-d-0-1 (normal-dist 0 1))
    (cdf n-d-0-1 0.025) ;; https://docs.racket-lang.org/math/dist_dist-objects.html
    ;; ; 0.509972518195238
    (inv-cdf n-d-0-1 0.025) ;; https://docs.racket-lang.org/math/dist_dist-objects.html
    ;; ; -1.9599639845400538
    (inv-cdf n-d-0-1 0.975) ;; 1.9599639845400536
    #;(define (n-d-0-1-pdf x)
      ((distribution-pdf n-d-0-1) x))
    ;; (n-d-0-1-pdf -4) ;; 0.00013383022576488534
    ;; (n-d-0-1-pdf 4)  ;; 0.00013383022576488534
    #;(plot (function n-d-0-1-pdf)
          #:x-min -4
          #:x-max 4)
    (define cdf-inv-0025 (inv-cdf (normal-dist 0 1) 0.025))
    (define cdf-inv-00975 (inv-cdf (normal-dist 0 1) 0.975))

    (plot (list
          (function (distribution-pdf (normal-dist 0 1)))
          (lines (list (vector cdf-inv-0025 0) (vector cdf-inv-0025 .4)))
          (lines (list (vector cdf-inv-00975 0) (vector cdf-inv-00975 .4)))
          ); end list of plot functions
          #:x-min -4 #:x-max 4
          #:out-file "norm-dist-inv-cdf-1.png")

    ;; ; https://www.medi-08-data-06.work/entry/2018/12/18/232204
    ;; ; https://r-coder.com/normal-distribution-r/
    ;; ; https://www.statology.org/dnorm-pnorm-rnorm-qnorm-in-r/
    ;; ; cdf, inverse-cdf https://docs.racket-lang.org/math/dist_dist-objects.html

    ;; (require math/statistics) ;; quantile
    ;;(quantile 0.025 < n-d-0-1) ;; no good, how to get xs from normal-dist??





    #racket-lang #DrRacket #StatisticsRacket
  29. Data Integrity via Smart Structs

    by David Storrs

    Structs in Racket should be more than dumb data storage. They should be data models in the sense of MVC programming; they should ensure that their contents are valid according to your project’s business rules and they should make it easy to do common operations such as storing to a database or generating a struct from data of another type such as a database row or user input field.

    The struct-plus-plus module makes this easy. It allows you to place contracts on individual fields, specify business rules that ensure integrity between fields, easily create converter functions, and much more, with all of these things being part of the struct definition and therefore in one easily-referenced location. Come see how it all works and how you can simplify your code with struct-plus-plus!

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  30. Data Integrity via Smart Structs

    by David Storrs

    Structs in Racket should be more than dumb data storage. They should be data models in the sense of MVC programming; they should ensure that their contents are valid according to your project’s business rules and they should make it easy to do common operations such as storing to a database or generating a struct from data of another type such as a database row or user input field.

    The struct-plus-plus module makes this easy. It allows you to place contracts on individual fields, specify business rules that ensure integrity between fields, easily create converter functions, and much more, with all of these things being part of the struct definition and therefore in one easily-referenced location. Come see how it all works and how you can simplify your code with struct-plus-plus!

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  31. Data Integrity via Smart Structs

    by David Storrs

    Structs in Racket should be more than dumb data storage. They should be data models in the sense of MVC programming; they should ensure that their contents are valid according to your project’s business rules and they should make it easy to do common operations such as storing to a database or generating a struct from data of another type such as a database row or user input field.

    The struct-plus-plus module makes this easy. It allows you to place contracts on individual fields, specify business rules that ensure integrity between fields, easily create converter functions, and much more, with all of these things being part of the struct definition and therefore in one easily-referenced location. Come see how it all works and how you can simplify your code with struct-plus-plus!

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  32. Data Integrity via Smart Structs

    by David Storrs

    Structs in Racket should be more than dumb data storage. They should be data models in the sense of MVC programming; they should ensure that their contents are valid according to your project’s business rules and they should make it easy to do common operations such as storing to a database or generating a struct from data of another type such as a database row or user input field.

    The struct-plus-plus module makes this easy. It allows you to place contracts on individual fields, specify business rules that ensure integrity between fields, easily create converter functions, and much more, with all of these things being part of the struct definition and therefore in one easily-referenced location. Come see how it all works and how you can simplify your code with struct-plus-plus!

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  33. Data Integrity via Smart Structs

    by David Storrs

    Structs in Racket should be more than dumb data storage. They should be data models in the sense of MVC programming; they should ensure that their contents are valid according to your project’s business rules and they should make it easy to do common operations such as storing to a database or generating a struct from data of another type such as a database row or user input field.

    The struct-plus-plus module makes this easy. It allows you to place contracts on individual fields, specify business rules that ensure integrity between fields, easily create converter functions, and much more, with all of these things being part of the struct definition and therefore in one easily-referenced location. Come see how it all works and how you can simplify your code with struct-plus-plus!

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  34. keyring: Uniformly Access Secrets

    by Sam Phillips

    Hardcoding passwords in your programs is bad. Using secure password stores are good. Keyring is a Racket library that allows programs to access different password stores using a simple interface.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  35. keyring: Uniformly Access Secrets

    by Sam Phillips

    Hardcoding passwords in your programs is bad. Using secure password stores are good. Keyring is a Racket library that allows programs to access different password stores using a simple interface.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  36. keyring: Uniformly Access Secrets

    by Sam Phillips

    Hardcoding passwords in your programs is bad. Using secure password stores are good. Keyring is a Racket library that allows programs to access different password stores using a simple interface.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  37. keyring: Uniformly Access Secrets

    by Sam Phillips

    Hardcoding passwords in your programs is bad. Using secure password stores are good. Keyring is a Racket library that allows programs to access different password stores using a simple interface.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  38. keyring: Uniformly Access Secrets

    by Sam Phillips

    Hardcoding passwords in your programs is bad. Using secure password stores are good. Keyring is a Racket library that allows programs to access different password stores using a simple interface.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  39. Incrementally Developing Support for Racket->Wasm Compilation

    by Adam Perlin

    Wasm is an attractive compiler target for a variety of reasons: it has support in all major browsers, its isolation guarantees are beneficial for security reasons, and it has potential as a general-purpose platform-independent execution environment. However, adding Wasm support to Racket has proven a challenging problem due to differences in the execution model each language uses at runtime. Chez Scheme, the backend of Racket CS, utilizes code generation conventions which are difficult to adapt to Wasm.

    This talk will present an alternative approach to Racket-to-Wasm compilation which is compatible with Racket CS. The approach is accomplished by using an existing bytecode format and interpreter which are already supported under Chez Scheme, and performing an ahead-of-time translation of portions of bytecode programs into Wasm. This sets up an incremental approach to the development of a Racket-to-Wasm compilation system.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  40. Incrementally Developing Support for Racket->Wasm Compilation

    by Adam Perlin

    Wasm is an attractive compiler target for a variety of reasons: it has support in all major browsers, its isolation guarantees are beneficial for security reasons, and it has potential as a general-purpose platform-independent execution environment. However, adding Wasm support to Racket has proven a challenging problem due to differences in the execution model each language uses at runtime. Chez Scheme, the backend of Racket CS, utilizes code generation conventions which are difficult to adapt to Wasm.

    This talk will present an alternative approach to Racket-to-Wasm compilation which is compatible with Racket CS. The approach is accomplished by using an existing bytecode format and interpreter which are already supported under Chez Scheme, and performing an ahead-of-time translation of portions of bytecode programs into Wasm. This sets up an incremental approach to the development of a Racket-to-Wasm compilation system.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  41. Incrementally Developing Support for Racket->Wasm Compilation

    by Adam Perlin

    Wasm is an attractive compiler target for a variety of reasons: it has support in all major browsers, its isolation guarantees are beneficial for security reasons, and it has potential as a general-purpose platform-independent execution environment. However, adding Wasm support to Racket has proven a challenging problem due to differences in the execution model each language uses at runtime. Chez Scheme, the backend of Racket CS, utilizes code generation conventions which are difficult to adapt to Wasm.

    This talk will present an alternative approach to Racket-to-Wasm compilation which is compatible with Racket CS. The approach is accomplished by using an existing bytecode format and interpreter which are already supported under Chez Scheme, and performing an ahead-of-time translation of portions of bytecode programs into Wasm. This sets up an incremental approach to the development of a Racket-to-Wasm compilation system.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  42. Incrementally Developing Support for Racket->Wasm Compilation

    by Adam Perlin

    Wasm is an attractive compiler target for a variety of reasons: it has support in all major browsers, its isolation guarantees are beneficial for security reasons, and it has potential as a general-purpose platform-independent execution environment. However, adding Wasm support to Racket has proven a challenging problem due to differences in the execution model each language uses at runtime. Chez Scheme, the backend of Racket CS, utilizes code generation conventions which are difficult to adapt to Wasm.

    This talk will present an alternative approach to Racket-to-Wasm compilation which is compatible with Racket CS. The approach is accomplished by using an existing bytecode format and interpreter which are already supported under Chez Scheme, and performing an ahead-of-time translation of portions of bytecode programs into Wasm. This sets up an incremental approach to the development of a Racket-to-Wasm compilation system.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  43. Incrementally Developing Support for Racket->Wasm Compilation

    by Adam Perlin

    Wasm is an attractive compiler target for a variety of reasons: it has support in all major browsers, its isolation guarantees are beneficial for security reasons, and it has potential as a general-purpose platform-independent execution environment. However, adding Wasm support to Racket has proven a challenging problem due to differences in the execution model each language uses at runtime. Chez Scheme, the backend of Racket CS, utilizes code generation conventions which are difficult to adapt to Wasm.

    This talk will present an alternative approach to Racket-to-Wasm compilation which is compatible with Racket CS. The approach is accomplished by using an existing bytecode format and interpreter which are already supported under Chez Scheme, and performing an ahead-of-time translation of portions of bytecode programs into Wasm. This sets up an incremental approach to the development of a Racket-to-Wasm compilation system.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon