»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:03 Arrowhead left 00:05 Arrowhead joined 00:10 Arrowhead left
TimToady flussence: I find -v works much better than -m 00:13
00:14 virtualsue left 00:15 spider-mario left
flussence ha, so it does. I set it a bit too low (5MB) to see what'd happen and `perl6 --version` wouldn't work because *bash* couldn't run ncurses functions any more :) 00:17
(wonder if I need to turn a bunch of kernel cruft back on to have -m work...) 00:19
_nadim hi, if someone could run the tests on this github.com/nkh/P6-Data-Dump-Tree.git
having Terminal::ANSIColor installed is a plus, although a test without it installed would be nice too 00:20
00:21 disturbingly_rea joined
_nadim .tell tadzik could we get an uninstall verb in Panda 00:21
yoleaux _nadim: I'll pass your message to tadzik.
00:21 addison left
disturbingly_rea I vote for 'remove' over 'uninstall' 00:22
_nadim that would be even better, yes
RabidGravy _nadim, I think you'll find the answer will contain something like "it will require support in Compunit::Repository" 00:23
awwaiid mmm. I updated Inline::Ruby to 0.0.2, but panda says it won't install it becaues 0.0.1 is already installed (which is true, but shouldn't matter). What should I do? 00:24
RabidGravy --force
but that seems like a mistake nonetheless 00:25
awwaiid k
_nadim RabidGravy: and who is the master of Compunit::Repository?
00:25 addison joined
awwaiid is there a way to have panda install from a git clone, or is there some other way to get a cloned build to install into rakudobrew land? 00:26
disturbingly_rea perl6 is lovely for project Euler (when it's fast enough for my dumb algorithms). Sometimes I still have to translate them to scala :( (though 'is-prime' is a grand built-in for that problem space)
just sharing some love
RabidGravy awwaiid, the bootstrap.pl? 00:27
awwaiid RabidGravy: I mean a module from ecosystem 00:28
RabidGravy: (if the answer is still boostrap.pl, could you elaborate?)
disturbingly_rea Can we have a repl that accepts multiple lines? 00:29
RabidGravy oh i see, clone the thing local make the changes "panda install ."
disturbingly_rea Is there a project for that where I could contribute?
(I mean 'sub foo(bar) { ## presses enter and expects to be able to type the next line of the sub 00:30
awwaiid RabidGravy: great, thanks!
00:31 rburkholder joined 00:33 addison left 00:34 skyl4rk joined 00:36 llfourn joined
disturbingly_rea nobody with any hints for a multi-line entry repl then? 00:36
RabidGravy apparently not 00:37
grondilu probably not obvious a thing to do
00:37 cygx joined
disturbingly_rea seems standard, though 00:38
python/scala/clojure etc
even J
cygx disturbingly_rea: there's some initial work on a Jupyter kernel: github.com/timo/iperl6kernel
RabidGravy I'd say look at making it module space in the first instance
grondilu disturbingly_rea: how do they do it? Do they rely on an external lib or somthing?
disturbingly_rea gronilu: depends. With python, it ships with. With clojure, it's part of the de facto build tool leiningen... 00:40
grondilu: I can't type
cygx disturbingly_rea: that's what tab completion is for 00:41
00:41 llfourn left, evdubs joined
disturbingly_rea cygx: I had no idea that worked in IRC.... this is the only channel I've ever been in ;) Great tip! 00:42
cygx well, it's a feature of your client, not IRC itself
disturbingly_rea I use the browser client
for reasons previously given
00:44 alpha123 left 00:50 RabidGravy left 00:51 bapa left 00:55 bapa joined 00:56 aindilis left 01:05 nbrown joined 01:13 joydo joined 01:15 kittenlips joined 01:16 sprocket left
kittenlips Can one define the return type for methods and functions in P6? 01:16
yoleaux 30 Dec 2015 20:43Z <MadcapJake> kittenlips: thanks! glad you like it! My highlighter is just using Atom's builtin grammar engine and the builtin node-oniguruma regex engine.
AlexDaniel kittenlips: --> Type 01:17
cygx m: sub foo(--> Int) { "nok" }; foo
camelia rakudo-moar eca5df: OUTPUT«Type check failed for return value; expected Int but got Str␤ in sub foo at /tmp/MZH7I_oRNZ line 1␤ in block <unit> at /tmp/MZH7I_oRNZ line 1␤␤»
AlexDaniel m: sub foo (Int $a, Int $x --> Bool) { return True }
camelia ( no output )
cygx m: sub foo() returns Int { "nok" }; foo
camelia rakudo-moar eca5df: OUTPUT«Type check failed for return value; expected Int but got Str␤ in sub foo at /tmp/R8YLkaHYG0 line 1␤ in block <unit> at /tmp/R8YLkaHYG0 line 1␤␤»
kittenlips AlexDaniel: if you have parameters where does it go after or before?
cygx after 01:18
AlexDaniel hmmm
what happens if you put it before? Let's see…
kittenlips ah I see it now sorry missed your message
Thank you!
AlexDaniel m: sub foo (--> Bool, Int $a, Int $x) { return True }
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GaE78idELy␤Type 'Bool' is not declared. Did you mean 'Cool'?␤at /tmp/GaE78idELy:1␤------> 3sub foo (--> Bool7⏏5, Int $a, Int $x) { return True }␤»
AlexDaniel shit, again this problem
m: sub foo (--> Bool Int $a, Int $x) { return True }
01:18 sprocket joined
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GYIfM8kTxz␤Type 'Bool' is not declared. Did you mean 'Cool'?␤at /tmp/GYIfM8kTxz:1␤------> 3sub foo (--> Bool7⏏5 Int $a, Int $x) { return True }␤» 01:18
AlexDaniel submits rakudobug 01:19
01:19 sprocket left, rburkholder left 01:20 deepi joined, psy left, disturbingly_rea left
kittenlips m: sub foo (Int $a, Rat $x) --> Bool { return True; } 01:20
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xhiS1XPatU␤Missing block␤at /tmp/xhiS1XPatU:1␤------> 3sub foo (Int $a, Rat $x)7⏏5 --> Bool { return True; }␤ expecting any of:␤ new name to be defined␤»
01:21 sprocket joined
AlexDaniel kittenlips: I think that the idea is that the return type is part of the signature 01:21
01:22 cygx_ joined
AlexDaniel kittenlips: therefore inside the brackets 01:22
deepi hi
kittenlips AlexDaniel: ah ok, yes that makes sense. My brain intuitively wanted to put the return type syntax after the signature parentheses
AlexDaniel kittenlips: well, that's how other languages do that, but not all of them
kittenlips yes I Python, which I also program in 01:23
AlexDaniel kittenlips: for example in SQL you can have OUT parameters that are declared inside the brackets
deepi i need help in writing perl code which edits cornjobs (deletes certain entries which match the regex )
kittenlips PL/SQL
01:23 cygx left, cygx_ is now known as cygx
AlexDaniel kittenlips: uh! Yes. 01:23
gfldex deepi: what version of Perl do you aim to write code for? 01:24
kittenlips deepi: are you interested in writing it in Perl 6?
hobbs kittenlips: well that's a different thing. You can do that with rw args, but it's not the same as a return value (just as in PL/SQL it's not the same as the return value)
AlexDaniel corn jobs!
01:24 deepi left
kittenlips deepi: Perl5 is perfectly suited for corn jobs 01:24
AlexDaniel hobbs: sometimes you can use it interchangeably 01:25
cygx kittenlips: you can declare a return type after the parens via `returns`
kittenlips cygx thank you
m: sub foo (Int $x, Rat $y) returns Bool { return True }; 01:26
camelia ( no output )
AlexDaniel nice!
kittenlips SO MANY WAYS to do things in Perl 6
it's very humbling when a language makes you feel like a child all over again 01:27
AlexDaniel cygx: I didn't know that, thanks 01:28
cygx glad to be of service
01:29 raiph joined
AlexDaniel well, it wouldn't be me if I didn't try this 01:30
m: sub foo (Int $a, Int $x --> Int) returns Str { return True }
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kQmhtyNVcd␤Redeclaration of return type for foo (previous return type was Int)␤at /tmp/kQmhtyNVcd:1␤»
AlexDaniel yeah… that's what I did… did not expect the error message to be so right 01:31
kittenlips AlexDaniel cygx: in the docs you see for example method definitions that show use of returns
although for people like me I would only find that if it explicity documented that there are two ways 01:32
AlexDaniel kittenlips: it should be documented! Where did you find it?
or was it just some random page?
gfldex it is not documented and i'm on it 01:33
skids There's actually supposedly a distinction between the two.
kittenlips AlexDaniel: it's not explicitly documented for example alongside --> form but you see it in doc.perl6.org/type/Signature when methods are described
01:34 _nadim left
AlexDaniel gfldex++ 01:34
kittenlips gfldex this part isn't clear to me doc.perl6.org/type/Signature#method_returns
01:34 aborazmeh joined, aborazmeh left 01:35 aborazmeh joined
kittenlips it just shows that if you define a signature with --> form return type then if you call .returns method on it you get back Int 01:35
sorry the type
AlexDaniel m: sub foo() returns Bool; say &foo.returns
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2hNUaooRUG␤A unit-scoped sub definition is not allowed except on a MAIN sub;␤Please use the block form.␤at /tmp/2hNUaooRUG:1␤------> 3sub foo() returns Bool;7⏏5 say &foo.returns␤»
01:35 aindilis joined
AlexDaniel m: sub foo() returns Bool {}; say &foo.returns 01:35
camelia rakudo-moar eca5df: OUTPUT«(Bool)␤»
01:35 psy joined
AlexDaniel kittenlips: ↑ 01:35
kittenlips: but that's the point!
kittenlips AlexDaniel++
AlexDaniel kittenlips: it's a *method* “returns” 01:36
kittenlips But it doesn't explicitly tell you in the docs that you can use the keyword returns to define the return type in your function/method declaration
as an alternative to the --> form
AlexDaniel kittenlips: yeah, well, I think that it should be documented somewhere else. Like in doc.perl6.org/language/functions
kittenlips m: sub foo(--> Int) {}; &foo.returns; 01:37
camelia ( no output )
skids m: Int sub a { "foo" }; a();
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gJI1S7Hyua␤Two terms in a row␤at /tmp/gJI1S7Hyua:1␤------> 3Int7⏏5 sub a { "foo" }; a();␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement m…»
skids m: my Int sub a { "foo" }; a();
camelia rakudo-moar eca5df: OUTPUT«Type check failed for return value; expected Int but got Str␤ in sub a at /tmp/1mV6q4VYmE line 1␤ in block <unit> at /tmp/1mV6q4VYmE line 1␤␤»
01:37 llfourn joined
kittenlips hey, shouldn't that have worked? 01:37
m: sub foo(--> Int) {}; say &foo.returns;
camelia rakudo-moar eca5df: OUTPUT«(Int)␤»
kittenlips right
AlexDaniel skids: that would be too much, don't you think? :) 01:38
kittenlips m: Int sub a { "foo" }; say &a.returns;
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lLpbz_ojJg␤Two terms in a row␤at /tmp/lLpbz_ojJg:1␤------> 3Int7⏏5 sub a { "foo" }; say &a.returns;␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ …»
kittenlips m: Int sub a() { "foo" }; say &a.returns; 01:39
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lq5PsM3iST␤Two terms in a row␤at /tmp/lq5PsM3iST:1␤------> 3Int7⏏5 sub a() { "foo" }; say &a.returns;␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ …»
kittenlips m: Int sub a() { 1 }; say &a.returns;
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Wc7aY3hrej␤Two terms in a row␤at /tmp/Wc7aY3hrej:1␤------> 3Int7⏏5 sub a() { 1 }; say &a.returns;␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ st…»
skids Actually now that I look at S06 it looks like maybe the distinction between .of and the probably deprecated or never implemented .as is likely obselete and handled by coercive types. 01:40
cygx m: my Int sub foo() {}; say &foo.returns
camelia rakudo-moar eca5df: OUTPUT«(Int)␤»
cygx ^ kittenlips
kittenlips question to everyone and I know it's just not important, but is it good programming style to have a space between sub/method name and signature when you declare it or not? 01:41
cygx++ so there are THREE ways to do it
skids kittenlips: there are some circumstances where not having the space makes syntax errors later on wonky, IIRC.
kittenlips m: my Int sub foo() {}; say &foo.returns; sub bar(--> Int) {}; say &bar.returns; sub baz() returns Int {}; say &baz.returns; 01:42
camelia rakudo-moar eca5df: OUTPUT«(Int)␤(Int)␤(Int)␤»
01:42 llfourn left
AlexDaniel m: my Int sub foo(--> Int) returns Int {}; say &foo.returns 01:43
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4V7LMPeRFY␤Redeclaration of return type for foo (previous return type was Int)␤at /tmp/4V7LMPeRFY:1␤------> 3my Int sub foo(--> Int) returns Int {}7⏏5; say &foo.returns␤ expecting any of:␤ …»
kittenlips I even think there's a fourth way
m: --> Int $a, Rat $b returns Int {}; 01:44
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PzTuS1gcLQ␤Prefix -- requires an argument, but no valid term found␤at /tmp/PzTuS1gcLQ:1␤------> 3--7⏏5> Int $a, Rat $b returns Int {};␤ expecting any of:␤ prefix␤»
skids m: sub foo() of Int {}; say &foo.returns
camelia rakudo-moar eca5df: OUTPUT«(Int)␤»
kittenlips skids++
wow this is like a game
FOUR WAYs
AlexDaniel nooooooooooooooooooooooo 01:45
kittenlips Is of just a synonym for returns or does it have other special significance?
AlexDaniel *mind blown*
gfldex: document all of them!
gfldex m: sub f(Int ::T $t --> $ where * ~~ T) { $t }; f(1);
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EQGNgK68HV␤Malformed return value␤at /tmp/EQGNgK68HV:1␤------> 3sub f(Int ::T $t -->7⏏5 $ where * ~~ T) { $t }; f(1);␤»
gfldex m: sub f(Int ::T $t --> T) { $t }; f(1);
camelia rakudo-moar eca5df: OUTPUT«Type check failed for return value; expected T but got Int␤ in sub f at /tmp/80NXSkd2K6 line 1␤ in block <unit> at /tmp/80NXSkd2K6 line 1␤␤»
gfldex that may be worth a bug report too
see design.perl6.org/S06.html#En_passan...pe_capture
kittenlips I have so much to learn because I don't even know what these ::X syntax do 01:46
gfldex m: sub f(Int $t --> 123 ) { }; say f(1) 01:47
camelia rakudo-moar eca5df: OUTPUT«123␤»
kittenlips gfldex++
01:47 sprocket left
skids m: sub f (::T $x, T $y_is_same_type_as_x) { }; f(4,"foo"); #kittenlips: that, basically 01:48
camelia rakudo-moar eca5df: OUTPUT«Type check failed in binding $y_is_same_type_as_x; expected Int but got Str␤ in sub f at /tmp/XedNUupx78 line 1␤ in block <unit> at /tmp/XedNUupx78 line 1␤␤»
01:48 cygx left
gfldex m: sub f(Int $t --> 123 ) { return }; say f(1) 01:48
camelia rakudo-moar eca5df: OUTPUT«123␤»
gfldex m: sub f(Int $t --> 123 ) { return 666 }; say f(1)
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yo0zqv1uGH␤No return arguments allowed when return value 123 is already specified in the signature␤at /tmp/yo0zqv1uGH:1␤------> 3sub f(Int $t --> 123 ) { return 666 7⏏5}; say f(1)␤»
kittenlips gfldex I'm trying to find the most appropriate place in the docs to document return types 01:49
signature return types
gfldex m: sub f(Int $t --> 123 ) { return 666 }; say f(1); CATCH { default { say $_.perl } }
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dlx05kAGLJ␤No return arguments allowed when return value 123 is already specified in the signature␤at /tmp/dlx05kAGLJ:1␤------> 3sub f(Int $t --> 123 ) { return 666 7⏏5}; say f(1); CATCH { default { …»
01:49 aborazmeh left
gfldex looks like that one is uncatchable 01:49
hobbs kittenlips: "of" is actually the one that's documented in S06 (it's also used for typed arrays and such, so you can have my @array of Int)
sammers hi everyone, are there any good resources for Role-oriented programming that you can recommend? 01:50
gfldex m: sub f(Int $t --> Str(Int) ) { return 666 }; say f(1).WHAT; CATCH { default { say $_.?perl } }
camelia rakudo-moar eca5df: OUTPUT«X::TypeCheck::Return.new(operation => Any, got => 666, expected => Str(Int))␤»
gfldex m: sub f(Int $t --> Str(Int) ) { return 666 }; say f("1").WHAT; CATCH { default { say $_.?perl } }
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ixG19kPdwq␤Calling f(Str) will never work with declared signature (Int $t --> Str(Int))␤at /tmp/ixG19kPdwq:1␤------> 3t $t --> Str(Int) ) { return 666 }; say 7⏏5f("1").WHAT; CATCH { default { say $_.…»
kittenlips hobbs++ one question though should users be reading the synopses for documention?
gfldex m: sub f(Str $t --> Str(Int) ) { $t }; say f("1").WHAT; CATCH { default { say $_.?perl } } 01:51
camelia rakudo-moar eca5df: OUTPUT«X::TypeCheck::Return.new(operation => Any, got => "1", expected => Str(Int))␤»
hobbs kittenlips: I dunno, but I am. :)
skids kittenlips: probably add a section to docs.perl6.org/language/functions#D..._Functions
kittenlips as a new user to Perl 6 I wasn't looking there
hobbs I'd assume not, but it's still a resource
gfldex kittenlips: that S?? are not updated anymore, so there are a few things in there that are gone already
docs.perl.org will be the user facing side of the language spec 01:52
kittenlips oh hobbs were you talking about the roast?
01:52 sprocket joined 01:53 sprocket left
kittenlips m: class MyClass { multi method foo (Int $x) returns Bool { return True; } multi method foo (Int $x, Rat $y) returns Str { return "Barf" } } 01:54
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BgosIFaTF2␤Strange text after block (missing semicolon or comma?)␤at /tmp/BgosIFaTF2:1␤------> 3o (Int $x) returns Bool { return True; }7⏏5 multi method foo (Int $x, Rat $y) retur␤ expecting an…»
hobbs sammers: it's for Perl 5 + Moose, not for Perl 6, but rjbs's OSCON tutorial "Moose is Perl" covers role-based patterns really nicely starting about a third of the way in. Just, y'know, all of the code examples are wrong :) 01:55
kittenlips m: class MyClass { multi method foo (Int $x) returns Bool { return True; } multi method foo (Int $x, Rat $y) returns Str { return "Barf"; } } 01:56
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/w7V4So0p8G␤Strange text after block (missing semicolon or comma?)␤at /tmp/w7V4So0p8G:1␤------> 3o (Int $x) returns Bool { return True; }7⏏5 multi method foo (Int $x, Rat $y) retur␤ expecting an…»
sammers hobbs: great, thanks. I will take a look. For role naming, is it basically the name is an adjective? Like the examples here? And then act as a collection of actions?
timotimo is working on making .hyper pay attention to the incoming sequence numbers
01:57 pjscott joined
skids glfdx: when was it decided to shuk off the synopsis as the design docs? I don't see where docs.perl6.org can serve the same purpose and stay beginner-friendly. 01:57
glfdex even 01:58
kittenlips m: multi foo (Int $x) returns Bool { }; multi foo (Int $x, Rat $y) returns Str { }
camelia ( no output )
kittenlips Is it bad programming style to have a multi dispatch sub/method which returns different types?
I would think so
01:59 Ben_Goldberg joined, pjscott left 02:00 pjscott joined
gfldex kittenlips: the dispatcher doesn't care. And the return type check is just that, a type check. 02:00
02:00 Ben_Goldberg is now known as BenGoldberg
skids wonders if they make thin usb keyboards meant to sit on top of a laptop keyboard because the laptop keyboard sucks. 02:01
gfldex m: sub f(--> Any) { Nil }; dd f();
camelia rakudo-moar eca5df: OUTPUT«Nil␤»
gfldex m: sub f(--> Int) { Nil }; dd f();
camelia rakudo-moar eca5df: OUTPUT«Nil␤»
gfldex kittenlips: see ^^^
kittenlips what is dd? 02:02
BenGoldberg Data Dumper
Or perhaps, Debug Dumper
kittenlips thanks
or Dig Dug
BenGoldberg I haven't played that in a looooong time.
sammers hobbs: found it, youtu.be/LKXvG6VKew4?t=3263 02:03
kittenlips gfldex your commands are you showing a bug in Rakudo? 02:04
hobbs sammers: in practice I've seen plenty of role names that are nouns. Adjectives are a good way to think about it, but when there's a perfectly good noun for "doodad that does XYZ"... :) 02:06
gfldex kittenlips: sorry, i don't get you 02:07
kittenlips: since this is a parse-error ===SORRY=== even
kittenlips in the examples you were trying to show
m: sub f(--> Any) { Nil }; dd f();
camelia rakudo-moar eca5df: OUTPUT«Nil␤»
kittenlips m: sub f(--> Int) { Nil }; dd f();
camelia rakudo-moar eca5df: OUTPUT«Nil␤»
skids kittenlips: no, Nil and Failure are always allowed as return types even when specified otherwise.
kittenlips oh wow I didn't know that
gfldex and Nil is not (always) a failure mode indicator 02:08
skids (So that soft errors can still get out from inside.)
kittenlips I have to say Perl 6 is going to need amazing docs in order to lower barrier of entry, it is a very very deep language
sammers thanks hobbs, I have seen some modules in the modules.perl6.org use class Foo does Role {} which seems a little generic as naming conventions go...
02:09 pierre-vigier joined 02:12 nbrown left
kittenlips gfldex: if you are updating the docs I believe documentation of return type constraints should be actually in three places 02:12
docs.perl6.org/language/objects#Methods doc.perl6.org/type/Signature#Type_Constraints doc.perl6.org/language/functions#Signatures
awwaiid kittenlips: yes ... I keep drawing all of these mind-maps to try to figure out a minimal set of axioms for the language :)
gfldex Function.html points to Signature.html, what is the right place for it beside the FAQ 02:13
the FAQ got --> covered
kittenlips and here again are the FOUR WAYs we discovered
02:14 pierre-vigier left
kittenlips m: my Int sub foo() {}; sub bar(--> Int) {}; sub baz() returns Int {}; sub bom() of Int {}; 02:14
camelia ( no output )
02:15 pjscott left
gfldex how do i quite a > in Pod6? 02:15
*quote
X<-->> doesn't work so well :)
02:17 cognominal joined
skids C<-->>? 02:17
flussence try X<< --> >>?
timotimo or X«-->» 02:18
(unless this is pod5
)
flussence
.oO( pod6 ought to let us write q:X{}... )
02:19
skids I see C«=>» used, so «-->» should work 02:21
kittenlips is it normal for Github to barf when trying to look at pod?
github.com/perl6/doc/blob/master/d...rators.pod
flussence yep, completely normal for github... 02:22
kittenlips pod is kryptonite for Github
or should i say Pod6
02:22 xpen joined
flussence I'd say perl6 in general is, it's been an uphill battle to make that site not suck to use :/ 02:23
kittenlips And hopefully someday properly syntax highlight Perl6
02:23 FROGGS joined 02:24 [Tux] left
kittenlips I guess every site has it's drawbacks for work we also have a lot of projects on Bitbucket and it has its own share of probs 02:24
timotimo [0 1 2 3 5 6 7 8 10 11 12 14 15 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 38 39] 02:25
so close to the goal!
kittenlips timotimo: which goal?
.hyper?
flussence gitlab does a passable job of p6 highlighting. most of it comes out red for some reason, but it's readable... 02:26
timotimo yes
kittenlips flussence: that's true it at least doesn't make things worse by highlighting 02:27
02:28 pjscott joined
kittenlips have to say both nine and MadcapJake work on syntax highlighting efforts has been awesome 02:28
flussence then again, it might be using a perl5 highlighter and just getting lucky on the boring code I throw at it :D
dalek c: 95c4a87 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
doc Constraining Return Types
c: b1baf91 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
Merge pull request #303 from gfldex/master

doc Constraining Return Types
02:29 FROGGS left, uruwi_ left, addison joined
gfldex m: sub f(%a is default(0)) { $a }; f.perl.say; 02:29
camelia rakudo-moar eca5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Mh5Tua98BP␤Can't use unknown trait 'is default' in a parameter declaration.␤at /tmp/Mh5Tua98BP:1␤ expecting any of:␤ rw␤ readonly␤ copy␤ required␤ raw␤ …»
kittenlips glfdex++
just one thing constrain --> contraint if you use it in noun form 02:30
02:32 johnjohn101 joined
johnjohn101 hi perl 6 peeps 02:32
dalek c: c3db56f | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
fix typos
02:33
c: e1e225b | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
Merge pull request #304 from gfldex/master

fix typos
kittenlips hi johnjohn101
gfldex that was the test if you are paying attention :)
kittenlips ;-)
02:33 addison left
timotimo [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39] 02:33
doesn't that look good?
kittenlips awesome! what am I looking at? 02:34
flussence working threads? :) 02:35
kittenlips just kid, i know you wanted to make sure hyper was controlling order
flussence (does that even use threads?)
timotimo :)
yes, it does
0.12user 0.02system 0:00.14elapsed 104%CPU (0avgtext+0avgdata 78992maxresident)k
autarch what's a good we to compare to Regex objects?
kittenlips The spec says that .hyper must retain order while .race doesn't have to right?
timotimo yep
02:35 bpmedley left
timotimo [0 1 2 3 4 5 6 7 8 10 11 9 14 15 16 17 18 19 20 21 12 13 22 23 24 25 26 27 28 29 30 31 32 35 36 33 34 37 38 39] 02:36
^- this one is with .race
flussence autarch: um, that's a bit vague
kittenlips timotimo: is this something you had to implement in MoarVM?
timotimo no
i'll clean up the code a tiny bit and push it to a branch
kittenlips oder?
02:36 [Tux] joined
autarch flussence: I want to see if two Regex objects are the same 02:36
timotimo then you can see it
flussence I think regexes stringify to their code, not sure if it canonicalises them in any way though 02:37
timotimo not at all
flussence m: my $x; my $y = rx/ foo bar $x baz/; say $y
camelia rakudo-moar eca5df: OUTPUT«rx/ foo bar $x baz/␤»
autarch yeah, that's what I was afraid of - I'll find another way to make this work 02:38
02:38 pjscott left
timotimo i think the control flow could be made a bit simpler 02:38
02:38 llfourn joined
timotimo but i'm dead tired right now ;) 02:38
dalek kudo/hyper_tracks_sequence_numbers: 730639f | timotimo++ | src/core/HyperSeq.pm:
hyper now cares about sequence numbers of work

