On Sun, Jun 06, 2010 at 11:06:07PM +0200, Cosimo Streppone wrote:
> Hi all,
> 
> Just for fun, I'm trying to write a Digest::MD5 module for Rakudo.
> Right now I'm stuck with something like:
> 
>   sub test (Str $text) {
>       Q:PIR {
>           load_bytecode 'Digest/MD5.pbc'
>           $P0 = find_lex '$text'
>           $P1 = _md5sum($P0)
>           $S0 = _md5_hex($P1)
>           say $S0
>       }
>   }

The MD5.pbc module loads into a different HLL namespace from
Rakudo ('parrot' instead of 'perl6').  So, you probably want
'get_root_namespace' here.

    sub test($text) {
        Q:PIR {
            load_bytecode 'Digest/MD5.pbc'
            $P0 = find_lex '$text'
            $P1 = get_root_global ['parrot'], '_md5sum'
            $P2 = $P1($P0)
            $P1 = get_root_global ['parrot'], '_md5_hex'
            $S2 = $P1($P2)
            say $S0
        }
    }

    test('hello world');

Running this program for me (with --trace=1) results in a
segmentation fault somewhere in the _md5sum function.
I'm not sure where the problem is there, it could be that
the dynamic ops aren't being loaded correctly, or some other
problem.

Pm

Reply via email to