e8586d2efe2b665d3e9f2298988fa34e49bcfbd9
[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 - in the SDK the build creates DLLs in the system area
51   (e.g. epoc32\release\thumb\urel\io.dll), this is dangerous.  Prefix them?
52   (needs changes in xsbuild and DynaLoader/XSLoader)
53
54 =head2 Unicode
55
56 - Symbian has Unicode filenames, and Unicode all over the place.
57 - Encode and the use of Symbian Unicode in general
58   tie into the overall usefulness of PerlIO.
59
60 =head2 Portability
61
62 - Slash versus Backslash: where does one need to use "\\"?
63   writing Perl applications, where can one get away with using "/" ?
64
65 =head2 Build
66
67 - make xsbuild.pl much more robust (for building external extensions)
68 - MakeMaker?  Pure PM, PM + XS?
69 - currently the PerlApp UID is in both config.pl (hardwired) and
70   in makesis.pl (computed), this is quite error prone
71 - Enable building also under Cygwin?
72
73 =head1 PACKAGING
74
75 - subdivide perlext.sis?
76 - pm-stripper: strip pod and comments, while inserting the appropriate
77   #line commands to keep linenumbers in sync.  Shaves off easily 50%
78   of the code, making install packages smaller.
79 - Get MakeMaker to create SIS packages?  In non-Win32?
80 - Symbian has APIs for opening .zip files
81 - Investigate Autrijus Tang's PAR format
82   http://www.autrijus.org/par-intro/
83
84 =head1 PerlBase
85
86 - review for proper Symbian coding practices
87
88 =head1 PerlApp
89
90 - In "Run" see how one could show also the file extensions.
91 - when autostarting also offer to display the file (via Notes?)
92   instead of installing/running it?
93 - Allow passing command line options to scripts being run?
94 - Add "OneLiner" menu item? (-e, -M) (requires a UI form)
95 - Terminate/Pause menu entries?
96 - review for proper Symbian coding practices
97
98 =head1 CORE LIBRARIES
99
100 - Fix Devel::PPPort (worth it?) (Note that there is D::PPP 3.x out by now)
101 - Fix Encode to not to have writeable data: seems to be tricky indeed
102   because of copious global non-const data.
103 - Verify that the modified File::Spec::Win32 does work in Symbian.
104   (File::Spec::Epoc does not seem to be relevant?)
105 - What does Cwd really do since the concept of cwd is a bit fuzzy in Symbian.
106 - What should Sys::Hostname return?  GPRS? BT? WLAN?
107 - ByteLoader problem: byterun.c does not see VERSION and XS_VERSION.
108 - POSIX problem: STDLIB POSIX is not that POSIX.
109
110 =head1 REGRESSION SUITE
111
112 - how to run the standard test suite on a Symbian device?
113
114 =head1 CPAN LIBRARIES
115
116 - Include/Package more modules (or work harder on getting CPAN.pm working?)
117   (but note that lib/**/*.pm is 3.5 megabytes, probably not worth including
118    all of it, even after pm-stripping):
119         - libnet
120         - Bundle::CPAN
121                 - Archive::Tar
122                 - Term::ReadKey (useless?)
123                 - Term::ReadLine (useless?)
124         - Bundle::LWP
125                 - URI
126                 - HTML::TagSet
127                 - HTML::Parser
128                         - HTML::Entities
129                 - HTML::HeadParser
130                 - LWP
131         - Crypt::SSLeay? (ssl?)
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 (DBD::???)
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