yacc table file version is out of date

266 views
Skip to first unread message

Martín Rincón Botero

unread,
Jan 22, 2021, 10:42:15 AM1/22/21
to abjad-user
Hello,

I recently updated to Ubuntu 20.04 and just now to abjad 3.2. I started seeing this warning printed in the Python interactive console every time I put a first abjad command. For the rest, abjad seems to work normally but the warning is still there. Does anybody know what this means and how to fix it? (Python 3.8.5).

Regards,
Martín.

Trevor Bača

unread,
Jan 22, 2021, 4:41:43 PM1/22/21
to abjad...@googlegroups.com
On Fri, Jan 22, 2021 at 10:42 AM Martín Rincón Botero <martinrin...@gmail.com> wrote:
Hello,

I recently updated to Ubuntu 20.04 and just now to abjad 3.2. I started seeing this warning printed in the Python interactive console every time I put a first abjad command. For the rest, abjad seems to work normally but the warning is still there. Does anybody know what this means and how to fix it? (Python 3.8.5).

Hi Martín,

Have you tried creating a completely new virtual environment for Abjad 3.2, and installing 3.2 in that environment?


Trevor.

--

Martín Rincón Botero

unread,
Jan 22, 2021, 5:45:54 PM1/22/21
to abjad-user
Hi Trevor,

no. But I just found out something even worse by upgrading to Ubuntu 20.04: Lilypond doesn't run anymore. No matter what I install or uninstall (2.20, 2.22) it gives two alternatives: it appears as if it's started ("GNU Lilypond etc.") but hangs there when installed from the Lilypond installation script or, if installed via apt, it doesn't find Lilypond when trying to execute it 😣. It was not a good idea to upgrade, apparently (but other than that Ubuntu 20.04 is terrific. What a shame!).

--
You received this message because you are subscribed to the Google Groups "abjad-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to abjad-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/abjad-user/CACTvJ4VoDDEJLWmfBPaS6YHb1O9HDsVLY7WJRO5ma67Zg%3DYgXw%40mail.gmail.com.


--

Adam McCartney

unread,
Jan 23, 2021, 6:03:20 AM1/23/21
to abjad-user
Hi Martin,

did your Ubuntu upgrade come with a new python implementation? I'd be a bit out of my depth to try and answer the yacc problem,
yacc stands for yet-another-compiler-compiler and it's used to generate grammars for a compiler. I'm not actually sure how this
would affect working with abjad, perhaps it could be that when you run an abjad program, somewhere along the line it's looking for
a yacc table so that it knows how to make your program.

Anyway, the bigger issue generally sounds to me like you've created a "Franken-Ubuntu". I've done similar things a bunch of times
with various Linux distributions. Basically what happens is that you install stuff from a mix of various package repos and source
tarballs and the system gets confused about which one it should be using. It's also very hard to find all the binary files to uninstall
them if they have been installed in a haphazard sort of way.

The approach that I normally take if I've done this to a system is simply to reinstall, actually I've even started keeping a list of packages
that I need to run the system in a dotfiles repo beside a shell script that can be easily run on a new system in order to set it up.
It's very straightforward to do this, and it's often much less of a headache than trying to fix a broken system.
***Just make sure to backup!!!***

This page about keeping your system healthy is very useful reading: https://wiki.debian.org/DontBreakDebian
Also, here is a good blog about installing software that you've built yourself: https://nullprogram.com/blog/2017/06/19/

Martín Rincón Botero

unread,
Jan 23, 2021, 6:18:18 AM1/23/21
to abjad-user
Hi Adam,

thank you for your answer. As I write, I’m making a backup of everything and trying to make a clean Ubuntu 20.04 install. I have little idea how I managed to make a Franken-Ubuntu, lol. As far as I remember, I’ve used the normal repositories. I remember having a few PPAs for stuff like Typora or Slack, nothing manually compiled. I however have the feeling that an upgrade should take care of not give you a Franken-Ubuntu (especially if you didn’t compile anything yourself!).  

Anyways, the upgrade came indeed with a new Python version (3.8.5 instead of 3.6). I’ll reinstall from scratch and see what happens. If everything works, I’ll deactivate the upgrade offerings Ubuntu might make in the future. It makes no sense to break a functioning system by upgrading that way and I can’t really tell why such risky operation is offered to LTS users with so much confidence 🤷🏻‍♂️.

Cheers,
Martín.
PS: Thanks for the reading material!

Adam McCartney

unread,
Jan 23, 2021, 6:49:08 AM1/23/21
to abjad...@googlegroups.com
Hi Martin,

