Difference between revisions of "CoCoA:CoCoA 3"
m (CoCoA 3 moved to CoCoA:CoCoA 3: tidying up the wiki...) |
|||
Line 1: | Line 1: | ||
+ | [[File:Cocoa3_0.png|thumb|CoCoA 3.6 running on HP-UX.]] | ||
+ | |||
== About == | == About == | ||
Line 4: | Line 6: | ||
== Sub versions == | == Sub versions == | ||
− | * CoCoA 3.0b (1995) | + | * CoCoA 3.0b (June 1995) |
* CoCoA 3.02b (1996) | * CoCoA 3.02b (1996) | ||
* CoCoA 3.3 (1997) | * CoCoA 3.3 (1997) | ||
Line 12: | Line 14: | ||
* CoCoA 3.7 (June 1999) | * CoCoA 3.7 (June 1999) | ||
− | == | + | == The Header == |
+ | The header is defined in <code>lib/cocoa/coclib.pkg</code> and looks like this: | ||
+ | |||
+ | <pre> | ||
+ | ------------------- ------------------------------------------ | ||
+ | ------ ))) ---- 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();" | ||
+ | ------------------- ------------------------------------------ | ||
+ | </pre> | ||
+ | |||
+ | == The Interface == | ||
+ | |||
+ | [[File:Cocoa3_1.png|frame|100px|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 ([http://www.disi.unige.it/dottorato/THESES/2000-02-CapaniA.ps.gz gzipped postscript format]). | ||
+ | |||
+ | |||
+ | == The People Behind It == | ||
+ | The CoCoA 3 header lists three main authors: | ||
* Antonio Capani | * Antonio Capani | ||
* Gianfranco Niesi | * Gianfranco Niesi | ||
+ | * Lorenzo Robbiano | ||
+ | Furthermore, the command <code>Contrib()</code> 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 == | == Features == | ||
Line 24: | Line 57: | ||
* programmability ([[:Category:CoCoAL|CoCoAL language]]) | * programmability ([[:Category:CoCoAL|CoCoAL language]]) | ||
* arbitrary precision for integer and rational numbers | * arbitrary precision for integer and rational numbers | ||
+ | |||
+ | ===CoCoA 3.02b=== | ||
+ | |||
+ | * [ToDo] | ||
===CoCoA 3.3=== | ===CoCoA 3.3=== | ||
Line 67: | Line 104: | ||
* faster computation of operations on ideals (intersections, saturations,...); | * faster computation of operations on ideals (intersections, saturations,...); | ||
* faster computation of the determinant of matrices with integer entries | * faster computation of the determinant of matrices with integer entries | ||
− | * new packages from contributors (algmorph, galois). | + | * 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 [https://www.mamedev.org/ MAME]. | ||
+ | A beautiful guide to how to set up MAME to run IRIX can be found for example [https://sgi.neocities.org/ 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 <code>libm.so</code>, which does not seem to be pre-installed) | ||
+ | * Requickstarting the binary exectuable (using <code>rqsread</code> and <code>rqsall</code>) | ||
+ | * 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 <code>ftp</code> command in the IRIX shell (do not forget to enable passive mode right away using <code>pass</code>) | ||
+ | * Another way to do this is to generate a ISO 9660 filesystem image using [https://wiki.debian.org/genisoimage 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 [https://github.com/mamedev/mame/issues/11124 this bug]): <code>mame indy_4610 -gio64_gfx xl24 -hard1 irix65.chd -window -nodrc -throttle -mouseprovider dinput</code> | ||
+ | * 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 [https://dehydrations18.rssing.com/chan-9990986/article181.html this guide]. | ||
− | A | + | 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 <code>ftp</code> 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 <code>gunzip</code> and <code>tar</code> to extract the CoCoA 3.6 files | ||
+ | * To change the CDROM during HP-UX installation, use [https://www.linux-kvm.org/page/Change_cdrom these commands] | ||
+ | * My specific command line to run the emulator was: <code>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</code> | ||
− | + | 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== | ==Downloads== | ||
− | [ToDo] | + | |
+ | CoCoA 3.6 is still available for download for HP workstations (running HP-UX) [https://cocoa.dima.unige.it/cocoa/download/index4.html 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...] | ||
+ | |||
[[Category:History]] | [[Category:History]] |
Revision as of 21:05, 22 May 2024
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
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
andrqsall
) - 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 usingpass
) - 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
andtar
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...]