port to PDOS (especially mainframe)

Paul Edwards mutazilah at gmail.com
Tue Mar 23 07:19:34 EDT 2021


On Tuesday, March 23, 2021 at 9:44:03 PM UTC+11, Gisle Vanem wrote:

> Why not try to port MicroPython instead? Much lighter. 
> I've ported it to MSDOS/djgpp with some success.

Thanks for the tip. I don't actually need it to be
light. I just need it to be C90-compliant.

The assembler I mentioned is designed to take
the output of a customized GCC 3.2.3, which is
a 3 MB executable and requires about 20 MB
to recompile itself. So lots of memory needs to
be thrown at it anyway.

> > python.a(abstract.o)(.text+0x668c):abstract.c: undefined reference to `PyExc_StopIteration'

> It's in 'Objects/exceptions.c'. When in doubt, look at the 

Thanks!

> 'python*.map' files. I assume you have managed to build 
> Python 3 on Windows (?). 

There are no map files in the Python 3.3 distribution,
and no, I haven't built it on Windows. I've never run
python before. I tried typing in "python" to see if it
came with Cygwin, but I got some stupid Windows
store thing come up.

> And BTW, it's also forwarded from 'python3.dll' via some 
> hacks in 'python3dll.c' to the real Python in 'Python310.dll' 
> (in my case): 
> pedump python3.dll | grep PyExc_StopIteration 
> 0000853A 227 PyExc_StopIteration (forwarder -> python310.dll.PyExc_StopIteration) 
> 
> plus a lot more; it's quite ugly. 

Ok, I'm assuming that I can run without DLLs
being involved. There are presumably other
targets with no concept of DLLs.

My latest problem is this:

Objects/exceptions.c:    ADD_ERRNO(ConnectionRefusedError, ECONNREFUSED);

Those errno are non-standard (non-C90) and I assume
other platforms can't cope with that either. But I can't
see how other platforms are circumventing that problem.
(ie I did a grep -R of the whole source code).

I could define a stack of constants in pyconfig.h to allow
the compile to go through, but I don't see anyone else
doing the same thing.

Is there some other way of circumventing the problem?

Thanks. Paul.


More information about the Python-list mailing list