Skip to content

Instantly share code, notes, and snippets.

View jnthn's full-sized avatar

Jonathan Worthington jnthn

View GitHub Profile
diff --git a/src/core/loadbytecode.c b/src/core/loadbytecode.c
index b0a28f1..cb8ded3 100644
--- a/src/core/loadbytecode.c
+++ b/src/core/loadbytecode.c
@@ -37,8 +37,10 @@ static MVMString * figure_filename(MVMThreadContext *tc, MVMString *orig) {
}
MVMROOT(tc, orig, {
result = MVM_string_utf8_decode(tc, tc->instance->VMString, new_path, new_len);
- if (!MVM_file_exists(tc, result))
- result = orig;
diff --git a/src/core/loadbytecode.c b/src/core/loadbytecode.c
index b0a28f1..ca96071 100644
--- a/src/core/loadbytecode.c
+++ b/src/core/loadbytecode.c
@@ -58,21 +58,21 @@ void MVM_load_bytecode(MVMThreadContext *tc, MVMString *filename) {
MVMCompUnit *cu, *try_cu;
MVMLoadedCompUnitName *loaded_name;
- /* Work out actual filename to use, taking --libpath into account. */
- filename = figure_filename(tc, filename);
diff --git a/build/setup.pm b/build/setup.pm
index 42676d1..6f9035a 100755
--- a/build/setup.pm
+++ b/build/setup.pm
@@ -372,7 +372,7 @@ our %OS_POSIX = (
our %OS_LINUX = (
%OS_POSIX,
- syslibs => [ @{$OS_POSIX{syslibs}}, qw( rt ) ],
+ syslibs => [ @{$OS_POSIX{syslibs}}, qw( rt dl ) ],
diff --git a/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp b/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp
index 1a0fd79..a9a6bdf 100644
--- a/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp
+++ b/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp
@@ -445,18 +445,24 @@ class QAST::MASTRegexCompiler {
my $s0 := fresh_s();
my $i0 := fresh_i();
my $cmpop := $node.negate ?? 'if_i' !! 'unless_i';
- my @ins := [
- label(self.unique($*RXPREFIX ~ '_literal')),
diff --git a/src/6model/reprs/P6opaque.c b/src/6model/reprs/P6opaque.c
index acbfa96..db21971 100644
--- a/src/6model/reprs/P6opaque.c
+++ b/src/6model/reprs/P6opaque.c
@@ -383,6 +383,8 @@ static void bind_attribute(MVMThreadContext *tc, MVMSTable *st, MVMObject *root,
break;
}
case MVM_reg_str: {
+ if (value_reg.s && ((MVMObject *)value_reg.s)->st->REPR->ID != MVM_REPR_ID_MVMString)
+ MVM_exception_throw_adhoc(tc, "P6opaque: string is not a string");
@jnthn
jnthn / gist:6812967
Created October 3, 2013 16:44
CORE.setting action method call counts, total time spent, and action method name
389 5.191998005 package_def
86 1.880999327 dec_number
1164 1.673000097 routine_def
32223 1.557008982 EXPR
10707 1.386010408 variable
1562 1.311996222 method_def
5 1.085000038 statement_prefix:sym<BEGIN>
2637 1.08199954 declarator
3478 0.794000149 term:sym<name>
48 0.620999575 type_declarator:sym<constant>
diff --git a/src/main.nqp b/src/main.nqp
index 1019799..275c34f 100644
--- a/src/main.nqp
+++ b/src/main.nqp
@@ -1,6 +1,7 @@
use Perl6::Grammar;
use Perl6::Actions;
use Perl6::Compiler;
+use QRegex;
188329
1 opener
3117 declarator
4 scope_declarator:sym<our>
1 install_doc_phaser
4557 finishpad
31 infix:sym<cmp>
259 lambda
43 infix:sym<|>
84 blorst
@jnthn
jnthn / Prev.pm6
Created September 16, 2013 20:33
my Mu $prev;
sub prev() is export { $prev }
my $comp := nqp::getcomp('perl6');
$comp.HOW.add_method($comp, 'autoprint', method (Mu \value) {
$prev := value;
self.interactive_result(value)
unless nqp::tellfh(nqp::getstdout()) > $*AUTOPRINTPOS;
});
$comp.HOW.compose($comp);
C:\consulting\MoarVM>type x.nqp
class Foo {
}
BEGIN {
Foo.WHO<%stuff> := nqp::hash('a', 1, 'b', 2);
}
say(%Foo::stuff<a>);