This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
APItest/t/utf8.t: Fix some convoluted code
[perl5.git] / README.symbian
index 3be86ae..c111f30 100644 (file)
@@ -4,7 +4,7 @@ designed to be readable as is.
 
 =head1 NAME
 
-README.symbian - Perl version 5 on Symbian OS
+perlsymbian - Perl version 5 on Symbian OS
 
 =head1 DESCRIPTION
 
@@ -30,182 +30,182 @@ mainly as demonstrations.
 
 (0) You need to have the appropriate Symbian SDK installed.
 
-    These instructions have been tested under various Nokia Series 60
-    Symbian SDKs (1.2 to 2.6, 2.8 should also work, 1.2 compiles but
-    does not work), Series 80 2.0, and Nokia 7710 (Series 90) SDK.
-    You can get the SDKs from Forum Nokia (L<http://www.forum.nokia.com/>).
-    A very rough port ("it compiles") to UIQ 2.1 has also been made.
+These instructions have been tested under various Nokia Series 60
+Symbian SDKs (1.2 to 2.6, 2.8 should also work, 1.2 compiles but
+does not work), Series 80 2.0, and Nokia 7710 (Series 90) SDK.
+You can get the SDKs from Forum Nokia (L<http://www.forum.nokia.com/>).
+A very rough port ("it compiles") to UIQ 2.1 has also been made.
 
-    A prerequisite for any of the SDKs is to install ActivePerl
-    from ActiveState, L<http://www.activestate.com/Products/ActivePerl/>
+A prerequisite for any of the SDKs is to install ActivePerl
+from ActiveState, L<http://www.activestate.com/Products/ActivePerl/>
 
-    Having the SDK installed also means that you need to have either
-    the Metrowerks CodeWarrior installed (2.8 and 3.0 were used in testing)
-    or the Microsoft Visual C++ 6.0 installed (SP3 minimum, SP5 recommended).
+Having the SDK installed also means that you need to have either
+the Metrowerks CodeWarrior installed (2.8 and 3.0 were used in testing)
+or the Microsoft Visual C++ 6.0 installed (SP3 minimum, SP5 recommended).
 
-    Note that for example the Series 60 2.0 VC SDK installation talks
-    about ActivePerl build 518, which does no more (as of mid-2005) exist
-    at the ActiveState website.  The ActivePerl 5.8.4 build 810 was
-    used successfully for compiling Perl on Symbian.  The 5.6.x ActivePerls
-    do not work.
+Note that for example the Series 60 2.0 VC SDK installation talks
+about ActivePerl build 518, which does no more (as of mid-2005) exist
+at the ActiveState website.  The ActivePerl 5.8.4 build 810 was
+used successfully for compiling Perl on Symbian.  The 5.6.x ActivePerls
+do not work.
 
-    Other SDKs or compilers like Visual.NET, command-line-only
-    Visual.NET, Borland, GnuPoc, or sdk2unix have not been tried.
+Other SDKs or compilers like Visual.NET, command-line-only
+Visual.NET, Borland, GnuPoc, or sdk2unix have not been tried.
 
-    These instructions almost certainly won't work with older Symbian
-    releases or other SDKs.  Patches to get this port running in other
-    releases, SDKs, compilers, platforms, or devices are naturally welcome.
+These instructions almost certainly won't work with older Symbian
+releases or other SDKs.  Patches to get this port running in other
+releases, SDKs, compilers, platforms, or devices are naturally welcome.
 
 (1) Get a Perl source code distribution (for example the file
-    perl-5.9.2.tar.gz is fine) from L<http://www.cpan.org/src/>
-    and unpack it in your the C:/Symbian directory of your Windows
-    system.
+perl-5.9.2.tar.gz is fine) from L<http://www.cpan.org/src/>
+and unpack it in your the C:/Symbian directory of your Windows
+system.
 
 (2) Change to the perl source directory.
 
-       cd c:\Symbian\perl-5.x.x
+    cd c:\Symbian\perl-5.x.x
 
 (3) Run the following script using the perl coming with the SDK
 
-       perl symbian\config.pl
+    perl symbian\config.pl
 
-    You must use the cmd.exe, the Cygwin shell will not work.
-    The PATH must include the SDK tools, including a Perl,
-    which should be the case under cmd.exe.  If you do not
-    have that, see the end of symbian\sdk.pl for notes of
-    how your environment should be set up for Symbian compiles.
+You must use the cmd.exe, the Cygwin shell will not work.
+The PATH must include the SDK tools, including a Perl,
+which should be the case under cmd.exe.  If you do not
+have that, see the end of symbian\sdk.pl for notes of
+how your environment should be set up for Symbian compiles.
 
 (4) Build the project, either by
 
-       make all
+     make all
 
-    in cmd.exe or by using either the Metrowerks CodeWarrior
-    or the Visual C++ 6.0, or the Visual Studio 8 (the Visual C++
-    2005 Express Edition works fine).
+in cmd.exe or by using either the Metrowerks CodeWarrior
+or the Visual C++ 6.0, or the Visual Studio 8 (the Visual C++
+2005 Express Edition works fine).
 
-    If you use the VC IDE, you will have to run F<symbian\config.pl>
-    first using the cmd.exe, and then run 'make win.mf vc6.mf' to generate
-    the VC6 makefiles and workspaces.  "make vc6" will compile for the VC6,
-    and "make cw" for the CodeWarrior.
+If you use the VC IDE, you will have to run F<symbian\config.pl>
+first using the cmd.exe, and then run 'make win.mf vc6.mf' to generate
+the VC6 makefiles and workspaces.  "make vc6" will compile for the VC6,
+and "make cw" for the CodeWarrior.
 
-    The following SDK and compiler configurations and Nokia phones were
-    tested at some point in time (+ = compiled and PerlApp run, - = not),
-    both for Perl 5.8.x and 5.9.x:
+The following SDK and compiler configurations and Nokia phones were
+tested at some point in time (+ = compiled and PerlApp run, - = not),
+both for Perl 5.8.x and 5.9.x:
 
-        SDK     | VC | CW |
-        --------+----+----+---
-        S60 1.2 | +  | +  | 3650 (*)
-        S60 2.0 | +  | +  | 6600
-        S60 2.1 | -  | +  | 6670
-        S60 2.6 | +  | +  | 6630    
-        S60 2.8 | +  | +  | (not tested in a device)
-        S80 2.6 | -  | +  | 9300
-        S90 1.1 | +  | -  | 7710
-        UIQ 2.1 | -  | +  | (not tested in a device)
+     SDK     | VC | CW |
+     --------+----+----+---
+     S60 1.2 | +  | +  | 3650 (*)
+     S60 2.0 | +  | +  | 6600
+     S60 2.1 | -  | +  | 6670
+     S60 2.6 | +  | +  | 6630
+     S60 2.8 | +  | +  | (not tested in a device)
+     S80 2.6 | -  | +  | 9300
+     S90 1.1 | +  | -  | 7710
+     UIQ 2.1 | -  | +  | (not tested in a device)
 
   (*) Compiles but does not work, unfortunately, a problem with Symbian.
+ (*) Compiles but does not work, unfortunately, a problem with Symbian.
 
-    If you are using the 'make' directly, it is the GNU make from the SDKs,
-    and it will invoke the right make commands for the Windows emulator
-    build and the Arm target builds ('thumb' by default) as necessary.
+If you are using the 'make' directly, it is the GNU make from the SDKs,
+and it will invoke the right make commands for the Windows emulator
+build and the Arm target builds ('thumb' by default) as necessary.
 
-    The build scripts assume the 'absolute style' SDK installs under C:,
-    the 'subst style' will not work.
+The build scripts assume the 'absolute style' SDK installs under C:,
+the 'subst style' will not work.
 
-    If using the VC IDE, to build use for example the File->Open Workspace->
-    C:\Symbian\8.0a\S60_2nd_FP2\epoc32\build\symbian\perl\perl\wins\perl.dsw
-    The emulator binaries will appear in the same directory.
+If using the VC IDE, to build use for example the File->Open Workspace->
+C:\Symbian\8.0a\S60_2nd_FP2\epoc32\build\symbian\perl\perl\wins\perl.dsw
+The emulator binaries will appear in the same directory.
 
-    If using the VC IDE, you will a lot of warnings in the beginning of
-    the build because a lot of headers mentioned by the source cannot
-    be found, but this is not serious since those headers are not used.
+If using the VC IDE, you will a lot of warnings in the beginning of
+the build because a lot of headers mentioned by the source cannot
+be found, but this is not serious since those headers are not used.
 
-    The Metrowerks will give a lot of warnings about unused variables and
-    empty declarations, you can ignore those.
+The Metrowerks will give a lot of warnings about unused variables and
+empty declarations, you can ignore those.
 
-    When the Windows and Arm DLLs are built do not be scared by a very long
-    messages whizzing by: it is the "export freeze" phase where the whole
-    (rather large) API of Perl is listed.
+When the Windows and Arm DLLs are built do not be scared by a very long
+messages whizzing by: it is the "export freeze" phase where the whole
+(rather large) API of Perl is listed.
 
-    Once the build is completed you need to create the DLL SIS file by
+Once the build is completed you need to create the DLL SIS file by
 
-       make perldll.sis
+     make perldll.sis
 
-    which will create the file perlXYZ.sis (the XYZ being the Perl version)
-    which you can then install into your Symbian device: an easy way
-    to do this is to send them via Bluetooth or infrared and just open
-    the messages.
+which will create the file perlXYZ.sis (the XYZ being the Perl version)
+which you can then install into your Symbian device: an easy way
+to do this is to send them via Bluetooth or infrared and just open
+the messages.
 
-    Since the total size of all Perl SIS files once installed is
-    over 2 MB, it is recommended to do the installation into a
-    memory card (drive E:) instead of the C: drive.
+Since the total size of all Perl SIS files once installed is
+over 2 MB, it is recommended to do the installation into a
+memory card (drive E:) instead of the C: drive.
 
-    The size of the perlXYZ.SIS is about 370 kB but once it is in the
-    device it is about one 750 kB (according to the application manager).
+The size of the perlXYZ.SIS is about 370 kB but once it is in the
+device it is about one 750 kB (according to the application manager).
 
-    The perlXYZ.sis includes only the Perl DLL: to create an additional
-    SIS file which includes some of the standard (pure) Perl libraries,
-    issue the command
+The perlXYZ.sis includes only the Perl DLL: to create an additional
+SIS file which includes some of the standard (pure) Perl libraries,
+issue the command
 
-        make perllib.sis
+     make perllib.sis
 
-    Some of the standard Perl libraries are included, but not all:
-    see L</HISTORY> or F<symbian\install.cfg> for more details
-    (250 kB -> 700 kB).
+Some of the standard Perl libraries are included, but not all:
+see L</HISTORY> or F<symbian\install.cfg> for more details
+(250 kB -> 700 kB).
 
-    Some of the standard Perl XS extensions (see L</HISTORY> are
-    also available:
+Some of the standard Perl XS extensions (see L</HISTORY> are
+also available:
 
-        make perlext.sis
+     make perlext.sis
 
-    which will create perlXYZext.sis (290 kB -> 770 kB).
+which will create perlXYZext.sis (290 kB -> 770 kB).
 
-    To compile the demonstration application PerlApp you need first to
-    install the Perl headers under the SDK.
+To compile the demonstration application PerlApp you need first to
+install the Perl headers under the SDK.
 
-    To install the Perl headers and the class CPerlBase documentation
-    so that you no more need the Perl sources around to compile Perl
-    applications using the SDK:
+To install the Perl headers and the class CPerlBase documentation
+so that you no more need the Perl sources around to compile Perl
+applications using the SDK:
 
-        make sdkinstall
+     make sdkinstall
 
-    The destination directory is C:\Symbian\perl\X.Y.Z.  For more
-    details, see F<symbian\PerlBase.pod>.
+The destination directory is C:\Symbian\perl\X.Y.Z.  For more
+details, see F<symbian\PerlBase.pod>.
 
-    Once the headers have been installed, you can create a SIS for
-    the PerlApp:
+Once the headers have been installed, you can create a SIS for
+the PerlApp:
 
-        make perlapp.sis
+     make perlapp.sis
 
-    The perlapp.sis (11 kB -> 16 kB) will be built in the symbian
-    subdirectory, but a copy will also be made to the main directory.
+The perlapp.sis (11 kB -> 16 kB) will be built in the symbian
+subdirectory, but a copy will also be made to the main directory.
 
-    If you want to package the Perl DLLs (one for WINS, one for ARMI),
-    the headers, and the documentation:
+If you want to package the Perl DLLs (one for WINS, one for ARMI),
+the headers, and the documentation:
 
-        make perlsdk.zip
+     make perlsdk.zip
 
-    which will create perlXYZsdk.zip that can be used in another
-    Windows system with the SDK, without having to compile Perl in
-    that system.
+which will create perlXYZsdk.zip that can be used in another
+Windows system with the SDK, without having to compile Perl in
+that system.
 
-    If you want to package the PerlApp sources:
+If you want to package the PerlApp sources:
 
-        make perlapp.zip
+     make perlapp.zip
 
-    If you want to package the perl.exe and miniperl.exe, you
-    can use the perlexe.sis and miniperlexe.sis make targets.
-    You also probably want the perllib.sis for the libraries
-    and maybe even the perlapp.sis for the recognizer.
+If you want to package the perl.exe and miniperl.exe, you
+can use the perlexe.sis and miniperlexe.sis make targets.
+You also probably want the perllib.sis for the libraries
+and maybe even the perlapp.sis for the recognizer.
 
-    The make target 'allsis' combines all the above SIS targets.
+The make target 'allsis' combines all the above SIS targets.
 
-    To clean up after compilation you can use either of
+To clean up after compilation you can use either of
 
-        make clean
-        make distclean
+     make clean
+     make distclean
 
-    depending on how clean you want to be.
+depending on how clean you want to be.
 
 =head2 Compilation problems
 
@@ -349,28 +349,30 @@ The Symbian port is licensed under the same terms as Perl itself.
 
 (This will show as "0.01" in the Symbian Installer.)
 
-  - The console window is a very simple console indeed: one can
-    get the newline with "000" and the "C" button is a backspace.
-    Do not expect a terminal capable of vt100 or ANSI sequences.
-    The console is also "ASCII", you cannot input e.g. any accented
-    letters.  Because of obvious physical constraints the console is
-    also very small: (in Nokia 6600) 22 columns, 17 rows.
-  - The following libraries are available:
-    AnyDBM_File AutoLoader base Carp Config Cwd constant
-    DynaLoader Exporter File::Spec integer lib strict Symbol
-    vars warnings XSLoader
-  - The following extensions are available:
-    attributes Compress::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 DynaLoader
-    Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64
-    PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes
-  - The following extensions are missing for various technical reasons:
-    B ByteLoader Devel::DProf Devel::PPPort Encode GDBM_File
-    I18N::Langinfo IPC::SysV NDBM_File Opcode PerlIO::encoding POSIX
-    re Safe Sys::Hostname Sys::Syslog
-    threads threads::shared Unicode::Normalize
-  - Using MakeMaker or the Module::* to build and install modules
-    is not supported.
-  - Building XS other than the ones in the core is not supported.
+ - The console window is a very simple console indeed: one can
+   get the newline with "000" and the "C" button is a backspace.
+   Do not expect a terminal capable of vt100 or ANSI sequences.
+   The console is also "ASCII", you cannot input e.g. any accented
+   letters.  Because of obvious physical constraints the console is
+   also very small: (in Nokia 6600) 22 columns, 17 rows.
+ - The following libraries are available:
+   AnyDBM_File AutoLoader base Carp Config Cwd constant
+   DynaLoader Exporter File::Spec integer lib strict Symbol
+   vars warnings XSLoader
+ - The following extensions are available:
+   attributes Compress::Zlib Cwd Data::Dumper Devel::Peek
+   Digest::MD5 DynaLoader Fcntl File::Glob Filter::Util::Call
+   IO List::Util MIME::Base64
+   PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes
+ - The following extensions are missing for various technical
+   reasons:
+   B ByteLoader Devel::DProf Devel::PPPort Encode GDBM_File
+   I18N::Langinfo IPC::SysV NDBM_File Opcode PerlIO::encoding POSIX
+   re Safe Sys::Hostname Sys::Syslog
+   threads threads::shared Unicode::Normalize
+ - Using MakeMaker or the Module::* to build and install modules
+   is not supported.
+ - Building XS other than the ones in the core is not supported.
 
 Since this is 0.something release, any future releases are almost
 guaranteed to be binary incompatible.  As a sign of this the Symbian