»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by masak on 28 November 2015.
00:00 edehont left, zjmarlow left, stmuk_ left 00:01 dalek left 00:02 dalek joined, ChanServ sets mode: +v dalek, stmuk left 00:03 n0tjack left 00:04 Zoffix left
dalek c: 647ce18 | smls++ | lib/Perl6/Documentable.pm:
move method below all attribute declarations and fix typo
00:06
c: ed8adef | smls++ | doc/Language/testing.pod:
Re-structure the 'Testing' language doc

Moved around sections and renamed subheadings, to make the page more logically structured and accessible for readers.
Comparison of before/after structure: pastebin.com/raw/UZUMYTH1
c: 3d02153 | smls++ | doc/Language/testing.pod:
Consistent formatting and wording across the 'Testing' language doc
kudo/nom: 332ea4e | TimToady++ | src/ (2 files):
add MINUS SIGN in case someone pastes from TeX etc
00:07
TimToady or is persnickety about the code they show elsewhere...
dalek kudo/nom: 3d8d56a | TimToady++ | src/ (2 files):
last patch confused prefix and infix
00:11
00:12 cdg left 00:13 TheGreekOwl joined
TheGreekOwl perl6 00:13
?
00:14 smls_ left
masak TheGreekOwl: yep. 00:14
TimToady perl6: say "Hi, TheGreekOwl" 00:16
camelia rakudo-jvm 6c0f93, rakudo-moar ae3a44: OUTPUT«Hi, TheGreekOwl␤»
TheGreekOwl I see 00:17
I'm a random thats just passing by,
cognominal m: say "passing by {rand}" 00:19
camelia rakudo-moar ae3a44: OUTPUT«passing by 0.977910675831408␤»
TheGreekOwl ???
00:21 firstdayonthejob left
TimToady m: say π; # we do greek too! 00:21
camelia rakudo-moar ae3a44: OUTPUT«3.14159265358979␤»
cognominal TheGreekOwl, just a random function interpolated in a string
TheGreekOwl I have no idea what that is.
I should mention I dont code. 00:22
cognominal if you wan't to stay that way, you may be in the wrong channel :) ur welcome anyway 00:23
* want
TheGreekOwl Thanks for the offer, but i'll be a nuisance here 00:24
Besides, there so much stuff to do on freenode
TheGreekOwl dives back out.
00:24 TheGreekOwl left, zjmarlow joined
TimToady
.oO(there's so much stuff to do here...)
00:25
00:26 travis-ci joined
travis-ci Rakudo build failed. TimToady 'add MINUS SIGN in case someone pastes from TeX etc' 00:26
travis-ci.org/rakudo/rakudo/builds/97574642 github.com/rakudo/rakudo/compare/0...2ea4e3b5b7
00:26 travis-ci left 00:27 BenGoldberg joined
masak 'night, #perl6 00:28
00:29 stmuk joined
flussence
.oO( nice to see a random interloper that's self-aware and courteous for a change )
00:29
00:30 travis-ci joined
travis-ci Rakudo build passed. TimToady 'don't treat things like [-1] as reductions' 00:30
travis-ci.org/rakudo/rakudo/builds/97573567 github.com/rakudo/rakudo/compare/a...b52f9f8366
00:30 travis-ci left, zjmarlow left 00:31 lucasb left 00:35 stmuk_ joined 00:36 FreezerburnV joined
dalek kudo/nom: b050d5e | TimToady++ | src/ (2 files):
unbotch MINUS SIGN patch

helps to put the right precedence level and arity...
00:37
TimToady I get so much more karma by screwing up regularly...
00:37 stmuk left 00:39 stmuk_ left 00:40 stmuk joined
TimToady I love it how random people come in here and start talking to the bot with smartquotes; I bet the other language communities are starting to go nuts over that... 00:40
Humbedooh TimToady: every man must have his vices :) 00:41
or so said Walt Disney about dying from lung cancer...
00:46 skids joined 00:48 stmuk_ joined, stmuk left
dalek ast: 60bfa55 | TimToady++ | S03-operators/misc.t:
add tests for grade school math operators
00:49
TEttinger do we have knuth up arrow notation operators yet? :D 00:50
00:50 Wolf joined
Wolf Hey there everybody~ 00:50
TEttinger "well our language has BigIntegers" "oh does it now? how big?"
TimToady I noticed a nice thing about the MINUS SIGN too... 00:51
Wolf I have a question regarding grammars
00:51 Wolf is now known as Guest7598
TimToady m: say pi-rand 00:51
camelia rakudo-moar 3d8d56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UDBfwCq0zZ␤Undeclared routine:␤ pi-rand used at line 1. Did you mean 'srand'?␤␤»
Guest7598 Anyone able to help me?
TimToady m: say pi−rand
camelia rakudo-moar 3d8d56: OUTPUT«-0.56574741868335␤»
TEttinger Guest27964 / Wolf: ask away
TimToady m: say pi−rand
camelia rakudo-moar b050d5: OUTPUT«3.04276140932166␤»
TimToady that's better
timotimo um ... 00:52
TimToady so if you really want to leave out the spaces around your minus signs...
timotimo what's with the implementation of readlineint_fh ?!?
TimToady I dunno, readlinenum? and realinerat?
00:52 travis-ci joined
travis-ci Rakudo build passed. TimToady 'last patch confused prefix and infix' 00:52
travis-ci.org/rakudo/rakudo/builds/97575098 github.com/rakudo/rakudo/compare/3...8d56a76aaf
00:52 travis-ci left
timotimo well, its implementation is a single line 00:53
which is cur_op += 6; goto NEXT;
Guest7598 I'm trying to create a grammar that can be updated on the fly (i.e. a parse action actually changes the grammar rules for the rest of the parse). To that end, is it possible to create a rule that access an external routine (or, if I have to get messy, a routine built into a regex), which would return a token value based on comparisons local to that routine?
TimToady m: say [×] 2..40 00:54
camelia rakudo-moar b050d5: OUTPUT«815915283247897734345611269596115894272000000000␤»
00:54 zjmarlow joined
Guest7598 That way, the external routines could be modified from earlier actions within the parse. 00:54
skids Guest7598: you may want to look at the Grammar::BNF module.
Guest7598 The problem with BNF is that it becomes difficult to update a parse-grammar _during_ the parse. 00:55
At least, so far as I've seen
TimToady it would probably screw up the longest token matcher by excluding the dynamic bits, but if that's okay with you, it should work
we update the current parser all the time, but not retroactively
skids Guest7598: No I mean, look at how that module does what you are trying to do. 00:56
00:56 hoelzro|phone joined
Guest7598 skids: Ah, I think I see what you mean. Use that system to generate a brand new grammar that is "updated" to the new form that I would like, then reparse? 00:57
00:57 stmuk joined
Guest7598 (well, something based on their system, anyway) 00:57
skids I did have some success in updating a grammar during parse during an aborted and unwise attempt at tackling ASN.1
TimToady offhand, the word "reparse" sounds evil...
Guest7598 (agreed) 00:58
00:59 hoelzro|phone left
Guest7598 skids, can you suggest how I might go about doing that? I'm not exactly sure what I'm supposed to be modifying to update the in-parse grammar. Do I just edit the file that the grammar is written into? I'm confused as to how one accesses the already-compiled grammar. 00:59
skids I'm trying to comprehend my old code so I'll tell you what I did when I figure it out myself :-) 01:00
01:00 zjmarlow left, stmuk_ left
Guest7598 Ah yes, my favorite game, trying to decipher what in the heck your past self thought it was doing. 01:00
01:02 ellybelly left, ellybelly joined
japhb Trying to get up to date with this month's changes-so-far ... I see a *bunch* of patches around the "Great Sink Refactor" and WANTED and such. What's the goal? 01:04
From one comment it sounded like giving better hints to codegen and better flagging "useless use ... in sink context"? 01:05
skids Guest7598: I think the important parts were in the snippets in gist.github.com/skids/b4caab210a473a586d51 Basically match against an array of rx and keep pushing to the array. Not sure if it still or ever actually worked.
Juerd "So let's go ahead and make it ??!!. (At least this week...)" -- TimToady in 2005. www.nntp.perl.org/group/perl.perl6....23025.html 01:06
The week has been more than a decade!
Guest7598 Ah, so, essentially, craft a parser from scratch? xD
Juerd will rub this into the face of anyone who says that Perl 6 syntax isn't stable ;)
01:07 yqt left 01:08 Guest7598 is now known as Faelin
flussence
.oO( "it is what you make of it" )
01:08
01:10 pierre-vigier joined
Faelin Alright, well, I'm going to keep hammering along in my current tack, which is using Marpa's hook system to return token values based on external routines. Doesn't allow me to modify the grammar once it's in use, but hopefully I can account for all the possible needs of the actual grammar rules, and make the hook-routines adjustable instead. 01:11
01:11 llfourn joined 01:13 rurban_ left
timotimo oh, maybe this helps: 01:14
01:14 pierre-vigier left
timotimo you can have an alternation (with ||) that checks an attribute (with <?{ ... }>) and that forces a specific branch of the alteration to happen 01:15
01:15 travis-ci joined
travis-ci Rakudo build passed. TimToady 'unbotch MINUS SIGN patch 01:15
travis-ci.org/rakudo/rakudo/builds/97578581 github.com/rakudo/rakudo/compare/3...50d5e31910
01:15 travis-ci left
Faelin timotimo: that doesn't really help me build a grammar that updates itself mid-parse, though. Already doing the above via Marpa. 01:15
01:16 rickbike joined
timotimo mh, ok 01:16
well, worst case you <$foobar> a string as a regex 01:17
dalek ast: eac5ed7 | TimToady++ | S02-literals/numeric.t:
add some mathy tests for unicode chars
01:18
japhb TimToady: What is the Great Sink Refactor trying to accomplish? 01:22
TimToady knowing when something's actually going to be sunk, so we can optimize 01:24
01:24 zjmarlow joined
TimToady m: loop (my int $x = 0; $x < 10000000; $x++) {} # runs about 100x faster with $x++ sunk 01:25
camelia ( no output )
TimToady m: loop (my int $x = 0; $x < 10000000; $x++) {}; say $i; say now - INIT now
camelia rakudo-moar b050d5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pzX0xMq38K␤Variable '$i' is not declared␤at /tmp/pzX0xMq38K:1␤------> 3nt $x = 0; $x < 10000000; $x++) {}; say 7⏏5$i; say now - INIT now␤»
TimToady m: loop (my int $x = 0; $x < 10000000; $x++) {}; say $x; say now - INIT now
camelia rakudo-moar b050d5: OUTPUT«10000000␤0.0631024␤»
TimToady also to give much better feedback on precedence errors, which much of the time show up as useless use of 01:26
m: my $i = 1, 2
camelia ( no output )
TimToady hmm
m: my $i = 1, 2; say $i
camelia rakudo-moar b050d5: OUTPUT«1␤»
TimToady that used to catch itself... 01:27
01:27 stmuk left
TimToady m: 1, 2 »+« 3, 4 01:28
camelia ( no output )
TimToady double hmm
m: 1,2
camelia ( no output )
TimToady oh dear...
m: 42; 43
camelia rakudo-moar b050d5: OUTPUT«WARNINGS for /tmp/znMBJB8hAj:␤Useless use of constant integer 43 in sink context (line 1)␤Useless use of constant integer 42 in sink context (line 1)␤»
japhb Lists hiding sink context? 01:29
TimToady used to distribute
dunno what busted there
timotimo japhb: i didn't actually go ahead and ask somebody to implement that feature we discussed last time :|
japhb timotimo: Well, I noticed no new commits, so I guessed as much. 01:30
01:30 zjmarlow left
timotimo ;( 01:30
TimToady something has gone and marked my list elems as wanted, and it's probably something I did :/ 01:31
01:31 Zoffix joined
TimToady says EXPR/list did it... 01:32
Juerd Why are the error messages for ..., ??? and !!! all different? 01:34
m: sub foo { ... }; foo;
camelia rakudo-moar b050d5: OUTPUT«Stub code executed␤ in sub foo at /tmp/5laQSQj_f5:1␤ in block <unit> at /tmp/5laQSQj_f5:1␤␤Actually thrown at:␤ in block <unit> at /tmp/5laQSQj_f5:1␤␤»
Juerd m: sub foo { ??? }; foo;
camelia rakudo-moar b050d5: OUTPUT«Stub code executed in sub foo at /tmp/l4htyQ3NCf:1␤»
Juerd m: sub foo { !!! }; foo;
camelia rakudo-moar b050d5: OUTPUT«Stub code executed␤ in sub foo at /tmp/RWtcXLf9Sh:1␤ in block <unit> at /tmp/RWtcXLf9Sh:1␤␤» 01:35
japhb fail, warn, and die?
(Mind you, there's a decent question of whether those really need to be so different ....) 01:36
01:36 Ben_Goldberg joined
Juerd Oh wow :) 01:36
They're actually different things :) 01:37
japhb Heh, yes
01:38 BenGoldberg left
skids m: my @*r; grammar a { regex TOP { { @*r = rx/b/ } [ <@*r> { @*r.push(rx/c/)} ]+ } }; a.subparse("cc").say; a.subparse("bc").perl.say; # Faelin: that much at least does still work. 01:42
camelia rakudo-moar b050d5: OUTPUT«#<failed match>␤Match.new(ast => Any, list => (), hash => Map.new(()), orig => "bc", to => 2, from => 0)␤»
Faelin Ah! I can work with that! Thanks :D 01:43
01:43 rickbike left 01:46 rurban left
cognominal m: use MONKEY-TYPING; augment class Cool { method hi { say 'hi' }}; Array.hi 01:48
camelia rakudo-moar b050d5: OUTPUT«Method 'hi' not found for invocant of class 'Array'␤ in block <unit> at /tmp/j4zJSmVlGg:1␤␤»
cognominal do I misunderstand MONKEY-TYPING/augment ?
I expect the .hi method to be found 01:49
01:49 yeahnoob joined
TimToady you might have to recompose a class after that 01:49
we don't have a mechanism to clear the method cache in this case 01:50
skids Is Cool a class or a role?
cognominal m: use MONKEY-TYPING; augment class Cool { method hi { say 'hi' }}; Cool.hi 01:51
camelia rakudo-moar b050d5: OUTPUT«hi␤»
japhb m: my @foo = 1, 2; say @foo.map: { when 1 { "yay" }; default { $_ } };
camelia rakudo-moar b050d5: OUTPUT«(yay 2)␤»
cognominal so, that does not yet work for derived classes 01:52
japhb Hmmm, perhaps I need a rebuild. That gives a useless use of $_ for me.
timotimo aye. only if you call its .^compose again (or something like that?)
skids m: use MONKEY-TYPING; augment class Cool { method hi { say "hi" }}; Array.^compose; Array.hi 01:53
camelia rakudo-moar b050d5: OUTPUT«hi␤»
cognominal skids++
01:54 zjmarlow joined
skids spent way to long figuring out that "Undeclared routine: hi used at line 1" was coming from bash due to the ''s 01:54
01:57 hartenfels joined 02:00 zjmarlow left 02:01 Faelin left
timotimo ah yeah :( 02:02
dalek kudo-star-daily: 009d912 | coke++ | log/ (8 files):
today (automated commit)
Zoffix m: use MONKEY-TYPING; augment class Any { method gist { say 'hi' }}; .^compose for Int, Str; my $x = 42; my $y = 'blah'; say $x, ' ' , $y 02:03
camelia rakudo-moar b050d5: OUTPUT«42 blah␤»
Zoffix :(
m: use MONKEY-TYPING; augment class Any { method foo { say 'hi' }}; .^compose for Int, Str; my $x = 42; my $y = 'blah'; say $x.foo, ' ' , $y.foo
camelia rakudo-moar b050d5: OUTPUT«hi␤hi␤True True␤»
Zoffix hm
timotimo maybe because it's a multi method? 02:04
and you'd have to "only method gist"?
perhaps "supercede method gist"?
Zoffix doesn't know what either of those are :)
02:09 kaare_ joined 02:13 molaf_ joined
dalek ast: bf3352a | TimToady++ | S03-metaops/hyper.t:
correct over-specific exception type
02:15
02:16 MadcapJake left, molaf left
dalek kudo/nom: d48cf75 | TimToady++ | src/Perl6/Actions.nqp:
infix:<,> mustn't want its args as other ops do

  (because we later distribute sink to each element to catch various brainos)
02:17
TimToady should really write tests for these warnings in his copious free time, but doesn't know how offhand, since they come from the optimizer...
well, gee, the optimizer just prints 'em to stderr, grr 02:20
makes 'em a little hard to test without running subprocesses... 02:21
02:24 zjmarlow joined 02:27 kid51 left 02:28 Sqirrel_ left 02:30 khw joined, dalek left 02:31 zjmarlow left, dalek joined, ChanServ sets mode: +v dalek
TimToady m: 1,2 02:36
camelia rakudo-moar d48cf7: OUTPUT«WARNINGS for /tmp/Oj5MD9N_uH:␤Useless use of constant integer 1 in sink context (line 1)␤Useless use of constant integer 2 in sink context (line 1)␤»
TimToady that's more like it
02:36 zjmarlow joined
TimToady m: my $x = 1, 2; 02:36
camelia rakudo-moar d48cf7: OUTPUT«WARNINGS for /tmp/U9iIN2nxUg:␤Useless use of constant integer 2 in sink context (line 1)␤»
TimToady m: 1, 2 »+« 3, 4 02:37
camelia rakudo-moar d48cf7: OUTPUT«[DISLOCATED MESSAGE] Useless use of &infix:<+> in sink context␤[DISLOCATED MESSAGE] Useless use of &infix:<+> in sink context␤WARNINGS for /tmp/3Gqhr6wtfa:␤Useless use of constant integer 1 in sink context (line 1)␤Useless use of constant integer 4…»
TimToady ooh, dislocated 02:38
that probably needs to report the hyper, not the + 02:39
timotimo so it appears 02:40
02:46 BenGoldberg joined 02:47 ilbot3 joined 02:48 Ben_Goldberg left 02:53 n0tjack joined 02:55 kaare_ left 03:02 vendethiel joined
[Coke] lizmat++ # she's the best! 03:03
03:05 n0tjack left 03:06 telex left 03:08 telex joined, AlexDaniel joined
flussence somewhat pointless question: is there any way in perl6-space to query a synthetic's codepoint number? other than manually dissecting a string and assigning my own for each glyph where .codes != .chars... 03:20
03:25 vendethiel left 03:27 noganex joined 03:29 noganex_ left
ShimmerFairy flussence: no, if you saw any of those negative numbers it'd be an erroneous leak. If you're dealing with codepoint numbers, chances are you kinda want to step away from 'Str' strings, at least temporarily :) 03:35
03:38 FreezerburnV left
ShimmerFairy m: my $str = "Umlauts on punctuation?̈ Weird."; say $str.chars; say $str.codes; for $str.NFC { say $_.base(16) } 03:38
camelia rakudo-moar d48cf7: OUTPUT«30␤31␤55␤6D␤6C␤61␤75␤74␤73␤20␤6F␤6E␤20␤70␤75␤6E␤63␤74␤75␤61␤74␤69␤6F␤6E␤3F␤308␤20␤57␤65␤69␤72␤64␤2E␤»
03:39 kanishka left
glaukommatos 03:41
Oops, sorry about that.
03:43 glaukommatos left 03:54 rurban joined, zjmarlow_ joined 03:56 zjmarlow left 04:00 zjmarlow_ left 04:04 Sqirrel joined 04:15 xpen joined 04:16 molaf_ left 04:17 BenGoldberg left 04:19 AndyDee left 04:22 Sqirrel left, skids left 04:24 zjmarlow_ joined 04:30 zjmarlow_ left 04:34 Sqirrel joined
Hotkeys can someone explain to me what's happening here and why there are two different results 04:53
m: my $x = 115; my @y = <2 -5>; ($x, ($x «+=» @y)).flat
camelia ( no output )
Hotkeys m: my $x = 115; my @y = <2 -5>; say ($x, ($x «+=» @y)).flat
camelia rakudo-moar d48cf7: OUTPUT«(112 117 112)␤»
Hotkeys m: my $x = 115; my @y = <2 -5>; ($x+0, ($x «+=» @y)).flat
camelia ( no output )
Hotkeys m: my $x = 115; my @y = <2 -5>; say ($x+0, ($x «+=» @y)).flat
camelia rakudo-moar d48cf7: OUTPUT«(115 117 112)␤»
Hotkeys ignore the ones without say
I'm copying and pasting straight from repl 04:54
04:54 zjmarlow_ joined 04:55 vividsnow joined
Hotkeys is this a bug or am I ignorant of a thing 04:56
TimToady you are decontainerizing $x by adding 0
ShimmerFairy Yeah, $x on its own is the variable itself, not the value within, IIUC 04:57
Hotkeys ah
TimToady so the first one just reports the final value of $x, rather than the initial
ShimmerFairy m: my $x = 115; my @y = <2 -5>; say ($x, ($x «+=» @y))[0].VAR.WHAT
camelia rakudo-moar d48cf7: OUTPUT«(Scalar)␤»
ShimmerFairy m: my $x = 115; my @y = <2 -5>; say ($x+0, ($x «+=» @y))[0].VAR.WHAT
camelia rakudo-moar d48cf7: OUTPUT«(Int)␤»
Hotkeys but I change x afterwards don't I?
am I thinking too linearly 04:58
TimToady m: my $x = 115; my @y = <2 -5>; say ($x<>, ($x «+=» @y)).flat
camelia rakudo-moar d48cf7: OUTPUT«(115 117 112)␤»
TimToady another way to decontainerize
geekosaur Hotkeys, what;s in the list is a reference, not the value
then the thing containedin the reference is changed, then it's all printed
Hotkeys ah
geekosaur and when it follows that reference it sees the final value
but with +0 yopu get a value there
Hotkeys my $x = 3; my $y = ($x, 0); say $y; $x++; say $y 04:59
m: my $x = 3; my $y = ($x, 0); say $y; $x++; say $y
camelia rakudo-moar d48cf7: OUTPUT«(3 0)␤(4 0)␤»
Hotkeys fancy 05:00
05:00 xpen left
Hotkeys my last language investment was python, so I guess I'm used to things being passed by value 05:01
05:01 zjmarlow_ left, xpen joined
Hotkeys eg pastebin.com/raw/SAYa7pYT 05:03
05:03 xinming left, rickbike joined 05:12 pierre-vigier joined 05:17 pierre-vigier left 05:19 psy_ left 05:24 zjmarlow_ joined 05:26 rurban left 05:30 zjmarlow_ left 05:31 xinming joined 05:33 raiph left 05:54 zjmarlow_ joined 05:58 Woodi joined 06:00 zjmarlow_ left 06:02 khw left 06:07 Woodi left 06:14 nadim left, nadim joined 06:20 rickbike left 06:21 yeahnoob left 06:24 zjmarlow_ joined 06:30 zjmarlow_ left 06:32 hartenfels left
AlexDaniel m: say 5 × 2 06:40
camelia rakudo-moar d48cf7: OUTPUT«10␤»
AlexDaniel oh, so now it's finally there?
m: say 5 ÷ 2
camelia rakudo-moar d48cf7: OUTPUT«2.5␤»
AlexDaniel m: say 5 ⋅ 2
camelia rakudo-moar d48cf7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BubQiGkCZZ␤Confused␤at /tmp/BubQiGkCZZ:1␤------> 3say 57⏏5 ⋅ 2␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifie…»
AlexDaniel the last one does not have to be there, yes 06:41
“grade school math operators” huh
u: − 06:42
06:42 pierre-vigier joined
AlexDaniel .u − 06:42
yoleaux U+2212 MINUS SIGN [Sm] (−)
AlexDaniel .u PLUS SIGN
yoleaux U+002B PLUS SIGN [Sm] (+)
AlexDaniel .u +
yoleaux U+002B PLUS SIGN [Sm] (+)
AlexDaniel unicode!!!
or maybe “ascii!!!”
okay, whatever. Now let's wait for ∞ :) 06:44
06:46 domidumont joined 06:51 domidumont left 06:52 hs___ joined, domidumont joined 06:53 nige1 joined 06:54 zjmarlow_ joined
nige1 hi - here is the draft for the advent day 20 - wordpress.com/post/perl6advent.wor...s.com/4544 06:54
feedback, comments, suggestions welcome?
AlexDaniel well, yeah, if only I could see it :) 06:57
nige1 ah - can only advent authors see it? 06:58
07:00 zjmarlow_ left 07:01 geraud left
AlexDaniel nige1: yeah, I think so 07:01
m: my \x = 5; say x × x X x × x
camelia rakudo-moar d48cf7: OUTPUT«((25 25))␤»
dalek kudo/nom: 0021601 | TimToady++ | src/Perl6/ (2 files):
useless use of Rat, Complex, type objects, etc
07:02
ast: 05f4cd9 | TimToady++ | S32-exceptions/misc.t:
test all useless use warnings
07:03
[Tux] This still segfaults: 07:04
m: my Str$s=Buf.new(^2048 .map({256.rand.Int})).decode("utf8-c8")
camelia ( no output )
TimToady m: say Ⅹ × Ⅹ X Ⅹ × Ⅹ 07:05
camelia rakudo-moar d48cf7: OUTPUT«((100 100))␤»
TimToady m: say Ⅹ × Ⅹ Xxx Ⅹ × Ⅹ
camelia rakudo-moar d48cf7: OUTPUT«((100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 10…»
AlexDaniel right 07:06
that's much better
[Tux] and Text::CSV still cannot ve compiled due to the Cannot find method 'run_alt'
07:11 AlexDaniel left 07:13 n0tjack joined 07:17 n0tjack left 07:18 FROGGS joined 07:24 zjmarlow_ joined 07:28 stmuk joined 07:30 zjmarlow_ left 07:36 firstdayonthejob joined 07:40 domidumont left 07:51 hs___ left 07:54 zjmarlow_ joined 07:59 domidumont joined 08:00 zjmarlow_ left
uruwi_ m: my Str $s=Buf.new(^2048 .map({256.rand.Int})).decode("utf8-c8"); say $s; 08:02
camelia rakudo-moar 002160: OUTPUT«(signal SEGV)»
uruwi_ m: say Buf.new(^2048 .map({256.rand.Int})).decode("utf8-c8")
camelia rakudo-moar 002160: OUTPUT«U􏿽xBD􏿽xA9􏿽x98:5􏿽xA0􏿽xFB:DS􏿽xF0L>􏿽x84􏿽xDF%􏿽xCD*􏿽xCF􏿽xE8􏿽xBFc*V=􏿽x9D􏿽xAD􏿽xCF􏿽xE4'ܳ5)k^􏿽x88􏿽xBA~􏿽xDE􏿽xD8"􏿽xB9􏿽xD8c􏿽xAC􏿽xE8􏿽xBD􏿽xE6=􏿽x9Cr􏿽x94􏿽xE8􏿽xD0􏿽xFD1a􏿽…»
08:03 xinming left
DrForr Has the 19th or 25th been decided on yet? 08:06
stmuk puts away perlsecco 08:07
08:09 pierre-vigier left 08:11 darutoko joined, virtualsue joined 08:15 pierre-vigier joined 08:17 yeahnoob joined 08:24 zjmarlow_ joined 08:28 firstdayonthejob left 08:30 zjmarlow_ left 08:37 brrt joined
brrt got a bytecode validation error in t/04-nativecall/15-rw-args.t 08:42
08:44 xinming joined 08:48 g4 joined, g4 left, g4 joined 08:52 brrt left 08:54 zjmarlow_ joined 08:55 aarry joined
stmuk t/spec/S17-lowlevel/lock.t .................................... 14/23 *** Error in `/home/steve/.rakudobrew/moar-nom/install/bin/moar': double free or corruption (!prev): 0x00007fdd58038480 *** 08:56
09:00 zjmarlow_ left
uruwi_ m: say "test the butterfly" ~> 4; 09:00
camelia rakudo-moar 002160: OUTPUT«infix:«~>» not yet implemented. Sorry. ␤ in block <unit> at /tmp/7v8w2EBgbm:1␤␤»
09:03 zakharyas joined 09:04 Ven joined
Ven o/, #perl6! 09:04
seems like my blog post didn't auto-publish at midnight, I'm gonna check what I did wrong... 09:05
should be good :)
09:07 nige1 left
dalek kudo/nom: 9a5a7db | (Sylvain Colinet)++ | src/core/Temporal.pm:
Add support for subseconds support in ISO 8601, see #126948
09:08
kudo/nom: e773aca | lizmat++ | src/core/Temporal.pm:
Merge pull request #638 from Skarsnik/nom

Add support for subseconds support in ISO 8601, see #126948
09:09 aarry left 09:10 abraxxa joined 09:11 nige1 joined, virtualsue left
Ulti saw someone on the bus this morning reading the perl6 docs and writing some code :3 09:11
09:13 brrt joined
lizmat cool! 09:14
Ven oh, nice!
lizmat there was a news item in the NL yesterday about the warm weather (this December will be the warmest ever on record, about 1 degree celsius more than the previous record)
DrForr Yeah, saw that :/ 09:15
lizmat and one of the punchlines was: "there's a good chance for butterflies around Christmas"
DrForr Maybe my tutorial session will have more than just Larry Kibitzing :)
El_Che This Christmas: Perl6 *and* the Apocalyps. Mic drop
DrForr My band name: Perl6 and the Apocalips. 09:16
09:16 xinming left
El_Che "Leisure Suit Larry and the Butterflies" 09:17
TEttinger Camelia and the Emoji Operators
El_Che :)
lizmat
.oO( smooooth! )
09:24
09:24 zjmarlow_ joined
jnthn morning, #perl6 09:27
Damn...so *that's* why there's no snow. Darn warming.
brrt: (bytecode val error) on HEAD Moar? 09:29
brrt aye, i'm working on master
or actually, i'm rebuilding my work env after i nuked it with an rsync --delete 09:30
09:30 zjmarlow_ left
brrt don't. do. rsync --delete. on. your. $HOME 09:30
this is not a good backup strategy 09:31
jnthn o.O 09:33
Yeah, on master that's not surprising
09:33 RabidGravy joined
jnthn I tightened up the validator a notch more and am still fixing code-gen bits in NQP 09:33
brrt ah, hence
ok, will not complain further :-) 09:34
09:34 pierre-vigier left 09:35 yeahnoob left 09:37 domidumont left 09:38 domidumont joined
dalek ast: e7baf23 | (Sylvain Colinet)++ | S32-temporal/DateTime.t:
Add test for subsecond ISO 8601 timestamp
09:39
ast: ed43750 | RabidGravy++ | S32-temporal/DateTime.t:
Merge pull request #88 from Skarsnik/master

Add test for subsecond ISO 8601 timestamp
09:40 pierre-vigier joined 09:47 ellybelly left 09:49 domidumont left 09:54 zjmarlow_ joined 10:01 zjmarlow_ left 10:03 ellybelly joined 10:07 domidumont joined 10:08 hankache joined, Woodi joined
hankache hello #perl6 10:09
Juerd Observation: Given a oneliner that keeps printing short strings to stdout, with Perl 5 the ^C is anywhere, but with Perl 6 it's almost always at the end of the intended string or at the beginning of a line.
hankache can we define a multi-dimensional array with a different type for each dimension? 10:10
my Int @array[2;2] will have Int for both dimensions
lizmat Juerd: we're concatting whole lines in say/print so that inter-threaded prints on STDOUT will not interleave halfway through a line
Woodi Juerd: perl6 do some work with signals maybe ?
lizmat hankache: pretty sure you cannot
hankache what if I need Str for dim 1 and Int for dim 2? Is it possible?
jnthn hankache: I don't really follow; a 2-d array is not an array of arrays
It's a single memory blob 10:11
10:11 ellybelly left
Juerd lizmat: Interesting consequence, the ^C thing :) 10:11
hankache hi lizmat jnthn
lizmat Juerd: you're aware of: signal(SIGINT).tap: { say "\ngoodbye"; exit }
Juerd No, I'm not
jnthn Oh yes you are (now)!
Juerd But don't take my observation for anything important, it was just that: an observation 10:12
lizmat Juerd: it exposes signals as a supply
Juerd jnthn: Hm, I guess so :)
m: SIGINT.WHAT.say
camelia rakudo-moar e773ac: OUTPUT«(Signal)␤»
lizmat m: say +SIGINT
camelia rakudo-moar e773ac: OUTPUT«2␤»
hankache jnthn yes indeed but imagine a use case where we are fetching a table from a DB (2 columns, 5 rows) and column one is an ID (numeric) and column 2 is a description (text) 10:13
10:13 AndyDee joined
Juerd Reading posts from 10+ years old on perl6-language is interesting. A lot of ideas were kept. 10:14
hankache we want to store it in an array, add more "lines" to it and write it back to the DB
RabidGravy hankache, then you want an array of arrays or some other representation 10:15
hankache my logical go to would be multi-dimensional array, no?
jnthn No, it'd be a 1-D array of objects
Well, if you know the types up front
Note that you *can* do a 2D array just fine for this though
Just leave it untyped 10:16
hankache RabidGravy jnthn thanks
any example of an array of arrays that is typed?
RabidGravy you can even constrain it something like "subset Record of Array where { $_[0] ~~ Int && $_[1] ~~ Str }" then do "my Record @rows" 10:17
jnthn cute :)
Ven ..if you wanna kill any kind of performance :P.
hankache my @table = [Int @column1, Str @column2] ?
jnthn hankache: No, though my @a = Array[Int].new, Array[Str].new;
Ven m: subset Record of Array where { $_[0] ~~ Int && $_[1] ~~ Str }; my @a; @a[0][0] = "yo"; 10:18
camelia ( no output )
Ven :)
jnthn Well, may be an example somewhere but something like what I wrote :)
Ven that's not checked, so I'd recommend against it ;-)
hankache jnthn thanks
Ven m: subset Record of Array where { $_[0] ~~ Int && $_[1] ~~ Str }; my Record @a; @a[0][0] = "yo"; # duh... 10:19
camelia rakudo-moar e773ac: OUTPUT«Type check failed in assignment to @a; expected Record but got Array␤ in block <unit> at /tmp/q0IHDuLXJw:1␤␤»
Ven m: subset Record of Array; my Record @a; @a[0][0] = "yo"; # ¿ 10:20
camelia ( no output )
Ven oh. so it does work, and I'm just stupid as usual \o/
hankache Ven++ #advent post
10:22 rurban joined 10:24 zjmarlow_ joined 10:30 zjmarlow_ left 10:33 brrt left 10:36 rurban_ joined
hankache m: my %capitals = (UK => 'London', Germany => 'Berlin'); %capitals.push(France => 'Paris'); say %capitals; 10:36
camelia rakudo-moar e773ac: OUTPUT«Germany => Berlin, UK => London␤»
10:36 nige1 left
hankache anything wrong with push the way i wrote it? 10:36
dalek kudo/nom: ae8d980 | lizmat++ | src/core/ (2 files):
Fix for #126955
10:37 espadrine joined, abraxxa left
lizmat m: my %capitals = (UK => 'London', Germany => 'Berlin'); %capitals.push((France => 'Paris')); say %capitals; 10:37
camelia rakudo-moar e773ac: OUTPUT«France => Paris, Germany => Berlin, UK => London␤»
lizmat hankache: it's the infamous "silently eat any named params" aka "interface consistency" thing again 10:38
Ulti hmmm Linenoise breaks the REPL atm looks like precomp gist.github.com/con-mo8/a760e1424b50ac0a8589
from a completely fresh install
about ten minutes ago
hankache lizmat double parentheses are needed?
lizmat my last commit is not going to change that :-)
yes, otherwise the pair is interpreted as a named parameter to .push 10:39
(and ignored)
hankache lizmat ah yes named params
thank you dear
lizmat you're welcome :-)
jnthn %capitals<France> = 'Paris'; # is a bit more typical, fwiw
hankache ah ok 10:40
jnthn++ 10:41
lizmat m: my %h; %h.push( (a => 42) ); %h.push( (a => 666) ); dd %h # special semantics of Hash.push 10:42
camelia rakudo-moar e773ac: OUTPUT«Hash $var = ${:a($[42, 666])}␤»
lizmat hankache: ^^^
jnthn Yeah, there's also that
jnthn can't remember using .push on a pash :)
uh, hash
lizmat
.oO( or hush on a pash :-)
10:43
hankache wait!!
10:43 AlexDaniel joined
lizmat waits 10:43
hankache so i can assign many values to a single key?!
lizmat yes, with .push, it will automagically make it an array
hankache lizmat i love you
:D
AlexDaniel hankache: late reply: in your DB example it seems like you need a hash, not an array
lizmat *blush* :-)
AlexDaniel hankache: this way you get Strs for keys and Int for values, if you wish 10:44
hankache AlexDaniel indeed, this is why i got excited #one key => many values 10:45
Ven hankache: yes, she often does magic :P
AlexDaniel lizmagic? 10:46
10:51 xinming joined
AlexDaniel “Natively-typed shaped arrays in Perl 6 are specced to take contiguous memory, meaning we get a very good memory layout, and use little memory” – I don't get it 10:54
10:54 zjmarlow_ joined
AlexDaniel so it is saying that if I have a size 100 array of int8 then I'm going to use 800 bytes or so? 10:54
TEttinger AlexDaniel: some languages, cough java cough, use rather a lot of overhead for multi-dimensional arrays
using contiguous memory helps avoid that 10:55
AlexDaniel oops what did I say
jnthn AlexDaniel: 100 bytes
AlexDaniel I meant bits
jnthn Plus GC header
10:55 rindolf joined
TEttinger what about the shaped part, though? 10:55
AlexDaniel jnthn: what about performance? It does not sound like a good idea in terms of performance
TEttinger it's how fortran does it 10:56
jnthn What doesn't? 10:57
AlexDaniel squishing your data together
TEttinger (in fortran AFAICT, arrays use a contiguous chunk of memory and have a tiny header that says "it ends here, our rows/columns/z-layers end at these positions, it's not jagged")
AlexDaniel or, in this case, I should be using just “int”?
TEttinger squishing your data together is an excellent way to get performance, what are you talking about? 10:58
AlexDaniel which will get me the fastest native int possible?
jnthn Why wouldn't more compact storage help performance?
Being good to the CPU cache is much more important than instruction count these days.
TEttinger SIMD squishes 4 32-bit values into one 128-bit "thing" for example
10:59 TimToady left
AlexDaniel there is an easy way to test it though 10:59
just try “int8” and just “int”, I guess
TEttinger AlexDaniel, the coy answer to "fastest native int" is "native machine code"
nine [Tux]: was it actually possible to precompile Text::CSV at a previous point in time? If yes, then we may have a chance at bisecting the issue and get valuable information that way. 11:00
Ven AlexDaniel: squishing data together => everything fits into L1 => faster cached access!
nine The 'run_alt' is not still present because nobody cares but because despite hours and hours of debugging nobody has the slightest idea what exactly goes wrong. 11:01
TEttinger Ven, especially true of the small scripts that perl is commonly used for
11:01 TimToady joined 11:02 pierre-v_ joined
|Tux| nine, this is not about pre-compiling (and yes that was possible some time ago) 11:03
nine |Tux|: not about pre-compiling? 11:04
|Tux| I cannot even run a single simple script with the unchanged .pm
lizmat [Tux]: it most likely is, because pre-compiling now happens under the hood automagically
Ven TEttinger: especially untrue, because the runtime does too much to be able to do that :P
|Tux| ahh
TEttinger noooo
11:04 pierre-vigier left
nine |Tux|: because we always precompile when you load a module. If you want to be sure, add "no precompilation;" to the module. If it works then, we know it's precompilation 11:04
RabidGravy yeah, H::UA is only fixed because I put "no precompilation" in
lizmat FWIW, there's method run_alt in nqp's QRegex.nqp
nine |Tux|: can you say for how long the run_alt issue has been there? 11:05
lizmat and it seems to be called an an nfa
so somehow the nfa is not initialized ?
|Tux| «no precompilation;» → PASS!
11:06 abraxxa joined
nine lizmat: the error appears in src/QRegex/Cursor.nqp line 410 when $nfa obtained by self.HOW.cache_get(self, $name) is no NFA at all but some random NQPArray. I've seen it filled with 2 Parameters, 8 NQPArrays and in other cases some 60 elements. 11:06
lizmat yuck, major corruption :-( 11:07
|Tux| My first run_alt encounter was Nov 30
nine lizmat: so it is most probably the cache getting corrupted somehow when loading from a precompiled file
|Tux| last pass for speed-test was Dec 14
where only part of the full test suite caused the run_alt issue 11:08
Ven nine: O_o
11:08 RabidGravy left
nine First mention on #perl6 was [Tux] on Nov 30th 11:09
|Tux| that's what I said
11:10 virtualsue joined
|Tux| and with no precompilation, the test suite now fails :( 11:10
nine |Tux|: yep. What I said is that nobody ran into the issue earlier than you
|Tux| as always :}
FROGGS nine: do you know what $name is in the call to self.HOW.cache_get(self, $name)?
nine |Tux|: what?
FROGGS: yes, it's some generated, supposedly unique name containing nfa, some timestamp and a counter 11:11
FROGGS ahh
|Tux| tests regarding EOF fail
jnthn EOF or EOL?
|Tux| EOF, but it seems EOL related 11:12
# expected: "id,name\r\n1,\"Alligator Descartes\"\r\n3,\"Jochen Wiedmann\"\r\n2,\"Tim Bunce\"\r\n\" 4\",\"Andreas König\"\r\n5\r\n"
# got: "id,name\n1,\"Alligator Descartes\"\n3,\"Jochen Wiedmann\"\n2,\"Tim Bunce\"\n\" 4\",\"Andreas König\"\n5\n"
AlexDaniel m: my int @a[10000] = ^10000; my int $x = 0; say @a.pick for ^10 # why is it so slow
camelia rakudo-moar ae8d98: OUTPUT«6283␤8665␤1905␤4392␤3052␤7699␤7136␤2462␤1681␤3580␤» 11:13
|Tux| is rather short on time. $work is pressing
AlexDaniel m: my int @a[10000] = ^10000; say @a.pick for ^10 # why is it so slow
11:13 Skarsnik joined
dalek ast: d9dae9f | lizmat++ | S32-temporal/DateTime-Instant-Duration.t:
We have subsecond granularity now, fix test for it
11:13
camelia rakudo-moar ae8d98: OUTPUT«2205␤4649␤8303␤4699␤1899␤2284␤5043␤2724␤4117␤9049␤»
dalek p: 39fd4da | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Correct a bitmask.
kudo/nom: d8f7e8b | lizmat++ | src/core/Pair.pm:
Make smartmatching with a Pair a bit faster
11:14
FROGGS nine: I fear that we introduce issues by precompiling stuff in a running perl6 process
lizmat nine: is precomping happening in the process itself, or are we shelling out ?
if not, have you tried that ? 11:15
FROGGS nine: in the past we procompiled by shelling out, and only precomping one source file and then shutting down
AlexDaniel oh
jnthn Didn't the patch to do that get reverted? 11:16
AlexDaniel m: my @a = ^10000; say @a[*-1]; my int $x = 0; say @a.pick for ^100 # this is instant
camelia rakudo-moar ae8d98: OUTPUT«9999␤4482␤2594␤8921␤5039␤2903␤6012␤60␤6778␤3387␤5925␤3242␤8877␤3292␤3714␤2089␤7359␤647␤6966␤5101␤1989␤2561␤3830␤5191␤7647␤2820␤2700␤6385␤6487␤9585␤8853␤4382␤9834␤8348␤8204␤5710␤2419␤…»
AlexDaniel m: my @a[10000] = ^10000; say @a[*-1]; my int $x = 0; say @a.pick for ^100 # this is slow
camelia rakudo-moar ae8d98: OUTPUT«(timeout)9999␤3411␤2449␤5251␤7937␤9969␤4423␤3027␤4015␤6525␤9339␤8013␤6601␤8203␤5408␤7196␤6218␤7232␤9371␤6320␤1358␤3935␤476␤5719␤6821␤969␤4742␤5483␤6942␤2909␤1357␤7262␤1194␤1405␤6578␤8585…» 11:17
FROGGS nine / lizmat: nvm, seems like we *are* shelling out
AlexDaniel whoops, unneeded “my int $x = 0” again
FROGGS rakudo/src/core/CompUnit/PrecompilationRepository.pm:81: my $proc = run($*EXECUTABLE, $lle, "--target={$*VM.precomp-target}", "--output=$io", $path, :out);
AlexDaniel but anyway, it seems like specified type makes it slower? 11:18
size*
not type 11:19
nine FROGGS: yes, there was an attempt to change that, but it was reverted
11:19 nanis joined, uruwi_ left
jnthn AlexDaniel: Yes, adding size certainly makes things slower at present 11:20
11:20 xpen left
jnthn AlexDaniel: For no reason other than the code handling those things is completely unoptimized. 11:20
AlexDaniel jnthn: awww 11:21
nanis jnthn: Thank you for resolving RT #126881. I haven't had a chance to test yet, but it looks good.
11:21 Ven left
jnthn AlexDaniel: Well, I could work on optimizing it and we can hit xmas with a bunch of extra semantic issues instead :P 11:21
lizmat brunch& 11:22
AlexDaniel jnthn: I know
jnthn I designed it to be decidedly optimizable though :)
So, next year... )
*:)
Once we get the JIT onto those things it should look decent.
nanis Quick question: How is src/jit/emit_win32_x64.c generated? I am getting "unrecognized escape" for \j and \e right before moar.dll is linked.
jnthn nanis: haha...I wasted ages trying to deal with that :P 11:23
nanis :-)
AlexDaniel jnthn: great. Though if you have a list of things to optimize then perhaps you want this one to be a bit higher
nanis It doesn't seem to affect anything ...
jnthn nanis: It used to generate a thousand of those warnings. I managed to wedge in a pragma to turn them off, but you couldn't get it in early enough to stop the first ones
AlexDaniel jnthn: I have never seen anything being that slow, even on 32-bit…
jnthn nanis: No, it doesn't affect anything. It's really silly. dynasm emits #line directives in the code it generates 11:24
nanis: And it points to the source file, which on Windows contains \s in the paths
El_Che m: my $proc = run, 'false', :out; say $proc.exitcode
camelia rakudo-moar ae8d98: OUTPUT«[DISLOCATED MESSAGE] Useless use of Pair symbol in sink context␤[DISLOCATED MESSAGE] Useless use of Pair symbol in sink context␤WARNINGS for /tmp/Eb1reewagS:␤Useless use of constant string "false" in sink context (lines 1, 1)␤run is disallowed in r…»
El_Che m: my $proc = run 'false', :out; say $proc.exitcode 11:25
camelia rakudo-moar ae8d98: OUTPUT«run is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:1␤ in sub run at src/RESTRICTED.setting:14␤ in block <unit> at /tmp/qUCFxH5DGR:1␤␤»
jnthn nanis: And then the preprocessor directive thinks they're escape sequences.
AlexDaniel dislocated message? :)
El_Che ok, anyway: the output is 0
AlexDaniel El_Che: there's a bug report for that
El_Che proc.exitcode seems always be zero even when errors occurs
jnthn nanis: We could probably hack up dynasm to substitute the \ for / or so :)
nanis +jnthn thank you for the explanation
El_Che ah ok
AlexDaniel: thx
AlexDaniel El_Che: you have to read the stdout fully to make it work
and perhaps close it? Let's try to find the report… 11:26
El_Che AlexDaniel: I do a $proc.out.slurp-rest before doing the check on the exitcode. Still 0 11:27
AlexDaniel El_Che: rt.perl.org/Public/Bug/Display.html?id=126561
jnthn AlexDaniel: Everything used to be so slow, you just joined the party too late ;-)
AlexDaniel rt.perl.org/Public/Bug/Display.html?id=125757
jnthn: nah, I've tried perl6 several times before I “joined”
basically it was all about “uh, this sounds pretty cool but I can't wait for so long to see any output” 11:28
jnthn :)
El_Che just it always-exit-zero before out is closed be just a bug or just I patch the doc in the meantime? 11:29
AlexDaniel but startup time is very good for quite some time now :)
jnthn Yeah, optimization is...non-trivial :)
AlexDaniel jnthn: well, er, actually startup time was the only problem for me
El_Che \o/ for startup time 11:30
startup up time is the reason I love Moo in perl5
Ulti .tell hoelzro I think there is still a little issue around Linenoise and finding its helper lib github.com/hoelzro/p6-linenoise/issues/10
yoleaux Ulti: I'll pass your message to hoelzro.
AlexDaniel El_Che: it's a bug 11:31
abraxxa jnthn: how is the bug squashing going?
11:31 koo8 joined
AlexDaniel El_Che: “Shall we attempt to make the exitcode (Int) until we got one?” – perhaps that's a good way to do it 11:31
jnthn abraxxa: A little slowly at the moment...fixing up unsinged handling, and somehow getting values vanishing... 11:32
AlexDaniel other one is to wait until it is finished, heh.
abraxxa jnthn: awesome! i need this for DBDish::Oracle
jnthn It'll be something silly...
abraxxa moritz: did you already look at my fork or are you waiting on my PR?
jnthn One of the relatively few days I have to read bytecode disassembly to figure stuff out... :) 11:33
El_Che AlexDaniel: ow. It's an ugly bug. Closing the proc throuw an exception 11:34
AlexDaniel can some body connect 125757 and 126561? That's the same issue
El_Che: what do you mean? 11:36
aahh
perl6 -e 'my $p = shell("false", :out); $p.out.close; say $p.exitcode' # that thing?
El_Che the close results in a die 11:37
11:37 kid51 joined
AlexDaniel El_Che: this… does not look nice 11:38
but maybe that's ok?
El_Che: “The spawned process exited unsuccessfully (exit code: 1)”, well, maybe it is supposed to be this way? 11:39
El_Che AlexDaniel: gist.github.com/nxadm/23c154132984dbb422fb
nine AlexDaniel: I merged the tickets 11:40
El_Che closing an out stream dies if the process has a non 0 exit status? no. That is a bug
I'll attach the example to the ticket
AlexDaniel nine: thanks 11:41
jnthn afaik, it's by design
El_Che really? 11:42
11:42 rindolf left
AlexDaniel El_Che: it sounds a bit weird, but it kinda makes sense when I think about it 11:42
jnthn (The exception bit)
AlexDaniel what I don't understand though is why is it not closed when you do .slurp-rest? 11:43
El_Che on a slightly unrelated note, when would one close $proc.out (except as a workaround for this bug)
?
jnthn When you've finished reading from it? 11:44
AlexDaniel jnthn: what about slurp-rest? 11:45
11:45 kaare_ joined
El_Che when you put in a channel or something 11:45
AlexDaniel jnthn: should it mean that I finished reading from it or not?
jnthn AlexDaniel: Doesn't close in general
El_Che going to lunch, I'll check back if we need to add the exception to the doc. I don't find it that obvious (maybe other people do) 11:46
AlexDaniel El_Che: yes, it's not obvious
jnthn AlexDaniel: With files it's possible to reach EOF, but the file is further appended to, for example.
AlexDaniel El_Che: please add it 11:47
jnthn: right
jnthn So if slurp-rest closed the file, you'd not be able to use it repeatedly in that case. 11:48
AlexDaniel what if it goes out of scope? Should it be closed automatically? 11:49
jnthn No
We don't do implicit resource management at scope exit in Perl 6; that's ref-count think.
vytas hmm.. where can i read more about garbage collection in perl6 ? 11:50
11:50 adhoc left 11:51 ellybelly joined
stmuk would an env variable to turn off precomp be easier for debugging etc I wonder? 11:52
11:52 adhoc joined
FROGGS stmuk: sounds helpful in any case 11:54
11:59 ellybelly left
nine stmuk: I'd be happy to steward a patch 11:59
11:59 ellybelly joined 12:01 virtualsue left 12:02 rindolf joined, Ven joined
jnthn vytas: Plenty of resources out there for how the JVM one works; for Moar, I did a talk on GCs that alludes to much of how the MoarVM one works: www.infoq.com/presentations/termino...-collector 12:03
Ven do we have an advent post about OO already? In a very general sense. 12:05
12:06 ellybelly left, ellybelly joined, AlexDaniel left 12:13 ellybelly left, ellybelly joined
Ven looks for .^ in the synopsis to link it 12:15
12:19 uruwi joined 12:20 nanis left, ellybelly left 12:21 ellybelly joined
Ven hm, no S99 entry for HOW? didn't we have an acronym for that? 12:23
lizmat Helping Out With ? 12:24
stmuk nine: ok I'll look 12:25
jnthn Higher Order Workings iirc :)
Ven lizmat: no, I meant as in .HOW
thanks jnthn
.oO( .^ is really a half-smiley, in the end )
12:26
12:26 ellybelly left
daxim I asked last time whether there are other pm groups doing a release/install party, anyone wants to join in? 12:27
jnthn
.oO( Do not look into MOP with remaining eye )
Ven well, I know realize my article is partly rehashing what moritz++ said in 2010... I'm gonna need to pivot a bit... 12:30
moritz Ven: I think that's fine
masak g'day, #perl6 12:33
12:33 uruwi left
lizmat masak o/ 12:33
jnthn lunch &
lizmat I'm about to make a Pair a value type if it can
(which it usually is, anyway)
Ven \o masak 12:34
lizmat this should allow bagging it, well, with Bag.new at least
12:34 administ1ator joined
nine daxim: it's kinda hard to sequeze in yet another party around christmas :/ 12:35
12:35 zakharyas left
Ven m: say Attribute.^attributes 12:36
camelia rakudo-moar d8f7e8: OUTPUT«Method 'gist' not found for invocant of class 'BOOTSTRAPATTR'␤ in block <unit> at /tmp/jZqsWYSpLo:1␤␤»
Ven ^ is that "expected"?
dalek kudo/nom: 5f08642 | lizmat++ | src/core/Pair.pm:
Make Pair a value type when it can

In most cases, Pair's are value types. The key of a Pair is constant. The value usually is as well. You need to do special stuff like:
   a => my $ = 42
to make it changeable. Only in that case, will Pair.WHICH now revert to the old .WHICH behaviour. In any other case, it will return a value typed .WHICH, making all Pairs with a given key and value give the same .WHICH value. Making them useable in Sets, Bags and Mixes, and have them usable as a key in a typed hash.
12:38
12:38 nige1 joined
lizmat $ 6 '(a => 42).WHICH.say' 12:38
Pair|Str|a|Int|42
$ 6 '(a => my $ = 42).WHICH.say'
Pair|140403211857744
this came up a few weeks ago... 12:39
Ven lizmat++ # looks really good :) 12:40
m: say (a => 1) eqv (a => 1), (a => 1) === (a => 1), (a => 1) =:= (a => 1) 12:41
camelia rakudo-moar d8f7e8: OUTPUT«TrueFalseFalse␤»
nine Definitely :)
Ven lizmat: ^ will some more of these become true, or does only `eqv` uses WHICH?
in that case... 12:42
m: say (a => 1) eqv (a => my $ = 1); # will that become False?
camelia rakudo-moar d8f7e8: OUTPUT«True␤»
lizmat no, eqv doesn't used that 12:43
=== uses .WHICH
$ 6 'say (a => 1) eqv (a => 1), (a => 1) === (a => 1), (a => 1) =:= (a => 1)'
TrueTrueFalse
Ven lizmat: so, (a => 1) === 9
lizmat ??
Ven lizmat: so, (a => 1) === (a => my $ = 1); will become False?
12:44 ellybelly joined
Ven sorry, my keyboard is not playing nice. 12:44
lizmat Ven: it will *remain* False
Ven okay :). thanks
lizmat m: say (a => 1) === (a => 1) # will become True 12:45
camelia rakudo-moar d8f7e8: OUTPUT«False␤»
Ven amazing! 12:46
masak astounding!
lizmat of course, if either the key or the value is not a value type, it doesn't work :-) 12:47
$ 6 'say (a => []).WHICH'
Pair|Str|a|Array|140721177249856
12:48 zjmarlow_ left, virtualsue joined
lizmat $ 6 'say (a => []) === (a => [])' 12:48
False
12:48 kid51 left 12:49 molaf joined 12:51 virtualsue_ joined, virtualsue left 12:52 virtualsue_ is now known as virtualsue 12:54 zjmarlow_ joined
lizmat is now looking at #126951 12:55
gfldex that's quite some bug stomping going on right now :) 12:56
lizmat just picking the ones I feel I can get an easy handle on with my flu-ridden brane 12:58
.oO( feverishly bug stomping )
12:58 lucasb joined
gfldex in that case i wish both you and rakudo to get better quickly 12:58
masak nige1++ # wordpress.com/post/perl6advent.wor...s.com/4544
13:00 zjmarlow_ left
lizmat gfldex: thank you, on behalf of us both :-) 13:01
13:02 zakharyas joined
Ven My article is getting kinda long, mmh. 13:03
gfldex Ven: please keep going, it's getting dark early anyways
nine Ven: worse things could happen than a good book an a Perl 6 related topic... 13:05
lizmat on the subject of Perl 6 books 13:06
I got quite inspired by Dave Cross' talk at LPW about self-publishing based on pod
perhaps we don't need just one very large Perl 6 book, but many, many small e-books 13:07
that could be published on Lulu or some other PrinitingOnDemand service
nine I like that idea :) 13:08
Ven I think I'm done with the article: perl6advent.wordpress.com/?p=4508&...frame=true I'd appreciate to get some feedback. moritz maybe?
gfldex Ven: s/, and ././ 13:11
lizmat Ven: perhaps "Type objects really are… Objects" "Type objects really are… instantiated Objects of a meta-class" ? 13:12
Ven lizmat: hm, but then, maybe I need to move the part about the MOP higher
lizmat perhaps...
not sure...
but in a talk about objects, saying that something is an object, doesn't say much. At that point, at least
Ven okay, I changed that part. 13:13
lizmat Ven: changed my mind: maybe say something like "... Objects, like any other Object" 13:14
keep it more open at that point
Ven changes
gfldex Ven: it would be nice if you could turn <i>Nil</i> to a link to doc.perl6.org/type/Nil 13:18
Ven done :) 13:19
dalek ecs: e40b63c | lizmat++ | S99-glossary.pod:
Add HOW lemma
13:20
hankache is MadcapJake around? 13:24
13:24 robertle joined, zjmarlow_ joined
masak qs 13:24
(Noa says hi) :) 13:25
lizmat Noa o/
masak tfg vc 13:26
mmmmmmmmb,m bmb,bbbbyd fb h nnhgnbbbnbbb
dalek kudo/nom: 2a2e9a8 | lizmat++ | src/core/Exception.pm:
Fix warning during optimization of core settings
13:26 smls joined
lizmat Noa: kjasho8y;oi/2khlapmasl ndopiopaLM SMLKH LLKJLKSMN mlkjldn aiohsp90-9n dkjwlhklasihd !!! 13:26
masak :) 13:27
smls lizmat++ # Make Pair a value type when it can
hankache hi Noa :)
smls It's nice to be able to cache compound value types like that in a Set
masak <noa> *happy gurgle*
lizmat smls: yup, that's the idea :-) 13:28
13:28 pmurias joined
smls lizmat: Any reason why List doesn't do that too? 13:28
Like pre-GLR Parcel did
I guess the infinite/lazy stuff would make it difficult?
jnthn smls: I think there was one, but I forgot it :)
I know it came up before
Quite possibly that, yes 13:29
The key thing about type objects is they have the same type as their instances
lizmat well, for one, it would need to reify until something is found that is a container, or not a value type
jnthn Which could mean reifying something infinite 13:30
lizmat and we cannot really easily determine if something is a value type
13:30 zjmarlow_ left
lizmat from the .WHICH value, that is 13:30
jnthn Also then Array would have to override it to do...what Any does
Which is liskovly very dubious
lizmat well, one could argue that List should be a subclass of Array instead of the other way around :-) 13:31
smls But you can't use List anywhere you can use Array. 13:32
e.g. in &push
jnthn Inheritance kinda sucks ;) 13:33
lizmat sometimes I wonder whether we need inheritance at all, it's so 1970's :-)
jnthn Need? No, but being too counter-cultural doesn't always work out so well for adoption. 13:34
13:35 rurban left
jnthn We did at least avoid having an equivalent of Java/C#'s protected scoping though :) 13:36
lizmat :-)
jnthn Or generally having anything else that privileges being a subclass.
rindolf masak: who is Noa? 13:38
Ven the son, I'd say
lizmat masak's first fork ?
:-)
hankache anyone tried this madcapjake.github.io/2015/perl6-file-icons/ ?
13:40 Actualeyes left
jnthn t\04-nativecall\15-rw-args.t (Wstat: 0 Tests: 12 Failed: 0) TODO passed: 7 13:41
ooh :)
masak rindolf: the clue is that most of the things I say on this channel are more coherent than "qs" and "tfg vc" ;) 13:44
(not all things, but most things)
rindolf masak: pardon? 13:45
masak: what if your son types /exec rm -fr ~ ? ;-) 13:46
13:46 zakharyas left
huf apparently he's at the age where he's indistinguishable from a cat... :D 13:47
13:48 zakharyas joined
rindolf Is Noa the local equivalent of "Noah"? 13:48
dalek kudo/nom: ee63388 | lizmat++ | src/core/Exception.pm:
Initialize P6EX HLL symbol directly

Seems to shave off 1 msec from bare startup
rindolf There's also en.wikipedia.org/wiki/Noa_%28name%29 13:49
13:49 virtualsue left
dalek kudo/nom: c825e5b | lizmat++ | src/core/Temporal.pm:
Fix another warning during optimization of settings
13:51
13:52 abraxxa left
lizmat and with that, the energy gives out again :-( 13:52
nap&
13:54 zjmarlow_ joined 13:57 pierre-v_ left, Actualeyes joined 13:58 uruwi joined
lucasb most objects have a sensible default value for .new; only Complex.new and Date.new don't have. seems arbitrary... Can this be changed? 13:58
Juerd m: Date.new.say
camelia rakudo-moar 2a2e9a: OUTPUT«Cannot make a Date object using .new␤ in block <unit> at /tmp/og534IucK4:1␤␤Actually thrown at:␤ in block <unit> at /tmp/og534IucK4:1␤␤»
Juerd That's better than it was before, i.e. christmas. 13:59
lucasb: What sensible default would you suggest for Complex?
lucasb Juerd: yes, I agree this error is better than a christmas date
Complex.new => 0+0i
Date.new => Date.today
13:59 rurban joined
Juerd m: Int.new.say 13:59
camelia rakudo-moar 2a2e9a: OUTPUT«0␤»
Juerd I guess it would make sense. 14:00
14:00 zjmarlow_ left
masak rindolf: while theoretically possible that Noa will carry out an arbitrary code execution at this point... I'm not holding my breath :) 14:00
Juerd I'm not sure about Date.today, though. I've always thought it was a bit weird that a .new is time (well, date) dependent in Javascript
dalek href="https://modules.perl6.org:">modules.perl6.org: dd09994 | (Zoffix Znet)++ | README.md:
Mention commit triggered full rebuild

Since we cache some data, some commits would require refreshing those caches. This can be accomplished by including [REBUILD] in the title of the commit
Juerd Date.today is extremely clear, everybody can guess what it means.
But Date.new isn't so obvious
rindolf masak: heh, heh.
Juerd m: DateTime.new.say 14:01
camelia rakudo-moar 2a2e9a: OUTPUT«Required named parameter 'year' is missing for DateTime.new()␤ in block <unit> at /tmp/jRHrlhiufn:1␤␤Actually thrown at:␤ in block <unit> at /tmp/jRHrlhiufn:1␤␤»
masak rindolf: we considered having an "h" in the name, but I went with the simpler spelling. the origin is still the Hebrew "Noach"
Juerd m: Instant.new.say
camelia rakudo-moar 2a2e9a: OUTPUT«Cannot make a Instant object using .new␤ in block <unit> at /tmp/FF9DexwWWB:1␤␤»
rindolf masak: OK.
Juerd At least it's consistent.
I agree about Complex.new though!
lucasb Juerd: ok, thanks for commenting 14:02
14:02 zjmarlow_ joined
smls Date.today is much more clear than than Date.new, and just 2 more letters to type. 14:04
So Date.new being disallowed makes sense to me.
Juerd I guess "new Date" returning some kind of today-ish value stems from the fact that many languages only have the 'new' constructor. 14:05
smls btw. I think the date and time classes in Perl 6 are really nice, in general. 14:07
Juerd Agreed
smls kept simple (non timezone-related over-engineering), but useful
s/non/no/
Juerd I was wondering, though. Instant + Instant being disallowed makes it harder to create an average of Instants. But that may be a completely contrived use case because I can't think of when you'd actually need *that* instead of an average of durations. 14:08
nine run_alt problem is already in commit 82f1062825a3343c9d9bc074d602f42a4911a6f3 14:09
Juerd m: say [+] now
camelia rakudo-moar 2a2e9a: OUTPUT«Instant:1450447804.583077␤»
Juerd m: say [+] now, now
camelia rakudo-moar 2a2e9a: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Instant:D $a, Real:D $b)␤:(Real:D $a, Instant:D $b)␤ in block <unit> at /tmp/zmLgSuQeyj:1␤␤»
Juerd The error message should perhaps be more specific
dalek href="https://modules.perl6.org:">modules.perl6.org: 5ea5d5d | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder (3 files):
[REBUILD] Honor FULL_REBUILD env var for commit-triggered cache invalidation
14:10
Juerd But that'd mean having a candidate just for the error message. Perhaps not a great idea.
14:11 andreoss joined
smls m: my ($a, $b) = now, now + 1000; my $c = $a + ($b - $a)/2; say .DateTime for $a, $c, $b 14:11
camelia rakudo-moar c825e5: OUTPUT«2015-12-18T14:11:42.274715Z␤2015-12-18T14:20:02.275837Z␤2015-12-18T14:28:22.276958Z␤»
Juerd Heh 14:12
14:13 eyck left
dalek href="https://modules.perl6.org:">modules.perl6.org: 6f46411 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/TravisCI.pm:
unless is the root of all evil
14:14
jnthn tends to dislike candidates just for error reporting, since they break using introspection find out "can I do this"
14:15 eyck joined, adhoc left
Juerd jnthn: We clearly need secret candidates ;) 14:16
Let's build a language full of easter eggs
smls "is error" routine trait?
Hm, but can traits be applied to a single candidate?
14:17 eyck left, adhoc joined, eyck joined
Ven if "is error" trait becomes a thing, we could probably deprecate hidden-from-USAGE I made moritz++ add for my advent last year :-) 14:17
fwiw, "is error" trait reminds me of c++-style "= delete;". could be useful to disallow some special cases, i.e. multi foo(Str() $a){}; multi foo(Int) is error {}; # anything that converts to Str *EXCEPT* Int 14:19
jnthn smls: traits always apply to the single candidate unless they try to do otherwise
smls ok 14:20
On the topic of routine traits, I implemented an "is arrayfunction" trait for fun: www.reddit.com/r/dailyprogrammer/c...ny/cxrw79e 14:22
in case anyone is inetrested
robertle how do i get the "xmas rt list"? is there a special tag/status/title string? 14:23
smls lets you use Perl 6 more like an array language (APL / J / MatLab ...)
Ven smls++ # embracing our APL and J overlords :D
smls: FWIW, can you force the dimension, like " in J and [] in APL? 14:24
14:25 pierre-vigier joined
smls Ven: I don't actually speak J or APL. I just followed the task description to implement that specific thing (automatically generalizing functions for higher-dimension array arguments)... ;) 14:25
so, probably not
Ven smls: ah, okay :). Well, maybe give it a (small) go someday, it's a lot of fun 14:26
Skarsnik hm is that normal? t/01-sanity/55-use-trace.t ........... Dubious, test returned 1 (wstat 256, 0x100)
lucasb robertle: is this the you are looking for? rt.perl.org/Public/Bug/Display.html?id=123766
14:27 TEttinger left
robertle absolutely! I thought there would be a tag on the individual bugs rather than a meta, but couldn't find it... thanks 14:28
grondilu once thought a J slang would be cool 14:31
14:32 nige1 left, nige1 joined 14:33 sammers left
smls Ven: Yeah, before doing that challenge I had always put off J as "a silly language for winning golf competitions", but the whole model behind it seems pretty powerful, and useful for certain kinds of tasks. 14:35
14:35 ellybelly left
pmurias Juerd: re Date.new, I think JavaScript is the biggest reason why people expect Date.new to return today 14:36
Ven pmurias: ruby too
Skarsnik what. why 'use NativeCall :test;' trigger a Useless use of ":test" in sink context (line 3)
Ven smls: I believe we have a J-er here... I'm not sure who that was :). Anyway, allows you to write cool programs, like ([`({.,([:":#-2:),{:)@.(#>3:)) 'smls'
Juerd pmurias: Possibly 14:38
stmuk I think the GSR is still giving false positives I saw one earlier but couldn't easily reproduce
Skarsnik Date.new could be epoc or something silly like this
andreoss masak: 'else if' should be done in a way that 'else' might be followed by either block or another Q::Statement::If. But the whole Q::Statement::If might contain several 'else if' itself (much like 'elsif'). Wouldn't the later be better for performance? 14:39
Juerd Skarsnik: There are too many epochs to choose from 14:40
Skarsnik Yes but today for me is really weird
it's not really a 'zero' date
why not the date the process was started? x)
Juerd It is if yesterday is -1
14:41 Actualeyes left, Actualeyes joined
Juerd Skarsnik: Because we already have a perfectly composed way to say that: INIT now 14:41
dalek href="https://modules.perl6.org:">modules.perl6.org: 41570c7 | (Zoffix Znet)++ | / (2 files):
Fixes #44 Race Condition with Travis Build Info

We"ll simply continue fetching travis info for 24hrs after the last commit to the repo. The 24hr period gives enough time for both Travis status to update for dists whose travis runs forever and for our builder to run the build cycle (which will take forever when we"ll get more dists).
14:41 raiph joined
Juerd notices 'koalatee' on modules and lols 14:42
dalek c: dc670e3 | (Zoffix Znet)++ | doc/Language/classtut.pod:
Fixes #249 incorrect variable name
14:43
14:45 sammers joined
Skarsnik why 007 get 80% and everything else 100% x) 14:46
14:46 cdg joined
nine It very much appears like the run_alt problem has not been in commit 87288285f6f398ec7cba0900312ced4b580d79ed (Sat Nov 14) 14:46
Juerd Skarsnik: Yeah, my MQTT::Client has 80% too and I'd like to talk to the person responsible for this!!11 14:47
Oh, never mind. I forgot I don't really care about kwalitee, so I probably shouldn't care about koalatee either. :)
14:47 ZoffixW joined
nine Do we know of modules besides Text::CSV and HTTP::UserAgent that expose the run_alt problem? 14:48
Juerd Ah, speaki of the devil!
s/speaki/speak/
14:48 skids joined
Juerd Hi ZoffixW 14:48
14:49 administ1ator left, administrator joined 14:50 administrator is now known as Guest35673
ZoffixW Juerd, yo 14:50
Juerd ZoffixW: juerd.nl/i/85f6f9110ca5130504def2ac1d75c8fe.png :) 14:51
stmuk nine: also rt.perl.org/Ticket/Display.html?id=126832
ZoffixW Skarsnik, the dump tells me it's missing a readme file, which might be a bug somewhere, 'cause the file is there 14:53
I plan to add detailed Koalatee failures page on the weekend
Juerd, same reason as above, I presume 14:55
14:55 patrickz joined
Juerd ZoffixW: I haz README.md 14:55
ZoffixW Yeah. It's a bug 14:56
Juerd ZoffixW: It's okay though, I'll just watch the failures page when it's there :)
ZoffixW I'm surprise tests didn't catch it :(
oh, god, this is hilarious
Instead of "blob" I typed "blog" in the line that looks for readmees :) 14:57
nine commit 4c07a1c0809f654db12d9835fb43a8b45e35d50e (Nov 18) seems to be fine still
dalek p/js-cps: c762f2a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
[js] for op works in CPS mode
15:01
p/js-cps: 14b8a63 | (Pawel Murias)++ | src/vm/js/nqp-runtime/core.js:
[js] Hack to make nqp::istype([], NQPArray) work.
p/js-cps: e6f3bc6 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
[js] Fix CPS bug.
pmurias the gather/take example from t/moar/01-continuations.t test works :)
jnthn pmurias: nice :) 15:02
15:03 regreg joined 15:05 rjbs joined
Ven pmurias++ 15:05
nine With commit e19f2eba0ead3 from Nov 21 Text::CSV still passes its tests while one test in HTTP::UserAgent shows the run_alt problem
15:08 zjmarlow_ left
dalek p: 7818504 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for unsigned bits.
15:09
p: a31a3d0 | jnthn++ | src/vm/moar/QAST/QAST (2 files):
Scatter unsigned int handling about.

