Commit | Line | Data |
9a997319 |
1 | If you read this file _as_is_, just ignore the funny characters you |
2 | see. It is written in the POD format (see pod/perlpod.pod) which is |
3 | specially designed to be readable as is. |
4d2c4e07 |
4 | |
9a997319 |
5 | =head1 NAME |
6 | |
7 | README.epoc - Perl for EPOC |
4d2c4e07 |
8 | |
9a997319 |
9 | =head1 SYNOPSIS |
10 | |
11 | Perl 5 README file for the EPOC operating system. |
12 | |
13 | =head1 INTRODUCTION |
4d2c4e07 |
14 | |
d1be9408 |
15 | EPOC is an OS for palmtops and mobile phones. For more informations look at: |
3a2f06e9 |
16 | http://www.symbian.com/ |
4d2c4e07 |
17 | |
d5ff79b3 |
18 | This is a port of perl to EPOC. It runs on ER5 machines: Psion 5mx, |
02a99678 |
19 | 5mx Pro, Psion Revo, Psion Netbook and on the Ericson M128. It runs on |
20 | ER3 Hardware (Series 5 classic), too. For more information about this |
21 | hardware please refer to http://www.psion.com. |
d5ff79b3 |
22 | |
23 | Vendors which like to have support for their devices are free to send |
24 | me a sample. |
4d2c4e07 |
25 | |
9a997319 |
26 | =head1 INSTALLING PERL ON EPOC |
4d2c4e07 |
27 | |
d5ff79b3 |
28 | You can download a ready-to-install version from |
29 | http://www.science-computing.de/o.flebbe/perl. You may find other |
30 | versions with some CPAN modules included at this location. |
31 | |
32 | You will need at least ~4MB free space in order to install and run |
33 | perl. |
34 | |
35 | Install perl.sis on the EPOC machine. If you do not know how to do |
36 | that, consult your PsiWin documentation. |
37 | |
38 | Perl itself and its standard library is using 2.5 MB disk space. |
39 | Unicode support and some other modules are left out. (For details, |
40 | please look into epoc/createpkg.pl). If you like to use these modules, |
41 | you are free to copy them from a current perl release. |
ae2d1787 |
42 | |
d5ff79b3 |
43 | =head1 STARTING PERL ON EPOC |
ae2d1787 |
44 | |
d5ff79b3 |
45 | For ER5 machines, you can get the software Perlstart |
46 | http://www.science-computing.de/o.flebbe/perl. It contains file |
47 | recognizers for files with the extension .pl and .pm. With it you can |
48 | start perl with a double click on the camel icon. Be sure to configure |
49 | the perl installation drive first. You can even provide a script with |
50 | a special commandline, if needed. |
ae2d1787 |
51 | |
02a99678 |
52 | Alternatively you can use the epocemx shell |
d5ff79b3 |
53 | |
d1be9408 |
54 | If you have an ER3 machine (i.e. a PSION 5), you may have to supply the |
d5ff79b3 |
55 | full path to the perl executable C:\system\programs\perl.exe. |
56 | |
57 | If you need to set the current directory of perl, please use the |
58 | command line switch '-x'. See L<perlrun> for details. |
59 | |
60 | =head1 STOPPING PERL ON EPOC |
61 | |
62 | You can stop a running perl process in the task list by closing the |
02a99678 |
63 | application `STDOUT'. You can use the kill command in the epocemx |
64 | shell to kill perl. |
3a2f06e9 |
65 | |
9a997319 |
66 | =head1 USING PERL ON EPOC |
67 | |
a83b6f46 |
68 | =head2 I/O Redirection on Epoc |
ae2d1787 |
69 | |
70 | You can redirect the output with the UNIX bourne shell syntax (this is |
71 | built into perl rather then eshell) For instance the following command |
72 | line will run the script test.pl with the output redirected to |
73 | stdout_file, the errors to stderr_file and input from stdin_file. |
74 | |
75 | perl test.pl >stdout_file <stdin_file 2>stderr_file |
76 | |
9a997319 |
77 | Alternatively you can use 2>&1 in order to add the standard error |
3a2f06e9 |
78 | output to stdout. |
79 | |
a83b6f46 |
80 | =head2 PATH Names on Epoc |
ae2d1787 |
81 | |
ed79a026 |
82 | ESHELL looks for executables in ?:/System/Programs. The SIS file |
83 | installs perl in this special folder directory. The default drive and |
84 | path are the same as folder the executable resides. The EPOC |
85 | filesystem is case-preserving, not case-sensitive. |
86 | |
d5ff79b3 |
87 | The EPOC estdlib uses the ?: syntax for establishing a search order: |
88 | First in C: (RAM), then on D: (CF Card, if present) and last in Z: |
89 | (ROM). For instance ?:\a.txt searches for C:\a.txt, D:\a.txt (and |
90 | Z:\a.txt) |
ed79a026 |
91 | |
d5ff79b3 |
92 | The perl @INC search path is implemented with '?:'. Your perl |
93 | executable can live on a different drive than the perl library or even |
94 | your scripts. |
ae2d1787 |
95 | |
ed79a026 |
96 | ESHELL paths have to be written with backslashes '\', file arguments |
97 | to perl with slashes '/'. Remember that I/O redirection is done |
98 | internally in perl, so please use slashes for redirects. |
ae2d1787 |
99 | |
ed79a026 |
100 | perl.exe C:/test.pl >C:/output.txt |
4d2c4e07 |
101 | |
a83b6f46 |
102 | =head2 Editors on Epoc |
4d2c4e07 |
103 | |
d5ff79b3 |
104 | A suitable text editor can be downloaded from symbian |
02a99678 |
105 | http://www.symbian.com/developer/downloads/files/editor.zip |
ed79a026 |
106 | |
a83b6f46 |
107 | =head2 Features of Perl on Epoc |
4d2c4e07 |
108 | |
ed79a026 |
109 | The built-in function EPOC::getcwd returns the current directory. |
3a2f06e9 |
110 | |
a83b6f46 |
111 | =head2 Restrictions of Perl on Epoc |
4d2c4e07 |
112 | |
ed79a026 |
113 | Features are left out, because of restrictions of the POSIX support in |
114 | EPOC: |
4d2c4e07 |
115 | |
9a997319 |
116 | =over 4 |
117 | |
118 | =item * |
119 | |
120 | backquoting, pipes etc. |
121 | |
122 | =item * |
123 | |
210b36aa |
124 | system() does not inherit resources like: file descriptors, |
9a997319 |
125 | environment etc. |
126 | |
127 | =item * |
128 | |
129 | signal, kill, alarm. Do not try to use them. This may be |
130 | impossible to implement on EPOC. |
131 | |
132 | =item * |
133 | |
134 | select is missing. |
135 | |
136 | =item * |
ae2d1787 |
137 | |
9a997319 |
138 | binmode does not exist. (No CR LF to LF translation for text files) |
ae2d1787 |
139 | |
9a997319 |
140 | =item * |
ae2d1787 |
141 | |
9a997319 |
142 | EPOC does not handle the notion of current drive and current |
143 | directory very well (i.e. not at all, but it tries hard to emulate |
144 | one) See PATH. |
ae2d1787 |
145 | |
9a997319 |
146 | =item * |
ae2d1787 |
147 | |
d5ff79b3 |
148 | Heap is limited to 4MB. |
4d2c4e07 |
149 | |
9a997319 |
150 | =item * |
4d2c4e07 |
151 | |
d5ff79b3 |
152 | Dynamic loading is not implemented. |
4d2c4e07 |
153 | |
9a997319 |
154 | =back |
155 | |
156 | =head2 Compiling Perl 5 on the EPOC cross compiling environment |
4d2c4e07 |
157 | |
3a2f06e9 |
158 | Sorry, this is far too short. |
4d2c4e07 |
159 | |
9a997319 |
160 | =over 4 |
161 | |
162 | =item * |
163 | |
02a99678 |
164 | You will need the epocemx SDK from Eberhard Mattes. Watch out for an |
165 | announcement. |
4d2c4e07 |
166 | |
9a997319 |
167 | =item * |
4d2c4e07 |
168 | |
9a997319 |
169 | Get the Perl sources from your nearest CPAN site. |
4d2c4e07 |
170 | |
9a997319 |
171 | =item * |
4d2c4e07 |
172 | |
9a997319 |
173 | Unpack the sources. |
ae2d1787 |
174 | |
9a997319 |
175 | =item * |
ae2d1787 |
176 | |
d5ff79b3 |
177 | Build a native perl from this sources... Make sure to save the |
178 | miniperl executable as miniperl.native. |
179 | |
180 | Start again from scratch |
ed79a026 |
181 | |
3a2f06e9 |
182 | cp epoc/* . |
f83d2536 |
183 | ./Configure -S |
d5ff79b3 |
184 | make |
3a2f06e9 |
185 | cp miniperl.native miniperl |
d5ff79b3 |
186 | make |
3a2f06e9 |
187 | perl createpkg.pl |
4d2c4e07 |
188 | |
02a99678 |
189 | emxsis perl.pkg perl.sis |
4d2c4e07 |
190 | |
9a997319 |
191 | =back |
4d2c4e07 |
192 | |
a83b6f46 |
193 | =head1 SUPPORT STATUS OF PERL ON EPOC |
4d2c4e07 |
194 | |
ed79a026 |
195 | I'm offering this port "as is". You can ask me questions, but I can't |
196 | guarantee I'll be able to answer them. |
9a997319 |
197 | |
198 | =head1 AUTHOR |
199 | |
d5ff79b3 |
200 | Olaf Flebbe <o.flebbe@science-computing.de> |
201 | http://www.science-computing.de/o.flebbe/perl/ |
9a997319 |
202 | |
203 | =head1 LAST UPDATE |
204 | |
02a99678 |
205 | 2001-12-12 |
9a997319 |
206 | |
207 | =cut |