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> |
3a2f06e9 | 6 | http://www.linuxstart.com/~oflebbe/perl/perl5.html |
b250498f | 7 | 2000-05-15 |
4d2c4e07 | 8 | |
3a2f06e9 | 9 | ===================================================================== |
4d2c4e07 | 10 | Introduction |
3a2f06e9 | 11 | ===================================================================== |
4d2c4e07 | 12 | |
3a2f06e9 GS |
13 | EPOC is a OS for palmtops and mobile phones. For more informations look at: |
14 | http://www.symbian.com/ | |
4d2c4e07 | 15 | |
b250498f GS |
16 | This is a port of Perl version 5.6.0 to EPOC. It runs on the Perl |
17 | Series 5, Series 5mx and the Psion Revo and on the Ericson M128. | |
4d2c4e07 | 18 | |
3a2f06e9 | 19 | Features are left out, because of restrictions of the POSIX support. |
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 GS |
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 GS |
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 | |
3a2f06e9 GS |
35 | Copy eshell.exe from the same page you got perl to your EPOC device. |
36 | Start eshell.exe with a double tap. | |
ae2d1787 OF |
37 | |
38 | Now you can enter: perl -de 0 in order to run the perl debugger. If | |
3a2f06e9 GS |
39 | you are leaving perl, you get into the system screen. You have to |
40 | switch back manually to eshell.exe When perl is running, you will see | |
41 | a task with the name STDOUT in the task list. | |
42 | ||
43 | ====================================================================== | |
44 | IO Redirection | |
45 | ====================================================================== | |
ae2d1787 OF |
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 GS |
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 OF |
60 | |
61 | Pathnames to executables in eshell.exe have to be written with | |
3a2f06e9 GS |
62 | backslashes '\', file arguments to perl with slashes '/'. The default |
63 | drive of perl is the same as the drive perl.exe is located on, the | |
64 | default path seems to be '/'. | |
ae2d1787 OF |
65 | |
66 | i.e. command lines look a little bit funny: | |
67 | ||
68 | D:\perl.exe C:/test.pl >C:/output.txt | |
4d2c4e07 | 69 | |
3a2f06e9 GS |
70 | You can automatically search for file on all EPOC drives with a ? as |
71 | the driver letter. For instance ?:\a.txt seraches for C:\a.txt, | |
72 | D:\b.txt (and Z:\a.txt). | |
4d2c4e07 | 73 | |
3a2f06e9 GS |
74 | ====================================================================== |
75 | Editors | |
76 | ====================================================================== | |
4d2c4e07 | 77 | |
ae2d1787 OF |
78 | You may have a problem to create perl scripts. A cumbersome workaround |
79 | is to use the OPL Editor and exporting to text. | |
4d2c4e07 | 80 | |
3a2f06e9 GS |
81 | The OPL+ Editor is quite good. (Shareware: http://www.twiddlebit.com) |
82 | There is a port of vim around: | |
83 | http://www.starship.freeserve.co.uk/index.html | |
84 | ||
85 | ====================================================================== | |
86 | Restrictions | |
87 | ====================================================================== | |
4d2c4e07 | 88 | |
3a2f06e9 | 89 | The following things are left out of this perl port: |
4d2c4e07 | 90 | |
3a2f06e9 | 91 | + backquoting, pipes etc. |
ae2d1787 | 92 | |
3a2f06e9 GS |
93 | + system() does not inherit ressources like: file descriptors, |
94 | environment etc. | |
ae2d1787 | 95 | |
3a2f06e9 GS |
96 | + signal, kill, alarm. Do not try to use them. This may be |
97 | impossible to implement on EPOC. | |
ae2d1787 | 98 | |
3a2f06e9 | 99 | + select is missing. |
ae2d1787 | 100 | |
3a2f06e9 | 101 | + binmode does not exist. (No CR LF to LF translation for text files) |
ae2d1787 | 102 | |
3a2f06e9 GS |
103 | + EPOC does not handle the notion of current drive and current |
104 | directory very well (i.e. not at all, but it tries hard to emulate | |
105 | one) See PATH. | |
4d2c4e07 | 106 | |
3a2f06e9 GS |
107 | + You need the shell eshell.exe in order to run perl.exe and supply |
108 | it with arguments. | |
4d2c4e07 | 109 | |
3a2f06e9 | 110 | + Heap is limited to 4MB. |
4d2c4e07 | 111 | |
3a2f06e9 | 112 | =================================================================== |
4d2c4e07 | 113 | Compiling Perl 5 on the EPOC cross compiling envionment. |
3a2f06e9 | 114 | =================================================================== |
4d2c4e07 | 115 | |
3a2f06e9 | 116 | Sorry, this is far too short. |
4d2c4e07 | 117 | |
3a2f06e9 | 118 | You will need the C++ SDK from http://developer.epocworld.com/. |
4d2c4e07 | 119 | |
3a2f06e9 GS |
120 | You will need to set up the cross SDK from |
121 | http://www.linuxstart.com/~oflebbe | |
4d2c4e07 | 122 | |
3a2f06e9 GS |
123 | You may have to adjust config.sh (cc, cppflags) for your epoc |
124 | install location. | |
4d2c4e07 | 125 | |
3a2f06e9 | 126 | You may have to adjust config.sh for your cross SDK location |
4d2c4e07 | 127 | |
3a2f06e9 | 128 | Get the Perl sources from your nearest CPAN site. |
ae2d1787 | 129 | |
3a2f06e9 | 130 | Unpack the sources. |
ae2d1787 | 131 | |
f83d2536 | 132 | Build a native perl from this sources... |
3a2f06e9 | 133 | cp epoc/* . |
f83d2536 | 134 | ./Configure -S |
3a2f06e9 GS |
135 | make perl |
136 | cp miniperl.native miniperl | |
137 | make perl | |
f83d2536 | 138 | perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \ |
3a2f06e9 GS |
139 | lib/auto/Data/Dumper.a \ |
140 | lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \ | |
141 | lib/auto/Socket/Socket.a perl.a `cat ext.libs` | |
142 | perl createpkg.pl | |
143 | wine "G:/bin/makesis perl.pkg perl.sis" | |
4d2c4e07 | 144 | |
4d2c4e07 | 145 | |
3a2f06e9 | 146 | ==================================================================== |
f83d2536 | 147 | Wish List |
3a2f06e9 | 148 | ==================================================================== |
4d2c4e07 | 149 | |
3a2f06e9 GS |
150 | - Threads ? |
151 | - Acess to the GUI? | |
4d2c4e07 | 152 | |
3a2f06e9 | 153 | ==================================================================== |
4d2c4e07 | 154 | Support Status |
3a2f06e9 | 155 | ==================================================================== |
4d2c4e07 OF |
156 | |
157 | I'm offering this port "as is". You can ask me questions, but I can't | |
158 | guarantee I'll be able to answer them; I don't know much about Perl | |
b250498f | 159 | internals myself. |