The Curious Engineer

All blogs / Compilers

Stefan-Marr.de

stefan-marr.de

personal and research notes

CompilersPerformance / optimizationConcurrencyJava / JVM

Posts
240 from 1 Jul 2005 to 20 Aug 2026
Posting
monthly (10 in the last year)
Kind
personal blog
Feed
https://stefan-marr.de/feed/index.xml

2026 8

  1. Pitfalls of Benchmarking on Modern Systems
  2. https://stefan-marr.de/2026/08/
  3. SSW@ECOOP’26: On Debugging, Benchmarking and (Meta-)Compilation
  4. https://stefan-marr.de/2026/06/
  5. Programming Language Implementation: In Theory, We Understand. In Practice, We Wish We Would.
  6. https://stefan-marr.de/2026/02/
  7. Python, Is It Being Killed by Incremental Improvements?
  8. https://stefan-marr.de/2026/01/

2025 9

  1. Benchmarking Language Implementations: Am I doing it right? Get Early Feedback!
  2. https://stefan-marr.de/2025/11/
  3. Can We Know Whether a Profiler is Accurate?
  4. First Day: A New Chapter at the JKU
  5. https://stefan-marr.de/2025/10/
  6. How to Slow Down a Program? And Why it Can Be Useful.
  7. https://stefan-marr.de/2025/08/
  8. It’s Thursday, and My Last* Day at Kent
  9. https://stefan-marr.de/2025/07/

2024 7

  1. Instrumentation-based Profiling on JVMs is Broken!
  2. https://stefan-marr.de/2024/09/
  3. 5 Reasons Why Box Plots are the Better Default Choice for Visualizing Performance
  4. https://stefan-marr.de/2024/06/
  5. Rank 10 Language Implementations
  6. Why Are My Bytecode Interpreters Slow? Hunting Truffles with VTune
  7. https://stefan-marr.de/2024/02/

2023 9

  1. The Changing “Guarantees” Given by Python's Global Interpreter Lock
  2. https://stefan-marr.de/2023/11/
  3. Which Interpreters are Faster, AST or Bytecode?
  4. https://stefan-marr.de/2023/10/
  5. An Introduction to Interpreters and JIT Compilation
  6. Don't Blindly Trust Your Java Profiler!
  7. https://stefan-marr.de/2023/09/
  8. Squeezing a Little More Performance Out of Bytecode Interpreters
  9. https://stefan-marr.de/2023/06/

2022 6

  1. How Effective are Classic Lookup Optimizations for Rails Apps?
  2. https://stefan-marr.de/2022/11/
  3. Effortless Language Servers
  4. The Cost of Safety in Java
  5. Reducing Memory Footprint by Minimizing Hidden Class Graphs
  6. https://stefan-marr.de/2022/10/

2021 12

  1. Actors! And now?
  2. https://stefan-marr.de/2021/10/
  3. How do we do Benchmarking?
  4. https://stefan-marr.de/2021/09/
  5. Interpreters, Compilation, and Concurrency Tooling in PLAS at Kent
  6. https://stefan-marr.de/2021/07/
  7. Interpreter Generators: A Brief Look at Existing Work
  8. https://stefan-marr.de/2021/06/
  9. Open Postdoc Position on Language Implementation and Concurrency
  10. https://stefan-marr.de/2021/02/
  11. Towards a Synthetic Benchmark to Assess VM Startup, Warmup, and Cold-Code Performance
  12. https://stefan-marr.de/2021/01/

2020 12

  1. Preventing Concurrency Bugs from Causing Harm, Automatically
  2. The Shape of 1.7M Lines of Code
  3. The Shape of 6M Lines of Ruby
  4. https://stefan-marr.de/2020/12/
  5. Irrationally Annoyed: The SIGPLAN Blog Post writing 30 Years of PL Research Out of Existence
  6. https://stefan-marr.de/2020/10/
  7. Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the
  8. https://stefan-marr.de/2020/08/
  9. Is This Noise, or Does This Mean Something? #benchmarking
  10. https://stefan-marr.de/2020/07/
  11. An Introduction to Efficient and Safe Implementations of Dynamic Languages
  12. https://stefan-marr.de/2020/06/

2019 7

  1. SOMns 0.7.0 Release with Extension Modules and Artifacts
  2. What if we could see all concurrency bugs in the debugger?
  3. https://stefan-marr.de/2019/07/
  4. Generating an Artifact From a Benchmarking Setup as Part of CI
  5. https://stefan-marr.de/2019/05/
  6. Another Decade of SOM Language Implementation
  7. https://stefan-marr.de/2019/04/

2018 6

  1. Efficient Deterministic Replay for Actors
  2. https://stefan-marr.de/2018/08/
  3. A Typical Truffle Specialization Pitfall
  4. https://stefan-marr.de/2018/04/
  5. How to Design Collection Libraries?
  6. https://stefan-marr.de/2018/03/

