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

Lint is very slow to start #46

Closed
Wilfred opened this issue Oct 21, 2014 · 3 comments
Closed

Lint is very slow to start #46

Wilfred opened this issue Oct 21, 2014 · 3 comments

Comments

@Wilfred
Copy link

Wilfred commented Oct 21, 2014

$ touch /tmp/empty.jl
$ time julia -e 'using Lint; lintfile("/tmp/empty.jl")'
julia -e 'using Lint; lintfile("/tmp/empty.jl")'  12.46s user 0.10s system 99% cpu 12.588 total

Is this expected? This is Julia 0.3.1, but I'm seeing worse performance on trunk (~35 seconds). It makes it hard to run the check interactively from Emacs.

@tonyhffong
Copy link
Owner

Is it possible for you to keep a session of julia open and reuse that session to run lint instead of starting a new julia session every time you lint? Lint, like most packages are compiled just in time, so every function is slow the first time it's run but fast afterwards.

There are also efforts in progress on static compilation of Julia codes:
JuliaLang/julia#8656
JuliaLang/julia#8745

I myself am eagerly watching.

@Wilfred
Copy link
Author

Wilfred commented Oct 22, 2014

It's not possible currently with the standard Emacs lint packages (flycheck, flymake). There's discussion of adding the feature to flycheck, but it's a fairly major API change.

Sounds like this problem will just disappear with the next Julia version. I'll finish the flycheck integration and just live with the slow performance until 0.4 is out.

(I'm open to other suggestions, but I don't see any obvious alternatives.)

@Wilfred Wilfred closed this as completed Oct 22, 2014
@tonyhffong
Copy link
Owner

Another idea we can steal from emacs itself: client-server model. We could have a session of julia opened with a lint server listening to a port. Any process wanting to lint a piece of code or a file sends that request to the server and gets its output. It'd be faster. Of course none of the code enabling this idea exists.

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

No branches or pull requests

2 participants