Commit | Line | Data |
---|---|---|
9a997319 JH |
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 JH |
5 | =head1 NAME |
6 | ||
7 | README.epoc - Perl for EPOC | |
4d2c4e07 | 8 | |
9a997319 JH |
9 | =head1 SYNOPSIS |
10 | ||
11 | Perl 5 README file for the EPOC operating system. | |
12 | ||
13 | =head1 INTRODUCTION | |
4d2c4e07 | 14 | |
3a2f06e9 GS |
15 | EPOC is a OS for palmtops and mobile phones. For more informations look at: |
16 | http://www.symbian.com/ | |
4d2c4e07 | 17 | |
ed79a026 OF |
18 | This is a port of perl to EPOC. It runs on the Psion Series 5, 5mx, |
19 | 5mx Pro, Psion Revo and on the Ericson M128. I have no report about | |
20 | the Psion Netbook or the S7. For information about this hardware | |
21 | please refer to http://www.psion.com. | |
4d2c4e07 | 22 | |
9a997319 | 23 | =head1 INSTALLING PERL ON EPOC |
4d2c4e07 | 24 | |
3a2f06e9 | 25 | You will need ~4MB free space in order to install and run perl. |
ae2d1787 | 26 | |
3a2f06e9 GS |
27 | Install perl.sis on the EPOC machine (most likely a PSION Series 5, |
28 | 5mx). If you do not know how to do that, you are on your own. | |
ae2d1787 | 29 | |
3a2f06e9 GS |
30 | Perl itself and its standard library are using 2.5 MB disk space. I |
31 | left out unicode support modules and modules which will not work with | |
32 | this version. (For details look into epoc/createpkg.pl). If you like | |
33 | to use them, you are free to copy them from a current perl release. | |
ae2d1787 | 34 | |
ed79a026 OF |
35 | Get ESHELL from symbian: |
36 | http://developer.epocworld.com/downloads/progs/Eshell.zip | |
ae2d1787 OF |
37 | |
38 | Now you can enter: perl -de 0 in order to run the perl debugger. If | |
3a2f06e9 | 39 | you are leaving perl, you get into the system screen. You have to |
ed79a026 | 40 | switch back manually to ESHELL. When perl is running, you will see |
3a2f06e9 GS |
41 | a task with the name STDOUT in the task list. |
42 | ||
9a997319 JH |
43 | =head1 USING PERL ON EPOC |
44 | ||
45 | =head2 IO Redirection | |
ae2d1787 OF |
46 | |
47 | You can redirect the output with the UNIX bourne shell syntax (this is | |
48 | built into perl rather then eshell) For instance the following command | |
49 | line will run the script test.pl with the output redirected to | |
50 | stdout_file, the errors to stderr_file and input from stdin_file. | |
51 | ||
52 | perl test.pl >stdout_file <stdin_file 2>stderr_file | |
53 | ||
9a997319 | 54 | Alternatively you can use 2>&1 in order to add the standard error |
3a2f06e9 GS |
55 | output to stdout. |
56 | ||
9a997319 | 57 | =head2 PATH Names |
ae2d1787 | 58 | |
ed79a026 OF |
59 | ESHELL looks for executables in ?:/System/Programs. The SIS file |
60 | installs perl in this special folder directory. The default drive and | |
61 | path are the same as folder the executable resides. The EPOC | |
62 | filesystem is case-preserving, not case-sensitive. | |
63 | ||
64 | EPOC uses the ?: syntax for establishing a search order: First in C: (RAM), | |
65 | then on D: (CF Card) and last in Z: (ROM). | |
66 | ||
67 | The perl @INC search path is now implemented with '?:'. Your perl | |
68 | executable can now live on a different drive than the perl library or | |
69 | even your scripts. | |
ae2d1787 | 70 | |
ed79a026 OF |
71 | ESHELL paths have to be written with backslashes '\', file arguments |
72 | to perl with slashes '/'. Remember that I/O redirection is done | |
73 | internally in perl, so please use slashes for redirects. | |
ae2d1787 | 74 | |
ed79a026 | 75 | perl.exe C:/test.pl >C:/output.txt |
4d2c4e07 | 76 | |
3a2f06e9 | 77 | You can automatically search for file on all EPOC drives with a ? as |
ed79a026 | 78 | the driver letter. For instance ?:\a.txt searches for C:\a.txt, |
3a2f06e9 | 79 | D:\b.txt (and Z:\a.txt). |
4d2c4e07 | 80 | |
9a997319 | 81 | =head2 Editors |
4d2c4e07 | 82 | |
ed79a026 OF |
83 | A suitable text-editor can be downloaded |
84 | from symbian http://developer.epocworld.com/downloads/progs/Editor.zip | |
85 | ||
9a997319 | 86 | =head2 Features |
4d2c4e07 | 87 | |
ed79a026 | 88 | The built-in function EPOC::getcwd returns the current directory. |
3a2f06e9 | 89 | |
9a997319 | 90 | =head2 Restrictions |
4d2c4e07 | 91 | |
ed79a026 OF |
92 | Features are left out, because of restrictions of the POSIX support in |
93 | EPOC: | |
4d2c4e07 | 94 | |
9a997319 JH |
95 | =over 4 |
96 | ||
97 | =item * | |
98 | ||
99 | backquoting, pipes etc. | |
100 | ||
101 | =item * | |
102 | ||
103 | system() does not inherit ressources like: file descriptors, | |
104 | environment etc. | |
105 | ||
106 | =item * | |
107 | ||
108 | signal, kill, alarm. Do not try to use them. This may be | |
109 | impossible to implement on EPOC. | |
110 | ||
111 | =item * | |
112 | ||
113 | select is missing. | |
114 | ||
115 | =item * | |
ae2d1787 | 116 | |
9a997319 | 117 | binmode does not exist. (No CR LF to LF translation for text files) |
ae2d1787 | 118 | |
9a997319 | 119 | =item * |
ae2d1787 | 120 | |
9a997319 JH |
121 | EPOC does not handle the notion of current drive and current |
122 | directory very well (i.e. not at all, but it tries hard to emulate | |
123 | one) See PATH. | |
ae2d1787 | 124 | |
9a997319 | 125 | =item * |
ae2d1787 | 126 | |
9a997319 JH |
127 | You need the shell eshell.exe in order to run perl.exe and supply |
128 | it with arguments. | |
4d2c4e07 | 129 | |
9a997319 | 130 | =item * |
4d2c4e07 | 131 | |
9a997319 | 132 | Heap is limited to 4MB. |
4d2c4e07 | 133 | |
9a997319 JH |
134 | =back |
135 | ||
136 | =head2 Compiling Perl 5 on the EPOC cross compiling environment | |
4d2c4e07 | 137 | |
3a2f06e9 | 138 | Sorry, this is far too short. |
4d2c4e07 | 139 | |
9a997319 JH |
140 | =over 4 |
141 | ||
142 | =item * | |
143 | ||
144 | You will need the C++ SDK from http://developer.epocworld.com/. | |
145 | ||
146 | =item * | |
147 | ||
148 | You will need to set up the cross SDK from | |
149 | http://members.linuxstart.com/~oflebbe | |
150 | ||
151 | =item * | |
152 | ||
153 | You may have to adjust config.sh (cc, cppflags) for your epoc | |
154 | install location. | |
155 | ||
156 | =item * | |
157 | ||
158 | You may have to adjust config.sh for your cross SDK location | |
4d2c4e07 | 159 | |
9a997319 | 160 | =item * |
4d2c4e07 | 161 | |
9a997319 | 162 | Get the Perl sources from your nearest CPAN site. |
4d2c4e07 | 163 | |
9a997319 | 164 | =item * |
4d2c4e07 | 165 | |
9a997319 | 166 | Unpack the sources. |
ae2d1787 | 167 | |
9a997319 | 168 | =item * |
ae2d1787 | 169 | |
9a997319 | 170 | Build a native perl from this sources... |
ed79a026 | 171 | |
3a2f06e9 | 172 | cp epoc/* . |
f83d2536 | 173 | ./Configure -S |
ed79a026 | 174 | make perl.a |
3a2f06e9 GS |
175 | cp miniperl.native miniperl |
176 | make perl | |
ed79a026 | 177 | make ext/Errno/pm_to_blib |
f83d2536 | 178 | perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \ |
ed79a026 | 179 | lib/auto/Data/Dumper/Dumper.a \ |
3a2f06e9 | 180 | lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \ |
ed79a026 OF |
181 | lib/auto/Socket/Socket.a \ |
182 | lib/auto/Fcntl/Fcntl.a lib/auto/Sys/Hostname/Hostname.a \ | |
183 | perl.a `cat ext.libs` | |
3a2f06e9 | 184 | perl createpkg.pl |
4d2c4e07 | 185 | |
ed79a026 | 186 | wine G:/bin/makesis perl.pkg perl.sis |
4d2c4e07 | 187 | |
9a997319 | 188 | =back |
4d2c4e07 | 189 | |
9a997319 | 190 | =head1 SUPPORT STATUS |
4d2c4e07 | 191 | |
ed79a026 OF |
192 | I'm offering this port "as is". You can ask me questions, but I can't |
193 | guarantee I'll be able to answer them. | |
9a997319 JH |
194 | |
195 | =head1 AUTHOR | |
196 | ||
197 | Olaf Flebbe <o.flebbe@gmx.de> | |
198 | http://members.linuxstart.com/~oflebbe/perl/perl5.html | |
199 | ||
200 | =head1 LAST UPDATE | |
201 | ||
202 | 2000-09-18 | |
203 | ||
204 | =cut |