This probably doesn't cover everything, but it's a significant step forward from before, where we essentially ignored it entirely for locals and lexicals.
kudo/nom: c040a07 | jnthn++ | / (3 files):
Improve unsigned int support.

We pay attention to unsignedness in lexicals now, or at least make a far better job of it than we used to.
15:12
kudo/nom: 48f4c14 | jnthn++ | t/04-nativecall/15-rw-args.t:
Untodo an unsigned int test.
timotimo o/
15:14 uruwi left 15:15 hankache left
Ven o/ timotimo 15:15
jnthn: that'll have to be taught to other backends as well, right? 15:18
15:18 rurban_ left
grondilu does that mean that arithmetics in uint32 will be modulo 2**32? That could be useful for the Digest library. 15:18
jnthn Yeah
grondilu nice 15:19
jnthn Well]
We compute at full width
It's only the storage that is sized
15:19 sammers left
timotimo Ven: why does it say "int8" in your advent post where you really mean int64? 15:20
Ven timotimo: I probably started with int8 :)
dalek ast: 08952f6 | jnthn++ | S02-types/native.t:
Tests for RT #124294.
Ven timotimo++ # checking
timotimo: If you don't want such silly mistakes in tomorrow's articles, please proof-read me: perl6advent.wordpress.com/?p=4508&...frame=true 15:21
timotimo: (updated)
ZoffixW m: my int8 $x = 42; say $x
camelia rakudo-moar c825e5: OUTPUT«42␤»
ZoffixW m: my int3 $x = 42; say $x
camelia rakudo-moar c825e5: OUTPUT«5===SORRY!5===␤Type 'int3' is not declared. Did you mean any of these?␤ int32␤ int␤ Int␤ int8␤␤at /tmp/fK8IWEa1V6:1␤------> 3my int37⏏5 $x = 42; say $x␤Malformed my␤at /tmp/fK8IWEa1V6:1␤------> 3my7⏏5 int3 $…»
ZoffixW m: my int4 $x = 42; say $x
camelia rakudo-moar c825e5: OUTPUT«5===SORRY!5===␤Type 'int4' is not declared. Did you mean any of these?␤ int␤ Int␤ int8␤ int64␤␤at /tmp/8KjyQc05Gq:1␤------> 3my int47⏏5 $x = 42; say $x␤Malformed my␤at /tmp/8KjyQc05Gq:1␤------> 3my7⏏5 int4 $…»
jnthn ZoffixW: Those would be sub-byte :) 15:22
ZoffixW: Some day we'll do 'em, but not for now.
15:22 administrator joined
jnthn (They have consequences in a whole load of places) 15:22
15:22 Guest35673 left
ZoffixW Ah, right, these are bits 15:22
m: my int256 $x = 42; say $x 15:23
camelia rakudo-moar c825e5: OUTPUT«5===SORRY!5===␤Type 'int256' is not declared. Did you mean 'int16'?␤at /tmp/Q52hvXa8xu:1␤------> 3my int2567⏏5 $x = 42; say $x␤Malformed my␤at /tmp/Q52hvXa8xu:1␤------> 3my7⏏5 int256 $x = 42; say $x␤␤»
15:23 administrator is now known as Guest19063
jnthn heh, you have int64, int32, int16, and int8 :) 15:23
and uint32, uint16, etc.
ZoffixW *insert "I don't know what I'm doing" meme*
jnthn i0.kym-cdn.com/photos/images/newsfe...65/b7e.jpg 15:24
ZoffixW Thanks :D
15:24 zjmarlow_ joined
Ven well, you can use `int1 @a[4]` :P 15:24
jnthn Ven: Not yet you can't :)
But yeah, bit arrays will be cute once we have 'em :) 15:25
dalek href="https://modules.perl6.org:">modules.perl6.org: 34a8002 | (Zoffix Znet)++ | / (3 files):
[REBUILD] Fix incorrect detection of has_readme metric

  Skarsnik++ for noticing the issue
