Combined OS/2 support
[p5sagit/p5-mst-13.2.git] / os2 / Changes
1 after 5.003_05:
2         PERLLIB_PREFIX was not active if it matches an element of @INC
3                 as a whole.
4         Do not need PERL_SBRK if crtdll-revision is >= 50.
5         Use -Zsmall-conv if crtdll-revision is >= 50 (in static perl!).
6 :7: warning: #warning <dirent.h> requires <sys/types.h>
7         We compile miniperl static. It cannot fork, thus there may be
8                 problems with pipes (since HAS_FORK is in
9                 place). Pipes are required by makemaker.
10         We compile perl___.exe A.OUT and dynamic. It should be able to
11                 fork.
12         If we can fork, we my_popen by popen unless "-|". Thus we
13                 write a cooky "-1" into the pid array to indicate
14                 this.
15         Apparently we can fork, and we can load dynamic extensions
16                 now, though probably not simultaneously.
17         *DB tests corrected for OS/2 one-user stat[2].
18         /bin/sh is intercepted and replaced by SH_PATH.
19         Note that having '\\' in the command line of one-arg `system'
20                 would trigger call via shell.
21         Segfault with system {'ls'} 'blah'; corrected.
22         Documentation of OS/2-different features added to main PODs.
23         New buitins in Cwd::
24
25                 Cwd::current_drive
26                 Cwd::sys_chdir          - leaves drive as it is.
27                 Cwd::change_drive
28                 Cwd::sys_is_absolute    - has drive letter and is_rooted
29                 Cwd::sys_is_rooted      - has leading [/\\] (maybe
30                                           after a drive)
31                 Cwd::sys_is_relative    - changes with current dir
32                 Cwd::sys_cwd            - Interface to cwd from EMX.
33                 Cwd::sys_abspath(name, dir)     
34                                         - Really really odious
35                                           function. Returns absolute
36                                           name of file which would 
37                                           have 'name' if CWD were 'dir'.
38                                         Dir defaults to the current dir.
39                 Cwd::extLibpath [type]  - Get/set current value of extended
40                 Cwd::extLibpath_set     - library search path.
41                         path [type]
42                                         The optional last argument redirects
43                                            to END-path if true,
44                                            default is to search BEGIN-path.
45                 (Note that some of these may be moved to different
46                   libraries - eventually).
47         Executables: 
48                 perl - can fork, can dynalink (but not simultaneously)
49                 perl_ - can fork, cannot dynalink
50                 perl__ - same as perl___, but PM.
51                 perl___ - cannot fork, can dynalink.
52         The build of the first one - perl - is rather convoluted, and
53           requires a build of miniperl_.
54 after 5.003_05:
55         PERLLIB_PREFIX was not active if it matches an element of @INC
56                 as a whole.
57         Do not need PERL_SBRK if crtdll-revision is >= 50.
58         Use -Zsmall-conv if crtdll-revision is >= 50 (in static perl!).
59 :7: warning: #warning <dirent.h> requires <sys/types.h>
60         We compile miniperl static. It cannot fork, thus there may be
61                 problems with pipes (since HAS_FORK is in
62                 place). Pipes are required by makemaker.
63         We compile perl___.exe A.OUT and dynamic. It should be able to
64                 fork.
65         If we can fork, we my_popen by popen unless "-|". Thus we
66                 write a cooky "-1" into the pid array to indicate
67                 this.
68         Apparently we can fork, and we can load dynamic extensions
69                 now, though probably not simultaneously.
70         *DB tests corrected for OS/2 one-user stat[2].
71         /bin/sh is intercepted and replaced by SH_PATH.
72         Note that having '\\' in the command line of one-arg `system'
73                 would trigger call via shell.
74         Segfault with system {'ls'} 'blah'; corrected.
75         Documentation of OS/2-different features added to main PODs.
76         New buitins in Cwd::
77
78                 Cwd::current_drive
79                 Cwd::sys_chdir          - leaves drive as it is.
80                 Cwd::change_drive
81                 Cwd::sys_is_absolute    - has drive letter and is_rooted
82                 Cwd::sys_is_rooted      - has leading [/\\] (maybe
83                                           after a drive)
84                 Cwd::sys_is_relative    - changes with current dir
85                 Cwd::sys_cwd            - Interface to cwd from EMX.
86                 Cwd::sys_abspath(name, dir)     
87                                         - Really really odious
88                                           function. Returns absolute
89                                           name of file which would 
90                                           have 'name' if CWD were 'dir'.
91                                         Dir defaults to the current dir.
92                 Cwd::extLibpath [type]  - Get/set current value of extended
93                 Cwd::extLibpath_set     - library search path.
94                         path [type]
95                                         The optional last argument redirects
96                                            to END-path if true,
97                                            default is to search BEGIN-path.
98                 (Note that some of these may be moved to different
99                   libraries - eventually).
100         Executables: 
101                 perl - can fork, can dynalink (but not simultaneously)
102                 perl_ - can fork, cannot dynalink
103                 perl__ - same as perl___, but PM.
104                 perl___ - cannot fork, can dynalink.
105         The build of the first one - perl - is rather convoluted, and
106           requires a build of miniperl_.
107
108 after 5.003_07:
109         custom tmpfile and tmpname which may use $TMP, $TEMP.
110         all the calls to OS/2 API wrapped so that it is safe to use
111                 them under DOS (may die(), though).
112         Tested that popen works under DOS with modified PDKSH and RSX.
113         File::Copy works under DOS.
114         MakeMaker modified to work under DOS (perlmain.c.tmp and sh -c true).
115
116 after 5.003_08:
117         OS2::PrfDB exports symbols as documented;
118         should work on OS/2 2.1 again.
119         uses reliable signals when spawing.
120         do not use popen() any more - no intermediate shell unless needed.
121
122 after 5.003_11:
123         Functions emx_{malloc,realloc,calloc,free} are exported from DLL.
124         get_sysinfo() bugs corrected (flags were not used and wrongly defined).
125
126 after 5.003_20:
127         _isterm is substituted instead of isatty, s?random instead of srand.
128         `register' disabled if -DDEBUGGING and not AOUT build: stupid SD386.
129         3-argument select() was stomping over memory.
130
131 after 5.003_21:
132         Can start scripts by executing 'dir/script' and
133         'script.sh'. Form without extension will call shell only if
134         the specified file exists (will not look on path) (to prohibit
135         trying to run shell commands directly). - Needed by magic.t.
136
137 after 5.003_27:
138         ALTERNATE_SHEBANG="extproc " supported, thus options on this
139         line are processed (possibly twice). -S is made legal on such
140         a line. This -S -x is not needed any more.
141         perl.dll may be used from non-EMX programs (via PERL_SYS_INIT
142         - the caller should have valid variable "env" with
143         environment). Known problems: $$ does not work - is 0, waitpid
144         returns immediately, thus Perl cannot wait for completion of
145         started programs.
146
147 after 5.004_01:
148         flock emulation added (disable by setting env PERL_USE_FLOCK=0),
149                 thanks to Rocco Caputo;
150         RSX bug with missing waitpid circomvented;
151         -S bug with full path with \ corrected.
152
153 before 5.004_02:
154         -S switch to perl enables a search with additional extensions 
155         .cmd, .btm, .bat, .pl as well.  This means that if you have
156         mycmd.pl or mycmd.bat on PATH, 
157                 perl -S mycmd
158         will work.  Perl will also look in the current directory first.
159         Moreover, a bug with \; in PATH being non-separator is fixed.
160
161 after 5.004_03:
162         $^E tracks calls to CRT now.  (May break if Perl masks some
163         changes to errno?)
164         $0 may be edited to longer lengths (at least under OS/2).
165         OS2::REXX->loads looks in the OS/2-ish fashion too.
166
167 after 5.004_04:
168         Default perl.exe was built with a shorter stack than expected.
169         Strip extensions DLLs too (unless debugging build).
170         ./os2.c being RO could stop cp.
171         When starting scripts, Perl will find them on path (using the same
172           extensions as for -S command-line switch).  If it finds magic
173           `extproc ' or `#!' cookies, it will start the scripts directly.
174         May use `cmd /c more <' as a pager.
175         If a program could not be started, this might have been hidden.
176         End of pipe was closed twice when `open'ing a pipeline.
177
178 after 5.004_53:
179         Minimal thread support added.  One needs to manually move pthread.h
180
181 after 5.004_64:
182         Make DLL names different if thread-enabled.
183         Emit more informative internal DLL descriptions.