This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
windows build fixups from uniform DLL name change to perl56.dll
[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>
3a2f06e9
GS
6http://www.linuxstart.com/~oflebbe/perl/perl5.html
72000-01-08
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
3a2f06e9
GS
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
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
GS
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
GS
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
GS
36Copy eshell.exe from the same page you got perl to your EPOC device.
37Start eshell.exe with a double tap.
ae2d1787
OF
38
39Now you can enter: perl -de 0 in order to run the perl debugger. If
3a2f06e9
GS
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
OF
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
GS
55Alternativly you can use 2>&1 in order to add the standard error
56output to stdout.
57
58======================================================================
59PATH Names
60======================================================================
ae2d1787
OF
61
62Pathnames to executables in eshell.exe have to be written with
3a2f06e9
GS
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
OF
66
67i.e. command lines look a little bit funny:
68
69D:\perl.exe C:/test.pl >C:/output.txt
4d2c4e07 70
3a2f06e9
GS
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
GS
75======================================================================
76Editors
77======================================================================
4d2c4e07 78
ae2d1787
OF
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
GS
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
GS
94+ system() does not inherit ressources like: file descriptors,
95 environment etc.
ae2d1787 96
3a2f06e9
GS
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
GS
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+ sockets seems to work now!
4d2c4e07 109
3a2f06e9
GS
110+ You need the shell eshell.exe in order to run perl.exe and supply
111 it with arguments.
4d2c4e07 112
3a2f06e9 113+ Heap is limited to 4MB.
4d2c4e07 114
3a2f06e9 115===================================================================
4d2c4e07 116Compiling Perl 5 on the EPOC cross compiling envionment.
3a2f06e9 117===================================================================
4d2c4e07 118
3a2f06e9 119Sorry, this is far too short.
4d2c4e07 120
3a2f06e9 121 You will need the C++ SDK from http://developer.epocworld.com/.
4d2c4e07 122
3a2f06e9
GS
123 You will need to set up the cross SDK from
124 http://www.linuxstart.com/~oflebbe
4d2c4e07 125
3a2f06e9
GS
126 You may have to adjust config.sh (cc, cppflags) for your epoc
127 install location.
4d2c4e07 128
3a2f06e9 129 You may have to adjust config.sh for your cross SDK location
4d2c4e07 130
3a2f06e9 131 Get the Perl sources from your nearest CPAN site.
ae2d1787 132
3a2f06e9 133 Unpack the sources.
ae2d1787 134
3a2f06e9
GS
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
3a2f06e9
GS
151====================================================================
152TODO
153====================================================================
4d2c4e07 154
3a2f06e9
GS
155- Get the HTTPD::* working (Hey, It worked the first time for me!)
156- Threads ?
157- Acess to the GUI?
4d2c4e07 158
3a2f06e9 159====================================================================
4d2c4e07 160Support Status
3a2f06e9 161====================================================================
4d2c4e07
OF
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;