Skip to content

Instantly share code, notes, and snippets.

$ make
[...]
make: *** No rule to make target `"/usr/local/bin"/"cygparrot-5.0.0.dll"', needed by `"cygparrot-5.0.0.dll"'. Stop.
$ ls /usr/local/bin/cygparrot-5.0.0.dll
/usr/local/bin/cygparrot-5.0.0.dll
@gerdr
gerdr / notes.md
Last active December 12, 2015 09:49 — forked from anonymous/notes.md
random stuff that needs doing on the road to Parrot 6

Easy(-ish) stuff

  • resurrect tools/build/nativecall.pl (removed in Parrot 2.1.0) or port tools/dev/nci_thunk_gen.pir to Perl5 ( I've started with the latter, but progress is slow as it's boring )

    this is desirable as nci_thunk_gen.pir pulls in TGE via compilers/data_json

  • put the axe to runtime/parrot/library

  • migrate ops2c to NQP proper (or even Perl6)

it should be feasible as the files generated for NQP dynops can be checked-in the same way the Parrot ones already are

@gerdr
gerdr / deps.txt
Last active December 12, 2015 09:19
pir deps for ext/:compiler/
ops2c.pir
.include "except_types.pasm"
load_bytecode "opsc.pbc"
load_bytecode "Getopt/Obj.pbc"
ext/nqp-rx/src/stage0/HLL-s0.pir
load_bytecode 'Regex.pbc'
.include 'cclass.pasm'
.include "except_types.pasm"
load_bytecode "PCT/HLLCompiler.pbc"
use v6;
sub largest-prime-factor($n is copy) {
for 2, 3, *+2 ... * {
while $n %% $_ {
$n div= $_;
return $_ if $_ > $n;
}
}
}
$ perl6 --version
This is perl6 version 2012.12-63-ge267037 built on parrot 4.11.0 revision RELEASE_4_11_0-135-g73c6d32
$ cat > Foo.pm
macro FOO { quasi { my $foo = { 42 } } }
$ perl6 --target=pir Foo.pm
===SORRY!===
Serialization Error: Unimplemented object type 'MDThunk' passed to write_ref
@gerdr
gerdr / gist:4492329
Created January 9, 2013 11:03
grammar-debugger bitrot
# Grammar::Debugger
Obsolete use of | or \ with sigil on param $args
===SORRY!===
Invalid BUILDALLPLAN
# Grammar::Tracer
TOP
| toprule-decl
| | name
| | | orig # <-- not user-defined
@gerdr
gerdr / mangle.pl
Last active December 10, 2015 16:38
use v6;
# see http://catb.org/jargon/html/A/ASCII.html
# excludes _:. as these are allowed in HTML IDs
my %table = map &uc, qw{{
! bang
" dquote
# sharp
$ dollar
/usr/local/bin/pbc_to_exe.exe nqp.pbc
[...]
Class '[ 'File' ]' not found
current instr.: 'link_file' pc 1768 (tools/dev/pbc_to_exe.pir:558)
called from Sub 'main' pc 240 (tools/dev/pbc_to_exe.pir:75)
Makefile:739: recipe for target `nqp.exe' failed
make: *** [nqp.exe] Error 1
/usr/local/bin/pbc_to_exe.exe perl6.pbc
[...]
@gerdr
gerdr / base62.pl
Last active December 10, 2015 01:58
use v6;
my @CHARS = '0'..'9', 'a'..'z', 'A'..'Z';
my %MAP = @CHARS.pairs.map(*.invert);
sub encode($string as Str, :$escape = '_', *@skip) {
my multi encode-char($_ where any(@CHARS, @skip)) { $_ }
my multi encode-char($_) {
my $cp = .ord;
$escape, reverse gather for ^4 {
@gerdr
gerdr / gist:4216992
Created December 5, 2012 16:11
auto-detecting Perl source files

Language dialect:

  • --perl as a catch-all
  • --perl5 and --perl6 for files that can positively identified as one or the other

Criteria for the latter:

  • file extension: .p5, .pl5, .pm5 vs .p6, .pl6, .pm6
  • shebang
  • use v* in first (non-shebang or non-comment?) line for files with generic extension