Giter Site home page Giter Site logo

catseye / openzz Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 450 KB

MIRROR of https://codeberg.org/catseye/OpenZz : Cat's Eye Technologies' fork of OpenZz, a dynamic (self-modifying) grammar interpreter.

Home Page: http://openzz.sourceforge.net/

License: Other

Shell 30.08% C 62.51% Makefile 7.28% Batchfile 0.13%
zz meta-language dynamic-parsing dynamic-parser parser-reflection parser-framework catseye-fork

openzz's Introduction

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 run
  • list_in_cond.zz: the syntax a.b seems to be a syntax error
  • numerictypes.zz: 64-bit values wrap to 32 bits on a 32-bit architecture
  • tagdtor.xx: can't open the specified .so file

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.b syntax (whatever that means exactly)
  • loading .so files

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).

openzz's People

Contributors

cpressey avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

fagotto

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.