perl 5.0 alpha 9
[p5sagit/p5-mst-13.2.git] / atarist / README.ST
CommitLineData
bf10efe7 1See: FILES for a shipping list of files in this archive.
2See: explain for a brief explaination of the diffs in perl.diffs.
3
4Here is a port of perl 4.0 Patchlevel 19 to the atariST series.:
5
6Whats new since atariST perl 4.010
7 - many minor problems fixed.
8
9 - configuration cleaned up.
10
11 - makefiles now have a uperl.a target, so that usub's can be
12 linked. (see usub/* to see how to make cursesperl)
13
14 - perl will now compile and run correctly with or without
15 the malloc that comes with perl.
16
17 - FILEs opened for write now correctly contain CR/LF unless
18 they are binmode'ed.
19
20 - complete support for gemdos/xbios/bios calls. see osbind.pl
21 and osexample.pl on how to use this facility.
22
23 - tracked perl to Patchlevel 19.
24
25known problems:
26 - $! still does'nt contain the correct value when there is no error.
27 i still have'nt been able to track this down.
28
29-------------------------------------------------------------------------
30
31Here is a port of perl 4.0 Patchlevel 10 to the atariST series.
32
33What you'll need:
34 - a decent shell (i use gulam for obvious reasons), other
35 highly recommended ones are bash 1.08/1.10, gemini/mufpel, okami,
36 microCsh, init from apratt for MiNT. avoid neodesk. avoid the
37 desktop like the plague. The shell should be setup to use
38 atari/mwc conventions for command lines and environment setup
39 and passing. (in gulam be sure to `set env_style mw').
40
41 - a decent set of file utils (ls, rm, mv, etc etc) in your $PATH.
42 if you dont have these, look on atari.archive. the gnuFileutils
43 are available there.
44
45 - included here are echo and perlglob that you will need.
46
47 - setting UNIXMODE is recommended but not required. If you are
48 going to run the perl tests, then set UNIXMODE to atleast
49 "/.,LAd", else you will get a lot of unnecessary failures.
50 (alternately you will have to go in and edit long path names.
51 get rid of things dealing with links, and rename paths
52 beginning with "/dev/..." etc)
53
54 - if you are going to compile: you'll need gcc distribution,
55 (i used gcc-1.40 and libs at Patchlevel 73 initially. i
56 currently use gcc-2.1 and libs at Patchlevel 80). Also you will
57 need the port of gdbm (i used v1.5). you'll also need bison.
58 all these are available on atari.archive, in atari/gnustuff/tos
59 the diffs as enclosed in this kit assume you have gcc libs at
60 Patchlevel 80.
61
62Compiling:
63 - get and install gnu gdbm (i used v1.5 -- see README.ST in
64 the gdbm distribution on how to make the gdbm library).
65
66 - get the perl kit at Patchlevel 19
67
68 - copy config.h usersub.c atarist.c echo.c wildmat.c perlglob.c
69 makefile.sm makefile.smd makefile.st makefile.std makefile.stm
70
71 - apply the diffs in file `perl.diffs' using patch
72
73 - decide which makefile you want to use:
74 makefile.st perl with gcc library malloc
75 makefile.sm perl with malloc that comes with perl
76
77 - hit make -f <MAKEFILE>. (if you are not cross-compiling,
78 you'll have to adjust the makefile yourself -- watchout for
79 perly.fixer).
80 This will result in 3 executables, perl.ttp, perlglob.ttp
81 and echo.ttp. Put all these executables in a sub-directory
82 in your $PATH (and depending on your shell, issue a rehash).
83 (if you use makefile.std instead of makefile.st, the executable
84 will be called perld.ttp. this is perl compiled with
85 -DDEBUGGING)
86
87Compiling usubs:
88 see the files in usub/* and the makefile.st there.
89
90Testing:
91 - run perl from a decent shell. i use either gulam or bash
92 if you are going to be running from gulam, be sure to
93 set env_style mw
94 (this can be done automatically by including the above
95 line in the gulam.g startup file). bash always uses
96 atari/mwc conventions so you dont have to do anything special.
97 (if you run perl from the desktop, you are asking for trouble!)
98
99 - you'll have to run the tests by hand. Almost all the tests
100 pass. You'll have to judge for yourself when a test fails
101 if it should have. I was able to explain all failures. If you
102 cant, ask me via mail. (one day i will cook up a script to
103 do this).
104
105 - It helps to have all the gnu fileutils in your PATH here.
106 especially echo.ttp and perlglob.ttp.
107
108 - Also a lot more tests will pass if you have UNIXMODE setup
109 i use "/.,LAd". If you dont use UNIXMODE, you'll have to hack
110 some of the tests.
111
112 - You may have to fix up a few Pathnames in the tests if you
113 are cd'ing to a particular test sub-directory to run the tests.
114
115 - Compare your tests with the results i got -- see file RESULTS.
116
117General:
118 - setenv PERLLIB to point at the subdirectory containing lib/*
119 (if you want PERLLIB to contain more than one path, seperate
120 them with commas)
121
122 - UNIXMODE is supported not required.
123
124 - Pipes are a little flakey sometimes, but mostly work fine.
125 Pipes, `prog` etc are much more efficient if you have set
126 the environment var TEMP to point to a ramdisk. Note, when
127 you set TEMP, it should contain *no* tailing backslash (or slash).
128
129 - to force binary mode use "binmode FILE"
130
131 - browse thru config.h to see whats supported
132
133 - should MiNT'ize this much more.
134
135 - avoid using the backtick (`commands`). Use 'open(FOO, "command |")'
136 and use the filehandle FOO as appro.
137
138 - the command passed to system etc can contain
139 redirections of stdin/out, but system does not understand
140 fancy pipelines etc.
141
142 - syscall() to make gemdos/bios/xbios are fully supported now.
143 (note: we dont use ioctl like messy-dos to do this, as we can do
144 real ioctl's on devices)
145
146 - i still need to cons up the lineA stuff.
147 it should be just as easy to cons up aes/vdi outcalls too. imagine
148 graphics from perl!.
149
150 - watch out for re-directions. TOS blows up if you try to
151 re-direct a re-directed handle. atari has greatly improved this
152 situation. hopefully, the next general release of TOS will contain
153 these fixes.
154
155 - in the perl libs (particularly perldb.pl) you will
156 need to s?/dev/tty?/dev/console?. perl -d works just fine.
157 for instance: (for this to work, UNIXMODE should include the
158 'd' option):
159*** /home/bammi/etc/src/perl/lib/perldb.pl Tue Jun 11 17:40:17 1991
160--- perldb.pl Mon Oct 7 21:46:28 1991
161***************
162*** 49,56 ****
163 #
164 #
165
166! open(IN, "</dev/tty") || open(IN, "<&STDIN"); # so we don't dingle stdin
167! open(OUT,">/dev/tty") || open(OUT, ">&STDOUT"); # so we don't dongle stdout
168 select(OUT);
169 $| = 1; # for DB'OUT
170 select(STDOUT);
171--- 49,56 ----
172 #
173 #
174
175! open(IN, "</dev/console") || open(IN, "<&STDIN"); # so we don't dingle stdin
176! open(OUT,">/dev/console") || open(OUT, ">&STDOUT"); # so we don't dongle stdout
177 select(OUT);
178 $| = 1; # for DB'OUT
179 select(STDOUT);
180
181cheers,
182--
183bang: uunet!cadence!bammi jwahar r. bammi
184domain: bammi@cadence.com
185GEnie: J.Bammi
186CIS: 71515,155