even more Symbian
[p5sagit/p5-mst-13.2.git] / symbian / TODO
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, the second one ("arg1 arg2" in the above)
31   What does not work:
32   - I/O redirection
33   - piped open, in either direction
34   - qx/backtick/`
35   - fork/wait (these unlikely to ever work as in POSIX)
36   - IO redirection or filename globbing in system()
37     (since there is no POSIX shell beneath)
38   What might work in future:
39   - some I/O redirection
40   - exec() might be made to work
41   - Symbian::spawn("cmd args") returning a process id (what does Win32 do?) 
42   - Symbian::waitpid($spawned_pid)
43
44 =head2 Platform
45
46 - in S60 1.2 (at least in 3650 Nokia 3650 v3.11) setjmp/longjmp is
47   fragile (see Symbian FAQ-0929), intensive debugging and fix needed
48 - in S60 2.6 (at least in Nokia 6630 v4.03.11) launching scripts via
49   FExplorer does not open up the console
50
51 =head2 Unicode
52
53 - Symbian has Unicode filenames, and Unicode all over the place.
54 - Encode and the use of Symbian Unicode in general
55   tie into the overall usefulness of PerlIO.
56
57 =head2 Portability
58
59 - Slash versus Backslash: where does one need to use "\\"?
60   writing Perl applications, where can one get away with using "/" ?
61
62 =head2 Build
63
64 - make xsbuild.pl much more robust (for building external extensions)
65 - MakeMaker?  Pure PM, PM + XS?
66 - currently the PerlApp UID is in both config.pl (hardwired) and
67   in makesis.pl (computed), this is quite error prone
68 - Enable building also under Cygwin?
69
70 =head1 PACKAGING
71
72 - subdivide perlext.sis?
73 - pm-stripper: strip pod and comments, while inserting the appropriate
74   #line commands to keep linenumbers in sync.  Shaves off easily 50%
75   of the code, making install packages smaller.
76 - Get MakeMaker to create SIS packages?  In non-Win32?
77 - Symbian has APIs for opening .zip files
78 - Investigate Autrijus Tang's PAR format
79   http://www.autrijus.org/par-intro/
80
81 =head1 PerlBase
82
83 - review for proper Symbian coding practices
84
85 =head1 PerlApp
86
87 - In "Run" see how one could show also the file extensions.
88 - when autostarting also offer to display the file (via Notes?)
89   instead of installing/running it?
90 - Allow passing command line options to scripts being run?
91 - Add "OneLiner" menu item? (-e, -M) (requires a UI form)
92 - Terminate/Pause menu entries?
93 - review for proper Symbian coding practices
94
95 =head1 CORE LIBRARIES
96
97 - Fix Devel::PPPort (worth it?) (Note that there is D::PPP 3.x out by now)
98 - Fix Encode to not to have writeable data: seems to be tricky indeed
99   because of copious global non-const data.
100 - Verify that the modified File::Spec::Win32 does work in Symbian.
101   (File::Spec::Epoc does not seem to be relevant?)
102 - What does Cwd really do since the concept of cwd is a bit fuzzy in Symbian.
103 - What should Sys::Hostname return?  GPRS? BT? WLAN?
104 - ByteLoader problem: byterun.c does not see VERSION and XS_VERSION.
105 - POSIX problem: STDLIB POSIX is not that POSIX.
106
107 =head1 REGRESSION SUITE
108
109 - how to run the standard test suite on a Symbian device?
110
111 =head1 CPAN LIBRARIES
112
113 - Include/Package more modules (or work harder on getting CPAN.pm working?)
114   (but note that lib/**/*.pm is 3.5 megabytes, probably not worth including
115    all of it, even after pm-stripping):
116         - libnet
117         - Bundle::CPAN
118                 - Archive::Tar
119                 - Term::ReadKey (useless?)
120                 - Term::ReadLine (useless?)
121         - Bundle::LWP
122                 - URI
123                 - HTML::TagSet
124                 - HTML::Parser
125                         - HTML::Entities
126                 - HTML::HeadParser
127                 - LWP
128         - Crypt::SSLeay? (ssl?)
129         - IMAP?
130         - Net::Telnet?
131         - Archive::Zip?
132         - Mail::Send?
133         - Date::Calc?
134         - XML? XML::Simple? (expat?) (there is builtin xml support)
135         - RSS?
136         - DBI (DBD::???)
137         - DBD::SQLite? (sqlite?)
138         - SOAP? XML-RPC?
139
140 =head1 FUTURE POSSIBILITIES
141
142 - Remote console (Bluetooth/IR)
143 - S60 GUI support
144 - S60 PDA support
145 - Phone APIs
146 - S80
147 - UIQ