Tree @master (Download .tar.gz)
OpenZz 1.0.4-4ce3
This is OpenZz 1.0.4-4ce3, a fork of the original OpenZz distribution, based on OpenZz version 1.0.4-4. The original README can be found at the end of this Markdown file, encased in a preformatted text block.
This fork was made because development on OpenZz was stalled, I have a
project (Zzrk) that requires OpenZz,
and, at some point, I was unable to build it on the then-current version
of gcc. Shortly thereafter, upgrades to the build system also caused
problems; it seemed like libtool was now causing automake
to generate Makefiles which went into infinite loops at the shell level;
pstree showed what looked like an infinite tree of sed and bash.
This would take down my laptop quite readily.
It was at this point I decided to create the first version of this fork.
1.0.4-4ce1
In 1.0.4-4ce1, I added a simple build.sh script to build the ozz
executable directly, without messing around with libtool or anything.
It works on Ubuntu and NetBSD, and will, I'm sure, work on other flavours
of Linux and other BSDs with little or no modification.
Running build.sh is recommended. Run autogen.sh and configure at
your own risk.
Note, though, that several of the tests now fail. The core semantics of OpenZz seem alright, so these failing tests have been skipped in the test suite. The specific failures are:
deref_param.zz: badly-written test; it shouldn't be caring about an internal address, which isn't stable from run to runlist_in_cond.zz: the syntaxa.bseems to be a syntax errornumerictypes.zz: 64-bit values wrap to 32 bits on a 32-bit architecturetagdtor.xx: can't open the specified.sofile
The double.zz test also did not pass.
The verdict from those results was that this version of OpenZz does not support:
- 64-bit integer values
- doubles
- the
a.bsyntax (whatever that means exactly) - loading
.sofiles
Which was fine by me, as it can still play Zzrk.
Later on, I discovered that ozz had problems when compiled on a
64-bit system. For the longest time I was only thinking about how it runs on
The Cat's Eye Technologies' Platform,
where it runs just fine, because it's a 32-bit architecture.
But at some point I noticed it didn't work on 64-bit systems anymore,
and I did eventually care enough to try to fix it. This led to the
second release of this forked project.
1.0.4-4ce2
In 1.0.4-4ce2, I made some changes to the build script to force
compilation as a 32-bit executable. This is done by passing
the -m32 flag to gcc. For more information,
see e.g. this StackOverflow question
For this to be successful, 32-bit headers must be installed on the system. On Ubuntu, this can be accomplished with:
sudo apt install gcc-multilib
For more information, see e.g. this StackOverflow question
This will also require 32-bit versions of the libraries that ozz
links to. Under Ubuntu, they can be installed with:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 libedit-dev:i386
For more information, see e.g. this StackOverflow question
Also, under the recent 32-bit build that I made using these
modifications, for whatever reason, the double.zz test now passes.
Which is fine by me, as long as it can still play Zzrk.
1.0.4-4ce3
Includes many changes to the code to address compiler warnings.
While a few remain, the bulk of them have been eliminated.
(Many were simply due to gcc wanting to see an explicit return
type, instead of defaulting to int, and missing prototypes.)
Also includes an MS-DOS batchfile for building ozz.exe under
DOS using DJGPP.
The goal of both of these enhancements was to build an
instance of ozz that runs in a DOS emulator running in
a web browser, such as em-dosbox.
Which is fine by me, as now we can all play Zzrk on the Internet Archive!
-Chris
===============================================================================
Zz - Dynamic Lexical Parser README File
===============================================================================
Zz is a dynamic parser which is currently being developed as a front end to
gcc to implement compilation of new languages (ie. TAO and others), for APE
systems. These are custom build parallel processing computers used for LQCD
physics research.
See:
http://chimera.roma1.infn.it/ape.html
UPDATES
See the NEWS and ChangeLog files for information on the latest changes
Some support is being formulated at the project directory on SourceForge:
http://openzz.sourceforge.net
LICENSE
The Zz library is released under the GNU Lesser GPL (LGPL).
Parts of Zz are released under the GPL - see the "COPYING" file in the
project root.
DOCUMENTATION
See the "doc" subdirectory
APE
Whence the name "APE"? "Ape" is the Italian word for "bee", the mascot of
the APE project. (INFN, the funder of the project is based in Italy and the
software is primarily developed there).
Commit History
@master
git clone https://git.catseye.tc/OpenZz/
- Merge pull request #3 from catseye/develop-the-ce3 Chris Pressey (commit: GitHub) 3 years ago
- Update description in README. Chris Pressey 3 years ago
- Reduce warnings (#2) Chris Pressey (commit: GitHub) 3 years ago
- Add batchfile for building under DOS. Chris Pressey 3 years ago
- Bumps in preparation for release of ce3. Chris Pressey 3 years ago
- Update version used during build to match distribution version. Chris Pressey 3 years ago
- Merge pull request #1 from catseye/support-64-bit-os Chris Pressey (commit: GitHub) 3 years ago
- Several minor edits to README. Chris Pressey (commit: GitHub) 3 years ago
- Move instructions into README. Chris Pressey 3 years ago
- Some valiant editing of README for noble informational purposes. Chris Pressey 3 years ago
- Add original of numerictypes.zz, which does pass on 64 bit Ubuntu. Chris Pressey 3 years ago
- Revert "Revert numerictypes.zz, as it passes under 32-bit build on Ubuntu." Chris Pressey 3 years ago
- Revert numerictypes.zz, as it passes under 32-bit build on Ubuntu. Chris Pressey 3 years ago
- Oh ah, I forgot to put `git` in front of the `mv`, you see. Chris Pressey 3 years ago
- Convert README to Markdown and attempt to update it somewhat. Chris Pressey 3 years ago
- Restore double test, as it passes on NetBSD i386 and 64-bit Linux. Chris Pressey 3 years ago
- Add see-also link for the `dpkg --add-architecture i386` step. Chris Pressey 3 years ago
- Under 64-bit OS, `ozz` must be built as 32-bit executable to work. Chris Pressey 3 years ago
- Bump version officially to 1.0.4-4ce1. Cat's Eye Technologies 12 years ago
- Skip 64-bit tests that fail on 32-bit architecture. Cat's Eye Technologies 12 years ago
- SKIP the failing tests and add a note about what fails and why. Cat's Eye Technologies 12 years ago
- Try to fix test suite. Lines not being ignore in deref test. Cat's Eye Technologies 12 years ago
- Use a 'universal' diff error output for greater readability. Cat's Eye Technologies 12 years ago
- Clean up some warnings. Cat's Eye Technologies 12 years ago
- Prefer linking to libedit over libreadline, if present. Cat's Eye Technologies 12 years ago
- `man cfree` leads me to believe that cfree() is not a thing. Cat's Eye Technologies 12 years ago
- Detect presence of readline. Convert zz_test.sh from bash to sh. Cat's Eye Technologies 12 years ago
- Allow to build and run (crudely) without readline (or Linux -ldl.) Cat's Eye Technologies 12 years ago
- zz_test.sh needs bash. Make it set returncode. Add test.sh driver. Cat's Eye Technologies 12 years ago
- Add build.sh, and update README to explain why I did that. Cat's Eye Technologies 13 years ago