-
Notifications
You must be signed in to change notification settings - Fork 556
WIP: SN 0.5.6 -> 0.5.7 -> 0.5.8 #4362
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
base: series/3.x
Are you sure you want to change the base?
Conversation
Okay, I think I can turn on and off the (probably) segfaults with a scala-native config flag 😀
I can see, that stacktraces are computed in a different way if that flag is true (and this seems new in 0.5.7). My best guess is that that different way sometimes segfaults 🤷♂️ (and also causes incorrect stacktraces for me locally). Also, this seems related: scala-native/scala-native/pull/4094 |
Green CI, nice work!! |
Current status:
Based on these, I can't definitively prove, but I suspect this could be a scala-native issue. I can see, that stacktraces are calculated in a different way in 0.5.7 if |
This reverts commit c41fbf9.
In 4e91a9c I've restored In any case, this is blocked (at least) until SN 0.5.8, unless of course we're fine with the workaround |
Just to confirm (as I'm not seeing green CIs any more) – it's theoretically possible to build CE successfully on 0.5.7 with If that is the case, IMO the best thing to do would be to get this out ASAP to start building the rest of the ecosystem, addressing the rest in a patch release (of either SN or CE) |
Yes. (To make sure, I've just pushed a899493, it should be green.) |
shall this be un-WIPped, then? :) Or maybe we can also get a 0.5.8, @WojciechMazur 🙏 |
I see two ways to un-WIP this:
|
0.5.8 has been released just now |
This is "fun": with 0.5.8 there is a completely(?) different segfault. It's on x86_64 linux (at least I think "Native high-core-count" is x86_64). |
I think it's scala-native/scala-native/issues/4366 (more details there). |
Okay so I think what we're going to do is release 3.7 (or at least, an RC) against 0.5.6, just to unblock the ecosystem and move the train forward. Excellent digging btw, @durban. |
Good news, everyone! It seems we can avoid scala-native/scala-native/issues/4366 by turning on the SN optimizer (see details there, tl;dr: Apparently the optimizer being on is the default, and funnily we probably turned it off to make multithreading work easier. I don't know why would anyone want to turn it off (okay, I obviously know...), but we might just say in the release notes: "don't do that"? |
Also, I can now confirm that my fix for the SN 0.5.7 segfaults (scala-native/scala-native#4301) was indeed correct. (Due to the new segfaults in 0.5.8 that wasn't certain until now. But now I've tried (#4447), and 0.5.7 also segfaults with the optimizer on.) |
build.sbt
Outdated
@@ -364,7 +364,7 @@ Global / tlCommandAliases ++= Map( | |||
lazy val nativeTestSettings = Seq( | |||
nativeConfig ~= { c => | |||
c.withSourceLevelDebuggingConfig(_.enableAll.generateFunctionSourcePositions(false)) // `true` causes segfaults(?) | |||
.withOptimize(false) // disable Scala Native optimizer | |||
.withOptimize(true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
true is the default, so you can remove the line altogether.
.withOptimize(true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As long as stuff is broken with false
, I'd prefer to be explicit. Also, to remove that line would mean removing the explanatory comment (you've reviewed an outdated commit).
Notes so far:
There is something weird going on with exception stacktraces; I haven't been able to minimize so far. UPDATE: seems to work fine in CI, so possibly something is broken in my local environment.ioAppTestsNative
fails onmacos-14
andubuntu-22.04-arm