develooper Front page | perl.perl5.porters | Postings from November 2021

elevator pitch: ASCII version of Perl for z/OS (previously calledOS/390 or os390)

Thread Next
From:
Mike Fulton
Date:
November 26, 2021 21:59
Subject:
elevator pitch: ASCII version of Perl for z/OS (previously calledOS/390 or os390)
Message ID:
CAOmchhFXEXZMe989OjEmW4OeHu33atcHbMKY7kdGjrXzL7q+Cg@mail.gmail.com
Hi,

Background:
I have been working to create a truly open z/OS stack of open source
software that is 'core'. Today, many of the Open Source software packages
for z/OS have been ported, but then only made available through
'binary only' downloads, which is frustrating.

What software falls under 'core' is of course an excellent debate, but I'm
starting with the chain of code I need to build zsh (one has to start
somewhere). zsh (indirectly) requires Perl. Of course, Perl is used by many
other software packages as a prereq. There _is_ a Perl available for z/OS
but it is EBCDIC-based and I'm keen to build an ASCII-based version, since
that is the way many of the languages have moved, and it's way easier for
people working with code ported from Linux where ASCII is assumed.
I have made good progress on this experiment and have a number of software
packages underway. For example, m4 is looking pretty good, and I'm hoping
autoconf will not be too hard once Perl is done (it currently fails because
the traditional Perl port is spitting out EBCDIC files that are getting
mixed together with ASCII - making a mess.

I have created a general https://github.com/ZOSOpenTools for a collection
of software packages being ported (currently just me, but I am hoping to
get more folks interested).

Perl Port to z/OS:
I have created https://github.com/ZOSOpenTools/perlport which clones perl (
https://github.com/ZOSOpenTools/perlport/blob/main/perlbuild.sh), and then
applies some patches I have been working on for proper ASCII support. I
have a basic 'miniperl' working and am currently failing to make
cpan/Pod-Perldoc.

I am doing my updates in such a way that a developer would be able to build
a 'traditional' perl that is EBCDIC based or build an ASCII-based perl
instead, so the 'patches' directory lists the changes I have made so far.

Request:
I would like to eliminate all my patches by pushing my changes upstream,
but this would require some sort of new 'configuration' (not sure the right
name) such that people could choose whether they are building an ASCII perl
or an EBCDIC perl. I expect this must be common for other things like a
'64-bit' perl or a '32-bit' perl, although I am very new to the perl
development world. As an aside, I also want to build as 64-bit, instead of
the current 31-bit EBCDIC perl (no that's not a typo - you only get 31 bits
of addressability on a Z Instruction Set Architecture).

Benefits:
The 'software stack' a developer could use would be consistent for all the
tools, being ASCII based, and blend well with new languages on z/OS such as
Node.js, GoLang which are already ASCII only. Java can work in both 'modes'
but most Java applications work in ASCII. C/C++ supports both ASCII and
EBCDIC.

Drawbacks:
Two perl versions, possibly creating confusion for people that get the
'wrong software package'

I would truly appreciate your input and insight here.

Thanks, Mike Fulton

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About