Changes to the original 1.5.1 source code distribution: ------------------------------------------------------- General: At different places I've added, removed or changed some code. I tried to do this by using the preprocessor symbols: _AMIGA : Defined when compiling on Amiga. Indicates Amiga specific code. __SASC : Defined when compiling with the SAS/C compiler. Indicates SAS/C specific code. AMITCP : Defined when using AmiTCP as networking software. Indicates AmiTCP specific code, but maybe this is easily converted to, say, Inet. 1. Made custom Include/config.h by hand for AmigaDOS+SAS/C+AmiTCP. 2. Made custom Modules/config.c by hand for Amiga version of Python. 3. Added custom Amiga module `environment' (Modules/environment.c). 4. Added custom Amiga module `amiga' (Modules/amigamodule.c). 5. Added custom Amiga module `ARexxll' (Modules/ARexxmodule.c). 6. Added custom Amiga module `Doslib' (Modules/Doslibmodule.c). 7. Added custom module `urlop' (Modules/urlopmodule.c). 8. Added subdir Amiga with: README - small describing text mkdiffs.py - makes diffs against original distribution Diffs/ - output dir for mkdiff.py make_gst.c - for building the GST Python_netlib/ - contains source for python_net.lib python_net.lib - custom version of AmiTCP's net.lib, including some additional code like custom WB startup, environment functions etc. DISCL_and_COPYRIGHT - my disclaimer & CWI's copyright message testset/ - additional tests for Amiga modules unused/ - currently unused stuff Docs/ - Amiga docs for distribution 9. Moved some unneeded files from parser to Parser/NON-AMIGA, from Modules to Modules/NON-AMIGA, from Lib to Lib/NON-AMIGA, and from Python to Python/NON-AMIGA. (these files are not included in the source archive for space reasons) 10. Supplied custom makefile for Amiga's SAS/C: SMAKEFILE. Supplied SAS/C compiler options file: SCOPTIONS. You don't need any of the original makefiles (just delete them if you like). (new since 1.5: SMAKEFILE splitted, one for each main directory) 11. Added Prototype files for many source files. See `protos' directories in: Modules, Objects, Parser, Python. 12. Added Amiga/Python_netlib/wbargs.c for better Workbench icon/tooltypes support (adapted from source provided with SAS/C) 13. Removed definition of struct _node in Include/compile.h for SASC. 14. Changed in Include/mymath.h: Added SAS math includes 15. Added Include/protos.h file containing a bunch of function prototypes. Added #include to Include/Python.h. 16. Added Amiga specific #defines to Include/osdefs.h 17. Added #include to Include/myselect.h for AMITCP 18. Fixed proto for initfunc in Include/import.h 19. Added proto for PyFloat_AsString in Include/floatobject.h 20. Added #Include for fcntl.h to Include/Python.h 21. Added proto for xxxPyCObject_Import in Include/cStringIO.h 22. Fixed unsigned char bytes in Modules/binascii.c. 23. Added #include (when AMITCP is defined) to: Modules/pwdmodule.c Modules/grpmodule.c Modules/cryptmodule.c 24. Changes to Modules/main.c: Added 2 missing prototypes Added Amiga specific usage text Added SAS/C stack setting etc Added AmiTCP init & cleanup functions to Modules/main.c (checkXXXXlib functions) 25. Changes to Modules/socketmodule.c: Added check for AMITCP for proto of gethostname() Changed use of fnctl to IoctlSocket (for s.setblocking) Added AMITCP includes Added a couple of #defines for AMITCP API Clear socket buffer for new socket (PySocketSock_New) Added proto for PySocket_Err 26. Implemented AMITCP version of select call (with optional 5th parameter) in Modules/select.c 27. Changed Modules/md5c.c to use regular memcpy and memset 28. Changed in Modules/sysmodule.c: added code for correct behavior of setpythonargv() on Amiga 29. Changes to Modules/getpath.c: Changed #if to #ifdef added #include "protos.h" added Amiga version of PYTHONPATH #define added Amiga versions for getting full path of executable, reduce, checking if path is relative, ... 30. Changes to Modules/timemodule.c: Fixed proto for floattime() Added code for floatsleep() on AMIGA in Modules/timemodule.c 31. Added checks for bsdsocket.library (checkbsdsocketlib) in: Modules/syslogmodule.c Modules/socketmodule.c Modules/selectmodule.c 32. Fixed toupper macro in Modules/soundex.c 33. Added checks for usergroup.library (checkusergrouplib) in: Modules/pwdmodule.c Modules/grpmodule.c Modules/cryptmodule.c 34. Changes in Modules/cPickle.c: Fixed proto for put2 & save Fixed proto for write_func in Picklerobject Fixed proto for readline_func & read_func in Unpicklerobject 35. Fixed proto of Py_GetBuildInfo in Modules/getbuildinfo.c 36. Added proto for Py_Main in Modules/python.c 37. Added proto for initcPickle in Modules/cPickle.c 38. Added proto for initcStringIO in Modules/cStringIO.c 39. Added proto for indenterror in Parser/tokenizer.c 40. Added funcdefmacros with prototypes to Modules/mathmodule.c, Modules/cmathmodule.c and Modules/operator.c 41. Changed in Parser/intrcheck.c: Added testcase for AMIGA for intcatcher prototype Added #include for fcntl.h Added SAS/C specific ^C handling 42. Fixed proto for InputHook in Parser/myreadline.c, and added #include "pythonrun.h" to it. 43. Changes to Python/pythonrun.c: Fixed `BYTE' symbol clash Added proto for exitfuncs, parse_syntax_error Case insensitive match for .pyc and .pyo Added err.text=NULL at line 521 44. Fixed prototypes in Python/mystrtoul.c 45. Added proto to Python/getmtime.c (PyOS_GetLastModificationTime) 46. Added stack checking code to Python/sigcheck.c 47. Changed in Python/import.c: Fixed path building in find_module, now uses dos.library/AddPart Fixed proto for getmtime Added Amiga version of check_case: now the imports are case sensitive 48. Added proto for hypot in Python/hypot.c 49. Added proto for zapthreads to Python/pystate.c 50. Added AMIGA version string to Modules/getbuildinfo.c 51. Added platform 'amiga' to Python/getplatform.c 52. Added compiler string to Python/getcompiler.c (Changed the version string to be dynamically generated with SAS/C) 53. Changes to library files in Lib drawer. These changes are also documented in the README file. Files involved: os.py (amiga additions) tempfile.py (temp path try order is: T:, :T, SYS:T) posixpath.py (stub for old posixpath.py) amigapath.py (amiga's replacement for posixpath.py) 54. Slight changes in the testset (Lib/test): test_select.py (can't be easily tested on amiga - not on files) 55. Change in Objects/longobject.c (line 1488) changed sizeof(PyLongObject) to sizeof(struct _longobject) because of illegal sizeof expression (?) 56. Changes in Objects/classobject.c: added #include for the proto headers added prototyped version of UNARY macro 57. Added Guido's fix for bug in ceval.c (in DELETE_FAST block). (the bug was: no NameError exception when deleting unknown symbol within a function) Irmen de Jong irmen@bigfoot.com http://www.bigfoot.com/~irmen/python.html