to be honest, I don't have much experience with Ubuntu, I have a version installed here on another machine and it
seems to work great, but I don't really use it for any heavy lifting. I think Ubuntu based on Debian, but the release
cycle is much more frequent, so it's able to offer newer versions of programs. The speed of the release cycle of
the stable debian branch is fine for me. I usually have to reach into the backports package repo in order to
get newer versions of certain packages (lilypond for instance) and I do a little bit of building from source within
a filesystem under $HOME/.local

Yeah, it may be overkill to reinstall the system, but having two different python3 implementations definitely
makes things tricky. I actually don't know what the best practices are for upgrades.

By the way -> are you on a dual boot system with windows? You have to be a bit careful if you are deleting
partitions, it's not uncommon to be left with windows + the GRUB bootloader if you delete the other linux filesystems.
This certainly made my heart skip a beat or two the first time it happened. It looks like there is a more gentle
way to reinstall using Ubuntu:





You received this message because you are subscribed to a topic in the Google Groups "abjad-user" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/abjad-user/CvIpr3qY_qo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to abjad-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/abjad-user/869940d4-08aa-42cc-992d-486c75772c0a%40Spark.

Martín Rincón Botero

unread,
Jan 23, 2021, 7:01:24 AM1/23/21
to abjad...@googlegroups.com
I can’t really say anything about Debian, since I’ve never used it. The only thing that matters most to me is usability. Newer versions of programs are for sure always welcome. After reading the don’t break Debian page, I’ll try my best to not add any PPAs this time and use only whatever the Ubuntu shop offers. Let’s see how that goes ;-). I hope for the most part that Lilypond works! That’s the most fundamental piece of software I need. It kinda makes me wonder if it wouldn’t be better to try to package abjad together with all its dependencies in some sort of executable. It might sound inefficient, but one would certainly always be on the safe side as to python and lilypond versions, assuring that abjad is always gonna work no matter what. 

Luckily I have only Ubuntu on this computer. Dual booting is not great, even less on a 128GB SSD, with Windows growing exponentially in size with every (forced!) update.

Trevor Bača

unread,
Jan 23, 2021, 8:38:02 AM1/23/21
to abjad...@googlegroups.com
Offf, Martín sorry to hear about the OS drama! Definitely fix that first, then make sure Lily's working. Then just create a clean venv for Abjad 3.2, and I'm pretty sure everything will work.

Definitely no packaging of LilyPond (or other binaries) into Abjad! Just get LilyPond working, then install Abjad.

Martín Rincón Botero

unread,
Jan 23, 2021, 8:58:21 AM1/23/21
to abjad-user
Ok. It's all newly installed and Lily is working again. I hadn't created a virtual environment for abjad before. The installation in a virtual environment threw some errors but somehow managed to finish. Here is the output:

Collecting abjad
  Downloading Abjad-3.2.tar.gz (549 kB)
     |████████████████████████████████| 549 kB 2.8 MB/s
Collecting ply
  Downloading ply-3.11-py2.py3-none-any.whl (49 kB)
     |████████████████████████████████| 49 kB 2.5 MB/s
Collecting quicktions>=1.3
  Downloading quicktions-1.11-cp38-cp38-manylinux1_x86_64.whl (78 kB)
     |████████████████████████████████| 78 kB 2.0 MB/s
Collecting roman
  Downloading roman-3.3-py2.py3-none-any.whl (3.9 kB)
Collecting six
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting uqbar<0.5.0,>=0.4.4
  Downloading uqbar-0.4.8.tar.gz (56 kB)
     |████████████████████████████████| 56 kB 2.8 MB/s
Collecting Sphinx>=3.2.0
  Downloading Sphinx-3.4.3-py3-none-any.whl (2.9 MB)
     |████████████████████████████████| 2.9 MB 3.6 MB/s
Collecting Unidecode>=1.0.0
  Downloading Unidecode-1.1.2-py2.py3-none-any.whl (239 kB)
     |████████████████████████████████| 239 kB 2.6 MB/s
Collecting black>=19.10b0
  Downloading black-20.8b1.tar.gz (1.1 MB)
     |████████████████████████████████| 1.1 MB 2.6 MB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting sphinx-rtd-theme>=0.4.0
  Downloading sphinx_rtd_theme-0.5.1-py2.py3-none-any.whl (2.8 MB)
     |████████████████████████████████| 2.8 MB 1.6 MB/s
Collecting docutils>=0.12
  Downloading docutils-0.16-py2.py3-none-any.whl (548 kB)
     |████████████████████████████████| 548 kB 2.6 MB/s
