Kostya M

Results 147 comments of Kostya M

When you build `--single-module`, its only 1 module, how mt can help here?. May be enable only for no `--single-module`.

parenthesis remains because I try likely here, but somehow it compile error, so I remove it. Optimizations which add huge impact: 1) this line: https://github.com/crystal-lang/crystal/pull/14225/files#diff-160d80555792cf986b3f299649b59e7b973ac45a415cafe2978905ccfacce4d1R576, each_index is a method which...

instead of AlwaysInline, we can for example calculate somehow method complexity, and inline if it small, like `

Another idea, mark full class with `AlwaysInline`, like `Pointer` and automatically inline all calls to it.

Also there is already small inlining in generate calls https://github.com/crystal-lang/crystal/blob/master/src/compiler/crystal/codegen/call.cr#L449, but it inline only primitives, self and getters. It also should inline setters for example.

I experiencing very slow compile std_spec in this branch in -O2, I think this is because all specs compiled in single module (because no classes), so parallel compilation have no...

for simplify testing I add this rep: https://github.com/kostya/crystal-metric --release: 25.6282s `Master`: -O2: 106.0206s `This branch`: -O2: 30.3626s `Master + only inline pointer`: -O2: 65.6595s In this branch runtime for `-O2`...

My first branch was separated by commits. This is result for crystal-metric on each commit. For `-O2`. By commits: 1. Initial, https://github.com/kostya/crystal/commit/8b5fbbacc30af58e8aba570fe64d77f752d6d200, 105.7559s 2. https://github.com/kostya/crystal/commit/675669e185c03e9bde33b17f6bd34db246ae261a, 104.1533s 3. https://github.com/kostya/crystal/commit/43514d770c972a1206d0196162ffcf6ddbb39468, 70.3383s 4....

I see one more thing to improve, which I don't know how to do, this is `record.new`. ```crystal record Bla, x : Int Bla.new 1 ``` `Bla.new` - generate call...