Following up on (True|False) vs Bool::$!

[email protected] ("Mark J. Reed")
Newsgroups perl.perl6.internals
Message-ID <[email protected]>
This is a Rakudo issue, which I found while following up on the p6l thread
about literals.  I'm not sure where the best place to ask about it is; I
already said something on p2.  I will be happy to open up an RT, but I'd
like to understand what's happening so I'll have better luck making sure
it's not a dupe.  Maybe I'm just getting too far ahead of the development
curve in terms of what I expect to work at this point.

Basically, "True" and "False" are acting weird.

I thought they were simply aliases for their fully-qualified brethren
Bool::True and Bool::False.  Is that supposed to be the case?  It is true in
pugs, FWTW.

But in current Rakudo they seem to be distinct objects:

$ perl6 -e 'say (True === Bool::True).perl'
Bool::False

... and oddly lacking in identity and metadata:

$ perl6 -e 'say True.WHAT'

$

I thought the empty ".WHAT" was interesting, so I tried this, too:

$ perl6 -e 'say True.WHAT.perl'

$

I didn't think any .perl method would return nothing, but apparently
Object.perl does, and nothing is overriding it in this case.

The overall effect feels like an object-vs-primitive dichotomy, with
broken/partial autoboxing.

Also, as I said in the original message to p2, even though True.WHAT.perl
succeeds in producing an empty string, this fails spectacularly:

$  perl6 -e 'say True.perl'
Method 'perl' not found for invocant of class ''
current instr.: '_block11' pc 26 (EVAL_13:17)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892
(src/PCT/HLLCompiler.pir:508)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1441
(src/PCT/HLLCompiler.pir:771)
called from Sub 'parrot;Perl6;Compiler;main' pc 16573 (perl6.pir:166)
perl6(37577) malloc: *** error for object 0x2f97160: Non-aligned pointer
being freed (2)
*** set a breakpoint in malloc_error_break to debug
Segmentation fault

Suggestions on next steps?  Assuming I have the problem properly identified,
I will be happy to submit an RT, write a test, dive into the PIR ...

-- 
Mark J. Reed <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.