OS/2 update
[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.
184
185 5.004_72:
186         Updated OS2::Process (v0.2) included.
187         
188 after 5.004_73:
189         Fixed a bug with argv not NULL-terminated when starting scripts.
190         Support all the forms of starting scripts.
191         Support killing a child when receiving a signal during system()
192         (in two stage, on first send the same signal, on the next
193         send SIGKILL).
194         Add the same logic for scripts as in pdksh, including 
195                 stripping the path from #! line if needed, 
196                 calling EXECSHELL or COMSPEC for magic-less scripts;
197         Now pdksh is called only if one-arg system()/friends contains
198         metachars, or if magic-line asks for sh, or there is no magic
199         line and EXECSHELL is set to sh.
200         Shell is supplied the original command line if possible.