Created
April 27, 2020 17:26
-
-
Save Whateverable/c66af3893388153660dcc2a0c970bf00 to your computer and use it in GitHub Desktop.
committable6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
master,hyper_codegen %*ENV<RAKUDO_OPTIMIZER_HYPER>=1; run <perl6 -e>, 「my int @a = ^100_000; my int @b = ^100_000; my int @c = ^100_000; my int @d = ^100_000; my int @result = ^100_000; my $now = now; for ^500 { @result = @a >>+<< @b >>+<< @c >>+<< @d>>.sin; Nil }; say now - $now;」 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
¦«master»: | |
This type cannot unbox to a native integer: P6opaque, Num | |
in block <unit> at -e line 1 | |
The spawned command 'perl6' exited unsuccessfully (exit code: 1, signal: 0) | |
in block <unit> at /tmp/QBtaFMfJF_ line 1 | |
«exit code = 1» | |
¦«hyper_codegen»: | |
metaop hyper from core? 1 | |
2.8144641 | |
check array type of symbol @result | |
primspec is 1 | |
here comes this tree: | |
- QAST::Op(call) >>+<< | |
- QAST::Op(call &METAOP_HYPER) <wanted> | |
- QAST::Var(lexical &infix:<+>) <wanted> | |
- QAST::Op(call) <wanted> >>+<< | |
- QAST::Op(call &METAOP_HYPER) <wanted> | |
- QAST::Var(lexical &infix:<+>) <wanted> | |
- QAST::Op(call) <wanted> >>+<< | |
- QAST::Op(call &METAOP_HYPER) <wanted> | |
- QAST::Var(lexical &infix:<+>) <wanted> | |
- QAST::Var(lexical @a) <wanted> @a | |
- QAST::Var(lexical @b) <wanted> @b | |
- QAST::Var(lexical @c) <wanted> @c | |
- QAST::Op(hllize) <wanted> | |
- QAST::Op(callmethod dispatch:<hyper>) sin | |
- QAST::Var(lexical @d) <wanted> @d | |
- QAST::SVal | |
- QAST::SVal(sin) | |
node is qast op | |
op is call | |
call op is nameless | |
this is a valid hyperop call. | |
arg1: | |
- QAST::Op(call) <wanted> >>+<< | |
- QAST::Op(call &METAOP_HYPER) <wanted> | |
- QAST::Var(lexical &infix:<+>) <wanted> | |
- QAST::Op(call) <wanted> >>+<< | |
- QAST::Op(call &METAOP_HYPER) <wanted> | |
- QAST::Var(lexical &infix:<+>) <wanted> | |
- QAST::Var(lexical @a) <wanted> @a | |
- QAST::Var(lexical @b) <wanted> @b | |
- QAST::Var(lexical @c) <wanted> @c | |
arg2: | |
- QAST::Op(hllize) <wanted> | |
- QAST::Op(callmethod dispatch:<hyper>) sin | |
- QAST::Var(lexical @d) <wanted> @d | |
- QAST::SVal | |
- QAST::SVal(sin) | |
node is qast op | |
op is call | |
call op is nameless | |
this is a valid hyperop call. | |
arg1: | |
- QAST::Op(call) <wanted> >>+<< | |
- QAST::Op(call &METAOP_HYPER) <wanted> | |
- QAST::Var(lexical &infix:<+>) <wanted> | |
- QAST::Var(lexical @a) <wanted> @a | |
- QAST::Var(lexical @b) <wanted> @b | |
arg2: | |
- QAST::Var(lexical @c) <wanted> @c | |
node is qast op | |
op is call | |
call op is nameless | |
this is a valid hyperop call. | |
arg1: | |
- QAST::Var(lexical @a) <wanted> @a | |
arg2: | |
- QAST::Var(lexical @b) <wanted> @b | |
it's a var node | |
seems like an array var. let's check it. | |
check array type of symbol @a | |
primspec is 1 | |
it's a var node | |
seems like an array var. let's check it. | |
check array type of symbol @b | |
primspec is 1 | |
res1: | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@a_1) | |
- QAST::Var(local hyperidx_1) | |
res2: | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@b_1) | |
- QAST::Var(local hyperidx_1) | |
argument return types are equal? 1 | |
primspecs? 1 1 | |
argument return types are equal to int? 1 1 | |
argument return types are equal to num? 0 0 | |
- QAST::Op(add_i) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@a_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@b_1) | |
- QAST::Var(local hyperidx_1) | |
it's a var node | |
seems like an array var. let's check it. | |
check array type of symbol @c | |
primspec is 1 | |
res1: | |
- QAST::Op(add_i) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@a_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@b_1) | |
- QAST::Var(local hyperidx_1) | |
res2: | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@c_1) | |
- QAST::Var(local hyperidx_1) | |
argument return types are equal? 1 | |
primspecs? 1 1 | |
argument return types are equal to int? 1 1 | |
argument return types are equal to num? 0 0 | |
- QAST::Op(add_i) | |
- QAST::Op(add_i) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@a_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@b_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@c_1) | |
- QAST::Var(local hyperidx_1) | |
node is qast op | |
skipping hllize | |
node is qast op | |
it's a var node | |
seems like an array var. let's check it. | |
check array type of symbol @d | |
primspec is 1 | |
will look if needs a custom hypermeth impl | |
- QAST::Op(callmethod dispatch:<hyper>) sin | |
- QAST::Var(lexical @d) <wanted> @d | |
- QAST::SVal | |
- QAST::SVal(sin) | |
here's the result of the argument | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@d_1) | |
- QAST::Var(local hyperidx_1) | |
returning a sin _n op here | |
res1: | |
- QAST::Op(add_i) | |
- QAST::Op(add_i) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@a_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@b_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@c_1) | |
- QAST::Var(local hyperidx_1) | |
res2: | |
- QAST::Op(sin_n) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@d_1) | |
- QAST::Var(local hyperidx_1) | |
argument return types are equal? 0 | |
primspecs? 1 2 | |
argument return types are equal to int? 1 0 | |
argument return types are equal to num? 0 1 | |
- QAST::Op(add_n) | |
- QAST::Op(add_i) | |
- QAST::Op(add_i) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@a_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@b_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@c_1) | |
- QAST::Var(local hyperidx_1) | |
- QAST::Op(sin_n) | |
- QAST::Op(atpos_i) | |
- QAST::Var(local hyperinput_@d_1) | |
- QAST::Var(local hyperidx_1) | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment