-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove compile
?
#119
Comments
Oh good question.. 1.9 does eliminate a lot of the pain points about, say, LV-heavy functions being slow to compile. I'd say your call! |
@tshort any thoughts? |
I'm okay with deprecating that. |
Great. I'll draft up a PR soon. I had a lot of fun, and made some grand plans for that functionality, but the complexity was a bit beyond me, and it's just become a gigantic maintenance burden now. |
Is Just deprecate it, since a "gigantic maintenance". It's not like it doesn't work from older versions. You may want to at least doc that, and point to how to install them. Then if needed this could be resurrected. |
For anyone reading this who's confused, If you want to compile and link your Julia code to a standalone executable or shlib that can be used from other languages, then you still want |
I'm not so sure about this. This was one of the major features we were hoping to use from StaticCompiler.jl. A few major use cases are as follows. For one, we have many instances where we have generated code, from systems like ModelingToolkit. There, precompilation applies to the package itself, ModelingToolkit, or the user's package, which is ModelingToolkit code to generate a model. However, it does not apply to creating binaries of the model itself. But there are many instances where a user builds a large model and it would be interesting to have infrastructure so that could be compiled into a binary, i.e. the user at runtime runs their MTK generator to Precompilation does not handle this kind of use case, unless instead of generating code directly to compile we give that code to the user as a piece of Julia code to copy-paste into a file, make a fake package, add a PrecompileTools section, and then compile that fake PrecompileTools section. That is a very roundabout way to force the fact that precompilation makes binaries into something that stores proper binaries. We can for this case just use |
I actually wasn't aware that anyone was interested in using that functionality. I think the problem though is that the functionality from So I think perhaps there's space to provide something like that, but re-using significantly more of the underlying machinery from pkgimages, instead of the route we took here previously. |
Oh interesting! If you folks are interested I suppose that could change things. If someone wanted to PR a refactored / new version of `compile` I’d imagine that could be on the table - esp. if that could also make some of the pointer tricks more robust, or at least ensure we’ve had another set of eyes on them
|
Yeah, the main motivation I had was that it was a rather large chunk of code that I wasn't aware anybody was interested in at all, so an easy target for reducing maintenance burden. |
compile(f, args...)
currently compiles code that is intended to be used again from within a future julia session. Given that v1.9 now exists with pkgimages, I'm not sure there's any real point to the wholecompile
thing.Should we deprecate it and just focus on the small binaries?
compile
was a cool experiment and I learned a lot making it, but it's a lot of bloat to keep around.The text was updated successfully, but these errors were encountered: