I was discussing this in racket-money and someone suggested I should
quickly reference it here.
S10 (https://linki.tools/s10) is a superoptimization framework in Racket.
If you are familiar with Mangpo's work on Greenthumb you know what I am
talking about. This work follows a similar pattern but builds a
commercial product on top of the Racket ecosystem.
A bit of background:
At Linki Tools (https://linki.tools) we have been interested in
development tools consultancy and for a few years now we have been
developing compiler optimizations and backends for GCC and LLVM, as well
as testing and verification frameworks for compiler technology.
Throughout my time in this market I have seen a few places where the
existence of a superoptimizer would have been welcomed however, there
was nothing available that could be easily retargetable to other
architectures (usually clients have their own internal cpu archs that
are not publicly available). I found Greenthumb back in 2016 and
contacted Mangpo back then, however after some careful study of the code
and some upstream patches I started heavily changing the code, to the
point where incremental upstream patches became unfeasible.
I ended up rewriting most of Greenthumb and adding many other features
expected by clients of a commercial product like straightforward
profiling and debugging, better error messages, distributed execution, a
plugin framework for internals extension, etc. Because of this S10
stopped working with the backends developed for Greenthumb and I decided
to target instead as a proof of concept RISC-V architectures rv32i,
rv64i, rv128i. This led me to present this work last week in Barcelona
in the RISC-V Workshop.
A lot of things remain to be done but I didn't want to let the
opportunity pass to thank everyone who is part of the Racket community
and made this possible. Thank you for the amazing Racket ecosystem.
You received this message because you are subscribed to the Google Groups
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/d/optout.