If not building threaded, never mind the threaded prototypes.
[p5sagit/p5-mst-13.2.git] / README.epoc
CommitLineData
9a997319 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 5=head1 NAME
6
7README.epoc - Perl for EPOC
4d2c4e07 8
9a997319 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 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 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 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 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 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 63application `STDOUT'. You can use the kill command in the epocemx
64shell to kill perl.
3a2f06e9 65
9a997319 66=head1 USING PERL ON EPOC
67
a83b6f46 68=head2 I/O Redirection on Epoc
ae2d1787 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 78output to stdout.
79
a83b6f46 80=head2 PATH Names on Epoc
ae2d1787 81
ed79a026 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 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 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 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 113Features are left out, because of restrictions of the POSIX support in
114EPOC:
4d2c4e07 115
9a997319 116=over 4
117
118=item *
119
120backquoting, pipes etc.
121
122=item *
123
210b36aa 124system() does not inherit resources like: file descriptors,
9a997319 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 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 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 160=over 4
161
162=item *
163
02a99678 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 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 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 197
198=head1 AUTHOR
199
d5ff79b3 200Olaf Flebbe <o.flebbe@science-computing.de>
201http://www.science-computing.de/o.flebbe/perl/
9a997319 202
203=head1 LAST UPDATE
204
02a99678 2052001-12-12
9a997319 206
207=cut