[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Update on port to OS400/EBCDIC

From: Mark Phippard <markp_at_softlanding.com>
Date: 2006-02-08 22:50:40 CET

Just some quick background first:

Last year, Paul Burba successfully completed the port of Subversion to
OS/400, the main issue being that OS/400 is a native EBCDIC system so
everything down to string literals in the source code is in EBCDIC. From
the standpoint of the repository format and protocols, everything is still
UTF-8. Also, the port does nothing about storing EBCDIC-encoded content
in the repository as that is not a requirement we have. Another important
point is that Apache and APR come from IBM as part of OS/400, so we have
to live with what they provide.

This port has been very successful. We have had about 1200 downloads,
although that number is based on info with a lot of duplicates (people
downloading each revision), so the real number is around half that. Still,
pretty good. The port runs well and keeping it up to date has not been a
problem for us. We have been able to release binaries in synch with every
release since 1.1.4. The port is being managed beneath the
/branches/ebcidic namespace in the Subversion repository.

OK, so why am I writing all of this?

The current release of OS/400 (V5R3), which has been out for over a year,
added a compiler option for the C compiler to essentially "pretend" it is
living in a UTF-8 world. Character literals are compiled as UTF-8 and
calls to most system functions (with some exceptions) expect UTF-8 strings
instead of EBCDIC. So you can pretty much interact with the system as if
it is UTF-8 and the system libraries translate as necessary. None of this
mattered to our port because Apache and APR were not built this way and
they expected EBCDIC.

IBM has decided to change their Apache port to use this new feature (I
like to think it is at least partly based on conversations I had with IBM
developers about our port and what we wanted to do). So as of the next
release of OS/400 (V5R4) available next week, the Apache server and APR
use this new feature. This is all pretty good news for the future of
Subversion on OS/400 as we are now able to mostly just use the Subversion
trunk code as-is and compile and run it on OS/400. There are still a few
changes we need to make to the code to make it run properly. The biggest
example is probably that the argv arguments to a main() function are
encoded in EBCDIC, but there are also a few other items we have had to
deal with. The scope of all of this is really small compared to the
existing port.

All that being said:

We hope the changes needed to support the OS/400 V5R4 port are
small/straightforward enough that they can be applied to trunk. Obviously
the final judgement rests with the Subversion community, but the scope of
our changes are on par with those required for Windows.

I think the next step would be for Paul Burba to send some of his patches
and commentary so you can get a taste for the changes. I wanted to
provide you with this background as it can obviously be confusing why
there are two versions of the port. I have suggested that rather than
send one big patch, Paul should break it up into "related" chunks, such as
all of the argv stuff in one patch, etc. He will probably start sending
those tomorrow.

Thanks

PS - We will still need to maintain the existing EBCDIC branch
indefinitely so that we can continue to provide support to users on older
versions of OS/400 (which tend to last for years and years).

_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. and SoftLanding Europe Plc by IBM Email Security Management Services powered by MessageLabs.
_____________________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Feb 8 22:51:08 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.