CoCoA:CoCoA 3

From ApCoCoAWiki
Revision as of 21:05, 22 May 2024 by Mexis (talk | contribs)
CoCoA 3.6 running on HP-UX.

About

CoCoA 3 was developed from 1995 (first release) to 2000.

Sub versions

  • CoCoA 3.0b (June 1995)
  • CoCoA 3.02b (1996)
  • CoCoA 3.3 (1997)
  • CoCoA 3.4 (March 1998)
  • CoCoA 3.5 (July 1998)
  • CoCoA 3.6 (December 1998)
  • CoCoA 3.7 (June 1999)

The Header

The header is defined in lib/cocoa/coclib.pkg and looks like this:

------------------- ------------------------------------------
------   )))   ----  CoCoA 3 release X.X
--   ___(((_ _   --
--  |       | )  --  by A.Capani, G.Niesi, L.Robbiano
--  | CoCoA |/   --
--  |   3   |   ---  contributors  : type "Contrib();"
---  \_____/  -----  online help   : type "Man();"
-----       -------  release notes : type "RelNotes();"
------------------- ------------------------------------------

The Interface

CoCoA 3.6 running a few basic functions on HP-UX.

A full description of the architecture of CoCoA 3 is presented in Antonio Capani's Ph.D. Thesis (gzipped postscript format).


The People Behind It

The CoCoA 3 header lists three main authors:

  • Antonio Capani
  • Gianfranco Niesi
  • Lorenzo Robbiano

Furthermore, the command Contrib() lists the following contributors:

  • John Abbott (for factorization and linear algebra)
  • Anna Bigatti (for Hilbert-Poincare series, toric ideals)
  • David Perkinson (for the online help system)
  • Alessandro Polverini (for Windows 95 interface, porting to DOS)
  • Massimo Caboara (testing)
  • Martin Kreuzer (testing)

Features

CoCoA 3.0b

  • portability (90% of the system is independent of the platform)
  • programmability (CoCoAL language)
  • arbitrary precision for integer and rational numbers

CoCoA 3.02b

  • [ToDo]

CoCoA 3.3

Main new features:

  • interactive Gröbner framework;
  • new algorithms for minimal free resolutions;
  • packages;
  • new I/O management (devices).

CoCoA 3.4

Main new features:

  • ring maps;
  • improvement of CoCoAL language;
  • univariate factorization over Z;
  • computation of toric ideals;
  • online help.

CoCoA 3.5

Main new features:

  • improvement of CoCoAL language;
  • new memory management (simpler way to access variables of different rings);
  • autoloading and autoinitializing of packages;
  • univariate factorization over Z, Q, and Z/pZ for p prime;
  • an updated online help system and an html manual;
  • new packages from contributors (integer programming, special varieties, radical).

CoCoA 3.6

Main new features:

  • a new package for computations with ideals of points;
  • faster computation of Hilbert functions and Poincare series (the POINCARE panel is now unnecessary and so has been disabled);
  • a new version of the package for computing radicals of ideals (which now works in greater generality);
  • the possibility to have a system-wide Unix/Linux installation.

CoCoA 3.7

Main new features:

  • Multivariate factorization over the integers;
  • utility functions for modules/vectors (IsTerm, LM, LPP, LPos, Monomials/IsToPos..);
  • faster computation of operations on ideals (intersections, saturations,...);
  • faster computation of the determinant of matrices with integer entries
  • new packages from contributors (algmorph, galois).


Platforms & Interfaces

Systems that were for sure supported:

  • HP workstations (running HP-UX)
  • SGI IRIX-based systems (probably only models that are also supported by IRIX 6.5.23+ releases)

[ToDo: Any more information?]

Running CoCoA 3 Today

There are two main ways of running CoCoA 3, which both have two sub-options:

  • Running CoCoA 3.7 on SGI IRIX
  • Running CoCoA 3.6 on HP-UX

The sub-options are for both:

  • Running CoCoA 3 on original hardware
  • Emulating the old system and running CoCoA 3 on it

If you still have either a HP workstation running HP-UX or a SGI IRIX-based system, you can (probably) run CoCoA 3 on it, congrulations! From my (Nico Mexis) experience, however, you need to be careful! The following subsections will explain why. If you don't have such a system, you can try to emulate it, as described below!

SGI IRIX

The best way (as of 2024) to emulate a SGI IRIX-based system is to use MAME. A beautiful guide to how to set up MAME to run IRIX can be found for example here.

HOWEVER! CoCoA 3.7 is refusing to run on both images that are linked there (5.3 and 6.5.22). The specific error message is: "Program not supported by architecture", which makes me (Nico Mexis) believe that CoCoA 3.7 requires some newer SGI IRIX-based machine. The guide linked above can only emulate the SGI Indy and SGI Indigo², both of which do not work with the specific build of CoCoA 3.7.

Things I have already tried so you do not have to:

  • Installing the Development Foundation CD (probably required anyway since it contains libm.so, which does not seem to be pre-installed)
  • Requickstarting the binary exectuable (using rqsread and rqsall)
  • Trying to emulate other systems (not possible in MAME)

If you want to take a shot yourself, just follow the guide linked above and try to run CoCoA 3.7 on it. If you succeed, please let us know! A few tips to get started:

  • In order to transfer the required files to the emulated system, you can use the ftp command in the IRIX shell (do not forget to enable passive mode right away using pass)
  • Another way to do this is to generate a ISO 9660 filesystem image using genisoimage and then mount it in the emulated system as a CD using MAME's built-in menu
  • I have used MAME 0.265, but newer versions should work as well (if not better)! I had to use a few special arguments to be able to boot into SGI IRIX properly, though (which severly slow down the emulation - most probably due to this bug): mame indy_4610 -gio64_gfx xl24 -hard1 irix65.chd -window -nodrc -throttle -mouseprovider dinput
  • Emulating the Indigo² seems to be rather WIP - so stick with the Indy - the architecture is the same anyway

Good luck! :)

HP-UX

This is probably the easier way to run CoCoA 3 today, as emulating an HP workstation running HP-UX is very straightforward: Most of the things needed are written in this guide.

A few things to note:

  • I was using QEMU 9.0.0 and it seems like the speed has improved since the article above was written. The entire installation took less than half an hour on my (Nico Mexis) system!
  • Just like in SGI IRIX, use the ftp command to transfer the required files to the emulated system (again, in passive mode as described above) - or a ISO 9660 filesystem image as CDROM
  • Then use gunzip and tar to extract the CoCoA 3.6 files
  • To change the CDROM during HP-UX installation, use these commands
  • My specific command line to run the emulator was: qemu-system-hppa -boot d -drive if=scsi,bus=0,index=6,file=disk.img,format=qcow2 -m 512 -d nochain -cdrom hp-ux-1of4.iso -net nic,model=tulip -net user -monitor stdio

With that being said, you should also be able to catch a glimpse of CoCoA 3.6 running on HP-UX before your very own eyes! :)

Downloads

CoCoA 3.6 is still available for download for HP workstations (running HP-UX) here.

CoCoA 3.7 can also be downloaded there, but only for systems running SGI IRIX.

[ToDo: Are there more downloads somewhere? The WaybackMachine has not archived any more... Probably, the rest were only available on floppy disks or on the FTP server that was advertised back then...]