Update Changes.
[p5sagit/p5-mst-13.2.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>
3a2f06e9 6http://www.linuxstart.com/~oflebbe/perl/perl5.html
b250498f 72000-05-15
4d2c4e07 8
3a2f06e9 9=====================================================================
4d2c4e07 10Introduction
3a2f06e9 11=====================================================================
4d2c4e07 12
3a2f06e9 13EPOC is a OS for palmtops and mobile phones. For more informations look at:
14http://www.symbian.com/
4d2c4e07 15
b250498f 16This is a port of Perl version 5.6.0 to EPOC. It runs on the Perl
17Series 5, Series 5mx and the Psion Revo and on the Ericson M128.
4d2c4e07 18
3a2f06e9 19Features are left out, because of restrictions of the POSIX support.
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 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 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
3a2f06e9 35Copy eshell.exe from the same page you got perl to your EPOC device.
36Start eshell.exe with a double tap.
ae2d1787 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
40switch back manually to eshell.exe When perl is running, you will see
41a task with the name STDOUT in the task list.
42
43======================================================================
44IO Redirection
45======================================================================
ae2d1787 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 54Alternativly you can use 2>&1 in order to add the standard error
55output to stdout.
56
57======================================================================
58PATH Names
59======================================================================
ae2d1787 60
61Pathnames to executables in eshell.exe have to be written with
3a2f06e9 62backslashes '\', file arguments to perl with slashes '/'. The default
63drive of perl is the same as the drive perl.exe is located on, the
64default path seems to be '/'.
ae2d1787 65
66i.e. command lines look a little bit funny:
67
68D:\perl.exe C:/test.pl >C:/output.txt
4d2c4e07 69
3a2f06e9 70You can automatically search for file on all EPOC drives with a ? as
71the driver letter. For instance ?:\a.txt seraches for C:\a.txt,
72D:\b.txt (and Z:\a.txt).
4d2c4e07 73
3a2f06e9 74======================================================================
75Editors
76======================================================================
4d2c4e07 77
ae2d1787 78You may have a problem to create perl scripts. A cumbersome workaround
79is to use the OPL Editor and exporting to text.
4d2c4e07 80
3a2f06e9 81The OPL+ Editor is quite good. (Shareware: http://www.twiddlebit.com)
82There is a port of vim around:
83 http://www.starship.freeserve.co.uk/index.html
84
85======================================================================
86Restrictions
87======================================================================
4d2c4e07 88
3a2f06e9 89The following things are left out of this perl port:
4d2c4e07 90
3a2f06e9 91+ backquoting, pipes etc.
ae2d1787 92
3a2f06e9 93+ system() does not inherit ressources like: file descriptors,
94 environment etc.
ae2d1787 95
3a2f06e9 96+ signal, kill, alarm. Do not try to use them. This may be
97 impossible to implement on EPOC.
ae2d1787 98
3a2f06e9 99+ select is missing.
ae2d1787 100
3a2f06e9 101+ binmode does not exist. (No CR LF to LF translation for text files)
ae2d1787 102
3a2f06e9 103+ EPOC does not handle the notion of current drive and current
104 directory very well (i.e. not at all, but it tries hard to emulate
105 one) See PATH.
4d2c4e07 106
3a2f06e9 107+ You need the shell eshell.exe in order to run perl.exe and supply
108 it with arguments.
4d2c4e07 109
3a2f06e9 110+ Heap is limited to 4MB.
4d2c4e07 111
3a2f06e9 112===================================================================
4d2c4e07 113Compiling Perl 5 on the EPOC cross compiling envionment.
3a2f06e9 114===================================================================
4d2c4e07 115
3a2f06e9 116Sorry, this is far too short.
4d2c4e07 117
3a2f06e9 118 You will need the C++ SDK from http://developer.epocworld.com/.
4d2c4e07 119
3a2f06e9 120 You will need to set up the cross SDK from
121 http://www.linuxstart.com/~oflebbe
4d2c4e07 122
3a2f06e9 123 You may have to adjust config.sh (cc, cppflags) for your epoc
124 install location.
4d2c4e07 125
3a2f06e9 126 You may have to adjust config.sh for your cross SDK location
4d2c4e07 127
3a2f06e9 128 Get the Perl sources from your nearest CPAN site.
ae2d1787 129
3a2f06e9 130 Unpack the sources.
ae2d1787 131
f83d2536 132 Build a native perl from this sources...
3a2f06e9 133 cp epoc/* .
f83d2536 134 ./Configure -S
3a2f06e9 135 make perl
136 cp miniperl.native miniperl
137 make perl
f83d2536 138 perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \
3a2f06e9 139 lib/auto/Data/Dumper.a \
140 lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \
141 lib/auto/Socket/Socket.a perl.a `cat ext.libs`
142 perl createpkg.pl
143 wine "G:/bin/makesis perl.pkg perl.sis"
4d2c4e07 144
4d2c4e07 145
3a2f06e9 146====================================================================
f83d2536 147Wish List
3a2f06e9 148====================================================================
4d2c4e07 149
3a2f06e9 150- Threads ?
151- Acess to the GUI?
4d2c4e07 152
3a2f06e9 153====================================================================
4d2c4e07 154Support Status
3a2f06e9 155====================================================================
4d2c4e07 156
157I'm offering this port "as is". You can ask me questions, but I can't
158guarantee I'll be able to answer them; I don't know much about Perl
b250498f 159internals myself.