Making a fast curry: push/enter vs. eval/apply for higher-order languages
https://www.microsoft.com/en-us/research/uploads/prod/2016/07/eval-apply-icfp.pdf
https://www.microsoft.com/en-us/research/uploads/prod/2016/07/eval-apply-icfp.pdf
How to Use Monadic Operations for
https://www.cppstories.com/2023/monadic-optional-ops-cpp23/
std::optional in C++23https://www.cppstories.com/2023/monadic-optional-ops-cpp23/
C++ Stories
How to Use Monadic Operations for `std::optional` in C++23
In this post weβll have a look at new operations added to std::optional in C++23. These operations, inspired by functional programming concepts, offer a more concise and expressive way to work with optional values, reducing boilerplate and improving codeβ¦
Can You Trust a Compiler to Optimize Your Code? (Rust)
https://matklad.github.io/2023/04/09/can-you-trust-a-compiler-to-optimize-your-code.html
https://matklad.github.io/2023/04/09/can-you-trust-a-compiler-to-optimize-your-code.html
matklad.github.io
Can You Trust a Compiler to Optimize Your Code?
More or less the title this time, but first, a story about SIMD. There are three
levels of understanding how SIMD works (well, at least I am level 3 at the moment):
levels of understanding how SIMD works (well, at least I am level 3 at the moment):
Memory Safety in a Modern Systems Programming (D)
https://dlang.org/blog/2022/06/21/dip1000-memory-safety-in-a-modern-system-programming-language-pt-1/
https://dlang.org/blog/2022/06/21/dip1000-memory-safety-in-a-modern-system-programming-language-pt-1/
π3π1
A simple, arena-backed, generic dynamic array for C
https://nullprogram.com/blog/2023/10/05/
https://nullprogram.com/blog/2023/10/05/
π₯3π1
How fast are Linux pipes anyway?
https://mazzo.li/posts/fast-pipes.html
https://mazzo.li/posts/fast-pipes.html
mazzo.li
How fast are Linux pipes anyway?
Pipes are ubiquitous in Unix --- but how fast can they go on Linux? In this post we'll iteratively improve a simple pipe-writing benchmark from 3.5GiB/s to 65GiB/s, guided by Linux `perf`.
π₯2π1
Lightweight higher-kinded polymorphism
https://www.cl.cam.ac.uk/~jdy22/papers/lightweight-higher-kinded-polymorphism.pdf
https://www.cl.cam.ac.uk/~jdy22/papers/lightweight-higher-kinded-polymorphism.pdf
π2
An Algebraic Approach to Typechecking and Elaboration
https://bentnib.org/docs/algebraic-typechecking-20150218.pdf
https://bentnib.org/docs/algebraic-typechecking-20150218.pdf
π1π₯1
Laziness in Haskell
https://www.youtube.com/playlist?list=PLyzwHTVJlRc8620PjqbM0x435-6-Gi1Gu
https://www.youtube.com/playlist?list=PLyzwHTVJlRc8620PjqbM0x435-6-Gi1Gu
MIR-based JIT prototype for Ruby
https://developers.redhat.com/articles/2023/10/09/mir-based-jit-prototype-ruby
https://developers.redhat.com/articles/2023/10/09/mir-based-jit-prototype-ruby
Red Hat Developer
An MIR-based JIT prototype for Ruby | Red Hat Developer
I am a GCC compiler engineer, and for the past 15 years, I have primarily focused on the GCC register allocator and instruction scheduler. The major development
MIR: A lightweight JIT compiler projecthttps://developers.redhat.com/blog/2020/01/20/mir-a-lightweight-jit-compiler-project
Red Hat Developer
MIR: A lightweight JIT compiler project | Red Hat Developer
For the past three years, I've been participating in adding just-in-time compilation (JIT) to CRuby. Now, CRuby has the method-based just-in-time compiler (MJIT), which improves performance for
π₯1
Guide to Network Programming
https://beej.us/guide/bgnet/html/
https://beej.us/guide/bgnet/html/
π₯3π1
How to make ad-hoc polymorphism less ad hoc
https://users.csc.calpoly.edu/~akeen/courses/csc530/references/wadler.pdf
https://users.csc.calpoly.edu/~akeen/courses/csc530/references/wadler.pdf
Extensible records with scoped labels
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/scopedlabels.pdf
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/scopedlabels.pdf
Optimizations in C++ Compilers
https://queue.acm.org/detail.cfm?id=3372264
https://queue.acm.org/detail.cfm?id=3372264
queue.acm.org
Optimizations in C++ Compilers - ACM Queue
There
Garbage Collection as a Joint Venture: A collaborative approach to reclaiming memory in heterogeneous software systemshttps://queue.acm.org/detail.cfm?id=3325132
queue.acm.org
Garbage Collection as a Joint Venture - ACM Queue
Cross-component tracing is a way to solve the problem of reference cycles across component boundaries. This problem appears as soon as components can form arbitrary object graphs with nontrivial ownership across API boundaries. An incremental version of CCTβ¦
β€1
Integer overflow checking cost
https://danluu.com/integer-overflow/
https://danluu.com/integer-overflow/
π1
BB(3, 3) is Hard
https://www.sligocki.com//2023/10/16/bb-3-3-is-hard.html
https://www.sligocki.com//2023/10/16/bb-3-3-is-hard.html
sligocki
BB(3, 3) is Hard (Bigfoot)
Iβm excited to share a 3 state, 3 symbol Turing Machine that cannot be proven to halt or not (when starting on a blank tape) without solving a Collatz-like problem. Therefore, solving the \(BB(3, 3)\) problem is at least as hard as solving this Collatz-likeβ¦