Collecting sphinxcontrib-devhelp
  Downloading sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl (84 kB)
     |████████████████████████████████| 84 kB 1.5 MB/s
Collecting Pygments>=2.0
  Downloading Pygments-2.7.4-py3-none-any.whl (950 kB)
     |████████████████████████████████| 950 kB 2.1 MB/s
Collecting snowballstemmer>=1.1
  Downloading snowballstemmer-2.1.0-py2.py3-none-any.whl (93 kB)
     |████████████████████████████████| 93 kB 1.2 MB/s
Collecting imagesize
  Downloading imagesize-1.2.0-py2.py3-none-any.whl (4.8 kB)
Collecting sphinxcontrib-htmlhelp
  Downloading sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl (96 kB)
     |████████████████████████████████| 96 kB 2.2 MB/s
Collecting sphinxcontrib-qthelp
  Downloading sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl (90 kB)
     |████████████████████████████████| 90 kB 2.6 MB/s
Collecting babel>=1.3
  Downloading Babel-2.9.0-py2.py3-none-any.whl (8.8 MB)
     |████████████████████████████████| 8.8 MB 3.5 MB/s
Collecting alabaster<0.8,>=0.7
  Downloading alabaster-0.7.12-py2.py3-none-any.whl (14 kB)
Collecting sphinxcontrib-serializinghtml
  Downloading sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl (89 kB)
     |████████████████████████████████| 89 kB 1.6 MB/s
Collecting requests>=2.5.0
  Downloading requests-2.25.1-py2.py3-none-any.whl (61 kB)
     |████████████████████████████████| 61 kB 1.5 MB/s
Collecting Jinja2>=2.3
  Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
     |████████████████████████████████| 125 kB 1.8 MB/s
Requirement already satisfied: setuptools in ./abjad/lib/python3.8/site-packages (from Sphinx>=3.2.0->uqbar<0.5.0,>=0.4.4->abjad) (44.0.0)
Collecting sphinxcontrib-jsmath
  Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB)
Collecting sphinxcontrib-applehelp
  Downloading sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl (121 kB)
     |████████████████████████████████| 121 kB 1.9 MB/s
Collecting packaging
  Downloading packaging-20.8-py2.py3-none-any.whl (39 kB)
Collecting toml>=0.10.1
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting appdirs
  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting mypy-extensions>=0.4.3
  Downloading mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting pathspec<1,>=0.6
  Downloading pathspec-0.8.1-py2.py3-none-any.whl (28 kB)
Collecting regex>=2020.1.8
  Downloading regex-2020.11.13-cp38-cp38-manylinux2014_x86_64.whl (738 kB)
     |████████████████████████████████| 738 kB 2.1 MB/s
Collecting typed-ast>=1.4.0
  Downloading typed_ast-1.4.2-cp38-cp38-manylinux1_x86_64.whl (774 kB)
     |████████████████████████████████| 774 kB 2.6 MB/s
Collecting click>=7.1.2
  Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 408 kB/s
Collecting typing-extensions>=3.7.4
  Downloading typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
Collecting pytz>=2015.7
  Downloading pytz-2020.5-py2.py3-none-any.whl (510 kB)
     |████████████████████████████████| 510 kB 2.3 MB/s
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.2-py2.py3-none-any.whl (136 kB)
     |████████████████████████████████| 136 kB 2.7 MB/s
Collecting certifi>=2017.4.17
  Downloading certifi-2020.12.5-py2.py3-none-any.whl (147 kB)
     |████████████████████████████████| 147 kB 2.8 MB/s
Collecting chardet<5,>=3.0.2
  Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB)
     |████████████████████████████████| 178 kB 2.3 MB/s
Collecting idna<3,>=2.5
  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
     |████████████████████████████████| 58 kB 1.7 MB/s
Collecting MarkupSafe>=0.23
  Downloading MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl (32 kB)
Collecting pyparsing>=2.0.2
  Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
     |████████████████████████████████| 67 kB 1.4 MB/s
