https://nim-lang.org/blog/2019/09/23/version-100-released.html
https://nim-lang.org/araq/v1.html
Many thanks to all our contributors and supporters!
Congratulations to Araq and the team for this epic achievement.
Posting in this thread for posterity's sake. ;-)
I'll also add (as noted in the readme file) that the performance differences are inflated compared to well-written real world imperative programs. The benchmark does almost nothing but allocating and deallocating memory, while real world imperative programs should at most spend 10%-20% of their time on it. The reason why I wrote the benchmark was not to actually make some universal statement about allocation performance, but to debunk a particularly ignorant article about how GC cannot be competitive with malloc() without incurring massive overhead. For that, I had to construct something of a worst case situation.
For most imperative applications where you don't need to tweak performance or need specific GC features, the choice of GC shouldn't matter much, as the bulk of the time will be spent doing non-allocation related work.
@jehan: Thanks for the summary on Boehm; thought the disadvantage might be latency, but as you say only a big problem if one does a lot of allocations/deallocations.
@Araq: If you are impressed with Boehm (other than if latency is a problem) as compared to the current default, it must be good and it looks like I'll have to try it.
Exactly one month after the release of 1.0.0, it is time for our first patch release: Nim 1.0.2
This version contains more than 50 fixes since v1.0.0. The list of changes can be seen here.