I run across the 1988 paper "Design and Implementation of the UW Illustrated Compiler" about an educational compiler, implemented in Interlisp-D, for a simple block structured language. The system took advantage of Interlisp-D's GUI and environment to visualize the compiler's scanning, parsing, and code generation features and state.
#interlisp #compilers #retrocomputing
continuing from this post, re: semgrep/comby/ROTOR: https://discuss.ocaml.org/t/next-priority-for-ocaml/12561/97?u=elliottcable
Y’know, just musing, and i’m brand-new to this terminology so this may sound stupid, but …
with tools like Semgrep/Comby, we’re effectively talking about pattern-matching (over syntax instead of ADTs), and pattern-matching is a specific application of unification, right?
Am I correct in thinking that a truly-general refactoring tool like that would have a lot in common with a first-order #typechecker?
#typechecker #typetheory #compilers #compsci
Compilers Mastodon, does anyone know of examples where major C compilers exploit UB of misaligned loads/stores to produce silent misbehavior?
That's excluding
- Generating instructions that trap if misaligned (e.g. x86 movdqa), because that's not silent.
- Exploiting code that does more than just making misaligned loads/stores, such as calling __builtin_assume_aligned.
(cc @regehr... hmm, who else should I cc. I wish Mastodon had search. #compilers #llvm #gcc)
I’m getting ready to teach my weird open-source grad #compilers course next week: https://www.cs.cornell.edu/courses/cs6120/2023fa/
And it occurs to me to ask: does anybody else want to teach a class like this (i.e., focused on “mid-end” hacking and research)? I built a bunch of special infrastructure and would be delighted to help adapt it for another school/purpose/context/etc. if you want.
If someone tried #Treesitter could be employed to create source-to-source #compilers with Treesitter parsed trees behaving like intermediate representations. :blobcat3c:
But then again, someone will go ask ChatGPT instead to rewrite the code from X to Y and all such engineering efforts would go to the drain. :blobcatpout:
Contributing support for a Wasm instruction to Winch https://shopify.engineering/contributing-support-for-a-wasm-instruction-to-winch | https://lobste.rs/s/cj6m9m #compilers #testing
buzz 0.2.0 release https://github.com/buzz-language/buzz/releases/tag/0.2.0 | https://lobste.rs/s/wrqfvm #compilers #plt #release
Copy Hunting https://tigerbeetle.com/blog/2023-07-26-copy-hunting/ | https://lobste.rs/s/xkpgwp #compilers #performance #zig
Practical comparison of ARM compilers https://m0agx.eu/practical-comparison-of-ARM-compilers.html | https://lobste.rs/s/tzdyog #c++ #compilers
Practical Comparison of ARM Compilers
How to speed up the Rust compiler: data analysis assistance requested https://nnethercote.github.io/2023/07/25/how-to-speed-up-the-rust-compiler-data-analysis-assistance-requested.html | https://lobste.rs/s/dzinqx #compilers #rust
Durable Incrementality https://rust-analyzer.github.io/blog/2023/07/24/durable-incrementality.html | https://lobste.rs/s/te7x8n #compilers
Which Parsing Approach? https://tratt.net/laurie/blog/2020/which_parsing_approach.html | https://lobste.rs/s/ri4eeu #compilers
Mojo and Dynamism https://github.com/modularml/mojo/discussions/466 | https://lobste.rs/s/6mke7e #compilers #python
Binary sizes and compiler flags https://www.sandordargo.com/blog/2023/07/19/binary-sizes-and-compiler-flags | https://lobste.rs/s/teyaua #c++ #compilers
@markhepburn there are things like the static analysers that run on code bases looking for smells that don't involve local builds. Thankfully most #compilers are getting better, the #rust one is pretty damn good but when it falls short it is usually a brain teaser.
Error recovery with parser combinators (using nom) https://eyalkalderon.com/blog/nom-error-recovery/ | https://lobste.rs/s/bnrp1x #compilers #rust
Precompiled headers https://maskray.me/blog/2023-07-16-precompiled-headers | https://lobste.rs/s/6gcdpd #compilers
Melody: a language that compiles to regular expressions and aims to be readable and maintainable https://github.com/yoav-lavi/melody | https://lobste.rs/s/efo3o8 #compilers