15:26 rindolf left 15:27 pmurias_ joined
dalek href="https://modules.perl6.org:">modules.perl6.org: cd10dd6 | (Zoffix Znet)++ | t/02-db-builder/02-github-source-and-source-base-class.t:
Remove spurious pod markers
15:28
15:30 pmurias left, zjmarlow_ left 15:31 thundergnat joined
Ven aw jnthn :( 15:32
15:32 pmurias_ is now known as pmurias
Ven well, there's a lot of time anyway. and today's post is published already :P 15:32
15:32 sammers joined 15:33 khw joined
andreoss masak: shouldn't we use Q::Literal::None instead of Val::None? 15:35
thundergnat Is there some sekret setting to make the travis status update on the modules page?
nine According to git bisect the run_alt problem appeared with commit ae08091a8903442e126f4baa4ae426ec13a77545 which is totally bogus. This confirms my suspision that it has been with us for quite a long while but only surfaced recently.
thundergnat I (thought) I set up travis for Sort-Naturally 2 weeks ago but it still shows up as "unknown" in the listing. 15:36
IF I click on the unknown block, it shows that travis compiled ok...
15:36 aindilis left
ZoffixW thundergnat, I believe that's exactly what I fixed an hour ago :) github.com/perl6/modules.perl6.org...8cc2d4e1e3 15:37
thundergnat, it should become updated the next time DB rebuilds in ~0–2 hours
thundergnat Whoa! that was fast! :)
Bug fixes before I request them 15:38
ZoffixW :)
15:38 nige1 left
thundergnat ZoffixW++ :-) (and everyone else working on Perl6)++ 15:39
15:40 neuhaus joined
neuhaus Is there a wiki software written in perl6 that is ready to use? 15:40
ZoffixW neuhaus, I see one result on the modules.perl6.org , but I don't know how "ready to use" it is: modules.perl6.org/#q=wiki 15:41
neuhaus yeah I saw that one
but I figured it's just a wiki engine (?)
ZoffixW neuhaus, then I doubt there's an actual "wiki software," seeing as we're having our first stable release a week in the future :) 15:42
Hasn't been built yet :)
pmurias there use to be a Perl 6 wiki called November ages ago 15:45
ZoffixW Yeah, that's the 1 search result showing up
15:47 ZoffixW left, sno left
jdv79 whatsup with hack? 15:48
15:48 rindolf joined 15:54 zjmarlow_ joined 15:56 Ven left 16:00 zjmarlow_ left 16:04 neuhaus left, nige1 joined, xfix joined
TimToady lizmat: btw, you can also fix that by saying "Nil while ..." 16:06
in fact, I had it fixed that way last night but forgot to check it in, so we collided :) 16:07
16:07 _nadim joined
TimToady and on the other one I just deleted the 0 16:07
but your fixes are fine too
16:08 DrParis left, n0tjack joined 16:09 DrParis joined, nadim left, DrParis is now known as Guest89009, FROGGS left
jnthn o/ TimToady 16:10
TimToady m: f(); sub f() { say callframe().line;␤␤␤␤sub foo { 42 } } 16:11
camelia rakudo-moar 48f4c1: OUTPUT«5␤»
TimToady m: f(); sub f() { say callframe().line;␤␤sub foo { 42 } }
camelia rakudo-moar 48f4c1: OUTPUT«3␤»
16:11 Ven joined
grondilu m: say my uint32 $ = 2**32 + 1; 16:12
camelia rakudo-moar 48f4c1: OUTPUT«1␤»
TimToady here's a kind of minimal test case for the lines thing
the presence of a block later in the the list clobbers the earlier callframe and points it at the later block
16:12 domidumont left
TimToady so your line number there depends on how many newlines are between the callframe call and the block 16:13
m: f(); sub f() { say callframe().line;␤␤␤␤{ 42 } }
camelia rakudo-moar 48f4c1: OUTPUT«5␤»
TimToady and it's pretty much any block
m: f(); sub f() { say callframe().line;␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤{ 42 } }
camelia rakudo-moar 48f4c1: OUTPUT«49␤»
16:13 RabidGravy joined
dalek kudo/nom: c31190e | jnthn++ | src/Perl6/ (2 files):
Make sure compose-time errors get line/file.
16:14
TimToady so I daresay it's quite likely something I did :)
16:17 robertle left
TimToady maybe I should learn how to bisect one of these years... 16:18
Ven
.oO( You're never old enough for Git )
16:19
16:19 virtualsue joined, dwarring left
TimToady star-m: f(); sub f() { say callframe().line;␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤{ 42 } } 16:21
camelia star-m 2015.09: OUTPUT«1␤»
TimToady well, there's a data point :)
16:22 rurban left
dalek ast: 5a0c386 | jnthn++ | S14-roles/composition.t:
Some tests on roles + handles.

Covers RT #64766, which was filed long ago and had somewhat bogus expectations. We should at least test how things are meant to work, though.
16:23
16:23 _nadim left, _nadim joined 16:24 zjmarlow_ joined 16:27 ZoffixW joined, pat_js joined 16:30 zjmarlow_ left
ZoffixW This is weird... int64 array takes less space than int32 array? gist.github.com/zoffixznet/22a3979981c1765d9657 16:33
It's a Linux b-webdev-dt 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux
jdv79 is updatelist.pl used to gen projects.json?
ZoffixW And it actually uses 3705032704 for plain' "int" too 16:35
16:36 virtualsue left, virtualsue_ joined, virtualsue_ is now known as virtualsue
jnthn ZoffixW: Weird. If I give it an amount it *can* allocate, and look at the memory use, then it's much less for the int32 16:37
16:37 nige1 left
vytas shouldn't .^methods include WHAT and WHICH ? 16:37
ZoffixW m: 3705032704 / 8
camelia rakudo-moar c31190: OUTPUT«WARNINGS for /tmp/Mfr5HW7OPu:␤Useless use of "/" in expression "3705032704 / 8" in sink context (line 1)␤»
ZoffixW m: say 3705032704 / 8
camelia rakudo-moar c31190: OUTPUT«463129088␤»
jnthn vytas: No, they're not methods
Well, WHICH actually is I guess
WHAT isn't
Also, by default we don't show methods in Cool/Any/Mu
16:37 Ven left
vytas sorry which is there 16:37
jnthn use :all to see those
16:38 MadcapJake joined
jnthn I think .WHAT and .WHERE and .HOW aren't methods though 16:38
ZoffixW jnthn, doesn't happen on camelia's box:
m: my int64 @foo[10000;100000]
camelia rakudo-moar c31190: OUTPUT«Memory allocation failed; could not allocate 8000000000 bytes␤»
ZoffixW m: my int32 @foo[10000;100000]
camelia rakudo-moar c31190: OUTPUT«Memory allocation failed; could not allocate 4000000000 bytes␤»
jnthn I suspect the error reporting is off 16:40
Or something like that
16:40 zakharyas left 16:41 zakharyas joined
b2gills m: subset Record of Positional where :(Int,Str); for ((5,'s'),[5,'s'],<5 5>,<5 5 5>) { say $_ ~~ Record }; my Record @a; @a.push([5,'s']) 16:41
camelia rakudo-moar c31190: OUTPUT«True␤True␤True␤False␤»
dj_goku on osx I don't get those failures that ZoffixW is getting. :D
ZoffixW dj_goku, you just have more RAM. Use larger indeces
jdv79 RabidGravy: your meta tester thing could use some more detailed field validating 16:42
like flagging a name value of Foo-Bar instead of Foo::Bar
and v1.2 instead of 1.2 for version 16:43
16:43 CQ joined
ZoffixW .tell Ven Ven++ good Advent post... After years of hearing the term I now know that REPL is not PERL spelt weirdly to name the weird code eval thing :P 16:43
yoleaux ZoffixW: I'll pass your message to Ven.
dj_goku lol
(nessus_two)johnny:corona-deploy jonathanotsuka$ perl6 -e 'my int32 @foo[100000000000]'
Killed: 9
ZoffixW heh
RabidGravy M
dj_goku I have 16GB of memory 16:44
ZoffixW dj_goku, right, your OS kills the script before it has a chance to complain that it didn't get enough RAM
JimmyZ m: my multi bar ($) { }; my sub foo () { my $q := bar($q); }; foo();
camelia rakudo-moar c31190: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZlqZfnBLAG␤Cannot use variable $q in declaration to initialize itself␤at /tmp/ZlqZfnBLAG:1␤------> 3 ($) { }; my sub foo () { my $q := bar($7⏏5q); }; foo();␤ expecting any of:␤ argumen…»
dj_goku haha yeah, it started eating swap like crazy too. 16:45
RabidGravy jdv79, I'm not sure about the version, but I'd accept a patch that had a ':strict'
16:45 hankache joined
JimmyZ m: my int32 @foo[100000000000] 16:45
camelia rakudo-moar c31190: OUTPUT«Memory allocation failed; could not allocate 400000000000 bytes␤»
dj_goku is there a way to calculated the maximum bytes that could be allocated? 16:46
ZoffixW m: say "{400000000000/1024/1024/1024} jiggabytes"
hankache MadcapJake are you here?
camelia rakudo-moar c31190: OUTPUT«372.5290298 jiggabytes␤»
dj_goku ZoffixW: jiggabytes lol
MadcapJake yep!
hankache hello :)
MadcapJake hi! 16:47
jdv79 so you want the test to only do a cursory test as it does now and dig in on a strictly'ed call?
hankache i have been trying to install the camelia icon for atom as per your blog post
and couldn't make it
jdv79 also, what is unsure about version? 16:48
afaik version are always prefixed with a v
is this not true?
MadcapJake hmm, what issue are you having? is the icon showing as a box?
hankache can you help me?
16:49 pat_js left
MadcapJake yeah sure 16:49
16:49 dwarring joined 16:50 AndyDee left
hankache when i try to add the code to styles.less and save i get the following error: variable @pane-tab-selector is undefined 16:50
ZoffixW m: use Number::Denominate; say denominate 400000000000, :set<info-1024>
camelia rakudo-moar c31190: OUTPUT«===SORRY!===␤Could not find Number::Denominate in:␤ /home/camelia/.perl6/2015.11-653-gc31190e␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6…»
hankache it says error compiling stylesheet
ZoffixW :( locally I get "372 gibibytes, 541 mebibytes, and 744 kibibytes"
MadcapJake did you `apm install file-icons`? 16:51
RabidGravy jdv79, It currently does "can be parsed as a version" , I'm not sure what does what with the value anyway
hankache MadcapJake yes
MadcapJake and default icons are showing (perl 5 python ruby etc.)
dj_goku does camelia install modules by default?
hankache MadcapJake i followed the steps listed here: madcapjake.github.io/2015/perl6-file-icons/ 16:52
MadcapJake what version of atom are you using?
ZoffixW dj_goku, no, there's a m-star: I think that has Rakudo* installed
But it should!
hankache MadcapJake 1.3.0 16:53
ZoffixW It should auto-install a bunch of Community Approved(tm) modules so that when people ask of help for some tasks, we could show the example in here instead of telling them "Use module XYZ"
dj_goku that would be cool.
MadcapJake i think i forgot something important in that post x( 16:54
dalek ecs: 1903a50 | jnthn++ | S06-routines.pod:
Bring parameter semantics in line with reality.

Besides being what is implemented, these also allow for more/better optimization (we already have optimizations that depend on them; if we took the previous semantics, things like spesh would be unable to rely supposedly readonly parameters never changing under them due to their being aliases).
16:54 zjmarlow_ joined
hankache oh 16:54
MadcapJake hankache: add these three lines: @import "packages/file-icons/styles/colors"; @import "packages/file-icons/styles/items"; @import "packages/file-icons/styles/icons"; 16:55
prior to the selector 16:56
16:56 patrickz left
hankache MadcapJake now it says: .octicon-package is undefined 16:57
jdv79 i'm fairly certain a version literal has only one format 16:58
who can help with this in META6.json is a version value of 1.2 valid? or must it be v1.2?
m: my $ver = v1.2; say $ver.perl 16:59
camelia rakudo-moar c31190: OUTPUT«Version.new('1.2')␤»
jdv79 m: my $ver = 1.2; say $ver.perl
camelia rakudo-moar c31190: OUTPUT«1.2␤»
Skarsnik pretty sure nothing use the version in the file? x)
jdv79 m: my $ver = 1.2.3; say $ver.perl
camelia rakudo-moar c31190: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OPs2GxyKFA␤Malformed postfix call␤at /tmp/OPs2GxyKFA:1␤------> 3my $ver = 1.2.7⏏053; say $ver.perl␤»
jdv79 Skarsnik: does that mean it should be wrong? :) 17:00
17:00 zjmarlow_ left
jnthn TimToady: How much do you want rt.perl.org/Ticket/Display.html?id=78676 dealing with pre-xmas? 17:00
Skarsnik when you find out, add it to Test::META ?x)
MadcapJake hankache: .octicon-package { content: "\f0c4" }
17:00 andreoss left
MadcapJake that's what I get for naming things like they are named in the package :P thought that was included OOB 17:01
i'm updating my post now, sorry hankache!
17:01 mspo joined
hankache MadcapJake ok I was able to save, but icons are showing as a empty square 17:02
MadcapJake hmm
17:03 Begi joined
MadcapJake hankache: all of them? 17:03
nine dj_goku: patches welcome ;)
hankache MadcapJake no worries dear, i like your what you did: perl6-fe and now icons for atom 17:04
MadcapJake original ones are working, just perl6 files are not
ugexe Version still needs work. zef has a subroutine for cleaning the version string and normalizing it so version can properly be compared, and its not pretty
lucasb m: /o/ 17:05
camelia rakudo-moar c31190: OUTPUT«getlexrelcaller needs a context␤ in block <unit> at /tmp/vYTo2XTzXk:1␤␤»
17:05 Begi2 joined, Guest19063 left
jdv79 ugexe: what specifically do you mean? The Version class needs fixing or the values in the wild are not valid? 17:06
lucasb lizmat: ^^ Do you think this is related to this commit? github.com/rakudo/rakudo/commit/3c...258e4fa186
hoelzro Ulti: thanks for letting me know
yoleaux 11:30Z <Ulti> hoelzro: I think there is still a little issue around Linenoise and finding its helper lib github.com/hoelzro/p6-linenoise/issues/10
hoelzro has anyone had problems with Linenoise, particularly on OS X?
17:06 administrator joined, administrator is now known as Guest9799
timotimo yo hoelzro; can you report in #moarvm about the "get stats from malloc" thing you did in the past? i'm interested in putting something like that into the profiler and i forgot what the function was called :) 17:07
17:07 Begi left
mspo m: say 1 … 5 17:07
camelia rakudo-moar c31190: OUTPUT«(1 2 3 4 5)␤»
ugexe jdv79: Version class needs fixing. for example: `Version.new("v1.0")` gives you `vv1.0`. nor is there a good way to compare 2 version strings (otherwise you are just getting the longer string)
timotimo ugexe: why isn't version vv1.0 valid? 17:08
what if my versioning scheme begings with letters?
ugexe im not saying its not valid
timotimo va1.0, vb1.0, vc1.0, ... vv1.0 :)
hoelzro timotimo: sure thing!
timotimo thanks :)
AFK for a bit :)
vytas in perl6 does it always exist with 1 on error? I am trying to distinguish errors
ugexe but its not exactly intuitive 17:09
vytas exits*
nine hoelzro: I changed panda to no longer compile into blib yesterday
probably related
jnthn vytas: Yes, 1...unless something seriously goes wrong, like SIGSEGV :)
hoelzro hmm
I just built on Arch, that works fine 17:10
and I have to re-test on Windows tomorrow or Sunday
ugexe if you end up with a "v1.0" you dont know if the string was generated by Version.new or if its the literal string in many cases
dalek p/js-cps: 6a621fa | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
[js] Avoid generating a CPS/direct version for immediate blocks when it's not needed.
ilmari vytas: or unless you call exit with an epxlicit value, of course
17:11 regreg left
jdv79 timotimo has a good point. so that's why versions must begin with v. 17:11
vytas thanks jnthn++ ilmari++ :) by the way, great talk on GC jnthn.
hoelzro would someone mind trying out Linenoise on OS X, see if it works?
jdv79 timotimo: thanks 17:12
17:12 vividsnow left
MadcapJake hankache: try this: `sed -i "s|/home/jrusso|$HOME|" ~/.atom/stylesheets/camelia/style.css` 17:12
17:12 vividsnow joined
RabidGravy ugexe, jdv79, I've actually mad a small hack in the META parsing thingy to remove any leading "v" from the parts of the resulting version obect, so "v0.1" abd "0.1" end up the ssame 17:13
MadcapJake hopes he won't get beatup for posting a sed command ;)
ugexe RabidGravy: thats what i did as well 17:14
hankache MadcapJake: Working now!!
MadcapJake thanks a lot
ugexe having no leading 'v' is the most sane option for a literal string
MadcapJake hankache: awesome! I'll update my blog post accordingly.
hankache MadcapJake++
MadcapJake hankache: no problem! glad it worked!
RabidGravy ugexe++ # great minds and all
hankache MadcapJake yes, i have a fresh installed atom so the steps i did should be the same for anyone new 17:15
jdv79 what?
MadcapJake hankache: cool, I've been fudging with my stylesheet for at least a year so I'm glad it wasn't something too difficult to replicate 17:16
jdv79 its not a string. its a version.
ugexe but somtimes you have to pass the version as a string
jdv79 and how is it better to use the v-less form? i guess i'm just not getting it. 17:17
ugexe in those cases you no longer know if the 'v' was added by Version or is part of the literal string
17:18 koo8 left
jdv79 but if there was only one valid form then you do know. always string the v off. 17:18
17:18 mprelude joined
jdv79 s/string/strip/ 17:18
RabidGravy jdv79, JSON doesn't know anything about Perl versions 17:19
hankache MadcapJake would you consider submitting a PR for inclusion in the original project?
jdv79 i realize that but why have 2 forms?
so a user has to know in META6.json, for instance, its 1.2.3 but in a use statement its v1.2.3. 17:20
TimToady jnthn: well, it's not like they'll mistake the absence of it for a feature, otoh allowing targeted attributes might reduce the carping about interface consistency; otgh most of the carping on that is outside of constructors anyway, so it's kind of a wash
MadcapJake hankache: original project? 17:21
RabidGravy jdv79, does putting "1.2.3" in the META file stop the module getting installed now?
17:21 pat_js joined
TimToady jnthn: obviously we've survived without it up till now 17:21
hankache MadcapJake file-icons
TimToady I suspect we have more important fish to fry before xmas
17:22 pierre-vigier left
jdv79 no. is that the only criteria we should use? 17:22
MadcapJake hankache: oh, all of their file-icons are from font packs. I think the first step is get a real small-form camelia icon included in font-awesome or devicons
hankache MadcapJake indeed you're right 17:23
17:24 zjmarlow_ joined
hankache MadcapJake i am using perl6-fe (great job btw), how do i enable fira-code ligatures? 17:24
ugexe i would point to timotimos example again. what if the version has to be passed as a string more than once? you now dont know if `vvv1.0` is literal string `vvv1.0` or if it needs another `v` prefixed 17:25
MadcapJake hankache: add this to your stylesheet: atom-text-editor { text-rendering: optimizeLegibility; } 17:26
hankache MadcapJake i disabled the original perl syntax highlighter, and perl 6-fe syntax highlighting is working fine but not the fira-code ligatures
jdv79 couldn't Version.new require and eat a leading v?
MadcapJake hankache: also to disable ligatures inside strings: atom-text-editor::shadow .string.quoted { -webkit-font-feature-settings: "liga" off, "calt" off; } 17:27
jdv79 otherwise how do i know if v1 is version 1 or version v1?
RabidGravy or the version is written in roman 17:28
ugexe without a leading v `1` is version 1 and `v1` is version v1
hankache MadcapJake atom-text-editor { text-rendering: optimizeLegibility; } did not solve it
ugexe there is no ambiguity then
jdv79 but literals still start with v
MadcapJake hankache: are you sure you're using fira code? check the `@` char, it's very distinctive 17:29
jdv79 so why not settle on one form.
MadcapJake hankache: my font family is "Fira Code" make sure there is a space
RabidGravy if that's unambiguously what "The version literal for this distribution." means, then that's fine but there doesn't appear to be consensus 17:30
masak .tell andreoss re irclog.perlgeek.de/perl6/2015-12-18#i_11740200 -- you'd think so, but a Q::Literal::None represents the literal `None` in the source text. we're using Val::None here to say "there's no `else` here at all"
yoleaux masak: I'll pass your message to andreoss.
hankache MadcapJake i am not using it, what should i do?
MadcapJake sorry for the multiple questions 17:31
:(
MadcapJake use it! :D what OS are you using?
17:31 zjmarlow_ left
hankache MadcapJake LinuxMint 17:31
MadcapJake how? 17:32
MadcapJake if you're asking how do you set atom to use a font, go to settings, and under the core settings tab, scroll down to font family
set it to "Fira Code"
linuxmint, install is just double click the file then click install (i'm pretty sure they use the same font viewer as Gnome) 17:33
if you're updating to latest Fira Code you'll need to remove the old ones first, `rm /usr/local/share/fonts/FiraCode*`
jdv79 anyone not ok with requiring Version values to always begin with a v and Version will requiring and stripping it? 17:34
17:34 yqt joined
jdv79 s/will// 17:34
hoelzro should '/my/file' ~~ :s return the size, or just whether the size is non-zero? 17:36
hankache MadcapJake thanks dear
MadcapJake hankache: no prob! it's all working then? 17:37
hankache MadcapJake not yet
17:37 pmurias left
hankache MadcapJake can't find the font 17:38
hoelzro also, there's no way of having optional resources in the META file, is there? like a .dylib on OS X, an .so on *nix, etc?
hankache MadcapJake /usr/local/share/fonts is empty
MadcapJake hankache: atom can't?
dalek kudo/nom: 71dadb8 | TimToady++ | src/Perl6/Actions.nqp:
fix line bug

This bug resulted from transforming a 'for' into a 'while' without noticing a secondary use of $_ to set the node.
MadcapJake hankache: try /usr/share/fonts or ~/.local/share/fonts 17:39
dalek href="https://modules.perl6.org:">modules.perl6.org: 362c65b | (Zoffix Znet)++ | README.md:
[REBUILD]

Null commit to trigger db rebuild
17:40
ZoffixW My bash-script-foo only looked at the most recent commit *during build launch* :( 17:41
hankache MadcapJake none of them has FiraCode
ZoffixW hankache, just get it from github.com/tonsky/FiraCode ?
MadcapJake hankache: dl it from there, then just double click the file and gnome-font-viewer should popup with a big "Install" button 17:45
i'm pretty sure those are the only three font locations (maybe ~/.fonts too?) so if it isn't in there, it hasn't been installed yet
jdv79 ugexe: so your proposal is that "v1" and v1 mean different things as a version and if someone writes "v1" and but meant v1 that's too bad? :) 17:46
17:48 zakharyas left
hoelzro alright, Linenoise issue fixed 17:49
\o/
jdv79 can someone point out how my line of reasoning on this is wrong? 17:50
17:50 vytas left
TimToady m: f(); sub f() { say callframe().line;␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤{ 42 } } 17:51
camelia rakudo-moar 71dadb: OUTPUT«1␤»
TimToady spectests much cleaner now :)
just 4 failing files, the usual suspects
17:52 pierre-vigier joined
ZoffixW TimToady++ 17:52
TimToady 3 of the 4 are flappers, or a least don't fail when tested individually 17:53
hankache MadcapJake ZoffixW i think the problem is that my desktop is cinammon and not gnome
TimToady "Sorry 'bout the mess." —Han Solo 17:54
17:54 zjmarlow_ joined
jdv79 something is fouling source-url values in projects.json. 17:54
ZoffixW jdv79, fouling up how? 17:55
hankache, "the problem" being what? Just copy the font files to ~/.fonts
lucasb m: /a/ for <a>
camelia rakudo-moar 71dadb: OUTPUT«Method '!cursor_start' not found for invocant of class 'Str'␤ in block <unit> at /tmp/V2OoaFuDV2:1␤␤»
jdv79 the end up with a trailing slash instead of a .git 17:56
ZoffixW jdv79, they're normalized to single format
jdv79 do you know how that is gend?
ZoffixW jdv79, what's the original URL?
hankache gotta run 17:57
be back later
17:57 hankache left
ZoffixW jdv79, and it's done here: github.com/perl6/ecosystem/blob/ma...ist.pl#L73 17:57
jdv79 for instance, "source-url" : "github.com/andydude/p6-c-parser.git" in META.info -> "source-url": "https:\/\/github.com\/andydude\/p6-c-parser\/" in projects.json 17:58
ZoffixW Right, that's as expected
We did it because people were using all sorts of URLs in their META, so we normalize them to single format. This way we can be sure they're handled by panda
jdv79 there are others that are not of that form though
17:59 kyclark joined
jdv79 "source-url": "git:\/\/github.com\/raydiak\/pray.git", for instance 17:59
huh
ZoffixW jdv79, Ah, right. We don't use exact same form, but we coerce some urls.. So if the above was missing .git it would be added.
If you know Perl 6, the sub I linked to above shows what's being done. 18:00
That's done the same on modules.perl6.org parser as well
jdv79 yeah, i didn't look yet
ZoffixW s/Perl 6/Perl 5/;
lucasb I don't like that there is no distinction between regex objects and the match operator. All regexes get "activated" in boolean contexts. Is that really intended?
kyclark Two questions (at least) on this: lpaste.net/147354 Is this the best way to do this? Why that last (True True True) line?
lucasb m: for <a b c d> { say so rx/a|c/ }
camelia rakudo-moar 71dadb: OUTPUT«True␤False␤True␤False␤»
mspo are there some good canonical/idiomatic modules I can study to see how they're organized?
the few I found on github were all totally different
18:01 zjmarlow_ left
xfix lucasb: Yes, if you cast a regex to a boolean, it does a match on $_. A neat shortcut for oneliners. 18:01
jdv79 what's the reasoning behind stripping .git off a https url?
xfix Because it looks prettier? It works with or without .git anyway. 18:02
ZoffixW jdv79, if you visit a .git URL it gets redirected to a .gitless version
lucasb xfix: I would have expected that 'so rx/.../' would always return True, because regex objects are always .defined 18:03
ZoffixW jdv79, and part of the "reasoning" for some of the things in that normalization routine is historical too: the options were not being handled by the back-then modules.perl6.org parser, so we normalize to the versions that it did handle
jdv79 yeah, but that is the repo url
lucasb this is a little confusing when you want to use regex objects as values and when you want to really match something
flussence lucasb: Bool::False is also .defined though
xfix lucasb: Boolean casting and definedness are two diferrent things.
ZoffixW jdv79, they both work. What's the matter what the extension is? 18:04
xfix Empty string and False are defined too.
jdv79 its not a big deal - just seems like a pure complication
xfix If you want to check if a regex is defined, perhaps actually use `.defined`?
jdv79 now i have to invert that move when i want to git fetch that url
ZoffixW jdv79, as I've said, part of the reasons for the decisions made by that routine is to preserve the old behaviour where things that didn't match the format, were simply not indexed. 18:05
flussence mspo: all I'll say is none of mine are good examples :)
mspo github.com/xfix/Acme-DSON has a lot of stuff in it 18:06
jdv79 yeah, i don't know those details and don't have time to dig.
ZoffixW jdv79, since we didn't know what was using the projects.json we normalize to the format we know works, while allowing a wider range of URLs. In the past, the ....git URL would simply be not indexed
xfix Generally speaking, Perl 5 programmer would expect a regular expression a condition to match on $_, and it doesn't appear that this shortcut is dangerous.
Fun fact: Ruby claims that only nil and false are false values, but you can write `ruby -ne 'puts $_ if /abc/'` 18:07
lucasb xfix, flussence: ok, I don't fully agree. But I'll try to always use $rx.defined when I don't want to match anything
xfix Also, this shortcut makes oneliners shorter.
jdv79 ZoffixW: what indexing process are you referring to?
ZoffixW jdv79, modules.perl6.org
jdv79, but if you have issues with the way things done, we can certainly change them
jdv79 huh. ok. i don't recall that.
lucasb xfix: In P5, when I use qr/.../, I don't expect it to match
xfix That's because in Perl 5, you have to use qr/.../ explicitly. 18:08
TimToady in grep /foo/... you are relying on this behavior
lucasb ins't rx/.../ explicit? 18:09
18:09 Actualeyes left
TimToady it's just the same as //, only you can put adverbs 18:09
both // and rx// are lazy until boolean context 18:10
this is unlikely to change any time soon 18:11
jdv79 ZoffixW: its ok. thanks.
ZoffixW jdv79, git fetch github.com/zoffixznet/perl6-Color works for me without .git :/
xfix In Perl 5, more complex programs using regular expressions in more complex ways had lots of "qr", because "m" is a default (for a good reason, because regular expression objects are truthy, and requirement of explicit matching would be annoying). In Perl 6, default is "qr" (well, "rx"), but in boolean context, it behaves like "m".
jdv79 oh... neat.
xfix Sorry, that explanation was too long.
lucasb xfix, flussence, TimToady: ok, I'll get used to it. thanks for the comments :) 18:12
18:12 cdg left
kyclark Sorry, but can someone comment on this bit? lpaste.net/147354 18:12
Just curious what that last (True True True) is
ZoffixW kyclark, MY EYES!!!
:D
Just kidding
xfix There is rarely a reason to check for regex existence, but I believe you can use :exists (for hashes) or .defined (generally).
ZoffixW kyclark, you're mapping the return value of say, which is True 18:13
kyclark Oh, of course
ZoffixW \o/
kyclark I was very surprised that the join in the map worked with both $_ and @$_. Why is that? 18:14
ZoffixW m: my $x = ('foo'),; say $x, @$x
camelia rakudo-moar 71dadb: OUTPUT«foo(foo)␤»
ZoffixW m: (zip [1..*], <Alice Bob Charlie>).map: { say join ": ", ($_, ('foo', ('bar'))) } 18:15
camelia rakudo-moar 71dadb: OUTPUT«1: Alice: foo: bar␤2: Bob: foo: bar␤3: Charlie: foo: bar␤»
ZoffixW kyclark, join seems to flatten the things to join. That's why
kyclark m: (zip [1..*], <Alice Bob Charlie>).map: { printf "%5d: %s\n", $_ } 18:16
camelia rakudo-moar 71dadb: OUTPUT« 1: Alice␤ 2: Bob␤ 3: Charlie␤»
kyclark So does printf?
mspo also good examples of using submethod BUILD 18:17
xfix kyclark: Because Perl 6 is not Perl 5. @ is not what you think it is.
18:17 cognominal left
xfix Rather, it's an operator that changes an argument into a list. 18:17
kyclark xfix: do tell. I'm eager to know.
ZoffixW m: (zip [1..*], <Alice Bob Charlie>).map: { printf "%5d: %s %s %s\n", ($_, ('foo', ('bar'))) } 18:18
camelia rakudo-moar 71dadb: OUTPUT« 1: Alice foo bar␤ 2: Bob foo bar␤ 3: Charlie foo bar␤»
ZoffixW Sure. It makes no sense for it to flatten
*NOT to flatten
xfix $, @, %, & are coercion operators.
They coerce their argument into a type (similar to +, ~, ?). 18:19
+$a coerces $a into a numeric type.
18:19 davercc` joined
ZoffixW m: my $x = 42; say $x.WHAT; say @$x.WHAT 18:20
camelia rakudo-moar 71dadb: OUTPUT«(Int)␤(List)␤»
xfix m: my $set = set "a", "b"; say $set.WHAT, %$set.WHAT; 18:21
camelia rakudo-moar 71dadb: OUTPUT«(Set)(Hash)␤»
xfix m: my $set = set "a", "b"; say $set, %$set;
camelia rakudo-moar 71dadb: OUTPUT«set(a, b)a => True, b => True␤»
18:21 richi235 joined
ZoffixW m: my $set = set "a", "b"; say $set.WHAT, %$set.WHAT, @$set.WHAT, (+$set).WHAT, (~$set).WHAT, (?$set).WHAT 18:22
camelia rakudo-moar 71dadb: OUTPUT«(Set)(Hash)(List)(Int)(Str)(Bool)␤»
18:22 davercc left 18:23 FROGGS joined
dj_goku nine: patches for camelia ? 18:23
ZoffixW m: my $set = set "a", "b"; say ?(~(+@%$set)).WHAT
camelia rakudo-moar 71dadb: OUTPUT«False␤»
ZoffixW :(
m: my $set = set "a", "b"; say (?(~(+@%$set))).WHAT
kyclark Inside my "map" the join worked on $_ as a list, but this doesn't
camelia rakudo-moar 71dadb: OUTPUT«(Bool)␤»
kyclark m: my $x = (<Alice Bob>); say join ': ', $x
camelia rakudo-moar 71dadb: OUTPUT«Alice Bob␤»
rindolf Hi all! Happy holidays.
kyclark m: my $x = (<Alice Bob>); say join ': ', @$x 18:24
camelia rakudo-moar 71dadb: OUTPUT«Alice: Bob␤»
18:24 virtualsue left, zjmarlow_ joined
ZoffixW kyclark, you were zipping 18:24
m: my $x = zip [1..*], (<Alice Bob>); say join ': ', $x
camelia rakudo-moar 71dadb: OUTPUT«1 Alice 2 Bob␤»
18:24 ollej joined
ZoffixW m: my $x = zip [1..*], (<Alice Bob>); say join ': ', @$x 18:25
camelia rakudo-moar 71dadb: OUTPUT«1: Alice: 2: Bob␤»
ZoffixW hm
Well, right, it's not each element but the whole thing
richi235 Hi, I'm maybe the 100th person asking, but I couldn't find anything on the net. When perl6 will be released this christman :). Will it be american christmas (25.12. morning) or european (24.12. evening) or will it be 25.12. evening?
18:25 yqt left
xfix richi235: It was released. 18:25
ZoffixW what
xfix, huh?
richi235 you mean the november 28th release? 18:26
ZoffixW richi235, I don't think it will be anything so specific as to match some set hour
richi235, especially since people doing said release will likely be enjoying the holiday..... 18:27
lucasb I wish it arrives *before* the 25th... at most in the 24th
dj_goku m: say Date.new('Christmas')
camelia rakudo-moar 71dadb: OUTPUT«Invalid Date string 'Christmas'; use yyyy-mm-dd instead␤ in block <unit> at /tmp/nNUxuCNt4H:1␤␤»
dj_goku m: say Date.new()
camelia rakudo-moar 71dadb: OUTPUT«Cannot make a Date object using .new␤ in block <unit> at /tmp/Ao_1q7cBlS:1␤␤Actually thrown at:␤ in block <unit> at /tmp/Ao_1q7cBlS:1␤␤»
ZoffixW I wish it arrives after Jan 7
So we'd have more time to bolt things down 18:28
dj_goku I am excited to play more over vacation starting tomorrow!
ZoffixW xfix, what did you mean by saying it was released? 18:29
richi235 I wanted to test and play around in the evening after celebrating with my familiy^^
ZoffixW richi235, you can do so even now :)
richi235 ZoffixW: so the difference between the november release and the christmas release won't be that big? 18:30
okay :)
dj_goku richi235: are you using rakudobrew?
ZoffixW richi235, oh, between november release... there lots of things that changed already. But you can use rakudobrew to brew the greatest and latest freshly squeezed from the sauce 18:31
dj_goku richi235: I usually re-install moar every morning. :D
ZoffixW heh
18:31 zjmarlow_ left
dj_goku I should probably just setup a cron. 18:31
richi235 dj_goku: nope, until now I just read a lot about perl6 and followed the advent calendar, but i haven't yet installed or tried anything
I'm on debian testing, is there a package for rakudobrew ? 18:32
dj_goku richi235: rakudobrew++
richi235: no idea.
github.com/tadzik/rakudobrew
richi235: ^^
ZoffixW richi235, here: rakudo.org/how-to-get-rakudo/ 18:33
dj_goku rakudobrew build moar && rakudobrew build-panda
ZoffixW richi235, search for "To install rakudobrew on Linux:"
18:33 andreoss joined
dj_goku richi235: learnxinyminutes.com/docs/perl6/ and perl6intro.com are a few nices references 18:34
ZoffixW m: sub term:<⊂(◉‿◉)つ> {say "join us!"}; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ;
camelia rakudo-moar 71dadb: OUTPUT«join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤»
andreoss what does Q in QAST stand for? 18:35
yoleaux 17:30Z <masak> andreoss: re irclog.perlgeek.de/perl6/2015-12-18#i_11740200 -- you'd think so, but a Q::Literal::None represents the literal `None` in the source text. we're using Val::None here to say "there's no `else` here at all"
TimToady it's just 1 more than P
Begi2 m: my $x = 5; my $y = $x * $x; say $y; #Is there an easieasy way to do X^2 ?
camelia rakudo-moar 71dadb: OUTPUT«25␤»
dj_goku hehe
18:35 virtualsue joined
TimToady m: say 5² 18:36
camelia rakudo-moar 71dadb: OUTPUT«25␤»
dj_goku I vaguelly remember what a AST is.
TimToady m: say 5 ** 2
camelia rakudo-moar 71dadb: OUTPUT«25␤»
andreoss masak: ok. Intuitively it feels the opposite
ZoffixW m: sub postfix:<⊂(◉‿◉)つ>($x) {say $x;$x}; "join us!"⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ
camelia rakudo-moar 71dadb: OUTPUT«join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤join us!␤»
ZoffixW :D 18:37
tony-o lol 18:38
ZoffixW I see in the future of Perl 6 a module that lets you write programs using nothing but various weird emoticons :D
call it... lollang 18:39
TimToady :D is a weird emoticon already, so we're partway there
andreoss masak: is it ok for 'if-else-if' being a binary tree of Q::Statement::If. or should 'else if' case be handled within one Q::Statement::If?
richi235 dj_goku: when using, rakudobrew will I get the latest development version or a in-some-way stable release?
I'm one of this stable prefering guys^^ 18:40
ZoffixW richi235, there's no stable release in existence yet :)
RabidGravy better answer
ZoffixW richi235, but you should have a working perl with rakudobrew
TimToady there is supposed to be one in a week
18:40 smls_ joined, smls left
richi235 ZoffixW: Ah well, I could have known this 18:41
TimToady but we wouldn't be thinking about releasing in a week if what we have now isn't pretty darn stable most of the time
ZoffixW is still a bit confused about lang release vs. rakudo release and what exactly are the deliverables this Christmas
18:42 Slim_ joined
richi235 hehe :) 18:42
TimToady 51k tests kind of help with that
timotimo well, currently we have some wobblyness with pre-compilation in some of our ecosystem modules
dj_goku richi235: stable is relative.
timotimo on the other hand, building a rakudo from the last release will give you incompatibility with multiple ecosystem modules that expect the new code already
nine I need an idea. Currently require "/full/path/to/Module.pm"; will only work if a FileSystem repository is in the repo-chain, i.e. when started with -Ilib or use lib "lib" or something like that. I'd like to fix that, but there doesn't seem to be a good solution. 18:43
richi235 dj_goku: that's true, the rust people labeld their release as stable a few months ago and it really isn't :p
nine Adding the functionality to Repository::Installation would work, but gives it a second, quite different job.
Adding a new repository type just for dealing with absolute paths seems excessive. 18:44
ZoffixW Given these two options, I'd go with a new repository type :/
dj_goku richi235: I only have experience with perl5, python, perl6 in that order. 18:45
jdv79 i got a maybe on getting the names cpan6 and pause6. anyone have objections to trying to get and use those names?
namely, cpan6, pause6, and metacpan6?
dj_goku .orgs I presume?
jnthn TimToady: Yeah, plus I can think of a couple of ways of implementing it, and I'm not quite happy with either, and then there's their auto-viv'ing behavior. I think we just properly reserve the syntax and leave it for later. 18:46
jdv79 domains too but just the names
jnthn TimToady: Will take care of it after nomming the rajma I've been distracting meself making :)
ZoffixW Well, as a programmer in both P5 and P6, I can right away see that using metacpan6.org and metacpan.org would annoy the hell out of me, simply because I type the first starting characters in the URL to get to the site :/
TimToady jnthn: found the line# bug
m: f(); sub f() { say callframe().line;␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤{ 42 } } 18:47
camelia rakudo-moar 71dadb: OUTPUT«1␤»
jdv79 ZoffixW: what about perl6.org? :)
TimToady and fixed it :)
ZoffixW jdv79, that'd annoy me too, if only I ever visited perl.org :P
dj_goku (pause, cpan, metacpan).perl6.org?
jdv79 dj_goku: just in general - domains, namespaces, etc...
ZoffixW jdv79, my other concern is web searches. Telling people "find it on CPAN" and they get to P5's CPAN and get confused 18:48
jdv79 which is why saying cpan6 fixes that
similar to perl vs perl6
ZoffixW jdv79, I'm fine with the names, but I feel they're ridiculously unimaginative :D
18:48 spider-mario joined
nine Why differentiate between cpan.perl6.org and metacpan.perl6.org? 18:48
ZoffixW ^^ good point 18:49
The only reason metacpan exists is because we couldn't neatly hack on search.cpan.org
jnthn TimToady: Yeah, I saw that just now when trying to catch up with the backlog :)
dj_goku or sorry, I was just saying cname/sub-domains would be find too.
jnthn TimToady++
jdv79 i'm not only talking about domains. what about p5 modules that are p6 cpan specific. be nice to be able to use CPAN6::
18:50 lucasb left
jdv79 nine: what? cpan and metacpan are 2 differen things? in what respect(s) are you referring to? 18:50
ZoffixW jdv79, what's the difference?
nine jdv79: isn't metacpan6 just a good webinterface to a subdirectory of the storage facility called cpan.org? 18:51
jdv79 cpan proper is an archive of dists. metacpan is a search portal on that archive.
18:51 g4 left, kyleha joined
mspo cheese.perl6.org 18:51
richi235 rakudobrew build moar is running 18:52
18:52 sno joined
kyleha Hi folks. I've been absent for about four years. What have I missed? 18:52
richi235 but I think I won't find time the next days to play around :(
ZoffixW kyleha, they shot Elvis!
richi235 so thanks for your help guys :) 18:53
dj_goku kyleha: 2 pac is alive and well in area 51
ZoffixW kyleha, we're finally making a stable release in a week
nine kyleha: a couple of patches here and there ;)
ZoffixW heh
jdv79 my original thinking is since we're trying to piggyback off p5's infra we could use the same names and just append a 6 like perl6 so we can differentiate them and later seperate them
dj_goku m: say 2 ~ 'pac is alive' 18:54
camelia rakudo-moar 71dadb: OUTPUT«2pac is alive␤»
dalek kudo/nom: 6ed069f | (Sylvain Colinet)++ | lib/NativeCall.pm6:
Add support for specifing the api/abi version to native (NC) routine
flussence kyleha: we got real threads! and a VM that doesn't take half an hour to build rakudo on!
kudo/nom: 623cee4 | FROGGS++ | lib/NativeCall.pm6:
Merge pull request #639 from Skarsnik/nom

Add support for specifing the api/abi version to native (NC) routine
jdv79 so right now cpan6 is basically cpan with some minor changes but maybe someday cpan6 will be totally divorced from cpan
idk
kyleha I'm pleased to see some of my code is still in roast.
18:54 zjmarlow_ joined
mspo jdv79: what kind of infra do you want? 18:54
jdv79 what p5 enjoys 18:55
kyleha ZoffixW, I thought they were all stable releases.
18:55 yqt joined
ZoffixW psch, pause/cpan/metacpan. The capability to upload versioned dists with sanity and provide a nice search interface to them 18:55
kyleha, they lied to you! :)
jdv79 different names are fine if that's what people are into...
18:55 cdg joined
nine ZoffixW: even worse, what would I call this repository that deals only with absolute paths? 18:56
mspo decentralization is the modern way
ZoffixW I'd vote on different names if I had a choice. I've been hearding pause/cpan/metacpan for years. They feel like moldy bread
kyleha nine: repository of the sith
jdv79 does perl6 feel the same?
seems an odd observation
probably just me
ZoffixW jdv79, it does. I wish it was named something hip and cool and shiny instead 18:57
grondilu so, I try perl6-debug-m, I get "**SORRY** could not find Debugger::UI::CommandLine". Fine, I install it with panda. And then: ===SORRY!===
Circular module loading detected involving module 'Debugger::UI::CommandLine'
dalek kudo/nom: 41f4adc | ugexe++ | src/core/control.pm:
Fix CLONE-HASH-DECONTAINERIZED(%(:a(Any))

Removes warning messages for `my %x = :a(Any); CLONE-HASH-DECONTAINERIZED(%x)` which is called anytime `run`, `shell`, or `QX` is used
  `CLONE-HASH-DECONTAINERIZED` is currently only used on `%*ENV` to be passed to `nqp::spawn`, so stringifying `Any` to `Str.new` should be safe
kudo/nom: eca62e6 | lizmat++ | src/core/control.pm:
Merge pull request #640 from ugexe/patch-8

Fix CLONE-HASH-DECONTAINERIZED(%(:a(Any))
18:57 isacloud left
nine grondilu: maybe RAKUDO_MODULE_DEBUG=1 gives some hint at what's going on there. I remember having a quick look but not what the result was 18:58
jdv79 well, i'll move forward with the *6 names until sommething better comes along then
ZoffixW ^ ugexe does that fix panda's %*ENV warnings?
lizmat ZoffixW: according to the comments, it does
richi235 I think I will stay here and read backlog from time to time :)
ZoffixW Sweet. ugexe++
nine ugexe++ indeed!
19:00 cdg left
ZoffixW jdv79, sounds like a plan. Names are quite a bikeshed material :) We need tools. The names they're named are less important :) 19:00
19:00 zjmarlow_ left
timotimo pupa. 19:01
19:01 ranguard joined
MadcapJake m: my $a = 1; $a ^= 2; say $a 19:01
jdv79 i was only asking because i was going to start naming things in code. but things can be renamed.
camelia rakudo-moar 71dadb: OUTPUT«Memory allocation failed; could not allocate 2210832 bytes␤»
MadcapJake i think i found a bug :P
ranguard evening :)
MadcapJake that just hangs on my computer, indefinitely 19:02
lizmat MadcapJake: please rakuodbug it
MadcapJake how do i do that?
ZoffixW MadcapJake, nah, that's just the memory allocation operator. It's meant to work that way! images-cdn.9gag.com/photo/11948_700b.jpg
lizmat confirms all line number related spectest failures are gone!
MadcapJake lol ZoffixW
ZoffixW MadcapJake, go to rt.perl.org/ and choose "New ticket in [perl6]" on top right 19:03
lizmat only 3 test-fies failing now
*files
ZoffixW MadcapJake, ah, here: github.com/rakudo/rakudo/#reporting-bugs
jdv79 did hack just disappear?
kyleha lizmat: Does the spectest mostly use plans with counts, or 'done' at the end? Is one considered better?
19:03 vividsnow left
lizmat kyleha: in my book, plan => N is superior 19:04
as it will also spot not running the right number of tests
ZoffixW it's also more annoying :)
jdv79 can anyone start a new ssh session to hack?
TimToady
.oO(tormenting the testers on behalf of the implementors)
kyleha Any time it's ever told me the number of tests is wrong, I assume the plan is wrong instead. 19:05
ZoffixW But it avoids accidental stuff like I've done today: comment out the entire test file and think my tests are passing: github.com/perl6/modules.perl6.org...179bc6e465
ranguard hi, is there a more uptodate consensus on what META6.json should look like other than design.perl6.org/S22.html#META6.json ?
masak I'm quite happy to use `done-testing;` at the end, as the test framework notifies me anyway when a test file doesn't run to completion.
using `done-testin;` means there's one less unnecessary number to update all the time
testing*
19:06 abraxxa joined, abraxxa left
ZoffixW ranguard, looks fairly up to date to me. We also have a Test::Meta module you can use to see that your META looks sane: modules.perl6.org/#q=Test%3A%3AMe 19:06
MadcapJake lizmat, ZoffixW: ok bug submitted via email!
FROGGS ranguard: looks quite up to date 19:07
ZoffixW MadcapJake, cool. I see it: rt.perl.org/Ticket/Display.html?id=126961
ranguard ZoffixW: so I've been told that the source (e.g. github) url should be in 'support.source' - but that's not mentioned in the spec 19:08
sorry synopsis
dalek kudo/nom: 3b5684f | TimToady++ | src/Perl6/ (2 files):
give hint that Nil is okay for empty loop body
ranguard goes to look at Test::META
jdv79 design.perl6.org/S22.html#support - its right there, no? 19:09
FROGGS ranguard: it *is* mentioned: source
The URL of the source of this distribution, if any.
ranguard So github.com/jonathanstowe/Test-META.../META.info is confusing as it has source-url and support.source
Ahh, sorry! ok :)
FROGGS :o)
jdv79 that's because Test::Meta covers the spec format (META6.json) and other one (META.info) 19:10
ranguard cool
19:10 Slim_ left
flussence source-url is there because some things that parse META files were slow to update when the spec changed 19:10
ZoffixW ranguard, FROGGS well, wait... It says "support" is optional. Does it mean panda will still be able to install without any source-url in it?
dalek kudo/nom: 01947c8 | lizmat++ | src/core/Temporal.pm:
Dogfooding Nil as an empty loop body
19:11
FROGGS Zoffix: yes, since panda knows the url before it fetches the dist
ranguard so, to help get a metacpan6 going (which jdv79 is working on) - so I'm generating the META6.json
so, to help get a metacpan6 going (which jdv79 is working on) - I'm going to upload modules.perl6.org list to CPAN - so I'm generating the META6.json 19:12
ZoffixW FROGGS, that's a bit shortsighted
FROGGS, with a mandatory source-url you could host META files anywhere you want to, but now they must be in the root of the dist.
flussence ZoffixW: panda isn't the only thing that can use META6.json; the core module loader has no need for 'support', for instance
jdv79 ZoffixW: note tha that for the cpan model that's not an issue since thta url is not used for fetching. 19:13
ZoffixW I spose 19:14
FROGGS Zoffix: I dont see the connection of the source url in a file and the location of that file within its dist
ZoffixW FROGGS, what do you mean panda has the URL already then? 19:15
FROGGS Zoffix: panda knows the url because of the ecosystem repoistory 19:16
nine flussence: the core module loader doesn't care about the META6.json format anyway.
ZoffixW FROGGS, but that URL is to a META file.
flussence nine: it reads the "depends" section of any META6 found in an -I path 19:17
lizmat Copying lib/foo.pir to /Users/liz/Github/panda/.panda-work/1450466017_1/removeme/lib/foo.pir ??
FROGGS Zoffix: ahh, now I know what you mean
lizmat got that when doing a bootstrap?
flussence s/depends/provides
FROGGS lizmat: aye
lizmat panda still thinking parrot is supported ?
FROGGS lizmat: that's just a test, no?
lizmat ah, yes 19:18
*phew*
FROGGS lizmat: I guess the file extension does not mean anything there
lizmat :-)
FROGGS :o)
nine flussence: the provides section :)
19:18 ollej left
FROGGS Zoffix: okay, then lets say the support.source is mandatory for online repositories 19:19
Zoffix: it is not needed if you install the dists from a tarball or so
lizmat gist.github.com/lizmat/8b7e9d103a6f38696b8a # nine, warning generated on OS X when installing Inline::Perl5
ZoffixW or cpan model, as jdv79++ pointed out
FROGGS so it is only kinda mandatory
19:22 Guest9799 left, administrator joined 19:23 administrator is now known as Guest71566, ZoffixW left
nine When exactly did generating backtraces on settings compilation failures start to recurse endlessly? 19:24
19:24 zjmarlow_ joined
masak nine: I have no idea, but it sounds like a question to which `git bisect` is the answer. 19:27
lizmat hmmm... looks like sink warnings are now breaking Inline::Perl5's tests and thus blocking installation :-( 19:29
nine: is this in the optimizing or parse stage ? 19:30
19:30 zjmarlow_ left
andreoss masak: why do we pass block as Q::Block rather than Q::Statement::Block? 19:31
19:31 nige1 joined
andreoss regarding 007 19:31
masak andreoss: you mean in the `else` part specifically? 19:32
[Coke]: so... there was no Rakudo compiler release yesterday...? :/
andreoss masak: else, as i see it also can be applied to ::While
nine lizmat: parse 19:33
lizmat ah, I had some infiniloops in oprimizing stage earlier today :-(
andreoss *`else`
lizmat masak: no, did you really expect one ?
masak andreoss: in the end, it's a matter of modeling/design. the vast majority of Q::Statement::* types don't contain other statements. 19:34
lizmat: I... I think I did, given what it says in docs/release_guide.pod
lizmat well, [Coke] made it very clear that we will release when it's ready :)
masak andreoss: the only exception is (the one I'd like us to add) in the `else` part
lizmat clearly we're not at that stage just yet
masak lizmat: ok. I missed that bit. thanks.
masak only backlogs sporadically these days 19:35
lizmat masak: would you have expected another one for the official 6.c then ?
andreoss masak: other Q::Statement::* run $.block almost identically with exception of error handling part
jdv79 its getting really hard to backlog
jnthn TimToady: Did a spectest run while I dinnered; the line number failures have cleared up nicely here too :)
masak lizmat: waitwait, Rakudo and the Perl 6 spec are on different release cadences in any case, no?
lizmat indeed 19:36
masak lizmat: so yes, I think I expected a separate release for 6.c, too.
lizmat although I would say the language release dates would be a subset of compiler releases
19:36 lucasb joined
masak yeah, I can sort of see that. 19:36
lizmat not a possibly empty intersection 19:37
TimToady we probably shouldn't have a language release without an implementation that passes all the tests
masak I'm dismayed only to the extent that our nice monthly release schedule is being put aside for a "when we are ready" release schedule, which in my experience works less well.
flussence predicts that someone, somewhere will get angry that there's no direct Buf->Uni decoding path
jnthn Practically, since you need an implementation to know the spectests are sensible, we'll probably end up with joint lang/matching impl release dates for the first impl that supports a given lang release. 19:38
masak *nod*
jnthn masak: We've already given ourselves a hard time limit (Christmas) on the impl release :)
masak right :)
jnthn We've even said it's *this* Christmas!
masak let's have this discussion again in a week, then ;)
19:38 vike left
jnthn From Jan we'll be back to our regularly scheduled impl releases :) 19:38
TimToady so...any time before Epiphany, right? :) 19:39
masak or better yet, let's not (because we've released already)
jnthn And it'll mostly probably be > 6 months before another lang release messes things up for us again. :P
TimToady we may reserve the right to generalize a few exception tests in a point release 19:40
jnthn *nod*, though I went and ripped out all the X::AdHoc in the test suite already and hope we got no fresh ones in :)
TimToady we can afford a "bug fix" release of roast as long as there's only one implementation; when we get more, we'll have to negotiate 19:41
so we could have a v6.c.1, v6.c.2 if we deem it necessary and insufficiently disruptive
jnthn True. We'll see if we gotta :) 19:42
TimToady predicts we'll gotta :)
or at least wanna :)
andreoss masak: making it an expeption, i've also asked above, about using a single Q::Statement::If instead of nesting them. we could have $.elsif, which would be an array of xblock.
masak andreoss: I thought about that. 19:43
andreoss: decided not to, for reasons of downstream tools having an easier time with a two-way branching structure than with an N-way branching structure.
("downstream tools" being macros, linters, formatters, etc) 19:44
MadcapJake could I get some feedback on this issue: github.com/MadcapJake/language-perl6fe/issues/6
19:44 darutoko left
andreoss masak: on the other hand, we could go futher with that and nest other Statements too 19:45
nine m: BEGIN my $foo = 1; role Foo[$foo] {}; class Bar does Foo[$foo] {};
camelia rakudo-moar 01947c: OUTPUT«WARNINGS for /tmp/8F759IrFDL:␤Useless use of $foo in sink context (line 1)␤»
nine TimToady: ^^^
masak andreoss: yes, if there's sufficient cause for it.
andreoss: in the case of Q::Statement::While, I guess the way I have it in my head is that the while loop structurally contains (an expression plus) a block, not a block *statement* 19:46
jnthn MadcapJake: Are quoted strings over multiple lines handled? Are they an easier problem?
dalek kudo/nom: 193bc61 | TimToady++ | src/Perl6/ (2 files):
generalize Nil suggestion to other possibles

For instance, someone could use:
   Mu for @list
   Cool for @list
   my $sink; $sink for @list
19:47
19:47 Guest89009 is now known as parisba
jnthn MadcapJake: As in, is this tricky because < is an operator also? 19:47
TimToady nine: thanks
MadcapJake jnthn: yes that is it, any time that operator shows up (if i allow multiline quoteword constructs), it will immediately catch as a quoteword instead of a less-than
andreoss for xs -> x for ys -> y { ... }
I will try that 19:48
masak heh :)
MadcapJake jnthn: because there doesn't seem to be any rule as to what quotewords can contain, just that they are seperated by spaces
jnthn MadcapJake: Looking at the suggested resolution, could "it's preceded by a known infix" work instead of "it's followed by alphanumeric"?
masak andreoss: I'm willing to discuss it further, but my initial reaction is that it's too far-reaching with not enough to motivate it...
MadcapJake jnthn: the rule for operators currently has lower precedence to quoteword constructs, but I even if I switched that around, I'm not sure how I would syntactically make aware that it is an infix rather than a delimiter 19:50
andreoss masak: then we could have a macro to turn for xs -> x, y -> ys into two nested `for`s
masak andreoss: oh yes -- all is fair if you macro. :) 19:51
MadcapJake jnthn: I don't get the luxury of P6 grammars unfortunately, someday there needs to be a P6 text editor that lets you write syntax highlighters in P6 grammars :) 19:52
lizmat hmmm... t/spec/S17-procasync/many-processes-no-close-stdin.t was just hanging, eating 300% of CPU
sjn \o 19:53
lizmat shouldn't that test be done for stresstests only ?
sjn hello #perl6 people \o/
andreoss masak: consider my PR
lizmat sjn o/ 19:54
sjn is diving into the wonderful world of asynchrony
19:54 zjmarlow_ joined
sjn and parallellism and stuff :) 19:54
are there any examples/patterns out there on how to parallellize some computation on the contents of a lazy list? 19:55
nine sjn: it takes a special kind of madness to find that stuff wonderful ;) 19:56
jnthn MadcapJake: Yeah. I mean, at the most simplistic the Perl 6 parser flips between looking for an infix and looking for a term, so it always knows which one it's after
MadcapJake jnthn: github.com/MadcapJake/language-per...#L656-L660
jnthn: all I currently check for is to make sure that the < isn't prefaced by a +, followed by a =, and that (on the same line) a corresponding > is used. And that has, so far, been robust enough to work.
lizmat sjn: @lazy-list>>.stuff ? 19:57
not sure if that already works, does it jnthn ?
sjn @lazy-list».stuff.hyper 19:58
?
lizmat sjn: honestly, not sure atm
jnthn @lazy-list.race.map(...) 19:59
MadcapJake jnthn: though it would trip up if someone had a less-than infix followed by a greater-than infix on the same line :P
jnthn The .race or .hyper needs to come before the operations to parallelize
20:00 andreoss left
jnthn MadcapJake: Hm, yes. :) 20:00
20:01 zjmarlow_ left
sjn jnthn: ah, your example (slide 36 of 2015-yapcasia-concurrency.pdf) shows it afterwards 20:01
well, that one was with .race
sjn assumed it was similar with .hyper 20:02
jnthn .hyper also becomes before
You basically switch processing mode
MadcapJake jnthn: if I really wanted to make it robust, I would separate it out into a begin/end style rule, but then the begin rule would need to rigorously check for *something* :P
20:02 zjmarlow_ joined
MadcapJake jnthn: what if I checked for all the cases that you would create a quoteword construct? Like check for an = sign or somesuch? Would that maybe be more plausible? 20:03
jnthn They can show up pretty much anywhere, is the thing... 20:04
foo <bar baz>;
20:04 nanis joined
dalek rl6-roast-data: 154fa13 | coke++ | / (7 files):
today (automated commit)
20:04
MadcapJake yeah that's true, there's really not an easy answer i think. Maybe what I could do is create a *different* rule for multiline quotewords, like check for a single string on a line? would that cut the mustard? 20:06
nanis Just tried to build from a git clone on Windows 10 with MSVS2013, but got this src\6model\reprs\P6int.c(2) : fatal error C1017: invalid integer constant expression. That's under MoarVM.
MadcapJake s/single string/single non-quoted word/
nanis And line 2 is `#if MVM_BOOL`
jnthn huh, it builds on an ealier MSVC just fine 20:07
nanis Yeah, I am confused. 20:08
I am assuming MVM_BOOL is supposed to be in moar.h, but don't see it. 20:09
jnthn Yeah, it's defined at all for me either
FROGGS: Any idea about ^^?
Earlier MSVC must just treat "does not exist" as zero or something
RabidGravy I've been confused for more than half a century, it doesn't require software
nanis So, try #ifndef? 20:10
RabidGravy well #ifedf
nanis I meant #ifdef? 20:11
RabidGravy well #ifdef
FROGGS it is defined in the makefile
#ifdef wont wort
work*
jnthn FROGGS: It doesn't seem to end up in any headers though?
nanis RabidGravy: At some point, we were bound to hit on the correct spelling.
RabidGravy :) 20:12
nanis FROGGS: OK, it is actually in the Makefile: /DMVM_BOOL=_Bool
FROGGS hmmm
jnthn Ah
We tend to put those things into config.h or so
FROGGS nanis: so your msvc does not like '#if _Bool'
nanis FROGGS: Exactly, I just realized. 20:13
FROGGS jnthn: I just cloned the CGOTO flag
[Coke] Everybody who keeps asking about the actual release date: it's probably going to be christmas actual.
RabidGravy I always assumed it was :) 20:14
lizmat fine by me :-)
would be an excellent birthday present :-)
RabidGravy I decided yesterday was a stretch about a week ago ;-)
nanis That's because VC\include\xkeycheck.h has this -> #define _Bool EMIT WARNING C4005 20:15
FROGGS nanis: are you moving it to config.h(.in)?
nanis: or shall I? 20:16
[Coke] anyone who sees a failing test in stresstest, please make sure there's an open ticket. We can decide if we need to fix or fudge before christmas.
RabidGravy if I do a rakudobrew right now will it result in a working perl6? 20:17
[Coke] I have no idea. :)
I'm doing a fresh build on OS X myself. 20:18
20:18 _nadim left
[Coke] I think I have finally extracted myself from $DAYJOB until post-christmas. 20:18
20:18 _nadim joined
RabidGravy DAMN THE TORPEDOES 20:18
jdv79 [Coke]: nice 20:20
nanis FROGGS: I am not going to be able to get to this before tomorrow, so please go ahead. 20:22
FROGGS nanis: k
nanis Thank you. Bye. 20:23
20:23 nanis left
dalek kudo/nom: f3e5bee | (Stefan Seifert)++ | / (5 files):
Move code handling absolute paths to module into Repository::AbsolutePath

Until now, require "/full/path/to/Module.pm" only worked when some CompUnit::Repository::FileSystem was in the $*REPO chain, even though it didn't matter at all which one.
Now there's a CompUnit::Repository::AbsolutePath in the default chain for handling full path loading. Removed the corresponding code from FileSystem.
20:24
20:25 shlomif joined 20:26 Begi2 is now known as Begi 20:28 rindolf left
jnthn nine: Sounds like a neat solution...how does it interact with the head-of-the-chain precomp rule? 20:28
nine jnthn: it's pretty far at the end of the chain (before NQP and Perl5) and doesn't use a precomp repository. So I'd say, it doesn't interact at all ;) 20:29
jnthn cool 20:30
nine++
nine This is now the 5th Repository implementation. They proliferate fast :) 20:31
jnthn ;) 20:32
Well, suggests we found a uniform way to solve a bunch of problems.
20:33 n0tjack left
masak this calls for... Object-Oriented Design! \o/ 20:33
nine Seems like :) The more we use them, the better everything is
jdv79 weird. i got a "Unhandled exception: Malformed UTF-8" and --ll-exception did give me a bt
*didn't 20:34
masak nine: speaking of which...
nine: any news on rt.perl.org/Public/Bug/Display.html?id=126827 ?
FROGGS jdv79: something non-utf8 in your env perhaps?
jnthn Shouldn't be it, we use utf8-c8 for the env.
jdv79 its probably coming from an async socket 20:35
dalek kudo/nom: 616e549 | jnthn++ | src/Perl6/World.nqp:
Don't use typed exceptions in setting compilation.

If we need them at unfortunate points, we can get into loops of various kinds. Instead, just reliably dump the info that would have gone into the exception object.
jdv79 how do i throw that into "binary mode" again?
jnthn .Supply(:bin) instead of just .Supply to read
nine masak: nothing new on that front :( My debugging mojo seems to be asleep lately 20:36
FROGGS jnthn: what is utf8-c8?
[Coke] Also, further on the scheduling: "some time on the 25th". I'm not committing to a particular time.
jdv79 ah
20:37 kyclark left
jnthn FROGGS: github.com/MoarVM/MoarVM/blob/mast...f8_c8.c#L3 20:37
[Coke] masak: no, the compiler release is happening on Christmas.
lucasb [Coke]: when I was a kid, I opened my presents on 24th evening, but ok, I can wait a few more hours :) 20:38
[Coke] with all of the last minute changes and spec test failures, I certainly wasn't going to push it sooner.
moritz speaking of last minute changes 20:39
what do you think of starting a feature freeze now, and doing only fixes up to the release?
dalek ast: 44e1bba | jnthn++ | S12-construction/new.t:
todo => skip for syntax we're NYI-ing.
20:41
nine I would still like to remove CompUnit::RepositoryRegistry::load_module as removing it later would be backwards incompatible and it really doesn't belong there.
FROGGS jnthn: that's awesome
[Coke] moritz: that's pretty much what I've been saying, yes.
jnthn FROGGS: Has a bug somewhere too...
FROGGS :S
jnthn FROGGS: But yeah, it's a useful idea.
[Coke] everyone should keep an eye on what's going into nom. we shouldn't be pushing anything really new at this point.
FROGGS [Coke]: aye 20:42
[Coke] bugfixes, speedups, docs, things already ID'd by jnthn++ as for xmas, those are all easily on the table. Anything else, we should think about.
jnthn only has one thing he's contemplating sneaking in, that will be isolated enough
20:42 n0tjack joined
[Coke] jnthn++ pretty much has a free pass at this point. :P 20:42
FROGGS *g* 20:43
jnthn In short: when I was writing the advent post, I realized there's one important missing thing in the supply block stuff
20:43 grondilu left
jnthn Which is basically that there's no way to do something appropraite when the tap is closed. 20:43
I've been pondering how to deal with that, and the clean way is a phaser.
FROGGS .oO( What about going home? )
20:44 AlexDaniel joined
jnthn New phasers will be ambiguous with listops 20:44
[Coke] gist.github.com/coke/1f5ff064a85f13e13261 had a few failures, but same as TimToady - they either don't fail the second time, or they are long time flappers. :|
jnthn Thus why I'd rather get a solution for it in now
AlexDaniel m: my @test = «uno due tre»; say flat %(flat <one two three four> Z @test); # this seems to work
camelia rakudo-moar f3e5be: OUTPUT«(two => due three => tre one => uno)␤»
AlexDaniel m: my $test = «uno due tre»; say flat %(flat <one two three four> Z $test); # this doesn't
camelia rakudo-moar f3e5be: OUTPUT«(one => (uno due tre))␤»
AlexDaniel m: my $test = «uno due tre»; say flat %(flat <one two three four> Z | $test); # this one is even weirder 20:45
camelia rakudo-moar f3e5be: OUTPUT«(one => uno due => tre)␤»
dalek kudo-star-daily: 24f1fa3 | coke++ | log/ (8 files):
today (automated commit)
AlexDaniel and that's a regression, this code was working one week ago
jnthn AlexDaniel: It's not a regression
It's a deliberate change
AlexDaniel oops, there's redundant flat in front
jnthn Z and X and their meta-forms failed to respect items
AlexDaniel jnthn: oh!
jnthn (roundrobin also) 20:46
20:46 firstdayonthejob joined
jnthn rt.perl.org/Ticket/Display.html?id=126522 20:46
20:46 grondilu joined
jnthn I was about to say didn't you submit that one, but no :) 20:46
20:47 prammer left
AlexDaniel :D 20:47
well, okay! But what's the right way to do it now?
dalek kudo/nom: bd23b4a | jnthn++ | src/Perl6/Grammar.nqp:
Mark autovivifying type objects as NYI.

