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