this code wants to get a bit cleaned up. i'm sure the control flow could be a bit less convoluted.
02:39
02:39 pjscott joined
timotimo kittenlips: have a look 02:39
flussence maybe :samespace one to the shape of the other, then string compare them... hm 02:40
flussence decides down this route lies worse insanity than html parsing and stops thinking too hard about it
02:41 sprocket joined, pjscott left
BenGoldberg html parsing isn't insanity. html parsing with pure old fashioned regex is insanity. 02:42
02:44 llfourn left
autarch I think with Perl 6 we could parse stackoverflow.com/questions/1732348...54#1732454 pretty easily 02:44
02:44 pjscott joined
hobbs HTML parsing isn't *completely* sane no matter what, when you get into the realm of "wrong but you still have to accept it" sort of constructs 02:44
02:45 sprocket left 02:46 xpen left, sprocket joined, xpen joined 02:47 pjscott left, herby_ joined
herby_ Good evening, everyone! 02:47
kittenlips me too, night all
02:47 kittenlips left
timotimo aaw 02:48
i hoped maybe kittenlips could have a look at cleaning that code up
02:48 pjscott joined 02:49 xpen_ joined 02:50 sprocket left 02:52 BenGoldberg left, BenGoldberg joined, xinming_ joined 02:53 xpen left, pjscott left 02:54 johnjohn101 left, BenGoldberg left
autarch every time I start working on one module I end up with an urge to write another module to make writing this one easier 02:55
02:55 BenGoldberg joined 02:56 xinming left
flussence seems endemic round these parts... 02:56
02:56 llfourn joined
ugexe m: say ::("Test").^methods[^3]; say ::("Test").Int; # whats really happening that .^methods doesn't fail? 02:59
camelia rakudo-moar eca5df: OUTPUT«(BUILD DESTROY AT-POS)␤No such symbol 'Test'␤ in block <unit> at /tmp/sOFDTLwzxm line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/sOFDTLwzxm line 1␤␤»
timotimo doesn't seem to have that
m: say ::("Test").WHAT 03:00
camelia rakudo-moar eca5df: OUTPUT«(Failure)␤»
timotimo you can ask the failure for its methods no-prob
ugexe ah
but .Int is listed in .^methods 03:01
timotimo yeah, but it throws the exception :) 03:02
m: say Failure ~~ Any 03:03
camelia rakudo-moar eca5df: OUTPUT«True␤»
timotimo m: say Any.new.Int
camelia rakudo-moar eca5df: OUTPUT«Method 'Int' not found for invocant of class 'Any'␤ in block <unit> at /tmp/svLz8CGmA3 line 1␤␤»
timotimo hmm.
ah, yes. Failure has its own Int method
it throws when unhandled, otherwise it returns 0
um, it returns Int 03:04
on jvm it returns 0
awwaiid hmm. "only onlystar-protos can be merged" 03:05
03:06 vendethiel left, ccakes left
timotimo bedtime 03:09
good night!
03:09 AlexDaniel left
gfldex is there any consensus where and how to store *.pod for a module? 03:10
03:11 vendethiel joined 03:12 noganex_ joined
gfldex the consensus in the eco system seams to be: "a README.md will do dude!" 03:13
ugexe most people read the docs directly from github, so that would make sense 03:14
flussence putting it in a doc/ directory with the same structure as lib/ seems like a sensible choice
autarch gfldex: I've been writing actual pod for my code - I don't think a README.md is sufficient for anything non-trivial
03:14 noganex left
autarch I have vague plans around making Dist::Wocky turn pod into markdown and update a gh-pages branch on "wocky release" 03:14
03:15 Guest9702 left
autarch which seems like a reasonable thing to do til we have a cpan of our own 03:15
ugexe github displays non-pod6 pod already
rjbs autarch: Can Dist::Wocky announce releases over XMPP?
autarch rjbs: uh, it can't do squat right now ;) 03:16
but I'm sure that could be a plugin someone else could write
03:16 SwellJoe joined
rjbs Could that plugin be called Dist::Wocky::Jabber? @_@ 03:16
awwaiid gist.github.com/awwaiid/01fe0e56e2c1220548a1 # All the :lang 03:17
autarch rjbs: ah, I see
awwaiid I got Lua, Ruby, Python, and Perl5 all running from EVAL in the same p6 script (but not the same block) 03:19
03:23 evdubs left
b2gills m: say (^5).hyper(:batch(1),:degree(5)).map({ sleep 0.5 - $_/10; $_ }).eager # reliably in the exact wrong order (backlogging) 03:25
camelia rakudo-moar eca5df: OUTPUT«(4 3 2 1 0)␤»
03:28 pjscott joined 03:30 addison joined 03:32 vendethiel left 03:34 addison left 03:40 pjscott left 03:44 uvtc joined 03:52 psy left, edehont joined 03:55 psy joined 04:02 rickbike left 04:03 jasanj left 04:04 jasanj joined 04:11 cdg joined 04:17 visitor joined 04:21 visitor left 04:24 pjscott joined, pjscott left 04:25 pjscott joined 04:31 edehont left 04:42 addison joined 04:47 pjscott left 04:48 FROGGS joined, rickbike joined 04:50 addison left 04:52 addison joined 04:53 pjscott joined 04:55 bpmedley joined 04:58 FROGGS left 04:59 nexyssno joined, FROGGS joined 05:02 addison left 05:06 pjscott left 05:07 pjscott joined 05:09 FROGGS left 05:11 protium joined 05:14 AndyDee left 05:17 pjscott left, cdg left, pjscott joined 05:19 addison joined 05:24 nexyssno left 05:25 addison left 05:28 pjscott left, uvtc left 05:30 FROGGS joined 05:31 rburkholder joined, rburkholder left 05:39 xinming joined
ugexe why does cur.install add a shebang to source files? 05:39
nevermind, the module author added it to their module for some reason...? 05:40
is there any reason to do that?
05:41 nige1 joined 05:43 xinming_ left, pjscott joined
TimToady smiles at the usage of "shebang" for #!, which he coined so very long ago that nobody knows it... 05:43
05:44 Cabanossi left
tony-o_ i'll credit you next time my old man tells me i can't say that at work timotimo 05:45
TimToady:
05:45 FROGGS left
flussence I'd guess the most likely reason for putting it in a module is to trick vim's ftdetect into doing the right thing 05:45
or some other highlight thingy 05:46
tony-o_ my really old modules have that, mostly because i'd use it to ensure valid syntax from vim
hobbs TimToady: I thought it was William Hung in 2004 :)
TEttinger I took a CS class with the very same William Hung 05:47
he was not exactly competent
05:47 Cabanossi joined
hobbs ha 05:47
TEttinger he contributed, IIRC, between 0 and 10 lines of code to the final group project 05:48
10 might be generous 05:49
tony-o_ that's 10 lines you didn't have before
TEttinger and a lot of hassle asking him, did you read the docs yet?
and of course he bailed when we got allowed overtime to finish it. only 2 people in the what, 5-person group stuck with it to the end 05:50
tony-o_ sounds like there are some holes in this story 05:51
TEttinger yep
but mostly we bit off more than we could chew, and he didn't know how to chew
05:53 BenGoldberg left
ugexe site/dists/$SHA1<depends> has a value of `[ [ ] ]` when meta6.json has `"depends" : [ ]`, and a value of `[ ]` if there there is no `depends` in the meta 05:54
05:54 regreg joined 05:55 FROGGS joined 05:58 geraud left 06:01 khw left
TimToady nah, I coined it long before that in some of my ancient patch files for rn or some such, "Delete everything down to the shebang line and run it through shell" was how it went, or some such. 06:02
'course it's possible that multiple people invented it independently, but I never heard anyone else use it before me 06:03
this would probably be in the late '80s 06:04
hobbs I was kidding of course :) 06:05
06:05 pjscott left
hobbs but that's interesting. I don't think anyone really *does* know the origin for sure, although wikipedia has you as the earliest known cite. 06:07
frew wonders if it would be fun to make a perl6-ish pico-8 06:09
TimToady oh, good, they listened to me then, after I noticed they had "nobody knows" earlier :)
well, I know the origin for pretty sure :) 06:10
06:10 pierre-vigier joined
TimToady after all, I was there when I coined it :) 06:11
and it was quite intentional at the time
me already being the sort of tail that wags the dog frequently 06:12
06:13 kaare_ joined 06:14 xpen_ left
hobbs :) 06:14
06:14 pierre-vigier left 06:15 xpen joined, pjscott joined
TimToady and it was certainly just short for "sharp bang" when I coined it, regardless of their ruminations in that paragraph 06:16
moritz good morning 06:17
06:19 psy left 06:22 FROGGS left
rickbike Happy Old Year, #perl6 06:22
skids o/
rickbike I had a issue manually installing Panda. 06:23
The scripts use git:// urls
Github recommends https:// for cloning
BTW, perl6 rocks, thanks for all the hard work! 06:24
TimToady yer welcome! 06:25
rickbike created issue: github.com/tadzik/panda/issues/277 06:26
adrusi I'm having problems installing panda. trying to package actually, but a normal manual install is failing 06:28
bootstrap.pl succeeds but when I run pandas I get this error ix.io/n4z
rickbike Visiting my Dad, maybe ComCast ISP doesn't like git:// ?
gfldex .u ᚒ
yoleaux U+1692 OGHAM LETTER UR [Lo] (ᚒ)
TimToady .u 卅 06:31
yoleaux No characters found
06:32 sprocket joined
gfldex perfectly fine chars for operators if you ask me --> en.wikipedia.org/wiki/Ogham_%28Unicode_block%29 06:32
hobbs rickbike: not sure what a fix should be, if any (the git urls really *should* work), but I have a workaround for you if you would like it
adrusi git:// urls won't work if port 22 is blocked 06:33
hobbs sure they will, git:// is port 9418, not 22 :) 06:34
06:34 SwellJoe left 06:35 sprocket left
rickbike since https "always" works, it should be the goto url everywhere in the scripts 06:35
the panda scripts seem to be using git urls, so those should be replaced with https 06:36
ugexe jdv79: so even though its not specced, source-url is part of rakudo's Distribution object apparently: github.com/rakudo/rakudo/blob/nom/...ion.pm#L25 06:37
rickbike from Fetcher.pm: 06:38
when /^[http|https]'+git://'/ { return git-fetch $from.subst(/'+git'/, ''), $to, $commit;}
Is that substituting git into https URLs? 06:39
hobbs no
skids it's removing '+git' 06:40
hobbs it's replacing http+git:// with http://
and likewise with https
other than that, it uses the URL that the module says it should
you won't find the problem in the code.
skids Hrm well META.list in ecosystem is all https methods. 06:41
hobbs it's the URLs within the META.infos pointed to by that list 06:42
e.g. raw.githubusercontent.com/tadzik/F.../META.info has source-url: "git://github.com/tadzik/File-Find.git" 06:43
skids We have something that lints those IIRC?
hobbs rickbike: do you want a workaround so you can get some stuff installed? That, at least, is pretty easy
at least for everything on github, which is... apparently everything :) 06:44
rickbike hobbs: yes, please :)
hobbs rickbike: just add these two lines to ~/.gitconfig: paste.scsys.co.uk/503700 06:45
rickbike hobbs++
hobbs ++ whoever created that super useful feature :) 06:46
ugexe cur.install should not install a module that fails to precompile. '===SORRY!=== Error while compiling ...' but it still installed the dist 06:47
jeez
TimToady finally nailed the value loop context bug, whew! 06:49
turned out when it created a new block it was pushing it into the declarations of a block too far up the stack, so that even if the outer were set correctly on the block, the variables were not elaborated at the time the block was cloned 06:50
[Tux] test Method 'get' not found for invocant of class 'Any'
in sub MAIN at test.pl line 229
in block <unit> at test.pl line 220
ugexe ArgFiles was just changed to CatFiles or something... probably related to that somehow 06:51
TimToady likely
[Tux] for lines () {
06:52 pjscott left
TimToady lizmat: ^^ 06:52
06:53 pjscott joined
[Tux] same for for lines() :eager { 06:53
that is an older script, and I know :eager isn't needed anymore
06:54 regreg left 06:55 pjscott left, pjscott joined
skids changes a few packages to https, such that he can. 06:58
07:02 SwellJoe joined, regreg joined 07:07 araujo left 07:08 araujo joined 07:13 bpmedley left 07:17 edehont joined
gfldex i just checked and git:// is a lot faster 07:17
07:18 pierre-vigier joined
edehont Hi, dear Perl-people! 07:19
skids o/ 07:20
edehont Trying to get my head around supplies and taps, I get a weird result from the example in the docs: doc.perl6.org/type/Supply#method_share
rickbike gfldex: some evil ISPs throttle upper ports, apparently including git:
edehont Both arrays @first and @second remain empty, so the result of the final say is 0. 07:21
gfldex m: my $s = Supply.from-list(^100000).share; my @first; $s.tap: { @first.push($_) }; my @second; $s.tap: { @second.push($_) }; say @first + @second; 07:23
camelia rakudo-moar eca5df: OUTPUT«0␤»
gfldex m: my $supplier = Supplier.new; my $supply_1 = $supplier.Supply; $supply_1.tap(-> $v { say "One $v" }); my $supply_2 = $supplier.Supply; $supply_2.tap(-> $v { say "Two $v" }); $supplier.emit(42); 07:24
camelia rakudo-moar eca5df: OUTPUT«One 42␤Two 42␤»
gfldex m: my $s = Supply.from-list(^100000); my @first; $s.tap: { @first.push($_) }; my @second; $s.tap: { @second.push($_) }; say @first, @second; 07:25
camelia rakudo-moar eca5df: OUTPUT«[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 8…»
07:26 pjscott left 07:27 pjscott joined
dalek rakudo/from-loop: 9cecde8 | (Stefan Seifert)++ | src/core/Exception.pm: 07:27
rakudo/from-loop: De-confuse people trying to load a module for a CORE type
rakudo/from-loop:
rakudo/from-loop: Tell people who try to load a module when a similarly named internal
rakudo/from-loop: type is available. E.g. give a helpful message when someone tries to:
07:27 dalek left 07:28 dalek joined, ChanServ sets mode: +v dalek, dalek left 07:29 dalek joined, ChanServ sets mode: +v dalek, xpen left, pjscott left 07:30 lnrdo left 07:31 lnrdo joined
TimToady m: sub f($x) { my $z; do $z while ++$z < $x;}; say f(5) 07:31
camelia rakudo-moar eca5df: OUTPUT«Cannot call prefix:<++>(Any); none of these signatures match:␤ (Mu:D $a is rw)␤ (Mu:U $a is rw)␤ (Int:D $a is rw)␤ (int $a is rw)␤ (Bool $a is rw)␤ (Num:D $a is rw)␤ (Num:U $a is rw)␤ (num $a is rw)␤ in block <uni…»
skids m: my $s = Supply.interval(1).share; my @first; $s.tap: { @first.push($_) }; sleep 1; my @second; $s.tap: { @second.push($_) }; sleep 1; say @first + @second; 07:33
camelia rakudo-moar eca5df: OUTPUT«1␤»
gfldex m: my $su = Supplier.new; my $s = $su.Supply; my @first; $s.tap: { @first.push($_) }; my @second; $s.tap: { @second.push($_) }; $su.emit($_) for ^1000; say @first + @second;
camelia rakudo-moar eca5df: OUTPUT«2000␤»
gfldex edehont: see ^^^
skids m: my $s = Supply.interval(1).share; my @first; $s.tap: { @first.push($_) }; sleep 1; my @second; $s.tap: { @second.push($_) }; sleep 1; say @first, @second; 07:34
camelia rakudo-moar eca5df: OUTPUT«[1 2][2]␤»
gfldex not sure if the example should have worked or if it's outdated tho
skids That example is screwey.
Maybe it is assuming caching
edehont gfldex: Thanks!
07:36 SwellJoe left
skids m: my $s = Supply.interval(1).share; my @first; $s.tap: { @first.push($_) }; sleep 1; my @second; $s.tap: { @second.push($_) }; sleep 1; say @first + @second; say @first, @second; say @first + @second; 07:36
camelia rakudo-moar eca5df: OUTPUT«3␤[1 2][2]␤3␤»
gfldex m: Supply.from-list(^10).share.WHAT.say 07:37
camelia rakudo-moar eca5df: OUTPUT«(Supply)␤»
skids Though it's kinda strange that the .elems seems to take some sort of shortcut when the arrays are not iterated.
07:37 nige1 left
edehont gfldex: With beginners like me, in the end the documentation will be fool proof! 07:37
gfldex the iterator is doing count-only i guess
07:38 xpen joined, Psyche^ joined 07:39 CIAvash joined 07:40 nige1 joined 07:41 xpen left, _mg_ joined, Psyche^_ left, xpen joined 07:42 pjscott joined 07:43 domidumont joined, pierre-vigier left, xpen_ joined
edehont gfldex: Thanks for now, will be back later. 07:44
07:46 pierre-vigier joined 07:47 xpen left 07:48 domidumont left, domidumont joined 07:49 _mg_ left
TimToady m: sub f($x) { my $z; do $z while ++$z < $x;}; say f(5) 07:51
camelia rakudo-moar 8d8d74: OUTPUT«(1 2 3 4)␤»
TimToady that's better
skids TimToady++ 07:52
TimToady closed #127013 and dups #127022 & #127069
.tell jnthn We now do value loops using your Seq.from-loop routines, after some drama over doing block transforms outside of where @!BLOCKS is a valid way to look things up 07:54
yoleaux TimToady: I'll pass your message to jnthn.
07:57 edehont left, lnrdo left
moritz off-topic question: can somebody recommend some tooling for creating e-books? 07:58
I'd like to write text in markdown or another simple markup format, and generate epub and PDF files from that
gfldex epub is compressed xhtml with some fairy dust 07:59
after you got the xhtml you use metacpan.org/pod/EBook::EPUB to stich them together 08:00
dalek c: 03f2f85 | skids++ | doc/Type/Supply.pod:
Better and less racey example of Supply.share
gfldex there is a javatool publishing houses require to be used that checks epubs for conformance
github.com/IDPF/epubcheck there it is 08:02
08:03 AlexDaniel joined, anaeem1_ joined, lnrdo joined, anaeem1_ left
moritz gfldex: thanks 08:04
AlexDaniel m: say 𝍬
camelia rakudo-moar 8d8d74: OUTPUT«40␤»
AlexDaniel m: say 𝍪 08:05
camelia rakudo-moar 8d8d74: OUTPUT«20␤»
AlexDaniel ah, right
moritz gfldex: thanks
AlexDaniel m: say 𝍢
camelia rakudo-moar 8d8d74: OUTPUT«3␤»
AlexDaniel counting rods, yay!
moritz googling shows that people recommend pandoc to convert markdown to epub 08:06
08:08 pjscott left
CIAvash moritz: Not sure it helps www.masteringemacs.org/article/how...k-in-emacs 08:09
08:11 darutoko joined 08:13 xinming_ joined 08:14 raiph left 08:16 zengargoyle left, xinming left 08:18 xinming joined
dalek kudo/nom: 5a69da8 | TimToady++ | src/core/Exception.pm:
improve message on premature virtual method call

fixes RT #127097
08:18
08:19 xinming_ left 08:23 virtualsue joined 08:25 xinming left 08:31 xinming joined 08:32 atweiden joined 08:34 FROGGS joined 08:36 atweiden left 08:37 atweiden joined 08:38 xpen_ left
adrusi I'm able to get panda installed so that I can at least get to the help message if I run it as root and specify PERL6LIB=/usr/share/perl6/vendor/lib 08:38
08:39 xpen joined
atweiden i made a short script for installing p6 modules with distro package managers (no panda): github.com/atweiden/alacryd 08:39
it's working so long as you install maximum one module
the problem is different modules want to write to the same files on disk
this makes pacman angry
skids I would guess the result would also be bad, since the package manager would just overwrite. 08:40
atweiden skids: indeed
but for a second there i thought i had made a breakthrough :p
adrusi If I don't use root it fails because it tries to precompile the source files in /usr/share/perl6/vendor/lib which only root can do obviously
atweiden adrusi: been clashing with that as well 08:41
skids arusi: yeah I've seen some other folks talking about that but I don't know how far they got taming rakudo for a central install + user mods.
adrusi I've been trying to make this package work aur.archlinux.org/packages/perl6-panda/ 08:42
atweiden i saw that pkg earlier
it's what inspired me to write alacryd
:)
adrusi it looks like it's trying to do something along those lines with "rm "$pkgdir/usr/share/perl6/vendor/repo.lock""
atweiden, did you look into that at all? 08:43
atweiden adrusi: this is closest i've got to sanity ix.io/n4C
but it only works for one module
08:43 luiz_lha joined
atweiden *at a time 08:43
08:44 luiz_lha is now known as Guest26508
adrusi which files conflict? 08:44
nine adrusi: how did you do your "normal manual install" to arrive at that message?
08:44 lnrdo left, joydo left 08:45 lnrdo joined
atweiden /usr/share/perl6/vendor/precomp/413F3BD5D4F94D649F3E47499CCF19AF880EAC42.1451260638.8563/41/4101BAF379CCF9916615A00E2198D1A21E865858 08:45
/usr/share/perl6/vendor/precomp/413F3BD5D4F94D649F3E47499CCF19AF880EAC42.1451260638.8563/41/4101BAF379CCF9916615A00E2198D1A21E865858.deps
which is bad because one of those is moarvm bytecode
08:45 FROGGS left 08:46 xpen_ joined
adrusi nine: honestly at this point I'm not not able to replicate it 08:46
I was following the instructions in the panda readme at the time, I think I stopped seeing that error after rebuilding the entire perl6 toolchain 08:47
atweiden you'd think the filesystem locations would be deterministic
nine atweiden: does it make sense to search recursively in bin/?
atweiden nine: what do you mean?
08:48 xpen left
nine atweiden: your alacryd script searches the dists's bin/ directory recursively using the find sub. But I can't see a use-case for that. bin/ will always contain just one or several scripts, but having subdirectories in there doesn't make sense 08:48
atweiden oh, i just lifted that from panda or find::bundled 08:49
the script could easily do without it
08:50 regreg left
pierre-vigier m: say [[1,2]];say [[1,2],]; 08:51
camelia rakudo-moar 5a69da: OUTPUT«[1 2]␤[[1 2]]␤»
pierre-vigier how comes it flattens without the trailing comma... 08:52
nine atweiden: $*REPO[0] doesn't make sense either. $*REPO is the first repository in a linked list.
pierre-vigier: single argument rule
atweiden i thought it was a seq?
nine atweiden: nope
m: say $*REPO.^name
camelia rakudo-moar 5a69da: OUTPUT«CompUnit::Repository::Installation␤»
08:52 RabidGravy joined
nine m: say $*REPO.next-repo.^name 08:53
camelia rakudo-moar 5a69da: OUTPUT«CompUnit::Repository::Installation␤»
08:53 rindolf joined
Woodi hallo #perl6 :) 08:53
08:54 krunen left, nige1 left
pierre-vigier m: "Hello".say 08:54
camelia rakudo-moar 5a69da: OUTPUT«Hello␤»
dalek kudo/nom: 37e998d | lizmat++ | src/core/Promise.pm:
Fix for RT #127101
08:55
line-Python: 18f0c88 | (Brock Wilcox)++ | / (5 files):
Further use of RESOURCES
line-Python: f11f02f | niner++ | / (5 files):
Merge pull request #9 from awwaiid/resources-lib

Further use of RESOURCES
Thank you very much! I'd have copied just the same :)
Woodi so Marpa have a better grammar then Perl6: jeffreykegler.github.io/Ocean-of-Aw...pdown.html looks challenge has been thrown :) it means "rewrite" someday ? :)
08:56 FROGGS joined
dalek ast: f153dc5 | lizmat++ | S17-promise/a (2 files):
Add tests for RT #127101
08:58
08:58 rindolf left
nine Woodi: I don't see an issue. If Perl 6's grammars are not enough for your use case, just use Marpa. 09:00
It's no either or.
moritz marpa is a C library at its core, no? 09:02
you could bind it via nativecall
09:03 nige1 joined 09:04 FROGGS left
RabidGravy someone mentioned to me that the were working on a binding, can't remember who though 09:04
nine ugexe: can you also tell me how to implement your "should not install a module that fails to precompile" rule? 09:06
github.com/drforr/perl6-Marpa
It's in the ecosystem even :) 09:07
09:07 pierre-vigier left
RabidGravy oh yes, I knew I'd heard about it 09:08
DrForr++
09:09 atweiden left, pierre-vigier joined
kaare_ It would be nice if using Marpa was just a switch of the use statement, but I guess the structure is completely different ? 09:12
09:12 rindolf joined
moritz if you want the same structure, why use Marpa at all? 09:14
09:14 kanishka joined
kaare_ As I understand the compaints, Marpa can go further than Perl 6 Grammars. 09:15
moritz but if you want to make use of that, you can't have it just as a switch
kaare_ If you have a grammar and want to improve on that. And find that you need Marpa, then you'd have to rewrite it all. 09:16
Or you could just incrementally go further.
09:16 brrt joined
moritz ok, point taken 09:16
09:16 [particle]1 left, dotness joined 09:17 [particle] joined
nine .tell ugexe can you also tell me how to implement your "should not install a module that fails to precompile" rule? 09:21
yoleaux nine: I'll pass your message to ugexe.
kaare_ But I don't know where grammars give up. I'm surprised to see the two CSV modules don't use them, for example. 09:23
09:23 skids left
nine .tell ugexe :ver<*> doesn't look like a good idea. For one because you ask for version '*' (a string). But apart from that it seems to be doing here what you intended (tested with Inline::Python:ver<*> and Inline::Python:ver(v0.1)) 09:24
yoleaux nine: I'll pass your message to ugexe.
09:24 atweiden joined
nine kaare_: CSV is just terribly hard to parse really as it doesn't have a fixed grammar. You need to support lots of options for dealing with real world CSVs 09:25
09:26 andreoss joined
|Tux| kaare_, the *main* reason for not using grammars in Text::CSV is that the module allows too much dynamic settings 09:27
kaare_ OTOH there is a PDF::Grammar. Looks nice
nine .tell ugexe what exactly did tony-o offer to whom? I'm genuinly curious. Also what do you mean by "then boilerplate was merged"?
yoleaux nine: I'll pass your message to ugexe.
|Tux| e.g. the separation character may change between each pass on the users request
we tried a grammar approach (which was really hard to get right) 09:28
the default escape character being equal to the default quotation character does not simplify the use of grammar :)
09:29 atweiden left
kaare_ |Tux|: OK, but is it "just" a challenge, or is nearby impossible? 09:29
nine .tell awwaiid panda caches the module database locally. So even after you upload a new version, your local database may be out of date and panda uses version information from there, even though the downloaded module has updated info. So panda update is necessary right now.
yoleaux nine: I'll pass your message to awwaiid.
|Tux| I'd choose the first, but there are 4 possible approaches to parsing CSV (wwith options) 09:30
kaare_ IOW, would Marpa handle it?
09:30 atweiden joined
|Tux| 1. state machine, 2. Grammars, 3. Simple brute force and fix, 4. Chunks 09:30
|Tux| doesn't know Marpa 09:31
atweiden adrusi: upon further review, alacryd works
adrusi: i had forgotten that Compress::Zlib::Raw depends on Find::Bundled, and the Find::Bundled files were conflicting with those already installed to disk
*precomp files
kaare_ |Tux|: And Text;;CSV uses ... ? 09:32
|Tux| 4
1 would probably be the fastest, but also causes ugly and hard to maintain code
kaare_ Because of the number of distinct states? 09:33
brrt computer, hi 09:34
|Tux| 1: tux.nl/Talks/CSV6/state.html 2: tux.nl/Talks/CSV6/grammar.html 4: tux.nl/Talks/CSV6/chunks.html
Chunks because of easy to understand and maintainable code
Text::CSV has a huge pile of options
09:34 orq joined
|Tux| github.com/Tux/CSV/blob/master/lib/Text/CSV.pod 09:35
brrt Text::CSV is a big relief from python's csv library though... :-) 09:37
|Tux| can I take that as a compliment?
lizmat .tell jnthn feels to me that Supply.Promise should really be a promise on the Supplier to be kept in Supplier.done, so we wouldn't need a tap for it
yoleaux lizmat: I'll pass your message to jnthn.
lizmat afk for a few hours 09:38
&
09:40 araujo left
kaare_ |Tux|: Thanks for the explanations. Really nice to know the reason for design choices. 09:40
|Tux| welcome 09:41
perl5's Text::CSV_XS is written in perl and XS. The main functionality is highly optimized C (XS) code, where a state machine makes way more sense than chunks, because of the buffering overhead needed in XS 09:43
that also explains the speed difference we still face
09:45 AlexDaniel left, virtualsue left 09:46 virtualsue joined
kaare_ I donẗ worry much about speed right now. 09:46
Of course, in a year or so...
brrt Tux: certainly :-) 09:47
RabidGravy weeEeeEEEeell, I started on a termcap parser nine months ago which uses a grammar and part of the reason I haven't finished was that it was ridiculously slow
|Tux| thank you!
09:48 hankache joined
RabidGravy (i.e. twenty seconds to parse a typically /etc/termcap) 09:48
09:48 edehont joined
hankache morning 09:49
09:50 lnrdo left
brrt morning 09:50
we need more intelligent grammars, for sure, but it's kind of an open problem
09:50 lnrdo joined
hankache any news about that hyper problem we were talking about yesterday? 09:50
09:52 araujo joined, araujo left, araujo joined
kaare_ m: say [+] (1_000_000 .. 1) 09:52
camelia rakudo-moar 37e998: OUTPUT«-499999499999␤»
kaare_ ?
moritz kaare_: that's an optimization bug. Should say 0 09:53
m: say (1_000_000 .. 1).elems 09:54
camelia rakudo-moar 37e998: OUTPUT«0␤»
brrt what 09:55
m: say [+] (100 .. 1); 09:56
camelia rakudo-moar 37e998: OUTPUT«-4949␤»
brrt m: say (100 .. 1);
camelia rakudo-moar 37e998: OUTPUT«100..1␤»
brrt m: say (100..1).WHAT;
camelia rakudo-moar 37e998: OUTPUT«(Range)␤»
brrt m: say (100..1).List; 09:57
camelia rakudo-moar 37e998: OUTPUT«()␤»
brrt why....
have we applieda specific hyper [+] on ranges?
moritz it's not a hyper, but a reducer
and yes
brrt well, thats.... great, actually 09:58
you're right
moritz m: say (10 ... 1) # if you want a list of decreasing values
camelia rakudo-moar 37e998: OUTPUT«(10 9 8 7 6 5 4 3 2 1)␤»
brrt m: say (10 ... 1).WHAT
camelia rakudo-moar 37e998: OUTPUT«(Seq)␤»
10:00 xpen_ left
kaare_ moritz: ok, thanks 10:00
hankache can someone try this on their local rakudo: 10:01
my @array = (1..1000); my @result = @array.hyper.map( {$_ + 1} ); say @result;
are the results sorted ??
because they're not on mine
10:02 virtualsue_ joined
moritz nope, aren't 10:02
and I think that's a bug 10:03
only .race is allowed to change the order
hankache moritz yes this is what i thought
10:03 virtualsue left
moritz perl6-m -e 'my @array = (1..1000); say [<] @array.hyper.map( {$_ + 1})' 10:03
False
10:03 virtualsue_ is now known as virtualsue
moritz without the .hyper it says True 10:04
hankache but this made me wonder:
my @array = (1..10000); my @result = @array.hyper.map( {$_ + 1} ); say @result == @result.sort;
kaare_ m: say [+] (1 .. 1_000_000)'
camelia rakudo-moar 37e998: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QthSdhY0tj␤Two terms in a row␤at /tmp/QthSdhY0tj:1␤------> 3say [+] (1 .. 1_000_000)7⏏5'␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ …»
hankache m: my @array = (1..10000); my @result = @array.hyper.map( {$_ + 1} ); say @result == @result.sort;
camelia rakudo-moar 37e998: OUTPUT«True␤»
hankache ^^
moritz hankache: == is numerical comparison
kaare_ ok, that works on my moar
moritz m: my @array = (1..1000); say [<] @array.map( {$_ + 1})'
camelia rakudo-moar 37e998: OUTPUT«5===SORRY!5=== Error while compiling /tmp/W3q8JSaNFr␤Two terms in a row␤at /tmp/W3q8JSaNFr:1␤------> 3(1..1000); say [<] @array.map( {$_ + 1})7⏏5'␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ s…»
moritz m: my @array = (1..1000); say [<] @array.map( {$_ + 1})
camelia rakudo-moar 37e998: OUTPUT«True␤» 10:05
moritz m: my @array = (1..1000); say [<] @array.map( {$_ + 1})
camelia rakudo-moar 37e998: OUTPUT«True␤»
moritz m: my @array = (1..1000); say [<] @array.map( {$_ + 1})
camelia rakudo-moar 37e998: OUTPUT«True␤»
moritz my local rakudo is pretty old, so it might have been fixed in the mean time
hankache moritz i have the latest rakudo
so i should use ~~ instead of == ?
kaare_ It's strange that perl6 -e 'say [+] (1 .. 1_000_000)' and perl6 -e 'say [+] (1 ... 1_000_000)' has the same result on my rakudo 10:06
only the former is much much faster
10:06 vendethiel joined
moritz kaare_: not so strange if you consider that the range operator (..) preserves more information, and thus makes it much simpler to optimize operations such as [+] 10:07
kaare_ m: say [+] (1 .. 1_000_000) 10:08
camelia rakudo-moar 37e998: OUTPUT«500000500000␤»
RabidGravy c'mon kids you've got 14 (London) hours to make 12 modules 10:09
kaare_ m: say [+] (1 ... 1_000_000)
camelia rakudo-moar 37e998: OUTPUT«(timeout)»
kaare_ moritz: The range version is faster than Perl 5.The other is glacially slow
RabidGravy I'd expect that 10:10
10:10 xinming_ joined
kaare_ So it's just a matter of applying the same optimizations to all loops, and it will be faster than Perl 5 ;-) 10:11
10:11 leont joined
moritz kaare_: this particular optimization is not running a loop at all :-) 10:11
RabidGravy the range version may not be a loop and the ... version is making a million item list 10:12
leont m: my $f = any(<a b>); say "a" ~~ / $f /; 10:13
camelia rakudo-moar 37e998: OUTPUT«P6opaque: no such attribute '$!pos'␤ in block <unit> at /tmp/ME7ECnkVzs line 1␤␤»
leont Smells like a bug
moritz it does
10:13 xinming left
leont Also, is List.sort stable? If not, would it be sensible to add a :stable argument? 10:14
moritz leont: it is
10:14 rickbike left
leont Awesome :-) 10:14
10:15 pierre-vigier left
hankache timotimo fixed it but his code needs cleanup rt.perl.org/Public/Bug/Display.html?id=127099 10:17
leont rakudobugged the former
hankache if we can get github.com/rakudo/rakudo/commit/73...2ef243581c into rakudo it will be great 10:18
10:22 AlexDaniel joined
nine m: BEGIN (1, 2)[*-1] 10:23
camelia rakudo-moar 37e998: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8xvfmauIqj␤An exception occurred while evaluating a BEGIN␤at /tmp/8xvfmauIqj:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot invoke this object␤ at :␤»
nine woah ^^^
10:23 pierre-vigier joined
RabidGravy badoom 10:23
10:24 espadrine joined
AlexDaniel m: say BEGIN { (1, 2)[*-1] } 10:24
camelia rakudo-moar 37e998: OUTPUT«2␤»
AlexDaniel hankache: rt.perl.org/Public/Bug/Display.html?id=127099 10:26
ah
you've already found it
I should probably read the whole backlog before answering things…
m: say [+] (100 .. 1) # WAT 10:27
camelia rakudo-moar 37e998: OUTPUT«-4949␤»
moritz AlexDaniel: a bug; also mentioned in the backlog :-)
AlexDaniel :) 10:28
hankache AlexDaniel thanks for submitting the rt
10:28 Begi joined
AlexDaniel hankache: I hope it will be fixed soon. 10:29
hankache AlexDaniel timotimo++ did something that is pending cleanup
10:33 araujo left, pierre-vigier left
leont Where is "is export" documented? Couldn't find it in S06 or S10 10:35
10:36 s_kilk joined
moritz likely S11 10:36
doc.perl6.org/language/modules#Exp..._Importing
vendethiel o/, #perl6!
leont Ah, I see 10:38
It makes sense to be there now I'm reading it, but before that it didn't
10:39 s_kilk left
leont How do I export something without making it part of a tag? (Other than :ALL) 10:40
Wait, by making it explicitly :ALL, I guess
Not very intuitive to me, if the goal is really "I want to explicitly import functions: 10:41
"
nine I wonder how many more people will report panda's already-installed problem before someone just adds the 3 lines to fix it 10:44
edehont gfldex: First paragraph on doc.perl6.org/type/Supply contains a link "Supplier" that links to "doc.perl6.org/doc/Type/Supplier". It should however link to "doc.perl6.org/type/Supplier". 10:45
10:45 hankache left
edehont gfldex: Is this the right way to report these things? 10:46
leont I think there's a git repo for the website, just forgot which one it is 10:47
github.com/perl6/doc
moritz it's the perl6/doc repo on github
the link is in the footer on every single page :-) 10:48
edehont Only ONCE on every page? :-) 10:49
RabidGravy edehont, don't worry, my typo I'll fix it 10:50
leont Obviously, that's because we're all writing our own install clients ;-)
dalek c: 871edff | moritz++ | doc/Type/ (3 files):
Fix some inks, edehont++
RabidGravy actually, they were all mine :-( 10:51
sorry for any inconvenience
moritz edehont: thanks for reporting that. I've done a "git grep /Type" and found a few more instances
edehont I'm a beginner with Github, so it was not too obvious for me to go that route. I'll learn! 10:52
|Tux| nine, why not du upgrade instead of install automatically if panda detects that situation and report "up-to-date" if that proves to be the fact (just like cpan doas) 10:57
masak good noon, #perl6 10:59
lizmat masak o/ 11:00
moritz good morning, masak. It's *always* morning in UGT :)
11:00 itaipu joined
edehont moritz: Not only s/Type/type/ but also s/doc\///... 11:01
moritz edehont: aye; and I missed on. 11:02
dalek c: bfadf5e | moritz++ | doc/Type/Supply.pod:
Fix another link
masak moritz: that's not where I live, though ;) 11:03
11:04 hankache joined, nige1 left 11:06 TEttinger left, atweiden left 11:07 pierre-vigier joined
masak quick global poll: Q::Identifier or Q::Ident ? 11:07
11:07 s_kilk joined
masak (I'm asking because I keep using 'ident' as a variable/property name, but the type is the whole word, and I'm wondering in which direction I should enforce consistency) 11:07
hankache identifier 11:08
11:08 s_kilk left
masak hankache: because "ident" is opaque? 11:08
hankache easier to read
andreoss Q::Symbol
hankache yes masak
11:08 spider-mario joined
masak andreoss: "symbol" is neat, but too overloaded, and too unlike actual praxis/tradition in the Perl world. 11:09
hankache: I was entirely doing that argument, too, until I saw that in the code base I use 'ident' 489 times and 'identifier' only 87 times. 11:10
hankache: I'm afraid to lose a bit of convenience expanding that short form everywhere.
hankache masak I am a big fan of full words elements instead of elems etc. but u guess this is completely subjective 11:11
i guess**
masak yeah
11:11 pierre-vigier left
masak but what I ask about is people's subjective opinions, so that's fine :) 11:11
hankache ok :)
masak it's not a matter that can be settled objectively, as far as I can tell 11:12
"'identifier' is obviously better" -- "oh, ok then" :P
11:12 brrt left, orq left
masak by the way, today's autopun: twitter.com/cathywilcox1/status/60...6372237313 11:12
hankache hehe 11:13
11:13 bbkr left
leont Another subjective one: which do you like better: 11:16
Path::Iterator.skip-vcs.ext(rx/ 'pl' 6? $ /).shebang(rx/ ^ '#!' .* 'perl6' /).in(@dirs)
or 11:17
find(@dirs, :ext(rx/ 'pl' 6? $ /), :shebang(rx/ ^ '#!' .* 'perl6' /), :skip-vcs)
leont is used to the former, but feels like the latter will be more intuitive to others
11:18 virtualsue_ joined
masak huh. 'identifier' wasn't so bad. hankache++ 11:18
11:18 virtualsue left 11:19 virtualsue_ is now known as virtualsue, nige1 joined
hankache masak yeay!! 11:19
AlexDaniel m: say [+] 1000.5 .. 0
camelia rakudo-moar 37e998: OUTPUT«0␤»
leont Also, is their a cute way to create a pair without stringifying the key?
AlexDaniel m: say [+] 1000 .. 0 11:20
camelia rakudo-moar 37e998: OUTPUT«-499500␤»
masak m: say :foo
camelia rakudo-moar 37e998: OUTPUT«Unexpected named parameter 'foo' passed␤ in block <unit> at /tmp/ECacKnY_pB line 1␤␤»
AlexDaniel m: say [+] 0 .. 1000
camelia rakudo-moar 37e998: OUTPUT«500500␤»
masak m: say (:foo)
camelia rakudo-moar 37e998: OUTPUT«foo => True␤»
AlexDaniel m: say [+] 0 .. 1000.5
camelia rakudo-moar 37e998: OUTPUT«500500␤»
masak leont: like that?
m: say (42 => 7) 11:21
camelia rakudo-moar 37e998: OUTPUT«42 => 7␤»
masak leont: or like that?
leont: it's not pairs as such that stringify the key, it's hashes (by default)
leont I thought fat arrow did 11:22
masak as you see above, no
m: say (False => 7).perl
camelia rakudo-moar 37e998: OUTPUT«:False(7)␤»
masak er
11:22 Skarsnik joined
masak m: say ((False) => 7).perl 11:22
camelia rakudo-moar 37e998: OUTPUT«Bool::False => 7␤»
leont Ah!
nine |Tux|: because nobody seems to care enough about that issue to start coding
masak leont: maybe it does :) 11:23
leont: but parens break that
andreoss > clang: error: no such file or directory: '3rdparty/dyncall/dyncallback/libdyncallback_s.a'
masak .oO( parentheses are for grouping! ) :P
leont m: say ((Str) => 1).perl
camelia rakudo-moar 37e998: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/UTbY9JilL3 line 1␤Str => 1␤»
Skarsnik Hello 11:24
yoleaux 30 Dec 2015 21:57Z <nine> Skarsnik: does perl6 -e 'use Test::More:from<Perl5>; diag("foo")' # print "# foo"? If yes, we have established that passing strings from Perl 6 to Perl 5 works and it's the other way around that's the issue
Skarsnik m: { loop(my $i = 0; $i < 5; ++$i) { say $i } } 11:25
camelia rakudo-moar 37e998: OUTPUT«5===SORRY!5===␤Word 'loop' interpreted as 'loop()' function call; please use whitespace around the parens␤at /tmp/Djm4jrUlis:1␤------> 3{ loop7⏏5(my $i = 0; $i < 5; ++$i) { say $i } }␤Unexpected block in infix position (two terms in a row…»
Skarsnik m: { loop (my $i = 0; $i < 5; ++$i) { say $i } }
camelia rakudo-moar 37e998: OUTPUT«0␤1␤2␤3␤4␤»
11:25 FROGGS joined
Skarsnik oh it's fixed :) 11:25
nine, root@testperl6:~/piko/Inline-Perl5# perl6 -I lib -e 'use Test::More:from<Perl5>; diag("foo")' -> Erreur de segmentation 11:27
Seg fault
|Tux| what is the eta for the utf8-c8 fix, so I could start testing/playing?
Skarsnik I should remove set LC_ALL to C in my shell x)
leont masak++ # that helped in cleaning up my code 11:28
lizmat |Tux|: this will have to wait until someone hacks that into MoarVM, and I'm afraid the bus factor on that is 0 atm
|Tux| :(
lizmat, is the .get already adressed?
lizmat the empty line lost at the end you mean? 11:29
leont wishes he had the tuits to dive into moarvm
|Tux| m: for (lines()) { say; }
camelia rakudo-moar 37e998: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7EjP3YowD2␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun␤at /tmp/7EjP3YowD2:1␤------> 3…»
|Tux| m: for (lines()) { .say; }
camelia rakudo-moar 37e998: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤I mo dhiaidh bhí gleanntáin ghlas’ G…»
11:29 virtualsue left
|Tux| no, the error message I got. one sec 11:30
11:30 virtualsue joined
|Tux| Method 'get' not found for invocant of class 'Any' 11:30
in sub MAIN at test-t.pl line 21
lizmat
.oO( superstitious parens )
|Tux| which is the line «for (lines()) {» 11:31
masak m: for lines() { .say }
camelia rakudo-moar 37e998: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤I mo dhiaidh bhí gleanntáin ghlas’ G…»
|Tux| superstitious parens is very unlikely to be the cause for this message :]
lizmat no, I was just seeing them :-) 11:32
masak right, we're just reminding you :)
lizmat m: .say for lines
camelia rakudo-moar 37e998: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤I mo dhiaidh bhí gleanntáin ghlas’ G…»
nine Skarsnik: can you perl6-gdb-m that?
|Tux| sometimes my code requires the extra parens (because of Slang::Tuxic) so I can put the required parens in the right position :P
lizmat |Tux|: ah, that problem started yesterday ? 11:33
|Tux| yes, between 16:00 MET yesterday and 08:00 MET today
masak oh, what I wouldn't do to get -i in Rakudo
maybe even implement it meself! :D
Skarsnik after lunch ^^ 11:34
nine masak: that's just the best answer ;)
11:35 uruwi joined 11:37 cygx joined
cygx |Tux|: what would be your use case for utf8-c8? 11:37
|Tux| images and real binary data in CSV 11:38
e.g. database exports
cygx |Tux|: utf8-c8 currently does normalization
just use latin1 ;)
|Tux| utf8-c8 currently dumps core 11:39
11:39 jeteve joined
cygx depending on input? I remember having used it 'successfully' 11:39
|Tux| m: my Str$s=Buf.new(^2048 .map({256.rand.Int})).decode("utf8-c8") 11:40
camelia ( no output )
cygx m: Buf.new(255).decode("utf8-c8")
camelia rakudo-moar 37e998: OUTPUT«(signal SEGV)»
cygx there you go
lizmat m: Buf.new(254).decode("utf8-c8") 11:41
camelia rakudo-moar 37e998: OUTPUT«(signal SEGV)»
lizmat m: Buf.new(253).decode("utf8-c8")
camelia rakudo-moar 37e998: OUTPUT«(signal SEGV)»
lizmat m: Buf.new(240).decode("utf8-c8")
camelia ( no output )
lizmat m: Buf.new(241).decode("utf8-c8") 11:42
camelia ( no output )
cygx I guess it doesn't like starting a string with invalud utf-8
m: Buf.new(42,255).decode("utf8-c8")
camelia ( no output )
|Tux| that was lizmat's conclusion at first too, but jnthn knew is was a deeper cause 11:43
11:45 vendethiel left
dalek osystem: 2a46583 | (Stefan Seifert)++ | META.list:
Add CompUnit::Repository::Panda to the ecosystem

CompUnit::Repository::Panda automatically tries to install all modules that your program uses and that are not already installed.
Fully recursive installation will need more infrastructure in CompUnit::RepositoryRegistry, so we only install modules that are used by compunits that use CompUnit::Repository::Panda directly.
11:46
nine Now that was a fun one ^^^ :)
lizmat m: sub MAIN { .say for lines } # only happens within MAIN
camelia rakudo-moar 37e998: OUTPUT«Method 'get' not found for invocant of class 'Any'␤ in sub MAIN at /tmp/NDOXIupMjS line 1␤ in block <unit> at /tmp/NDOXIupMjS line 1␤␤»
11:46 xinming joined
|Tux| nine++ 11:47
nine To be clear: it's really just a proof of concept more than anything else, albeit one that shows the possibilities with our repository architecture :) 11:48
[ptc] nine++ :-) 11:49
leont That modules scares me a little
11:49 andreoss left, xinming_ left
leont s/s// 11:49
lizmat wonders why it isn't called CloudPan :-) 11:50
11:50 FROGGS left
nine lizmat: I work at a marketing company. I've seen enough marketing for a life time :) 11:50
lizmat |Tux|: found the problem, testing a fix 11:53
|Tux| feels like a canary again - tweet peep 11:54
RabidGravy nine++ # nice one 11:55
11:55 itaipu left
RabidGravy is it premature to start documenting the CompUnit stuff? 11:59
11:59 Begi left
RabidGravy if only so that people can start making their own stuff that uses it rather than bugging nine++ 12:00
nine RabidGravy: the CompUnit stuff we have now is part of 6.c, so we may as well document it. We need to make all future changes in a backwards compatible way. 12:02
ChoHag It's never premature to document things.
RabidGravy well, except if it's going to completely change in the near future or something 12:03
ChoHag Nope.
Then the documentation just needs to indicate that the thing its documentation might completely change in the near future. 12:04
RabidGravy okay carry on then
ChoHag For example: Perl 6. 12:05
RabidGravy I look forward to your help in the documentation then
anyway off to the pub for a bit 12:06
ChoHag My help in the documentation has already begun, actually. 12:07
12:08 CQ joined
ChoHag And on that note I was a little saddened to see prima donnas prancing around the breakage of pod parsing the other day. 12:08
12:10 spider-mario left
Skarsnik nine, perl6-gdb does not really work for me sadly 12:10
nine Skarsnik: why's that? 12:11
12:11 RabidGravy left
ShimmerFairy ChoHag: when was this? 12:12
nine ChoHag: in a sense, I'm actually glad. Because now I don't have to care anymore about that Grammar::Tracer bug. That would have been a "huge fucking pain". 12:13
Skarsnik How to explain... it launch gdb but input get hidden and it look like it time out/run nothing, the bt is always empty
12:14 spider-mario joined
ChoHag A week or so I think. 12:14
A small 'clarification' of module terms.
lizmat ok, seems I have added an incompatibility
if @*ARGS contains a file name that doesn't exist, it now bombs when initializing $*ARGFILES 12:15
leont m: my %as{Any:U} = ((Str) => ~*)
camelia rakudo-moar 37e998: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/KLdX_kMGMu line 1␤␤»
lizmat rather then the first time $*ARGFILES is used
ChoHag Yes it's always better to not fix bugs than to actually have documentation.
leont That is not what I had expected :-/
ChoHag *sigh* I have to make custard. 12:16
I've barely sat down...
12:16 zengargoylew left 12:17 zengargoylew joined, virtualsue left 12:18 spider-mario left 12:19 lucasb joined
leont Now I understand, the fat comma is eaten by the WhateverCode! 12:19
12:19 spider-mario joined, kanishka left
leont How do I stop that? 12:19
12:20 xpen joined
nine leont: replace the ~* by {~$_} 12:20
12:21 edehont left, regreg joined
lizmat
.oO( => eaten by * )
12:21
12:22 xpen_ joined
lucasb it's very strange how Whatever is handled in pairs. it seems it depends on the type of the key, and also on the expression on the value 12:23
m: say (foo => ~*).perl
camelia rakudo-moar 37e998: OUTPUT«:foo(WhateverCode.new)␤»
lucasb m: say (foo => *).perl
camelia rakudo-moar 37e998: OUTPUT«:foo(*)␤»
lucasb m: say (42 => *).perl 12:24
camelia rakudo-moar 37e998: OUTPUT«WhateverCode.new␤»
cygx
.oO( strangely inconsistent )
12:25 xpen left 12:26 spider-mario left
lucasb m: say $( ).perl 12:26
camelia rakudo-moar 37e998: OUTPUT«$()␤»
nine Skarsnik: a more reduced test: perl6 -e 'use Inline::Perl5; my $p5 = Inline::Perl5.new; $p5.run(q/sub foo { print @_; }/); $p5.call("foo", "hello world\n");'
Skarsnik: what does this print? ^^^
lucasb ^^ timotimo++ told me that $() is *not* an itemized empty list, so the .perl representation is wrong
12:26 xpen_ left 12:27 spider-mario joined
Skarsnik nothing x) 12:27
but it does not segfault
12:27 stmuk left, amoe left 12:28 jnthn left, Rotwang left, lnx left
nine Skarsnik: and this? perl6 -e 'use Inline::Perl5; my $p5 = Inline::Perl5.new; $p5.run(q/sub foo { "hello world" }/); say $p5.call("foo");' 12:28
12:28 smash left, Jonis left 12:29 jnthn joined, amoe joined
Skarsnik hello world 12:29
12:30 Jonis joined
dalek line-Perl5: 5f51d6f | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
Fix more type discrepancies. STRLEN is size_t

May fix passing strings from Perl 6 to Perl 5 on 32 bit machines.
12:30
nine Skarsnik: please try this fix ^^^
12:30 smash joined
nine Had an IV there instead of size_t 12:30
dalek kudo/nom: 4c1f815 | lizmat++ | src/core/Main.pm:
Only initialize @*ARGS in MAIN_HELPER, Tux++

Since init of $*ARGFILES is now lazy, we only need to init @*ARGS here
12:31
kudo/nom: badcf48 | lizmat++ | src/core/Argfiles.pm:
Don't bother with IO::CatHandle if only got $*IN
kudo/nom: e458a20 | lizmat++ | src/core/IO/CatHandle.pm:
Make sure API of .get/getc is identical to IO::Handle
12:32 integral left, integral joined, integral left, integral joined, Actualeyes joined 12:33 Odud joined
Skarsnik root@testperl6:~/piko/Inline-Perl5# perl6 -I lib -e 'use Test::More:from<Perl5>; diag("foo")' # foo 12:33
:)
12:34 jnthn left
lizmat $ time perl6 test-t.pl <hello.csv real0m12.212s # Tux 12:34
nine Skarsnik: sooo..what's still missing?
Skarsnik running the test now 12:35
I was going to give you a ssh access to this system x) 12:36
12:37 lnx joined, Rotwang joined, smash left, Jonis left, Jonis joined, amoe left 12:38 smash joined, amoe joined
Skarsnik All tests successful. 12:39
Files=25, Tests=343, 225 wallclock secs ( 0.03 usr 0.55 sys + 122.47 cusr 89.44 csys = 212.49 CPU)
Result: PASS
nine Yeah! \o/
dalek line-Perl5: 50a7f11 | (Stefan Seifert)++ | META.info:
First version to be really 32 bit safe
12:40
12:40 _nadim joined
timotimo lucasb: yeah, i think i even fixed that stringification once ... 12:41
12:41 _nadim left 12:42 jnthn joined, stmuk joined, fjk joined
lucasb Rakudo always gives you the opportunity to fix things twice :) 12:44
12:44 DrForr left, DrForr joined 12:48 Jonis left 12:49 Jonis joined, smash left, smash joined, amoe left
timotimo the thing is i thought i had also written a test for it, but apparently i haven't 12:49
12:49 stmuk left 12:50 stmuk joined 12:51 amoe joined 12:52 nexysno_ joined
hankache is nuking everything and building from scratch 12:52
I made it my daily routine ;) 12:53
leont lucasb: yeah, that is odd!
Skarsnik can someone kill me? I just discover an easy way to parse c header file... 12:55
nine hankache: why?
Skarsnik clang -Xclang -ast-dump -fsyntax-only src/gumbo.h
hankache nine i did update rakudo, it seems that some modules were not working anymore 12:56
nine and since i can't nuke modules, the only bet is nuke everything and rebuild
nine hankache: if your previous rakudo was >= 6.c, this should never happen
|Tux| shhhhhh
hankache unless i am missing something 12:57
nine hankache: also it's fairly trivial to just nuke modules (even if you shouldn't): rm -R install/share/perl6 && make install
hankache nine yes it was >= 6.c
nine hankache: then please allow us to debug it properly
12:57 Odud left
hankache nine unfortunately i already nuked everything 12:58
nine but next time if i encounter anything odd i'll let you know
nine i don't remember what the error was but trying to launch the REPL gave me an error 12:59
12:59 loren joined, spider-mario left
hankache nine and upgrading rakudo was done smoothly no errors or such. just running the REPL gave errors 13:00
13:02 kid51 joined
|Tux| csv-ip5xs 50000 17.743 17.635 13:02
test 50000 22.254 22.146
test-t 50000 12.308 12.200
csv-parser 50000 47.911 47.803
NICE!
loren Evening, #Perl 6.. *_* 13:03
hankache hi loren
loren hankache, hi o/
|Tux| o/ (14:03 over here)
hankache nine in other programming languages, how do you update anyway ?
nine hankache: well after upgrading Perl 5, you have to re-install all modules...how much I love that 13:04
hankache nine personally i always prefer to nuke and re-install, this is why it is no problem for me 13:05
|Tux| nine: s/all/XS/ 13:06
nine hankache: I upgrade rakudo multiple times a day. I'd hate to re-install every time :)
loren It's 21:05 here ..
hankache nine i don't do it that often this is why maybe
nine |Tux|: well you could copy over all non-XS modules.
|Tux| otoh, I build with fallback to older versions disabled, so I indeed need to rebuild all my 1950 installed distributions again after upgrading perl5 13:07
13:07 Tonik joined
|Tux| nine, with the default options, yoiu don't need to: it will find them in the old folder structure 13:07
13:08 pierre-vigier joined
|Tux| $ perl5 -V:inc_version_list 13:08
nine |Tux|: then I guess openSUSE's packages deactivate that option
|Tux| OpenSUSE 13.1$ /usr/bin/perl -V:inc_version_list 13:09
inc_version_list='5.18.0/x86_64-linux-thread-multi 5.18.0';
13:09 smash left, stmuk left, jeteve left
|Tux| and yes, I think that vendors clear out old folders on system upgrades 13:09
13:09 Rotwang left, stmuk joined 13:10 Jonis left, Rotwang joined, lnx left, Jonis joined
|Tux| never uses system-perl 13:10
13:10 smash joined
|Tux| OpenSUSE Tumbleweed$ /usr/bin/perl -V:inc_version_list 13:10
inc_version_list='5.22.0/x86_64-linux-thread-multi 5.22.0';
13:11 M-matthew joined, lnx joined, nige1 left
leont The re-use of old module dirs in p5 was nice in 1994, but not so much in 2015 13:11
|Tux| agree 13:12
leont Mainly because it's reusing PP modules but not XS, so that tends to generate missing dependencies
13:13 Arrowhead joined, pierre-vigier left 13:17 ZoffixW joined, lnx left 13:18 Jonis left, jnthn left, Jonis joined, smash left, jnthn joined, smash joined
ZoffixW m: sub announce-hny ($irc, Hash $tz, Instant :$next-new-year) {}; my $irc = 42; my $tz = {}; announce-hny $irc, $tz; say 'ok' 13:18
camelia rakudo-moar e458a2: OUTPUT«ok␤»
ZoffixW For some reason in my code, the above gives "Invocant requires an instance of type Instant, but a type object was passed. Did you forget a .new?"
13:18 Rotwang left, Rotwang joined
ZoffixW And if I add :next-new-year(now), then there aren't errors. What could be causing that? 13:19
lizmat |Tux|: made a small tweak in CSV, could you verify / bench ?
|Tux| pull?
lizmat yes, please
13:19 lnx joined
Arrowhead Hello. Here's what I've been working on the last couple of days: OpenGL bindings. github.com/bartschuller/perl6-OpenGL 13:19
AlexDaniel oooooh
ZoffixW Here's a larger version of the code: gist.github.com/zoffixznet/01e41984dc3249079fa7 13:20
lizmat Arrowhead++
ZoffixW wow, that's sweet. Arrowhead++
AlexDaniel Arrowhead: that's very cool
Skarsnik neat
lizmat Arrowhead: is it in the ecosystem already ?
Arrowhead I'm interested in reports on other OS's besides Mac. And it does literally nothing more than what the screenshot shows, but it's a start. 13:21
Skarsnik 1Gb ram + 1GB swap is enough to build rakudo/moar? 13:22
Arrowhead lizmat: nope. Is it ok to drastically change module names and APIs for stuff in the ecosystem?
13:22 brrt joined
lizmat Arrowhead: well, probably not :-) 13:23
nine Why not? As long as you're clear that this is pre-alpha software
lizmat Skarsnik: feels like that is enough
Arrowhead I think we need 2 ecosystems then, because I do agree we need a place to gather stuff like this as well, even though I can't guarantee anything about stability.
leont Skarsnik: probably, but don't expect to do anything else at the same time 13:24
13:24 kid51 left
ZoffixW Skarsnik, fwiw, I successfully built on 1GB RAM and 3GB swap. I seem to recall someone saying 2.5GB total is needed, but I may be imagining things 13:24
lizmat Arrowhead: I feel nine is right, as long as you make clear it's pre-alpha
Arrowhead: then people know what their dealing with
13:25 virtualsue joined
leont Yeah, it's all about expectation management 13:25
|Tux| test-t 50000 12.267 12.159
Skarsnik I will create a swap file if needed then lol
it's just a vm x)
leont At this stage, people won't be terribly upset if stuff breaks AFAICT, but that will change as perl6 gets adopted more.
ZoffixW Arrowhead, nah, we don't need two ecosystem. Just give a nice fat warning that it's experimental and things can change, like here: github.com/zoffixznet/perl6-IRC-Cl...escription 13:26
Skarsnik I found a tool that output clang ast as XML, give me hope to generate C Binding from just a C header :)
ZoffixW I think it's fine to release experimental stuff at any stage. More user input. Maybe more volunteers.
Arrowhead Ok, I'll submit it then.
nine It's hard to imagine a CPAN without version 0.02 modules with authors having great plans and the last release being from 2007. May sound useless, but we have used and even adopted such modules. 13:27
AlexDaniel Arrowhead: “Cannot locate native library 'libglfw3.so.3'” I have debian packages libglfw3 and libglfw3-dev install, what else do I need?
lizmat ZoffixW Skarsnik just monitored building the settings on OS X: the moar process grows to just over 1G
AlexDaniel installed*
Skarsnik it's not like we have a strict protocol if you want to remove something Kappa
lizmat I'm not sure how much memory building Moar / NQP take, but assume that to be less
ZoffixW makes a mental note
dalek kudo/query_repos: c639da5 | (Stefan Seifert)++ | src/core/CompUnit/Repository (3 files):
CompUnit::Repository::resolve

New method to ask the repository chain if a module matching the given DependencySpecification is available. This could for example be used by panda to avoid trying to install an already installed module.
lizmat nine: I stand corrected :-)
nine lizmat: what do you think about this? ^^^
leont It's the precompiling the setting step that takes most memory, IME
Anything else isn't really heavy 13:28
nine Anyone: what do you think about this commit?
lizmat nine: feels a bit like the old .candidates interface :-)
Arrowhead AlexDaniel: Can you figure out what the library is called then? dpkg -L libglfw3 and look at the .so files.
lizmat nine: fwiw, I think TimToady likes us to return Nil rather than type objects
nine lizmat: well, yes. Because .candidates was a good idea that is worthy of bringing back :)
Skarsnik My bet is libglw.so.3
not libglw3 x) 13:29
13:29 Jonis left
ZoffixW This is weird... the error I'm having disappears if I comment out this line: my $prefix = $next-new-year ?? 'Happy New Year to' !! "Next New Year is in {denominate $next-new-year} in"; 13:29
Skarsnik root@testperl6:/tmp/CastXML# apt-file search libglfw3.so.3
root@testperl6:/tmp/CastXML# apt-file search libglfw.so.3
libglfw3: /usr/lib/i386-linux-gnu/libglfw.so.3
13:30 smash left, stmuk left
nine lizmat: next step would be to add a method for even fuzzier search in the repos, i.e. where the short-name is also smart matched, for usage by Module::Pluggable. 13:30
ZoffixW m: sub announce-hny ($irc, Hash $tz, Instant :$next-new-year) {my $prefix = $next-new-year ?? 'Happy New Year to' !! "Next New Year is in {$next-new-year} in";}; my $irc = 42; my $tz = {}; announce-hny $irc, $tz; say 'ok'
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value of type Instant in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in sub announce-hny at /tmp/InX7R73BdT line 1␤ok␤»
13:30 Jonis joined
AlexDaniel Arrowhead: it is libglfw.so.3 13:30
nine lizmat: this would then return a list of candidates instead of the first match.
lucasb ZoffixW: I think denominate expects a concrete value
ZoffixW Oh, I'm a dumbass
13:30 lnx left
lizmat ++nine :) 13:30
13:30 CIAvash left
AlexDaniel Arrowhead: and also just libglfw.so 13:30
ZoffixW lucasb, I need to switch the ?? and !! parts in the conditional :P 13:31
13:31 jnthn left
Arrowhead AlexDaniel: right. can you try with that changed in GLFW.pm6? constant LIB = ('glfw', v3); 13:31
13:31 jnthn joined
AlexDaniel Arrowhead: sure 13:31
13:31 stmuk joined
ZoffixW Atom barely chugs along on a 3300-line file -_- 13:32
Arrowhead I'm expecting more trouble with the GL library itself.
ZoffixW And it's mostly due to P6 highlighting :/
13:32 lnx joined
ZoffixW switches into mst mode, for performance reasons :P 13:32
AlexDaniel Arrowhead: NativeCall: Consider adding the api version of the library you want to use, sub foo is native(GL, v1) Segmentation fault 13:33
Arrowhead AlexDaniel: oops. Ok, I guess I'll have to install Virtualbox again, etc. That could take a while. 13:34
btw: what would be the way to silence that warning when all you have is libfoo.so?
Skarsnik constant LIB = $*DISTRO.name eq 'macosx' ?? '/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib' !! ('GL'); 13:35
I am not sure if that work correctly to have a list with a only the name x)
AlexDaniel Arrowhead: ('GL', v1);
Skarsnik m: use NativeCall :TEST; say check_library_name(('GL')); 13:36
AlexDaniel Arrowhead: I've tried that and now all I have is a segmantation fault
camelia rakudo-moar e458a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qDik5FB0oO␤Undeclared routine:␤ check_library_name used at line 1. Did you mean 'guess_library_name'?␤␤»
13:36 nige1 joined
Skarsnik m: use NativeCall :TEST; say find_library_name(('GL')); 13:36
camelia rakudo-moar e458a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/aPZ3P0Kair␤Undeclared routine:␤ find_library_name used at line 1. Did you mean 'guess_library_name'?␤␤»
Skarsnik Oh thx the error lol
m: use NativeCall :TEST; say guess_library_name(('GL'));
camelia rakudo-moar e458a2: OUTPUT«NativeCall: Consider adding the api version of the library you want to use, sub foo is native(GL, v1)␤libGL.so␤»
Arrowhead m: use NativeCall :TEST; say guess_library_name(('GL', v1)); 13:37
camelia rakudo-moar e458a2: OUTPUT«libGL.so.1␤»
13:37 cygx left
Arrowhead AlexDaniel: see? then it expects a 1 in the name 13:37
Skarsnik GL does not have a version? like 2 or 3 now?
Arrowhead as you can see from my hardcoded file name: not on my Mac.
13:38 amoe left, Rotwang left
Arrowhead anyway, you're on your own for now until I can get a Linux VM set up. 13:38
Skarsnik it's weird there is no libGL.3.dylib ?
13:38 lnx left
Skarsnik hm, for debian libgl1-mesa-glx: /usr/lib/i386-linux-gnu/libGL.so.1 13:39
AlexDaniel that's what I've found as well
nine On my system libglfw3.so.3 is called libglfw.so.3
Skarsnik Oh yeah OpenGL is not a weird case where the lib could be provided by a vendor?
13:40 Rotwang joined, amoe joined
Arrowhead Actually, they don't want to do libraries anymore. They want you to ask for function pointers, but NativeCall can't call function pointers, so what I have working on Mac may not work anywhere else. 13:40
nine AlexDaniel: other than that, everything seems to work :)
13:40 lnx joined, jnthn left, jnthn joined 13:41 stmuk left
dalek kudo/query_repos: 92ef589 | (Stefan Seifert)++ | src/core/CompUnit/Repository (3 files):
CompUnit::Repository::resolve

New method to ask the repository chain if a module matching the given DependencySpecification is available. This could for example be used by panda to avoid trying to install an already installed module.
13:41
13:41 stmuk joined 13:42 ab6tract joined
AlexDaniel nine: does not work here, hmmm :( 13:42
nine Arrowhead: On my system libglfw3.so.3 is called libglfw.so.3. Other than that, everything seems to work :)
Arrowhead work as in you get a window? 13:43
AlexDaniel if I do ('GL', v1) then it just segfaults
Arrowhead nine: with the triangle?
nine Arrowhead: yes, just like in your screen shot
Arrowhead yay!
13:44 smash joined
Skarsnik nine, I was thinking of being able to write is native('foo', False) to allow to cut off the warning explicitly (like for mysqlclient that does not follow a correct versionning) 13:46
13:46 itaipu joined
ab6tract m: sub f(:$x) { $x ?? "no x" !! "x is $x" } # minimal case for ZoffixW's issue 13:47
camelia ( no output )
ab6tract doh.
m: sub f(:$x) { $x ?? "no x" !! "x is $x" }l say f() 13:48
camelia rakudo-moar e458a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7IdrYUshVW␤Strange text after block (missing semicolon or comma?)␤at /tmp/7IdrYUshVW:1␤------> 3ub f(:$x) { $x ?? "no x" !! "x is $x" }7⏏5l say f()␤ expecting any of:␤ infix␤ …»
ab6tract m: sub f(:$x) { $x ?? "no x" !! "x is $x" }; say f()
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value $x of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in sub f at /tmp/zMAM7jWOGm line 1␤x is ␤»
ab6tract this seems like it could be connected to the .DEFINITE patch?
Arrowhead BTW the demo is based on www.opengl-tutorial.org/ and I'll probably try to implement more from that.
13:49 integral left 13:50 integral joined, integral left, integral joined
ZoffixW ab6tract, the above seems correct to me. the undefined $x is stringified, generating the warning. The issue I was getting is the error was saying the typed named param my sub had received "a typed object" whenever I omited it 13:50
13:50 lnx left
ab6tract ZoffixW: but $x should not evaluate to True if it is empty / undefined 13:51
or uninitialized.
it is the same problem AFAICT, because in neither example should it be going to the second half of the ternary
ZoffixW ab6tract, right. And your example has the same error as my code had: the evaluated paths in the ternary are switched around
the path that stringifies $x is in the "false" path 13:52
leont Any I the only one who is missing a definedness operator, much like ? does for booleans?
13:52 lnx joined
ZoffixW like // ? :) 13:52
13:53 stmuk left
ab6tract leont: defined is not usually what you want anymore. 13:53
13:53 smash left
leont Could be, could be I have p5isms in my p6 13:53
13:53 smash joined, stmuk joined
ab6tract leont: stick to truthy :) 13:54
13:54 hankache left
ZoffixW m: sub infix:<≤> { * <= * }; sub infix:<≥> { * >= * }; say 4 ≤ 5 13:54
camelia rakudo-moar e458a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/IVA_6YAsUw␤Calling infix:<≤>(Int, Int) will never work with declared signature ()␤at /tmp/IVA_6YAsUw:1␤------> 3<= * }; sub infix:<≥> { * >= * }; say 4 7⏏5≤ 5␤»
leont I have cases where that just doesn't work
ZoffixW m: sub infix:<≤> ($, $) { * <= * }; sub infix:<≥> ($, $) { * >= * }; say 4 ≤ 5 13:55
camelia rakudo-moar e458a2: OUTPUT«WhateverCode.new␤»
leont E.g. 0 is a perfectly fine exit-status, but Int means there is no exit-status
ShimmerFairy leont: then you want 'with' :)
ab6tract ZoffixW: the WhateverCode doesn't populate the signature for you
ShimmerFairy m: with "foo".index("f") { say "Yay!" }
camelia rakudo-moar e458a2: OUTPUT«Yay!␤»
ShimmerFairy m: with "foo".index("b") { say "aw" } 13:56
camelia ( no output )
leont with doesn't have a ternary operator, yet
13:56 jshy joined
ShimmerFairy One could probably invent ¿¿ ¡¡ or ??? !!! or somesuch :P 13:56
leont ??? !!! doesn't sound like a bad idea at all 13:57
13:57 lnx left
dalek rl6-roast-data: 0ace568 | coke++ | / (7 files):
today (automated commit)
13:57
ZoffixW leont, is that for $foo.defined ?? !! ?
ab6tract m: sub infix:<≤> ($, $) { * <= * }; sub infix:<≥> ($, $) { * >= * }; say (4 ≤ 5)(4,5)
camelia rakudo-moar e458a2: OUTPUT«True␤»
13:57 Rotwang left
lucasb hey, the tag v6.c is still there at rakudo repo. wasn't people talking about removing it? 13:57
13:58 amoe left
ZoffixW ab6tract, so a closure is returned? 13:58
13:58 smash left, Jonis left
leont Yeah 13:58
13:58 stmuk left, jnthn left
lucasb you are all trying to explain things in the mailing list, while contributing to the confusion having that tag in the rakudo repo 13:59
ZoffixW m: sub infix:<≤> ($a, $b) { $a <= $b }; sub infix:<≥> ($a, $b) { $a >= $b }; say 4 ≤ 5
camelia rakudo-moar e458a2: OUTPUT«True␤»
ab6tract ZoffixW: most common use case of 'with' is for array indices and other things that are falsey
13:59 Rotwang joined
ab6tract but which you want to pass through 13:59
13:59 lnx joined, smash joined, stmuk joined
ZoffixW I really miss having ≤ and ≥ as the Texas variants confuse me into thinking some sort of assigning defaults is happening 14:00
Skarsnik don't want to read DBI code :(
ZoffixW contemplates Operators::Extra
ShimmerFairy ZoffixW: to be fair, I still don't know why they're not in CORE. 14:01
ZoffixW ShimmerFairy, yeah, I'd think they're far more useful than division sign that looks like two dots with a line
lizmat m: enum XB (:TB(1024*1024*1024*1024), :GB(1024*1024*1024), :MB(1024 * 1024), :KB(1024), :bytes(1)); sub human($b,$p = 0.1) { for XB.^enum_value_list -> $XB { return "{round($b/$XB,$p)} $XB" if $b div $XB }}; say human 4000 # wonder if this warrants an ecosystem module or not
camelia rakudo-moar e458a2: OUTPUT«3.9 KB␤»
ZoffixW Does precompilation solve the addition of custom operators being super expensive? 14:02
14:02 integral left
ZoffixW lizmat, modules.perl6.org/repo/Number::Denominate 14:02
lizmat, there's already an :info-1024 set, though I think it uses full names. You can define your own sets tho 14:03
14:03 stmuk left 14:04 smash left
nine Ok, I'm taking the rest of the year off. See you all next year :) Oh and happy new year! 14:04
ab6tract wrt to that example, it's returning a WhateverCode. which is a closure, but also slightly more opaque
14:04 Rotwang left, lnx left
Skarsnik Happy new year nine 14:04
ab6tract m: my $f = * >= ++$; say $f(1); say $f(1)
camelia rakudo-moar e458a2: OUTPUT«True␤False␤»
lizmat ZoffixW: good to know :-)
Skarsnik Is there any plan for translation support? x)
ab6tract nine: cheers man! have a great one!
dalek ast: b0c17ab | usev6++ | S32-exceptions/misc.t:
Add test for RT #126888
14:05
14:05 brrt left
awwaiid bye nine! 14:05
yoleaux 09:29Z <nine> awwaiid: panda caches the module database locally. So even after you upload a new version, your local database may be out of date and panda uses version information from there, even though the downloaded module has updated info. So panda update is necessary right now.
ZoffixW I see a slight difference tho :) It doesn't round with decimals: gist.github.com/zoffixznet/d1679d9e4c443ac9fe67 14:07
14:08 hankache joined, jnthn joined, Jonis joined
hankache i nuked everything and build from scratch 14:08
when i try to panda install Linenoise it complains about File::Find being already installed
what should i do? 14:09
14:09 integral joined
ZoffixW Use the --force, Luke 14:09
It's an issue: github.com/tadzik/panda/issues/274
14:09 brrt joined
hankache panda --force install Linenoise 14:11
still fails
ZoffixW Yeah
Oh. What's the error?
hankache File::Find:ver<0.1>:auth<>:api<> already installed
14:11 pjscott joined
Skarsnik DBI code is crazy lol 14:12
14:12 Jonis left
hankache and Readline doesn't install 14:12
ZoffixW hankache, weird. That method was working for me last night
14:12 jnthn left
hankache so i have no line editing :( 14:12
Skarsnik Readline need to be fixed for recent rakudo no? 14:13
14:14 Lordo joined
lucasb hankache: Use rlwrap, Luke :) 14:14
ZoffixW m: my $x = now; say "{$x.WHAT}" 14:15
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value of type Instant in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/HYjkz97_iu line 1␤␤»
ZoffixW :/
m: my $x = now; say "{$x.WHAT.Str}" 14:16
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value of type Instant in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block at /tmp/BagRJBA3it line 1␤␤»
14:16 integral left
[Coke] lucasb: yes, I asked about removing it. No one had a strong opinion. 14:16
Skarsnik that weird
it should know $x is an Instant
AlexDaniel ZoffixW: ah right, we still don't have ≤ ≥ ≠ :) 14:17
ZoffixW m: my $x = now; say $x.WHAT ~ ' '
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value of type Instant in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/rHSJTzvs4B line 1␤ ␤»
Skarsnik m: say now.WHAT
camelia rakudo-moar e458a2: OUTPUT«(Instant)␤»
leont Anyway to do "call method if invocant is defined", other than spelling it out?
ZoffixW leont, $foo?.bar
or ?. I forget :)
lucasb [Coke]: I'm a outsider, but I have a strong +1 for removing the tag :)
hankache great same for JSON::Fast 14:18
leont .? isn't quite the same
ZoffixW m: class Foo { method bar { say "baars" }}; Foo.new.?bar.?foo
camelia rakudo-moar e458a2: OUTPUT«baars␤»
ZoffixW leont, oh, I though it was. What's the difference?
leont m: say Str.?Int
camelia rakudo-moar e458a2: OUTPUT«Invocant requires an instance of type Str, but a type object was passed. Did you forget a .new?␤ in block <unit> at /tmp/tM_iJEBtwJ line 1␤␤»
hankache how can i install the modules ?
--force is not working
leont It checks for method availability, not for definedness 14:19
AlexDaniel hankache: what is the error then?
14:19 smash joined, stmuk joined, RabidGravy joined
hankache AlexDaniel JSON::Fast:ver<v0.3>:auth<>:api<> already installed 14:19
14:19 jnthn joined
ZoffixW leont, just curious, what's the use case? 14:19
14:19 gumma joined
AlexDaniel hankache: and when you do 「panda --notests install JSON::Fast」 ? 14:19
oops 14:20
14:20 Rotwang joined
ab6tract ZoffixW: hmm, looks like 'now' has even more issues than just the weird bad-ternary-path :( 14:20
AlexDaniel --force, not --notests
leont I'm looking for a shorter version of this:
14:20 lnx joined
leont return $!exit-status.defined && $!exit-status.status; 14:20
14:20 amoe joined
hankache AlexDaniel same error 14:20
ZoffixW ab6tract, there's no issue with the ternary
AlexDaniel hankache: huh!
ZoffixW As for above, it happens with other types too:
m: my $x = 42; say $x.WHAT ~ ' '
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value of type Int in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/tRKDz0PNLt line 1␤ ␤»
lizmat leont: return .status with $!exit-status
ab6tract ZoffixW: ah, nevermind
AlexDaniel leont: actually, this question has already been asked a few times
hankache AlexDaniel panda --force install JSON::Fast
leont lizmat: Ah! 14:21
AlexDaniel leont: I don't really remember what is the answer. Hmmm
ab6tract but there is still the ternary issue from earlier
hankache AlexDaniel same error as panda install JSON::Fast
Skarsnik DBD::Pg allows arrays (as arrayrefs) to be passed in to both
the L</quote> and the L</execute> methods. In both cases, the array is
flattened into a string representing a Postgres array.
duh, that cheating/bad
leont Yes, the ternary I'd use in many more places
AlexDaniel hankache: this is not nice. I'm not sure how to help though
ab6tract m: my $x; say $x ?? 'no x' !! "x is $x" 14:22
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value $x of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/ZkhuDVqoTe line 1␤x is ␤»
ab6tract this is definitely a bug
14:22 gumma left
ZoffixW ab6tract, no it's not. You're not using the ternarry correctly 14:22
leont Method above it has «$!exit-status.defined ?? $!exit-status.exitcode !! Int». with doesn't really make that better
ZoffixW m: say True ?? "Yes it's true" !! "No it's not true"
camelia rakudo-moar e458a2: OUTPUT«Yes it's true␤»
ab6tract oh, damnit.
hankache AlexDaniel well yeah i can't install most of the modules i need because they depend on the ones panda needs
ZoffixW :)
ab6tract that's my fault for cargo culting your code ;P
ZoffixW ^_^
14:22 Lordo left
AlexDaniel hankache: could it be that your panda is old and does not support --force ? 14:22
ab6tract and suffering from jetlag 14:23
:)
AlexDaniel hankache: just a blind guess
14:23 integral joined, integral left, integral joined
hankache AlexDaniel i nuked everything and built from scratch 14:23
AlexDaniel i should have the latest
AlexDaniel hankache: well, if it is listed in panda --help then yeah 14:24
hankache AlexDaniel yes listed
14:24 Rotwang left
AlexDaniel dunno then :( 14:24
14:24 stmuk left 14:25 jnthn left, smash left, amoe left, smash joined, nige1 left, stmuk joined, lnx left
hankache AlexDaniel thank you in all cases 14:26
AlexDaniel leont: ah
14:26 amoe joined, Rotwang joined, lnx joined
AlexDaniel m: sub foo { return ‘test’ }; foo() andthen .say 14:26
camelia rakudo-moar e458a2: OUTPUT«test␤»
14:26 bpmedley joined
AlexDaniel m: sub foo { return Any }; foo() andthen .say 14:26
camelia ( no output )
perlpilot good $localtime all
AlexDaniel leont: is that what you want?
14:27 hfhkk joined, pmurias joined
ZoffixW Man, I'm always cursed with awful, annoying bugs when making New Years bots -_- Right now my timeout magically changes into a different value and I can't find where or why :/ 14:27
leont AlexDaniel: yes, thanks! 14:28
hfhkk hi
ZoffixW hi
14:28 hfhkk left, Jonis joined
AlexDaniel leont: the question that was discussed multiple times is how to turn andthen into an operator 14:28
leont: because ‘andthen’ is a bit too long to type
ZoffixW That reminds me of Dude Where's My Car movie :P 14:29
AlexDaniel leont: I don't remember any solution to this, maybe once we have proper macros it will become possible…
hmm
m: sub foo { return Any }; foo() orthen .say
camelia rakudo-moar e458a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ojzdt_4ZYu␤Bogus statement␤at /tmp/Ojzdt_4ZYu:1␤------> 3sub foo { return Any }; foo() o7⏏5rthen .say␤ expecting any of:␤ whitespace␤»
leont «return $!exit-status andthen .exitcode orelse Int» looks not that bad (though it could be shorter), lets see if it works too
skyl4rk in perl5 I could achieve runtime reloading of a module by deleting it from %INC, and require it again, is there something like that for 6? 14:30
AlexDaniel there's no orthen, then why not call it just ‘then’ ? :)
14:30 stmuk left, hankache left
Skarsnik skyl4rk, it's similar, but I am not sure how you do it with the new repo api x) 14:30
AlexDaniel m: sub foo { return False }; foo() andthen .say
camelia rakudo-moar e458a2: OUTPUT«False␤»
AlexDaniel m: sub foo { return True }; foo() andthen .say
camelia rakudo-moar e458a2: OUTPUT«True␤»
14:31 lnx left 14:32 lnx joined
lizmat skyl4rk: why would you runtime reload a module ? 14:33
ZoffixW Do Instance objects have some sort of magic that would make them return a different value in math operations when executed in a Promise?
14:33 brrt left
ZoffixW I'm hitting some sort of a Shrodinger's Bug :/ 14:33
14:33 jnthn joined
lizmat ZoffixW: not aware of any such magic 14:33
perlpilot ZoffixW: that often happens with threads :)
14:33 Actualeyes left, smash left, pjscott left 14:34 smash joined, pjscott joined
lizmat when you say "executed in a Promise", you mean a start {} block ? 14:34
perlpilot ZoffixW: maybe post the code somewhere so that more eyes can help find the bug?
14:34 Jonis left, Jonis joined, _mg_ joined
perlpilot (also we wouldn't have to ask questions such as lizmat's since the code would tell us :) 14:35
skyl4rk lizmat: plugin-based long-running service that I want to be able to update the plugins of, without having to restart the whole service and close/reopen all connections ...in my case it's an irc bot and just for fun
ZoffixW lizmat, almost. Here's the code. On the highlighted line, I only get positive values, but when line 11 is executed, I get a negative value: gist.github.com/zoffixznet/6f3add4...test-p6-L9
skyl4rk I have one (pet project) written in perl (5) already, and consider rewriting it in perl6 to get my feet wet so to speak 14:36
ZoffixW Here's the output. You can see all the "Starting prev" lines have positives, and the last line in the output is from the Promise and it's a negative: gist.github.com/zoffixznet/e29f76f455575c363916 14:37
14:37 stmuk joined
ZoffixW skyl4rk, if you figure it out, I invite you to post the solution on Issues in github.com/zoffixznet/perl6-IRC-Client so I could add perhaps add that to core :) 14:38
14:38 psy_ joined 14:39 psy_ left, psy_ joined, jshy left
skyl4rk will do 14:40
ZoffixW I think I know what my problem is
(and no, it's not alcoholism :))
14:42 amoe left, Rotwang left, stmuk left, Jonis left
dalek c: 09b4ed9 | lizmat++ | doc/Type/IO.pod:
Elaborate on the bare dd
14:42
14:42 lnx left, smash left
RabidGravy skyl4rk, I wouldn't say it's *that* tricky if you're dealing with the names of plugins 14:42
14:42 jnthn left
ZoffixW m: my $c = 2; for |^2 { say "out:[$c]"; Promise.at(now+1).then: { say "in:[{4 - $c}]" }; $c += 42 }; sleep 3 14:43
camelia rakudo-moar e458a2: OUTPUT«out:[2]␤out:[44]␤in:[-82]␤in:[-82]␤»
ZoffixW I'm closing over on a value that is modified on next loop iteration and thus when the Promise executes, the value is different from the original loop iteration
s/value/variable/;
lizmat ZoffixW: you realise that Promise.at is in fact a wrapper around Promise.in with when - now ? 14:44
14:44 amoe joined, smash joined
ZoffixW lizmat, I do now! :) 14:44
lizmat perhaps you could better use a fixed value for now, and then use Promise.in ?
RabidGravy I'm not convinced I would rely on any particular order of execution there 14:45
ZoffixW That was just a sample :) In my actual program I'm setting up a bunch of Promises that fire when there's a New Year at location $x 14:47
leont andthen and orelse have lower precedence than return, that is a gotcha too… 14:48
RabidGravy I'd pass a Channel into the promises then have the value passed back to a main loop with that
timotimo return 1 andthen say "what" - reads kind of naturally in a way that'd explain return having a tighter precedence than andthen would 14:49
leont still wants that defined-ternary
lizmat I've suggested ??? I think :-)
ZoffixW doesn't know about Channels
leont, then there's a consensus at least among 3 people :)
14:50 jnthn joined, Jonis joined
ZoffixW err, lizmat 14:50
ETOOMANYLS
skyl4rk heh
timotimo with?, with!
Skarsnik a defined operator that work like ! could be nice
14:51 lnx joined
Skarsnik like $stuff ? ~~ /regex/; 14:51
14:51 lucasb left
Skarsnik to replace $stuff.defined && $stuff ~~ /regex/; 14:52
ZoffixW Oh, so is this a bug?
m: my $x = 42; say $x.WHAT ~ ' '
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value of type Int in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/VKveYHNLlT line 1␤ ␤»
RabidGravy It's kinda special 14:53
ZoffixW m: my $x = 42; say $x.WHAT.WHAT
camelia rakudo-moar e458a2: OUTPUT«(Int)␤»
RabidGravy it's a type object so y'know undefined
ZoffixW m: say "{Int}"
camelia rakudo-moar e458a2: OUTPUT«Use of uninitialized value of type Int in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/VwnyeIDfKd line 1␤␤»
ZoffixW Ah, k, never mind then :)
timotimo Skarsnik: you know about //= already, i guess? 14:54
perlpilot Skarsnik: maybe $stuff //~~ /regex/; // already has the definedness connotation
timotimo no, that's no metaoperator
that //= works is because of the foo= metaop, not because of what // is
Skarsnik I don't know about // x) 14:55
14:55 _mg_ left
RabidGravy my $x = 42; say $x.WHAT.^name ~ ' ' 14:55
m: my $x = 42; say $x.WHAT.^name ~ ' '
camelia rakudo-moar e458a2: OUTPUT«Int ␤»
Skarsnik .WHAT does not like being ~ x)
RabidGravy yeah because it's a type object
14:55 pjscott left
perlpilot maybe we need a D meta-op. $stuff D~~ /regex/; $thing D. method 14:55
(yuck)
14:57 amoe left, smash left, lnx left 14:58 Jonis left, jnthn left, jnthn joined, Jonis joined, smash joined, lnx joined 14:59 amoe joined 15:01 Zero_Dogg left, Zero_Dogg joined, Zero_Dogg left, Zero_Dogg joined 15:05 integral left, lnx left 15:06 integral joined, integral left, integral joined 15:07 lnx joined, dotness left 15:09 Rotwang joined 15:11 sprocket joined, stmuk joined, esh left
ZoffixW How do I include methods in regexes? 15:12
m: class Foo { has $.bar = 'foo'; }; my $foo = Foo.new; say 'foo bar' ~~ /$foo.bar/
camelia rakudo-moar e458a2: OUTPUT«Nil␤»
ZoffixW m: class Foo { has $.bar = 'foo'; }; my $foo = Foo.new; say 'foo bar' ~~ /"{$foo.bar}"/
camelia rakudo-moar e458a2: OUTPUT«「foo」␤»
ZoffixW Is this the way? Feels dirty
RabidGravy if you define a "regex foo " I believe you can pass in arguments somehow 15:15
but that seems fine
ab6tract interpolation feels like the right fit to me, tbh 15:16
anyway, i'm off! have a happy new year #perl6! 15:17
RabidGravy have fun
ab6tract you too :)
15:17 ab6tract left 15:18 cosarara_ is now known as cosarara 15:19 integral left
dalek Iish: e7eb49f | (Sylvain Colinet)++ | / (2 files):
Add a Array to PG array string helper method
15:19
ZoffixW Why is it NIl? 15:20
m: 'hny Toronto' ~~ /^ \s* 'hny' (\s+ $<loc>=.+)?/; say $/<loc>
camelia rakudo-moar e458a2: OUTPUT«Nil␤»
ZoffixW m: 'hny Toronto' ~~ /^ \s* 'hny' (\s+ $<loc>=.+)?/; say "$/<loc> $0"
camelia rakudo-moar e458a2: OUTPUT«Use of Nil in string context in block <unit> at /tmp/0gjlEiVDvZ line 1␤ Toronto␤»
Skarsnik to annoy you?
ZoffixW It's working! :)
15:20 Rotwang left, hankache joined 15:21 integral joined, integral left, integral joined 15:22 Rotwang joined, Jonis left, amoe left, Jonis joined
ZoffixW m: 'hny Toronto' ~~ /^ \s* 'hny' \s+ ($<loc>=.+)/; say $<loc> 15:22
camelia rakudo-moar e458a2: OUTPUT«Nil␤»
ZoffixW m: 'hny Toronto' ~~ /^ \s* 'hny' \s+ $<loc>=.+)/; say $<loc>
camelia rakudo-moar e458a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AvGxfV27eP␤Unable to parse regex; couldn't find final '/'␤at /tmp/AvGxfV27eP:1␤------> 3y Toronto' ~~ /^ \s* 'hny' \s+ $<loc>=.+7⏏5)/; say $<loc>␤ expecting any of:␤ infix stopper␤»
15:22 lnx left 15:23 Arrowhead left
ZoffixW crap. Well, the second one without the parens works 15:23
15:23 amoe joined
hankache anyone has any idea how to circumvent the panda issue ? 15:23
15:23 smash left, smash joined
ZoffixW Fix the bug? XD 15:24
15:24 lnx joined
hankache ZiffuxW I don't know how :( 15:24
ZoffixW**
ZoffixW Ziffux -_- I had my name misspelled, but never quite in that way
hankache hahahaha 15:25
15:25 harrison_ joined, protium left
lizmat afk for an hour or so 15:25
15:25 integral left 15:26 stmuk left, jnthn left
ZoffixW hankache, well, the --force on panda I built about 24 hours ago works fine. So I'd start by going through recent commits and look at changes. This one seems to be doing something with the force: github.com/tadzik/panda/commit/3e7...4c1f8d9f94 15:27
15:27 stmuk joined
loren panda doesn't work well.. 15:27
15:27 integral joined, jnthn joined, pjscott joined
hankache the --force is not with me these days 15:27
ZoffixW Errors like these are really annoying 'cause you don't know which module it's triggered in. I wonder if it's easy to improve that gist.github.com/zoffixznet/82cffa1a2e42d4d62d0f
15:28 raiph joined, xinming_ joined
ZoffixW Hm. And it's an await call. So I can potentially have 1,000,000 lines of code to try to find that error at :( 15:28
15:29 harrison_ left
Skarsnik Now that I write a bunch of patch/code every where. Let see if the original code that need it work now x) 15:29
Could be worst. you don't get a backtrace at compile time x) 15:30
hankache say i don't want to use panda. what are my alternatives? 15:31
15:31 xinming left 15:32 virtualsue left
ZoffixW ugh "Too many positionals passed; expected 0 arguments but got 1"... no idea where. Is it possible to get more information from a broken... um... whatever IO::Socket::Async returns ^_^ 15:32
15:32 virtualsue joined
leont threads tend to ruin the backtraces on such exceptions 15:33
I tend to put CATCH { warn .backtrace } in my start{} blocks, to be able to debug things
ZoffixW Well, as far as Awesome Errors go, this is least awesome :( 15:34
k. gonna try that
loren Error message sometimes mess .. 15:35
Skarsnik I love this: my %hash = $selectstory_req.row(:hash); my Story $story = Story.new(|%hash); x)
15:36 Rotwang left, stmuk left
ZoffixW *sniffs* 15:36
15:36 lnx left
ZoffixW Smells like sarcasm in here. 15:36
15:36 amoe left 15:37 Jonis left
awwaiid .seen radiak 15:37
yoleaux I haven't seen radiak around.
15:37 smash left
awwaiid .seen raydiak 15:37
15:37 jnthn left
yoleaux I saw raydiak 22 Dec 2015 08:02Z in #perl6: <raydiak> nine++ : that seems to have fixed it, I guess it was just something to do with recent changes and trying to rakudobrew over a rather old version...thanks for the help though :) 15:37
hankache ZoffixW can i install an older panda> the one pre-the commit related to force ?
loren panda will check rakudo version, seem like
ZoffixW hankache, no idea
15:39 jnthn joined, Jonis joined, lnx joined
ZoffixW yey, leont++ Three CATCHes later, I finally have some useful debug info :) 15:39
dalek Iish: 44925b4 | (Sylvain Colinet)++ | lib/DBDish/Pg/StatementHandle.pm6:
Typo
15:41
15:41 integral left, bitmap left 15:42 cdg joined 15:43 bitmap joined, xinming joined
ZoffixW m: say DateTime.now + 42 15:43
camelia rakudo-moar e458a2: OUTPUT«Cannot call Numeric(DateTime: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/XRPAVIobyK line 1␤␤»
ZoffixW m: say now + 42
camelia rakudo-moar e458a2: OUTPUT«Instant:1451576689.138346␤»
ZoffixW IMO, math operations on DateTime could use .Instant to coercee it
m: say DateTime.now + DateTime.now 15:44
camelia rakudo-moar e458a2: OUTPUT«Cannot call Numeric(DateTime: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/NBF0h9v0ZV line 1␤␤»
15:44 pmurias left, jnthn left 15:45 pjscott left, Jonis left, lnx left, loren left 15:46 jnthn joined, xinming_ left, Jonis joined, lnx joined 15:47 pjscott joined
ZoffixW m: sub infix:<+> (DateTime $a, Numeric $b) { $a.Instant + 42 }; say DateTime.new: DateTime.now + 42; 15:47
camelia rakudo-moar e458a2: OUTPUT«Type check failed in binding $a; expected DateTime but got Instant␤ in sub infix:<+> at /tmp/PW1nLC9zSt line 1␤ in sub infix:<+> at /tmp/PW1nLC9zSt line 1␤ in block <unit> at /tmp/PW1nLC9zSt line 1␤␤»
ZoffixW orly
15:47 pjscott left, bitmap left
ZoffixW m: say DateTime.now.WHAT 15:48
camelia rakudo-moar e458a2: OUTPUT«(DateTime)␤»
ZoffixW Ah. Need a multi in there
15:48 Rotwang joined
Skarsnik I still have a leak in xml :( 15:48
15:49 pierre-vigier joined 15:50 integral joined, integral left, integral joined, bitmap joined, void1 joined
Skarsnik this is annoying, my process will probably not end because of that x) 15:50
15:50 amoe joined
timotimo if the leaked memory is not in GC managed heap parts, it'll be no problem to just swap all that stuff out to disk ... 15:50
if it is, however, every major gc will run over it :( 15:51
15:51 stmuk joined, smash joined
timotimo repeatedly 15:51
over and over and over again
Skarsnik Still no way to access some GC info? like memory used x)
timotimo the profiler gives you a bit of info, but i'd not be against having a dedicated memory profiler or something 15:52
BBIAB
15:54 void1 left, brrt joined 15:56 _Vi joined 15:58 spider-mario joined 15:59 nanis joined
_Vi Is Perl6 expected to start up much slower than Perl5? 1.5 seconds for trivial script bring startup slowness to Clojure's level. 16:00
16:01 Arrowhead joined
leont Sadly, at this stage it is rather slow to start up 16:02
People are working on this
16:03 pjscott joined
perlpilot _Vi: Keep in mind that Perl 5 has been around roughly three times as long as Rakudo and as such, had lots of optimization. 16:04
16:04 nexysno_ left, nexysno_ joined 16:05 integral left
_Vi perlpilot, So this slowness is not by design and expected to go away in a couple of years? 16:06
perlpilot _Vi: correct.
16:06 pjscott left, smash left, jnthn left
Skarsnik it should not be that slow for small stuff. do you use lot of modules? 16:06
16:07 amoe left
_Vi Now Perl5 is useful as, for example, more powerful sed (perl -pe 's/.../.../'). Perl6 does not look suiting, although the same command line works. 16:07
16:07 Rotwang left, Jonis left, stmuk left
_Vi echo qqq | time perl6 -pe 's/qqq/www/' -> 1.49user 0.11system 0:01.67elapsed 95%CPU 16:07
ZoffixW _Vi, to some extent, yes. Keep in mind that mere perl6 -e '' is akin to loading Moose in Perl 5. Do that and you'll notice a comparable (if not worse) load time
16:07 lnx left, pjscott joined
perlpilot _Vi: I've used P6 for command-line stuff and it's just fine. Typically *I'm* the speed bottle-neck when it comes to a command-line processing pipeline :) 16:07
16:08 lnx joined
_Vi (looking up what is Moose) 16:08
ZoffixW _Vi, my personal opinion is Perl 6 is not the "tool for command line stuff". It's for large programs
16:08 Rotwang joined, smash joined, stmuk joined
_Vi For large programs I typically switch to Python and friends. 16:08
ZoffixW _Vi, it's an object system comparable to what Perl 6 has built-in: metacpan.org/pod/Moose
16:08 Jonis joined, amoe joined
ZoffixW _Vi, yeah. We intend to change that :P 16:08
16:09 pjscott left
ZoffixW sounds the battle cry 16:09
16:09 nexysno_ left
Skarsnik I used etheir perl or C++/Qt for writing stuff x) 16:09
hankache reporting for duty
_Vi So Perl6 is not intented to completely replace Perl5, not aiming for it's "king of quick&dirty ad-hoc text parsing and recombination"?
hankache where is the snake?
16:09 pjscott joined 16:10 pjscott left
perlpilot _Vi: it's not intending to "replace" anything. Perl 6 intends to be the best it can at the things it excels at :) 16:10
Skarsnik ZoffixW, can you quickly cook a module to query the memory usage from /proc/stat? I am lazy lol
ZoffixW _Vi, no, Perl 6 is a new language that stuck with Perl in the name for historic reasons. Perl 5 is developed by different set of people and is making yearly releases, so there's no plan to replace anything
perlpilot _Vi: if that means that people reach for P6 instead of P5 (or python, ruby, php, C, clojure, Scala, c++, Java, etc.), ... so be it. 16:11
ZoffixW Skarsnik, I'm busy hacking my stupid New Years bot lol
_Vi For example, Python 3 is intended to replace Python 2.
16:11 dds_intix joined
ZoffixW _Vi, yeah, it's different with Perl 6 16:11
Ulti _Vi its more like the difference between C# and C
16:11 jnthn joined
ZoffixW _Vi, you can call it Rakudo and get an accurate picture of what's replacing what :) 16:11
16:11 pjscott joined 16:12 integral joined, integral left, integral joined, Begi joined
perlpilot _Vi: btw, Python 3 may have the intent to replace Python 2, but it's been out for how long? What's the adoption rate? Last I looked it wasn't all that swift. 16:12
brrt Tux: i'm using python csv right now. apparantly, 'foo,bar' is *not* a sufficient quoting to not split by the ,
_Vi Most of my Perl programs start as a sed or awk command lines (outgrown oneliner phase)...
nanis On an ancient laptop running Windows6, I get timethis perl6 -e "q[hello].say" in 0.272 seconds versus timethis "perl -MMoose -E ""say 'hello'"" in 0.529 with a warm file cache.
ZoffixW Do we have articles on the whole Name Issue so we don't have to explain the same thing? 16:13
nanis That is slower than plain perl, but fast enough.
16:13 pierre-vigier left
Ulti nanis: yeah the cache is the important part there 16:13
nanis s/Windows6/Windows10/
Ulti first run of Perl 6 in a while is always 1s extra
16:13 pjscott left
nanis Sure, but most of the time, "the first run of perl6" does not happen that often. 16:14
Ulti ZoffixW perl6.org says it in the first sentences right?
nanis There is room for improvement, but perl6 is not useless as a command line tool.
huf * * * * * perl6 -e1
perlpilot nanis: well said.
Ulti oh not so much
huf keep that cache warm :)
perlpilot huf: heh 16:15
ZoffixW Ulti, not really. It says Perl 5 is still a thing, not why Perl 6 has 'Perl' in its name
Ulti instead Camelia talks about herself in the third person like a crazy bug
perlpilot Ulti: it's because she spent her larval stage as a camel and didn't talk at all then.
gfldex ZoffixW: the difference between perl 5 and perl 6 should go into /language/faq
Ulti heh 16:16
16:16 pjscott joined
leont Why does Test.pm have a diag function, but not a (renamed) equivalent of note()? 16:16
Ulti can we gets some 3D CSS on Camelia so she flaps her wings occasionally?
leont diag is something to be very much discouraged :-/
ZoffixW gfldex, hm?
leont In fact, when supporting only one it's probably better to support only note's functionality
perlpilot leont: dunno. I guess no one ever needed/wanted it yet. 16:17
gfldex ZoffixW: it's a frequently asked question, isn't it?
leont perlpilot: more likely, it's a case of copying mistakes from p5 land without asking :-/
perlpilot maybe.
Ulti ZoffixW: www.michaelbromley.co.uk/experiment...butterfly/
Skarsnik damn getting a deb unstable vm take me more time than expected
16:17 pjscott left
Begi Ulti++ : it will be cool ! 16:18
leont diag is terrible from a usability point of view (right in the middle of the harness' formatted output on the terminal), you kind of only want to use it if you're really desperate to shout to the end user
nanis Skarsnik, unless you have a specific need for a specific distro, I find ArchLinux is the fastest to get up and running in my experience with Macs and Windows. 16:19
Arrowhead Is there a workaround for the unusable panda at the moment?
16:19 Zero_Dogg left, pierre-vigier joined
ZoffixW Arrowhead, fixing the bug :) 16:19
Ulti, neat
Arrowhead ZoffixW: that's bugs, plural. 16:20
nanis Arrowhead where can I find out about the panda problem.
Arrowhead nanis: github.com/tadzik/panda/issues or just starting with a fresh rakudo, then panda, then try installing Linenoise for example. 16:21
autarch is there an agreed-on namespace for MetaModel extensions?
and if not would MetaX:: be appropriate?
ZoffixW MetaX:: sounds good to me 16:22
16:22 hankache left
Skarsnik kde is still broken on debian unstable, damn 16:22
nanis Arrowhead: I'll check the issues, but just ran `panda install Linenoise` with my post-Christmas clone, and worked ... so maybe I should just stick with that for a while. 16:24
16:24 esh joined
skyl4rk rakudo: say @*INC[0]; 16:24
camelia rakudo-moar e458a2: OUTPUT«Dynamic variable @*INC not found␤ in block <unit> at /tmp/tmpfile line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/tmpfile line 1␤␤»
Skarsnik You want to look at $*REPO
@INC is not here anymore 16:25
perlpilot Hmm. why is it $*REPO instead of @*REPO?
Skarsnik but I am not sure if precomp will not get in the way of reloading a file
Because it's a more complete class? (or I maybe type it wrong) 16:26
ZoffixW m: say $*REPO.WHAT # that's why
camelia rakudo-moar e458a2: OUTPUT«(Installation)␤»
ZoffixW It's not a mere rename, but a giant overhaul
perlpilot you can always say "no precompilation" to make sure precomp isn't an issue
ZoffixW: yeah, that's something I need to read up on I guess. I didn't keep up with the changes very well.
16:27 amoe left, Rotwang left
ZoffixW I wouldn't be surprised if it weren't documented yet 16:27
16:27 lnx left 16:28 stmuk left, smash left, jnthn left, Jonis left, ggoebel7 left 16:29 ellybelly_ left, ellybelly left
perlpilot It's certainly not in the synopses anywhere. 16:29
ZoffixW There's a gist somewhere by jnthn that describes the design
Skarsnik m: say "It's nine fault"
camelia rakudo-moar e458a2: OUTPUT«It's nine fault␤»
16:29 dds_intix left
perlpilot (though @?INC still is) 16:29
16:30 stmuk joined, smash joined, lnx joined
ZoffixW The specs are outdated. Currently the roast is "the spec" 16:30
16:30 Jonis joined, Rotwang joined
Skarsnik I though I removed @INC x) 16:30
16:30 jnthn joined, amoe joined, brrt left
Arrowhead Ok, I see a hint of what's going on with the panda options. The panda in panda/bin/panda works, the installed one doesn't 16:31
mst does somebody want to summarise what's gone wrong?
it'll be a few minutes before the lemsip kicks in and I'm capable of tearing CompUnitRepo to bits to help but I can start reading at least 16:32
Skarsnik IT4S BROKEN PLZ FIX
no?
ZoffixW mst, 24hrs ago, this was the only issue: github.com/tadzik/panda/issues/274 and in the past 24hours this occured: github.com/tadzik/panda/issues/278
mst Skarsnik: trout.me.uk/vaguecat.jpg 16:33
perlpilot heh
jdv79 y'all are really "working" on nye?
16:33 webstrand joined
ZoffixW mst, and summary is (a) panda needs to skip already installed modules instead of erroring out and aborting the install; and (b) seems like --force (and possibly other options) got broken in the past 24hours 16:33
16:33 zakharyas joined
mst jdv79: I have plans for perl6 that will involve my being able to write a module installer I don't hate 16:34
ZoffixW mst++
jdv79 but tonight?
mst obviously the best way to learn everything required to do that is to keep volunteering to debug the existing stuff
Arrowhead The hint for (b) is that there's a difference between the panda script in the repo and the one that gets installed, or perhaps the communication between the two.
mst dude. I've hacked on ExtUtils::MakeMaker for fun. you may be misunderstanding how this grade of masochism works.
jdv79 i think alot of us agree with that generally though
RabidGravy is everyone absolutely sure that this hasn't had some bizarre effect? github.com/tadzik/panda/commit/8c6...acaec645cb I'm skeptical but it's the only recent change
jdv79 hmm, ok. 16:35
sounds mildly disturbing
mst perlpilot: $*REPO is basically a linked list ish thing, there's a gist from jnthn somewhere
16:36 lucasb joined
ZoffixW RabidGravy, I'm not. In fact, I mentioned that commit earlier 16:36
perlpilot aye, I'm reading it now.
mst good, cuz I don't remember the URL. share with the class please?
perlpilot gist.github.com/jnthn/47a42b2e86e7e552b2e2
ZoffixW We need a factoid bot... 16:37
webstrand Is there any way to install modules by specific version? I note that Panda's project.json specifies versions for some of its dependencies, but I don't see any mechanism for identifying a specific version of a module.
ZoffixW If only someone was working on IRC bot stuff.... like right this second....
jdv79 webstrand: probably not yet 16:38
RabidGravy webstrand, no. The storage doesn't allow for it
mst 'the storage' ?
RabidGravy "github HEAD"
jdv79 thats the src 16:39
RabidGravy er yes
lucasb most people are not versioning their modules on github, right?
jdv79 cur should be able to doit by my skimmings
mst lucasb: not that I can see
though that's pretty much a good thing from my POV
jdv79 that scheme is not yet defined afaik 16:40
mst since S11 is ... not something I really want to have to support all of
jdv79 use cpan for that:)
webstrand RabidGravy: Do you know if the mechanism has been specified (such as git tags)? Or is that still undecided?
Skarsnik don't want to version stuff in DBIish x)
dalek osystem: 7dfeaff | (Zoffix Znet)++ | META.list:
Add IRC::Client::Plugin::HNY to ecosystem

Plugin for New Year's IRC parties: github.com/zoffixznet/perl6-IRC-Cl...Plugin-HNY
RabidGravy lucasb, I do but the META.list still points to HEAD
Skarsnik DBIish is an exemple of making versionning a nightmare probably
jdv79 btw, ranguard pushed a first set of eco to cpan 16:41
Skarsnik the *base* role could have a version, while the driver another
mst yes, with intentionally low version numbers
RabidGravy webstrand, I think the current mechanism will go away at some point
16:42 ZoffixW is now known as HNYBot, HNYBot is now known as ZoffixW
Skarsnik Wow apt has a sexy progress bar. why apt-get does not have it lol 16:43
RabidGravy if it was one of the modules where the author is doing so, you could go to github and get the tagged source and install manually
Skarsnik versionning will happen with tool doing it for the author
16:43 HNYBot joined
RabidGravy all of mine have been so tagged since July 16:43
HNYBot Next New Year is in 16 minutes and 20 seconds in Cambodia, Christmas Island, Indonesia, Laos, Mongolia, Russia, Thailand, and Vietnam
ZoffixW You don't mind if I test out my first real Perl 6 program in here, do you? :)
HNYBot, hny Toronto
Skarsnik like myawesometool tag version 16:44
ZoffixW :(
Skarsnik and it does all the git/cpan voodo
RabidGravy I thought Christmas Island was in the +14 timezone
mst Skarsnik: that's called Dist::Zilla
ZoffixW RabidGravy, is it? It might be a bug :)
ugexe nine: tony-o did, and jnthn mentioned being fine with it. then waited for lizmat to try to outline the design she had in mind in a gist. "hopes lizmat, FROGGS, and tony-o will find a way to collaborate on getitng us something nice. :)" I believe you made a comment about not taking much to be a top 3 expert in that area in the same conversation. In any case it was not just an offer as I bug tested his working
yoleaux 09:21Z <nine> ugexe: can you also tell me how to implement your "should not install a module that fails to precompile" rule?
09:24Z <nine> ugexe: :ver<*> doesn't look like a good idea. For one because you ask for version '*' (a string). But apart from that it seems to be doing here what you intended (tested with Inline::Python:ver<*> and Inline::Python:ver(v0.1))
ugexe code (handling most everything in the gist) soon after.
yoleaux 09:27Z <nine> ugexe: what exactly did tony-o offer to whom? I'm genuinly curious. Also what do you mean by "then boilerplate was merged"?
ugexe as far as how to not install a module that fails to precompile i imagine you can just uninstall a module that fails to precompile if :force is not used. when precompilation was handled as a step separate from installation it was as simple as not doing the install if precomp failed. the way it stands it creates problems for everything that depends on it, and a package manager can't choose an alternative because
there are no controls/hooks for know if it failed
mst but every time I mention it in here people start ranting about how that's overcomplicated and shouldn't exist because there's no reason to have versions or something
RabidGravy no I may be just confused
ZoffixW RabidGravy, in my data it's "'offset' => '7'," 16:45
RabidGravy I don't think we'll worry
mst, ignore them versions are important 16:46
mst ugexe: which code are we talking about here?
Skarsnik version are importing in important module
ugexe mst: compunit
Skarsnik *important
mst ugexe: right, I've been discussing design with nine for that, where do I look for the stuff you're working on? 16:47
16:47 HNYBot left 16:48 pdcawley_ joined, nanis left 16:49 pdcawley left
ugexe mst: thats from 4 months ago 16:49
mst ugexe: oh, right, fair enough
sorry. trying to avoid missing what's going on 16:50
since the CUR code is current a beatuifully elegant theoretically brilliant jumblefsck, and I want to try and help make it as brilliant practically as it clearly should be once we de-fsck it :)
16:51 amoe left
TimToady
.oO(I don't like half of you half as well as you deserve...)
16:51
RabidGravy mst++
16:51 integral left
flussence has a gut feeling that we should've made one to throw away here, but CUR's part of the specs and spectests now 16:51
16:51 ZoffixW left
lucasb can I share something funny I just found? If you have vim patch 7.4.1005, you can now type the command ":smile" :) 16:52
mst flussence: that's entirely possible, but since I didn't start looking properly until after it was too late to do that, I'm not considering the possibility
jdv79 flussence: not very.
mst since if that's true, I should also have turned up months ago to help with that
and I'd rather focus on what's there now than guilt tripping ourselves :D
16:52 dfarrell joined
jdv79 it might end up a throw away yet 16:52
16:52 rindolf left 16:53 amoe joined
flussence jdv79: the API's gotta stick, though 16:53
perlpilot flussence: deprecation is still a thing we can do.
jdv79 only so far as 6.c
:)
16:53 espadrine left, integral joined, stmuk left
perlpilot better to get the pain out of the way sooner than later for CUR stuff 16:53
16:53 Jonis left, jnthn left 16:54 Jonis joined, Rotwang left
dfarrell hey folks, I'm having real trouble getting Perl6 working on Windows. I've opened a few issues about it for rakudobrew ... but in the meantime is there any chance a new .msi of Rakudo Star will be released soon? The current version is from November 16:54
16:54 smash left
RabidGravy I'm sure mst is actually mellowing into a pragmatic person, he seemed like a wild idealist when I first met him ;-) 16:54
16:55 jnthn joined, Rotwang joined, smash joined
jdv79 dfarrell: it is still " the holidays" 16:55
flussence wants to just shove installed things into an sqlite blob instead of all the messing around with sha1 filenames, but that idea's beyond a certain insanity threshold...
ugexe jdv79: does your instance of metacpan have any of the dists available to download?
16:55 stmuk joined
jdv79 all 16:55
perlpilot flussence: me too. I've thought that for a few years now, but never got the gumption to implement it. 16:56
jdv79 just not what ranguard did yet
dfarrell jdv79: yeah I'd like to write a "Perl 6 is out, here's how to get it" article, but I cannot get it for Windows ...
16:56 atweiden joined
flussence Arrowhead: currently staring at a red triangle on X11, I just had to s/glfw3/glfw/ to make the library load :) 16:56
Arrowhead flussence: great. I just fixed that, but on my Ubuntu vm I get a segfault. 16:57
lucasb flussence: I liked this sqlite idea! I think it should be something to pursue...
mst flussence: speaking as an operations person, "if you do that, you're carrying the pager"
jdv79 for now, ugexe, prepend port 5000 to the download_url
Skarsnik someone should write blob support in NC then x)
jdv79 ill make that uri abs to work soon. dorry
flussence mst: that's why I'm not doing it and dismissing it as too insane :)
perlpilot flussence: and what mst said is *why* I never got the gumption to implement it :)
webstrand Are all perl6 modules guaranteed to be in git repositories right now? If so you could use git log to search through the commits touching the META6.json's version field
ugexe jdv79: i dont want to use ranguards because it would mean changing the author search deal or url creation
but thanks, i must have mis-absoluteified the download_url before 16:58
16:58 Jonis left
mst webstrand: if there even is one. META6 appears to have neither a proper spec nor a spec version field in it 16:58
16:58 integral left
mst that's going to need replacing as well 16:58
ugexe meta6 is specced in s22
16:59 Jonis joined
jdv79 yeah. like i said unfortunately im mostly traveling for a few weeks so just checking in. no hacking. 16:59
mst S22 is a nice artist's impression of what a sketch might look somewaht like
it's not a spec
Skarsnik meta6 is lacking stuff
ugexe although not a proper meta-spec=6 deal
mst p3rl.org/CPAN::Meta::Spec is a spec
16:59 pierre-vigier left, integral joined, integral left, integral joined
mst it has versions and actual specification of things and everything 16:59
jdv79 yeah. s22 is outdated and just a suggestion in my mind.
ugexe jdv79: ah. fwiw its down :( 17:00
17:00 cdg left
jdv79 yes. i would like to move towards that. 17:00
RabidGravy yeah, the meta should be versioned
17:00 sprocket left
flussence let's stick a 0 on it now, because we really need a 1 17:01
jdv79 which is why i want to be able to cpan6::meta::spec...
17:01 rindolf joined, cdg joined, atweiden left
RabidGravy infact it should be versioned 0 right now so there aren't problems later 17:01
flussence anyone want to mess with S22 to do that, or should I?
17:02 atweiden joined, atweiden left, atweiden joined
webstrand mst: even if the META6 isn't specified, perl6/ecosystem seems to have an ad-hoc specification which requires some kind of `info` json document, many of which have some version field 17:02
ugexe thats the version of the module, not the meta spec used 17:03
17:03 pierre-vigier joined
webstrand ugexe: I'm looking for the version of the module, not the spec 17:03
RabidGravy yeah, there should be a meta-version or some such
jdv79 no its up. port 5001. sorry 17:04
RabidGravy webstrand, then the version field
it is specified as mandatory
Skarsnik I would want to be able to write gist.github.com/Skarsnik/83bb883378bbf2b21b82 in my meta x)
17:04 ZoffixW joined 17:05 nexysno_ joined
ugexe jdv79: sorry i meant search is down: hack.p6c.org:5001/v0/release/_searc...ion:DBIish (404), and port 4500 gives connection refused for elasticsearch module 17:05
Skarsnik even if it's mostly iformational
ZoffixW Well, this sucks :/ My bot seems to freeze up when connecting to Freenode almost right away :/ Even though it works locally
rindolf jdv79: hi, sup?
mst sighs
ugexe port 5000^
mst broke ssh
RabidGravy for better or for worse most things fudge over a missing version
rindolf Happy New Year, everyone!
17:05 dfarrell left
TimToady maybe we should assign A.timestamp as a version if they omit it 17:05
17:06 pierre-vigier left
ZoffixW That's a good idea 17:06
mst right, moar rebuild running
then I'll throw panda in
then try and repro
17:06 cdg left
jdv79 flussence: i think the spec should lag the impl wrt s22 so not sure why update it quite yet. 17:07
17:07 raiph left
ugexe with something like '0' or * though when someone 'use XXX:ver<1..*>' the timestamp of an older release could be chosen as newer than a later, actually newer release no? 17:07
17:07 sprocket joined, sprocket left
RabidGravy rindolf, happy new year (didn't realise you were *that* east or did I just not notice what the time was ) 17:07
gfldex m: sub f() { state $a = 'bad'; BEGIN { $a = 'good' }; $a }; put f; 17:08
camelia rakudo-moar e458a2: OUTPUT«bad␤»
rindolf RabidGravy: it's not 1 January here yet.
gfldex should $a be good?
rindolf RabidGravy: I live in Tel Aviv, Israel.
RabidGravy ah okay, just checking
perlpilot rindolf: yeah, you're only UTC +0200, yes?
rindolf RabidGravy: it's 19:08 here.
RabidGravy rindolf, I know everything ;0
rindolf perlpilot: that or UTC +0300
TimToady gfldex: no, state variable are initialized at clone time, and BEGIN is before that 17:09
rindolf RabidGravy: well, tell me the proof for Goldbach's Conjecture.
RabidGravy :-p
gfldex TimToady: is there another way to do that without a global variable?
TimToady well, actually, state vars are initialized at 'once' time, which is by definition after clone time
17:10 nexysno_ left, cdg joined
dalek ecs: 7a09880 | (Anthony Parsons)++ | S22-package-format.pod:
Make an allowance for future META6 versioning

This doesn't break any existing code. I promise!
17:10
jdv79 my current thinking is to adopt the p5 meta stuff amd adjust for p6isms. 17:11
gfldex TimToady: and should rakudo not complain inside the BEGIN because $a isn't declared?
perlpilot gfldex: but it was declared
RabidGravy flussence++ 17:12
rindolf RabidGravy: maybe you're Ceiling Cat.
flussence my current thinking is .oO( why the heck does META6 have a key for support phone number? )
ugexe that would be nice, as im willing to bet more p6isms could find their way to p5
17:12 Jonis left
mst rindolf: please don't bring creepy into here. 17:12
perlpilot gfldex: the moment rakudo parses "state $a", $a is declared and lexically available
gfldex does the container $a exists or does it write some wrong to one of my ramz?
17:12 integral left
TimToady m: sub f() { state $a; BEGIN { $a = 'good' }; $a }; put f; 17:12
camelia rakudo-moar e458a2: OUTPUT«good␤»
rindolf mst: now what did I do?
17:13 stmuk left, amoe left
TimToady if you omit the bad initialization, it'll init with the static version 17:13
jdv79 but ive only briefly irced with xdg so far and wont be able to dig in til mid jan at earliest
17:13 nige1 joined
mst rindolf: referencing a meme involving masturbating is hardly on topic for a programming channel. 17:13
17:13 integral joined, jnthn left, lnx left
RabidGravy flussence, the language around the "support" is somewhat had wavey 17:13
17:13 smash left, stmuk joined
jdv79 flussence: "v0" is likely wrong 17:13
RabidGravy hand wavey
17:13 smash joined, lnx joined, Rotwang left
jdv79 "0" 17:13
17:13 Rotwang_ joined
mst flussence: right now, we're going to basically have yo treat 'no version' as 'prehistoric, no idea what it is' 17:13
17:13 amoe joined
rindolf mst: OK, sorry. 17:13
mst *to
flussence: same will go for CUR formats on disk 17:14
flussence jdv79: I do say in the sentence right before that "quoted Version literal" :)
17:14 jnthn joined, Jonis joined
perlpilot gfldex: If you want to be crazy verbose, you could do ... 17:14
jdv79 but thats wrong, no?
17:14 edehont joined
perlpilot m: sub f() { state $a = "bad"; once $a = "good" ; $a; }; put f 17:14
camelia rakudo-moar e458a2: OUTPUT«good␤»
jdv79 version in string form dumps the v
17:14 cdg left
flussence agh, yeah you're right. fixing 17:15
17:15 pierre-vigier joined
jdv79 anyway. happy new years! i am outta here for the evening. 17:15
17:16 pierre-vigier left
TimToady m: say Version.new('A.' ~ time) cmp v0.0.0 17:16
camelia rakudo-moar e458a2: OUTPUT«Less␤»
rindolf jdv79: bye.
ZoffixW Found a fatal flaw in my IRC::Client that I have no idea how to resolve -_- By default xchat is in /charset IRC mode and if I say, say, 'Juáre', my bot dies with "Unhandled exception: Malformed UTF-8", but if I switch my client to /charset utf8, then it lives.
RabidGravy mst, like http I think we should just treat 0 as prehistoric and accepr anything that works right now 17:17
ZoffixW starts to suspect NOT coding on New Years would make it more pleasurable -_-
17:17 pierre-vigier joined
flussence ZoffixW: crazy idea, try utf8-c8? 17:17
ugexe ZoffixW: if you are using a socket/proc and not using :bin then it will gladly try to encoding invalid utf8 as utf8 and fail 17:18
Skarsnik unicode string look nice when never dealing with the oustide word x)
ZoffixW flussence, X-chat tells me "Unknown charset: utf8-c8"
Skarsnik ZoffixW, if your code
ZoffixW ugexe, oh, I'm not using :bin anywhere
ugexe i use :bin for everything and decode it myself (for procs and sockets)
17:18 firstdayonthejob left 17:19 Rotwang_ left
flussence vaguely remembers something insane about how de-facto irc charsets work 17:19
17:19 lnx left
skyl4rk what about trying to catch the exception? 17:19
Skarsnik it's not like ascii?
skyl4rk it's pretty much undefined
iirc
17:19 amoe left
ugexe it should be an nqp error so probably not fun to catch 17:19
17:19 smash left
ZoffixW skyl4rk, well, that's not a solution if my bot will ignore all default Xchat users :P 17:19
17:19 Jonis left
skyl4rk except that {} is considered uppercase [] or vice versa 17:20
17:20 pierre-vigier left
mst ZoffixW: if you need to be able to handle misencoded data, I think 'decode yourself as a separate stage' is going to be the only way 17:20
17:20 amoe joined, stmuk left, smash joined, jnthn left
mst ZoffixW: once you've trapped the exception on the decode, you can pick what to do 17:20
17:20 integral left
mst ZoffixW: I would suggest, IRC being IRC, "smash it into seven bit ASCII with a handy regular expression and then decode what's left" 17:20
17:20 Rotwang joined 17:21 lnx joined
ZoffixW :o 17:21
17:21 pierre-vigier joined
mst you're welcome to try something more clever than that but I'm betting "smash it into seven bit ASCII and decode the pieces" will have to be your final fallback no matter what 17:21
dalek ecs: 60cf346 | (Anthony Parsons)++ | S22-package-format.pod:
Stringy versions shouldn't be /^v/, jdv79++
17:22 integral joined, integral left, integral joined
flussence (first thing v1 needs to define: the same thing for the package version) 17:22
Arrowhead flussence: What os/distro/version are you on? I get strange segfaults under Ubuntu 15.10 in a VM.
flussence Arrowhead: gentoo, 64-bit. It might be failing because you're asking for OpenGL 3.3...
17:23 SwellJoe joined
Arrowhead it's currently failing when registereing the keyboard callback... 17:23
"say" debugging is the new printf debugging.
17:24 regreg left
Arrowhead thanks. I think I'll go and scratch my own itch for a while. 17:24
lizmat m: my $a = 42; dd $a
camelia rakudo-moar e458a2: OUTPUT«Int $a = 42␤»
17:25 Rotwang left
lizmat Arrowhead: ^^^ perhaps slightly more advanced than say 17:25
Arrowhead: and one character less to type
RabidGravy right
17:26 smash left, pierre-vigier left
Arrowhead lizmat: in this case it was for finding where the segfault occurs... 17:26
lizmat ah, ok :) carry on then :-)
Skarsnik there is a perl6-gdb-m if it work for you
RabidGravy two things right now, is "meta6" confirmed as the version field name in the META6? And are we going to deprecate "v0.0.0" in the JSON representation of versions?
Arrowhead Skarsnik: not at the moment, because I didn't install Star and panda is aaargh. 17:27
ZoffixW :o flussence $str.decode: 'utf8-c8'; gives me something.... strange and evil.... look like an error in moar "free(): invalid next size (normal): 0x0ca32840" and a giant backtrace
17:27 pierre-vigier joined
ZoffixW This: gist.github.com/zoffixznet/989e28031095623cce9f 17:27
flussence ZoffixW: looks like the segfault |Tux| showed earlier... it should go away if the string you're decoding starts with valid utf-8
mst augh 17:28
[Tux]
.oO( unlikely )
17:28 Rotwang joined
flussence RabidGravy: there's nothing to deprecate there, because it wasn't specced in the first place :D 17:28
17:28 Jonis joined, stmuk joined
mst lizmat: please remember to check master before merging PRs, panda history has no-op merge commits :) 17:28
RabidGravy flussence, well there are modules in the ecosystem that use
17:29 Arrowhead left
RabidGravy er, that are using "v" strings 17:29
17:29 jnthn joined
RabidGravy and I need to know as I am going to update Test::META to handle all this 17:29
flussence no need to tell me, I'm guilty of mixing both...
Skarsnik for me version is a no-op field xD 17:30
RabidGravy right but it may not be in the future
mst ok, so, running panda out of a checkout is just 'perl6 -Ilib bin/pands ...' ?
flussence and just in the repos I have *local clones* of, I see a few «"version": "*"» lines 17:31
17:31 pierre-vigier left, cdg joined
RabidGravy yeah, the spec mentions that but you can't make a version from it 17:31
m: say Version.new('*')
camelia rakudo-moar e458a2: OUTPUT«v*␤»
mst flussence: is that for dependencies?
flussence mst: you probably want to -I the things at the top of bootstrap.pl too
mst: nope, actual package versions...
ugexe Distribution normalized version to ver 17:32
lizmat dinner&
mst flussence: er. eh?
gfldex i squeezed a wee blog post into the old year gfldex.wordpress.com/2015/12/31/co...t-windows/
flussence JSON::Tiny's meta has a version of "*"
mst gah. I'm stupid. I shouldn't've installed panda
where's the 'delete it agaibn, I'm an idoot switch' *hunts* 17:33
RabidGravy I have a feeling that Version.new('*') should do something special to the object (i.e. match any) but I'm not clever enough to work out what at the moment
mst there's no nuke-panda command
of course there's no nuke-panda command
17:33 Rotwang left
RabidGravy there's no nuke-korea either 17:33
17:33 amoe left, Jonis left
mst recompiles a whole moar instead 17:34
17:34 Rotwang joined
mst I so stoopid. 17:34
17:34 jnthn left, lnx left, smash joined
ugexe rm -rf /home/foo/.rakudobrew/moar-nom/install/share/perl6/site/ 17:34
17:34 amoe joined
RabidGravy that's an option 17:34
mst wiping the entire moar-nom install workewd
17:34 jnthn joined
mst I shall use a smaller hammer next time :) 17:34
17:34 cdg left, Jonis joined, lnx joined 17:35 cdg joined
RabidGravy mst, those silversmiths hammers are really good for the job 17:35
17:36 pederindi left, pederindi joined
ZoffixW Bah... "Unknown string encoding: 'iso-8859-15'" 17:36
Is there an easy way to get all valid decodings .decode understands? 17:37
mst UTSL?
ugexe my $decoded = try { $str.decode("some-encoding") } || $str.decode('latin-1')
ZoffixW What's that?
dalek blets: b821e40 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
some format fixes
17:37 lichtkind joined
leont Use The Source Luke 17:38
17:38 zakharyas left
ZoffixW I said ease :P 17:38
17:38 pederindi left
ZoffixW *easy 17:38
Skarsnik and document it x)
17:38 pi1 joined
leont It can't be worse than p5's Encode.pm ;-) 17:38
mst from my POV, that usually *is* the easy way
ZoffixW w00t latin-1 worked ugexe++
Skarsnik oh yeah latin-1 17:39
ZoffixW My bot doesn't die anymore ^_^
17:39 nemsys joined
Skarsnik qt work with latin-1/utf8/ascii 17:39
leont IRC is lovely in not specifying an encoding :-/
mst IRC predates anybody realising they needed to care
ZoffixW :D
flussence iirc, "IRC encoding" is "utf-8 if it's valid, latin-1 if it isn't" 17:40
Skarsnik I think you need something to detect the encoding with irc
or yes, that xD
flussence I think either xchat or irssi's docs say something about it...
ZoffixW Man, bot still freezes up when connecting to Freenode :/ I wonder if it's some Rakudo thing that changed, because I connected like this before without any issues :(
ugexe latin-1 wont fail with invalid latin-1 encoding
ZoffixW oh, sweet
ugexe like .unpack('A*') 17:41
mst ZoffixW: hmmm. /w 64
gah
ZoffixW mst, one word. xchat.org/ 17:42
:)
mst I'd really rather not
[Coke] wonders why 'no precompilation' compiles, but 'use precompilation' does not
ugexe wishes there was a way to do `-M"no precompilation"` 17:43
rindolf ZoffixW: XChat has gone unmaintained. HexChat is an active fork of it.
ZoffixW rindolf, really? 17:44
rindolf ZoffixW: yes.
ZoffixW It's still begging me for cash on Windows
Too bad I don't like the name...
rindolf ZoffixW: which name?
ZoffixW HexChat 17:45
rindolf ZoffixW: well, I've ran into much worse names than that.
ZoffixW: and you don't have to like the name to use it.
17:46 pjscott joined
rindolf ZoffixW: HexChat has a gratis and non-nagware version for Windows, too. 17:46
atweiden flussence: figured out how to install system wide p6 modules without panda, e.g. aur.archlinux.org/cgit/aur.git/tre...-json-tiny
dalek kudo/nom: 6612747 | TimToady++ | src/core/Range.pm:
force empty range to sum to 0
17:47 sprocket joined, AndyDee joined
dalek ast: dffb5e9 | TimToady++ | S03-operators/range-int.t:
test that null range sums to 0
17:47
atweiden uses github.com/atweiden/alacryd
17:47 pi1 left 17:48 pi1 joined, amoe left
TimToady I don't see that anyone actually filed that as a bug 17:48
folks, you shouldn't really rely on my backlogging skills to avoid dropping bugs on the floor
17:48 integral left 17:49 integral joined, integral left, integral joined, amoe joined, Rotwang left, Jonis left 17:50 smash left
TimToady 'sides, fixing bugs slows down my backlogging, waaah! 17:50
lucasb ok, after some time playing with P6, I feel confident to start submitting bugreports :)
17:51 khw joined
TimToady lucasb++ 17:51
17:51 edehont left
lucasb It took a while to start feeling confident :) 17:51
TimToady well, if you're not confident, you just have to have a thick skin about rejects :)
17:52 leont left, _nadim joined, sprocket left
mst lucasb: "I'm not sure if this is a bug or not" reports are still useful 17:52
17:53 pierre-vigier joined
ZoffixW Oh, it's likely my IRC Grammar that's freezin gup 17:53
_nadim Good evening
ZoffixW Afternoon
17:53 stmuk left, stmuk joined
rindolf ZoffixW: there may be security problems and other serious bugs lurking in the old XChat codebase , so you really should no longer use it. 17:54
_nadim: evening.
17:54 amoe left
ZoffixW There are many things on my box I should no longer be using and xchat is the least worrisome :) 17:54
_nadim special "Hi" to both of you
TimToady maybe rt needs a gentler word for "reject". "Sorry, your bug report has intentionally been allowed to through the cracks."
*to fall
_nadim rindolf: thanks for the test earlier, I'll try to add it to the ecosystem today
rindolf ZoffixW: really like what? 17:55
17:55 amoe joined, _Vi left
TimToady Frontlogging also slows down my backlogging, waaah! 17:55
rindolf prepares his cracking toolbox to pwn ZoffixW's box. ;-)
17:55 nexysno_ joined
Skarsnik gah i still hate this 0E0 thing in DBIS 17:56
rindolf _nadim: you're welcome .
_nadim a question about the ecosystem. The page says "Ensure you have a provides section that lists all the files with correct filenames" is that all the .pm, .t, .pl, ...?
ZoffixW _nadim, just the .pm
Skarsnik the file installed
TimToady what about the files with incorrect filenames?
ugexe and .pl get installed if they are in bin
17:57 Jonis joined, nige1 left, smash joined
dalek osystem: 7e9eb37 | (Zoffix Znet)++ | README.md:
Reword what needs to be in `provides`
17:57
ZoffixW TimToady, they don't get installed.
_nadim Ok, if the module uses other modules that are not public, my guess is that they too have to be listed, right?
17:57 pjscott left, nexysno_ left
_nadim ugexe: thanks 17:58
ZoffixW _nadim, yes
17:58 nexysno_ joined, Rotwang joined
ugexe _nadim: you dont put .pl in provides. i meant "the file installed" is not technically correct 17:58
17:58 pjscott joined
_nadim a question about the version handling, and I hope I am done, how does the git version and the version in the Meta file relate. not at all i guess, but then what happens if there is a new commit, will that version be installed? 17:59
17:59 pjscott left
RabidGravy I think anything in 'bin' gets installed by panda irrespective of the suffix 17:59
which is right as far as I'm concerned 18:00
Skarsnik ZoffixW, I should write a Discord -> IRC stuff to user your NY plugin xD
ugexe but his question uses .pl as an example
18:00 pjscott joined, pjscott left
rindolf Skarsnik: what is Discord in this context? 18:00
ZoffixW Skarsnik, what's Discord?
Skarsnik _nadim, I think panda always try to install the version on the git
something like Slack 18:01
a Text Chat/Voice solution
rindolf Skarsnik: ah.
mst right now, pretty sure panda just installs git master HEAD of everything
RabidGravy mst, it installs whatever the META.info points at 18:02
mst META.info ?
Skarsnik on perl6/ecosytem
mst right
_nadim Skarsnik: that's too bad. it forces one to have another brand to develop. would be much nicer if a tag/commit, listed in the Meta file was used.
ugexe my local zef does --no-checkout and uses the extract phase to checkout different branches 18:03
_nadim RabidGravy: and how does one point to a commit in the meta file?
RabidGravy whatever's in the META.list in the ecosystem. which is a META6 file so whatever that points at as the source
ZoffixW Hm. Found my problem. All the stuff starts with '[server...' is a new 'whenever $!sock.Supply :bin' run, which gets broken up And my Grammar freezes up on those partial commands -_- gist.github.com/zoffixznet/8b078c8d743daa9e3c2e
Skarsnik we should do a FAQ somewhere. "How module version work?" "It's mostly ignored for now"
18:04 atweiden left
RabidGravy _nadim, a tag, you mean a tag 18:04
ugexe _nadim: for source-url just put the path to whatever commit
ZoffixW Specifically, this line gets partial content from the server :S github.com/zoffixznet/perl6-IRC-Cl...nt.pm6#L33 18:05
RabidGravy but yeah, the uri in the meta,list and the source-url in the meta file don't have to point to head
_nadim a path to a commit? I admit that i don't know how that works. Andhow does one put the commit in a file that is itself under git? 18:06
RabidGravy not a commit
a tag
18:07 stmuk left
_nadim ok 18:07
18:07 stmuk joined, lnx left
Skarsnik ZoffixW, there is no .line on async sock? x) 18:07
18:07 Jonis left
RabidGravy so you tag "the current state" of your repository 18:07
18:07 amoe left, jnthn left 18:08 Rotwang left 18:09 lnx joined
rindolf _nadim: why do you have a leading underscore? 18:09
RabidGravy so say raw.githubusercontent.com/jonathan.../META.info
18:09 spider-mario left, Jonis joined, jnthn joined, amoe joined
_nadim RabidGravy:++ 18:09
18:09 Rotwang joined
_nadim rindolf: underscore in what? 18:09
rindolf _nadim: in your nickname.
RabidGravy and if I was being strictly correct would have the 0.0.7 in the source-url 18:10
ZoffixW RabidGravy, do you update ecosystem META.list on each release?
Are tags movable? I'm thinking of creating something like 'latest' tag, and just moving it for each release. 18:11
RabidGravy ZoffixW, nah the smart money would be on having a realease tag that poiinted at the version
flussence ZoffixW: they are, but that doesn't mean it's a good idea :) 18:12
RabidGravy yeah, tags are moveable, for most parts it would be bad form but you tag with the version and then tag that with "release" 18:13
_nadim ZoffixW: yes tags can be moved 18:14
rindolf: it seems so
but why? 18:15
rindolf: it seems that I am banned on ##linux with my nick
RabidGravy flussence, it depends on the meaning of the tag whether it's a good idea or not, a specific version tag not so good, but "latest" for sure
you made an over simplified rule for yourself :) 18:16
18:16 Rotwang left, Rotwang joined 18:17 smash left, Jonis left
flussence RabidGravy: you're right, though the same can be done by using separate "stable"/"dev" branches and slightly-careful merges 18:18
ZoffixW w00t... fixed my bot fix with a quick and broken hax :)
18:19 Jonis joined
Skarsnik pg error are quite nice 18:19
18:19 smash joined
rindolf ZoffixW: great! 18:20
TimToady 3774 hax0rs++
rindolf Skarsnik: PostgreSQL?
Skarsnik Yes
dj_goku m: sprintf("0x%s", 10.base(16) == 10
camelia rakudo-moar 661274: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mV8I3RZQm9␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/mV8I3RZQm9:1␤------> 3sprintf("0x%s", 10.base(16) == 107⏏5<EOL>␤»
TimToady or however you spell that
dj_goku m: sprintf("0x%s", 10.base(16)) == 10
camelia rakudo-moar 661274: OUTPUT«WARNINGS for /tmp/hc3IpCGDlh:␤Useless use of "==" in expression "sprintf(\"0x%s\", 10.base(16)) == 10" in sink context (line 1)␤»
dj_goku m: sprintf("0x%s", 10.base(16)) 18:21
camelia ( no output )
18:21 integral left
ZoffixW TimToady, wat? :) 18:21
dj_goku m: say sprintf("0x%s", 10.base(16))
camelia rakudo-moar 661274: OUTPUT«0xA␤»
dj_goku is that the best way to convert an Int to a Hex?
Skarsnik m: printf("%d, %d", 1)
camelia rakudo-moar 661274: OUTPUT«Your printf-style directives specify 2 arguments, but 1 argument was supplied␤␤»
ZoffixW m: 16::(42)
camelia rakudo-moar 661274: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7LB2tBh6Xs␤Confused␤at /tmp/7LB2tBh6Xs:1␤------> 0316:7⏏5:(42)␤ expecting any of:␤ colon pair␤»
Skarsnik m: printf("hello", 1) 18:22
camelia rakudo-moar 661274: OUTPUT«Your printf-style directives specify 0 arguments, but 1 argument was supplied␤␤»
18:22 integral joined, integral left, integral joined
rindolf Skarsnik: I see. 18:22
ZoffixW m: say ::16(42)
camelia rakudo-moar 661274: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yJCwb4wmOM␤Two terms in a row␤at /tmp/yJCwb4wmOM:1␤------> 3say ::7⏏0516(42)␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ state…»
TimToady 1337 h4x0r++ I mean
ZoffixW dj_goku, there was something akin to that ^
dj_goku hehe ok. :D
dj_goku searches
ZoffixW tries to recall the module where they used that
Skarsnik should the printf error display the BT?
dalek ecs/meta-v1: fd1245c | (Anthony Parsons)++ | S22-package-format.pod:
Speculatively make versions agree on a format

Nothing in META6.json makes it explicit whether the "v" is required, optional or forbidden, so for now let's default to the form that requires less typing and can sanely be passed to Version.new.
flussence ^please complain about anything you don't like :) 18:23
Skarsnik I don't like it
ugexe printf is nqpnqp
TimToady I don't like complaining.
dj_goku m: say :16(10)
camelia rakudo-moar 661274: OUTPUT«This call only converts base-16 strings to numbers; value 10 is of type Int, so cannot be converted!␤(If you really wanted to convert 10 to a base-16 string, use 10.base(16) instead.)␤ in block <unit> at /tmp/01x4A7VHSg line 1␤␤»
masak m: say :16("42") 18:24
camelia rakudo-moar 661274: OUTPUT«66␤»
dj_goku m: say :16('10')
camelia rakudo-moar 661274: OUTPUT«16␤»
ZoffixW Thanks, masak++
dj_goku m: say :16('A')
camelia rakudo-moar 661274: OUTPUT«10␤»
dj_goku m: say :16('A').Str 18:25
camelia rakudo-moar 661274: OUTPUT«10␤»
18:25 addison joined 18:26 llfourn left
flussence can't imagine that first change being a point of contention, but I've got other ideas people *will* complain about for this... hence doing it on a branch :) 18:26
mst hrmf, --installed list is working fine in a checkout 18:27
Skarsnik the spec should be Test::META x)
dj_goku thanks!
18:27 FROGGS joined
dj_goku I found that answer here: irclog.perlgeek.de/perl6/2015-06-26 18:27
searching. :D
mst pokes it with a stick
dj_goku right as masak said something.
18:27 itaipu left
mst I love it when I can repro a bug against installed code but not a checkout 18:27
18:28 cygx joined
cygx o/ 18:28
mst ey up
18:28 jameslenz joined
cygx hack to manually load precompiled modules: gist.github.com/cygx/9f843fa4e1f1e13a5f9d 18:28
ZoffixW (slow ssh connection)--
18:29 integral left
ZoffixW aha 18:29
18:29 integral joined
flussence mst: RAKUDO_MODULE_DEBUG=1 might be handy to show if it's loading the right thing 18:29
18:29 integral left, integral joined
mst flussence: yeah, I'm getting a bit lost here 18:29
ZoffixW Recall the MERGE SYMBOL errors from Linenoise yesterday? I found a way to 100% repro that
mst also just had to phone my old ISP and point out they'd apparently failed at cancelling my account when I moved house over a year ago 18:30
happily the woman in the call centre seems to've really enjoyed having somebody not shouting at her ;)
w 65
18:30 itaipu joined
ZoffixW mst, xchat! :) 18:30
mst ZoffixW: I'd still be reliant on typo-able keyboard commands
also it doesn't run under dtach :P
ZoffixW :P
TimToady mst: you're very good at not shouting at people, from time to time :) 18:31
ZoffixW Ugh. 18:33
18:33 pierre-vigier left
Skarsnik no complain about NC today. it's weird :) 18:33
ZoffixW Well, my findings on the merge symbol stuff is: have Module.pm in two different locations that are both included with use lib <...>; and have `constant` in them. The merge error is the error merging those constants. I dunno if it's exactly the same issue as linenoise, but error looks similar 18:34
oohhh
Crap. You don't even need use lib <...> :S Right now my code fails to run because I'm getting that error after doing; panda install IRC::Client; and then later git cloning the repo and doing panda --force install . 18:35
18:35 cdg_ joined
ZoffixW *sigh* 18:36
Skarsnik anobody against removing doc.perl6.org/language/nativecall#MySQL from the doc (and all the zavolaj ref) ?
18:37 cdg left
ZoffixW Skarsnik, what's wrong with it? 18:37
18:37 firstdayonthejob joined
ZoffixW Seems like it's the major portion of 'EXAMPLES' section 18:37
Skarsnik well the mysql example link to minidbi x) 18:38
flussence that looks ancient, you might want to change it to point to github.com/rakudo/rakudo/tree/nom/...nativecall
Skarsnik maybe point to something less complex than DBI, like GD? 18:39
DBIish is not that "readable"
18:41 nanis joined
Skarsnik Erf 18:41
ZoffixW Something of note: our install instructions on perl6.org/downloads/ fetch 2015.12 moar, but latest panda
18:42 itaipu left
ZoffixW firstdayonthejob, first day on the job and you're already slacking off? How terrible! :) 18:42
18:42 FROGGS left
Skarsnik is native('user32') I wonder if that still work x) 18:42
it end in user32.dll probably 18:43
ZoffixW Oh man. I just nuked everything because I wanted to fix the global error, but I forgot that panda is currently broken >_<
My plans to have an awesome Perl 6 IRC party bot failed
18:43 pi1 left
flussence panda HEAD broken? Use 4862f32c405d, mine's at that and it works fine. 18:44
18:44 FROGGS joined
ZoffixW I've no idea how to do that 18:44
flussence git checkout 4862f3 should work
mst git clone [email@hidden.address]
git checkout 4862f3; perl6 bootstrap.pl
ZoffixW All I know how to do is run rakudobrew build-panda
mst should work 18:45
ZoffixW mst++ thanks
mst rakduobrew build-panda runs basically that
mst stares
bootstrap.pl just re-installed the deps
even though I already installed Shell::Command etc. to my rekuaod
*rakudo
18:45 pierre-vigier joined
mst how ... fascinating 18:45
TimToady .tell leont I'd use something like: .return with $!exit-status.status; 18:46
yoleaux TimToady: I'll pass your message to leont.
flussence «} elsif ($arg eq 'build-panda') { my $panda_ver = shift;» -- I guess `rakudobrew build-panda 4862f3` would work too...
18:46 regreg joined, pi1 joined
flussence never used it myself, caveat lector 18:47
ZoffixW I got "Already on 'master'" with that and abourter
mst ok, now I'm really confused 18:48
site/bin/panda --installed list
ignores the --installed
perl6 -Ilib bin/pands --installed list
handles it fine
I am ... a little confused about how to figure out why
flussence I'm gonna guess site/bin/panda is one of those wrapper scripts CompUnit installs, and that that's buggy. 18:49
mst oooh, yes, it is 18:50
at which point *that* is probably what's losing the ARGV
AHA
the wrapper is
sub MAIN(:$name is copy, :$auth, :$ver, *@, *%) {
18:50 _Vi joined
mst but does 18:51
run($*EXECUTABLE-NAME, @binaries[0].hash.<files><bin/panda>, @*ARGS)
which I guess passes the *@ but not the *%
should that be %*ARGS, @*ARGS ?
nope. ok, where does the *% end up? 18:52
ZoffixW @*ARGVS is @ARGV
I think the MAIN sig is just there for options validation
mst oh
cygx @*ARGS likely includes the flags
flussence I think the *@ and *% are just there so unknown stuff doesn't trip the wrapper up, @*ARGS should contain everything either way 18:53
should.
mst right
18:53 Arrowhead joined
[Coke] What's the purpose of "I ran into a problem while trying to set up REPL completions: 18:53
Continuing without tab completions"
flussence that's just not-telling you Linenoise is missing
[Coke] so let's make it tell us that Linenoise is missing. 18:54
flussence yes please!
TimToady well, but what if it actually failed setting up readline?
flussence that's src/Perl6/Compiler.nqp:196, for anyone with a commit bit 18:55
mst that looks like the error message should've been there after the :
TimToady overspecific errors are just as bad as underspecific
mst which would presumably either be 'Linenoise missing' or 'readline went boom'
yeah, bingo, @*ARGS doesn't have --installed 18:56
RabidGravy "unable to find a command history library"
cygx is tempted to add the error message `readline went boom`
18:56 skids joined
Arrowhead and don't optimize for the "found a history library but it went boom" case. 18:56
autarch is it possible to intercept direct attribute access by hooking into the meta model somehow? 18:57
flussence looks like @*ARGS is the same as *@, and *% disappears off into space...
mst right 18:58
18:58 integral left, HNYBot joined
HNYBot Next New Year is in 1 minute and 44 seconds in French Southern Territories [Port-aux-Français], Kazakhstan [Aqtöbe], Maldives [Malé], Pakistan [Faisalabad Gujranwala Hyderabad Islamabad Karachi Lahore Multan Peshawar Quetta Rawalpindi], Russia [Chelyabinsk Yekaterinburg], Tajikistan [Dushanbe Khujand], Turkmenistan [Ashkabad Turkmenabat], and Uzbekistan [Namangan Tashkent] 18:58
mst fiddles some more
flussence ZoffixW++
18:58 addison left, ZoffixW left
mst argh, and if I name *%extra 18:58
18:58 ZoffixW joined
mst I get { installed => True } 18:58
deeply unsure what the fix for this would be
ZoffixW HNYBot, hny Toronto 18:59
HNYBot New Year in Toronto, ON, Canada will happen in 10 hours and 55 seconds
ZoffixW HNYBot, hny Tel Aviv
HNYBot New Year in Tel Aviv-Yafo, Israel will happen in 3 hours and 48 seconds
ZoffixW She's alive \o/
autarch hmm, maybe I don't need to intercept attr access
cygx
.oO( where's the mad laughter? )
HNYBot Next New Year is in 30 minutes in Afghanistan [Kabul Kandahar Mazari Sharif] 19:00
Happy New Year to French Southern Territories [Port-aux-Français], Kazakhstan [Aqtöbe], Maldives [Malé], Pakistan [Faisalabad Gujranwala Hyderabad Islamabad Karachi Lahore Multan Peshawar Quetta Rawalpindi], Russia [Chelyabinsk Yekaterinburg], Tajikistan [Dushanbe Khujand], Turkmenistan [Ashkabad Turkmenabat], and Uzbekistan [Namangan Tashkent]
ZoffixW muuUAHAHAHAA
cygx better
RabidGravy autarch, bind a Proxy perhaps?
masak ZoffixW: Perl 6 based?
autarch RabidGravy: ah, that might work too - but I might have a simpler option available
ZoffixW masak, not just "based", everything is Perl 6.. from scratch with IO::Socket::Async :) github.com/zoffixznet/perl6-IRC-Cl...Plugin-HNY
flussence for the convenience of the audience: we're trying to make sense of «sub MAIN(:$foo, :$bar, *@_, *%_) { dd @_, %_, @*ARGS }»
masak ZoffixW++! 19:01
ZoffixW I had to churn out half a dozen modules for it to happen tho lol
masak ZoffixW++ # that deserves two karmas
ZoffixW \o/
mst flussence: and notable
perl6 -e 'say @*ARGS' --meep foo bar # [--meep foo bar]
19:01 HNYBot left
mst perl6 -e 'sub MAIN(*@, *%) { say @*ARGS }' --meep foo bar # [ foo bar ] 19:01
19:01 devans2 left
mst that difference is what's eating the panda options as we pass through the site/bin/panda shim 19:02
RabidGravy ZoffixW, I hope you've ecosystemed them :)
ZoffixW Time to relocate the bot to where the party's at :) #freenode-newyears
RabidGravy, yup, all of 'em
masak mst: looks like a clear bug.
flussence oh, so the magic &MAIN handling is eating the *% stuff out of @*ARGS. right.
RabidGravy groovy
masak mst: shall you rakudobug it, or shall I?
19:03 addison joined
flussence I'm not sure what's going on there, src/core/Main.pm only touches a copy of @*ARGS 19:03
cygx $ perl6 -e 'sub MAIN(*@, *%) { say @*ARGS }' --meep foo bar # [--meep foo bar] with 2015.11-792-g98a9c6e
19:04 FROGGS left
mst This is Rakudo version 2015.12-63-ge458a20 19:04
masak ZoffixW: make sure to tell them it's a Perl 6 bot ;) 19:06
lucasb those script wrappers are the best option to handle things? someone could argue that starting *one* instance of rakudo is slow, but with these wrapper scripts, it's starting *two* instances.
flussence Main.pm hasn't changed since that 2015.11
ZoffixW masak, that was the plan from the start :)
19:06 integral joined, integral left, integral joined
mst flussence: wondering if 4c1f815 is it 19:06
RabidGravy yeah it's fine in a plain 2015.12
mst flussence: wait, what version do youy have? 19:07
flussence ...an out of date one! one sec
mst flussence: wait, I want to know which
flussence yeah, that wasn't in the git I had
mst ghetto bisection via users
flussence my ORIG_HEAD is 446a3ca324052080ac9edaa9010bc6bbe7b6fe05
mst right, so if yours is broken, it's not the commit you don't even have ;)
flussence no no, I'm getting mixed up
the perl6 I'm *running* is fresh, the git clone I had lying around to read the code from was stale 19:08
bartolin_ .tell brrt I built rakudo HEAD using your libuv-1.8 branch on Debian 7 and FreeBSD 10.2 (both amd64). all tests for nqp and rakudo passed -- as well as "make stresstest"
yoleaux bartolin_: I'll pass your message to brrt.
flussence so ignore everything I said about Main.pm not changing, it has in the past 5 days
19:08 pierre-vigier left
virtualsue i've put an opbot on irc.perl.org/#perl6 on the offchance that it might be useful in reducing some of the traffic in here eventually 19:09
mst virtualsue: gimme a shout if you need oper assist for anything
19:09 itaipu joined
virtualsue genehack sorted it 19:09
19:10 lucasb left
autarch I note that the metamodel classes don't have any way of removing methods or attributes - is this intentional? 19:10
19:10 lostinfog joined
virtualsue i don't have any great hopes for the channel, but it was already sitting there in a generally moribund state 19:11
mst virtualsue: ah, yeah, I forget we gave the SoC Review Board O-lines, they're mostly chocolate fireguards :D
virtualsue fine for my purposes
mst yep. I'm just offering backup if required
flussence autarch: it's probably intentional, there's no sane way to remove things from a class when it might already be in use somewhere else
virtualsue cheers
mst masak: not yet, cos I think I spotted the commit :)
autarch any thoughts on how to implement lazily built attributes? I was trying to remove the attribute and replace it with a method that got the value from a different (newly made) attribute that would be populated when the method was called 19:12
cygx wanders off to do some celebrating
happy debugging o/
19:13 cygx left
autarch I could try replacing the attribute with a Proxy, but I'm not sure how I'd get access to the object that contains the attribute in that case 19:13
flussence autarch: maybe you can do that via the attribute's MOP at runtime? 19:14
mst wasn't there a 'does lazy' trait or something?
autarch flussence: I don't see how - the Attribute class doesn't have any methods for getting that information - heck there isn't even a way to get an Attribute's package! 19:15
RabidGravy autarch, mostly you don't you'd close over a lexical in the Proxy
autarch mst: I think it was removed
19:15 cognominal left
autarch RabidGravy: close over what lexical? the whole point it to be able to call a method on the underlying object to generate the value 19:15
mst autarch: right, but presumably the implementation would help
RabidGravy oh
mst autarch: as in, find it and steal it
autarch so if I write self!foo it calls self!build-foo under the hood
mst: good point
mst bah, no, wasn't that one 19:16
wait, no
offs 19:17
19:17 sprocket joined
mst rakudobrew built me a *moar* of an old rev, I think 19:17
Juerd Speaking of irc.perl.org... Any chance of that ever supporting IPv6? :|
flussence m: my class Foo { has $.bar = Proxy.new(FETCH => { self.WHICH }, STORE => { }) }; Foo.new.bar.say
camelia rakudo-moar 661274: OUTPUT«Foo|43825904␤»
flussence m: my class Foo { has $.bar = Proxy.new(FETCH => { self.WHICH }, STORE => { }) }; Foo.bar.say; Foo.new.bar.say
camelia rakudo-moar 661274: OUTPUT«Invocant requires an instance of type Foo, but a type object was passed. Did you forget a .new?␤ in block <unit> at /tmp/ww9gQEjpRS line 1␤␤»
mst Juerd: we did for a while, then the ipv6 providers kept crashing, so we turned it off
Juerd: in another year or two we'll try it again and see if the internet works yet 19:18
flussence autarch: ^ self is defined inside the Proxy, that might be useful to know
autarch flussence: is self the Proxy object though?
flussence well, says Foo|<numbers> there so I don't think so...
Juerd mst: Ah, still no native IPv6 on whatever's hosting it? :|
autarch flussence: ok, then this is super duper easy, I htink 19:19
mst Juerd: not most of the nodes, no
Juerd mst: That is, from "IPv6 provider" I think you're referring to tunnel providers
autarch I can't find the old core lazy implementation - searching for "lazy" in the logs is not that useful since lazy is always referring to lazy lists and such
mst Juerd: yes. a lot of the servers have been in service over half a decade
right, let's see if my attempt at reversing the patch works 19:20
Juerd mst: Not really relevant. IPv6 has been usable and stable for much more than a decade on all OSes, it's just a matter of having it available on the network.
flussence has found the ipv6 internet kinda flaky in practice, even if I do go to pains to get my half-dozen nodes on it properly configured...
Juerd That is, for simple things like TCP sockets. It hasn't really been usable with automatic DNS configuration and such. 19:21
mst Juerd: well, if you think you can do better, we've always been open to having somebody link in an IPv6 node
Juerd flussence: That's interesting. My experience has been surprisingly painless.
mst otherwise you'll have to wait until our various sysadmins can get round to it
Juerd mst: Although I do think I could do it better, I'm not really prepared to maintain an IRC server. I'd be happy to provide a virtual Debian box for it though. 19:22
19:22 llfourn joined
flussence Juerd: sometimes a router 5 hops away just vanishes for hours on end :( 19:22
mst we're not short of systems, and VMs don't cut it
19:22 nanis left
Juerd mst: Ack 19:22
mst augh 19:24
I don't even know if my attempt at a fix went in
masak: is that offer to file a bug still open?
I think I'm a bit out of my depth here
RabidGravy I remember a reference implementation of of ipv6 that worked being available on windows in like '97
mst and by 'a bit' I mean "HALP HALP SHARKS"
or somebody could tell me which FM to R and I'll write it up myself 19:26
19:26 itaipu left
flussence has a v6 setup held together entirely with twine, chewing gum and blind faith. I can ssh to my phone without port forwarding though, so that's fun 19:26
mst can't find a perlbug equivalent and is therefore confoos
flussence mst: rakudo's stuff is on RT for whatever reasons. mailto:rakudobug@perl.org 19:27
mst flussence: so's perl5's
flussence: but you still use perlbug
19:27 llfourn left, pi1 left
mst flussence: and the reason is because everything else is even worse than RT 19:27
19:28 pi1 joined
skids
.oO(maybe a ticket system could be the perl6 "killer app")
19:28
RabidGravy mailing list manager ;-) 19:29
autarch next question - is it possible to see if an attribute was _set_ - even if it was set to an undefined value?
moritz skids: my experience with ticket systems is that you can't get them right
flussence
.oO( no language is production-ready until someone's written an issue tracker in it and it's been pwned )
19:29 Arrowhead left
moritz skids: a ticket system includes at least an email client, which itself is already a very nasty task to do 19:29
19:30 Arrowhead joined
moritz skids: and then you have to deal with all sorts of..., let's call it "questionable" input from diverse MUAs, have to structure your tickets, map workflows etc. No fun to develop. 19:30
skids moritz: never said it wouldn't be work :-) 19:31
moritz I remember a fun bug in the OTRS email parser. Some clients would send headers as unencoded Latin1, and in order to parse that, OTRS would try to decode the headers with the content encoding of the body 19:32
mst cursses self, rebuilds everything
moritz which works fine for ASCII-compatible encodings, but produces hilarious mojibake for UTF-7 encoded emails
19:32 Begi left
mst OTRS is ... special 19:33
RabidGravy that's another thing I've yet to make, a simple workflow/state machine thingy
mst I'd actually rather use mantis
moritz and yes, we received UTF-7 encoded mails in a production setting
mst: aye, but all bug trackers face some of the same challenges
mst moritz: oh, sure, just OTRS is particularly terrible 19:34
moritz mst: my experience with RT isn't much better, TBH (though I only know the rt.perl.org and rt.cpan.org instances) 19:35
RabidGravy remedy, just saying
mst I dunno, for internal use I've always had a heavily configured RT
moritz anyway, I think a bug tracker is a system where you can sink countless hours of work for relatively little glory
mst for large scale issue trackers I've only really used RT, bugzilla, and github 19:36
and of the three I hate RT slightly less
moritz there are niches that are much less saturated where Perl 6 could shine
like devops tools; a service deployment tool that does dependency tracking for example. Such things are very hard to find right now 19:37
or a continuous deployment system that doesn't suck at propagating meta data
RabidGravy and something nicer than buildbot
mst This is Rakudo version 2015.12-64-g6612747 19:38
mst is confused
masak submits rakudobug 19:39
mst masak: still trying to test a patch. not sure I've got things wrong.
skids well, I guess targeting apps that only developers use *could* work considering devlopers are the main target audience, but... 19:40
RabidGravy I'm about half way to having all the bits for the radio station application which I intended a year ago 19:41
19:41 davercc left
mst masak: gimme the bug URL once you have it? (having realised it's just 'email RT' I could've done it, sorry, wasn't sure) 19:42
so, if I have a clean rakudobrew and I patch something
can I just re-run 'make install' in the rakudo checkout? 19:43
ZoffixW I believe so 19:44
RabidGravy if any shim updating needs too be done it won't happen but yeah
mst I'll be making a one line fix to Main.pm
ZoffixW mst, oh, without --prefix or something ,it'll just "install" into the same dir as where you're running it or somethijng
19:44 webstrand left 19:46 CoconutCrab left 19:47 CoconutCrab joined
moritz ZoffixW: if that's a rakudo that has already been configured with a prefix, "make install" will install into the same dir as before 19:47
mst moritz: right, so, I got confused
wiped my entire rakudbrew setup
after 'build moar' finishes
I was going to make a one line tweak to src/core/Main.pm
then 'make install' to see if it works
ZoffixW moritz, ah
mst does that seem like a sane approach?
moritz sorry, I have too little experience with post-curli rakudo 19:48
skids You'd have to commit the tweak under git_reference/rakudo or it won't get used by rakudobrew, FWIW. 19:49
mst ah
lemme see if that works 19:50
19:51 Arrowhead left
mst no 19:53
I suck
masak: bug id?
hrm. is there a good way to turn { installed => True } back into (--installed) ? 19:54
I'm wondering if the current behaviour is good and the shim chaining is buggered
ZoffixW This is why I hate RT (spam): rt.perl.org/Ticket/Display.html?id=127109
mst ZoffixW: you realise that's not a problem with RT, right? 19:55
and that, actually, one of the reasons we've stuck with RT is that our current setup filters out more spam than you want to think about
ZoffixW That's the problem with taking tickets via email
And since RT allows that, it's the problem with RT
perlpilot notes that 99.99999% of the perl6 tickets arrived via email 19:56
mst the fact I can't take tickets via email is one of the things I hate about github
it increases the barrier to entry for new contributors
this is bad
19:57 Arrowhead joined
skids Hrm, well, I've always hated email for ticket purposes, but it's a matter of taste. 19:58
mst being able to fire an email to [email@hidden.address]
is a hugely useful affordance
tadzik not having to create an account is another
yoleaux 00:21Z <_nadim> tadzik: could we get an uninstall verb in Panda
mst if you don't like email, I've no problem with you signing up for an account and submitting that way
tadzik _nadim: it's kind of on the roadmap 19:59
for the last 5 years or so though :)
mst tadzik: so, everything caught fire but it's rakudo's fault, not panda's
tadzik now we actually need for CUR to support it
mst: phew, typical :P
lizmat tadzik: indeed, that's why I still need to reinterprete zefram's mails :-(
autarch are "is" trait modifier on Attributes called before the attribute is attached to a class?
mst tadzik: rakudo's shims are eating options
tadzik rakudo's shims?
mst tadzik: so 'panda --force install' becaomes 'panda install'
the site/bin/panda
lizmat autarch: very likely so
tadzik ouch 20:00
lizmat because the trait is run as soon as it is encountered
autarch lizmat: is there any way to add a hook to be called after they're attached?
mst masak's rakduobugged it
tadzik masak++
lizmat autarch: in the main line of the class maybe ?
autarch lizmat: that somewhat defeats the point of what I'm try to write
perlpilot autarch: there is a COMPOSE phaser that might be useful to you (if it's implemented)
lizmat COMPOSE is NYI 20:01
mst I think
I can't even find the queue
lizmat as it didn't seem much to add to running code in the mainline of a class
mst lizmat: hey, you merged a commit from Tux
lizmat did I? when ?
mst lizmat: Only initialize @*ARGS in MAIN_HELPER, Tux++
autarch perlpilot: that only runs for role application anywya, so it doesn't help
mst Dec 31 12:28
that seem's to've messed things up
lizmat ah, no, Tux pointed out the problem
mst perl6 -e 'sub MAIN (*@, *%) { say @*ARGS }' --foo bar baz 20:02
now gives you only [bar baz]
perlpilot autarch: you could introspect at INIT or CHECK time, maybe?
mst instead of [--foo bar baz]
autarch I don't see how it's possible to write an "is lazy" trait for attributes - I get an attribute that's not attached to a class - I can't _change_ it because it's immutable, I can't get at the thing it's about to be attached to ...
mst so the site/bin/panda etc. shims are eating all options passed to the script invocation
so 'panda --force install Foo' is now becoming 'panda install Foo'
thereby causing much unhappy
lizmat mst: double checking my commit
mst I -think- that commit is the problem, looking at how you now init @*ARGS -after- ripping the options off the front 20:03
but then I got completely lost trying to test this theory
awwaiid "only onlystar-protos can be merged" can someone give me an example of what that means? 20:04
onlystar is maybe a function body with just "{ * }" ?
flussence awwaiid: if you have multi subs, and a proto sub for them that isn't just that, boom 20:05
mst lizmat: did that make any sort of sense?
awwaiid this is when trying to import (export) multi subs from several modules
lizmat mst: you may have a point,
if I created a problem, it wasn't caught by spectests :-(
autarch perlpilot: CHECK causes all sorts of weirdness if I try to use it
mst lizmat: I'm not 100% sure if that's not a bugfix though, and the shims should have *%opts instead of just *% and then re-flatten them for the 'run'
autarch this seems like it should be an easy thing to implement, it's a bit frustrating
mst lizmat: I guess the spectests don't cover the shims passing options, it's something you could very easily miss testing 20:06
lizmat: I'm not even sure if the new behaviour is wrong, just that the shims relied on the old behaviour
still getting up to speed on how all the parts fit together
20:06 ZoffixW left
lizmat did the panda problem start yesterday already ? 20:07
20:08 Arrowhead left
autarch is the meta model not really done? it seems like it doesn't have any of the pieces it would need to be extensible yet 20:09
mst lizmat: github.com/tadzik/panda/issues/278 was the report
lizmat: 4h ago according to github
beyond that, I know nothing, my attempts to bisect backwards resulted in my getting completely and utterly confused and realising I need to read the rakudobrew sources some more, and the INSTALL docs for eveyrthing some more, and ... 20:10
skids autarch: It's done as far as needed to support whatever jnthn wants to show off :-)
RabidGravy yeah, I was worried that the patch I made to fix installdeps yesterday screwed it but I can't see any way it could
autarch skids: I guess what I'm asking is are there plans to make it extensible?
mst a vanilla 2015.12 definitely emits the full set of args in @*ARGS
somebody confirmed that for me
autarch because right now I can't do the types of things I can do with Moose in p5, which is sad
20:10 virtualsue left
lizmat ok, lemme bisect a bit of my own :-) 20:11
RabidGravy autarch you can apply roles to the meta objects
autarch RabidGravy: really, how?
RabidGravy which is how about half the traits work
autarch specifically, how do I do that with an attribute?
RabidGravy let me find an example
autarch RabidGravy: that would be great!
skids autarch: yes and the guts are already well in place, just worked examples have only come from wizards capable of saying "oh, I guess we are still missing this tiny part" and adding it while workig the example.
autarch skids: I might be able to do that - I certainly know how this stuff works in Moose well enough 20:12
perlpilot autarch: multi trait_mod:<is>(Attribute $a, :$lazy) { ... } # probably like this
autarch perlpilot: yes, that's _exactly_ what I wrote, but the $a is immutable and not attached to a package, making it basically impossible to do anything useful with it
mst lizmat: didn't you have a lazy trait proto a while back?
RabidGravy autarch, github.com/jonathanstowe/JSON-Name...ON/Name.pm very simple example
skids autarch: you might find the jnthn/oo-actors module source code worth a read. 20:13
lizmat mst: yes, but that was decided against
mst lizmat: right, but I was wondering if autarch could see the implementation for inspiratio^Wtheft purposes
ISTR it was decided against having in core, not decided against being possible at all, right?
RabidGravy more complicated examples are available
lizmat mst: 34788bfd4bcdfaba78f8eab4f removed it 20:14
autarch looks
aha, I didn't realize how that compose method would work 20:15
RabidGravy yeah, you can over-ride the compose method and then nextsame
autarch that basically clears everything up, I think 20:16
Skarsnik the XML::from-file is really bad lol
perlpilot autarch: btw, when you figure all this stuff out, it could sure use some documentation or even just a blog post with some examples explained :)
20:16 integral left
autarch heh 20:16
20:16 cdg_ left
RabidGravy I've gone another one that does something rather odd with compose 20:16
autarch perlpilot: yeah, the fact that the extension mechanism is undocumented (or implicitly documented?) makes things a bit frustrating 20:17
RabidGravy autarch, here's one that dicks around with the compose of an attribute github.com/jonathanstowe/Object-Pe...mission.pm 20:18
skids One of the reasons might be not wanting to set everything in stone quite yet.
RabidGravy I think the meta model is documented to some extent, it's just not explicitly stated you can dick around with it weird ways 20:20
mst well, it's a metamodel, that's basically what it's *for* 20:22
RabidGravy yeah, I know that, you know that, other people need encouraging ;-)
20:23 llfourn joined
autarch no, other people need documentation 20:23
20:23 addison left
autarch at least I'm sufficiently encouraged, I just need to know how stuff works 20:23
mst RabidGravy: autarch's been a moose core hacker for years, largely in order to support the 'weird ways' he wanted to work for extensions he was writing
he's not scared, just having trouble getting started :) 20:24
RabidGravy to be honest I just look at the source, find which bits can be altered to influence what parts and try it out
autarch in fact, I wrote the first version of the thing that made Moose extensible in a not-just-a-toy way so that you could combine extensions
20:25 rickbike joined 20:26 integral joined, integral left, integral joined
autarch fortunately someone else came along and fixed a lot of the bugs ;) 20:26
lizmat ok, it's not my original CatHandle commit
RabidGravy but yeah, an "extending the metamodel doc" would be good 20:27
there's a lot of stuff that is not documented in anyway at all (except in some way in the design docs)
skids autarch: There is rakudo/docs/metamodel.pod in case you haven't noticed it, not that it is thorough. Probably a good place to plop whatever you learn.
20:28 llfourn left
autarch skids: yeah, there's stuff in there not on the doc site that makes this make more sense 20:28
awwaiid flussence: OOHHHHHH!!!! the proto itself. So in rakudo:src/core/control.pm we define EVAL as a proto with a full body and {*} in there. when I do "use Inline::Python" I get an exported EVAL. When I then do "use Inline::Ruby" I get a _second_ exported EVAL, and Rakudo tries to merge. I guess it is at that point it wants the body of the CORE::EVAL proto sub to be only {*} ?
20:28 ggoebel7 joined
perlpilot RabidGravy: Look at github.com/jnthn/oo-actors/blob/ma...ors.pm#L48 How do you know what to put in there? (I just try stuff until it doesn't break :) 20:28
autarch the docs site has no mention of the $attr.compose method, for example, which is pretty key to extending attributes
mst lizmat: 4c1f815c0 or d083043 seem like the likeliest to me
lizmat: were I a betting man, I'd bet on the former 20:29
autarch I was getting really worried that this was a nearly RO metamodel, which would have been devastating
mst lizmat: 99% sure it wasn't like this when you merged my work in 79bffb9b 20:30
awwaiid flussence: I guess it's kinda funny that the first one works, since the first one doesn't get merged since the built-in EVAL is in like CORE:: or something
RabidGravy perlpilot I think that bit flows from what it's about to do, it's the piece at line 65 that needs documenting properly :) 20:31
lizmat it's not the one before 4c1f815c0793a5bc470
awwaiid it would be great to be able to inject my new multi sub EVAL entries into CORE::
autarch alright, I'm getting stuck on the fact that the $attr passed to my trait_mod:<is> sub is immutable. When the execution hits "$attr does IsLazy" I get "Cannot modify an immutable Any"
awwaiid though I guess that wouldn't be very lexical
RabidGravy autarch, you must have something funny in the signature of the trait sub 20:32
mst lizmat: I still think it's 'assinging @*ARGS after MAIN_HELPER ate all the options'
lizmat it's 4c1f815c0793a5bc470
autarch RabidGravy: multi sub trait_mod:<is> (Attribute:D $attr, :$lazy) is export {
mst lizmat: ha! my first guess WAS right
I am ... pleasantly surprised :D 20:33
autarch I tried adding "is rw" after $attr but then the signature is wrong and doesn't match the multi so my trait isn't seen at all
lizmat mst: testing a fix
RabidGravy no, it shouldn't need that
mst lizmat: I'm not sure reverting the change is right though, I kinda think the shims should likely be passing not-my-option-options through from a *%extra
lizmat I'm not sure now @*ARGS needs assigning
autarch oh wait, I think I know the problem 20:34
yup, I'm dumb - I was setting $attr.builder but "has $.builder" wasn't declared as rw
20:34 addison joined
autarch FWIW it'd be really nice if it didn't have to be rw and I could set this when I write "$attr does IsLazy( builder => $builder )" or something like that 20:34
mst lizmat: the shims currently start with 'shift @*ARGV is $name;' etc.
argh @*ARGS 20:35
I guess leaving it completely alone is going to be better
lizmat mst: removing the assignment, seems to fix it... now spectesting
ack in 5 mins
*back
autarch that error message is definitely LTA
mst LTA? 20:36
awwaiid Less Than Awesome
RabidGravy autarch, you can parameterise the trait
autarch RabidGravy: yeah, that seems wrong though
RabidGravy role even
autarch mst: my new favorite acronym
awwaiid Maybe I need ot get rid of the proto sub EVAL to do what I want. I was hoping to not have to touch Rakudo :) 20:37
mst ah, "suboptimal" for hipsters :P
awwaiid mst: yeah
20:37 integral left
RabidGravy I've got something that basicall p[passes the values from the trait strait to the role as parameters 20:37
20:38 SwellJoe left 20:40 BenGoldberg joined, integral joined
dalek kudo/nom: 2ae0dfa | lizmat++ | src/core/Main.pm:
Don't eat named parameters, mst++

This should enable --force on panda again
20:41
lizmat mst: could you verify this fixes things ? 20:42
mst kicks off 'build moar'
looks like it should, if I understand what's going on
autarch rt.perl.org/Ticket/Display.html?id=127110 is why I was getting so turned around
or part of why, at least
mst yow. yeah, I can see that 20:43
though I guess the issue is that if the exception is because of -user- error, you want the 'has' declaration as the report line 20:44
autarch yeah, I can see why it might have ended up the way it did, but it's just so confusing 20:45
if it had the variable name in there I might have made sense of it even with the wrong line #
mst I wonder if ideally you'd report -both- locations
it's not the 'wrong' line number, that's the thing
autarch that would work
RabidGravy autarch, yeah there's another really yuck one iif you refer an unknown type in a trait
skids A Failure might be able to do so.
mst if you changed which one, for many users of traits it would now be 'wrong'
which is why I think 'both'
autarch mst: maybe it just need a full call stack? 20:46
mst then we'd get into the whether to make that optional argument
I ... somebody else can go there, but I'm not going to
20:46 khw left, integral left
autarch I added a comment reflecting what we just discussed 20:47
lizmat autarch: you are aware of --ll-exception ?
mst autarch: nice summary
20:48 integral joined, integral left, integral joined
awwaiid Do we want EVAL "...", :lang<Foo> to always try to load Inline::Foo? 20:48
autarch lizmat: I am now - but that wouldn't have helped here - I actually needed a stack trace through code I'd written, not through rakudo or moar
lizmat autarch: ah, ok
RabidGravy ah this one rt.perl.org/Ticket/Display.html?id=125662
lizmat "use trace" may also help
autarch: ^^^ 20:49
awwaiid mmm. nevermind, that is probably too far for now.
mst lizmat: victory!
autarch lizmat: nope, doesn't help
I assume there's some sort of special casing for errors during trait appiication interfering here 20:50
20:50 darutoko left
RabidGravy it's also when they happen that has a bearing 20:50
20:51 sprocket left
RabidGravy it's closer to parsing time than run time 20:51
mst lizmat: right, updated the tickets telling people they should be ok now 20:52
lizmat++
lizmat BTW, I think it is fixed properly now, isn't it ?
I mean, now that @*ARGS and $*ARGFILES are lazy, we should be fine
mst lizmat: the 'fixed properly' comment was on a different ticket where they were using --force as a workaround and you'd broken their workaround 20:53
20:53 Arrowhead joined
lizmat ah, ack, ok :-) *phew* :-) 20:53
mst lizmat: by 'fixed properly' I mean fixing the actual bug that you broke their workaround for :D
lizmat gotcha
mst but they'd linked across to the ticket for -this- bug
20:54 ZoffixWin joined, ZoffixWin left, ZoffixWin joined
mst so I figured I'd put the 'try this' on both 20:54
to make sure everybody was back up and running ASAP
lichtkind hugs lizmat
mst the other one is a panda bug/misfeature
20:57 itaipu joined
autarch how does pass by reference vs pass by value work in p6? 20:58
20:59 SwellJoe joined
lizmat autarch: everything is pass by reference in p6, really 20:59
or pass by object, if you will 21:00
TimToady but 'is rw' and 'is raw' mean you want a reference, and without those doing something destructive is erroneous
21:00 integral left
TimToady so the optimizer is allowed to optimize to copy in that case 21:01
21:02 integral joined, integral left, integral joined
TimToady likelier to beneficial for small things than larger things 21:02
as with many bits of Perl 6, the important thing is what you're promising you don't care about, not what the actual implementation does 21:03
RabidGravy :)
21:04 Arrowhead left
mst I do like 'is copy' for making a sub arg explicitly rw-inside 21:04
21:04 Arrowhead joined 21:06 jameslenz left 21:07 sprocket joined
autarch on scale of 1 to infinity, how wrong is it to wrap a class's BUILDALL as part of attribute composition? 21:07
mst yes
21:07 FROGGS joined
ZoffixWin mst++ 21:07
RabidGravy on the Westbrook-Thompson scale it's about Keith Moon 21:09
lizmat autarch: couldn't you handle this with a BUILD method ?
autarch lizmat: well, the class that contains the lazy attribute might or might not already have a BUILD, right? 21:10
RabidGravy do the BUILD and nextsame
lizmat autarch: but if it has a BUILD, it wan't call the BUILDALL, or does it ?
confused now
autarch not as confused as I am ;) 21:11
skids thought BUILDs were automatically called *by* BUILDALL.
ZoffixWin is currently hacking their HNY bot using pico, from Windows via Putty connected to a Debian box XD
21:12 Rotwang left, domidumont left
masak mst: I'm... rakudobugging it now. sorry for the delay. 21:12
mst: I'll get you the RT id ASAP 21:13
21:13 Rotwang joined
lizmat ah, yes... my confusion stems from many classes in core calling BUILD directly from new 21:14
although one could argue, they shouldn't be called BUILD then :-)
mst masak: lizmat already fixed it 21:15
autarch I'm trying to figure out a couple things - 1. How can I tell if an attribute was explicitly set during object construction, including set an undefined value? ... 2. How can I intercept reading of "has $!foo" style attributes since they don't go through method dispatch?
mst masak: turns out I was right about which commit, amazingly
masak \o/
ok, then I'll stand down rakudobuggin
g
lizmat++
autarch it seems like #2 could be done by setting the object to a proxy which closes over the object and calls the builder the first time it's accessed, then replaces itself (the proxy) inside the object with the actual value so the proxy doesn't need to be called repeatedly
which is, I guess, okay, but that brings me back to #1 21:16
dj_goku is there a way to split by NUL (0x00) for a string?
dj_goku is kind of fuzzy from all the caffeine. 21:17
lizmat m: dd "a\0b\0c".split("\0") # dj_goku
camelia rakudo-moar 2ae0df: OUTPUT«("a", "b", "c")␤»
skids autarch: RT#125437 (especially the IRC log linked there) might play in on #1. There's some dust yet to settle around attribute initialization (also WRT roles). 21:18
RabidGravy though I'm thinking if you've got a null in actual data you probably wanted a Buf
dj_goku lizmat: ugh. so I did this: .split('\0') lol :(
lizmat: thanks! 21:19
autarch I think the metamodel could probably use some stuff around attributes for hooking into the getting and setting of attributes (not of their accessors) 21:20
that would make what I'm doing trivial
RabidGravy yeah, I'm with you on that 21:22
21:22 llfourn joined
perlpilot I can only think of hokey things right now 21:23
involving has $.attr = SomeSentinel; and BUILD for instance
autarch perlpilot: that's _exactly_ what I'm trying to implement right now ;)
except I'm wrapping BUILDALL because I don't want to interfere with existing BUILD submethods
skids autarch: well, attributes are meant to be optimized to just offset lookups for most classes, so that mechanism would have to be dissolvable when not needed. 21:24
RabidGravy or DIY reprs could help 21:25
perlpilot yeah, but that's a whole other bag of worms I think
(also sub-documented AFAIK)
21:27 llfourn left, zwu joined
masak is a bit surprised to discover the Edument course toolchain being praised on p6u 21:28
I mean, that's flattering, of course... :)
zwu Hi, what is the :D in the parameter types Str:D, Str:D:, List:D, I saw a lot of them in the class Str, List etc.
masak ...but I've used it for years now and I'd like to replace it with something better (in Perl 6)
ZoffixWin Well... So far I mentioned 2 or 3 times in #freenode-newyears that my HNY bot is written in Perl 6 and no one started foaming from the mouth :) That's good news
perlpilot zwu: "defined" i.e. not a type object
ZoffixWin zwu, "defined"
masak ZoffixWin: depends how you see it :) they should foam with anticipation! 21:29
zwu thanks.
ZoffixWin m: multi foo ($x:D) { say "defined!" }; multi foo ($x:U) { say "bruh, where's the arg?" }; foo 42; my $x; foo $x;
camelia rakudo-moar 2ae0df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dr_i1wFcXk␤Invalid typename 'D' in parameter declaration.␤at /tmp/dr_i1wFcXk:1␤------> 3multi foo ($x:D7⏏5) { say "defined!" }; multi foo ($x:U) {␤»
masak m: sub foo(Int:D $i) { say "yep" }; foo(42); foo(Int) # zwu: like this
camelia rakudo-moar 2ae0df: OUTPUT«yep␤Parameter '$i' requires an instance of type Int, but a type object was passed. Did you forget a .new?␤ in sub foo at /tmp/nYMif_ttBY line 1␤ in block <unit> at /tmp/nYMif_ttBY line 1␤␤»
perlpilot zwu: See S12:1626
hobbs zwu: it's a very happy Str.
ZoffixWin m: multi foo (Int:D $x) { say "defined!" }; multi foo (Int:U $x) { say "bruh, where's the arg?" }; foo 42; my $x; foo $x;
camelia rakudo-moar 2ae0df: OUTPUT«defined!␤Cannot call foo(Any); none of these signatures match:␤ (Int:D $x)␤ (Int:U $x)␤ in block <unit> at /tmp/iH8acoaXYE line 1␤␤»
ZoffixWin oh, sod off
masak ZoffixWin: $x is not Int 21:30
ZoffixWin masak, the second time two people asked for the sauce
masak, and I showed.
masak m: multi foo (Int:D $x) { say "defined!" }; multi foo (Int:U $x) { say "bruh, where's the arg?" }; foo 42; my Int $x; foo $x;
camelia rakudo-moar 2ae0df: OUTPUT«defined!␤bruh, where's the arg?␤»
ZoffixWin masak, but last year there were some "zomfg! people still use Perl ROFLCOPTER!" when I had a Perl 5 HNY bot
awwaiid what does the signature for binding to a C varargs external look like?
ZoffixWin masak, thanks. I'm too wasted to code methinks :P
masak you're welcome 21:31
21:31 FROGGS left
perlpilot awwaiid: I dunno if NativeCall does varargs yet. 21:31
lizmat started hitting the perlsecco, so will refrain from saying sensible things for the rest of the day
perlpilot lizmat: happy new year! :) 21:32
lizmat: give wendy a hug from #perl6 :)
lizmat perlpilot: will do!
Skarsnik I love type indirection: %fundtypes{%qualtypes{%pointertypes{$f.type-id}}}
21:33 FROGGS joined
Skarsnik NC as vararg code 21:33
but no idea if it work
maybe check at cygx C module
lizmat perlpilot: hug delivered...
lizmat hugs #perl6! back
(as instructed by woolfy)
zwu In using regexes, I found the matched variables $0, $1 will be overwrote in multiple states, though the purpose I want is something like if $content ~~ /something/ { $a = $0 ~~ /new test/ ?? result_a !! result_b; # now the $0, $1 are changed to the above states } 21:34
perlpilot zwu: If you care about the contents of $0, $1, etc. you want to stick them in your own lexicals. 21:35
zwu: or ... perhaps you just need to restructure your code so that you aren't overwriting them by performing another pattern match 21:36
flussence or use something like if $content.match(/something/) -> $m { ... }
zwu I realized that and before entering another match, I use a variable my @m = $/.list to save them. 21:37
perlpilot flussence++ (I keep forgetting that we can do that now :) 21:38
perlpilot still suffers from a little P5-think every now and then
Skarsnik if people interest in my wip on an attempt to extract/generate NC stuff from a C header : gist.github.com/Skarsnik/fd901dd8d26399fe4226 21:39
skids m: "aa" ~~ /(a)(a)/; $1.say; my $f := $/; $0 ~~ /(a)/; $1.say; $/ := $f; $1.say; # should that work? 21:40
camelia rakudo-moar 2ae0df: OUTPUT«「a」␤Nil␤Nil␤»
ZoffixWin skids, probably not. The $/ bound to $f gets reset on the second regex, which is why it's a Nil on the second capture 21:41
RabidGravy lizmat, I've been refraining saying sensible things for the rest of the year since februray 21:42
21:42 nexysno_ left
lizmat RabidGravy: that doesn't make sense, so it does 21:42
21:42 nexysno_ joined
skids ZoffixWin: doh. Right you are. 21:43
perlpilot m: "aa" ~~ /(a)(a)/; $1.say; my $f = $/; $0 ~~ /(a)/; $1.say; $/ = $f; $1.say; # works with no binding though :)
camelia rakudo-moar 2ae0df: OUTPUT«「a」␤Nil␤「a」␤»
21:44 FROGGS left
perlpilot Skarsnik: do you use a C parser, or a custom parser that only cares about certain things? 21:45
Skarsnik I use gccxml x)
all my attemps at using tool that use clang.. fail 21:46
skids ZoffixWin is obviously still not too far over the Balmer Curve
ZoffixWin :P
21:46 nexysno_ left
RabidGravy I abandoned tring to use C::Parser again yesterday 21:48
Skarsnik Yes
I look at it: "No precomp" -> nop
perlpilot Well ... whatever works I guess. Skarsnik++
Skarsnik I need to take a break to rethink how I gather type
zwu @flussence, thanks, that is much clear, will use yours if $content.match(/something/) -> $m { ... } 21:49
RabidGravy I sent some PR to fix it but it just couldn't handle what I threw at it
21:50 Arrowhead left
perlpilot zwu: I would probably use 'with' rather than 'if' there (but I don't know the full code, so ... maybe) 21:50
21:51 nexysno_ joined
Skarsnik there is 5 ways for type x) 21:51
zwu please put an example using with 21:52
21:52 raiph joined
perlpilot zwu: just s/if/with/ in your code. It checks for definedness rather than truthness (which I don't think matters in this case) 21:53
except that it reads better :)
RabidGravy I always forget with
zwu I think it reads better too 21:54
like the with
perlpilot "without" is the one that really gets forgotten I bet 21:55
21:56 nexysno_ left
masak we got with/without as an analogue for if statements -- but what about while/until loops? :) same question with repeat while/until. 21:56
lizmat $sigil = '\\' without '@$%&'.index($sigil); # from core 21:57
I guess that would be better with .contains, actually
$sigil = '\\' unless '@$%&'.contains($sigil);
21:58 lnrdo left 21:59 Rheum101 joined
lizmat also with/without topicalizes 21:59
.return with $value # return value if defined
perlpilot masak: whiled/untild :> 22:00
22:00 Arrowhead joined 22:01 skids left 22:02 yqt joined
zwu is there a sub or method for string for is_digits as it is in python, since it is used lot of times? 22:02
lizmat m: say try { "abc".Numeric } 22:03
camelia rakudo-moar 2ae0df: OUTPUT«Nil␤»
lizmat m: say try { "42".Numeric }
camelia rakudo-moar 2ae0df: OUTPUT«42␤»
Skarsnik checking for a failure does not feel right x) 22:04
masak m: say try { "Inf".Numeric }
camelia rakudo-moar 2ae0df: OUTPUT«Inf␤»
masak Skarsnik: was about to say
lizmat m: say "Numeric" with try { "abc".Numeric }
camelia ( no output )
lizmat m: say "Numeric" with try { "42".Numeric }
camelia rakudo-moar 2ae0df: OUTPUT«Numeric␤»
masak zwu: I think the ideal would be to try to parse it against some appropriate rule in the Perl 6 grammar. but that grammar is not exposed in userland yet :/
(in Rakudo) 22:05
Skarsnik m: Str.^find_method(/num/);
camelia rakudo-moar 2ae0df: OUTPUT«Regex object coerced to string (please use .gist or .perl to do that) in any find_method at gen/moar/m-Metamodel.nqp line 1076␤Regex object coerced to string (please use .gist or .perl to do that) in any find_method at gen/moar/m-Metamodel.nqp line 108…»
zwu I wrote a code about string to int, $str_or_int = $s ~~ /^ \d+ $$/ ?? @s.Int !! $s
Skarsnik m: say Str.^find_method("*num*");
camelia rakudo-moar 2ae0df: OUTPUT«(Mu)␤»
22:05 lostinfog left
Skarsnik m: say Str.^find_method("*Num*"); 22:05
camelia rakudo-moar 2ae0df: OUTPUT«(Mu)␤»
Skarsnik m: say Str.^find_method("Num");
camelia rakudo-moar 2ae0df: OUTPUT«Num␤»
Skarsnik find_method does not take a regex? 22:06
m: say Str.^find_method(<*Num*>);
camelia rakudo-moar 2ae0df: OUTPUT«(Mu)␤»
Skarsnik m: say Str.^find_method(<.*Num.*>);
camelia rakudo-moar 2ae0df: OUTPUT«(Mu)␤»
zwu the purpose is to get Int object from string if it can be converted, so that I can compare them by number in stead of by string. 22:07
Skarsnik m: say "123".^can('Int'); 22:08
camelia rakudo-moar 2ae0df: OUTPUT«(Int Int)␤»
Skarsnik m: say "123s".^can('Int');
camelia rakudo-moar 2ae0df: OUTPUT«(Int Int)␤»
zwu ^can('Int') is what I want, thanks. 22:10
ZoffixWin m: say "blarg".^can('Int');
camelia rakudo-moar 2ae0df: OUTPUT«(Int Int)␤»
ZoffixWin zwu, ^ are you sure? 22:11
Skarsnik not really
zwu sorry, not sure,
gfldex m: my (Int $i1, Int $i2); try { $i1 = "123".Int; $i2 = "abc".Int }; dd $i1, $i2
camelia rakudo-moar 2ae0df: OUTPUT«Int $i1 = 123␤Int $i2 = Int␤»
ZoffixWin m: say try "42".Int or say "not isdigits"
camelia rakudo-moar 2ae0df: OUTPUT«42␤»
RabidGravy zwu, a more idiomatic approach might be to just try and convert it with a try
zwu tried say "123".^can("Int") returns (Int, Int)
ZoffixWin m: say try "42ss".Int or say "not isdigits"
camelia rakudo-moar 2ae0df: OUTPUT«Nil␤» 22:12
ZoffixWin zwu, ^
Skarsnik having to use try is dumb
22:12 _Vi left
ZoffixWin m: say "42ss" ~~ /^\d+$/ 22:12
camelia rakudo-moar 2ae0df: OUTPUT«Nil␤»
Skarsnik there should be something else x)
ZoffixWin zwu, ^ another way
gfldex m: my $i1 = "abc".?Int; my $i2 = "123".?Int; dd $i1, $i2;
camelia rakudo-moar 2ae0df: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5abc' (indicated by ⏏)␤ in block <unit> at /tmp/Fy13Q2AP8F line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/Fy13Q2AP8F line 1␤␤»
gfldex m: sub f (Int(Str) $i) { say $i }; f('123'); f('abc'); 22:13
camelia rakudo-moar 2ae0df: OUTPUT«123␤Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5abc' (indicated by ⏏)␤ in sub f at /tmp/2RLolZge47 line 1␤ in block <unit> at /tmp/2RLolZge47 line 1␤␤Actually thrown at:␤ in sub f at /tmp…»
Skarsnik typedef does not sound like fun x)
gfldex m: multi f (Int(Str) $i) { say $i }; multi f (Str $s) { say $s }; f('123'); f('abc'); 22:14
camelia rakudo-moar 2ae0df: OUTPUT«Ambiguous call to 'f'; these signatures all match:␤:(Str $i)␤:(Str $s)␤ in block <unit> at /tmp/AQvnTqx2a9 line 1␤␤»
RabidGravy m: if try "abc".Int { say "int" } else { say "other" }
camelia rakudo-moar 2ae0df: OUTPUT«other␤»
perlpilot good night everyone! Happy New Year! 22:15
perlpilot *poof*
22:15 perlpilot left
RabidGravy or a multi 22:15
gfldex converting Str to Int is dangerous so handling exception sounds right. It may be slow tho.
22:15 sprocket left
masak "only use exceptions for exceptional circumstances" 22:16
this is not a try-it-and-fail kind of situation. it's an "is this valid?" situation
Rheum101 m: say "hi"
camelia rakudo-moar 2ae0df: OUTPUT«hi␤»
gfldex so a multi with where * ~~ /^\d+$/ 22:17
masak gfldex: or define it as a subtype.
gfldex frankly, if you end up with a number in a Str you likely did something wrong in the first place
Skarsnik still there should be something more direct than a regex x)
RabidGravy it's a "try it and if that doesn't work out try something else" situation
22:18 BenGoldberg left
Skarsnik gfldex, DBIish 'old' method only give you Str 22:18
zwu this is the piece of code $str_or_int = $s ~~ /^ \d+ $$/ ?? @s.Int !! $s, but want to have a better way than the regex
Skarsnik and I have a webservice that give me id has string (because they are big)
gfldex Skarsnik: your input validation should also do the convertion in that case 22:19
Skarsnik @s.Int is a typo? x)
gfldex, and then how to have a direct way to check if the Str is a number aside using a dumb regex? x) 22:20
zwu it's a type, should be $str_or_int = $s ~~ /^ \d+ $$/ ?? $s.Int !! $s
22:20 sprocket joined
Skarsnik m: my $a = +"1abc"; say $a; 22:21
camelia rakudo-moar 2ae0df: OUTPUT«Cannot convert string to number: trailing characters after number in '031⏏5abc' (indicated by ⏏)␤ in block <unit> at /tmp/dU9kzi8qjY line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/dU9kzi8qjY line 1␤␤»
AlexDaniel TimToady: I thought that I will report it tomorrow if nobody fixes it
but yeah, sometimes bug mentions are just forgotten. That's pretty sad 22:22
gfldex zwu: i disagree, the type is Str and stays a type until you converted it _taking_unicode_into_account_
s/a type/that type/ 22:23
dalek kudo-star-daily: b64da31 | coke++ | log/ (9 files):
today (automated commit)
RabidGravy I think some people think that the magic bug fairies fix stuff if the mention here
Skarsnik hm, what about IntStr ?
22:23 llfourn joined
AlexDaniel RabidGravy: well, that's what happened today :) 22:23
gfldex we may call them arabic numbers, the arabs disagree, call them hindu numbers and write them differently 22:24
22:24 BenGoldberg joined
zwu A union of Int and Str to IntStr something is over skill 22:24
Skarsnik It's a Perl 6 type, but I don't remeber it use x) 22:25
gfldex m: say "۱۲۳۴۵۶۷۸۹".Int;
camelia rakudo-moar 2ae0df: OUTPUT«123456789␤»
gfldex TimToady++
ZoffixWin m: "42".WHAT.say
camelia rakudo-moar 2ae0df: OUTPUT«(Str)␤»
zwu Support I have a version class represent the major.minor.micro, most of time they are in the number, but sometime there may be words instead of the number,
ZoffixWin m: "42s".WHAT.say
camelia rakudo-moar 2ae0df: OUTPUT«(Str)␤»
ZoffixWin Hm
zwu but when they are in number, I want to sort them correctly by the number.
22:25 Rheum101 left
Skarsnik There is a Version class x) 22:26
gfldex zwu: don't do that. Instead let me find the link for you
RabidGravy m: my $a = IntStr.new(10, "foo"); say +$a; say ~$a;
camelia rakudo-moar 2ae0df: OUTPUT«10␤foo␤»
AlexDaniel m: say [*] 1000 .. 0
camelia rakudo-moar 2ae0df: OUTPUT«1␤»
Skarsnik m: say v1.2.alpha
camelia rakudo-moar 2ae0df: OUTPUT«v1.2.alpha␤»
AlexDaniel TimToady: ↑ 1? Why 1?
gfldex zwu: see rosettacode.org/wiki/Natural_sorting#Perl_6
zwu the version string most time likes 4.1.2, but sometime 4.1.d
flussence m: say 10 .. 0 22:27
camelia rakudo-moar 2ae0df: OUTPUT«10..0␤»
22:27 jshy joined
RabidGravy I tried hacking up an enumy kind of thing for errors but not got it quite rught 22:27
flussence m: say @(10 .. 0)
camelia rakudo-moar 2ae0df: OUTPUT«()␤»
flussence m: say &infix:<*>()
camelia rakudo-moar 2ae0df: OUTPUT«1␤»
AlexDaniel m: sar [/] 1000 .. 0
camelia rakudo-moar 2ae0df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3iBgy6ujff␤Undeclared routine:␤ sar used at line 1. Did you mean 'VAR', 'say'?␤␤»
22:27 sprocket left
Skarsnik m: say v1.2.d cmp v1.3 22:27
camelia rakudo-moar 2ae0df: OUTPUT«Less␤»
AlexDaniel m: say [/] 1000 .. 0
camelia rakudo-moar 2ae0df: OUTPUT«No zero-arg meaning for infix:</>␤ in block <unit> at /tmp/gZx1fishIf line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/gZx1fishIf line 1␤␤»
Skarsnik zwu, the Version type do what you want
AlexDaniel no zero-arg meaning for / yet zero-arg * means 1 22:28
gfldex zwu: copypasta: rosettacode.org/wiki/Natural_sorting#Perl_6
AlexDaniel m: say [**] 1000 .. 0
camelia rakudo-moar 2ae0df: OUTPUT«1␤»
gfldex zwu: copypasta: .sort({$_.key.subst(/(\d+)/, -> $/ { 0 ~ $0.chars.chr ~ $0 }, :g)})
22:28 Tonik left
AlexDaniel m: say [+&] 1000 .. 0 22:29
camelia rakudo-moar 2ae0df: OUTPUT«-1␤»
22:29 llfourn left
AlexDaniel not sure what is the logic behind this 22:29
flussence you're passing it an empty list, as demonstrated above
22:30 TimToady left, raiph left 22:32 TimToady joined
AlexDaniel flussence: I'm not sure if that's how it works 22:32
flussence: previous [+] bug also was supposed to receive empty list
flussence: but instead it worked on the range endpoints directly
zwu the natural_sorting for perl6 is very powerful. 22:33
AlexDaniel flussence: github.com/rakudo/rakudo/commit/6612747124
gfldex m: say [+&] (1000..0).list
camelia rakudo-moar 2ae0df: OUTPUT«-1␤»
jshy what is the correct way to convert a list of hex to write-to / print-to for udp? I keep ending up with Str or Buf.
22:34 TEttinger joined
gfldex zwu: you can also do ascii magic if you know for sure your numbers are of the latin kind 22:34
m: say '1'.ord, 'a'.ord
camelia rakudo-moar 2ae0df: OUTPUT«4997␤»
22:34 cognominal joined
ZoffixWin m: say '೬'+42 22:34
camelia rakudo-moar 2ae0df: OUTPUT«48␤»
ZoffixWin :D
RabidGravy jshy, you want a buf to pass to write-to 22:35
jshy write-to takes a blob
RabidGravy is the "list of hex" strings or numbers>
jshy, a Buf is Blob
jshy ok 22:37
masak lol, I blogged! strangelyconsistent.org/blog/strategic-rebasing 22:38
22:38 kittenlips joined
autarch how would I look at all the modules loaded in the current interpreter? something with GLOBAL:: ? 22:39
gfldex masak++ git++
AlexDaniel m: say False .. True
camelia rakudo-moar 2ae0df: OUTPUT«Bool::False..Bool::True␤»
RabidGravy if a list of hex strings its's like "my $buf =Buf.new(@list.map({:16($_)}));
22:40 Arrowhead left
jshy RabidGravy, yes that worked - not sure how I messed it up the first time. 22:40
AlexDaniel m: say 1 ... 0
camelia rakudo-moar 2ae0df: OUTPUT«(1 0)␤»
AlexDaniel m: say True ... False
camelia rakudo-moar 2ae0df: OUTPUT«(True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True …»
TEttinger m: say True .. False 22:41
camelia rakudo-moar 2ae0df: OUTPUT«Bool::True..Bool::False␤»
22:42 kittenlips left 22:43 zwu left, virtualsue joined
jshy thanks RabidGravy. 22:44
timotimo o/ 22:48
22:49 zwu joined 22:50 espadrine joined, Arrowhead joined 22:51 AlexDaniel left, virtualsue left 22:54 zwu left 22:57 vividsnow1 joined 22:58 vividsnow left, vividsnow1 is now known as vividsnow, _Vi joined 23:00 regreg left
gfldex m: say 2015++ 23:00
camelia rakudo-moar 2ae0df: OUTPUT«Cannot call postfix:<++>(Int); none of these signatures match:␤ (Mu:D $a is rw)␤ (Mu:U $a is rw)␤ (Int:D $a is rw)␤ (int $a is rw)␤ (Bool:U $a is rw)␤ (Bool:D $a is rw)␤ (Num:D $a is rw)␤ (Num:U $a is rw)␤ (num …»
Skarsnik x) 23:01
masak m: say 2015.succ
camelia rakudo-moar 2ae0df: OUTPUT«2016␤»
gfldex happy 201perl6 even if i cant make 2015 bigger
rindolf m: my $year = 2015; $year++; say $year;
camelia rakudo-moar 2ae0df: OUTPUT«2016␤»
rindolf gfldex: heh, thanks.
masak m: given $ = 2015 { .++; .say }
camelia rakudo-moar 2ae0df: OUTPUT«2016␤»
masak m: .++ andthen .say given $ = 2015 23:02
camelia rakudo-moar 2ae0df: OUTPUT«2015␤»
masak huh.
23:02 azwieg103 left
masak TimToady: ^ is this what you expect? :) 23:02
hm, I guess that's postfix:<++>... 23:03
23:03 espadrine left
masak m: prefix:<++>($_) andthen .say given $ = 2015 23:03
camelia rakudo-moar 2ae0df: OUTPUT«2016␤»
masak \o/
m: .++ and .say given $ = 2015 23:04
camelia rakudo-moar 2ae0df: OUTPUT«2016␤»
masak also works :)
RabidGravy everyone++ # happy near year to everyone GMT+n :)
autarch gist.github.com/autarch/621000c8753028e9fddd - trying to understand why this doesn't work - the while loop never gets executed but if I dd @inspect it has values in it 23:06
RabidGravy try "find-classes().list"
masak autarch: maybe some of those values are falsy? 23:07
autarch RabidGravy: it's not getting that far
masak autarch: like, type objects and stuff
Woodi Happy New Year everyone !
autarch masak: aha, that'd do it, huh
masak yep
Skarsnik why Config::INI, go for Config::Simple!
masak autarch: you want something like `while @inspect && @inspect.shift -> $c {` 23:08
autarch well, without the && ;)
TimToady masak: andthen topicalizes on the value it received, not the value that $_ ended up with
autarch cause that part still isn't true
while @inspect { my $c = @inspect.shift; ... 23:09
not quite as elegant, but has the benefit of actually working
RabidGravy I may have have already had too much beer as my brain optimised the intermediate arrays out
23:10 davercc joined
masak TimToady: right -- figured it out shortly after asking 23:11
autarch: oh, of course. yes, do it like that.
23:13 mcmillhj left
moritz good new year to everyon in GMT+1+ :-) 23:14
Skarsnik you too
timotimo you too! 23:17
jast same from me
23:18 SwellJoe left 23:21 jshy left
RabidGravy I'd like to say though I came pretty late to the party here it's been a cracking year and you're all lovely, brilliant imperfect and fantastic. 2016 is going to be great. Thanks to TimToady for getting the party started :) 23:22
masak \o/ 23:24
RabidGravy :-*
23:26 llfourn joined 23:27 zwu joined 23:28 adhoc left 23:29 adhoc joined 23:30 llfourn left, SwellJoe joined 23:32 rindolf left 23:33 sprocket joined 23:39 Arrowhead left
gfldex postimg.org/image/5x15qqgez/ 23:41
Skarsnik huhu 23:42
timotimo gfldex: would be nice if that worked, eh?
gfldex i'm quite sure it will 23:44
timotimo hah
23:47 zwu left, kurahaupo` joined 23:48 Arrowhead joined
ZoffixWin m: Perl6+2016 23:49
camelia rakudo-moar 2ae0df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WxwL5QamGH␤Undeclared name:␤ Perl6 used at line 1. Did you mean 'Perl'?␤␤»
ZoffixWin m: Perl+2016
camelia rakudo-moar 2ae0df: OUTPUT«WARNINGS for /tmp/zfUiOThNU9:␤Useless use of "+" in expression "Perl+2016" in sink context (line 1)␤Use of uninitialized value of type Perl in numeric context in block <unit> at /tmp/zfUiOThNU9 line 1␤»
ZoffixWin :o
m: say Perl+2016
camelia rakudo-moar 2ae0df: OUTPUT«Use of uninitialized value of type Perl in numeric context in block <unit> at /tmp/MAdx3m8VV2 line 1␤2016␤»
ZoffixWin -_-
23:50 addison left
RabidGravy eh? 23:51
m: say Perl.new(6) + 2016
camelia rakudo-moar 2ae0df: OUTPUT«Default constructor for 'Perl' only takes named arguments␤ in block <unit> at /tmp/4hMjGgEX8d line 1␤␤»
RabidGravy well there you have it 23:52
I'm fearing what comes next
Skarsnik good night here :) 23:58
23:58 FROGGS joined
masak m: multi infix:<+>(Perl, Int) { "-Ofun" }; say Perl + 2016 23:59
camelia rakudo-moar 2ae0df: OUTPUT«-Ofun␤»
masak there you go... :)