Building wheels for collected packages: abjad, uqbar, black
  Building wheel for abjad (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/martin/abjad/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ho05g7io/abjad/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ho05g7io/abjad/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-yyt19qpw
       cwd: /tmp/pip-install-ho05g7io/abjad/
  Complete output (6 lines):
  usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: setup.py --help [cmd1 cmd2 ...]
     or: setup.py --help-commands
     or: setup.py cmd --help
 
  error: invalid command 'bdist_wheel'
  ----------------------------------------
  ERROR: Failed building wheel for abjad
  Running setup.py clean for abjad
  Building wheel for uqbar (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/martin/abjad/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ho05g7io/uqbar/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ho05g7io/uqbar/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-vjavevre
       cwd: /tmp/pip-install-ho05g7io/uqbar/
  Complete output (6 lines):
  usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: setup.py --help [cmd1 cmd2 ...]
     or: setup.py --help-commands
     or: setup.py cmd --help
 
  error: invalid command 'bdist_wheel'
  ----------------------------------------
  ERROR: Failed building wheel for uqbar
  Running setup.py clean for uqbar
  Building wheel for black (PEP 517) ... done
  Created wheel for black: filename=black-20.8b1-py3-none-any.whl size=124184 sha256=3cb8ae3901118d09e944b3f508cecf4f8e8c8eac8a4b7bd0c6557882ddb29ed8
  Stored in directory: /home/martin/.cache/pip/wheels/95/a4/59/10cd5378d52f92cdb45025f040e4686e10ae5217961c25fd66
Successfully built black
Failed to build abjad uqbar
Installing collected packages: ply, quicktions, roman, six, docutils, sphinxcontrib-devhelp, Pygments, snowballstemmer, imagesize, sphinxcontrib-htmlhelp, sphinxcontrib-qthelp, pytz, babel, alabaster, sphinxcontrib-serializinghtml, urllib3, certifi, chardet, idna, requests, MarkupSafe, Jinja2, sphinxcontrib-jsmath, sphinxcontrib-applehelp, pyparsing, packaging, Sphinx, Unidecode, toml, appdirs, mypy-extensions, pathspec, regex, typed-ast, click, typing-extensions, black, sphinx-rtd-theme, uqbar, abjad
    Running setup.py install for uqbar ... done
    Running setup.py install for abjad ... done
Successfully installed Jinja2-2.11.2 MarkupSafe-1.1.1 Pygments-2.7.4 Sphinx-3.4.3 Unidecode-1.1.2 abjad-3.2 alabaster-0.7.12 appdirs-1.4.4 babel-2.9.0 black-20.8b1 certifi-2020.12.5 chardet-4.0.0 click-7.1.2 docutils-0.16 idna-2.10 imagesize-1.2.0 mypy-extensions-0.4.3 packaging-20.8 pathspec-0.8.1 ply-3.11 pyparsing-2.4.7 pytz-2020.5 quicktions-1.11 regex-2020.11.13 requests-2.25.1 roman-3.3 six-1.15.0 snowballstemmer-2.1.0 sphinx-rtd-theme-0.5.1 sphinxcontrib-applehelp-1.0.2 sphinxcontrib-devhelp-1.0.2 sphinxcontrib-htmlhelp-1.0.3 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-1.0.3 sphinxcontrib-serializinghtml-1.1.4 toml-0.10.2 typed-ast-1.4.2 typing-extensions-3.7.4.3 uqbar-0.4.8 urllib3-1.26.2


After opening an interactive python console, importing abjad and making a test container I got again WARNING: yacc table file version is out of date!



--

Martín Rincón Botero

unread,
Jan 23, 2021, 8:59:28 AM1/23/21
to abjad-user
PS: just as before abjad seems to work despite the warning.
--

Adam McCartney

unread,
Jan 23, 2021, 10:43:36 AM1/23/21
to abjad...@googlegroups.com
hey martin,

glad to hear that at least lilypond is working okay. 

I just set up a python3 venv to test out abjad 3.2 and it's working fine, not giving any warnings.
I'm running Python 3.7.3

Tested on ubuntu 20.04.1, python3.8.5, with a virtualenv for abjad 3.2, the same warning pops up
the first time I build a container, but no more after this.

I don't really know what's happening exactly, the parser for the lilypond syntax is getting generated
by the ply module, which is installed as a dependency of abjad. I wonder whether the table simply
gets updated the first time that you make an object in abjad, hence no more warnings.

Anyway, it sounds like you're up and running anyway!


Martín Rincón Botero

unread,
Jan 23, 2021, 10:46:26 AM1/23/21
to abjad...@googlegroups.com
Hi Adam,

you’re right. The warning only shows up the first time! All good then!

Trevor Bača

unread,
Jan 23, 2021, 6:07:16 PM1/23/21
to abjad...@googlegroups.com
Hi,

Yup, the (very) first time you launch a new install of Abjad, Abjad's parser notices its own out-of-date status, prints that yacc warning to the terminal, and then writes some stuff to disk. On every subsequent launch, the parser sees that it is up-to-date, and no warning is given. That is, the warning is expected the on first launch, and then shouldn't appear ever again.

Great that there are some working 3.2 installs!

Trevor. 

Reply all
Reply to author
Forward
0 new messages