patrickb any opposition to merging the vararg prs? (now is the right time) 07:15
github.com/MoarVM/MoarVM/pull/1969
github.com/rakudo/rakudo/pull/5998
Geth nqp/main: f876d6f479 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump MoarVM to get NativeCall varargs support, patrickb++
08:17
rakudo/main: 61f0918808 | (Patrick Böker)++ (committed using GitHub Web editor) | 5 files
Add vararg support to NativeCall (#5998)

This depends on MoarVM PR #1969. Variadic calls are modelled via a slurpy arg. Pointers are passed via the
  `Pointer.to()` method. The C type of the values is determined by looking
at the values themselves.
08:59
lizmat grrr.... 09:01
looks like all of NativeCall is now broken :-( 09:04
patrickb ^^
MVMArray: Index out of bounds
m: use nqp; nqp::atpos(nqp::list,-1 # basically this 09:05
camelia ===SORRY!=== Error while compiling <tmp>
Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1)
at <tmp>:1
------> ::atpos(nqp::list,-1 # basically this<HERE><EOL>
lizmat m: use nqp; nqp::atpos(nqp::list,-1) # basically this
camelia MVMArray: Index out of bounds
in block <unit> at <tmp> line 1
Geth rakudo/main: 488783a7d8 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP to get NativeCall varargs support, patrickb++
09:20
rakudo/main: f4cb406bae | (Elizabeth Mattijsen)++ | lib/NativeCall.rakumod
Only check varargs logic if there are any args at all

Otherwise an MVMArray: Index out of bounds error will occur in that case.
09:25
lizmat ok, that was easy enough to check
and fix
09:52 librasteve_ joined
Geth rakudo/main: eb8c9b138a | (Elizabeth Mattijsen)++ | src/Raku/Actions.nqp
Revert "RakuAST: don't allow &( ) contextualizer"

It looks like the contextualizer logic is also called for syntax constructs such as ".&{ 3 }". More checks are needed. So revert for now.
This reverts commit dd78e653d5925e00e0604fddd46ee9d8b9f28977.
10:57
roast: 37bd55c86a | (Elizabeth Mattijsen)++ | S32-exceptions/misc2.t
Make test for $] less Perl centric

In RakuAST this causes an "unexpected closing bracket" error, which makes *way* more sense for "say $]" for anybody who is not a die-hard Perl 4 programmer.
Also, in RakuAST, this is legal:
   my @a; say @a[++$]; # using anonymous state variable
11:11
roast: 99806613ef | (Elizabeth Mattijsen)++ | 2 files
Lose some superfluous "use v6"
11:14
rakudo/main: 41a1b3cd19 | (Elizabeth Mattijsen)++ | 3 files
RakuAST: allow ≔ as a unicode alternative for :=
11:40
lizmat m: 42.${ 3 } # wow, that's an ancient error 11:49
camelia ===SORRY!=== Error while compiling <tmp>
Unsupported use of ${ 3 }. In Raku please use: $( 3 ) for hard ref or
$::( 3 ) for symbolic ref.
at <tmp>:1
------> 42.${ 3 }<HERE> # wow, that's an ancient error
lizmat hard ref ? symbolic ref ?
m: $::( 3 ) 11:50
camelia No such symbol ''
in block <unit> at <tmp> line 1
ab5tract back before we had enough letters around to fully type out a word like 'reference' :) 11:51
m: role R {}; role S does R {}; use nqp; dd nqp::istype(role T does S {}, R)
camelia 0
ab5tract m: role R {}; role S does R {}; use nqp; dd nqp::istype(role T does S {}.HOW.compose(T), R)
camelia 1
lizmat m: Q|$::( 3 )|.AST.EVAL
camelia ===SORRY!=== Error while compiling /home/camelia/EVAL_0
Variable '$3' is not declared. Perhaps you forgot a 'sub' if this was
intended to be part of a signature?
at /home/camelia/EVAL_0:1
------> <BOL><HERE>$::( 3 )
lizmat that feels more sane
ab5tract re: the above role stuff -- how can this be possible? compose is called in PRODUCE-META-OBJECT 11:55
is there a (global?) hierarchy table that isn't being updated or something? 11:56
m: Q| role R {}; role S does R {}; use nqp; dd nqp::istype(role T does S {}.HOW.compose(T), R) |.AST.EVAL
camelia 1
ab5tract m: Q| role R {}; role S does R {}; use nqp; dd nqp::istype(role T does S {}, R) |.AST.EVAL
camelia 0
lizmat well, there *is* a type cache that nqp::istype uses 11:57
nqp::settypecache 11:58
appears to be called in .publish_type_cache in several metamodel classes 11:59
ab5tract hm, but ParametricRoleHOW calls nqp::settypecache in its compose 12:01
:/
oops, sorry that was NQPParametriceRoleHOW 12:03
patrickb lizmat: Thanks for finding and fixing my PR! 12:24
12:26 ds7832 joined 12:38 ds7832 left
lizmat patrickb: yw 13:03
14:22 librasteve_ left
timo is there a way to put adverbs on the module when using `try require ::("Foo");` syntax? 14:32
meaning auth, ver, and api
lizmat not to my knowledge 14:48
I usually do "use foo:ver<1.2.3>".EVAL 14:49
timo that's not so cool :)
i'm not sure how to properly work with something i pulled in with `try require Bla::Bla::Bla`, I can get as far as `say Bla::Bla::Bla` giving me a ModuleHow, and `Bla::Bla::Bla::<EXPORT>` giving me a PackageHOW. But after that, how do i correctly get at the things? the only thing I could find was to go `Bla::Bla::Bla::<EXPORT>.WHO<ALL>.WHO<TheThingIWanted>` 15:03
lizmat atm I haz no idea, maybe ugexe nine have 15:42
ugexe you cannot use adverbs with require at all 15:49
which yes is a problem
m: require Test:ver<asdfkjasldfjasdfasf>; 15:50
camelia ( no output )
timo not surprised that ugexe already knows about this :) 15:56
[Coke] m: require Test:ver<asdfkjasldfjasdfasf>; flunk('oh no')
camelia ===SORRY!=== Error while compiling <tmp>
Undeclared routine:
flunk used at line 1. Did you mean 'link'?
[Coke] (just checking which way that was failing)
ugexe you'd have to export flunk 16:20
m: require Test:ver<asdfasdf> <&flunk>; flunk("asfd") 16:21
camelia not ok 1 - asfd
# Failed test 'asfd'
# at <tmp> line 1
19:59 ds7832 joined 22:27 [Coke] left