[17034] | 1 | If you read this file _as_is_, just ignore the funny characters you |
---|
| 2 | see. It is written in the POD format (see pod/perlpod.pod) which is |
---|
| 3 | specially designed to be readable as is. |
---|
| 4 | |
---|
| 5 | =head1 NAME |
---|
| 6 | |
---|
| 7 | README.epoc - Perl for EPOC |
---|
| 8 | |
---|
| 9 | =head1 SYNOPSIS |
---|
| 10 | |
---|
[14544] | 11 | Perl 5 README file for the EPOC operating system. |
---|
| 12 | |
---|
[17034] | 13 | =head1 INTRODUCTION |
---|
[14544] | 14 | |
---|
| 15 | EPOC is a OS for palmtops and mobile phones. For more informations look at: |
---|
| 16 | http://www.symbian.com/ |
---|
| 17 | |
---|
[17034] | 18 | This is a port of perl to EPOC. It runs on ER5 machines: Psion 5mx, |
---|
| 19 | 5mx Pro, Psion Revo and on the Ericson M128. I have no report about |
---|
| 20 | the Psion Netbook or the S7. It runs on ER3 Hardware (Series 5 |
---|
| 21 | classic), too. For more information about this hardware please refer |
---|
| 22 | to http://www.psion.com. |
---|
[14544] | 23 | |
---|
[17034] | 24 | Vendors which like to have support for their devices are free to send |
---|
| 25 | me a sample. |
---|
[14544] | 26 | |
---|
[17034] | 27 | =head1 INSTALLING PERL ON EPOC |
---|
[14544] | 28 | |
---|
[17034] | 29 | You can download a ready-to-install version from |
---|
| 30 | http://www.science-computing.de/o.flebbe/perl. You may find other |
---|
| 31 | versions with some CPAN modules included at this location. |
---|
[14544] | 32 | |
---|
[17034] | 33 | You will need at least 4MB free space in order to install and run |
---|
| 34 | perl. |
---|
[14544] | 35 | |
---|
[17034] | 36 | Install perl.sis on the EPOC machine. If you do not know how to do |
---|
| 37 | that, consult your PsiWin documentation. |
---|
[14544] | 38 | |
---|
[17034] | 39 | Perl itself and its standard library is using 2.9 MB disk space. |
---|
| 40 | Unicode support and some other modules are left out. (For details, |
---|
| 41 | please look into epoc/createpkg.pl). If you like to use these modules, |
---|
| 42 | you are free to copy them from a current perl release. |
---|
[14544] | 43 | |
---|
[17034] | 44 | =head1 STARTING PERL ON EPOC |
---|
[14544] | 45 | |
---|
[17034] | 46 | For ER5 machines, you can get the software Perlstart |
---|
| 47 | http://www.science-computing.de/o.flebbe/perl. It contains file |
---|
| 48 | recognizers for files with the extension .pl and .pm. With it you can |
---|
| 49 | start perl with a double click on the camel icon. Be sure to configure |
---|
| 50 | the perl installation drive first. You can even provide a script with |
---|
| 51 | a special commandline, if needed. |
---|
[14544] | 52 | |
---|
[17034] | 53 | Alternativly you can get ESHELL from symbian: |
---|
| 54 | http://developer.epocworld.com/downloads/progs/Eshell.zip |
---|
| 55 | |
---|
| 56 | Running ESHELL you can enter: perl -de 0 in order to run the perl |
---|
| 57 | debugger. If you are leaving perl, you get into the system screen. You |
---|
| 58 | have to switch back manually to ESHELL. When perl is running, you will |
---|
| 59 | see a task with the name STDOUT in the task list. |
---|
| 60 | |
---|
| 61 | If you have a ER3 machine (i.e. a PSION 5), you may have to supply the |
---|
| 62 | full path to the perl executable C:\system\programs\perl.exe. |
---|
| 63 | |
---|
| 64 | If you need to set the current directory of perl, please use the |
---|
| 65 | command line switch '-x'. See L<perlrun> for details. |
---|
| 66 | |
---|
| 67 | =head1 STOPPING PERL ON EPOC |
---|
| 68 | |
---|
| 69 | You can stop a running perl process in the task list by closing the |
---|
| 70 | application `STDOUT'. You cannot stop a running perl process if it has |
---|
| 71 | not written anyting to stdout or stderr! Be very cautious with I/O |
---|
| 72 | redirection. You will have to reboot the PDA! |
---|
| 73 | |
---|
| 74 | =head1 USING PERL ON EPOC |
---|
| 75 | |
---|
| 76 | =head2 I/O Redirection |
---|
| 77 | |
---|
[14544] | 78 | You can redirect the output with the UNIX bourne shell syntax (this is |
---|
| 79 | built into perl rather then eshell) For instance the following command |
---|
| 80 | line will run the script test.pl with the output redirected to |
---|
| 81 | stdout_file, the errors to stderr_file and input from stdin_file. |
---|
| 82 | |
---|
| 83 | perl test.pl >stdout_file <stdin_file 2>stderr_file |
---|
| 84 | |
---|
[17034] | 85 | Alternatively you can use 2>&1 in order to add the standard error |
---|
[14544] | 86 | output to stdout. |
---|
| 87 | |
---|
[17034] | 88 | =head2 PATH Names |
---|
[14544] | 89 | |
---|
[17034] | 90 | ESHELL looks for executables in ?:/System/Programs. The SIS file |
---|
| 91 | installs perl in this special folder directory. The default drive and |
---|
| 92 | path are the same as folder the executable resides. The EPOC |
---|
| 93 | filesystem is case-preserving, not case-sensitive. |
---|
[14544] | 94 | |
---|
[17034] | 95 | The EPOC estdlib uses the ?: syntax for establishing a search order: |
---|
| 96 | First in C: (RAM), then on D: (CF Card, if present) and last in Z: |
---|
| 97 | (ROM). For instance ?:\a.txt searches for C:\a.txt, D:\a.txt (and |
---|
| 98 | Z:\a.txt) |
---|
[14544] | 99 | |
---|
[17034] | 100 | The perl @INC search path is implemented with '?:'. Your perl |
---|
| 101 | executable can live on a different drive than the perl library or even |
---|
| 102 | your scripts. |
---|
[14544] | 103 | |
---|
[17034] | 104 | ESHELL paths have to be written with backslashes '\', file arguments |
---|
| 105 | to perl with slashes '/'. Remember that I/O redirection is done |
---|
| 106 | internally in perl, so please use slashes for redirects. |
---|
[14544] | 107 | |
---|
[17034] | 108 | perl.exe C:/test.pl >C:/output.txt |
---|
[14544] | 109 | |
---|
[17034] | 110 | =head2 Editors |
---|
[14544] | 111 | |
---|
[17034] | 112 | A suitable text editor can be downloaded from symbian |
---|
| 113 | http://developer.epocworld.com/downloads/progs/Editor.zip |
---|
[14544] | 114 | |
---|
[17034] | 115 | =head2 Features |
---|
[14544] | 116 | |
---|
[17034] | 117 | The built-in function EPOC::getcwd returns the current directory. |
---|
[14544] | 118 | |
---|
[17034] | 119 | =head2 Restrictions |
---|
[14544] | 120 | |
---|
[17034] | 121 | Features are left out, because of restrictions of the POSIX support in |
---|
| 122 | EPOC: |
---|
[14544] | 123 | |
---|
[17034] | 124 | =over 4 |
---|
[14544] | 125 | |
---|
[17034] | 126 | =item * |
---|
[14544] | 127 | |
---|
[17034] | 128 | backquoting, pipes etc. |
---|
[14544] | 129 | |
---|
[17034] | 130 | =item * |
---|
[14544] | 131 | |
---|
[17034] | 132 | system() does not inherit ressources like: file descriptors, |
---|
| 133 | environment etc. |
---|
[14544] | 134 | |
---|
[17034] | 135 | =item * |
---|
[14544] | 136 | |
---|
[17034] | 137 | signal, kill, alarm. Do not try to use them. This may be |
---|
| 138 | impossible to implement on EPOC. |
---|
[14544] | 139 | |
---|
[17034] | 140 | =item * |
---|
| 141 | |
---|
| 142 | select is missing. |
---|
| 143 | |
---|
| 144 | =item * |
---|
| 145 | |
---|
| 146 | binmode does not exist. (No CR LF to LF translation for text files) |
---|
| 147 | |
---|
| 148 | =item * |
---|
| 149 | |
---|
| 150 | EPOC does not handle the notion of current drive and current |
---|
| 151 | directory very well (i.e. not at all, but it tries hard to emulate |
---|
| 152 | one) See PATH. |
---|
| 153 | |
---|
| 154 | =item * |
---|
| 155 | |
---|
| 156 | Heap is limited to 4MB. |
---|
| 157 | |
---|
| 158 | =item * |
---|
| 159 | |
---|
| 160 | Dynamic loading is not implemented. |
---|
| 161 | |
---|
| 162 | =back |
---|
| 163 | |
---|
| 164 | =head2 Compiling Perl 5 on the EPOC cross compiling environment |
---|
| 165 | |
---|
[14544] | 166 | Sorry, this is far too short. |
---|
| 167 | |
---|
[17034] | 168 | =over 4 |
---|
[14544] | 169 | |
---|
[17034] | 170 | =item * |
---|
[14544] | 171 | |
---|
[17034] | 172 | You will need the C++ SDK from http://developer.epocworld.com/. |
---|
[14544] | 173 | |
---|
[17034] | 174 | =item * |
---|
[14544] | 175 | |
---|
[17034] | 176 | You will need to set up the cross SDK from |
---|
| 177 | http://www.science-computing.de/o.flebbe/sdk |
---|
[14544] | 178 | |
---|
[17034] | 179 | =item * |
---|
[14544] | 180 | |
---|
[17034] | 181 | You may have to adjust config.sh (cc, cppflags) to reflect your epoc |
---|
| 182 | and SDK location. |
---|
| 183 | |
---|
| 184 | =item * |
---|
| 185 | |
---|
| 186 | Get the Perl sources from your nearest CPAN site. |
---|
| 187 | |
---|
| 188 | =item * |
---|
| 189 | |
---|
| 190 | Unpack the sources. |
---|
| 191 | |
---|
| 192 | =item * |
---|
| 193 | |
---|
| 194 | Build a native perl from this sources... Make sure to save the |
---|
| 195 | miniperl executable as miniperl.native. |
---|
| 196 | |
---|
| 197 | Start again from scratch |
---|
| 198 | |
---|
[14544] | 199 | cp epoc/* . |
---|
| 200 | ./Configure -S |
---|
[17034] | 201 | make |
---|
[14544] | 202 | cp miniperl.native miniperl |
---|
[17034] | 203 | make |
---|
| 204 | make ext/Errno/pm_to_blib |
---|
[14544] | 205 | perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \ |
---|
[17034] | 206 | lib/auto/Data/Dumper/Dumper.a \ |
---|
[14544] | 207 | lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \ |
---|
[17034] | 208 | lib/auto/Socket/Socket.a \ |
---|
| 209 | lib/auto/Fcntl/Fcntl.a lib/auto/Sys/Hostname/Hostname.a \ |
---|
| 210 | perl.a `cat ext.libs` |
---|
[14544] | 211 | perl createpkg.pl |
---|
| 212 | |
---|
[17034] | 213 | wine G:/bin/makesis perl.pkg perl.sis |
---|
[14544] | 214 | |
---|
[17034] | 215 | =back |
---|
[14544] | 216 | |
---|
[17034] | 217 | =head1 SUPPORT STATUS |
---|
[14544] | 218 | |
---|
[17034] | 219 | I'm offering this port "as is". You can ask me questions, but I can't |
---|
| 220 | guarantee I'll be able to answer them. |
---|
[14544] | 221 | |
---|
[17034] | 222 | =head1 AUTHOR |
---|
| 223 | |
---|
| 224 | Olaf Flebbe <o.flebbe@science-computing.de> |
---|
| 225 | http://www.science-computing.de/o.flebbe/perl/ |
---|
| 226 | |
---|
| 227 | =head1 LAST UPDATE |
---|
| 228 | |
---|
| 229 | 2001-02-26 |
---|
| 230 | |
---|
| 231 | =cut |
---|