Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; }; role A { }; A.HOW does Metamodel::MyRoleHOW; A.^name.say 00:05
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot declare our-scoped role inside of a role
(the scope inside of a role is generic, so there is no unambiguous
package to install the symbol in)
at <tmp>:1
------> 3*@pos, *%named) { say 'M…
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; }; }; role A { }; A.HOW does Metamodel::MyRoleHOW; A.^name.say
camelia A
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; }; }; role A { }; A.HOW does Metamodel::MyRoleHOW; A.HOW.^name.say
camelia Perl6::Metamodel::ParametricRoleGroupHOW+{Metamodel::MyRoleHOW}
jnthn Xliff: The group contains all roles with the same short name
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; }; }; role A { }; A.HOW does Metamodel::MyRoleHOW; A.HOW.^name.say; class B does A { }; B.new 00:06
camelia Perl6::Metamodel::ParametricRoleGroupHOW+{Metamodel::MyRoleHOW}
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; }; }; role A { }; A.HOW does Metamodel::MyRoleHOW; class B does A { }; B.new
camelia ( no output )
jnthn Xliff: So given role R[::T] { } and role R[::T1, ::T2] { } then there's one parametric role group installed at R, holding the two parametric roles
Xliff jnthn: How come I don't see 'Mee'?
Or 'Meee!'? 00:07
specialize used to be called in this manner, now it's not.
jnthn Xliff: Not sure, that surprises me a bit 00:08
Xliff And even that is different. A role defined inside a compunit is a Perl6::Metamodel::ParametricRoleHOW, not a ParametricRoleGroupHOW.
jnthn Oh!!
Actually it's obvious
Xliff Maybe to you! :)
jnthn `does` happens at runtime, but compile-time composition happens at compile time
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; }; }; role A { }; A.HOW but Metamodel::MyRoleHOW; class B does A { }; B.new
camelia Died with X::Method::NotFound
in block <unit> at <tmp> line 1
jnthn You need to do the mixin at compile time 00:09
Xliff Hrm... best way to do that?
jnthn BEGIN
Xliff LOL! OK.
That... does not help me a bit.
jnthn Well, obvious as in "compared to going through the source wondering what on earth" :)
How so?
Xliff Well, I need to pun the roles via a trait_mod 00:10
jnthn m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; }; }; role A { }; BEGIN A.HOW does Metamodel::MyRoleHOW; class B does A { }; B.new
camelia Meee!
5===SORRY!5=== Error while compiling <tmp>
Cannot find method 'collisions' on object of type Perl6::Metamodel::EnumHOW
at <tmp>:1
jnthn Um, what...
Where did the enum come from... 00:11
Oh...but it did output "Meee!"
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; }; }; role A { }; BEGIN { A.HOW does Metamodel::MyRoleHOW; }; class B does A { }; B.new
camelia Meee!
5===SORRY!5=== Error while compiling <tmp>
Cannot find method 'collisions' on object of type Perl6::Metamodel::EnumHOW
at <tmp>:1
jnthn Oh, it's 'cus `say` returns `True` :D
Xliff Ah.
m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; Nil}; }; role A { }; BEGIN { A.HOW does Metamodel::MyRoleHOW; }; class B does A { }; B.new
camelia Meee!
5===SORRY!5=== Error while compiling <tmp>
Cannot find method 'collisions' on object of type Perl6::Metamodel::ClassHOW
at <tmp>:1
jnthn Well, you need to actually return a specialization :) 00:12
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named --> Nil) { say 'Meee!'; Nil }; }; role A { }; BEGIN { A.HOW does Metamodel::MyRoleHOW; }; class B does A { }; B.new
camelia Meee!
5===SORRY!5=== Error while compiling <tmp>
Cannot find method 'collisions' on object of type Perl6::Metamodel::ClassHOW
at <tmp>:1
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named --> Nil) { say 'Meee!' }; }; role A { }; BEGIN { A.HOW does Metamodel::MyRoleHOW; }; class B does A { }; B.new
camelia Meee!
5===SORRY!5=== Error while compiling <tmp>
Cannot find method 'collisions' on object of type Perl6::Metamodel::ClassHOW
at <tmp>:1
Xliff m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; self; }; }; role A { }; BEGIN { A.HOW does Metamodel::MyRoleHOW; }; class B does A { }; B.new
camelia Meee!
5===SORRY!5=== Error while compiling <tmp>
Cannot find method 'collisions' on object of type NQPClassHOW
at <tmp>:1
Xliff ?!?
OK. Well one question answered... sorta. 00:13
jnthn m: role Metamodel::MyRoleHOW { method specialize (Mu \r, Mu:U \obj, *@pos, *%named) { say 'Meee!'; nextsame }; }; role A { }; BEGIN A.HOW does Metamodel::MyRoleHOW; class B does A { }; B.new
camelia Meee!
jnthn There we go :)
Xliff Ahhh!
jnthn Don't know if that's ultimately what you want, but delegating to the original implementation will do the job 00:14
Xliff OK. Is there any way to delay some of this until run-time?
Are trait_mods compile time?
jnthn Yes
Xliff OK. Great!
jnthn Can you define "some of this"? :)
Ah, if trait application being compile time suffices, then fine :) 00:15
Xliff Yes.
However I need to know if BEGIN time at the compunit level is enough.
If I am compiling multiple compunits, will begin wait until all are compiled? 00:16
s/begin/BEGIN/
jnthn BEGIN is executed as soon as the compiler reaches it
Well, after it's parsed it
Modulo a hack to make sure it's eaten a heredoc
Xliff So I want to define a way to execute a piece of code for every comp unit compiled. 00:17
jnthn If you're in a trait_mod then you're implicitly at compile time
Xliff So that I can then compose method aliases.
jnthn So no need to write BEGIN in one of those 00:18
Xliff Method aliases are established at compile time, but due to how roles compose protos, those protos are NOT available until class composition time.
s/protos/method candidate/ 00:19
So I want to wait until the class is composed before I assign the method aliases established in the role. 00:21
jnthn Ah, hm. 00:22
Xliff jnthn: See discussion here ... github.com/lizmat/Method-Also/issues/1
jnthn That's an interesting one
And probably needs more brain than I have left today
Xliff This was fixed a while ago... now we're back to square one.
Yeah... well... *sigh*
My stuff is broken until I can get this fixed again... and I still have partially eaten brain left.
It's just so DISAPPOINTING to get something fixed and have it break again. 00:23
This issue PROBABLY needs an internal fix and should not be left to module space.
jnthn If the problem is that you want to do something after protos have been produced, maybe you want to override incorporate_multi_candidates, callsame it, and then do your stuff 00:25
You probably don't want to really wait until after the class composition is totally done, otherwise you're after method cache handling 00:27
Probably hooking in at the earliest point after the things you need are in place would work 00:28
Xliff So that would be incorporate_multi_candidates? 00:29
Xliff I'm still trying to understand why it stopped working when punning to ParametricRoleHOW! 00:30
Kaiepi oh boy, mixing in features to roles...
doesn't sound fun 00:31
Xliff Worse... roles in the Metamodel!
Kaiepi i'm mixing in support for parameterization to subsets atm, and that's bad enough, let alone roles
for different reasons though 00:32
jnthn Could be worse; you could have been the one that had to design and implement the whole thing in the first place... ;-) 00:33
Kaiepi heh
part of the problem is raku classes and roles don't always play nice with the nqp ones for rakudo's metamodels
m: class FooHOW does Metamodel::MethodContainer { }; say FooHOW.^methods.^name 00:34
camelia List
Kaiepi m: class FooHOW does Metamodel::MethodContainer { }; say FooHOW.^method_table.^name
camelia Hash
Kaiepi wait what?
jnthn Return values get hllize'd
Kaiepi that was returning nqp::null() last time i tried
i'll have to figure out what i was doing at the time for that to happen 00:35
jnthn Are you sure you're doing what you thing you're doing? YOu're calling a method on the meta-class of FooHOW, not on FooHOW
Kaiepi oh right
jnthn *think
Kaiepi m: class FooHOW does Metamodel::MethodContainer { method new_type() { Metamodel::Primitives.create_type: self.new } }; my constant Foo = FooHOW.new_type; say Foo.^methods.^name 00:36
camelia Cannot iterate over a VMNull type object
in block <unit> at <tmp> line 1
Kaiepi there we go
jnthn Urgh, yes
I can guess how that happens; there's probably not an easy fix
(Though surely a not-easy one is possible :))
Kaiepi with parametric subsets, the issue i'm having rn is ensuring they can handle parameterizations without keeping state since raku attributes don't play nice either 00:38
luckily i've been learning haskell lately so there's a functional approach to this i can use to accomplish this
*parameterizations with generics 00:39
jnthn sleep time o/ 00:47
Kaiepi night 00:50
japhb Is there a way to change the default method invocant constraint for a class so that all methods are constrained to be instance methods (or alternately, constrained to be class methods) unless otherwise specified?
Having `::?CLASS:D: ` at the start of every signature is very cluttery 00:52
Xliff Oh... that would be nice. 00:53
japhb Actually, I'd love to be able to default *all* of the type smilies to :D, then use :U or :_ explicitly for the other choices. I'm fairly certain that would not only de-clutter my code, but vastly reduce a big source of bugs -- it ought to be possible for people to say "Make me do extra work to allow undefined arguments". 01:07
Kaiepi m: role Foo[\T] { say (try my ::?CLASS:D $ = T) // 'oops!' }; Foo[1].new 01:26
camelia oops!
oops!
Kaiepi generics mess with this though
wait nvm that's a separate issue 01:28
it'd be nice but i'm wary of what would happen if that were the case 01:29
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|) { my \r := callsame; say 'HIII!'; r; }; }; role = 04:27
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse role definition
at <tmp>:1
------> 3 := callsame; say 'HIII!'; r; }; }; role7⏏5 =
expecting any of:
generic role
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; 04:28
camelia ( no output )
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; A.HOW does NewRoleHow; A.new.a('H')
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
NewRoleHow used at line 1. Did you mean 'NewRoleHOW'?
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; A.HOW does NewRoleHOW; A.new.a('H')
camelia Str
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|c) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; A.HOW does NewRoleHOW; A.new.a('H')
camelia Str
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|c) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN A.HOW does NewRoleHOW; A.new.a('H') 04:29
camelia Str
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|c) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN { A.HOW does NewRoleHOW; }; A.new.a('H')
camelia Str
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|c) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN { A.HOW does NewRoleHOW; }; A.new.a('H')
camelia Str
Xliff m: role NewRoleHOW { method incorporate_multi_candidates (|c) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN { A.HOW does NewRoleHOW; }; A.new.a('H') 04:30
camelia Str
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN { A.HOW does NewRoleHOW; }; A.new.a('H') 04:54
camelia Str
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN { A.HOW does NewRoleHOW; }; A.HOW.^name.say 04:55
camelia Perl6::Metamodel::ClassHOW+{NewRoleHOW}
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN A.HOW but NewRoleHOW; A.HOW.^name.say 04:56
camelia 5===SORRY!5=== Error while compiling <tmp>
An exception occurred while evaluating a BEGIN
at <tmp>:1
Exception details:
Died with X::Method::NotFound
in code at <tmp> line 1
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN A.HOW does NewRoleHOW; A.HOW.^name.say
camelia Perl6::Metamodel::ClassHOW+{NewRoleHOW}
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN A.HOW does NewRoleHOW;
camelia ( no output )
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { my \r := callsame; say 'HIII!'; r; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN A.HOW does NewRoleHOW; A.new.a(1) 04:57
camelia Int
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { callsame; say 'HIII!'; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN A.HOW does NewRoleHOW; A.new.a(1)
camelia Int
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { callsame; say 'HIII!'; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN A.HOW does NewRoleHOW;
camelia ( no output )
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { callsame; say 'HIII!'; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN B.HOW does NewRoleHOW; 04:58
camelia ( no output )
Xliff m: role NewRoleHOW { method incorporate_multi_candidates ($obj) { callsame; say 'HIII!'; }; }; role B { multi method a (Str $a) { say 'Str'; }; multi method a (Int $i) { say 'Int'; }; }; class A does B { }; BEGIN { A.HOW does NewRoleHOW; B.HOW does NewRoleHOW; };
camelia ( no output )
Xliff jnthn: ^^^ ????
jmerelo hey 10:37
tellable6 2019-11-30T14:35:13Z #raku <tbrowder> jmerelo post updated--basically done, but still some minor edits to make (i need to add another note), and i'll try to fix the wordpress issues with extra newlines.
2019-11-30T19:03:57Z #raku <tbrowder> jmerelo i took 9 dec slot. though i'm happy to give it up if someone else wants it, but speak soon!
2019-11-30T19:06:10Z #raku <tbrowder> jmerelo check yr email
2019-12-01T00:04:15Z #raku <tbrowder> jmerelo wordpress is not showing my latest version!!!! wp sucks rocks
2019-12-01T00:12:48Z #raku <tbrowder> jmerelo it looks like it's finally taken my update-whew!
jmerelo clickbaits the first day of the Advent Calendar rakuadventcalendar.wordpress.com/2...perl-code/ 10:38
Also, now Google search from the search slot actually searches docs.raku.org. Check it out at docs-stage.raku.org/ 10:40
As usual, if everything's OK, I'll deploy to docs.raku.org
Tanks rba++ for setting up this stating infrastructure. It's great for, well, staging changes before being deployed to the actual site.
s/stating/staging/ 10:41
jmerelo sena_kun: ready for today's advent calendar? 10:58
tonight, rather 10:59
I see it's already scheduled. I'll add some links, if you don't mind. 11:00
jmerelo .tell sena_kun I've done a bit of editing here and there. Other than that, perfect! 11:03
tellable6 jmerelo, I'll pass your message to sena_kun
Geth ¦ rakudo: lizmat self-unassigned LTA: Heredocs give warning trouble with empty lines that are partially indented github.com/rakudo/rakudo/issues/2409 11:56
lizmat Files=1290, Tests=109646, 207 wallclock secs (27.95 usr 7.92 sys + 2915.13 cusr 261.17 csys = 3212.17 CPU) 11:58
[Tux] Rakudo version 2019.11-71-gc16b5a204 - MoarVM version 2019.07.1-395-geb3d981d7
csv-ip5xs0.723 - 0.819
csv-ip5xs-206.669 - 6.727
csv-parser21.604 - 23.045
csv-test-xs-200.426 - 0.434
test7.425 - 7.619
test-t1.747 - 1.790
test-t --race0.823 - 0.946
test-t-2028.953 - 29.193
test-t-20 --race9.054 - 9.665
12:16
tbrowder lizmat: does the heredoc issue seem hard to fix? 12:40
lizmat tbrowder: I'm a complete noob wrt to heredocs, so I'm not the most efficient person to be responsible for fixing that issue 12:41
tbrowder can it be fixed in Rakudo instead of nqp?
lizmat I have no idea
tbrowder ok, thnx 12:42
lizmat 's mind is in CoC land atm
Geth problem-solving/CoC: 48f4c51ebe | (Elizabeth Mattijsen)++ | solutions/meta/CoC.md
Rework the "Responsibility" section
12:44
SmokeMachine . 12:55
tellable6 2019-11-30T16:07:57Z #raku-dev <lizmat> SmokeMachine could you please check that Red survived github.com/rakudo/rakudo/commit/1d8d62d46d ?
SmokeMachine lizmat: I’ll take a look 12:56
SmokeMachine thanks! 13:04
lizmat is off for some F1& 13:05
MasterDuke anyone know anything about this? "Tree-sitter - a new parsing system for programming tools" by Max Brunsfeld, www.youtube.com/watch?v=Jes3bD6P0To 13:38
jnthn .tell Xliff You'd need to arrange for that to be overridden in the ClassHOW 13:42
tellable6 jnthn, I'll pass your message to Xliff
Geth nqp: 4b3bb9c8c3 | (Stefan Seifert)++ | tools/templates/MOAR_REVISION
Bump MoarVM for NativeCall's new serialize_lib_name attribute
14:04
rakudo: 55b3ed5626 | (Stefan Seifert)++ | 2 files
Fix relocatability of bundled native libraries

Native libraries (and other resource files) bundled with installed modules are supposed to be relocatable, i.e. their path is always relative to the current path of the repository. This is especially important for packaging as the module will get installed into a temporary build directory using the Staging repository. The generated files will be moved to their final location when ... (5 more lines)
Geth rakudo: 7cfdd59823 | (Patrick Böker)++ | 18 files
Rename PERL6_HOME to RAKUDO_HOME

Same for Configure.pl parameter --perl6-home -> --rakudo-home. Stay backwards compatible by mapping --perl6-home to --rakudo-home and accepting both PERL6_HOME and RAKUDO_HOME environment variables. This commit does not yet touch any file system paths. These changes require a newer nqp_configure which the commit also pulls in.
16:20
rakudo: ab2ba1ab22 | (Patrick Böker)++ (committed using GitHub Web editor) | 18 files
Merge pull request #3321 from patzim/perl6-to-rakudo-home

Rename PERL6_HOME to RAKUDO_HOME
problem-solving/CoC: e2b18bf640 | (Elizabeth Mattijsen)++ | solutions/meta/CoC.md
Make discrimination clause more specific
16:22
patrickb .tell nine Can you have a look this PR please? -> github.com/rakudo/rakudo/pull/3282 16:33
tellable6 patrickb, I'll pass your message to nine
Geth rakudo: patzim++ created pull request #3335:
Make the raku symlinks relative
17:06
tbrowder MasterDuke: looks pretty slick! 17:13
Geth rakudo: 92a8a08f5d | (Elizabeth Mattijsen)++ | src/core.c/Int.pm6
Introducing .base("beer") and .base("camel")

Yes, this isn't serious, but doesn't affect performance of Int.base at all, and it was too long ago since we added another easter egg to Rakudo. The amount of -Oseriousness was at a maximum.
17:24
Geth rakudo: 314aa05e9b | (Aleks-Daniel Jakimenko-Aleksejev)++ | src/core.c/Int.pm6
Revert "Introducing .base("beer") and .base("camel")"

This reverts frivolous commit 92a8a08f5dd073fe1d8c774bfbd52d916362afd7.
  “You think it's funny today” except that it's not even funny.
17:55
lizmat wow, not even 30 minutes 18:02
ok, just about 30 minutes
AlexDaniel :) 18:03
lizmat is this the signal to remove all of the other easter eggs ?
lizmat is a little disappointed 18:04
sjn thinks there's too little humour and wit in software development in general 18:05
sena_kun thought there is Raku Advent where people can show off tricks and write things like this one 18:09
AlexDaniel ping...?
I am playing with sake all for releasing, resolving the arising questions... the one thing I am worrying right now is that won't I accidentally "release" nqp? as in, I have access to push. 18:10
AlexDaniel if you want to introduce fun stuff, please commit to whateverable :D
sena_kun: no
sena_kun great
AlexDaniel sena_kun: unless you run `sake human-upload` 18:11
and even that will fail
sena_kun .oO ( failures are welcome )
sena_kun continues to stare at logs
lizmat goes off to do something else for the rest of the day 18:17
japhb lizmat: Idea for mixing in easter eggs -- a branch named something egg-related, like 'fritatta' because it's baked eggs with other stuff mixed in, that has all the patches for various easter eggs. If someone wants an up-to-date but eggy form of rakudo, they can just rebase that branch onto master and build it. :-) 19:03
nine Wait...beer and camel are gone already? Wanted to try them on camelia but went for cooking first :( 19:14
tellable6 2019-12-01T16:33:42Z #raku-dev <patrickb> nine Can you have a look this PR please? -> github.com/rakudo/rakudo/pull/3282
Geth rakudo: a00628e0fb | (Patrick Böker)++ | tools/templates/moar/Makefile.in
Make the raku symlinks relative

This makes them work when relocated.
19:19
rakudo: 84ef864cb3 | (Patrick Böker)++ (committed using GitHub Web editor) | tools/templates/moar/Makefile.in
Merge pull request #3335 from patzim/relative-raku-symlink

Make the raku symlinks relative
rakudo/master: 5 commits pushed by (Patrick Böker)++
patrickb .tell rba Now I'm at the point where I need external feedback to progress with the rakudo.org website changes. Any updates on the test server? 19:23
tellable6 patrickb, I'll pass your message to rba
AlexDaniel nine: try them on committable then 20:02
c: 92a8a08f5 say 42.base(‘beer’)
committable6 AlexDaniel, ¦92a8a08: «🍻🍺🍻🍺🍻🍺␤»
Geth rakudo: MasterDuke17++ created pull request #3336:
Fix "unused variable" compiler warnings in C ops
20:03
AlexDaniel u: 🩂 20:22
unicodable6 AlexDaniel, U+1FA42 NEUTRAL CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES [So] (🩂)
AlexDaniel what
gist.github.com/Whateverable/5f092...dafee14a35 20:23
u: 🨆 20:24
unicodable6 AlexDaniel, U+1FA06 WHITE CHESS KNIGHT ROTATED FORTY-FIVE DEGREES [So] (🨆)
AlexDaniel u: white chess knight 20:26
unicodable6 AlexDaniel, U+2658 WHITE CHESS KNIGHT [So] (♘)
AlexDaniel, U+1FA06 WHITE CHESS KNIGHT ROTATED FORTY-FIVE DEGREES [So] (🨆)
AlexDaniel, 11 characters in total (♘🨆🨍🨛🨢🨰🨷🩅🩎🩏🩐): gist.github.com/70c0843cbd039fc694...0812e87cad
AlexDaniel github.com/ryn1x/Terminal-Spinners/issues/5 20:28
travis-ci Rakudo build passed. Patrick Böker 'Merge pull request #3335 from patzim/relative-raku-symlink 21:48
travis-ci.org/rakudo/rakudo/builds/619314597 github.com/rakudo/rakudo/compare/3...ef864cb321
AlexDaniel m: my $a = ‘🐪’; for ^30 { say $a++ } 21:58
camelia 🐪
🐫
🐫🐪
🐫🐫
🐫🐪🐪
🐫🐪🐫
🐫🐫🐪
🐫🐫🐫
🐫🐪🐪🐪
🐫🐪🐪🐫
🐫🐪🐫🐪
🐫🐪🐫🐫
🐫🐫🐪🐪
🐫🐫🐪🐫
🐫🐫🐫🐪
🐫🐫🐫🐫
AlexDaniel e: my $a = ‘🐪’; for ^30 { say $a++ }
evalable6 🐪
🐫
🐫🐪
🐫🐫
🐫🐪🐪
AlexDaniel, Full output: gist.github.com/9bbd9af332dea12b87...3334dfc54f
Geth rakudo: 77ffb06330 | (Elizabeth Mattijsen)++ | 3 files
"I think that the source code is not the place where you make jokes by introducing special cases"

I guess this is the consequence of Raku becoming a serious programming language. :-(
22:18
lizmat I guess I should have stayed away from the keyboard this evening :-( 22:23
I will now
AlexDaniel lizmat: I guess I'm wrong, actually 22:36
I totally forgot that ++ does that magic
there was a ticket somewhere discussing .succ on strings, but as long as this behavior is there, you can do whatever 22:37
beer or not beer, it's unpredictable anyway
.oO( Tonight on Raku FM! AlexDaniel learns about ++ operator )
22:45
so both .succ and ++ on strings do the same, but there's also another behavior that you can get with .. 22:46
AlexDaniel shrugs and runs away
m: my $x = ‘-42’; $x++; say $x 22:49
camelia -43
AlexDaniel rrrright
m: my $x = ‘-42’; say $x + 1
camelia -41
Geth rakudo: 68cee0dd41 | (Daniel Green)++ | src/vm/moar/ops/perl6_ops.c
Fix "unused variable" compiler warnings in C ops
22:50
rakudo: a707633755 | niner++ (committed using GitHub Web editor) | src/vm/moar/ops/perl6_ops.c
Merge pull request #3336 from MasterDuke17/remove_unused_variables_in_c_code

Fix "unused variable" compiler warnings in C ops
Xliff m: my $x = -42; $x++; say $x; 22:53
camelia -41
Xliff m: my $x = '-42'; $x++; say $x;
camelia -43
Xliff Ouch. 22:54
AlexDaniel Xliff: yeah I can't exactly blame myself for not remembering that ++ works on strings :D
because it kinda doesn't :)
Xliff Can see that! LOL
say 🐪 + 2 22:55
m: say '🐪' + 2
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5🐪' (indicated by ⏏)
in block <unit> at <tmp> line 1
Xliff m: say '🐪'.succ.succ
camelia 🐫🐪
Xliff Actually, I don't see why that needs to come out.
m: '⚀' 22:56
camelia WARNINGS for <tmp>:
Useless use of constant string "⚀" in sink context (line 1)
Xliff m: my $a = '⚀'; $a.succ xx 7; $a.say
camelia
AlexDaniel Xliff: I guess it really doesn't matter what comes out of it, it's surprising anyway and .. range feature is more so
Xliff m: my $a = '⚀'; $a .= succ for ^7; $a.say
camelia ⚀⚁
Xliff AlexDaniel: Any less surprising than ^^ 22:57
Another solution would be a tongue-in-cheek reference in the docs. 22:58
Would take the "surprise" out of it and leave the character.
AlexDaniel: Same with this... 22:59
m: say ++'▁'
camelia Cannot resolve caller prefix:<++>(Str:D); the following candidates
match the type but require mutable arguments:
(Mu:D $a is rw)

The following do not match for other reasons:
(Bool $a is rw)
(Int:D $a is rw --> Int:D)
(M…
Xliff m: say (++'▁')
camelia Cannot resolve caller prefix:<++>(Str:D); the following candidates
match the type but require mutable arguments:
(Mu:D $a is rw)

The following do not match for other reasons:
(Bool $a is rw)
(Int:D $a is rw --> Int:D)
(M…
Xliff ?!?
AlexDaniel put it in a variable
Xliff m: my $a = '▁'; say ++$a; 23:00
camelia
Xliff But you get my point!
AlexDaniel 😕
Xliff If you think these are surprising, I think it's better we take all of these ranges and document them, rather than removing things because they are "surprising"
AlexDaniel Xliff: that's right, yes, beer doesn't matter as long as it does that 23:01
Xliff m: "᱅".Int.say 23:02
camelia 5
Xliff m: my $wtf = "᱅"; $wtf .= succ xx 10000.rand; $wtf.say
camelia ᱃᱈᱃
Xliff m: my $wtf = "᱅"; $wtf .= succ xx 10000.rand; $wtf.say. $wtf.Int.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of . to concatenate strings; in Perl 6 please use ~
at <tmp>:1
------> 3"; $wtf .= succ xx 10000.rand; $wtf.say.7⏏5 $wtf.Int.say
Xliff m: my $wtf = "᱅"; $wtf .= succ xx 10000.rand; $wtf.say; $wtf.Int.say
camelia ᱄᱁᱆᱆
4166
travis-ci Rakudo build passed. Patrick Böker 'Merge pull request #3282 from patzim/spectest-inlinep5-hint 23:02
travis-ci.org/rakudo/rakudo/builds/619314911 github.com/rakudo/rakudo/compare/8...4e5e464637
Xliff I could swear I've seen these symbols, before... I'm looking at you, Stargate!!! 23:03
(kidding)
AlexDaniel: And yes. Beer documents quite well. When you spill it on your shirt it quite visibly notes: "I'm drunk!" 23:04