Let's see if this gets more downloads than neko_libXp.
This is a project I've been working on for the last decade and have decided to publish and be damned, as they say.
It is a clean-room implementation of IBM's SOM toolkit including DSOM.
I am calling it "somFree" for want of a better name.
It is built using MIPSpro with mips3 and tested on my octane using 6.5.22m
The components have been split up to mimic the way it is split up on AIX.
Code:
i N somtk.man.manpages [d] 28+ Man Pages
i N somtk.man.relnotes [d] 24+ Release Notes
i N somtk.sw.comp [d] 548+ Compiler Software
i N somtk.sw.dsom [d] 1640+ Distributed SOM
i N somtk.sw.ir [d] 528+ Interface Repository
i N somtk.sw.rte [d] 340+ Run Time Environment
i N somtk.sw.tests 60+ Tests programs
i N somtk.sw.util [d] 1056+ Utilities
The release notes are worth noting.
Code:
bash-4.0$ relnotes somtk 1
SOMFREE(1) SOMFREE(1)
NAME
somFree(1) - somFree Toolkit
DESCRIPTION
somFree provides the runtime and development environment for running
programs using SOM.
HISTORY
This software is a clean-room implementation of IBM's SOM.
4 January 2012 SOMFREE(1)
Code:
bash-4.0$ relnotes somtk 2
SOMFREE(1) SOMFREE(1)
NAME
somFree(1) - somFree Toolkit
INSTALLATION
Package is installed in /opt/somtk and associated subdirectories. Fol-
lowing installation the somcorba script should be run to generate the
include files for development.
4 January 2012 SOMFREE(1)
Code:
bash-4.0$ relnotes somtk 3
SOMFREE(1) SOMFREE(1)
NAME
somFree(1) - somFree Toolkit
ENVIRONMENT
The following environment variables should be set:
SOMBASE
This should be set to /opt/somtk.
SOMDPORT
This should be a unique value for accessing somdd.
SOMIR This points to the interface repository file, normally $SOM-
BASE/etc/som.ir.
LD_LIBRARY_PATH
This should be set to include $SOMBASE/lib32.
4 January 2012 SOMFREE(1)
Also of interest are the man pages for somtest0 and somtest1.
Code:
bash-4.0$ MANPATH=/opt/somtk/man man somtest0
bash-4.0$ MANPATH=/opt/somtk/man man somtest1
But you'll have to install it to read those.
A simple SOM Hello World program is as follows:
Code:
bash-4.0$ cat hello.cpp
#include <som.xh>
int main(int argc,char **argv)
{
SOMClassMgr *mgr=somEnvironmentNew();
mgr->somDumpSelf(0);
somEnvironmentEnd();
return 0;
}
bash-4.0$ CC hello.cpp -I/opt/somtk/include -L/opt/somtk/lib32 -lsom
bash-4.0$ ldd a.out
libsom.so.1 => /opt/somtk/lib32/libsom.so.1
libCsup.so => /usr/lib32/libCsup.so
libC.so.2 => /usr/lib32/libC.so.2
libCio.so.1 => /usr/lib32/libCio.so.1
libc.so.1 => /usr/lib32/libc.so.1
libpthread.so => /usr/lib32/libpthread.so
libm.so => /usr/lib32/libm.so
bash-4.0$ ./a.out
An instance of SOMClassMgr at address 1404460
{
SOMClass(1,6)
metaclass=SOMClass
SOMObject(1,7)
metaclass=SOMClass
SOMClassMgr(1,4)
metaclass=SOMClass
}
bash-4.0$
So there is now no excuse for not writing WorkPlaceShell for IRIX.