Announcing:
PHP for MPE/iX & Image
The Unofficial Port
Contents:
Why:
-
We need a tool to generate live web pages from our Image databases.
-
PHP is the most elegant server-side, HTML-embedded scripting language
we have seen. It is very powerful with a rich function library.
-
Together, Image & PHP ought to be an unbeatable web application
environment.
-
We had hoped that if we can demonstate some prototype TurboImage
functions for PHP, maybe enough interest will be generated for other
people to start working on it, maybe even HP.
Current status:
-
20-Jan-2002
-
Major bug fixed in mpe_dbupdate().
-
Bugs fixed in mpe_dblookup() & mpe_dbexists().
-
New function: mpe_dblookup_back().
-
5-Dec-2001
-
Three bug fixes.
-
New functions mpe_dbexists() & mpe_nlmatch().
-
We deploy PHP/iX for production. Performance is impressive!
-
14-Nov-2001 - HP announces the end of the HP3000
-
Database updating functions completed this morning.
-
Tested shared library inside Apache on our production HP3000
using our production database. Performance is even better than
expected.
-
7-Nov-2001 - Mark B appoints Campbell "frozen session champion" on invent3k.
-
14-Aug-2001
-
PHP4 compiles & runs as a CGI using GCC.
It executes with no changes to the downloaded PHP source files.
See how we did it.
-
The first bash at the TurboImage interface is written and works
rather well. Download it here.
-
All MPE/iX specific code is now contained in a single subdirectory,
except for some header files.
Limitations & features of current
implementation:
-
See the function list and
sample script.
-
Types I/J/K/Z/P which are too big for 32 bit integers are converted
to strings, so that the bcmath module can be used for calculations.
-
With debugging compiled in, PHP/iX executes at around one third the
speed of Speedware 7.05 for a database intensive report. Without
debugging, PHP/iX is about half as fast as Speedware.
-
Locking is fairly simple minded.
The current version of PHP/iX is not intended to be built with MR
capability, so only one lock is applied at a time.
Porting issues:
-
Couldn't use
buildconf because our automake
didn't work. So we've hacked configure.
-
libtool requires modification.
-
shtool requires hack due to silly #filen@me#.
-
Hacks for a number of library functions & system header files.
-
Fails the PHP test suite at
is_executable(). ...oops
-
Nothing submitted back to cvs.php.net, to date.
Future plans:
-
A KSAM files module.
-
Consider
mpe_dbget_serial_ordered() function that
passes the retrieved data through the HPSORT intrinsics before
returning it.
-
In the meantime, release it for folks to play with...
Assistance would be appreciated with:
-
Resolving the porting issues.
-
Repackaging the port for submission back to cvs.php.net.
-
Testing. Testing. Testing.
Who are we?
While we, Campbell Fethers
& Troy Jendra, have both been
messing about with computers for decades, this is our first C project
on the HP3000, and also our first attempt at an Open Source porting
project. We have been working on this during our spare time. Troy did
the original port and Campbell hacked together the TurboImage functions.
Useful links: