in reply to compiling perl 5.38 on a solaris 10 system
G'day Luc,
Welcome to the Monastery.
[Note: Some of what follows repeats information already posted by ++syphilis.]
I was surprised by "Can't find Unicode property definition "M" in regex" because that refers to the Mark property in the General Category and has been around for a long time. For more information about that, see:
There are two versions of Text::Tabs which, as far as I can tell, might refer to your /sybdump_netapp/software/install/perl-5.38.0/cpan/Text-Tabs/lib/Text/Tabs.pm.
... our $VERSION = '2021.0814'; ... ... $offs = () = /\PM/g; ...
... our $VERSION = '2023.0511'; ... ... $offs = /^\pM/ + ( () = /\PM/g ); ...
The CPAN Tester Matrices for 2021.0814 and 2023.0511 both have many results under the solaris column and all are PASS (green swatch). This suggests to me that the problem does not lie with Solaris itself.
I have a variety of Perl versions available ranging from v5.30.0 to v5.38.0. I ran a number of tests with those two versions. It would help if you ran the same with Perl versions you have on your Solaris system. I'm running on Cygwin 3.4.7 (up-to-date as of two days ago):
$ uname -a CYGWIN_NT-10.0-19045 titan 3.4.7-1.x86_64 2023-06-16 14:04 UTC x86_64 +Cygwin
Firstly, some basic syntax checks.
$ perl -v | head -2 | tail -1 This is perl 5, version 30, subversion 0 (v5.30.0) built for cygwin-th +read-multi $ perl -MO=Deparse -e '$offs = () = /\PM/g;' $offs = () = /\PM/g; -e syntax OK $ perl -MO=Deparse -e '$offs = /^\pM/ + ( () = /\PM/g );' $offs = /^\pM/ + (() = /\PM/g); -e syntax OK $ perl -v | head -2 | tail -1 This is perl 5, version 38, subversion 0 (v5.38.0) built for cygwin-th +read-multi $ perl -MO=Deparse -e '$offs = () = /\PM/g;' $offs = () = /\PM/g; -e syntax OK $ perl -MO=Deparse -e '$offs = /^\pM/ + ( () = /\PM/g );' $offs = /^\pM/ + (() = /\PM/g); -e syntax OK
I then wrote this script to check that \pM and \PM were behaving correctly. (Unicode::UCD is a core module which you should already have installed.)
#!/usr/bin/env perl use strict; use warnings; use Unicode::UCD "charprop"; print "Perl version: $^V\n"; print "Example chars with Mark property:\n"; print "COMBINING GRAVE ACCENT U+0300: ", charprop("U+0300", "Gc"), + "\n"; print "COMBINING ENCLOSING KEYCAP U+20E3: ", charprop("U+20E3", "Gc"), + "\n"; my $x = "a\N{COMBINING GRAVE ACCENT}b\N{COMBINING ENCLOSING KEYCAP}c"; while ($x =~ /\pM/g) { print "Char at position @{[pos($x)-1]} HAS Mark property.\n"; } while ($x =~ /\PM/g) { print "Char at position @{[pos($x)-1]} NOT Mark property.\n"; }
Output with Perl v5.30.0:
Perl version: v5.30.0 Example chars with Mark property: COMBINING GRAVE ACCENT U+0300: Nonspacing_Mark COMBINING ENCLOSING KEYCAP U+20E3: Enclosing_Mark Char at position 1 HAS Mark property. Char at position 3 HAS Mark property. Char at position 0 NOT Mark property. Char at position 2 NOT Mark property. Char at position 4 NOT Mark property.
Output with Perl v5.38.0:
Perl version: v5.38.0 Example chars with Mark property: COMBINING GRAVE ACCENT U+0300: Nonspacing_Mark COMBINING ENCLOSING KEYCAP U+20E3: Enclosing_Mark Char at position 1 HAS Mark property. Char at position 3 HAS Mark property. Char at position 0 NOT Mark property. Char at position 2 NOT Mark property. Char at position 4 NOT Mark property.
Please fully report successes and failures, as you did with your initial post. Thankyou.
— Ken
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: compiling perl 5.38 on a solaris 10 system
by lucvdv (Novice) on Aug 14, 2023 at 16:06 UTC |