2 PERLLIB_PREFIX was not active if it matches an element of @INC
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
12 If we can fork, we my_popen by popen unless "-|". Thus we
13 write a cooky "-1" into the pid array to indicate
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.
26 Cwd::sys_chdir - leaves drive as it is.
28 Cwd::sys_is_absolute - has drive letter and is_rooted
29 Cwd::sys_is_rooted - has leading [/\\] (maybe
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.
42 The optional last argument redirects
44 default is to search BEGIN-path.
45 (Note that some of these may be moved to different
46 libraries - eventually).
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_.
55 PERLLIB_PREFIX was not active if it matches an element of @INC
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
65 If we can fork, we my_popen by popen unless "-|". Thus we
66 write a cooky "-1" into the pid array to indicate
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.
79 Cwd::sys_chdir - leaves drive as it is.
81 Cwd::sys_is_absolute - has drive letter and is_rooted
82 Cwd::sys_is_rooted - has leading [/\\] (maybe
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.
95 The optional last argument redirects
97 default is to search BEGIN-path.
98 (Note that some of these may be moved to different
99 libraries - eventually).
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_.
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).
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.
123 Functions emx_{malloc,realloc,calloc,free} are exported from DLL.
124 get_sysinfo() bugs corrected (flags were not used and wrongly defined).
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.
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.
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
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.
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,
158 will work. Perl will also look in the current directory first.
159 Moreover, a bug with \; in PATH being non-separator is fixed.
162 $^E tracks calls to CRT now. (May break if Perl masks some
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.
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.
179 Minimal thread support added. One needs to manually move pthread.h
182 Make DLL names different if thread-enabled.
183 Emit more informative internal DLL descriptions.
186 Updated OS2::Process (v0.2) included.
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
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.
203 Can start PM programs from non-PM sessions by plain system()
204 and friends. Can start DOS/Win programs. Can start
205 fullscreen programs from non-fullscreen sessions too.
206 In fact system(P_PM,...) was broken.
207 We mangle the name of perl*.DLL, to allow coexistence of different
208 versions of Perl executables on the system. Mangling of
209 names of extension DLL is also changed, thus running two
210 different versions of the executable with loaded
211 extensions should not lead to conflicts (since
212 extension-full-name and Perl-version mangling work in the
213 same set ot 576 possible keys, this may lead to clashes).
214 $^E was reset on the second read, and contained ".\r\n" at the end.
217 warning-test for getpriority() might lock the system hard on
218 pre-fixpak22 configuration (calling getpriority() on
219 non-existing process triggers a system-wide bug).
221 Variable $OS2::emx_rev implemented (string and numberic values
222 are the same as C variables _emx_rev and _emx_vprt).
223 Variable $OS2::emx_env implemented (same as C variable _emx_env).
224 Variable $OS2::os_ver implemented (_osmajor + 0.001 * _osminor).
226 Improved centralized management of HAB and HMQ. To get Perl's
227 HAB, call perl_hab_GET(). (After the initial call one
228 can use Perl_hab instead.) To require Perl's HMQ,
229 call perl_hmq_GET(), to release it call perl_hmq_UNSET(),
230 to obtain it between these calls use Perl_hmq.
231 HMQ management is refcounted, and the program will morph
232 itself into/from PM if required.
233 If perl.h cannot be included, hab may be obtained by Perl_hab_GET().
235 New function OS2::Error(do_harderror,do_exception). Returns
236 undef if it was not called yet, otherwise bit 1 is
237 set if on previous call do_harderror was enabled, bit
238 2 is set if if on previous call do_exception was enabled.
239 This function enables/disables error popups associated with
240 hardware errors (Disk not ready etc.) and software exceptions.
242 New function OS2::Errors2Drive(drive). Returns undef if it was
243 not called yet, otherwise return false if Errors were
244 not requested to be written to a hard drive, or the
245 drive letter if this was requested.
246 This function may redirect error popups associated with
247 hardware errors (Disk not ready etc.) and software exceptions
248 to the file POPUPLOG.OS2 at the root directory of the
249 specified drive. Overrides OS2::Error() specified by
250 individual programs. Given argument undef will
251 disable redirection. Has global effect, persists
252 after the application exits.
254 New function OS2::SysInfo(). Returns a hash with system information.
255 The keys of the hash are
257 MAX_PATH_LENGTH, MAX_TEXT_SESSIONS, MAX_PM_SESSIONS,
258 MAX_VDM_SESSIONS, BOOT_DRIVE, DYN_PRI_VARIATION,
259 MAX_WAIT, MIN_SLICE, MAX_SLICE, PAGE_SIZE,
260 VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION,
261 MS_COUNT, TIME_LOW, TIME_HIGH, TOTPHYSMEM, TOTRESMEM,
262 TOTAVAILMEM, MAXPRMEM, MAXSHMEM, TIMER_INTERVAL,
263 MAX_COMP_LENGTH, FOREGROUND_FS_SESSION,
266 New function OS2::BootDrive(force). Returns a letter without colon.
268 New functions OS2::MorphPM(serve)/OS2::UnMorphPM(serve). Transforms
269 the current application into a PM application and back.
270 The argument true means that a real message loop is
271 going to be performed.
272 OS2::MorphPM() returns the PM message queue handle as an integer.
274 New function OS2::Serve_Messages(force). Fake on-demand
275 retrieval of outstanding PM messages. If force is false,
276 will not dispatch messages if a real message loop is known to
277 be present. Returns number of messages retrieved.
278 Dies with "QUITing..." if WM_QUIT message is obtained.
280 New function OS2::Process_Messages(force [, cnt]). Retrieval
281 of PM messages until window creation/destruction.
282 If force is false, will not dispatch messages
283 if a real message loop is known to be present.
284 Returns change in number of windows. If cnt is given,
285 it is incremented by the number of messages retrieved.
286 Dies with "QUITing..." if WM_QUIT message is obtained.