thautwarm:
Basically, (single) dynamic dispatch itself can be statically compiled with “virtual tables” in .NET CLR/JVM, which can be theoretically much slower than Julia’s multiple dispatch but do not suffer at all from re-compilation and runtime compilation latency.
It just occurred to me that vtables make it trival to completely eliminate a class from compiled code if that class isn’t used anywhere. Thanks for helping me connect the dots!
I’m curious whether this is a fundamental limitation of having parametric polymorphism and multiple dispatch in the same language. To avoid cluttering this thread, created Reconciling dynamic multimethod dispatch, parametric types and static compilation if anyone has thoughts or insights.
thautwarm:
To solve the issues, the company I’m working for is now concentrating on generating small binaries (both standalone executables and dynamic libraries) for Julia codebase that is “reasonably static”. The project has made progress during mid-2023 and might be available for public use in the early 2024. Our work is based on code_typed
in a frozen world age .
Do you anticipate creating a small writeup to describe how this project works once it’s ready? Sounds exciting!
3 Likes