This reserves the syntax, which was previously parsing as a hash access on a type object, so we can later implement this feature.
AlexDaniel m: my $test = «uno due tre»; say %(flat <one two three> Z | $test); # oh
camelia rakudo-moar f3e5be: OUTPUT«due => tre, one => uno␤»
jnthn AlexDaniel: If you want to keep a $ on the var? @$test
AlexDaniel m: my $test = «uno due tre»; say %(flat <one two three> Z @$test); # oh 20:48
camelia rakudo-moar f3e5be: OUTPUT«one => uno, three => tre, two => due␤»
jnthn Same as for @$foo { }
AlexDaniel riiiiight
okay then, thanks!
jdv79 i can't repro it well yet but that's pretty disturbing that a failure to decode blows up that hard.
AlexDaniel m: my $test = «uno due tre»; say %(flat <one two three> Z |$test); # still I wonder what is happening here
camelia rakudo-moar f3e5be: OUTPUT«due => tre, one => uno␤»
20:48 nige1 left
jnthn jdv79: Well, it should push the decode failure down the supply chain, but I'm not sure that's happening correctly yet 20:48
AlexDaniel but whatever, I'll just add @ everywhere :) 20:49
masak .oO( to the round batcave, roundrobin! )
jdv79 i'm not sure how to handle it best. i'm in a react whenever sock.Supply.lines
Hotkeys how out of date is 2015.11 at the moment? not in terms of time but like
feature-wise/etc.
20:49 virtualsue left
AlexDaniel Hotkeys: um, well, I think that the difference is huge 20:50
[Coke] it's pretty big; if you need something fresh, I recommend git for now 20:51
Hotkeys I'm on the current version but my friend runs an evalbot on another server and is using 2015.11 for his rakudo
sjn m: my @lazy = (1 .. Inf); say @lazy.hyper
camelia rakudo-moar bd23b4: OUTPUT«HyperSeq.new␤»
sjn docs say hyper returns an Iterable class 20:52
outdated docs?
jnthn Iterable isn't a class, it's a role
m: HyperSeq ~~ Iterable
camelia ( no output )
jnthn m: say HyperSeq ~~ Iterable
dalek kudo/nom: 627838d | (Stefan Seifert)++ | src/core/CompUnit/RepositoryRegistry.pm:
Remove defunct CompUnit::RepositoryRegistry::candidates

