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
Interpreter: compile in release mode by default #12614
Comments
Pros: it saves us from "it's slow!". Cons: it's inconsistent from building the compiler itself. |
I use that all the time and don't want it by default in release mode. I think a warning message suggesting to also add |
Be that with or without the interpreter, in fact. WDYT? |
@asterite I realize you are the primary developer on the interpreter, but does this statement only apply to you, or would you expect all users to want it not in release mode? |
Let's say it only applies to me and I want to compile in non-release mode. How do I do it? |
While working on the compiler (be that the interpreter or any other part of it) developers usually build in non-release mode for quick results. That's the most common use case and the one that should be most convenient. Just Release mode is typically only relevant for release builds. That's actually pretty similar for the compiler as it is for any other program. But I think the makefile is fine. |
@beta-ziliani Said in the OP it would be |
Maybe I'm misinterpreting the OP statement here and previous issue, but was the user using an official release build crystal or their own compiled crystal and did they build with release mode? I assumed they were using a compiler compiled in release mode and the interpreter wasn't in release mode, which doesn't make sense to me. I would expect if you are using the official release or compiling the compiler yourself with release=1, then crystal and the interpreter would be in release mode. If you are compiling the compiler not in release mode, then I would expect neither crystal nor the interpreter in release mode. Apologies if I misinterpreted. EDIT: I just read @straight-shoota's response and what he stated is what I would expect. |
I'm only wondering if shipping the interpreter, even if buggy, wouldn't be more helpful than thinking about this issue. People wouldn't have to build it, and it would already be compiled in release mode. |
I think it's not clear for users that if you compile the compiler in non-release mode, it affects the interpreter performance. After all the compiler compiles, and the interpreter interprets, so if the compiler is slow it shouldn't affect the interpreter. But of course that's not true. |
I'll repeat myself: the issue is not the state of the interpreter, but the release process that needs to be adapted significantly. We do want to ship it. |
When
make interpreter=1
it makes sense to have implicitly alsorelease=1
, unless stated otherwisemake interpreter=1 release=
.Follow up from #12609 (comment).
The text was updated successfully, but these errors were encountered: