This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
more about __attribute__
[perl5.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.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