Commit | Line | Data |
4d2c4e07 |
1 | ================================================= |
2 | Perl 5 README file for the EPOC operating system. |
3 | ================================================== |
4 | |
832c1cda |
5 | Olaf Flebbe <o.flebbe@gmx.de> |
4d2c4e07 |
6 | http://www.fortunecity.de/wolkenkratzer/trumpet/84/perl5.html |
ae2d1787 |
7 | Aug 25, 1999 |
4d2c4e07 |
8 | |
9 | Introduction |
10 | ------------ |
11 | |
ae2d1787 |
12 | This is a port of Perl version 5.005_60 to EPOC. |
4d2c4e07 |
13 | |
ae2d1787 |
14 | There are many features left out, because of restrictions of the POSIX |
4d2c4e07 |
15 | support in the SDK. |
16 | |
4d2c4e07 |
17 | |
ae2d1787 |
18 | Installation/Usage |
19 | ------------------ |
4d2c4e07 |
20 | |
ae2d1787 |
21 | You will need ~4MB free space in order to run perl. |
22 | |
23 | Install perl.sis on the EPOC machine (most likely a PSION Series |
24 | 5). If you do not know how to do that, you are on your own. You may |
25 | have to use a CF Card in order to work with perl. The perl debugger |
26 | uses more then 1.5 MB additional RAM. The heap is limited to 2 MB. |
27 | |
28 | Perl itself and its standard library are using 1.7MB disk space. I |
29 | left out UTF support and modules which will not work with this |
30 | version. (For details look into epoc/createpkg.pl). |
31 | |
32 | Copy eshell.exe to the same location as perl. Start eshell.exe with a |
33 | double click. |
34 | |
35 | Now you can enter: perl -de 0 in order to run the perl debugger. If |
36 | you are leaving perl, you have to switch back manually to eshell.exe |
37 | (With Ctrl-System or the button in the upper right corner of the |
38 | System screen.) When perl is running, you will see a task with the |
39 | name STDOUT in the task list. |
40 | |
41 | You can redirect the output with the UNIX bourne shell syntax (this is |
42 | built into perl rather then eshell) For instance the following command |
43 | line will run the script test.pl with the output redirected to |
44 | stdout_file, the errors to stderr_file and input from stdin_file. |
45 | |
46 | perl test.pl >stdout_file <stdin_file 2>stderr_file |
47 | |
48 | Alternativly you can use 2>&1 in order to add the standard error output to |
49 | stdout. |
50 | |
51 | Pathnames to executables in eshell.exe have to be written with |
52 | backslashes, file arguments to perl with slashes. The default drive of |
53 | perl is the same as the drive perl.exe is located on, the default path |
54 | is the path perl.exe is / (???). |
55 | |
56 | i.e. command lines look a little bit funny: |
57 | |
58 | D:\perl.exe C:/test.pl >C:/output.txt |
4d2c4e07 |
59 | |
ae2d1787 |
60 | In order to use Getopt::Long you have to autosplit this module by hand: run |
4d2c4e07 |
61 | |
ae2d1787 |
62 | \perl.exe \autosplit.pl in order to create the necessary files. |
4d2c4e07 |
63 | |
ae2d1787 |
64 | You may have a problem to create perl scripts. A cumbersome workaround |
65 | is to use the OPL Editor and exporting to text. |
4d2c4e07 |
66 | |
ae2d1787 |
67 | Problems |
68 | -------- |
4d2c4e07 |
69 | |
ae2d1787 |
70 | The following known problems exist: |
4d2c4e07 |
71 | |
ae2d1787 |
72 | 1) no support for system, backquoting, pipes etc. One cannot exec a |
73 | different process. |
74 | |
75 | 2) no signals, kill, alarm. Do not try to use them. This may be |
76 | impossible to implement on EPOC. |
77 | |
78 | 3) select is missing. |
79 | |
80 | 4) binmode does not exist. (No CR LF to LF translation for text files) |
81 | |
82 | 5) Only a stub Config.pm |
83 | |
84 | 6) EPOC does not handle the notion of current drive and current |
85 | directory very well (i.e. not at all, but it tries hard to emulate |
86 | one) |
4d2c4e07 |
87 | |
ae2d1787 |
88 | 7) sockets may hardly of any use. |
4d2c4e07 |
89 | |
ae2d1787 |
90 | 8) You need the shell eshell.exe in order to run perl.exe and supply |
91 | it with arguments. |
4d2c4e07 |
92 | |
93 | |
94 | Compiling Perl 5 on the EPOC cross compiling envionment. |
95 | -------------------------------------------------------- |
96 | |
97 | 0. You will need the C++ SDK from |
ae2d1787 |
98 | http://developer.epocworld.com/. Install it on a separate |
99 | drive. |
4d2c4e07 |
100 | |
ae2d1787 |
101 | 1. Get the Perl sources from your nearest CPAN site. |
102 | Unpack the sources of perl5.005_60 in the epoc development drive. |
103 | |
104 | 2. Copy all files in the directory perl5.005_60/epoc to perl5.005_60. |
4d2c4e07 |
105 | |
106 | 3. Check the perl.mmp file: It should have the correct locations for |
107 | project und subproject (see step 1) |
108 | |
109 | 4. Change to the EPOC development drive and run |
110 | makmake perl marm |
111 | nmake -f perl.marm |
112 | makesis perl.pkg perl5.005.sis |
113 | |
114 | 5. Beam the perl5.005.sis to the Psion5, install and enjoy! |
115 | |
ae2d1787 |
116 | You can use epoc\createpkg.pl to generate a new perl.pkg file. |
117 | |
118 | |
119 | Wish List |
4d2c4e07 |
120 | --------- |
121 | |
ae2d1787 |
122 | - Implement an OPX to get rid of eshell.exe. |
4d2c4e07 |
123 | |
ae2d1787 |
124 | - Implement system(), in order to run the tests. |
4d2c4e07 |
125 | |
126 | - Implement getprotcolbyname() and relatives. |
127 | |
4d2c4e07 |
128 | Support Status |
129 | -------------- |
130 | |
131 | I'm offering this port "as is". You can ask me questions, but I can't |
132 | guarantee I'll be able to answer them; I don't know much about Perl |
ae2d1787 |
133 | internals myself; |