96b81a6d56c695b219eb46fd2d469667d71fe62c
[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 ("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.6 (at least in Nokia 6630 v4.03.11) launching scripts via
47   FExplorer does not open up the console
48 - in the SDK the build creates DLLs in the system area
49   (e.g. epoc32\release\thumb\urel\io.dll), this is dangerous.  Prefix them?
50   (needs changes in xsbuild and DynaLoader/XSLoader)
51
52 =head2 Unicode
53
54 - Symbian has Unicode filenames, and Unicode all over the place.
55 - Encode and the use of Symbian Unicode in general
56   tie into the overall usefulness of PerlIO.
57
58 =head2 Portability
59
60 - Slash versus Backslash: where does one need to use "\\"?
61   writing Perl applications, where can one get away with using "/" ?
62
63 =head2 Build
64
65 - make xsbuild.pl much more robust (for building external extensions)
66 - MakeMaker?  Pure PM, PM + XS?
67 - currently the PerlApp UID is in both config.pl (hardwired) and
68   in makesis.pl (computed), this is quite error prone
69 - Enable building also under Cygwin?
70
71 =head1 PACKAGING
72
73 - @INC manipulation for sisify.pl
74 - subdivide perlext.sis?
75 - pm-stripper: strip pod and comments, while inserting the appropriate
76   #line commands to keep linenumbers in sync.  Shaves off easily 50%
77   of the code, making install packages smaller.
78 - Get MakeMaker to create SIS packages?  In non-Win32?
79 - Symbian has APIs for opening .zip files
80 - Investigate Autrijus Tang's PAR format
81   http://www.autrijus.org/par-intro/
82
83 =head1 PerlBase
84
85 - review for proper Symbian coding practices
86
87 =head1 PerlApp
88
89 - In "Run" see how one could show also the file extensions.
90 - when autostarting also offer to display the file (via Notes?)
91   instead of installing/running it?
92 - Allow passing command line options to scripts being run?
93 - Add "OneLiner" menu item? (-e, -M) (requires a UI form)
94 - Terminate/Pause menu entries?
95 - review for proper Symbian coding practices
96
97 =head1 CORE LIBRARIES
98
99 - Fix Devel::PPPort (worth it?) (Note that there is D::PPP 3.x out by now)
100 - Fix Encode to not to have writeable data: seems to be tricky indeed
101   because of copious global non-const data.
102 - Verify that the modified File::Spec::Win32 does work in Symbian.
103   (File::Spec::Epoc does not seem to be relevant?)
104 - What does Cwd really do since the concept of cwd is a bit fuzzy in Symbian.
105 - What should Sys::Hostname return?  GPRS? BT? WLAN?
106 - ByteLoader problem: byterun.c does not see VERSION and XS_VERSION.
107 - POSIX problem: STDLIB POSIX is not that POSIX.
108
109 =head1 REGRESSION SUITE
110
111 - how to run the standard test suite on a Symbian device?
112
113 =head1 CPAN LIBRARIES
114
115 - Include/Package more modules (or work harder on getting CPAN.pm working?)
116   (but note that lib/**/*.pm is 3.5 megabytes, probably not worth including
117    all of it, even after pm-stripping):
118         - libnet
119         - Bundle::CPAN
120                 - Archive::Tar
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         - IMAP?
132         - Net::Telnet?
133         - Archive::Zip?
134         - Mail::Send?
135         - Date::Calc?
136         - XML? XML::Simple? (expat?) (there is builtin xml support)
137         - RSS?
138         - DBI (DBD::???)
139         - DBD::SQLite? (sqlite?)
140         - SOAP? XML-RPC?
141
142 =head1 FUTURE POSSIBILITIES
143
144 - Remote console (Bluetooth/IR)
145 - S60 GUI support
146 - S60 PDA support
147 - Phone APIs
148 - S80
149 - UIQ