Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Another precompilation failure #100

Closed
timholy opened this issue Jul 23, 2014 · 7 comments
Closed

Another precompilation failure #100

timholy opened this issue Jul 23, 2014 · 7 comments

Comments

@timholy
Copy link
Member

timholy commented Jul 23, 2014

I don't have time to look into it this morning, but for future reference: with v0.3.0-rc1, precompiling Gtk (and nothing else) yields this on the first pass after a make clean && make:

...
pkg.jl
graphics.jl
profile.jl
precompile.jl
fatal: error thrown and no exception handler available.
ErrorException("Task cannot be serialized")
make[1]: *** [/home/tim/src/julia/usr/lib/julia/sys0.o] Error 1
make: *** [release] Error 2
@vtjnash
Copy link
Contributor

vtjnash commented Jul 23, 2014

this is another problem caused by switching the task loop (if you are on master)

@vtjnash
Copy link
Contributor

vtjnash commented Jul 26, 2014

if nothing else, i could just tell users to start calling Gtk.gtk_main() like any other normal gtk app. the problematic code is really pretty now:

https://github.com/JuliaLang/Gtk.jl/blob/1827d6a122707eedee0cf1bcbed539598c68df6e/src/events.jl#L21

@timholy
Copy link
Member Author

timholy commented Jul 26, 2014

Sure, although the idea of not calling __init__ when building the system image seems pretty reasonable to me. But I'm fine with whatever.

@vtjnash vtjnash closed this as completed Aug 1, 2014
@vtjnash
Copy link
Contributor

vtjnash commented Aug 1, 2014

Fixed in Julia 0.3

@tknopp
Copy link
Collaborator

tknopp commented Aug 1, 2014

I think having the user call Gtk.gtk_main() would be a good move. Might it be possible to do this automatically when being in the REPL?

@vtjnash
Copy link
Contributor

vtjnash commented Aug 1, 2014

Yes, that's the direction I'm headed: I could do it automatically (in a task) if isinteractive()==true, which I think gives the desired behavior

It also means that gtk_main would block (in scripts) so you could use it at the bottom as the blocking mainloop instead of wait()

@tknopp
Copy link
Collaborator

tknopp commented Aug 1, 2014

+1 Yes lets please do it this way!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants