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
CommitLineData
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