• Context Function for DSL Design in Scala

    A strong side of Scala is its DSL capability. DSLs, or domain-specific languages, are programming languages designed for convenient expression of operations in a certain domain. An example of such a DSL is the one I designed for Simple Rockets 2 – SR2 Compiler. That DSL can be used to program a rocket in the game.

    Read on →

  • Launching Rockets with Scala

    If you’re an aerospace hobbyist, there’s a good chance that you’ll have a ton of fun with Simple Rockets 2.

    Read on →

  • Following Causal Chains in Dotty Codebase

    You can deal with a problem in two ways. First, the intuitive way: go at it and follow your common sense. In process, however, you’ll discover recurring patterns. Some sub-problem that pops up constantly or a technique you apply time after time. Hence the second way is to frame the problem. Give the recurring patterns names, describe how they relate to each other. This way, you develop the domain of the problem.

    Read on →

  • Debugging Complex Scala Code: Tried and True Approaches

    11 months ago, I wrote an article about how I was fixing a Dotty bug. Back then, working under the processes I used, I produced a 60 pages long PDF document over the course of 10 days which documented the bug hunting workflow. The premise of the article was that if you adopt the right processes, the efficiency of the task in question increases dramatically. Back then, logging each step in a human-readable form was such a process for me.

    Read on →

  • Hacking on Dotty: The Diary

    Recently I was working on the solution to this bug in the Dotty compiler. While doing so, I was also testing an approach inspired by the Theory of Constraints (see my previous blog posts about the models) when applied to working with large code bases.

    Read on →