Deep dives into performance, concurrency & low-level mechanics ⚙️
Im not a t-shirt maker, views are my own
Next steps: sending them to an ORM :D
I discovered a lot of strange things in bytecode generation, and I must say that using an LLM to browse through certain parts of the documentation helps speed things up.
Next steps: sending them to an ORM :D
I discovered a lot of strange things in bytecode generation, and I must say that using an LLM to browse through certain parts of the documentation helps speed things up.
J’ai retrouvé ce que j’avais vu en parsant le constant pool
ASM, c’est pareil : on déclare les constantes (types, noms, signatures) puis on écrit les instructions bytecode qui pointent vers ces constantes pour construire les méthodes
Y a plus qu'a jouer now :D
J’ai retrouvé ce que j’avais vu en parsant le constant pool
ASM, c’est pareil : on déclare les constantes (types, noms, signatures) puis on écrit les instructions bytecode qui pointent vers ces constantes pour construire les méthodes
Y a plus qu'a jouer now :D
00000000: cafe babe 0000 0044 ...
We can see:
- Magic number: cafebabe
- Minor version: 0000 → 0
- Major version: 0044 → 68
This means the class file targets JDK 24 :D
00000000: cafe babe 0000 0044 ...
We can see:
- Magic number: cafebabe
- Minor version: 0000 → 0
- Major version: 0044 → 68
This means the class file targets JDK 24 :D
docs.oracle.com/javase/specs...
docs.oracle.com/javase/specs...
- ldc #13 loads the string "Hello world!" (entry #13) onto the stack.
- invokevirtual #15 uses entry #15 in the constant pool, which references PrintStream.println(String).
This is where the string is passed to the method, and "Hello world!" gets printed! <3
- ldc #13 loads the string "Hello world!" (entry #13) onto the stack.
- invokevirtual #15 uses entry #15 in the constant pool, which references PrintStream.println(String).
This is where the string is passed to the method, and "Hello world!" gets printed! <3
It resolves through the Methodref (#15), pointing to PrintStream.println(String)
It resolves through the Methodref (#15), pointing to PrintStream.println(String)
Let’s dig a bit deeper🚀
Let’s dig a bit deeper🚀
I'm enjoying the journey ! :D
I'm enjoying the journey ! :D
Right now, it only prints JVM thread names, but the journey was fascinating. Not trivial, but I learned a lot about Rust, the JVM
I'm pretty proud of myself :D
Right now, it only prints JVM thread names, but the journey was fascinating. Not trivial, but I learned a lot about Rust, the JVM
I'm pretty proud of myself :D
j'aime bien l'ergonomie:
j'aime bien l'ergonomie:
Really fun to play :D
Really fun to play :D
Dans Firefox / uBlock origin / Tableau de bord / Mes filtres, coller la ligne suvante : ||accounts.google.com/gsi/*
Dans Firefox / uBlock origin / Tableau de bord / Mes filtres, coller la ligne suvante : ||accounts.google.com/gsi/*
What a great relief 🥳 !!
From -> to
What a great relief 🥳 !!
From -> to
It's fun, after so much learning, to see things come to reality 😍
It's fun, after so much learning, to see things come to reality 😍
Funny ! the simplest part of my recent learning journey
Funny ! the simplest part of my recent learning journey