OS/2 update
[p5sagit/p5-mst-13.2.git] / os2 / Changes
CommitLineData
867988ae 1after 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_.
54after 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_.
55497cff 107
108after 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).
72ea3524 115
116after 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.
df3ef7a9 121
122after 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).
44a8e56a 125
126after 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.
e29f6e02 130
131after 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.
aa689395 136
137after 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.
d8c2d278 146
367f3c24 147after 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
d8c2d278 153before 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.
84902520 160
fb73857a 161after 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.
dd96f567 166
91643db9 167after 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
dd96f567 178after 5.004_53:
179 Minimal thread support added. One needs to manually move pthread.h
3aefca04 180
181after 5.004_64:
182 Make DLL names different if thread-enabled.
183 Emit more informative internal DLL descriptions.
2c2e0e8c 184
1855.004_72:
186 Updated OS2::Process (v0.2) included.
187
188after 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.