Commit | Line | Data |
---|---|---|
27da23d5 JH |
1 | =head1 BASE PORT |
2 | ||
3 | =head2 Console | |
4 | ||
5 | - The Console only does "ASCII" input: e.g. pressing the "2" | |
6 | key five times, "aaaaa", does not produce "รค" ("a diaeresis"), | |
7 | but instead the "2" key rotates through "abc2abc2...". | |
8 | This is a pity because the Console is actually capable of full | |
9 | Unicode input and output (if you have the fonts, that is). You | |
10 | can verify this by entering e.g. the euro character, which is | |
11 | U+20AC, well beyond U+00FF. I don't know why the full repertoire | |
12 | of the keyboard is not available. | |
13 | - Enhance the console? (line editing, full x-y movement, history) | |
14 | - The role of the console needs to be rethought: the best way | |
15 | would be to have the console visible in the same screen as | |
16 | the GUI elements (an "embedded console"?) | |
17 | ||
18 | =head2 Core Language | |
19 | ||
20 | - the $^E does not work | |
21 | - select() does not work (not our fault) | |
22 | - starting external application: what now (0.1.0) works is: | |
23 | - system("app"); | |
24 | - system("app&"); | |
25 | - and those with arguments: | |
26 | - system("app arg1 arg2") | |
27 | - system("app arg1 arg2 &") | |
28 | but remember that a Symbian process does get only argv[0] | |
29 | and argv[1]: all the arguments of the application are passed | |
30 | in as a single argument ("arg1 arg2" in the above) | |
31 | What does not work: | |
32 | - piped open, in either direction | |
33 | - qx/backtick/` | |
34 | - fork/wait (these unlikely to ever work as in POSIX) | |
35 | - IO redirection or filename globbing in system() | |
36 | (since there is no POSIX shell beneath) | |
37 | What might work in future: | |
38 | - exec() might be made to work | |
39 | - Symbian::spawn("cmd args") returning a process id (what does Win32 do?) | |
40 | - Symbian::waitpid($spawned_pid) | |
41 | ||
42 | =head2 Platform | |
43 | ||
44 | - in S60 1.2 (at least in 3650 Nokia 3650 v3.11) setjmp/longjmp is | |
45 | fragile (see Symbian FAQ-0929), intensive debugging and fix needed | |
46 | - in S60 2.x (at least in Nokia 6630 v4.03.11) launching scripts via | |
47 | FExplorer does not open up the console | |
48 | ||
49 | =head2 Unicode | |
50 | ||
51 | - Symbian has Unicode filenames, and Unicode all over the place. | |
52 | - Encode and the use of Symbian Unicode in general | |
53 | tie into the overall usefulness of PerlIO. | |
54 | ||
55 | =head2 Portability | |
56 | ||
57 | - Slash versus Backslash: where does one need to use "\\"? | |
58 | writing Perl applications, where can one get away with using "/" ? | |
59 | ||
60 | =head2 Build | |
61 | ||
62 | - make xsbuild.pl much more robust (for building external extensions) | |
63 | - MakeMaker? Pure PM, PM + XS? | |
64 | - currently the PerlApp UID is in both config.pl (hardwired) and | |
65 | in makesis.pl (computed), this is quite error prone | |
66 | - Enable building also under Cygwin? | |
67 | ||
68 | =head1 PACKAGING | |
69 | ||
70 | - subdivide perlext.sis? | |
71 | - pm-stripper: strip pod and comments, while inserting the appropriate | |
72 | #line commands to keep linenumbers in sync. Shaves off easily 50% | |
73 | of the code, making install packages smaller. | |
74 | - Get MakeMaker to create SIS packages? In non-Win32? | |
75 | - Symbian has APIs for opening .zip files | |
76 | - Investigate Autrijus Tang's PAR format | |
77 | http://www.autrijus.org/par-intro/ | |
78 | - "makeplsis" to wrap a script.pl or dir/script.pl as a stand-alone | |
79 | application (and SIS): unshift the "application home" to @INC and | |
80 | chdir to that, then run the script.pl (renamed as default.pl) | |
81 | ||
82 | =head1 PerlBase | |
83 | ||
84 | - review for proper Symbian coding practices | |
85 | ||
86 | =head1 PerlApp | |
87 | ||
88 | - In "Run" see how one could show also the file extensions. | |
89 | - when autostarting also offer to display the file (via Notes?) | |
90 | instead of installing/running it? | |
91 | - Allow passing command line options to scripts being run? | |
92 | - Add "OneLiner" menu item? (-e, -M) (requires a UI form) | |
93 | - Terminate/Pause menu entries? | |
94 | - review for proper Symbian coding practices | |
95 | ||
96 | =head1 CORE LIBRARIES | |
97 | ||
98 | - Fix Devel::PPPort (worth it?) (Note that there is D::PPP 3.x out by now) | |
99 | - Fix Encode to not to have writeable data: seems to be tricky indeed | |
100 | because of copious global non-const data. | |
101 | - Verify that the modified File::Spec::Win32 does work in Symbian. | |
102 | (File::Spec::Epoc does not seem to be relevant?) | |
103 | - What does Cwd really do since the concept of cwd is a bit fuzzy in Symbian. | |
104 | - What should Sys::Hostname return? GPRS? BT? WLAN? | |
105 | - ByteLoader problem: byterun.c does not see VERSION and XS_VERSION. | |
106 | - POSIX problem: STDLIB POSIX is not that POSIX. | |
107 | ||
108 | =head1 REGRESSION SUITE | |
109 | ||
110 | - how to run the standard test suite on a Symbian device? | |
111 | ||
112 | =head1 CPAN LIBRARIES | |
113 | ||
114 | - Include/Package more modules (or work harder on getting CPAN.pm working?) | |
115 | (but note that lib/**/*.pm is 3.5 megabytes, probably not worth including | |
116 | all of it, even after pm-stripping): | |
117 | - libnet | |
118 | - Bundle::CPAN | |
119 | - Archive::Tar | |
120 | - Compress::Zlib (zlib?) (there is builtin gz support) | |
121 | - Term::ReadKey (useless?) | |
122 | - Term::ReadLine (useless?) | |
123 | - Bundle::LWP | |
124 | - URI | |
125 | - HTML::TagSet | |
126 | - HTML::Parser | |
127 | - HTML::Entities | |
128 | - HTML::HeadParser | |
129 | - LWP | |
130 | - Crypt::SSLeay? (ssl?) | |
131 | - IO::Zlib? (zlib?) | |
132 | - IMAP? | |
133 | - Net::Telnet? | |
134 | - Archive::Zip? | |
135 | - Mail::Send? | |
136 | - Date::Calc? | |
137 | - XML? XML::Simple? (expat?) (there is builtin xml support) | |
138 | - RSS? | |
139 | - DBI | |
140 | - DBD::SQLite? (sqlite?) | |
141 | - SOAP? XML-RPC? | |
142 | ||
143 | =head1 FUTURE POSSIBILITIES | |
144 | ||
145 | - Remote console (Bluetooth/IR) | |
146 | - S60 GUI support | |
147 | - S60 PDA support | |
148 | - Phone APIs | |
149 | - S80 | |
150 | - UIQ |