If you want to socialize during the event or hang out afterwards, you’ll find like-minded people on the Community Discord server.
Let’s get together in the voice channel for an aftershow party.
I noticed that one of the most important topics we’re discussing is incremental compilation (or modular compilation), and how to avoid the intrusive requirement of forcing users to add types to every method in order to achieve better compilation performance.
I have an idea:
We could indirectly implement type specification for methods, with the goal of making compilation more efficient and making better use of caching.
I’ve been following this project for a long time. It can automatically supplement types and return values for all methods. When I used it previously, it worked surprisingly well. However, unsurprisingly, after it gained some traction but failed to be merged into the standard library as a Crystal CLI tool, development has stalled again.
Following is my two cents: (with steps)
The core team could collaborate with the original author to actively develop cr-source-typer, integrate it into Crystal, and maintain it so that users can easily add types to their codebase via the command line whenever they need to, free, no pain.
Once the types are complete and the code compiles without errors, we can enable more caching and incremental/modular compilation to significantly boost compilation speed.
There is one potential issue: as new (untyped) code is added or errors occur, caches might become invalidated. However, I believe this is a worthwhile trade-off. After all, cr-source-typer is doing all the heavy lifting for us for free; the increased speed is just a nice added bonus. Even if users don’t use typer, they aren’t actually losing anything compared to how things are now.