Skip to content
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

Re-enable FTL JIT #820

Closed
mfikes opened this issue Oct 7, 2018 · 3 comments · Fixed by #918
Closed

Re-enable FTL JIT #820

mfikes opened this issue Oct 7, 2018 · 3 comments · Fixed by #918

Comments

@mfikes
Copy link
Member

mfikes commented Oct 7, 2018

#534 appears to no longer be reproducible with latest JavaScriptCore on macOS.

Having FTL JIT enabled again would be good for perf:

cljs.user=> (simple-benchmark [x (range 1e6)] (apply + x) 1e3)
[x (range 1000000)], (apply + x), 1000 runs, 2301 msecs

with it off:

cljs.user=> (simple-benchmark [x (range 1e6)] (apply + x) 1e3)
[x (range 1000000)], (apply + x), 1000 runs, 5426 msecs

It still occurs on Ubuntu 16.04, though:

JSC_useFTLJIT=true planck -D andare:0.7.0 -O simple -e"(require 'cljs.core.async)"
Segmentation fault (core dumped)
@mfikes mfikes changed the title Re-enable FTL JIT Re-enable FTL JIT on macOS Oct 7, 2018
mfikes added a commit that referenced this issue Oct 7, 2018
mfikes added a commit that referenced this issue Oct 7, 2018
mfikes added a commit that referenced this issue Oct 7, 2018
@mfikes
Copy link
Member Author

mfikes commented Oct 7, 2018

Actually, it can still crash on macOS when compiling macros:

### AOT compiling macro namespaces
script/build: line 142: 36713 Segmentation fault: 11  planck-c/build/planck -sk planck-cljs/out/macros-tmp -e"(require 'cljs.analyzer)" -e"(do (set! cljs.analyzer/*cljs-warnings* (assoc cljs.analyzer/*cljs-warnings* :undeclared-var false)) nil)" -e "(require-macros 'planck.repl 'planck.core 'planck.shell 'planck.from.io.aviso.ansi 'clojure.template 'cljs.spec.alpha 'cljs.spec.test.alpha 'cljs.spec.gen.alpha 'cljs.test 'cljs.pprint)"
Build Failed.

@mfikes mfikes closed this as completed Oct 7, 2018
@mfikes mfikes reopened this Oct 15, 2018
mfikes added a commit that referenced this issue Oct 15, 2018
mfikes added a commit that referenced this issue Oct 15, 2018
@mfikes
Copy link
Member Author

mfikes commented Oct 15, 2018

One way to reproduce the issue is to run the tests: script/test will exhibit a SIGSEGV pretty easily with JSC_useFTLJIT=true:

$ script/test
Running unit tests...
script/test: line 8: 63933 Segmentation fault: 11  script/test-unit

mfikes added a commit that referenced this issue Apr 27, 2019
mfikes added a commit that referenced this issue Apr 27, 2019
@mfikes
Copy link
Member Author

mfikes commented Apr 27, 2019

By running the test in #534 it looks like we are also good on Linux

JSC_useFTLJIT=true plk -Sdeps '{:deps {andare {:mvn/version "0.7.0"}}}' --optimizations simple -e"(require 'cljs.core.async)"

@mfikes mfikes changed the title Re-enable FTL JIT on macOS Re-enable FTL JIT Apr 27, 2019
mfikes added a commit that referenced this issue Apr 27, 2019
mfikes added a commit that referenced this issue Apr 27, 2019
mfikes added a commit that referenced this issue Apr 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant