#compilers
🦀 Building a Programming Language in Twenty-Four Hours | @ersei
#Compilers #PLT #Rust
https://ersei.net/en/blog/diy-programming-language
🎚️ Teaching and Learning Compilers Incrementally | @jeremysiek
⎧ an incremental approach in which we build a complete compiler every two weeks, starting with a small input language that includes only arithmetic and variables. We add new language features in subsequent iterations, extending the compiler as necessary ⎭
#Compilers #Python #Racket #Ebook #Course
https://iucompilercourse.github.io/tutorial-web-page/
I don't think Community.o is on Mastodon yet, so: @avanhatt will speak at next month’s Women in #Compilers and Tools (WiCT) meetup. Check it out: https://www.meetup.com/llvm_wict/events/293949678/
Squeezing a Little More Performance Out of Bytecode Interpreters
https://stefan-marr.de/2023/06/squeezing-a-little-more-performance-out-of-bytecode-interpreters/
Discussions: https://discu.eu/q/https://stefan-marr.de/2023/06/squeezing-a-little-more-performance-out-of-bytecode-interpreters/
Teaching and Learning Compilers Incrementally https://iucompilercourse.github.io/tutorial-web-page/ | https://lobste.rs/s/kv17am #compilers #plt
Proving My Compiler Code Incorrect With Alloy https://danilafe.com/blog/dyno_alloy/ | https://lobste.rs/s/fk8gjb #compilers #formalmethods
NVIDIA engineer contributed initial CUDA Fortran support to LLVM Flang https://www.phoronix.com/news/LLVM-Flang-Upstreaming-CUDA | https://lobste.rs/s/pvsp8s #compilers #fortran
Peeking under the hood of GCC's `__builtin_expect`
https://tbrindus.ca/how-builtin-expect-works/
Discussions: https://discu.eu/q/https://tbrindus.ca/how-builtin-expect-works/
RE/flex 3.3.4 released - a scanner generator for C++
https://github.com/Genivia/RE-flex
Discussions: https://discu.eu/q/https://github.com/Genivia/RE-flex
I love this stuff. Having started myself in the 6502 world, programming in tight places has always been something that I admired, even if I was never as clever as others.
I've updated the "resources" page on the #serene's website with numerous resources that I've studied to work on the compiler. If you're interested in #compilers, #mathematics, and stuff like that, you might find it useful.
SectorC: 512 byte C compiler: A compiler stuffed in an unimaginably small amount of x86 code. Not exactly C but a useful subset.
https://xorvoid.com/sectorc.html
#via:lobsters #programming #compilers #demoscene #hacks #scene #x86 #+ #c
📣 Folks, I'm offering a $1k 💵 referral fee for a successful referral to a full-time position in #Compilers/#DeveloperTools or #AI (ideally, both) that I'm hired for. I have >20yrs of experience (the last 10yrs mostly in compilers), and I'm very interested in AI.
https://gist.github.com/VladimirReshetnikov/8c442cd7e30d744384826cbbee60ae1b
https://drive.google.com/file/d/1s9irSbCGYQHmhHCGzmVyTLd1AL1RJ36U/view
OH: "I don't have an object format nor a linker, so I use m4".
Beyond Relooper: recursive translation of unstructured control flow to structured control flow https://dl.acm.org/doi/10.1145/3547621 | https://lobste.rs/s/n5nisg #compilers #pdf #plt
My Interview with Eelco Visser on Parsing https://tratt.net/laurie/blog/2023/my_interview_with_eelco_visser_with_on_parsing.html | https://lobste.rs/s/u6ihie #compilers
x86-sat: Basic SAT model of x86 instructions using Z3, autogenerated from Intel docs
https://github.com/zwegner/x86-sat
Discussions: https://discu.eu/q/https://github.com/zwegner/x86-sat
#asm #assembly #compilers #compsci #formalmethods #programming
x86-sat: Basic SAT model of x86 instructions using Z3, autogenerated from Intel docs https://github.com/zwegner/x86-sat | https://lobste.rs/s/dj5m03 #assembly #compilers #formalmethods
Relocation overflow and code models https://maskray.me/blog/2023-05-14-relocation-overflow-and-code-models | https://lobste.rs/s/pcgvro #compilers
Making GHC faster at emitting code https://www.tweag.io/blog/2022-12-22-making-ghc-faster-at-emitting-code/ | https://lobste.rs/s/6pz7uq #compilers #haskell #performance
Here are some Mastodon users I enjoy following for their retrocomputing and coding projects, and you may like too:
@amszmidt rediscovers and revives the software of MIT-derived Lisp Machines
@thelastpsion collects, revives, and codes software and resources for Psion handheld devices
@swetland writes a Pascal compiler that targets the Z80
@6502B makes accurate miniatures of historical and fictional computer systems
Building a baseline JIT for Lua automatically
https://sillycross.github.io/2023/05/12/2023-05-12/
Discussions: https://discu.eu/q/https://sillycross.github.io/2023/05/12/2023-05-12/
I'm just now catching Andrew Whatson's talk on #PreScheme from #fosdem this year, and I just can't get over the fact that he was able to implement a working, reasonably fast systems programming language with Hindley-Milner type inference in his free time over the course of a few months. And I was in the #GuileSteel irc when the discourse first started, it was probably less than a month before he got it working. I even try it then and it seemed great for something that went up that quick. What other programming languages make rapid prototyping #compilers feasible without relying on massive frameworks like #LLVM or #Truffle/#Graal?
And even then...
Building a baseline JIT for Lua automatically https://sillycross.github.io/2023/05/12/2023-05-12/ #lua #compilers #cpp
Building a baseline JIT for Lua automatically https://sillycross.github.io/2023/05/12/2023-05-12/ | https://lobste.rs/s/ftsowh #c++ #compilers #lua
C++ has been around for a long time but has changed significantly since 2011. A new standard, referred to as C++11 was introduced then, marking the beginning of a new era of frequent updates.
If you haven't used C++ since before C++11, you have a lot to catch up on, so where do you start? No worries, Frances Buontempo has you covered: https://bit.ly/3Bhnt7Z
The tale of -mrtd in GCC and Clang https://m680x0.github.io/blog/2023/05/the-tale-of-mrtd.html #compilers #historical
The tale of -mrtd in GCC and Clang https://m680x0.github.io/blog/2023/05/the-tale-of-mrtd.html | https://lobste.rs/s/k0kk7y #compilers #historical
Wonderful:
"Why Split Lexing And Parsing Into Two Separate Phases?", Laurence Tratt (https://tratt.net/laurie/blog/2023/why_split_lexing_and_parsing_into_two_separate_phases.html).
Via HN: https://news.ycombinator.com/item?id=35798829
#Lexing #Parsing #RegEx #RegularExpressions #Compilers #Interpreters #Lex #Yacc #grmtools #Rust #Programming #Grammar
JIT Compilers 102 https://redvice.org/2023/template-jits/ #compilers
JIT Compilers 102 https://redvice.org/2023/template-jits/ | https://lobste.rs/s/ahzsf9 #compilers
Let’s just use modern C++, surely the compiler writers are very smart and all that syntax sugar gets optimized away?😆
Check out this nice three-post series by @ricomariani about what really happens under the hood:
Driving Compilers
https://fabiensanglard.net/dc/
Discussions: https://discu.eu/q/https://fabiensanglard.net/dc/
Driving Compilers https://fabiensanglard.net/dc/ #c #compilers #cpp
Driving Compilers https://fabiensanglard.net/dc/ | https://lobste.rs/s/upmvxg #c #c++ #compilers
finally, a post on the design of yaegi, the #go #interpreter. Also of interest for those versed in #compilers.
https://marc.vertes.org/yaegi-internals/
Why Split Lexing and Parsing Into Two Separate Phases?
https://tratt.net/laurie/blog/2023/why_split_lexing_and_parsing_into_two_separate_phases.html
Discussions: https://discu.eu/q/https://tratt.net/laurie/blog/2023/why_split_lexing_and_parsing_into_two_separate_phases.html
Modular: A unified, extensible platform to superpower your AI https://www.modular.com/blog/a-unified-extensible-platform-to-superpower-your-ai | https://lobste.rs/s/h88xev #ai #compilers #plt #release
Why Split Lexing and Parsing Into Two Separate Phases? https://tratt.net/laurie/blog/2023/why_split_lexing_and_parsing_into_two_separate_phases.html | https://lobste.rs/s/ndkycy #compilers #plt
loxcraft: a compiler, language server, and online playground for the Lox programming language
https://github.com/ajeetdsouza/loxcraft
Discussions: https://discu.eu/q/https://github.com/ajeetdsouza/loxcraft
#compilers #compsci #plt #programming #programminglanguages #release #rustlang #webassembly
Is there a complete manual for how function calls are done in C
https://godbolt.org/z/oTvb6axa9
Discussions: https://discu.eu/q/https://godbolt.org/z/oTvb6axa9
pliron: An extensible compiler IR framework, inspired by MLIR and written in safe Rust.
https://github.com/vaivaswatha/pliron
Discussions: https://discu.eu/q/https://github.com/vaivaswatha/pliron
loxcraft: a compiler, language server, and online playground for the Lox programming language https://github.com/ajeetdsouza/loxcraft | https://lobste.rs/s/4rqlsy #compilers #compsci #plt #release #rust #wasm
cranelift: Better heuristics for instruction scheduling
https://github.com/bytecodealliance/wasmtime/issues/6260
Discussions: https://discu.eu/q/https://github.com/bytecodealliance/wasmtime/issues/6260
Hey #compilers folks, I'm looking for a sample code in #C that depicts a for-loop compiler optimization based on the fact that a signed overflow is UB.
for(int i=0;i<=N;i++) cannot overflow (UB) but can with unsigned, which is why int is preferred. What benefit does the monotonic property assumption give to the compiler? Any example to demonstrate the optimization?
Now, using <= is actually rare in my experience, so can a similar optim be triggered with let's say for(int i=start;i<end;i++)?
BNF Playground is an editor of BNF grammars that can be interactively tested by parsing input text. A great idea and a useful tool.
Rust and GraphQL enthusiasts! We just released `apollo-compiler@0.7.0`. A whole bunch of new validations + diagnostics! Multi-file diagnostic support! Lots of new and ergonomic ways of handling extensions!
changelog --> https://github.com/apollographql/apollo-rs/releases/tag/apollo-compiler%400.7.0
The Intel #iAPX 432 architecture was the #Itanium of the last century. Beautiful in concept but #compilers hadn’t caught up to it yet.
Anyway I had never actually read a whole lot of documentation on it, but #Bitsavers as always has come to the rescue:
For the graphql + rust pals: we've been making a whole bunch of progress on `apollo-rs`' compiler lately. Multi-source inputs! Performance optimisations! More convenience APIs!
Recent release - `apollo-compiler@0.6.0` - https://github.com/apollographql/apollo-rs/releases/tag/apollo-compiler%400.6.0
Lots more work to be done, but I am super happy with all the progress of the last few months.
does anyone else say "grand-parent node" or is it just me making shit up again? #compilers
I threw together a page with a few of my favorite resources for learning and hacking on #compilers and #interpreters
I finished reading "Writing an Interpreter in Go" by @mrnugget
Wow, what a ride! This is possibly the only programming book of which I understood nearly every single line of code. Without rereading. In a programming language I'm not familiar with.
Up next: reading the sequel, "Writing A Compiler In Go".
I'm reading the book "Writing an Interpreter in Go" by @mrnugget and here are some notes with my first impressions:
https://journal.paoloamoroso.com/reading-writing-an-interpreter-in-go
Dr. Futamura's Projection Machine: From Interpreters to Compilers through a Marvelous Device https://speakerdeck.com/evacchi/dr-futamuras-projection-machine-from-interpreters-to-compilers-through-a-marvelous-device | https://lobste.rs/s/vtx6yf #compilers #slides
A wild #blog post appeared!
Did you know that #GCC just added Modula-2 and #Rust frontends to mainline? Come with me as I explore how well they work on #OpenBSD. (Spoiler: excellently out-of-the-box.)
As an added bonus, there are instructions in the blog post for how you can get your own GCC with Modula-2 and Rust on your own OpenBSD machine. Just a quick pkg_add away!
https://briancallahan.net/blog/20221219.html
#compiler #compilers #opensource #freesoftware #FOSS #FLOSS #OSS #FreeBSD #NetBSD #DragonFlyBSD #BSD #Unix #Linux
Cranelift Progress in 2022 https://bytecodealliance.org/articles/cranelift-progress-2022 | https://lobste.rs/s/yzb2nf #compilers #rust #wasm
Goodbye to the C++ Implementation of Zig
https://ziglang.org/news/goodbye-cpp/
Discussions: https://discu.eu/q/https://ziglang.org/news/goodbye-cpp/
I got these short books by Thorsten Ball to read over the winter holidays:
Writing An Interpreter In Go
https://interpreterbook.com
Writing A Compiler In Go
https://compilerbook.com
They bridge the gap between short tutorials and 900 page compiler tomes packed with math. No knowledge of Go is required as the code is easy to understand, reads as pseudocode, and code blocks rarely span more than a page.
What geeky readings are your planning for the winter holidays?
Is there a way to find out what memory layout different languages use for different types? I'm especially interested in Go, OCaml, and Scheme
I built a Ruby Explorer using Ruby WASI https://hparker.xyz/ruby_explorer
"Crafting Interpreters" is a popular book by Robert Nystrom:
http://craftinginterpreters.com
It's less known Nystrom wrote a blog series explaining in great detail how he created the book. In the posts he covered his writing routine, book design, production toolchain, self-publishing process, promotion, and the setbacks and tragedies that challenged the work on the book. Here's the series:
@captbaritone nice! it reminds me of the Oberon compiler that my friend wrote awhile back. Not tooting it as an advertisement, but rather as another example of how to write a compiler.
:blobnerd:
reminder that if you're hacking on something in the #rust compiler (or want to begin!), you should feel free to schedule some time to chat: https://calendly.com/compiler-errors/rustc-dev-office-hours #rustlang #compilers
WebAssembly backend merged into GHC
https://www.tweag.io/blog/2022-11-22-wasm-backend-merged-in-ghc/
Discussions: https://discu.eu/q/https://www.tweag.io/blog/2022-11-22-wasm-backend-merged-in-ghc/
Doing another introductory post for folks new to discord.multiprocess.io, a server for devs who want to learn more about (and hack on) software internals!
#databasedevelopment #distributedsystems #compilers #emulators
Overdue #introduction
Hi! I'm Antonio (or Tony).
I'm an electronics engineer turned software developer.
I'm also plethora of competing interests: #cloudnative technologies, low-level system programming, #eBPF, #Rust, #compilers, #deeplearning #gaming and lately a few #CTF.
Outside computers I love to #travel, #hike, #workout. I'm a big #foodie and enjoy #boardgames.
Really enjoy the coffee shop and wholesome vibe of #hachyderm. Thanks @nova for setting it up and taking care of it.
New server, new #introduction #introductions
Hey folks, I'm a #SoftwareEngineer and #founder from #Dublin, living in #NYC after a decade in #SF.
I work on @darklang, trying to fix everything that's wrong with #coding (and keep everything that's right!). See https://hachyderm.io/@paulbiggar/109383110124404403 for updates.
Previously I made #CircleCI, was at #RecurseCenter, and did a #phd in #Compilers and #StaticAnalysis. Big fan of pastries, chocolate and ice cream, also history.
lrlna, an #introduction!
I am Ukrainian-Canadian software engineer living in Copenhagen. I do #compilers, #parsers, #rust.
I am into #plants and #gardening, and grow a bit of food and flowers on my balcony.
I make #zines! Some computer related, some are #art projects. I am recently into #risograph printing (#riso community anyone??).
I'll occasionally also toot about #hiking, #literature, #poetry and my #cats (ok fine,,,,, a lot about cats).
🕯️ hoping for a cozy community 🕯️
(boosts okkkk)
Since I did the same on my old functional.cafe instance, thought I should have an intro here as well, it’s mostly stolen from there
[insert #introduction #intro #introductions since it seems those hashtags are popular or something]
My name is Ștefan (ș being sh or s if you’re English), 20 y.o., ♑, he/him, leftist and all that. I’m sadly living in Romania, I’m an undergrad in computer science and I’ve tried waaaay too many programming languages.
My usual speciality is programming, I prefer functional programming (and Lisps such as #scheme, #commonlisp and #elisp sometimes), math (mostly real analysis, calculus, number theory and geometric algebra).
I am also interested in #linguistics (and NLP), post-WWII history (especially post-‘89), #compilers and #emulators (and generally low-level stuff), #typography and #latex, #linux and #bsd (and #dos stuff) and #philosophy, #astronomy and #astrology (don’t @ me) among many other things. I hope I’ll be welcomed here!