version 2, including all changes.
.
Rev |
Author |
# |
Line |
1 |
perry |
1 |
PERLEPOC |
|
|
2 |
!!!PERLEPOC |
|
|
3 |
NAME |
|
|
4 |
SYNOPSIS |
|
|
5 |
INTRODUCTION |
|
|
6 |
INSTALLING PERL ON EPOC |
|
|
7 |
STARTING PERL ON EPOC |
|
|
8 |
STOPPING PERL ON EPOC |
|
|
9 |
USING PERL ON EPOC |
|
|
10 |
SUPPORT STATUS |
|
|
11 |
AUTHOR |
|
|
12 |
LAST UPDATE |
|
|
13 |
---- |
|
|
14 |
!!NAME |
|
|
15 |
|
|
|
16 |
|
|
|
17 |
README .epoc - Perl for EPOC |
|
|
18 |
!!SYNOPSIS |
|
|
19 |
|
|
|
20 |
|
|
|
21 |
Perl 5 README file for the EPOC |
|
|
22 |
operating system. |
|
|
23 |
!!INTRODUCTION |
|
|
24 |
|
|
|
25 |
|
|
|
26 |
EPOC is a OS for palmtops and mobile phones. |
|
|
27 |
For more informations look at: |
|
|
28 |
http://www.symbian.com/ |
|
|
29 |
|
|
|
30 |
|
|
|
31 |
This is a port of perl to EPOC . It runs |
|
|
32 |
on ER5 machines: Psion 5mx, 5mx Pro, Psion Revo |
|
|
33 |
and on the Ericson M128. I have no report about the Psion |
|
|
34 |
Netbook or the S7. It runs on ER3 Hardware |
|
|
35 |
(Series 5 classic), too. For more information about this |
|
|
36 |
hardware please refer to |
|
|
37 |
http://www.psion.com. |
|
|
38 |
|
|
|
39 |
|
|
|
40 |
Vendors which like to have support for their devices |
|
|
41 |
are free to send me a sample. |
|
|
42 |
!!INSTALLING PERL ON EPOC |
|
|
43 |
|
|
|
44 |
|
|
|
45 |
You can download a ready-to-install version from |
|
|
46 |
http://www.science-computing.de/o.flebbe/perl. You may find |
|
|
47 |
other versions with some CPAN modules included at |
|
|
48 |
this location. |
|
|
49 |
|
|
|
50 |
|
|
|
51 |
You will need at least 4MB free space in order to |
|
|
52 |
install and run perl. |
|
|
53 |
|
|
|
54 |
|
|
|
55 |
Install perl.sis on the EPOC machine. If you |
2 |
perry |
56 |
do not know how to do that, consult your !PsiWin |
1 |
perry |
57 |
documentation. |
|
|
58 |
|
|
|
59 |
|
|
|
60 |
Perl itself and its standard library is using 2.9 |
|
|
61 |
MB disk space. Unicode support and some other modules |
|
|
62 |
are left out. (For details, please look into |
|
|
63 |
epoc/createpkg.pl). If you like to use these modules, you |
|
|
64 |
are free to copy them from a current perl |
|
|
65 |
release. |
|
|
66 |
!!STARTING PERL ON EPOC |
|
|
67 |
|
|
|
68 |
|
|
|
69 |
For ER5 machines, you can get the software |
|
|
70 |
Perlstart http://www.science-computing.de/o.flebbe/perl. It |
|
|
71 |
contains file recognizers for files with the extension .pl |
|
|
72 |
and .pm. With it you can start perl with a double click on |
|
|
73 |
the camel icon. Be sure to configure the perl installation |
|
|
74 |
drive first. You can even provide a script with a special |
|
|
75 |
commandline, if needed. |
|
|
76 |
|
|
|
77 |
|
|
|
78 |
Alternativly you can get ESHELL from |
|
|
79 |
symbian: |
|
|
80 |
http://developer.epocworld.com/downloads/progs/Eshell.zip |
|
|
81 |
|
|
|
82 |
|
|
|
83 |
Running ESHELL you can enter: perl -de 0 in |
|
|
84 |
order to run the perl debugger. If you are leaving perl, you |
|
|
85 |
get into the system screen. You have to switch back manually |
|
|
86 |
to ESHELL . When perl is running, you will see a |
|
|
87 |
task with the name STDOUT in the task |
|
|
88 |
list. |
|
|
89 |
|
|
|
90 |
|
|
|
91 |
If you have a ER3 machine (i.e. a |
|
|
92 |
PSION 5), you may have to supply the full path to the |
|
|
93 |
perl executable C:systemprogramsperl.exe. |
|
|
94 |
|
|
|
95 |
|
|
|
96 |
If you need to set the current directory of perl, |
|
|
97 |
please use the command line switch '-x'. See perlrun for |
|
|
98 |
details. |
|
|
99 |
!!STOPPING PERL ON EPOC |
|
|
100 |
|
|
|
101 |
|
|
|
102 |
You can stop a running perl process in the task list by |
|
|
103 |
closing the application ` STDOUT '. You cannot |
|
|
104 |
stop a running perl process if it has not written anyting to |
|
|
105 |
stdout or stderr! Be very cautious with I/O redirection. You |
|
|
106 |
will have to reboot the PDA ! |
|
|
107 |
!!USING PERL ON EPOC |
|
|
108 |
|
|
|
109 |
|
|
|
110 |
__I/O Redirection__ |
|
|
111 |
|
|
|
112 |
|
|
|
113 |
You can redirect the output with the UNIX |
|
|
114 |
bourne shell syntax (this is built into perl rather |
|
|
115 |
then eshell) For instance the following command line will |
|
|
116 |
run the script test.pl with the output redirected to |
|
|
117 |
stdout_file, the errors to stderr_file and input from |
|
|
118 |
stdin_file. |
|
|
119 |
|
|
|
120 |
|
|
|
121 |
perl test.pl |
|
|
122 |
|
|
|
123 |
|
|
|
124 |
Alternatively you can use 2 |
|
|
125 |
|
|
|
126 |
|
|
|
127 |
__PATH Names__ |
|
|
128 |
|
|
|
129 |
|
|
|
130 |
ESHELL looks for executables in ?:/System/Programs. |
|
|
131 |
The SIS file installs perl in this special folder |
|
|
132 |
directory. The default drive and path are the same as folder |
|
|
133 |
the executable resides. The EPOC filesystem is |
|
|
134 |
case-preserving, not case-sensitive. |
|
|
135 |
|
|
|
136 |
|
|
|
137 |
The EPOC estdlib uses the ?: syntax for |
|
|
138 |
establishing a search order: First in C: ( RAM ), |
|
|
139 |
then on D: ( CF Card, if present) and last in Z: |
|
|
140 |
( ROM ). For instance ?:a.txt searches for |
|
|
141 |
C:a.txt, D:a.txt (and Z:a.txt) |
|
|
142 |
|
|
|
143 |
|
|
|
144 |
The perl @INC search path is implemented with |
|
|
145 |
'?:'. Your perl executable can live on a different drive |
|
|
146 |
than the perl library or even your |
|
|
147 |
scripts. |
|
|
148 |
|
|
|
149 |
|
|
|
150 |
ESHELL paths have to be written with backslashes '', |
|
|
151 |
file arguments to perl with slashes '/'. Remember that I/O |
|
|
152 |
redirection is done internally in perl, so please use |
|
|
153 |
slashes for redirects. |
|
|
154 |
|
|
|
155 |
|
|
|
156 |
perl.exe C:/test.pl |
|
|
157 |
|
|
|
158 |
|
|
|
159 |
__Editors__ |
|
|
160 |
|
|
|
161 |
|
|
|
162 |
A suitable text editor can be downloaded from symbian |
|
|
163 |
http://developer.epocworld.com/downloads/progs/Editor.zip |
|
|
164 |
|
|
|
165 |
|
|
|
166 |
__Features__ |
|
|
167 |
|
|
|
168 |
|
|
|
169 |
The built-in function EPOC::getcwd returns the current |
|
|
170 |
directory. |
|
|
171 |
|
|
|
172 |
|
|
|
173 |
__Restrictions__ |
|
|
174 |
|
|
|
175 |
|
|
|
176 |
Features are left out, because of restrictions of |
|
|
177 |
the POSIX support in EPOC: |
|
|
178 |
|
|
|
179 |
|
|
|
180 |
backquoting, pipes etc. |
|
|
181 |
|
|
|
182 |
|
|
|
183 |
''system()'' does not inherit ressources like: file |
|
|
184 |
descriptors, environment etc. |
|
|
185 |
|
|
|
186 |
|
|
|
187 |
signal, kill, alarm. Do not try to use them. This may |
|
|
188 |
be impossible to implement on EPOC |
|
|
189 |
. |
|
|
190 |
|
|
|
191 |
|
|
|
192 |
select is missing. |
|
|
193 |
|
|
|
194 |
|
|
|
195 |
binmode does not exist. (No CR LF to |
|
|
196 |
LF translation for text files) |
|
|
197 |
|
|
|
198 |
|
|
|
199 |
EPOC does not handle the notion of current drive and |
|
|
200 |
current directory very well (i.e. not at all, but it tries |
|
|
201 |
hard to emulate one) See PATH |
|
|
202 |
. |
|
|
203 |
|
|
|
204 |
|
|
|
205 |
Heap is limited to 4MB. |
|
|
206 |
|
|
|
207 |
|
|
|
208 |
Dynamic loading is not implemented. |
|
|
209 |
|
|
|
210 |
|
|
|
211 |
__Compiling Perl 5 on the__ __EPOC cross |
|
|
212 |
compiling environment__ |
|
|
213 |
|
|
|
214 |
|
|
|
215 |
Sorry, this is far too short. |
|
|
216 |
|
|
|
217 |
|
|
|
218 |
You will need the C ++ SDK from |
|
|
219 |
http://developer.epocworld.com/. |
|
|
220 |
|
|
|
221 |
|
|
|
222 |
You will need to set up the cross SDK from |
|
|
223 |
http://www.science-computing.de/o.flebbe/sdk |
|
|
224 |
|
|
|
225 |
|
|
|
226 |
You may have to adjust config.sh (cc, cppflags) to |
|
|
227 |
reflect your epoc and SDK |
|
|
228 |
location. |
|
|
229 |
|
|
|
230 |
|
|
|
231 |
Get the Perl sources from your nearest CPAN |
|
|
232 |
site. |
|
|
233 |
|
|
|
234 |
|
|
|
235 |
Unpack the sources. |
|
|
236 |
|
|
|
237 |
|
|
|
238 |
Build a native perl from this sources... Make sure to |
|
|
239 |
save the miniperl executable as |
|
|
240 |
miniperl.native. |
|
|
241 |
|
|
|
242 |
|
|
|
243 |
Start again from scratch |
|
|
244 |
|
|
|
245 |
|
|
|
246 |
cp epoc/* . |
|
|
247 |
./Configure -S |
|
|
248 |
make |
|
|
249 |
cp miniperl.native miniperl |
|
|
250 |
make |
|
|
251 |
make ext/Errno/pm_to_blib |
2 |
perry |
252 |
perl link.pl perlmain.o lib/auto/!DynaLoader/!DynaLoader.a \ |
1 |
perry |
253 |
lib/auto/Data/Dumper/Dumper.a \ |
|
|
254 |
lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \ |
|
|
255 |
lib/auto/Socket/Socket.a \ |
|
|
256 |
lib/auto/Fcntl/Fcntl.a lib/auto/Sys/Hostname/Hostname.a \ |
|
|
257 |
perl.a `cat ext.libs` |
|
|
258 |
perl createpkg.pl |
|
|
259 |
wine G:/bin/makesis perl.pkg perl.sis |
|
|
260 |
!!SUPPORT STATUS |
|
|
261 |
|
|
|
262 |
|
|
|
263 |
I'm offering this port ``as is''. You can ask me |
|
|
264 |
questions, but I can't guarantee I'll be able to answer |
|
|
265 |
them. |
|
|
266 |
!!AUTHOR |
|
|
267 |
|
|
|
268 |
|
|
|
269 |
Olaf Flebbe |
|
|
270 |
!!LAST UPDATE |
|
|
271 |
|
|
|
272 |
|
|
|
273 |
2001-02-26 |
|
|
274 |
---- |