This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add &CORE::glob
[perl5.git] / symbian / TODO
CommitLineData
49781f4a
AB
1=encoding utf8
2
27da23d5
JH
3=head1 BASE PORT
4
5=head2 Console
6
7- The Console only does "ASCII" input: e.g. pressing the "2"
49781f4a 8 key five times, "aaaaa", does not produce "ä" ("a diaeresis"),
27da23d5
JH
9 but instead the "2" key rotates through "abc2abc2...".
10 This is a pity because the Console is actually capable of full
11 Unicode input and output (if you have the fonts, that is). You
12 can verify this by entering e.g. the euro character, which is
13 U+20AC, well beyond U+00FF. I don't know why the full repertoire
14 of the keyboard is not available.
15- Enhance the console? (line editing, full x-y movement, history)
16- The role of the console needs to be rethought: the best way
17 would be to have the console visible in the same screen as
18 the GUI elements (an "embedded console"?)
19
20=head2 Core Language
21
22- the $^E does not work
23- select() does not work (not our fault)
24- starting external application: what now (0.1.0) works is:
25 - system("app");
26 - system("app&");
27 - and those with arguments:
28 - system("app arg1 arg2")
29 - system("app arg1 arg2 &")
30 but remember that a Symbian process does get only argv[0]
31 and argv[1]: all the arguments of the application are passed
c8f896e5 32 in as a single argument, the second one ("arg1 arg2" in the above)
27da23d5 33 What does not work:
c8f896e5 34 - I/O redirection
27da23d5
JH
35 - piped open, in either direction
36 - qx/backtick/`
37 - fork/wait (these unlikely to ever work as in POSIX)
38 - IO redirection or filename globbing in system()
39 (since there is no POSIX shell beneath)
40 What might work in future:
c8f896e5 41 - some I/O redirection
27da23d5
JH
42 - exec() might be made to work
43 - Symbian::spawn("cmd args") returning a process id (what does Win32 do?)
44 - Symbian::waitpid($spawned_pid)
45
46=head2 Platform
47
48- in S60 1.2 (at least in 3650 Nokia 3650 v3.11) setjmp/longjmp is
49 fragile (see Symbian FAQ-0929), intensive debugging and fix needed
27da23d5
JH
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)
d0d72822
JH
65 (see symbian\ext\README and symbian\ext\Moped\Msg\README)
66- now the .mmp functions both as input and as output - bad
27da23d5
JH
67- MakeMaker? Pure PM, PM + XS?
68- currently the PerlApp UID is in both config.pl (hardwired) and
69 in makesis.pl (computed), this is quite error prone
d0d72822
JH
70- Enable building also under Cygwin? (could be really hard,
71 the Symbian SDKs pretty much assume cmd.exe)
27da23d5
JH
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/
27da23d5
JH
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.
d0d72822
JH
91- How to allow passing command line options to scripts being run?
92- Terminate/Pause menu entries (to be used while the script is running)?
27da23d5
JH
93- review for proper Symbian coding practices
94
d0d72822 95=head2 All UIs
27da23d5 96
d0d72822
JH
97- Make it possible to call UI elements (or any other Symbianic
98 asynchronous services) from Perl.
27da23d5 99
d0d72822
JH
100 There is now a sample of enabling calling CPerlUi::TextQueryDialogL()
101 from Perl as PerlApp::TextQuery(), see symbian_utils.c. This, however,
102 does not work: calling the dialog code blocks so that the screen is not
103 redrawn at all. Perl should do both: "yield" so that the GUI framework
104 can redraw, but in the meanwhile Perl should wait for the completion
db5886f1
JH
105 (OK or Cancel) of the dialog, but Perl must not exit the current PL_op.
106 Welcome to the wonderful world of cooperative multitasking. The right
107 solution surely involves Active Objects. The problem may require having
108 a different Perl op dispatch loop than the standard and debug ones in
109 run.c and dump.c.
27da23d5 110
d0d72822
JH
111- menu/toolbar support
112- selection lists (single cf multi cf radio)
113- on/off (special case of two-item radio selection list)
114- forms (multicontrols)
115- "secret editor" (special case of text query)
116
117=head2 Series 60
118
119- in S60 2.6 (at least in Nokia 6630 v4.03.11) launching scripts via
120 FExplorer does not open up the console
121
122=head2 Series 80
123
124- On exit "PerlApp" gets Symbian USER Panic 44: "This panic is raised
125 by the Free() and FreeZ() member functions of an RHeap. It is caused
126 when the cell being freed overlaps the next cell on the free list
127 (i.e. the first cell on the free list with an address higher than the
128 one being freed)." Reason unknown.
129- Hotkey Newline so that it functions as 'OK' in dialogs
130
131=head2 UIQ
132
133- UIQ 3.0? UIQ 2.0? (now only tried in UIQ 2.1)
134- UIQ, at least UIQ 2.1, does not have "file select dialogs" since
135 "files" are supposed to be hidden from the user. Therefore, no
136 "Run" in PerlApp. (For similar stylistic reasons there is no "Exit".)
137- Long notes (e.g. the EPerlAppCommandAbout) are shown badly truncated.
27da23d5
JH
138
139=head1 CPAN LIBRARIES
140
141- Include/Package more modules (or work harder on getting CPAN.pm working?)
142 (but note that lib/**/*.pm is 3.5 megabytes, probably not worth including
143 all of it, even after pm-stripping):
144 - libnet
145 - Bundle::CPAN
d0d72822 146 - Archive::Tar (now included in 5.9.x)
27da23d5
JH
147 - Term::ReadKey (useless?)
148 - Term::ReadLine (useless?)
149 - Bundle::LWP
150 - URI
151 - HTML::TagSet
152 - HTML::Parser
153 - HTML::Entities
154 - HTML::HeadParser
155 - LWP
156 - Crypt::SSLeay? (ssl?)
27da23d5
JH
157 - IMAP?
158 - Net::Telnet?
159 - Archive::Zip?
160 - Mail::Send?
161 - Date::Calc?
162 - XML? XML::Simple? (expat?) (there is builtin xml support)
163 - RSS?
c042ae3a 164 - DBI (DBD::???)
27da23d5
JH
165 - DBD::SQLite? (sqlite?)
166 - SOAP? XML-RPC?
167
d0d72822
JH
168=head1 CORE LIBRARIES
169
170- Fix Devel::PPPort (worth it?) (Note that there is D::PPP 3.x out by now)
171- Fix Encode to not to have writeable data: seems to be tricky indeed
172 because of copious global non-const data.
173- Verify that the modified File::Spec::Win32 does work in Symbian.
174 (File::Spec::Epoc does not seem to be relevant?)
175- What does Cwd really do since the concept of cwd is a bit fuzzy in Symbian.
176- What should Sys::Hostname return? GPRS? BT? WLAN?
177- ByteLoader problem: byterun.c does not see VERSION and XS_VERSION.
178- POSIX problem: STDLIB POSIX is not that POSIX.
179
180=head1 REGRESSION SUITE
181
182- how to run the standard test suite on a Symbian device?
183
27da23d5
JH
184=head1 FUTURE POSSIBILITIES
185
d0d72822
JH
186- GUI support (problematic that the MVC model enforces an "application")
187 (name suggestion: Moped::Gui)
188 (see above for the need of sorting out the Active Objectedness)
189- Messaging support (sms:, mms:, mailto:, irdaobex:, btobex:,
190 cell location, WLAN)
191 (name suggestion: Moped::Msg)
192- PDA support (address book)
db5886f1 193 (name suggestion: Moped::PDA)
d0d72822 194- Device support (memory, camera)
db5886f1
JH
195 (name suggestion: Moped::Dev::Memory, Moped::Dev::Drives, Moped::Dev::Camera)
196- Phone APIs (e.g. how to catch an incoming call: BIO messaging)
197- Remote console (Bluetooth/IR/USB?)
d0d72822 198