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