noteflakes-music / lyp

Use Lilypond like a boss!
http://lyp.noteflakes.com/
MIT License
73 stars 7 forks source link

'list lilypond' and 'search lilypond' commands lock up #62

Open SashaOv opened 6 years ago

SashaOv commented 6 years ago

lyp list lilypond and lyp search lilypond commands lockup for a few minutes on my machine, before proceeding. Tried some other commands, work fine.

Versions:

noteflakes commented 6 years ago

To help me pinpoint the problem, try running the following two commands and let me know which of them hangs:

ruby -r lyp -e "p Lyp::Lilypond.list(system_only: true)"

ruby -r lyp -e "p Lyp::Lilypond.list(lyp_only: true)"
SashaOv commented 6 years ago

Hi @ciconia, the first one hangs and the second returns immediately. Thanks!

noteflakes commented 6 years ago

I suspect you have one or more versions installed on your system (not by lyp) that have not been "primed".

When listing the currently installed "system" Lilyponds, lyp runs each version it found with a special .ly file it uses to detect both the version and the location for data files for that particular version of Lilypond (this information is used mainly when installing fonts).

Some versions of Lilypond take quite a while to run the first time (because they generate font cache files I think). I know there was at least one recent version (of the 2.19 unstable strain) that had a problem with the cache and used to regenerate it each time it was run, which lead to it appearing to be hung.

You can get a list of all the installed lilyponds on your system by running which -a lilypond (this will also include the lyp-provided lilypond wrapper script). You can then try to run each one with a short sample file and see which of them hangs. If it hangs repeatedly, you can remove it if you wish.

Let me know if you found the culprit. At the moment I do not believe there's anything wrong with the detection code in lyp, which, again, is necessary for its correct functioning.

SashaOv commented 6 years ago

Hi @ciconia , I have verified that I don't have any lilyponds on the path except for one installed by lyp (I didn't ask lyp to install lilypond) and when I try to run it, it crashes Ruby:

$ gem uninstall lyp
Remove executables:
    lyp, lilypond

in addition to the gem? [Yn]  y
Removing lyp
Removing lilypond
Successfully uninstalled lyp-1.3.8
$ rbenv rehash
$ which -a lilypond
$ gem install lyp
Fetching: lyp-1.3.8.gem (100%)
Successfully installed lyp-1.3.8
Parsing documentation for lyp-1.3.8
Installing ri documentation for lyp-1.3.8
Done installing documentation for lyp after 0 seconds
1 gem installed
$ lilypond
# Gets stuck

Crash report: https://gist.github.com/SashaOv/e17ef74d6b0373ba7ac662b4504965db

I have a version not on the path as part of LilyPond-Mac OS app install, and that one works fine.

I will try with a different version of Ruby

SashaOv commented 6 years ago

Also tried with Ruby 2.0.0-p647 with the similar result, except I get these messages:

$ lilypond
/usr/local/Cellar/rbenv/1.1.1/libexec/rbenv-exec: line 47: /Users/so/.rbenv/versions/2.0.0-p647/bin/lilypond: Argument list too long
Lyp version 1.3.8
/usr/local/Cellar/rbenv/1.1.1/libexec/rbenv-exec: line 47: /Users/so/.rbenv/versions/2.0.0-p647/bin/lilypond: Argument list too long
Lyp version 1.3.8
/usr/local/Cellar/rbenv/1.1.1/libexec/rbenv-exec: line 47: /Users/so/.rbenv/versions/2.0.0-p647/bin/lilypond: Argument list too long

BTW, I am running under https://github.com/rbenv/rbenv -- could this be related?

SashaOv commented 6 years ago

Hi @ciconia, any suggestions?

noteflakes commented 6 years ago

Sorry for the late reply. I guess this does have something to do with rbenv. I don't have any experience with it. I use rvm on all my machines. I'll try to look more into this, but it will probably take some time as I'm currently very busy with other stuff.