develooper Front page | perl.perl5.porters | Postings from September 2013

[perl #119745] Remove hints/titanos.sh

Thread Next
From:
Nicholas Clark
Date:
September 12, 2013 08:34
Subject:
[perl #119745] Remove hints/titanos.sh
Message ID:
rt-3.6.HEAD-1873-1378974871-1944.119745-75-0@perl.org
# New Ticket Created by  Nicholas Clark 
# Please include the string:  [perl #119745]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=119745 >


We can safely remove hints/titanos.sh

It seems to refer to the OS for this hardware:

http://en.wikipedia.org/wiki/Ardent_Computer#Kubota_Pacific_Computers

The hints file was added by patch 20 to perl 4, and then updated with perl 5
changes to Configure variables. However, I doubt that perl 5.000 was tested
on titanos, as I doubt that it built then, and definitely won't have built
there since this commit.

commit c90c0ff485be15aaf3ee20121299cb014ee6b1ff
Author: Perl 5 Porters <perl5-porters@africa.nicoh.com>
Date:   Fri May 16 10:15:00 1997 +1200

    [inseparable changes from match from perl-5.003_99a to perl5.004]


The titanos hits file is the only hints file that references voidflags:

$ grep voidflags hints/*
hints/titanos.sh:voidflags='7'


More importantly, it sets it to a value which is not 15. 0x08 is missing.
That means that the compiler can't do generic void pointers.

In *theory*, the whole voidused/voidflags is supposed to work around this
by substituting 'int' for 'void' where the compiler's void support is borked,
like this.

#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
#define void int		/* is void to be avoided? */
#define M_VOID			/* Xenix strikes again */
#endif


But perl.h has only been declaring VOIDUSED as 1, not 15, since 1.000:

#define VOIDUSED 1



This was true until perl 4.0.36 - only platform specific source code was
using generic void pointers. But 5.000 adds const void * parameters in
pp_sys.c (which the titanos compiler probably chokes on), and 5.004 adds
this in cop.h

--- a/cop.h
+++ b/cop.h
@@ -210,7 +210,7 @@ struct subst {
     char *     sbu_s;
     char *     sbu_m;
     char *     sbu_strend;
-    char *     sbu_subbase;
+    void *     sbu_rxres;
     REGEXP *   sbu_rx;
 };
 #define sb_iters       cx_u.cx_subst.sbu_iters


which it will definitely choke on. So it can't possibly have worked for 16
years. So it should go. Given that it's probably never worked on Perl 5, I
don't think that we need to increase the documentation size mentioning it.


(As should all our references to voidflags/voidused. They've actually been
useless for at least 16 years, if not 19)

Nicholas Clark


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About