id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	lang	patch	platform
1058	auto::funcptr:  config step not needed if 'jitcapable' is never true	jkeenan	jkeenan	"Configuration step `auto::funcptr` is supposed to ''""[verify] that the compiler supports function pointer casts.""'' It only does something meaningful if the value of `jitcapable` in the Parrot::Configure object is a true value.
{{{
sub runstep {
    my ( $self, $conf ) = @_;

    my $jitcapable = $conf->data->get('jitcapable');

    if ($jitcapable) {
        $conf->cc_gen('config/auto/funcptr/test_c.in');
        eval { $conf->cc_build(); };

        if ( $@ || $conf->cc_run() !~ /OK/ ) {
            _cast_void_pointers_msg();
            exit(-1);
        }
        $conf->cc_clean();
        $self->_set_positive_result($conf);
    }

    return 1;
}
}}}
However, with the recent removal of JIT code, `jitcapable` is now hard-coded to `0` in auto::jit.  From ''config/auto/jit.pm'':
{{{
    $conf->data->set(
[snip]
        jitcapable     => 0,
        execcapable    => 0,
}}}
Hence, ''config/auto/funcptr.pm'' does not currently do anything meaningful.

In principle, we ''could'' leave it in our configuration system for the time being, so that when JIT comes back to life, auto::funcptr is ready to do its thing.

However, I dislike having code in the config system that does nothing.  I propose that we delete ''config/auto/funcptr.pm'', the related C probes and the related test file.

Discussion?  Please speak up, as otherwise I will delete these files in 7 days.  Note that I am not proposing to delete the `jitcapable` element in the Parrot::Configure object's data structure, as that would adversely impact code in ''config/gen/config_h/config_h.in'' and ''config/gen/config_pm/myconfig.in''.

Thank you very much.

kid51"	RFC	closed	normal		configure	1.6.0	medium	fixed	jit funcptr			applied	
