Latest Tech News

Stay updated with the latest in technology, AI, cybersecurity, and more

Filtered by: bytecode Clear Filter

How Ruby executes JIT code

Ever since YJIT’s introduction, I’ve felt simultaneously close to and distant from Ruby’s JIT compiler. I know how to enable it in my Ruby programs. I know it makes my Ruby programs run faster by compiling some of them into machine code. But my understanding around YJIT, or JIT compilers in Ruby in general, seems to end here. A few months ago, my colleague Max Bernstein wrote ZJIT has been merged into Ruby to explain how ZJIT compiles Ruby’s bytecode to HIR, LIR, and then to native code. It she

A Fast Bytecode VM for Arithmetic: The Compiler

In this post, we write the compiler for our AST to bytecode, and a decompiler for the bytecode. In this series of posts, we write a fast bytecode compiler and a virtual machine for arithmetic in Haskell. We explore the following topics: In this series of posts, we write a fast bytecode compiler and a virtual machine for arithmetic in Haskell. We explore the following topics: Parsing arithmetic expressions to Abstract Syntax Trees (ASTs). Unit testing for our parser. Interpreting ASTs. Comp

Out-Fibbing CPython with the Plush Interpreter

Out-Fibbing CPython with the Plush Interpreter In the last post I talked about Plush, the toy programming language with actor-based parallelism I've been tinkering with. The implementation is still immature, but it's reached a point where I can write fun programs that produce 2D/3D graphics and parallelize things over multiple CPU cores. Something I'd like to try soon, for the fun of it, is to animate a spinning cube with software rendering (rasterization). Before I get to that though, I'd like

Pluto is a unique dialect of Lua with a focus on general-purpose programming

Why should you choose Pluto? Accelerated Development. Greatly enhanced standard library. Several new syntaxes, such as switch statements, compound operators, ternary expressions, etc. Focused On Lua Compatibility. Pluto is largely compatible with Lua 5.4 source code, but there is an imperfection: Pluto implements new keywords, which can cause conflicts with otherwise normal identifiers such as 'switch', or 'class'. The parser tries to identify what is meant but if that doesn't work, you ca