This was a fossil of CompUnitRepo. It needs proper replacement, but until that arrives, no one is served by a failing method with a wrong interface.
camelia rakudo-moar bd23b4: OUTPUT«True␤»
sjn ah
jnthn If the docs say class then yeah, they're wrong :)
moritz outdated :-) 20:53
pre-glr, Iterable was a class in Rakudo
jnthn True :)
sjn they say "role Iterable"
jnthn Ah, OK :)
We're down to 4 (four) RTs on the xmas list 20:54
masak jnthn: wow. 20:55
jnthn++ # massive work
bartolin_ \o/ jnthn++
sjn nice!
timotimo \o/ 20:56
nine Back to less than one a day! jnthn++
jnthn And rt.perl.org/Ticket/Display.html?id=123272 is reported as "OK on MoarVM"
By hoelzro++ as of a few days ago 20:57
If somebody fancies writing us a test for it, then we can comfortably get down to 3 :)
lucasb so, about this t/spec/S32-array/adverbs.t, when it's run with plain perl6 it passes, but when it's run with 'perl t/harness' it fails. can someone explain why? 20:59
jnthn lucasb: No; I suspect being able to explain it would imply we could easily fix it :)
nine lucasb: what about PERL6LIB=lib perl6?
jnthn That's wroth a try
Also
Running it under valgrind is worth a try 21:00
dalek ast: 38f394d | usev6++ | S0 (2 files):
Skip some new Unicode related tests on JVM
jnthn TimToady: Is RT #125769 still something you're looking into, or should I sink a few tuits on it tomorrow?
nine Yes, -Ilib makes it fail
lucasb yes, I second, PERL6LIB=lib makes it fail :) 21:01
21:01 vike joined
nine perl6 -Ilibs is ok however, so it probably has something to do with the modules shipped with rakudo 21:02
masak vike: greetings, earthling.
nine The only module it loads from there is Test
bartolin_ lucasb: I submitted RT #126823 for that 21:03
dalek kudo/nom: 4069889 | TimToady++ | src/Perl6/ (2 files):
also notice () in sink context
21:04
lucasb bartolin_: ah, I didn't see that
jnthn, nine, bartolin_: thanks for the notes...
21:04 espadrine left
TimToady jnthn: if it's still open tomorrow, you can work on it :) 21:05
jnthn TimToady: OK. Did you decide any more on the UNDO in loops one than "possible nasal deamons"? :) 21:06
TimToady nothing more
21:06 kyleha left
jnthn TimToady: Also, while we're on phasers: any objections to a CLOSE phaser in supply blocks, which fires when the tap is closed? 21:06
TimToady: I realized while doing my advent post there was no nice way to attach the cleanup and have the correctly scoped state around.
(For example, if you establish a connection to something like a message queue, and want to close that on tap close) 21:07
TimToady I wonder if CLOSE is too apt to be confused with file closes
jnthn Maybe. I'm open to other suggestions. I've hunted around for non-phaser options but didn't really find one.
TimToady fine with the phaser part of the idea 21:08
SHUTDOWN might be more socketesque, though that can also be misconstrued
AlexDaniel 4 RTs left? Holy sh…
jnthn Mostly want to get it in 'cus (a) folks will notice they have no way to do resource management when they start writing production apps with this stuff, and (b) adding new phasers later will need a use v6.X; 'cus they'll be ambiguous with listops..
TimToady SHUTOFF 21:09
jnthn TimToady: Yeah, I went with CLOSE 'cus it matches $tap.close
masak CLOSE++
er, I mean +1 to CLOSE :)
TimToady I am only mildly suspicious of CLOSE 21:10
jnthn Yeah, I worried a bit over "too generally named" too
TimToady CLOSING?
jnthn Though, we so far have a rather relaxed phaser policy
Where we let you put any phaser on any block, so they're open to alternative processing by modules :) 21:11
CLOSING works too
sjn SHORT
:)
TimToady doesn't work with 'will close' though
will shutdown would work better 21:12
nine TAPCLOSE or CLOSETAP?
jnthn Yeah, it just lacks the obvious link with .close
TimToady I mean, 'will closing' doesn't work
jnthn Right
will close doesn't read too bad, otoh 21:13
TimToady will shutoff
jnthn Except the overgeneralization issue
TimToady maybe .close is misnamed?
jnthn oh no! :P
I kinda like that it puns on .close with files, fwiw
TimToady I'm okay with CLOSE
jnthn Because if some day we have a construct that is a version of given that calls .close for you, like Python with or C# using for Java...I dunno what Java call it but it's probably verbose. 21:14
s/for/or/
Oh wow, it's just try :) 21:15
Java surprises me with brevity :)
I'll add it as CLOSE tomorrow :) 21:16
TimToady ()
m: ()
camelia rakudo-moar 406988: OUTPUT«WARNINGS for /tmp/zzEVgRtEbN:␤Useless use of () in sink context (line 1)␤»
jnthn All being well it'll be a 30 min patch
masak jnthn: note -- only Java 7 and above 21:17
jnthn masak: Ah, it's that recent.
That means it came after C# had using :P
21:17 squain joined
masak it did. 21:18
and C# got using after Python already had `with` :)
dalek kudo/nom: 7c925a7 | TimToady++ | src/Perl6/Actions.nqp:
also notice () in loop context
21:19
21:20 lichtkind joined
dalek ast: 6f71a80 | TimToady++ | S32-exceptions/misc.t:
tests for Nil suggestion in loop context
21:20
21:20 Guest71566 left
moritz uhm 21:25
I just got
src/mast/compiler.c:1600:1: internal compiler error: Segmentation fault
21:25 pmurias joined
[Coke] urk 21:25
jnthn Congrats...what were you compiling? 21:26
moritz tries again after a a git clean -xdf
jnthn: just moarvm from git, with a straight perl Configure.pl --gen-moar in an unpatched rakudo :-)
Skarsnik Not ICE me, senpai
21:28 shlomif is now known as rindolf 21:30 cdg joined
sjn tries to parallelize stuff 21:32
m: .say (1 .. Inf).grep(&is-prime)[100]
camelia rakudo-moar 7c925a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/U6T_gN48e0␤Two terms in a row␤at /tmp/U6T_gN48e0:1␤------> 3.say7⏏5 (1 .. Inf).grep(&is-prime)[100]␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ …»
RabidGravy fun time
sjn tries to parallelize stuff 21:33
argh. lag
m: .say for (1 .. Inf).grep(&is-prime)[100];
camelia rakudo-moar 7c925a: OUTPUT«547␤»
sjn m: .say for (1 .. Inf).hyper.grep(&is-prime)[100]; # hangs
jnthn moritz: Very odd. If you manage to make it happen again, please valgrind it.
camelia rakudo-moar 7c925a: OUTPUT«(signal XCPU)»
skids .o(parallelized from the neck down) 21:35
sjn is completely new to this (hence making what I'm sure is stupid mistakes) 21:36
lucasb bartolin_++ I learned from your RT ticket... 21:39
bartolin_: interesting that an wrong adverd on hashes dies the first time but not the others
and with arrays, it never dies
lizmat gist.github.com/lizmat/c9aabb07ef76f472d0c2 # latest build on JVM cannot find Test 21:40
moritz jnthn: built fine the second time
lucasb and S32-hash/adverbs.t didn't failed for me... but S32-array/adverbs.t does 21:41
moritz jnthn: but what would you do with a gcc valgrind? :-)
lizmat sjn: looks like the hyper is reifying the infinite list
bartolin_ lucasb: I just added to the ticket. looks like it fails randomly :-/ 21:42
jnthn hyper/race are forms of eager
sjn hm
lizmat jnthn: so you're saying you could *never* hyper an infinite list ?
bartolin_ lucasb: I think S32-hash/adverbs.t and S32-array.adverbs.t have the same problem there.
sjn that's no good :-\ 21:43
jnthn lizmat: I won't say "never", but the design docs do, iirc, describe them as forms of eager, which implies not. 21:44
lizmat maybe we should die on .hyper/race ing a lazy list for now ? 21:45
m: .say for (1 .. 10).hyper.grep( { say "$_ in $*THREAD.id()"; is-prime($_) })[1] # something clearly amiss 21:46
camelia rakudo-moar 7c925a: OUTPUT«Nil␤»
lizmat so, it looks like it's not even getting into the grep ? 21:47
jnthn I think timotimo noticed something was up there
I didn't manage to look at it yet
sjn apologizes for bugging people with stuff like this 21:48
jnthn Mebbe tomorrow :)
lizmat sjn: no worries 21:49
jnthn sjn: The story on .hyper and .race is that I did a prototype implementation of them to prove the API design while doing the GLR
TimToady nine: have a fix for your "useless use"
just testing now
jnthn sjn: And that's basically what's there now still.
sjn is annoyed too. it almost seems that I attract bugs :-\
bartolin_ lizmat: I commented on your gist (c9aabb07ef). I compiled rakudo.jvm a few hours ago and can 'use Test' with -Ilib
jnthn sjn: Aside timotimo++ did a few bits on it
lizmat bartolin_: but that shouldn't be necessary. no ?
bartolin_ lizmat: well, I did not run 'make install' -- maybe that's, what broken on JVM? 21:50
lizmat if it would be, then any 'make test' file that has a 'use Test' should have a 'use lib' as well ?
21:51 zjmarlow_ left
dalek kudo/nom: 8401e01 | TimToady++ | src/Perl6/Actions.nqp:
vars used in roles/role args need wanting
21:52
bartolin_ lizmat: at least t/harness (which is used for 'make spectest') has the following: $ENV{'PERL6LIB'} = join ',', qw/ lib . /; 21:53
masak hyper being a type of eager makes excellent sense.
lucasb bartolin_: just as another data point, I tried your 2 cmdlines (for run in {1..10}) in your last RT comment, and I consistently get 10 zeros everytime on both. My rakudo-moar is from a few commits ago today.
masak mostly because `hyper` and `lazy` are mutually exclusive concepts (not just because they sound like they are!)
lizmat so I guess you would need something like Supply.throttle after all then 21:54
masak `hyper` is saying "I don't mind if you kick things off faster than usual"
21:54 zjmarlow_ joined
nine TimToady: \o/ 21:54
masak `lazy` is saying "I don't mind if you kick things off as late as possible"
lizmat I guess I have more a Supply.tap view on this 21:55
bartolin_ lucasb: oh, zeros? that's strange. what happens, if you leave the pipe to grep out?
nine QAST::WVal.new( :value($foo) ); # do I need to add $foo to $*W manually?
Never mind...rakduo just answered the question :) 21:56
bartolin_ lucasb: (or if you just run the command within the parens a few times?) 21:57
jnthn nine: Yes ;)
lucasb bartolin_: lol, sorry, forget what I just said. I made a mistake. I have reproduced just like your comment, you are right
bartolin_ lucasb: yw :-) 21:58
nine SC not yet resolved; lookup failed
jnthn That's...an unusual error to manage 22:00
22:00 zjmarlow_ left
dalek ast: aa25738 | usev6++ | S02-types/native.t:
Fudge some tests for native ints for JMV
22:01
nine jnthn: caused by this patch: gist.github.com/niner/caa8f988d9c52b169400
jnthn That may be too early 22:02
nine: Yeah, load_dependency_tasks run *before* we deserialize the SC of the current compilation unit. 22:04
So you can't access a WVal in the current compilation unit at that point. 22:05
22:06 skids left
nine jnthn: but why did it work for the %opts hash? self.add_object($_.value); 22:06
jnthn my $opt_hash := QAST::Op.new( :op('hash') ); 22:07
It was constructing a QAST tree
That build up a hash
nine IOW I have to write the QAST Tree for creating the dependency specification manually 22:08
jnthn Yeah but...why is this happening? 22:09
I thought we resolved dependencies at the point of precompilation?
And then they were fixed?
So we didn't have to go searching again every module load.
timotimo sjn: yeah, .grep on a HyperSeq causes all the incoming values to disappear :( 22:11
22:12 rindolf left
nine jnthn: oh...that's a possibility that didn't occur to me. 22:12
dalek osystem: ae39cbb | (Zoffix Znet)++ | META.list:
Move defunct Tree::Simple to eco SHELTER

Per github.com/Takadonet/Tree--Simple/...-165655432
22:13
: 84eb01f | (Zoffix Znet)++ | misc/SHELTER/Tree--Simple/META.info:
Move defunct Tree::Simple to eco SHELTER

Per github.com/Takadonet/Tree--Simple/...-165655432
nine jnthn: so instead of this dependency_task thing, I'd just have the PrecompilationRepository load all dependencies before the requested precomp file
jnthn nine: I thought it was in my original gist, but maybe I'm remembering wrong...
nine: Yes...which should improve load time somewhat too
nine jnthn: AFAIK the pieces where there but it was nowhere spelled out that we could use the information that way :) 22:14
jnthn Ah :)
22:14 xfix left
jnthn "Since resolving dependency specifications to dependencies is a part of the compilation process, a cached precompilation directly identifies the cached precompilations it depends on. That is to say, the compiled effect of a use or need statement is not to resolve a dependency specification, but instead to identify a precise dependency to load." 22:15
nine And I need to read in the dependencies and even stat the files already to check if they are up to date. So it won't even be much new code 22:16
dalek : b0f90ba | (Zoffix Znet)++ | misc/SHELTER/README.md:
Reword the SHELTER"s purpose to soften the authors" stances toward these modules
jnthn That was the bit I intended to point in this direction :)
Zoffix Are we still interested in panda failures with "Cannot unbox a type object" when installing deps? It's aborted my R* install -_- 22:18
nine jnthn: ok, ok :) From where I stand now it clearly makes sense. I think I was about 2/3 through with the implementation when I finally understood the last pieces. So the full meaning was just not visible to me the 3 or 4 times I've read that.
dalek ast: bfe9372 | usev6++ | integration/advent2013-day15.t:
Fudge test returning 1 instead of True for JVM
Zoffix And also, am I getting rakudo's HEAD when I rakudobrew build moar or do I need to do something else?
jnthn Yeah, can understand that. It's a dense document that was written in a relative hurry, too... 22:19
Zoffix ==> Installing Debugger::UI::CommandLine [DISLOCATED MESSAGE] Useless use of enter_result__1 symbol in sink context
RabidGravy Zoffix, you always get rakudo's head but not that of nqp or moar 22:20
diakopter heh, a useless use of a result symbol
Zoffix k
TimToady rakudobrew triple is supposed to give you more control, but last I knew it couldn't find 'make' 22:21
nine jnthn: I really thought that I would just get some boring code moving tasks done, so you could later jump into the interesting bits without wasting time. I've never intended to do it all by myself :)
Zoffix tries triple
jnthn nine: I'm very happy, and grateful, that you did. :-)
TimToady I keep having to go in and edit rakudobrew to just use 'make'...
diakopter TimToady: submit a PR; I can merge it 22:22
TimToady well, I don't know how portable my fix is
RabidGravy boo
nine jnthn: I guess it was a better way for me to contribute than just going through the xmas RTs again. Because I already went through all of them once and fixed the few where I had an idea on what would be required :) 22:23
diakopter aaaaand every Juniper router is backdoored
Zoffix Yup
Since 2012 or something
22:24 rurban joined
bartolin_ . o O ( or since today (after applying the patch)? ) 22:24
Zoffix TimToady, well, if the current state is it being definitely broken for some systems and a possible state of it being *maybe* broken for some systems, I think your PR would definitely be an improvement :P
diakopter bartolin_: true enough
nine Ok, I'll leave it be for tonight and have a go at this tomorrow. Good night!
22:24 zjmarlow_ joined
Zoffix night 22:24
jnthn nine: 'night o/
RabidGravy I thought Juniper was bought out about ten years ago
masak 'night, nine
Zoffix I thought Juniper was berries you brewed potions with in Skyrim. 22:25
jdv79 is it corrct that say "\xfffff" segfaults?
22:25 ollej joined
RabidGravy gin, you use it in gin 22:25
22:25 ollej left
Zoffix Doesn't in P5 22:25
diakopter m: say "\xfffff"
camelia rakudo-moar 8401e0: OUTPUT«(signal SEGV)»
diakopter m: say "\x0fffff" 22:26
camelia rakudo-moar 8401e0: OUTPUT«(signal SEGV)»
diakopter m: say " \x0fffff"
camelia rakudo-moar 8401e0: OUTPUT«(signal SEGV)»
jnthn No
TimToady jdv79: I dunno, I'll have to think about it...
jdv79 ok
jnthn m: say "\x10ffff"
camelia rakudo-moar 8401e0: OUTPUT«\x{10FFFF}␤»
TimToady m: say "\x110000"
camelia rakudo-moar 8401e0: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 1114112␤ in block <unit> at /tmp/IJkmk8vHHv:1␤␤»
AlexDaniel diakopter: nice!
jnthn m: say "\x110000" 22:27
camelia rakudo-moar 8401e0: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 1114112␤ in block <unit> at /tmp/mNI0ppTbV3:1␤␤»
Zoffix TimToady, I need your triple fix. I've no idea how to fix it on my own
(which file? what do I change?)
jnthn Curious...wonder why the out of range check busts
Wonder if we should accept should a \x value in the first place, also
*such
22:28 geraud joined, kyclark joined
AlexDaniel jnthn: some kind of an overflow perhaps? 22:28
diakopter m: say "\xffffffffffffff"
camelia rakudo-moar 8401e0: OUTPUT«␀␤»
diakopter giggle
AlexDaniel m: say "\xfffffffffffffff"
camelia rakudo-moar 8401e0: OUTPUT«␀␤»
AlexDaniel m: say "\xffffffffffffffff"
camelia rakudo-moar 8401e0: OUTPUT«===SORRY!===␤chr codepoint cannot be negative␤»
AlexDaniel m: say "\xfffffffffffffffff"
camelia rakudo-moar 8401e0: OUTPUT«===SORRY!===␤chr codepoint cannot be negative␤»
Zoffix heh
diakopter lolz
AlexDaniel m: say "\xffffffffffffffffffffffffff"
camelia rakudo-moar 8401e0: OUTPUT«===SORRY!===␤chr codepoint cannot be negative␤»
kyclark m: my %foo = A => 2, B => 4; say %foo<A B C> »//» 0;
camelia rakudo-moar 8401e0: OUTPUT«(2 4 0)␤»
AlexDaniel m: say "\xfffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
camelia rakudo-moar 8401e0: OUTPUT«===SORRY!===␤chr codepoint cannot be negative␤»
kyclark m: my %foo = A ⇒ 2, B ⇒ 4; say %foo<A B C> »//» 0;
camelia rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wTF2OZxw1U␤Bogus term␤at /tmp/wTF2OZxw1U:1␤------> 3my %foo = A 7⏏5⇒ 2, B ⇒ 4; say %foo<A B C> »//» 0;␤ expecting any of:␤ argument list␤ infix␤ infix stopper…»
kyclark Just curious if I could use a Unicode => in hash assignment, but I guess not? 22:29
Zoffix wtf... you can use ⇒ ?
oh
Zoffix now sees the error message :)
22:29 pierre-vigier left
kyclark Seems like if the guillmets (sp?) work then the => might could ought to? 22:30
22:30 n0tjack left
masak I'm not so fond of that idea. 22:30
TimToady Zoffix: I just use gist.github.com/TimToady/0b68b598b74df83e1eee
masak kyclark: though if you want that in your own program, it's only a user-defined operator away 22:31
Zoffix m: sub infix:<⇒> ($k, $v) { Pair.new($k, $v); }; my %foo = A ⇒ 2, B ⇒ 4; say %foo<A B C> »//» 0;
camelia rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ezgazX83ok␤Preceding context expects a term, but found infix ⇒ instead␤at /tmp/ezgazX83ok:1␤------> 3$v) { Pair.new($k, $v); }; my %foo = A ⇒7⏏5 2, B ⇒ 4; say %foo<A B C> »//» 0;␤»
jnthn .u ⇒
yoleaux U+21D2 RIGHTWARDS DOUBLE ARROW [Sm] (⇒)
Zoffix I'm guessing that needs 'is-tighter' somewhere but I don't know how to do that part
TimToady but it should probably probe for gmake on systems where make is ungmake
masak Zoffix: oh, right. can't depend on key auto-quoting anymore.
Zoffix TimToady, thanks
ooooh :(
masak that would be a reason to make it core. though a weak one, IMO. 22:32
diakopter TimToady: or nmake on windows.. but why wouldn't it try to use the same one ....oh
jnthn masak: Could I do it with a macro? :D
Zoffix masak, I agree. I don't think real-life code will use that a lot and adding to core adds a bit of overhead IIUC 22:33
22:33 n0tjack joined
masak jnthn: benefiting from the code path that's already there for `=>` which auto-quotes identifiers in hash/pair key position? good question. 22:34
jnthn: a more young and naive me would answer "sure! macros can do *everything*!" -- but this stuff is hard. 22:35
diakopter let's find that younger and naiver masak
masak jnthn: especially intercepting things early enough in the parse and then release control flow back into an existing code path in the compiler. 22:36
releasing*
jnthn masak: yeah...
This one is easier slung I guess
masak aye
masak .oO( they slung of brave heroes of yore ) 22:37
22:37 n0tjack left
Skarsnik damn my NC patch get merged. It's weird nobody complain about warning in some modules now x) 22:37
22:38 _nadim left, _nadim joined 22:39 cpage_ left 22:40 spider-mario left, lucasb left
diakopter wonders how it would even be slung 22:40
22:40 Begi left 22:41 nadim joined, _nadim left
masak diakopter: overriding `token fatarrow` 22:42
diakopter arrowshaming 22:43
22:44 Skarsnik left
diakopter hmm, gotta love these animated emoji in subject lines in Gmail 22:44
22:44 _nadim joined
Zoffix is suddenly glad to not be using gmail 22:44
22:44 nadim left
Zoffix reads `man patch` to figure out how to apply TimToady's patch 22:45
masak 'night, #perl6
Zoffix "Copyright (C) ... Larry Wall" :)
You're just everywhere, aren't you? :)
masak, night
jnthn Zoffix: If you have a git checkout of rakudobrew then you can just `git apply foo.patch`
22:46 jack_rabbit joined
jnthn rest well, masak 22:46
diakopter 󾔮 2015 TAX RELIEF NOW AVAILABLE 󾓣
Zoffix jnthn++ oh, awesome thanks :)
diakopter ^ raw email subject
Zoffix .u 󾔮
yoleaux No characters found
diakopter o_O
Zoffix That displays as nothing for me
diakopter m: say "󾔮 "
camelia rakudo-moar 8401e0: OUTPUT«󾔮 ␤»
Zoffix well, as boxes with character codes in them
jnthn m: say uniname('�')
camelia rakudo-moar 8401e0: OUTPUT«REPLACEMENT CHARACTER␤»
Zoffix m: say uniname('󾔮') 22:47
camelia rakudo-moar 8401e0: OUTPUT«<Plane 15 Private Use>␤»
jnthn Dance, you funky replacement character
diakopter weird
jnthn Well, private use is the right place if it's specific to gmail
diakopter the one on the riht is a dollar bill
the left one is an envelope flying into a red mailbox 22:48
four frames or so
TimToady Private means something else to google than it does to us...
timotimo perhaps it's only used between the html and the font rendering? 22:51
lizmat is going to give her flu-ridden brane a rest
good night, #perl6!
timotimo get well soon, lizmat!
jnthn lizmat: 'night, hope the flu goes soon! 22:52
flussence App::uni says those are U+FE52E and U+FE4E3, which is kind of a silly thing to put in an email subject line 22:53
Zoffix App::uni?
22:54 espadrine joined
Zoffix sees that neither on P6 nor P5 ecosystems 22:54
flussence s/u/U/
Zoffix sees that on P5 ecosystem
Hm, a whole ton of modules with .travis.yml but dist not enabled on travis 22:58
Which also makes me realize caching travis results is futile even with the 24hr delay I put in 22:59
23:00 kyclark left
dalek href="https://modules.perl6.org:">modules.perl6.org: 97359e0 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/TravisCI.pm:
Do not accept "unknown" Travis status as a valid cached result
23:02
23:02 cpage_ joined 23:04 _nadim left, kyclark joined 23:05 _nadim joined 23:06 kid51 joined, rurban left 23:08 kyclark left
dalek href="https://modules.perl6.org:">modules.perl6.org: 6f828ed | (Zoffix Znet)++ | t/02-db-builder/06-postprocessor-travis.t:
Test that "unkown" Travis statuses are not cached
23:10
23:11 pmurias left, kyclark joined
smls_ Did we ever get syntactic sugar for attribute default values that are evaluated on first access rather than class build time? 23:13
jnthn No, and that probably won't actually be done as attributes anyway 23:15
But rather as a method marked with "is cached", and that trait will imply state per instance.
Since in that use case the attribute is something of an implementation detail
smls_ ok
jnthn "is cached" was pushed off to a future language version, though 23:16
Maybe for Divali :) 23:17
Zoffix m: class Foo { has $.x = sub { say 42; $!x = 50; $!x }; }; my $x = Foo.new; say "uhum"; say $x.x; say $x.x
camelia rakudo-moar 8401e0: OUTPUT«uhum␤sub () { #`(Sub|63207208) ... }␤sub () { #`(Sub|63207208) ... }␤»
Zoffix :(
RabidGravy but it's open for an ecosystem implementation or stubbed as NYI? 23:18
jnthn RabidGravy: Open for ecosystem impl
RabidGravy: Quite deliberately.
RabidGravy cool
jnthn RabidGravy: Also due to lexical scoping, anyone using an ecosystem impl will have their import be more narrowly scoped than the built-in one
RabidGravy I have no feelings about it personally :) 23:19
jnthn (When the built-in one comes back)
Zoffix "is lazy" as an attribute is just itching to be there :/
jnthn So people who do use ecosystem ones won't find they get their code broken if the built-in one behaves difference :)
smls_ For now I do something like:
has $!x; method x { ($!x //= ...) }
jnthn Zoffix: I don't think it's really the right hook
Zoffix At least to my mind, coming of P5 land, where I've used it tons
RabidGravy this is why I love perl 6 23:20
jnthn Zoffix: Though it's module-able for anyone who wants it :)
Zoffix OTOH, I used it lots 'cause you can't set attributes using other attributes at construction time (at least with Moo/Mew)
jnthn Ah...which you can in Perl 6
Attribute defaults run in order
Zoffix yeah
TimToady which might be the wrong order for C structs, but then, you're not gonna get much laziness out of C types... 23:21
RabidGravy Zoffix, then it's make it with the semantics you want, simple for people to ignore it if they don't agree
Zoffix RabidGravy, parse error: "then it's make it" 23:22
What do you mean?
RabidGravy "write code rather than expect others to do it" 23:23
Zoffix I don't know how :(
grondilu adding an instance variable for caching seems a bit ugly. I'd do: method x { (state %){self} //= ... } 23:24
23:24 kyclark left
RabidGravy right, I'm off. Have fun. 23:24
TimToady (%) should be sufficient
jnthn I can haz memory leak? :) 23:25
(Which is why "is cached" should do it by sneaking in an instance attribute)
Zoffix m: use experimental :cached; class Foo { has $!x; method x is cached { say 42; $!x = 50; $!x }; }; my $x = Foo.new; say "uhum"; say $x.x; say $x.x 23:26
camelia rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6l4Er8E79s␤'is cached' on methods not yet implemented. Sorry. ␤at /tmp/6l4Er8E79s:1␤»
Zoffix awww
23:27 hankache joined
grondilu m: class A { method x { (%){self} //= rand }; my $a = A.new; say $a.x xx 3 23:27
camelia rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KL1jAlGxPR␤Missing block␤at /tmp/KL1jAlGxPR:1␤------> 3//= rand }; my $a = A.new; say $a.x xx 37⏏5<EOL>␤ expecting any of:␤ postfix␤ statement end␤ statement modifier…»
grondilu m: class A { method x { (%){self} //= rand } }; my $a = A.new; say $a.x xx 3 23:28
camelia rakudo-moar 8401e0: OUTPUT«(0.279635064170307 0.279635064170307 0.279635064170307)␤»
grondilu m: class A { method x { (%){self} //= rand } }; my $a = A.new; say $a.x xx 3; say B.new.x
camelia rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ewkLE_3TXi␤Undeclared name:␤ B used at line 1␤␤»
grondilu m: class A { method x { (%){self} //= rand } }; my $a = A.new; say $a.x xx 3; say A.new.x
camelia rakudo-moar 8401e0: OUTPUT«(0.180993913554 0.180993913554 0.180993913554)␤0.11693324519052␤»
TimToady has %!mycache handles 'CACHE-THIS'
as jnthn points out, that's only useful if your objects are permanent 23:29
grondilu wonders if %{self} is syntactically ok
m: class A { method x { %{self} //= rand } }; my $a = A.new; say $a.x xx 3; say A.new.x
camelia rakudo-moar 8401e0: OUTPUT«Odd number of elements found where hash initializer expected␤ in method x at /tmp/sWVyb4bKLA:1␤ in block <unit> at /tmp/sWVyb4bKLA:1␤␤»
grondilu nope
23:29 RabidGravy left, pierre-vigier joined
grondilu m: say %{1, 2}.WHAT 23:30
camelia rakudo-moar 8401e0: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/DHDQgMw2_9:1␤␤»
23:30 cognominal joined
grondilu I don't know what %{something} is supposed to be 23:31
23:31 TEttinger joined
Zoffix hash initialized with {1, 2} ? 23:31
grondilu I thought that should be %(1, 2)
m: say %(1, 2).WHAT
camelia rakudo-moar 8401e0: OUTPUT«(Hash)␤»
Zoffix m: say {1, 2}.WHAT; say %(1, 2).WHAT; 23:32
camelia rakudo-moar 8401e0: OUTPUT«(Block)␤(Hash)␤»
Zoffix Well, it takes that block as "an element"
m: say %({1, 2}, 2).WHAT;
camelia rakudo-moar 8401e0: OUTPUT«Block object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/EdcMsbg3sP:1␤(Hash)␤»
Zoffix Never mind
Well... maybe
grondilu well it should really interepret it as (state %){somthing}, imho
nah I don't know. seems complicated. 23:33
23:33 pierre-vigier left
jdv79 so in the future will there be ways to soft fail a decoding? 23:34
grondilu I think that's a case where the parser should be allowed to die with a "confused" message.
jdv79 i encounted a iso08859-1 char today (194) and it just fails out hard
Zoffix m: say %({1, 2}).WHAT; 23:35
camelia rakudo-moar 8401e0: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/IJ1WX6QOoI:1␤␤»
jnthn jdv79: Yes; was on my wish list for 6.c, but didn't make it :(
jdv79 is there a workaround? 23:36
23:36 skids joined
jdv79 i guess i would wedge something in there... 23:36
jnthn: ok, thanks. 23:37
jnthn Well, workaround is to receive binary and then explicitly use .decode calls on the Bufs
23:38 kyclark joined
jdv79 right 23:38
23:39 kyclark left
jnthn That may be the longer term answer anyway, except there will be a streaming decoder API so you can take advantage of the VM's existing handling of multi-byte sequences and so on. 23:39
But if you're doing iso08859-1 that's a non-issue.
Zoffix hm, seems the useless use stuff completely broke Template::Mojo
23:40 grondilu left
Zoffix (at least based on looking at its test results) 23:40
jdv79 well, this particular stream should be utf-8. its just that someone jambed a random iso8859-1 char in there.
jnthn
.oO( :enc<heck-knows-just-do-something>
23:42
)
jdv79 basically
jnthn Time for some rest...'night o/ 23:43
Zoffix night
jdv79 goodnight
23:43 BenGoldberg joined 23:46 flussence left 23:50 jack_rabbit left, flussence joined
Zoffix nine, TimToady Inline::Perl5 still fails with the freshly-squeezed rakudobrew triple: gist.github.com/zoffixznet/7b1f4d6680517bd2ecc6 23:52
23:54 grondilu joined, cdg left 23:56 Psyche^_ joined
skids Hrm I just installed it on 8401e01-*-* just fine. 23:58
Ergh still with the run_alt though :/ 23:59