Commit | Line | Data |
3a2f06e9 |
1 | ===================================================================== |
4d2c4e07 |
2 | Perl 5 README file for the EPOC operating system. |
3a2f06e9 |
3 | ===================================================================== |
4d2c4e07 |
4 | |
832c1cda |
5 | Olaf Flebbe <o.flebbe@gmx.de> |
ed79a026 |
6 | http://members.linuxstart.com/~oflebbe/perl/perl5.html |
7 | 2000-09-18 |
4d2c4e07 |
8 | |
3a2f06e9 |
9 | ===================================================================== |
4d2c4e07 |
10 | Introduction |
3a2f06e9 |
11 | ===================================================================== |
4d2c4e07 |
12 | |
3a2f06e9 |
13 | EPOC is a OS for palmtops and mobile phones. For more informations look at: |
14 | http://www.symbian.com/ |
4d2c4e07 |
15 | |
ed79a026 |
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. |
4d2c4e07 |
20 | |
3a2f06e9 |
21 | ===================================================================== |
ae2d1787 |
22 | Installation/Usage |
3a2f06e9 |
23 | ===================================================================== |
4d2c4e07 |
24 | |
3a2f06e9 |
25 | You will need ~4MB free space in order to install and run perl. |
ae2d1787 |
26 | |
3a2f06e9 |
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. |
ae2d1787 |
29 | |
3a2f06e9 |
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. |
ae2d1787 |
34 | |
ed79a026 |
35 | Get ESHELL from symbian: |
36 | http://developer.epocworld.com/downloads/progs/Eshell.zip |
ae2d1787 |
37 | |
38 | Now you can enter: perl -de 0 in order to run the perl debugger. If |
3a2f06e9 |
39 | you are leaving perl, you get into the system screen. You have to |
ed79a026 |
40 | switch back manually to ESHELL. When perl is running, you will see |
3a2f06e9 |
41 | a task with the name STDOUT in the task list. |
42 | |
43 | ====================================================================== |
44 | IO Redirection |
45 | ====================================================================== |
ae2d1787 |
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 | |
3a2f06e9 |
54 | Alternativly you can use 2>&1 in order to add the standard error |
55 | output to stdout. |
56 | |
57 | ====================================================================== |
58 | PATH Names |
59 | ====================================================================== |
ae2d1787 |
60 | |
ed79a026 |
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. |
ae2d1787 |
72 | |
ed79a026 |
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. |
ae2d1787 |
76 | |
ed79a026 |
77 | perl.exe C:/test.pl >C:/output.txt |
4d2c4e07 |
78 | |
3a2f06e9 |
79 | You can automatically search for file on all EPOC drives with a ? as |
ed79a026 |
80 | the driver letter. For instance ?:\a.txt searches for C:\a.txt, |
3a2f06e9 |
81 | D:\b.txt (and Z:\a.txt). |
4d2c4e07 |
82 | |
3a2f06e9 |
83 | ====================================================================== |
84 | Editors |
85 | ====================================================================== |
4d2c4e07 |
86 | |
ed79a026 |
87 | A suitable text-editor can be downloaded |
88 | from symbian http://developer.epocworld.com/downloads/progs/Editor.zip |
89 | |
90 | ==================================================================== |
91 | Features |
92 | ==================================================================== |
4d2c4e07 |
93 | |
ed79a026 |
94 | The built-in function EPOC::getcwd returns the current directory. |
3a2f06e9 |
95 | |
96 | ====================================================================== |
97 | Restrictions |
98 | ====================================================================== |
4d2c4e07 |
99 | |
ed79a026 |
100 | Features are left out, because of restrictions of the POSIX support in |
101 | EPOC: |
4d2c4e07 |
102 | |
3a2f06e9 |
103 | + backquoting, pipes etc. |
ae2d1787 |
104 | |
3a2f06e9 |
105 | + system() does not inherit ressources like: file descriptors, |
106 | environment etc. |
ae2d1787 |
107 | |
3a2f06e9 |
108 | + signal, kill, alarm. Do not try to use them. This may be |
109 | impossible to implement on EPOC. |
ae2d1787 |
110 | |
3a2f06e9 |
111 | + select is missing. |
ae2d1787 |
112 | |
3a2f06e9 |
113 | + binmode does not exist. (No CR LF to LF translation for text files) |
ae2d1787 |
114 | |
3a2f06e9 |
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. |
4d2c4e07 |
118 | |
3a2f06e9 |
119 | + You need the shell eshell.exe in order to run perl.exe and supply |
120 | it with arguments. |
4d2c4e07 |
121 | |
3a2f06e9 |
122 | + Heap is limited to 4MB. |
4d2c4e07 |
123 | |
3a2f06e9 |
124 | =================================================================== |
4d2c4e07 |
125 | Compiling Perl 5 on the EPOC cross compiling envionment. |
3a2f06e9 |
126 | =================================================================== |
4d2c4e07 |
127 | |
3a2f06e9 |
128 | Sorry, this is far too short. |
4d2c4e07 |
129 | |
3a2f06e9 |
130 | You will need the C++ SDK from http://developer.epocworld.com/. |
4d2c4e07 |
131 | |
3a2f06e9 |
132 | You will need to set up the cross SDK from |
ed79a026 |
133 | http://members.linuxstart.com/~oflebbe |
4d2c4e07 |
134 | |
3a2f06e9 |
135 | You may have to adjust config.sh (cc, cppflags) for your epoc |
136 | install location. |
4d2c4e07 |
137 | |
3a2f06e9 |
138 | You may have to adjust config.sh for your cross SDK location |
4d2c4e07 |
139 | |
3a2f06e9 |
140 | Get the Perl sources from your nearest CPAN site. |
ae2d1787 |
141 | |
3a2f06e9 |
142 | Unpack the sources. |
ae2d1787 |
143 | |
f83d2536 |
144 | Build a native perl from this sources... |
ed79a026 |
145 | |
3a2f06e9 |
146 | cp epoc/* . |
f83d2536 |
147 | ./Configure -S |
ed79a026 |
148 | make perl.a |
3a2f06e9 |
149 | cp miniperl.native miniperl |
150 | make perl |
ed79a026 |
151 | make ext/Errno/pm_to_blib |
f83d2536 |
152 | perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \ |
ed79a026 |
153 | lib/auto/Data/Dumper/Dumper.a \ |
3a2f06e9 |
154 | lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \ |
ed79a026 |
155 | lib/auto/Socket/Socket.a \ |
156 | lib/auto/Fcntl/Fcntl.a lib/auto/Sys/Hostname/Hostname.a \ |
157 | perl.a `cat ext.libs` |
3a2f06e9 |
158 | perl createpkg.pl |
4d2c4e07 |
159 | |
ed79a026 |
160 | wine G:/bin/makesis perl.pkg perl.sis |
4d2c4e07 |
161 | |
4d2c4e07 |
162 | |
3a2f06e9 |
163 | ==================================================================== |
4d2c4e07 |
164 | Support Status |
3a2f06e9 |
165 | ==================================================================== |
4d2c4e07 |
166 | |
ed79a026 |
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. |