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