2017 20

  1. Hello Canterbury!
  2. Debugging Concurrency Is Hard, but We Can Do Something About It!
  3. https://stefan-marr.de/2017/10/
  4. Building High-level Debuggers for Concurrent Languages with Truffle: The Missing Bits
  5. https://stefan-marr.de/2017/09/
  6. #bikexit17, Hello England, Goodbye EU?
  7. https://stefan-marr.de/2017/08/
  8. A 10 Year Journey, Stop 5: Growing the SOM Family
  9. https://stefan-marr.de/2017/07/
  10. A 10 Year Journey, Stop 4: Concurrency and Tooling
  11. https://stefan-marr.de/2017/06/
  12. A 10 Year Journey, Stop 2: Supporting All Kind of Concurrency Models on a Simple VM
  13. A 10 Year Journey, Stop 3: Performance, Performance, and Metaprogramming
  14. https://stefan-marr.de/2017/05/
  15. 10 Years of Language Implementations
  16. https://stefan-marr.de/2017/04/
  17. SOMns 0.2 Release with CSP, STM, Threads, and Fork/Join
  18. https://stefan-marr.de/2017/03/
  19. Communicating Sequential Processes for Newspeak/SOMns
  20. https://stefan-marr.de/2017/01/

2016 15

  1. Language Research with Truffle at the SPLASH'16 Conference
  2. Cross-Language Compiler Benchmarking: Are We Fast Yet?
  3. https://stefan-marr.de/2016/10/
  4. Can we get the IDE for free, too?
  5. https://stefan-marr.de/2016/08/
  6. Writing Papers with Completely Automated Data Processing
  7. https://stefan-marr.de/2016/06/
  8. Adding Debugging Support to a Truffle Language
  9. https://stefan-marr.de/2016/04/
  10. Open PostDoc Position on Programming Technology for Complex Concurrent Systems
  11. Domains: Sharing State in the Communicating Event-Loop Actor Model
  12. https://stefan-marr.de/2016/02/
  13. Type Hierarchies and Guards in Truffle Languages
  14. Towards Meta-Level Engineering and Tooling for Complex Concurrent Systems
  15. https://stefan-marr.de/2016/01/

2015 18

  1. Add Graal JIT Compilation to Your JVM Language in 5 Easy Steps, Step 4
  2. Add Graal JIT Compilation to Your JVM Language in 5 Easy Steps, Step 5
  3. https://stefan-marr.de/2015/12/
  4. Add Graal JIT Compilation to Your JVM Language in 5 Easy Steps, Step 1
  5. Add Graal JIT Compilation to Your JVM Language in 5 Easy Steps, Step 2
  6. Add Graal JIT Compilation to Your JVM Language in 5 Easy Steps, Step 3
  7. https://stefan-marr.de/2015/11/
  8. Tracing vs. Partial Evaluation: Comparing Meta-Compilation Approaches for Self-Optimizing Interpreters
  9. Optimizing Communicating Event-Loop Languages with Truffle
  10. JIT Data Structures, Fully Reflective VMs, and Meta-Circular Meta-Tracing
  11. https://stefan-marr.de/2015/10/
  12. Why Is Concurrent Programming Hard? And What Can We Do about It? #vmm2015
  13. https://stefan-marr.de/2015/09/
  14. Zero-Overhead Metaprogramming
  15. https://stefan-marr.de/2015/04/
  16. Partitioned Global Address Space Languages
  17. FOSDEM 2015: Building High-Performance Language Implementations With Low Effort
  18. https://stefan-marr.de/2015/01/

2014 14

  1. SOM Performance Numbers
  2. https://stefan-marr.de/2014/11/
  3. Fork/Join Parallelism in the Wild: Documenting Patterns and Anti-Patterns in Java Programs using the Fork/Join Framework
  4. Are We There Yet? Simple Language-Implementation Techniques for the 21st Century
  5. https://stefan-marr.de/2014/09/
  6. Why is Concurrent Programming hard?
  7. https://stefan-marr.de/2014/07/
  8. Domains: Safe Sharing Among Actors
  9. https://stefan-marr.de/2014/03/
  10. How to get a JIT Compiler for Free: Implementing SOM Smalltalk with RPython and Truffle
  11. OMOP Ported to Opal on top of Pharo 3
  12. Parallel Gesture Recognition with Soft Real-Time Guarantees
  13. Towards Composable Concurrency Abstractions
  14. https://stefan-marr.de/2014/02/

2013 8

  1. Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
  2. Tanks: Multiple Reader, Single Writer Actors
  3. https://stefan-marr.de/2013/10/
  4. Replacing plyr's ddply with data.table to improve an R script's performance
  5. https://stefan-marr.de/2013/03/
  6. Parallel Gesture Recognition with Soft Real-Time Guarantees
  7. Supporting Concurrency Abstractions in High-level Language Virtual Machines
  8. https://stefan-marr.de/2013/01/

