Quick integration of mainline changes to date
[p5sagit/p5-mst-13.2.git] / README.epoc
CommitLineData
146174a9 1=====================================================================
4d2c4e07 2Perl 5 README file for the EPOC operating system.
146174a9 3=====================================================================
4d2c4e07 4
832c1cda 5Olaf Flebbe <o.flebbe@gmx.de>
146174a9 6http://www.linuxstart.com/~oflebbe/perl/perl5.html
72000-01-08
4d2c4e07 8
146174a9 9=====================================================================
4d2c4e07 10Introduction
146174a9 11=====================================================================
4d2c4e07 12
146174a9 13EPOC is a OS for palmtops and mobile phones. For more informations look at:
14http://www.symbian.com/
4d2c4e07 15
146174a9 16This is a port of Perl version 5.005_63 to EPOC. It runs on the Perl
17Series 5, Series 5mx. I have no reports about the Psion Revo, the
18Ericcson (??) and the Psion NetBook. I only have acess to an Series 5.
4d2c4e07 19
146174a9 20Features are left out, because of restrictions of the POSIX support.
4d2c4e07 21
146174a9 22=====================================================================
ae2d1787 23Installation/Usage
146174a9 24=====================================================================
4d2c4e07 25
146174a9 26You will need ~4MB free space in order to install and run perl.
ae2d1787 27
146174a9 28Install perl.sis on the EPOC machine (most likely a PSION Series 5,
295mx). If you do not know how to do that, you are on your own.
ae2d1787 30
146174a9 31Perl itself and its standard library are using 2.5 MB disk space. I
32left out unicode support modules and modules which will not work with
33this version. (For details look into epoc/createpkg.pl). If you like
34to use them, you are free to copy them from a current perl release.
ae2d1787 35
146174a9 36Copy eshell.exe from the same page you got perl to your EPOC device.
37Start eshell.exe with a double tap.
ae2d1787 38
39Now you can enter: perl -de 0 in order to run the perl debugger. If
146174a9 40you are leaving perl, you get into the system screen. You have to
41switch back manually to eshell.exe When perl is running, you will see
42a task with the name STDOUT in the task list.
43
44======================================================================
45IO Redirection
46======================================================================
ae2d1787 47
48You can redirect the output with the UNIX bourne shell syntax (this is
49built into perl rather then eshell) For instance the following command
50line will run the script test.pl with the output redirected to
51stdout_file, the errors to stderr_file and input from stdin_file.
52
53perl test.pl >stdout_file <stdin_file 2>stderr_file
54
146174a9 55Alternativly you can use 2>&1 in order to add the standard error
56output to stdout.
57
58======================================================================
59PATH Names
60======================================================================
ae2d1787 61
62Pathnames to executables in eshell.exe have to be written with
146174a9 63backslashes '\', file arguments to perl with slashes '/'. The default
64drive of perl is the same as the drive perl.exe is located on, the
65default path seems to be '/'.
ae2d1787 66
67i.e. command lines look a little bit funny:
68
69D:\perl.exe C:/test.pl >C:/output.txt
4d2c4e07 70
146174a9 71You can automatically search for file on all EPOC drives with a ? as
72the driver letter. For instance ?:\a.txt seraches for C:\a.txt,
73D:\b.txt (and Z:\a.txt).
4d2c4e07 74
146174a9 75======================================================================
76Editors
77======================================================================
4d2c4e07 78
ae2d1787 79You may have a problem to create perl scripts. A cumbersome workaround
80is to use the OPL Editor and exporting to text.
4d2c4e07 81
146174a9 82The OPL+ Editor is quite good. (Shareware: http://www.twiddlebit.com)
83There is a port of vim around:
84 http://www.starship.freeserve.co.uk/index.html
85
86======================================================================
87Restrictions
88======================================================================
4d2c4e07 89
146174a9 90The following things are left out of this perl port:
4d2c4e07 91
146174a9 92+ backquoting, pipes etc.
ae2d1787 93
146174a9 94+ system() does not inherit ressources like: file descriptors,
95 environment etc.
ae2d1787 96
146174a9 97+ signal, kill, alarm. Do not try to use them. This may be
98 impossible to implement on EPOC.
ae2d1787 99
146174a9 100+ select is missing.
ae2d1787 101
146174a9 102+ binmode does not exist. (No CR LF to LF translation for text files)
ae2d1787 103
146174a9 104+ EPOC does not handle the notion of current drive and current
105 directory very well (i.e. not at all, but it tries hard to emulate
106 one) See PATH.
4d2c4e07 107
146174a9 108+ sockets seems to work now!
4d2c4e07 109
146174a9 110+ You need the shell eshell.exe in order to run perl.exe and supply
111 it with arguments.
4d2c4e07 112
146174a9 113+ Heap is limited to 4MB.
4d2c4e07 114
146174a9 115===================================================================
4d2c4e07 116Compiling Perl 5 on the EPOC cross compiling envionment.
146174a9 117===================================================================
4d2c4e07 118
146174a9 119Sorry, this is far too short.
4d2c4e07 120
146174a9 121 You will need the C++ SDK from http://developer.epocworld.com/.
4d2c4e07 122
146174a9 123 You will need to set up the cross SDK from
124 http://www.linuxstart.com/~oflebbe
4d2c4e07 125
146174a9 126 You may have to adjust config.sh (cc, cppflags) for your epoc
127 install location.
4d2c4e07 128
146174a9 129 You may have to adjust config.sh for your cross SDK location
4d2c4e07 130
146174a9 131 Get the Perl sources from your nearest CPAN site.
ae2d1787 132
146174a9 133 Unpack the sources.
ae2d1787 134
146174a9 135 Build a native miniperl...
136 cp epoc/* .
137 for i in *.SH ; do
138 sh $i
139 done
140 make perl
141 cp miniperl.native miniperl
142 make perl
143 perl linkit perlmain.o lib/auto/DynaLoader/DynaLoader.a \
144 lib/auto/Data/Dumper.a \
145 lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \
146 lib/auto/Socket/Socket.a perl.a `cat ext.libs`
147 perl createpkg.pl
148 wine "G:/bin/makesis perl.pkg perl.sis"
4d2c4e07 149
4d2c4e07 150
146174a9 151====================================================================
152TODO
153====================================================================
4d2c4e07 154
146174a9 155- Get the HTTPD::* working (Hey, It worked the first time for me!)
156- Threads ?
157- Acess to the GUI?
4d2c4e07 158
146174a9 159====================================================================
4d2c4e07 160Support Status
146174a9 161====================================================================
4d2c4e07 162
163I'm offering this port "as is". You can ask me questions, but I can't
164guarantee I'll be able to answer them; I don't know much about Perl
ae2d1787 165internals myself;