Add missing declaration (Dan Sugalski)
[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
f83d2536 72000-02-20
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
f83d2536 16This is a port of Perl version 5.5.650 to EPOC. It runs on the Perl
17Series 5, Series 5mx and the Psion Revo. I have no reports for other
18EPOC devices.
4d2c4e07 19
3a2f06e9 20Features are left out, because of restrictions of the POSIX support.
4d2c4e07 21
3a2f06e9 22=====================================================================
ae2d1787 23Installation/Usage
3a2f06e9 24=====================================================================
4d2c4e07 25
3a2f06e9 26You will need ~4MB free space in order to install and run perl.
ae2d1787 27
3a2f06e9 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
3a2f06e9 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
3a2f06e9 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
3a2f06e9 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
3a2f06e9 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
3a2f06e9 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
3a2f06e9 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
3a2f06e9 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
3a2f06e9 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
3a2f06e9 90The following things are left out of this perl port:
4d2c4e07 91
3a2f06e9 92+ backquoting, pipes etc.
ae2d1787 93
3a2f06e9 94+ system() does not inherit ressources like: file descriptors,
95 environment etc.
ae2d1787 96
3a2f06e9 97+ signal, kill, alarm. Do not try to use them. This may be
98 impossible to implement on EPOC.
ae2d1787 99
3a2f06e9 100+ select is missing.
ae2d1787 101
3a2f06e9 102+ binmode does not exist. (No CR LF to LF translation for text files)
ae2d1787 103
3a2f06e9 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
3a2f06e9 108+ You need the shell eshell.exe in order to run perl.exe and supply
109 it with arguments.
4d2c4e07 110
3a2f06e9 111+ Heap is limited to 4MB.
4d2c4e07 112
3a2f06e9 113===================================================================
4d2c4e07 114Compiling Perl 5 on the EPOC cross compiling envionment.
3a2f06e9 115===================================================================
4d2c4e07 116
3a2f06e9 117Sorry, this is far too short.
4d2c4e07 118
3a2f06e9 119 You will need the C++ SDK from http://developer.epocworld.com/.
4d2c4e07 120
3a2f06e9 121 You will need to set up the cross SDK from
122 http://www.linuxstart.com/~oflebbe
4d2c4e07 123
3a2f06e9 124 You may have to adjust config.sh (cc, cppflags) for your epoc
125 install location.
4d2c4e07 126
3a2f06e9 127 You may have to adjust config.sh for your cross SDK location
4d2c4e07 128
3a2f06e9 129 Get the Perl sources from your nearest CPAN site.
ae2d1787 130
3a2f06e9 131 Unpack the sources.
ae2d1787 132
f83d2536 133 Build a native perl from this sources...
3a2f06e9 134 cp epoc/* .
f83d2536 135 ./Configure -S
3a2f06e9 136 make perl
137 cp miniperl.native miniperl
138 make perl
f83d2536 139 perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \
3a2f06e9 140 lib/auto/Data/Dumper.a \
141 lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \
142 lib/auto/Socket/Socket.a perl.a `cat ext.libs`
143 perl createpkg.pl
144 wine "G:/bin/makesis perl.pkg perl.sis"
4d2c4e07 145
4d2c4e07 146
3a2f06e9 147====================================================================
f83d2536 148Wish List
3a2f06e9 149====================================================================
4d2c4e07 150
3a2f06e9 151- Threads ?
152- Acess to the GUI?
4d2c4e07 153
3a2f06e9 154====================================================================
4d2c4e07 155Support Status
3a2f06e9 156====================================================================
4d2c4e07 157
158I'm offering this port "as is". You can ask me questions, but I can't
159guarantee I'll be able to answer them; I don't know much about Perl
ae2d1787 160internals myself;