2012 16

  1. Brief Introduction to Multicore Programming
  2. What If: Developing Applications in the Multicore Era
  3. Sly and the RoarVM: Exploring the Manycore Future of Programming
  4. https://stefan-marr.de/2012/11/
  5. RACES'12: Public Reviews + Paper Drafts + Voting on Agenda == Workshop 2.0?
  6. https://stefan-marr.de/2012/09/
  7. WritingStats: Track and Visualize Your Writing Progress
  8. https://stefan-marr.de/2012/07/
  9. Workshop on Relaxing Synchronization for Multicore and Manycore Scalability
  10. https://stefan-marr.de/2012/06/
  11. Identifying A Unifying Mechanism for the Implementation of Concurrency Abstractions on Multi-Language Virtual Machines
  12. https://stefan-marr.de/2012/03/
  13. FOSDEM Smalltalk Dev Room: Sly and the RoarVM
  14. https://stefan-marr.de/2012/02/
  15. Modularity and Conventions for Maintainable Concurrent Language Implementations: A Review of Our Experiences and Practices
  16. https://stefan-marr.de/2012/01/

2011 17

  1. Synchronization Views for Event-loop Actors
  2. CSOM/PL: A Virtual Machine Product Line
  3. https://stefan-marr.de/2011/12/
  4. OOSPLA 2011 @SPLASH2011, Day 3
  5. First Release Candidate of PHP 5.4 Available for Testing, including Traits!
  6. https://stefan-marr.de/2011/11/
  7. Transitioning to Multicore @SPLASH2011
  8. DLS'11 and VMIL'11 @SPLASH2011
  9. OOSPLA 2011 @SPLASH2011, Day 1
  10. OOSPLA 2011 @SPLASH2011, Day 2
  11. https://stefan-marr.de/2011/10/
  12. Using R to Understand Benchmarking Results
  13. Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Multicore/Manycore Era?
  14. https://stefan-marr.de/2011/09/
  15. The Sly3 Programming Language
  16. Sly and the RoarVM: Exploring the Manycore Future of Programming
  17. https://stefan-marr.de/2011/08/

2010 26

  1. The Price of the Free Lunch: Programming in the Multicore Era
  2. PHP.next: Traits – Presentation for AFUP in Paris
  3. · Stefan-Marr.de
  4. SPLASH'10 Main Conference
  5. RVM Open Sourced, Soon to be known as RoarVM
  6. RoarVM: The Manycore SqueakVM
  7. · Stefan-Marr.de
  8. Workshops at SPLASH 2010
  9. · Stefan-Marr.de
  10. Highlights of HPCC 2010
  11. · Stefan-Marr.de
  12. Poster at SPLASH’10
  13. · Stefan-Marr.de
  14. Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fine-grained Parallelism
  15. Doctoral Symposium at SPLASH 2010
  16. · Stefan-Marr.de
  17. Trends in Concurrency 2010, part 1
  18. Trends in Concurrency 2010, part 2
  19. Trends in Concurrency 2010, part 3
  20. · Stefan-Marr.de
  21. Locality and Encapsulation: My Student’s Presentation at the TiC Summer School
  22. https://stefan-marr.de/2010/05/
  23. Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from Concrete Concurrency Models
  24. Intermediate Language Design of High-level Language Virtual Machines: Towards Comprehensive Concurrency Support
  25. Towards an Actor-based Concurrent Machine Model
  26. https://stefan-marr.de/2010/02/

2009 12

  1. This year at the MoVES event: Winning the Poster Award :)
  2. · Stefan-Marr.de
  3. Traits Patch Updated, Backported, and Available on GitHub
  4. How to use Pharo/Squeak from the Command-line
  5. Theory and Practice of Language Implementation, part 3
  6. · Stefan-Marr.de
  7. Theory and Practice of Language Implementation, part 2
  8. · Stefan-Marr.de
  9. Theory and Practice of Language Implementation, part 1
  10. · Stefan-Marr.de
  11. New Traits Patch Ready for Testing
  12. · Stefan-Marr.de

2008 10

  1. New Blog, New Design
  2. · Stefan-Marr.de
  3. I am done, finally :)
  4. · Stefan-Marr.de
  5. Software Variability: a Programmers’ Perspective
  6. · Stefan-Marr.de
  7. PHP Unconference 2008
  8. · Stefan-Marr.de
  9. Traits for PHP
  10. · Stefan-Marr.de

2007 4

  1. Die Duet™-Idee
  2. · Stefan-Marr.de
  3. Duet™, eine nette Idee?
  4. · Stefan-Marr.de

2006 2

  1. Traffic-Management und Dienstgütesicherung in ATM-Netzwerken
  2. · Stefan-Marr.de

2005 2

  1. The JDO Persistence Model
  2. · Stefan-Marr.de