You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Mark Phippard <ma...@softlanding.com> on 2006/02/08 21:50:40 UTC

Update on port to OS400/EBCDIC

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

Re: Update on port to OS400/EBCDIC

Posted by kf...@collab.net.
Julian Foad <ju...@btopenworld.com> writes:
> Thanks for the summary of the situation.

Seconded!

> > 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.
> 
> In principle, as long as there are people around to maintain it, I
> would be happy to have your system-specific code of that extent in the
> trunk.

Agree with Julian here too, FWIW.

-K

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Update on port to OS400/EBCDIC

Posted by Julian Foad <ju...@btopenworld.com>.
Mark Phippard wrote:
[...]
> 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 [...]

Yay!  That will make things much easier for you.  (Of course, it probably has 
bugs!)

Thanks for the summary of the situation.

> 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.

In principle, as long as there are people around to maintain it, I would be 
happy to have your system-specific code of that extent in the trunk.

> 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).

OK.

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org