»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
dha All right, I'm probably going to run out of internet shortly. Time to take a break, methinks. 00:06
00:06 dha left
[Coke] dha++ 00:07
00:12 huf left 00:19 captain-adequate left
TimToady m: constant term:<½> = 1/2; say ½ 00:21
camelia rakudo-moar 7b5256: OUTPUT«0.5␤»
00:21 vendethiel left
TimToady AlexDaniel: ^^^ 00:21
TEttinger nice! 00:22
TimToady thing is, ½ is not alphanumeric
m: say '½' ~~ /\w/
camelia rakudo-moar 7b5256: OUTPUT«Nil␤»
TimToady and only alphanumerics get treated as identifier fodder
so any other term has to use the term:<> notation, just as you'd use infix:<> and such 00:23
timotimo m: my ${a} = 5 00:27
camelia rakudo-moar 7b5256: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fXNPEaD97k␤Undeclared routine:␤ a used at line 1␤␤»
timotimo TimToady: was it you who recently changed this? we have a test that expects that to throw X::Obsolete 00:28
for RT #112470
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=112470
timotimo std: my ${a} = 5 00:29
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routine:␤ 'a' used at line 1␤Check failed␤FAILED 00:00 138m␤»
timotimo well, that ticket is "STD doesn't accept this, but rakudo does"
and now STD accepts it and rakudo does as well; so maybe that ticket should be re-opened with the new intended behavior and the test removed from the spec test suite?
AlexDaniel TimToady: thanks 00:38
00:38 zxvcd joined 00:39 zxvcd left
AlexDaniel m: constant xxx = 1/2; say xxx; 00:40
camelia rakudo-moar 7b5256: OUTPUT«0.5␤»
AlexDaniel m: constant term:<xxx> = 1/2; say xxx;
camelia rakudo-moar 7b5256: OUTPUT«0.5␤»
AlexDaniel any reason why second variant takes 0.5s more to run?
00:40 lolisa left
timotimo how many runs have you tried? 00:47
to de-noise the measurement i mean 00:48
TimToady takes about .15 more seconds here
it's probably the overhead of constructing a new lexer for the new language
one of the many things that can probably be optimized some to make the parser faster 00:50
timotimo feel free to put such an optimization in ;) 00:53
timotimo is probably going to bed now
AlexDaniel timotimo: 0.3s vs 0.8s, I'm not sure that there is any need to denoise anything 00:57
one code is clearly slower than the other one...
00:57 VinceDee joined 00:59 jack_rabbit joined 01:02 laouji joined 01:04 aborazmeh joined, aborazmeh left, aborazmeh joined 01:05 BenGoldberg joined 01:09 atroxaper joined 01:14 atroxaper left
tony-o AlexDaniel: how many iterations did you do to get those numbers? 01:17
AlexDaniel tony-o: you want me to do a scientific reseach on that subject when the problem is so clearly present? 01:21
tony-o: or do you get the opposite result?
tony-o its not scientific research its basic benchmarking 01:23
and yes, i think testing something dealing with time more than n=1 is a good idea 01:24
01:24 telex left
AlexDaniel I ran it a couple fo times, but ok, hold on a sec 01:25
ugexe scientific method 187 mutha flukka
tony-o lol
01:26 telex joined 01:34 dayangkun joined, n0vacane joined, n0vacane left
AlexDaniel tony-o: 0.7544 and 0.2947, average on 105 runs excluding 5 preliminary runs 01:37
yes, I have some background processes running, sorry
01:38 vendethiel joined
tony-o what about jvm 01:43
AlexDaniel good question 01:44
actually, I have never tried to run it on jvm ever 01:45
by the way, I messed the second number a little bit, here is a true one: 0.281
ugexe it only took 9 hours but i was able to finally dance around moarvm on windows problem printing "\r" 01:46
unfortunately i was unable to discover the root of the problem in moarvm itself :( 01:47
AlexDaniel tony-o: gist.github.com/AlexDaniel/7fce54c1e6d93b4d424d 01:53
AlexDaniel shrugs
01:59 yeahnoob joined
AlexDaniel so unless somebody can understand what is being wrong with building jvm, I can't really measure it 02:00
02:00 vendethiel left
AlexDaniel actually, I'm pretty sure that I was able to use rakudo on top of jvm 6 months ago 02:01
so perhaps something is broken now
02:02 huf joined
AlexDaniel Unhandled exception: java.lang.NoClassDefFoundError: Could not initialize class java.lang.Shutdown 02:04
does it even exist in java 8?
02:05 noganex joined
AlexDaniel oh look: gist.github.com/tony-o/ca71572bc9fe0e25f28d 02:06
02:08 noganex_ left 02:20 [particle] left 02:26 govt joined 02:27 govt left, govt joined, govt left, govt joined 02:29 tinyblak joined 02:38 rmgk_ joined, rmgk is now known as Guest71609, Guest71609 left, rmgk_ is now known as rmgk 02:48 coffee` left
kanl gurus, would multi-threaded lock-free r/w access to a weakly mutable array, or parcel be safe, given that each thread only accesses one unique corresponding element in the array/parcel? i.e. if i were to have 5 processes running with Proc::Async, each stdout tap catenates to its own correponding string in an array. can i safely do so without race? 02:50
02:51 vendethiel joined 02:59 AlexDaniel left 03:00 [particle] joined, JimmyZ_ joined 03:03 [particle]1 joined 03:04 [particle] left
skids kanl: the VM gurus all likely all asleep. 03:13
03:13 vendethiel left, [particle] joined
kanl no worries, i can wait :) 03:14
skids As a wild guess I would suspect that would be OK if the threads bound directly to the elements. 03:15
like:
m: my $a = [1,2,3]; my $b := $a[0]; $b++; $a.say;
camelia rakudo-moar 7b5256: OUTPUT«2 2 3␤»
03:15 [particle]1 left 03:16 bin_005 joined
ugexe why not use a channel 03:18
its made for that type of stuff afterall
kanl yes, i'd have to use channel(s) anyway, even for catentating the output. since stdout/stderr is not tapped in its entirety, like say for example if you run a 'ps' command, stdout tap breaks the output ad-hoc, i'd have to piece it together with a channel/supply inside the tap. 03:20
unfortunately, no documentation on this behavior. i found out through trial and error 03:21
ugexe ive not run into that. can you explain in more detail? 03:22
i generally just create a class with an attribute i write to for each process 03:23
github.com/ugexe/zef/blob/master/l...lt.pm6#L28
kanl i'm not saying it's a problem, it may be so by design, but that's the behavior i observed.
ugexe where i run 5-10 processes at a time
03:24 [particle]1 joined
ugexe and get lots of stdout quickly 03:24
03:25 [particle] left
ugexe is it actually breaking the output, or is it just not printing it to the screen correctly? 03:25
kanl looking at your code, i'd worry about interleafing output. 03:26
since tap does not guarantee order
ugexe order is always correct 03:27
kanl the behavior i observed is that stdout.tap certainly does not break by newline 03:28
and stderr/stdout may be interleaved
perhaps you've been lucky with the command you run. but not all commands guarantee stdout/stderr output in an ordered fashion. 03:29
ugexe well i run 10+ commands per test run, of which i do 20-50 a day 03:30
not that you are incorrect. but i would also need to be extremely lucky
kanl if tap does what documentation says it does, then your code doesn't look safe, just saying :) 03:31
ugexe hopefully someone tells whoever merged it into panda 03:32
kanl mind you though, i basically just fell off the proverbial turnip truck, in terms of p6 :) so i 03:33
i may not know what i'm saying :)
03:33 [particle] joined
kanl from what i read in the docs, 'act' guarantees contention free, but tap does not. 03:35
03:35 [particle]1 left
ugexe there are some strange bugs with newlines which could have something to do with it 03:35
kanl that perhaps is by design, since programs don't necessarily break up output by newline. 03:36
ugexe its not by design 03:37
maybe its fixed now. i cant find the comment in the moar repo :) 03:41
03:41 atroxaper joined 03:45 geekosaur left 03:47 geekosaur joined 03:48 tinyblak_ joined 03:51 tinyblak left, bin_005 left 03:53 JimmyZ_ left 04:00 tinyblak_ left 04:01 tinyblak joined 04:05 tinyblak left
kanl ugexe: thanks much. encapsulation with class would indeed be a workaround for my problem. but i'd still like to know for sure :) 04:05
04:10 diakopter joined, lsm-desktop joined
diakopter heya, t/04-nativecall/02-simple-args.t and t/04-nativecall/03-simple-returns.t fail on my USB Armory build 04:10
also t/04-nativecall/13-union.t 04:12
summary report: gist.github.com/diakopter/a280c203bc1bbc871fd8 04:13
fyi, uname -a says Linux usbarmory 4.0.2 #2 PREEMPT Thu May 7 15:59:08 CEST 2015 armv7l GNU/Linux 04:14
04:15 vendethiel joined 04:20 tinyblak joined
atroxaper Is there something like @list.contains('a'); ? 04:28
'a' ~~ any(@list) 04:30
04:30 BenGoldberg left 04:32 raiph left
dalek Iish: b8260de | hoelzro++ | t/99-common.pl6:
Verify that a query with no results has a falsy value
04:33
Iish: fbe5826 | hoelzro++ | lib/DBDish/Pg.pm6:
Return an empty Parcel if we have no results in Pg

Otherwise, fetchrow-hash ends up being a non-falsy value
Iish: 03738e3 | hoelzro++ | t/99-common.pl6:
Make sure exhausted statements have falsy results
Iish: 2cfecb9 | moritz++ | / (2 files):
Merge pull request #12 from hoelzro/master

Fix bug where Pg driver would still have truthy results from fetchrow-hash
04:34 kaare_ joined 04:37 atroxaper left 04:42 khw left 04:48 jack_rabbit left
FROGGS_ diakopter: can you gist details of the test runs? 05:03
05:04 FROGGS_ left 05:05 tinyblak_ joined 05:08 tinyblak left 05:24 laouji left, laouji joined 05:25 aborazmeh left, laouji left 05:26 laouji joined 05:27 vendethiel left 05:30 vendethiel joined 05:33 skids left 05:46 Psyche^ joined 05:52 vendethiel left
grondilu more spaceships :-) grondilu.github.io/oolite/ships.html 05:55
I rewrote the Perl6 script for mesh conversion and it's much more robust apparently.
05:56 rurban joined, yeahnoob left 05:58 laouji left 06:02 aindilis left, aindilis joined 06:06 yeahnoob joined 06:10 diana_olhovik_ joined 06:12 gfldex joined 06:25 atroxaper joined 06:28 govt left 06:29 RabidGravy joined
RabidGravy marnin 06:31
atroxaper RabidGravy: o/
06:33 _mg_ joined 06:38 [particle] left 06:39 [particle] joined 06:41 gfldex left 06:46 domidumont joined 06:51 domidumont left, domidumont joined 06:52 geekosaur left 06:53 laouji joined 06:54 geekosaur joined 06:56 amurf left
dalek ast: 305ca31 | usev6++ | S17-promise/basic.t:
Add test for RT #125257
06:57
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125257
07:02 zakharyas joined
cdc Hello #perl6 07:11
m: say "cdc".trans(:c<d>)
camelia rakudo-moar 7b5256: OUTPUT«cdc␤»
cdc say "cdc".trans('c' => 'd')
m: say "cdc".trans('c' => 'd')
camelia rakudo-moar 7b5256: OUTPUT«ddd␤»
07:12 espadrine joined
cdc is it expected ^ (it doesn't work when using adverbial form of Pair) ? 07:13
moritz cdc: yes; with the adverbial form, it's passed as a named argument, with 'c' => 'd' it's passed a positional argument that happens to be pair
and .trans expects the substitutions as positionals 07:14
cdc moritz: oops, my bad. Thanks!
moritz m: say "cdc".trans((:c<d>)) # another way to make it a positional
camelia rakudo-moar 7b5256: OUTPUT«ddd␤»
masak morning, #perl6 07:18
...and "interface consistency" prevents us from showing a warning instead of silently swallowing the named... :) 07:19
07:20 Ven joined
moritz finds that ":(", not ":)" 07:21
good morning, masak 07:22
07:22 Ven left
masak I was trying to give it a positive spin... :) 07:22
I don't want to be seen mindlessly bashing interface consistency, because I see the point of it, and I don't have a better idea.
moritz well, I don't really see the point 07:24
one has to be mindful of the signatures of the methods one calls
why should be that different for methods from superclasses? 07:25
masak because nameds are optional
07:25 g4 joined, g4 left, g4 joined
moritz so what? 07:25
you still have to adhere to the API you use
masak mumbles while he tries to construct a coherent argument 07:26
by S12: "so that C<nextsame> semantics work consistently." 07:27
m: class C {}; class D hides C {}
camelia ( no output )
masak huh :)
TIL.
moritz IMHO nextsame is a weak argument 07:28
masak yes, possibly
moritz if you add an option you want to process, but don't pass on to the parent classes' method, you can just say method new(:$foo, *%rest) { process($foo); nexwith |%rest }
ShimmerFairy I have always said that the implicit *%_ is kinda dumb. Am I hearing people agree with me? :)
masak we could try it today. make a Rakudo branch and rip out the implicit *%_. see what happens. 07:29
suggested branch name: `interface-inconsistency` :P
moritz masak: I have to $dayjob, but if you do it, I'd be very happy :-)
ShimmerFairy masak: fwiw, I've ONLY ever seen people tripped up by implicit *%_ , and never thankful for it instead.
masak moritz: I'll try.
ShimmerFairy: indeed.
moritz ShimmerFairy: but that's confirmation bias; you don't notice it when it saves your butt 07:30
masak moritz++ # bias alert
ShimmerFairy moritz: I've never understood how it could save my butt in the first place. "nextsame" is a weak and vague argument.
07:30 rurban left
ShimmerFairy moritz: I get the bias of course, but I've never seen a concrete example of how implicit *%_ is useful. 07:30
moritz ShimmerFairy: well, one valid argument might be mutli inheritance; it saves you the hassle to figure out which adverbs to pass to which of the parent classes methods 07:31
masak could also be something with multis spread across the inheritance hierarchy
kanl repeating a previous question, is it by design or a bug that Proc::Async stdout does not tap output in its entirety? ( i thought it's neither )
ShimmerFairy If that's something you need to worry about, you can always specify your own *% var :) 07:32
moritz kanl: sounds like a bug
ShimmerFairy: well, the author of the parent classes would need to do that
masak kanl: please submit an issue on the project with pertinent details
moritz or maybe it should be the caller that decides that extra named args should be ignored 07:33
kanl masak: do you mean opening a bug? just making sure.
moritz "I'm passing you a bunch of stuff, but I don't mind if you throw some of it away"
masak kanl: yes.
kanl thanks. will do.
ShimmerFairy masak: speaking of wrecking interface consistency, I still haven't gotten an explanation for the change in spelling of MONKEY_TYPING :) . (In case you didn't catch it, my brain basically considers _ an uppercase - in Perl6-land) 07:34
moritz ShimmerFairy: well, I don't consider _ an uppercase - 07:35
and it's the first time I've heard that connection
*about
masak I agree with ShimmerFairy
ShimmerFairy moritz: on my US keyboard, Shift+- leads to _ , so when I can use - in identifiers too, it's bound to happen :)
masak but I'm too tired to fight the tide of ridiculous renaming
ShimmerFairy masak: I know bikeshedding is a useless game, I just want to know why the shed is suddenly a different color, considering the last one wasn't bad to my eyes. :) 07:36
masak ShimmerFairy: enough people seem to agree that FOO-BAR is preferable in Perl 6 core to FOO_BAR 07:37
that's it.
ShimmerFairy Enough people aren't bothered with changing the pressed state of their shift key mid-term, then :P
masak seems not
ShimmerFairy I personally think it's such a useless thing to change for allcaps names that I kinda want to fight just as strongly for the superior choice, despite the fact that it's a useless thing to change :P 07:38
masak be my guest
ShimmerFairy Like I said last night, MONKEY-TYPING looks weird to me kinda like how something like SYSTeM would. 07:39
I think for now, the best course would be to keep asking people _why_ the hyphen is better in all-caps names :) 07:40
RabidGravy I think TimToady may have suggested last night that it was decided precisely because it is harder to type
masak I don't like that argument, even if it was TimToady who made it.
RabidGravy in that particular case
masak interesting. a bunch of methods in Temporal.pm explicitly declare *%_ 07:41
ShimmerFairy Well, not only is it not harder (which is why it's such a paradoxically useless thing for me to keep arguing about), it's also not how you discourage usage
masak all of them are .new and .clone methods
moritz masak: those that pass them along to other methods
ShimmerFairy RabidGravy: I'd prefer use MONKEY_TYPING :yes-really; or something like that, for deterring usage.
DrForr Well, I prefer it because it makes it just that much clearer that you're using perl6 rather than perl5 and helps me to keep the two separated.
masak m: class C { method foo { say %_.perl } }; C.new.foo(:bar(42)) 07:43
camelia rakudo-moar 7b5256: OUTPUT«{:bar(42)}<>␤»
RabidGravy I've never actually typed it so I don't really have any feelings about it all
ShimmerFairy
.oO(The minorest changes require the majorest explanations, it seems.)
07:44
masak I'm not sure I'm familiar enough with the compiler code to rip out *%_ 07:45
I'd be happy to have someone walk me through it
07:46 telex left
moritz masak: seems to me Perl6::World method create_signature_and_params 07:47
unless @params[+@params - 1]<named_slurpy> || @params[+@params - 1]<is_capture> {
unless nqp::can($*PACKAGE.HOW, 'hidden') && $*PACKAGE.HOW.hidden($*PACKAGE) {
@params.push(hash(
variable_name => '%_',
nominal_type => self.find_symbol(['Mu']),
named_slurpy => 1,
is_multi_invocant => 1,
sigil => '%'
));
$lexpad[0].unshift(QAST::Var.new( :name('%_'), :scope('lexical'), :decl('var') ));
$lexpad.symbol('%_', :scope('lexical'));
}
sorry, I underestimated the size of the paste
masak 's ok
moritz++ 07:48
yes, that seems to be the one.
07:48 telex joined
moritz grapped for %_ in src/Perl6/ and skimmed through the matches 07:48
*grepped
masak I did too, but somehow missed that one 07:49
oh, there it is :)
m: class C { method foo(*%_, *@_) { say "OH HAI" } }; C.new.foo 07:50
camelia rakudo-moar 7b5256: OUTPUT«===SORRY!===␤Lexical '%_' already declared␤»
masak submits rakudobug
the joys of reading source :>
S06:1105: sub duplicate($n, *%flag, *@data) {...} 07:52
synbot6 Link: design.perl6.org/S06.html#line_1105
masak so it's allowed.
07:53 abraxxa joined
ShimmerFairy m: class C { method foo(*%a, *@b) { say "OH HAI" } }; C.new.foo 07:53
camelia rakudo-moar 7b5256: OUTPUT«OH HAI␤»
07:54 dayangkun left
masak m: class C { method foo(*%a, *@b) { say +%a; say +%_ } }; C.new.foo 07:56
camelia rakudo-moar 7b5256: OUTPUT«0␤0␤»
masak m: class C { method foo(*%a, *@b) { say +%a; say +%_ } }; C.new.foo(:bar)
camelia rakudo-moar 7b5256: OUTPUT«1␤1␤»
07:56 dayangkun joined 07:59 dakkar joined
kanl oops.. the [BUG] moniker is optional, apparently 08:12
sorry about the dup.
08:12 atroxaper left
masak the [BUG] thing causes RT to add a tag to the ticket, IIRC. 08:13
08:13 darutoko joined
kanl i see. another question regarding Proc::Async 08:14
irclog.perlgeek.de/perl6/2015-06-30#i_10824513
masak is no expert on channels/taps, unfortunately 08:15
kanl anyone please? :)
RabidGravy I'm not sure what the question is 08:17
ShimmerFairy masak: btw, one of my first (failed) attempts at multithreading was a DLX solver, because no way am I waiting two weeks to generate the number of hexslide boards. Too bad I didn't get to try hexslide boards with it 08:18
masak RabidGravy: the link above, one step before the linked thing
ShimmerFairy (the solver worked, just not when you tried multithreading it :P)
masak ShimmerFairy: I can see how multithreading DLX would open a can of hurt, yes.
kanl RabidGravy: in ugexe++'s code example, should i be worried about output being interleaved?
since .tap does not guarantee contention free 08:19
ShimmerFairy masak: funny enough, it still worked after making it fit with multithreading, but only so long as I told the thread manager to limit itself to one thread.
kanl RabidGravy: stdout and stderr both updating the same string could be a race , no?
masak ShimmerFairy: that means you didn't get the threading right :P 08:21
08:21 brrt joined, espadrine left
ShimmerFairy it also means I didn't fundamentally break the solver part when reworking it for threads :P 08:21
masak ShimmerFairy: part of the benefit of DLX is that you can do everything on a single data structure without allocating anything new during processing. I'm not sure that's true anymore for a multithreaded program.
ShimmerFairy but it's sooo sloooow for even moderately-sized inputs 08:22
masak the Perl 6 version, maybe.
the C version is blazingly fast.
ShimmerFairy masak: not for my C++ version (to be fair, my patience for stuff doesn't last the hour or so moderate inputs start reaching, it feels like I did something wrong with the code if it's gonna take that long) 08:24
masak ShimmerFairy: combinatorial problems are like that. they get slow for quite small N.
08:24 [TuxCM] joined 08:25 kerb joined
masak heh -- reading github.com/masak/dlx-simple I feel like getting back to the vision specified therein. 08:25
ShimmerFairy masak: I remember Knuth's paper on DLX mentioning how more-specialized algorithms are always better, so that's made me want to know what the specialized algorithm for hexslide is :)
RabidGravy kanl, I don't think there is a race condition inasmuch as the capturing is done in a Lock.protect but I'm struggling to follow the code right now 08:27
kanl with the current bug with stdout/stderr's tap, interleaving should definely occur. but that's another problem besides race. 08:31
(if there is a race at all)
if the taps on stdout and stderr are on different supplies, and there's no lock between the two, then i'd worry about race, in said situation, where the same string is updated by both taps. 08:35
08:36 abraxxa left, abraxxa joined
kanl it may be extremely rare to run into, since most programs don't output stdout and stderr at the same time. but it could/should occur, if my conjecture is right.. 08:37
lizmat have you tried using .act instead of .tap ?
.act is guaranteed to only run in only one thread at a time 08:38
kanl i would use .act, but it's not my code :)
lizmat afk again& 08:40
kanl lizmat: but yes, you answered my question/consider, thanks.
*concern* even. 08:43
08:45 amurf joined
masak lizmat++ 08:45
kanl lizmat++ of course :) 08:46
08:48 Ven joined
kanl it would be nice for Proc::Async's documentation to advise on the use of act instead of tap in said situation. 08:49
08:49 amurf left
kanl doc.perl6.org/type/Proc::Async makes no mention of act :/ 08:49
08:51 atroxaper joined
jnthn morning, #perl6 08:51
yoleaux 29 Jun 2015 22:51Z <TimToady> jnthn: I'm fine with the default FAILGOAL backtracking
jnthn \o/
masak jnthn! \o/
08:52 itz joined
itz morning 08:52
jnthn On the "can I have a bunch of threads that each write to a different array element" in the backlog
1) Only if it's a fixed size array ("implemented soon!")
2) But don't do it anyway, because false sharing.
08:53 Ven left
kanl *nods*, jnthn++ 08:53
nwc10 good UGT jnthn 08:58
good UGT itz
and everyone else I've missed
jnthn: why is that particualrly \o/ ?
jnthn nwc10: Because it means I can fix the second-oldest RT ticket in the Perl 6 queue 08:59
09:00 espadrine joined, atroxaper left
nwc10 ah OK 09:01
09:04 Ven joined
bartolin jnthn: you mentioned RT #81682 yesterday and tagged it 'testneeded'. ISTR looking at it earlier and wondering whether binding to a typed array with a container of a wrong type is really ok ... 09:05
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=81682
bartolin m: my Int @a = 1, 2, 3; my Str $x = "foo"; @a[0] := $x; say @a[0];
camelia rakudo-moar 7b5256: OUTPUT«foo␤»
bartolin m: my Int @a = 1, 2, 3; @a[0] := "foo"; say @a[0];
camelia rakudo-moar 7b5256: OUTPUT«foo␤»
bartolin there is also RT #123769 which states that the second evaluation should die with X::TypeCheck
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123769
jnthn bartolin: Then I'd leave that "should crash" case to the ticket covering it, and close this one by adding tests for the cases that shouldn't crash, but used to 09:06
bartolin jnthn: sounds good, will do that. thanks for looking 09:07
09:07 atroxaper joined 09:12 bin_005 joined
RabidGravy I think the weather precludes making software today -> seaside 09:18
nwc10 Whistable?
09:18 Ven left
RabidGravy I think so, it would be rude not to 09:18
nwc10 :-)
have fun
RabidGravy :)
itz hmm I think there is some Proc::Async oddness on OS X only 09:23
kanl itz: gist.github.com/anonymous/79a7e59cf3160f6ac09e 09:24
i run ubuntu 09:25
observe line 58 on test output
itz ah I would have missed that 09:26
I'm seeing "Use of Nil in numeric context in block at lib/Panda/Builder.pm:125" on OS X and not debian stable 09:28
09:29 RabidGravy left 09:32 AlexDaniel joined 09:40 yeahnoob left 09:42 JimmyZ_ joined 09:45 tinyblak_ left 09:46 JimmyZ_ left
itz I think my issue is different 09:47
09:48 kanl left 09:49 kanl joined 09:53 brrt left 09:54 uncleyear left, uncleyear joined
itz #125516: "Use of Nil in numeric context" warning seen with Proc::Async exitcode on OS X Ony 09:55
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125516
10:08 smls joined
smls Is is possible that HTTP::UserAgent sometimes gives back mangled 10:08
response content?
tadzik is it reproducible?
smls For example: gist.github.com/smls/00da52790c206c448a25 10:09
tadzik: No, seems to only happen sometimes
tadzik :|
smls that example content is from rosettacode.org/wiki/Rosetta_Code/R...ng_the_API
[add a spurt "rosetta-{(^1000).pick}.json", $response.content; line before the from-json line, and run it a few times] 10:10
It wouldn't be Mediawiki *sending* that broken content, would it? 10:12
10:12 dayangkun left
smls btw, timotimo: this^^ means I was probably wrong to think JSON::Fast had bugs, it was probably just a matter of broken inputs. 10:15
sjn sees a couple failing tests on Linux Jolla 3.4.106.20150416.1 #1 SMP PREEMPT Thu Apr 23 02:16:13 UTC 2015 armv7l armv7l armv7l GNU/Linux 10:18
10:20 cognominal joined
smls tadzik: It doesn't happen in the majority of runs, but still frequently enough that you could call it sort-of-reprodicible... :P 10:28
10:28 TEttinger left
tadzik sjn: spectests? 10:29
sjn no, regular make test
I'm filing a rakudobug atm 10:30
tadzik oh, so you got rakudo to run, awesome :)
10:31 brrt joined
sjn the bugs are all NativeCall related 10:32
10:34 amurf joined 10:39 amurf left 10:42 atroxaper left 10:46 tinyblak joined 10:47 atroxaper joined 10:50 itz left 10:51 tinyblak left
dalek ast: 8dd0ebb | usev6++ | S09-typed-arrays/arrays.t:
Add test for RT #81682
10:52
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=81682
DrForr sjn: Oh? I'm using it for readline, what have you encountered? 11:06
11:14 bin_005 left
sjn DrForr: not much, this was just something I encountered when building/installing rakudo on my phone 11:16
DrForr "just" the man says :) 11:17
11:20 vendethiel joined 11:22 laouji left, hoelzro_trying_w left 11:23 tinyblak joined, hoelzro_trying_w joined
masak sjn++ # because who wouldn't want Perl 6 on their phone 11:23
timotimo kanl, ugexe, we run Proc::Async on the event loop, the tapped code runs there as well 11:24
at least to my understanding
jnthn Nope
timotimo oh, okay
that's good to know :)
11:24 hoelzro joined
jnthn The event loop puts the code to run into the scheduler's queue 11:24
timotimo er, i meant to say: the stdout/stderr reading
jnthn It is then executed. 11:25
timotimo i think i don't know how exactly ".tap" "scopes" its exclusivity
jnthn .tap doesn't, it's .act that enforces "one at a time"
timotimo er, that's the one i meant
jnthn Though arguably we should enforce one-at-a-time semantics for I/O things by default 11:26
Certainly I'd prefer it be that way
timotimo so the stdout_bytes/stdout_chars/... would just do a .act( { $_ } ) appended to it before returning the supply users could tap? 11:27
would that be enough at all?
probably not
jnthn Well, I'd like to take a leaf from RxJava and introduce some explicit serialize/parallelize operators, I think.
But the I/O ones also need to care about the sequence number stuff 11:28
jnthn should spend some time on this stuff, but wants to focus on multi-dim/fixed size array stuff more immediately. 11:30
timotimo right
11:33 Sqirrel joined 11:37 kerb left 11:44 vendethiel left 11:47 vendethiel joined, govt joined 11:52 atroxaper left
masak I am happy to report that the Perl 6 version of dlx-solver has not bitrotted. \o/ 12:04
timotimo that's cool
12:10 vendethiel left
masak I only needed to change one `is_deeply` to `is-deeply`. but all the tests passed and everything. 12:12
that's for a non-trivial project that I last touched in 2012. 12:13
jnthn Much wow.
brrt \o/ 12:20
12:27 domidumont left 12:28 domidumont joined 12:29 itz joined 12:30 nys joined, tinyblak left
dalek ast: d81f538 | (Steve Mynott)++ | S (4 files):
throws_like changed to throws-like
12:34
smls m: for Grammar.^methods { say .name; $_ ~~ Any } 12:40
camelia rakudo-moar 7b5256: OUTPUT«parse␤subparse␤parsefile␤FAILGOAL␤Invocant requires a 'Failure' instance, but a type object was passed. Did you forget a .new?␤ in block <unit> at /tmp/i0y3DW29lg:1␤␤»
smls ^^ jnthn, did you make any progress with the NPQ methods leaking out through Grammar?
12:40 vendethiel joined 12:41 [Sno] left
jnthn smls: Not yet 12:41
smls: Well, but they should in theory get exposed as a ForeignRoutine or so
smls m: for Grammar.^methods { say .name; say .WHAT } 12:42
camelia rakudo-moar 7b5256: OUTPUT«parse␤(Method)␤subparse␤(Method)␤parsefile␤(Method)␤FAILGOAL␤Method 'gist' not found for invocant of class 'NQPRoutine'␤ in block <unit> at /tmp/XjDrUydDJR:1␤␤»
12:42 [Sno] joined
smls heh 12:42
jnthn Yeah, that's the issue...the NQP object is sneaking into Perl 6 land. 12:43
smls Should I open a rakudobug for it? 12:45
jnthn Can do
smls ok
12:45 kanl left
jnthn We'd kinda like the introspection to work out there 12:46
12:53 atroxaper joined 12:58 atroxaper left
tony-o that is the same problem with the grammar debugger :-) 12:58
smls tony-o: Exactly 13:02
13:02 vendethiel left 13:04 Ven joined 13:09 vendethiel joined 13:12 zakharyas left, aborazmeh joined, aborazmeh left, aborazmeh joined 13:13 notch joined 13:17 zakharyas joined 13:18 tinyblak joined 13:20 diana_olhovik_ left 13:23 diana_olhovik joined 13:31 sjn_phone_ joined 13:36 g4 left 13:38 sjn_phone_ left
dalek ast: 1d14062 | (Steve Mynott)++ | S02-names/pseudo.t:
$*PROGRAM_NAME is now $*PROGRAM-NAME
13:39
tony-o m: $*PROGRAM-NAME.say; 13:40
camelia rakudo-moar 7b5256: OUTPUT«/tmp/1k1WwHXDNA␤»
13:42 Possum joined 13:44 atphalix joined
smls What exactly is the purpose of $*PROGRAM-NAME if we already have $*PROGRAM.basename ? 13:47
13:48 brrt left
Ven m: '3' ~~ /$<x>=\d/; say :$<x> 13:48
camelia rakudo-moar 7b5256: OUTPUT«Unexpected named parameter 'x' passed␤ in block <unit> at /tmp/IniAUAtHbm:1␤␤»
Ven m: '3' ~~ /$<x>=\d/; say $<x>
camelia rakudo-moar 7b5256: OUTPUT«「3」␤»
tony-o m: say $*PROGRAM.basename 13:49
camelia rakudo-moar 7b5256: OUTPUT«6vO7iPBRDR␤»
smls if $*PROGRAM.basename is for some reason not safe or desirable, maybe $*PROGRAM should be an object instead (lie $*USER and $*KERNEL) so one would write $*PROGRAM.name vs $*PROGRAM.path
tony-o m: say $*PROGRAM.WHAT 13:50
camelia rakudo-moar 7b5256: OUTPUT«(IO::Path)␤»
13:50 JimmyZ_ joined
tony-o m: say $*PROGRAM-NAME.WHAT 13:50
camelia rakudo-moar 7b5256: OUTPUT«(Str)␤»
tony-o m: say $*PROGRAM.path
camelia rakudo-moar 7b5256: OUTPUT«/tmp/fLqgG9rjtG␤»
smls Having both $*PROGRAM and $*PROGRAM-NAME though, seems like unclean API design
tony-o smls++ . program name can be coerced from program it looks like 13:51
13:51 JimmyZ_ left
tony-o maybe there is a difference depending on how theyre started?.. 13:51
13:51 JimmyZ_ joined
smls $*PROGRAM.basename works even for one-liners (it returns "-e", like $PROGRAM-NAME) 13:52
a special $*PROGRAM object could have the luxury of setting its .name to an undefined value in that case, which would be cleaner 13:53
(because one could in theory have a real file named -e)
13:53 skids joined
smls $*PROGRAM.gist/.Str could still return "-e" for one-liners 13:53
^^ lizmat? 13:55
lizmat fwiw, I only inherited this design, am not sure as to the rationale 14:00
jnthn refrains from a pun about preferring composition over inheritance :P
14:02 yary joined
jnthn (And agrees it's a little odd that we have the two) 14:02
smls m: class A does Positional { has @!a is rw; method AT-KEY ($k) { @!a[$k] }; method ASSIGN-KEY ($k, $v) { @!a[$k] = $v } }; my @x := A.new; @x[0] = 42; dd @x.a 14:06
camelia rakudo-moar 7b5256: OUTPUT«Potential difficulties:␤ useless use of 'is rw' on @!a␤ at /tmp/edMtqncF7r:1␤ ------> 3class A does Positional { has @!a is rw7⏏5; method AT-KEY ($k) { @!a[$k] }; method␤Cannot modify an immutable A␤ in block <unit> at /tmp/edMtqn…»
smls ^^What am I missing?
14:07 atphalix left
lizmat m: class A does Positional { has @!a; method AT-KEY ($k) { @!a[$k] }; method ASSIGN-KEY ($k, $v) { @!a[$k] = $v } }; my @x := A.new; @x[0] = 42; dd @x.a 14:07
camelia rakudo-moar 7b5256: OUTPUT«Cannot modify an immutable A␤ in block <unit> at /tmp/w33f3E9oYj:1␤␤»
timotimo m: class test { has @!a is rw }
camelia rakudo-moar 7b5256: OUTPUT«Potential difficulties:␤ useless use of 'is rw' on @!a␤ at /tmp/sjRGfolOar:1␤ ------> 3class test { has @!a is rw 7⏏5}␤»
timotimo you shouldn't need the "is rw" there, but it shouldn't give that error either
smls d'oh, gotta use -POS instead of -KEY
jnthn It's not an error, it's a warning. Also, it's correct.
smls bangs head 14:08
timotimo oh!
lizmat smls: indeed, duh -)
jnthn smls: It took me as long as you to notice it :)
timotimo i thought the "is rw" gave the "cannot modify an immutable A" error
jnthn timotimo: Ah, no :) 14:09
14:09 AlexDaniel left
timotimo that would have been very strange indeed 14:09
[Coke] notes that [BUG] does indeed add the bug tag, but doubt anyone except maybe masak searches RT that way. 14:10
14:10 yary left
smls On that matter, is there any chance Rakudo could be made to assume 14:10
method ASSIGN-KEY (\k, \v) { $.AT-KEY(\k) = \v } 14:11
if AT-KEY is implemented but ASSIGN-KEY isn't?
so simple use-cases would only have to implement one of them
jnthn smls: I think it already does.
smls oh?
jnthn At least, I'm pretty sure I made it that way when I added the ASSIGN- variant. 14:12
14:12 amurf joined
jnthn Since it's an opt-in optimization 14:12
Yes, in Any:
multi method ASSIGN-KEY(\SELF: \key, Mu \assignee) {
SELF.AT-KEY(key) = assignee;
}
14:12 Ven left
timotimo maybe smls is inheriting a method ASSIGN-KEY from a different class or role in the hierarchy? 14:12
14:13 yary joined
smls m: class A does Associative { has %.a; method AT-KEY ($k) { %!a{$k} } }; my %x := A.new; %x<foo> = 1; dd %x.a 14:14
camelia rakudo-moar 7b5256: OUTPUT«Cannot modify an immutable Any␤ in block <unit> at /tmp/KM3SfO7caS:1␤␤»
dalek kudo/nom: b2d6d02 | lizmat++ | src/core/Proc.pm:
Add hex status report for more clarity
lizmat with that, on the JVM and OS X I get:
$ perl6-j t/spec/S32-temporal/Date.t
===SORRY!===
Unable to execute 'sw_vers' (ff00)
hopes this helps FROGGS 14:15
jnthn smls: "is rw" on your AT-KEY
smls ah, right. 14:16
jnthn We probably should capture this knowledge into p6doc somewhere :)
14:17 amurf left
yary rakudo:my $y=multi foo (Int $x) { $x + 1 }; say "multifoo \$y=",$y(5) 14:17
timotimo is there any way we can annotate the Any that was returned from AT-KEY so that we can say "made read-only by ..."?
jnthn timotimo: no
timotimo thought so 14:18
jnthn Not unless you want to utterly hose performance :P
smls maybe the compiler could detect you trying to assign to the return value of a non-rw routine though?
timotimo it'd be neat to have an extra-verbose mode that you can start if you're looking for some problem like that, but i can't see how that would possibly help rather than just spamming the user with loads of diagnostic messages 14:19
14:19 sqirrel_ joined
jnthn smls: It's a method in this case, but for routines yes. 14:20
smls ah, right, methods are completely dynamic
timotimo "method" in this case means we can't compile-time-analyze it
yeah
we can potentially do it in spesh, but spesh only runs after the code has been hit a few times, and in such cases you'd've already exited the program before spesh would come into play 14:21
jnthn Well, it's more like the profiler thing
Well, a key part of the original OO definition was "extreme late binding" 14:22
Then C++ and Java were invented and many people forgot that, and started putting process boundaries into their systems to recover the late binding... :P 14:23
</oversimplified-history>
timotimo i don't remember that o_O
hm, yeah, methods have to be known at compile-time in java and c++, don't they ... 14:24
jnthn Right. :)
timotimo that way lies performance from AOT compilation 14:25
jnthn Oh, for sure. 14:26
14:26 Ven joined 14:29 RabidGravy joined
smls m: class A does Positional { has @.a = [2, 4], [6, 8]; method AT-POS ($k) is rw { dd $k; @!a[$k] }; }; my @x := A.new; @x[1; 1] = 42; dd @x.a 14:29
camelia rakudo-moar 7b5256: OUTPUT«$k = 1␤@!a = [[2, 4], [6, 42]]<>␤»
smls So AT-POS abstracts the multi-dimensionality too?
I can't get the full index (1; 1) at once in AT-POS? 14:30
jnthn smls: Not *yet*, but I'll be working on multi-dim stuff soon 14:31
smls: So expect changes there
smls ok
jnthn (I don't quite know what design I want yet.)
smls was just wondering if one could make a more idiomatic API for rosettacode.org/wiki/Bitmap#Perl_6
my $b = Bitmap.new(width => 10, height => 10); my $b[5; 5] = Pixel.new( R => 100, G => 200, B => 0) 14:32
^^like that
timotimo well, postcircumfix:<[ ]> is a multi sub
you could implement that for Bitmap
jnthn Yeah, exporting a postcircumfix is the best way at the moment 14:33
smls yeah, but then you'll have to re-implement *everything* [ ] does
e.g. ranges
jnthn But...I think we need better
As in, I think an object should be able to handle multiple dimensions.
timotimo yes 14:34
smls yeah
jnthn Since we'll need that for my int @matrix[3,3] or so
Which should allocate one blob of memory for storage
smls method AT-POS ($scalar) vs method AT-POS (@list) ?
jnthn It may end up being that
Type distinctions work well for us, since loads of our opts hang of type specialization :) 14:35
*off
timotimo can we have the possibility to specify the exact alignment of rows/cols? also, C vs pascal index order?
smls Also, is there any advantage of writing method AT-KEY (\key) instead of method AT-KEY ($key) currently? 14:38
Rakudo itself seems to prefer the former 14:39
s/prefer/use/
e.g. which should be recommended to p6doc readers?
14:42 atroxaper joined 14:43 vendethiel left
jnthn The $ form, most probably 14:44
smls ok 14:45
jnthn shopping &
14:46 Araq joined 14:47 atroxaper left 14:48 govt left 14:50 gfldex joined, sjn_phone_ joined
dalek ast: 806ed2b | coke++ | S09-typed-arrays/arrays.t:
fix typo
14:53
hoelzro morning #perl6
14:58 coffee` joined
masak ahoy hoelzro 15:00
hoelzro o/ masak
smls m: class A does Positional { has @.a = 2, 4, 8; method AT-POS ($k) is rw { dd $k; @!a[$k] }; }; my @x := A.new; @x[*-1] = 42; dd @x.a 15:05
camelia rakudo-moar b2d6d0: OUTPUT«$k = 0␤@!a = [42, 4, 8]<>␤»
smls jnthn: How would one make *-1 indexes work for a custom type? ^^
masak m: class A does Positional { has @.a handles <elems> = 2, 4, 8; method AT-POS ($k) is rw { dd $k; @!a[$k] }; }; my @x := A.new; @x[*-1] = 42; dd @x.a 15:07
camelia rakudo-moar b2d6d0: OUTPUT«$k = 2␤@!a = [2, 4, 42]<>␤»
masak smls: ^^
smls ah, elems 15:08
masak that was literally the first thing that came to mind. glad it worked.
m: class A {}; say A.new.elems
camelia rakudo-moar b2d6d0: OUTPUT«1␤»
smls shouldn't it throw an error though if it is not defined?
rather than pretend that 0 was passed
masak when you don't override .elems somehow, you get the one from Any
smls ah
masak see eval above. 15:09
I was kinda hoping that either `handles Positional` or `handles Array` would DTRT, but they didn't.
15:09 diana_olhovik left 15:11 domidumont left, cognominal_ joined 15:13 cognominal left
smls it's kind of a WAT though 15:14
dalek ast: 9f658bf | (Steve Mynott)++ | / (3 files):
fix some more RAKUDO_DEPRECATIONS_FATAL=1
15:16
15:16 Araq left
masak all I'm thinking is "hey, you managed to create your own custom Positional class, and you're complaining that you have to write a `handles` to get it to work?" 15:16
:P
smls 1) module implementor implements *-KEY, doesn't think of implementing elems as well
2) downstream code uses objects of that type like arrays, everything works
3) downstream code refactor naievely introduces a *-1 index --> silenly procuces wrong result 15:17
it's not the "getting it work" I have a problem with, but the "fails to throw an exception if you forgot"
masak smls: how would you like it to work?
smls So that $foo[*-1] throws an exception if $foo's class did not intentionally specify how to get its number of elements 15:18
15:18 _mg_ left
masak this is why AT-POS exists, so thate the implementor doesn't have to re-implement Whatever-based indexing, ranges, etc. 15:19
jnthn Yeah, but they still have to remember to implement elems...
masak that*
jnthn But I think it's fair enough 15:20
masak me too.
jnthn It's not like you go implementing a collection type every day.
smls I guess
15:20 vendethiel joined 15:21 notch left, JimmyZ__ joined
[Coke] A writeup on how to do it for a tutorial page in the docs would probably be awesome, though. 15:21
15:21 Alina-malina joined
masak it's rare to be knowledgeable enough to know about `does Positional` and `AT-POS`, but not about `elems` :) 15:22
jnthn [Coke]: Agree
Could go in the WANTED
15:23 JimmyZ_ left
smls I'm already planning such a write-up 15:24
Wondering if there's enough info to justify a full /language/indexing page describing both how the standard postcircumfixes can be used, and how to make them work for custom types. 15:25
15:25 MueThoS76 joined, MueThoS76 left
masak yes, sounds nice. 15:26
15:26 cognominal_ left
[Coke] ++smls! 15:26
15:27 zakharyas left
itz is make -j3 spectest or similar OK? 15:27
timotimo no
you use the env var TEST_JOBS instead
itz ty
timotimo yw :)
15:28 telex left 15:30 telex joined, khw joined 15:31 El_Che joined 15:33 [TuxCM] left, Ven left 15:34 |Tux| joined, |Tux| left, |Tux| joined
masak why can't we also support `make -j3 spectest`, ooc? 15:40
[Coke] because prove. 15:41
15:42 vendethiel left
masak I... see. 15:42
walk &
[Coke] it's one job as far as make is concerned. (you could theoretically have it set an env var based on the presence of -j, but then it's not going to work on windows)
15:42 yary left
[Coke] (because nmake has no -j) 15:42
15:48 JimmyZ__ left, JimmyZ_ joined
timotimo we'd have to have some way of splitting the spec test jobs up into multiple processes that nevertheless intercommunicate to give the final score of how many failures/successes/tests/todos/... we get 15:51
and to get a proper output of the tests being run and succeeding/failing without interleaving lines and such
15:53 diana_olhovik_ joined
JimmyZ_ rewrite prove by perl6' 15:53
s async... 15:54
15:54 Ven joined
ugexe ive nearly got an async prove done. just gotta tie up the grammar a bit more 15:58
15:58 nys left 16:00 captain-adequate joined 16:03 cognominal joined
ugexe calling method `t` on a file handle on windows fails with an ugly message: "Cannot find method 'isatty': no method cache and no .^find_method" 16:03
16:05 abraxxa left
ugexe oh it does on linux as well. must be nyi 16:05
16:06 tinyblak left
itz isatty isn't in moar it was in parrot there is an RT ticket open 16:07
16:07 AlexDaniel joined
itz I had a look at adding it but had no idea where to start 16:08
16:09 AlexDaniel left, AlexDaniel joined 16:10 sjn_phone joined
[Coke] timotimo: or we could translate -j to TEST_JOBS 16:12
(and let prove do the multi-threading) 16:13
16:13 sjn_phone_ left 16:15 [Sno] left 16:20 [Sno] joined 16:21 uncleyear left 16:22 uncleyear joined 16:26 [Sno] left, isBEKaml joined 16:30 [Sno] joined 16:31 isBEKaml left 16:32 |Tux| left, |Tux| joined
dalek ast: 8d84107 | (Steve Mynott)++ | S17-channel/earliest.t:
fix minor typo
16:32
itz this maybe be news to everyone but "git grep" is very fast on repo checkouts 16:33
err maybe not be news I mean :)
JimmyZ_ never heard it before... 16:34
jnthn tends to show it off a bit on git courses 16:35
Nice you can give it flags to control how much context you want also
16:35 vendethiel joined 16:37 sjn_phone left 16:42 sqirrel_ left
smls ack is fast enough :P 16:43
itz git grep is something like 10x faster 16:45
smls does it support perl style regexes? 16:46
(i.e. PCRE)
itz nope but I came across github.com/ggreer/the_silver_searcher 16:47
actually it could be good to steal ideas for "ack6" or similar :> 16:48
smls ;) 16:49
yay, my distro has a package for the_silver_searcher 16:50
sjn is running the spectests on armv7l
itz sjn: what hw is that? 16:51
16:52 python joined 16:53 python left, JimmyZ__ joined 16:56 JimmyZ_ left 16:57 vendethiel left, FROGGS joined 17:01 dakkar left 17:02 Ven left, vendethiel joined
tadzik jolla phone, I think :) 17:06
exciting
there was this idea on OSDC to get KDE (Qt?) people to work on QML bindings for nativecall, did that work out?
17:12 Ven joined 17:14 itz left 17:16 Entonian joined 17:19 Entonian left
smls QML depends on on the bulk of Qt doesn't it? 17:21
so we'd need "normal" Qt binding first 17:22
17:22 spider-mario joined
sjn itz_: Jolla phone 17:23
tadzik: nah 17:24
smls my 3 most wanted nativecall bindings: 1) libxml2 2) libcurl 3) Qt
FROGGS ohh yeah, I should continue on libxml2 :S
JimmyZ__ 4) DBI6 17:25
17:25 vendethiel left
japhb smls: My most wanted nativecall bindings are to $day-job libraries, but that requires C++ binding. I guess Qt does as well, come to think of it. There's a branch for C++ binding, but IIRC it's not yet merged. 17:31
17:37 Ven left 17:40 Ven joined 17:41 davido_ left 17:42 davido_ joined 17:44 AlexDaniel left
timotimo i believe we can get rather far by using Inline::Python to get at PySide 17:47
17:47 JimmyZ__ left 17:49 amurf joined
DrForr I'm putting together OpenCV. 17:50
17:54 Ven left, amurf left
smls Some image loading/saving/editing library would be nice too - imlib2 or so. 17:54
But I don't have a real use-case for that right now besides rosettacode tasks 17:55
Perl 6 + libxml2/curl thogh, I'd actually use for productive things ;)
17:56 _mg_ joined
DrForr Imager has a C interface, and I've got some things waiting on unsigned ints.. 17:57
17:58 brrt joined
timotimo don't we have an imlib2 binding already? 18:01
smls oh, looks like we do: github.com/mrhdias/perl6-Imlib2/ 18:02
18:05 vendethiel joined 18:09 aborazmeh left 18:20 atroxaper joined
[Coke] we should probably remove "readline" from the R* release announcement if we're using linenoise 18:24
18:25 atroxaper left, _mg_ left
masak please do. 18:32
18:33 nys joined
dalek ar: bf2232a | (Will Coleda)++ | docs/announce/2015.06.md:
Update 2015.06.md

Remove reference to readline, we're using linenoise
  (and unicode support seems OK)
18:38
smls "non-blocking I/O (in progress)" - It is? 18:39
18:39 _mg_ joined
ugexe looks like not in the last year anyway github.com/rakudo/rakudo/blob/nom/...yncFile.pm 18:42
brrt hey, is S32-exceptions/misc.rakudo.moar known to fail 18:43
18:47 silug joined 18:49 vendethiel left 18:51 vendethiel joined 18:54 kaare_ left 18:57 ][Sno][ joined, [Sno] left 18:58 run4flat joined
hoelzro elm-lang.org/blog/compiler-errors-for-humans 18:59
I think the community has done a pretty good job in this department since I started looking at Perl 6, but I think this is a neat read 19:00
leedo speaking of linenoise, should I have access to a history in the repl? or am i building something wrong?
brrt speaking of speaking 19:02
i've just pushed a branch on moarvm with a libuv update
ugexe `language: perl6` is valid .travis.yml now
brrt since any bugs can be notoriously platform-dependent, i'd appreciate it if anyone using a non-linux platform would care to run it through a spectest 19:03
FROGGS brrt: will check windows
brrt thanks :-) 19:04
smls leedo: If you install the Linenoise module (e.g. `panda install Linenoise`), then the REPL will use it automatically
Still doesn't remember history across sessions though. 19:05
leedo ah-ha, thanks!
tony-o m: $*OUT.t 19:06
camelia rakudo-moar b2d6d0: OUTPUT«Cannot find method 'isatty': no method cache and no .^find_method␤ in block <unit> at /tmp/RGMWnRwc0g:1␤␤»
hoelzro smls: that would be something we could easily add
the question is where do you store it? 19:07
brrt FROGGS: i'm fairly sure you have to do a git submodule update after you change branches, and i think Configure.pl does that
but anyway reconfigure prior to building :-)
smls hoelzro: ~/.local/share/perl6/repl.log ?
hoelzro smls: if it's ok to have a user-specific history, that would work 19:08
I can imagine that some people would like a project-specific one, though
perhaps PERL6_HIST?
smls seems like a strange use-case
do they also want a project-shared bash/zsh history? 19:09
they should probably symlinks thir hist files together then
leedo it might be good to somehow notify people that they can get a history if they install Linenoise
i'm not sure how you'd do that and not be annoying though
hoelzro leedo: it's in the README, I think 19:10
but I don't know if that's saying much =)
itz_ I saw S32-exceptions/misc.rakudo.moar fails today as well which I didn't see yesterday (or earlier) 19:11
leedo well it's something at least
smls hoelzro: Ohh, you mean multiple projects *per* user - not "project" in the sense of collaborating between users? 19:13
hoelzro smls: yes 19:14
I think PERL6_HIST would work for that
19:14 bin_005 joined
smls I guess an environment variable could be useful for that, though I fon't know if many people would actually bother using it 19:14
Though IDE's might
19:14 ][Sno][ left 19:15 ][Sno][ joined
jnthn smls: On async IO, I've done plenty of stability work of late to improve the situation with IO::Socket::Async, so yeah, there's progress 19:15
19:16 mr-foobar joined
smls ok 19:18
FROGGS brrt: I always reconfigure (and make realclean prior to that), that's part of my build scripts
brrt i never do that :-)
smls hoelzro: Though supporting $PERL6_HIST is orthogonal to using a fixed location like $XDG_DATA_HOME/perl6/history if PERL6_HIST is not specified. 19:21
So it could always be added if the demand arises
japhb I forget, how do you add a coercion to a type? (So that you can say 'Foo() $bar' in a signature, and have it coerced from Any?) 19:22
smls class Foo { method CALL-ME { ... } } I guess? 19:24
that whole corecion system needs some design love though, I think 19:25
19:25 espadrine left
smls considering the inconsistent way Rakudo's built-in types handle it, how can we expect user code to do it consistently :P 19:25
brrt bbiab 19:26
leedo is the tab completion known to be a bit rough?
ugexe m: say 1 unless try { signal }; # is there some way to see if calling signal will work without an error?
camelia rakudo-moar b2d6d0: OUTPUT«===SORRY!===␤Cannot find method 'orig'␤»
leedo e.g. have a line half completed, and tab something. it clears the line and begins a completion at the start 19:27
smls example? 19:28
"say spr" TAB completes to "say sprintf" for me
19:30 brrt left
leedo smls: ah, only happens if i TAB after a space 19:30
19:31 ][Sno][ left
leedo so "say <TAB>" 19:31
19:31 ][Sno][ joined
smls can confirm 19:31
interesting
leedo or after a sigil
RabidGravy japhb: the $bar has to have a Foo method
smls submit a rakudobug
jnthn Hm, the Rakudo and S32-exceptions/misc.t I had before clocking off last night are clean 19:37
jnthn pulls latest things
19:39 _mg_ left
jnthn yep, with latest I get a failure 19:40
timotimo the X::Obsolete thing? 19:42
for ${a}?
jnthn yeah
dalek ast: 7d7467d | jnthn++ | S32-exceptions/misc.t:
Update test now "my ${foo}" is allowed.
19:44
timotimo good
jnthn Should do it 19:45
TimToady arguably 'my ${Int}' is still kinda wrong semantically, unless we pretend it's a % based on the shape 19:46
m: my $[3]; 19:47
camelia rakudo-moar b2d6d0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Uj6by6vv7X␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/Uj6by6vv7X:1␤------> 3my $[3]7⏏5;␤»
TimToady we catch that one
though that's just a NYI, not a semantic failure 19:48
run4flat My thoughts on PDL ideas that I would like to see in Perl 6: blogs.perl.org/users/david_mertens/...erl-6.html
jnthn TimToady: The problem isn't that we die, it's that we didn't die with X::Obsolete
TimToady well, yes, the 'my' was messing up the intended test, as you noticed
hoelzro I've noticed a lot of proto tokens in Grammar.nqp use <...>; does that symbol actually mean anything 19:49
?
19:49 ShimmerFairy left
TimToady hoelzro: that's obsolescent, the intent is that all protos use {*} consistently 19:49
hoelzro timotimo, FROGGS: do either of you have access to the testers.perl6.org box? any way I could get a Pg dump of the database from it, along with knowledge of the current Rakudo/modules versions on there? 19:50
TimToady: ah, thanks!
FROGGS hoelzro: I can do that probably
hoelzro excellent!
smls run4flat++ 19:52
run4flat smls, thanks 19:53
smls Though PDL'ish support won't make it into Perl 6.0, will it?
run4flat It won't? Somehow I thought that was on the list 19:54
smls I dunno :P
run4flat and, to be clear, I'm not suggesting low-level hooks into PDL's engine
smls My guess is that it would be expected to be prototyed as a module first
run4flat Is there an example of such a thing that I can look at? 19:55
... preferably a simple one. :-)
smls and then if it turns out that said module can't avoid using nqp:: functionality to do things correctly, merge the required support back into Rakudo
TimToady smls: well, most of S09 is intended to provide PDLish support, and it remains to be seen how much of S09 gets implemented under jnthn's NSA work 19:56
19:56 yqt joined
TimToady some of the more abstract mapping semantics might have to wait till after 6.0 19:56
19:56 brrt joined, zakharyas joined
smls right, tightly packed arrays seem to be planned for 6.0 19:57
TimToady but the basic infrastructure should be PDL-ready at least
smls but having a more high-level PDL-like API as conjectued in the design.perl6.org/S09.html#PDL_signatures section, is probably module material right?
TimToady well, it all depends on whether someone goes wild before Christmas :) 19:58
19:58 qwebirc48505 joined
run4flat TimToady: I have a bare-bones idea of how to implement this 19:58
but I don't know how to hack the parser 19:59
I thought I saw an Advent Calendar entry somewhere, but I've lost it
TimToady shouldn't have to hack the parser much, since most of S09's syntax is already supported, just some is NYI
run4flat if somebody can point me in the proper direction, I can start working on things
19:59 qwebirc48505 left
TimToady m: my @pdl[3;3;3]; 20:00
camelia rakudo-moar b2d6d0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/934irUGve9␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/934irUGve9:1␤------> 3my @pdl[3;3;3]7⏏5;␤»
smls TimToady: Also, maybe the high-level API (beyond simple array munging) *should* stay in module space, so it can experiment and evolve as needed. 20:01
20:02 ShimmerFairy joined
smls and potentially encourage competing solutions :) 20:02
RabidGravy yeah
TimToady hopefully the type system can support that easily, plus we can have pragmas that warp the default semantics of built-ins in a given lexical scope
if we need that
run4flat Alright, I'll see what I can come up with 20:03
jnthn Tightly packed arrays are something I'd digging into this week, though the work on that is fairly gutsy
run4flat Believe it or not, I'm not too concerned with the implementation of the data type 20:04
jnthn Once *that* is in, then I suspect it'll be easier to jump in and work on things in this area.
run4flat I'm concerned with the implementation of auto-looping
oh
20:04 bin_005_e joined
run4flat right, well, if the data container isn't yet available, then that'll make my life hard. :-) 20:04
20:04 bin_005 left
jnthn run4flat: Right; I need to get it in soon anyway, and knowing you're waiting to have it is another nice motivator :) 20:05
run4flat jnthn, is there anything I can do to help?
Is there a fork of perl6 I can watch?
:-)
20:05 darutoko left
jnthn m: say 'abc' ~~ /a ~ c [d]/ 20:06
camelia rakudo-moar b2d6d0: OUTPUT«Nil␤»
TimToady why the superstitious []? 20:07
20:07 skids left
jnthn TimToady: 'cus somebody made it warn without it :P 20:07
m: say 'abc' ~~ /a ~ c d/
camelia rakudo-moar b2d6d0: OUTPUT«Potential difficulties:␤ Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the spacing)␤ at /tmp/7t1o42lXO9:1␤ ------> 3say 'abc' ~~ /a ~ c7⏏5 …»
jnthn I'm more curious why that didn't trigger the goal matching error though...
TimToady hmm, it shouldn't warn on that particular space, since it's not, er, sigificant 20:08
jnthn m: say '"x' ~~ /'"' ~ '"' \w+/
camelia rakudo-moar b2d6d0: OUTPUT«Unable to parse expression in ; couldn't find final '"' ␤ in block <unit> at /tmp/baTytOWdRa:1␤␤»
jnthn Locally:
> say '"x' ~~ /'"' ~ '"' \w+/
Nil
But what's freaking me out is...no spectests fail after I did this change o.O 20:09
smls run4flat: jnthn has a Perl 6 blog, where I assume he'll mention progress on tightly packed arrays: 6guts.wordpress.com/ :)
jnthn run4flat: What smls said; I only tend to work in branches when I'm going to break stuff that already works, so I'll likely be doing this in mainline branches.
brrt are you sure it's plugged in?
jnthn :-P
jnthn ohhhh 20:10
The spectest already expect non-exceptional behavior :)
And they're skipped rather than todo'd so I got no passing todos :)
dalek p: 121db36 | jnthn++ | src/QRegex/Cursor.nqp:
Goal matching syntax fails to match, not throws.

Since HLL::Grammar already overrides it, our parse errors still work out fine. This just changes the default behavior for userland.
20:13
p: 3ae36d0 | jnthn++ | t/qregex/rx_goal:
Update NQP test suite for goal matching changes.
masak run4flat++ # blogs.perl.org/users/david_mertens/...erl-6.html 20:14
run4flat: I'm curious where you picked up the name "Perl 6 v1.0", which I don't see used at all on #perl6 or on our mailing lists... :)
run4flat masak: I guessed
:-)
what is the version slated for Christmas called?
masak run4flat: I'm more likely to see 6.0.0 20:15
run4flat I'll fix my blog post, if tha helps
masak run4flat: but the truth is it doesn't have an "official" name.
run4flat heh
masak run4flat: it's... a slightly contentious area :/
TimToady it's probably 6.Christmas
and the beta is called 6.Birthday
masak :>
run4flat I suppose you can see that I see "Perl 6" is the language name. :-p
smls 6.six.1.0.for.real 20:16
masak TimToady: at least your attempt at a resolution is sufficiently cute :P
6.we.mean.it.this.time
TimToady the language revs don't have to look anything like the compiler revs
run4flat n/p, I can change it to 6.0.0 if that makes folks happy
masak run4flat: I don't have a dog in that race, so do what you want
run4flat: I was genuinely curious, nothing more
smls I think v1.0 gets the point across 20:17
even if its unclear if it will actually be called that
masak if "Perl 6 v1.0" better reflects how you think about the language, then keep it
TIMTOWTDI :)
TimToady we're not really picky here
run4flat shrugs and closes the browser window with the blog editor
no problem!
masak we're an AND culture, not an OR culture :P 20:18
run4flat OK, so let's suppose I wanted to write a module that implements the 'autoloop' keyword
can anybody point me to a module that implements a keyword, so I can start cargo-culting? 20:19
FROGGS run4flat: OO::Monitors
run4flat looks
dalek kudo/nom: 7c35c5e | jnthn++ | tools/build/NQP_REVISION:
Bump to get goal matching semantic change.
masak run4flat: also check out FROGGS++' various slangs on github
20:20 japhb left
run4flat tries to google that 20:20
dalek ast: f0e859a | jnthn++ | S05-metachars/tilde.t:
Unfudge tests for RT #62086, RT #124949, RT #124950.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=62086
[Coke] masak: OR are we?
masak run4flat: github.com/FROGGS/p6-Slang-Tuxic github.com/FROGGS/p6-Slang-Piersing 20:21
run4flat masak: thanks! It was actually easier than I expected 20:22
masak \o/
run4flat masak: I mean finding FROGGS' modules. But adding a keyword looks pretty easy, too 20:23
masak run4flat: slangs are in early days still in Perl 6. there's not much of a "theoretical framework" around them, it's just messing about and hoping stuff comes out right.
run4flat: still, when I read about autolooping in S09 recently, I thought "shouldn't that be a slang"?
run4flat: and I was reminded of that when I skimmed your post just now.
dalek ar: 33e1b0a | FROGGS++ | docs/announce/2015.06.md:
update announcement
20:25
hoelzro /'{' .*? '}'/ and /'{' ~ '}' [.*?]/ are equivalent except for the error message on failure, right? 20:26
jnthn hoelzro: Now you don't get an error by default, so they're equivalent by default. However, you can write a method FAILGOAL that thrwos an error if you wish 20:27
smls ...and for the backtracking bugs that ~ still suffers from (I think)
timotimo ~ doesn't backtrack 20:28
hoelzro jnthn: backtracking bugs? that could explain what I was seeing
timotimo well, now that it fails instead of throwing, it ought to backtrack
hoelzro so using a frugal operator like *? with ~ is probably ill-advised?
masak aye
jnthn It does backtrack now; the tests relating to that were just unfudged and passing.
hoelzro m: '{ commit() }' ~~ /'{' .*? '}'/ 20:29
camelia ( no output )
masak hoelzro: using .*? is ill-advised for other reasons too. you can almost always be more precise than that.
hoelzro m: say '{ commit() }' ~~ /'{' .*? '}'/
camelia rakudo-moar b2d6d0: OUTPUT«「{ commit() }」␤»
hoelzro m: say '{ commit() }' ~~ /'{' ~ '}' [.*?]/
camelia rakudo-moar b2d6d0: OUTPUT«Unable to parse expression in ; couldn't find final '}' ␤ in block <unit> at /tmp/0z5EcUK0Ew:1␤␤»
hoelzro masak: true, I was just doing some prototyping using .*?
masak hoelzro: there's often a formulation that eliminates backtracking completely. or at least, it's best to aim for one.
dalek p: 57e8469 | TimToady++ | src/QRegex/P6Regex/Grammar.nqp:
don't check space between idents inside a ~ b c
hoelzro is there something I have wrong in the regex above that uses ~?
20:30 japhb joined
TimToady you just need to wait for jnthn's recent patch to recompile 20:31
masak stand by for the imminent future being more equally distributed 20:32
brrt future's entropy increasing?
TimToady also, you've got some superstitious [] there too :P
hoelzro TimToady: ah, yes, I added that when I thought *that's* what the issue was =) 20:33
20:34 Firedancer joined 20:35 run4flat left
smls m: my @a = 2, 4, 6, 8; my @b := @a[1, 3]; @b[0] = 40; dd @a 20:35
camelia rakudo-moar b2d6d0: OUTPUT«@a = [2, 40, 6, 8]<>␤»
smls run4flat: ^^ re array slices
masak nice. now make that work in the multidim case :> kthx 20:36
smls and with native arrays :P 20:37
TimToady multidim isn't the problem; that's relying on containers
what smls++ said
masak .oO( fast *and* flexible!? )
smls
.oO(and simple and elegant and interoperable and maintainable)
20:39
TimToady
.oO(and wicked cool)
masak .oO( and *ponies*! ) 20:40
20:40 dha joined
smls
.oO( :picard meme: jnthn, make it so! )
20:40
nwc10 I CAN HAZ CHEEZEponyBURGER? 20:42
brrt thinks we should have a picardbot 20:43
nwc10 written in Perl 6. Obviously.
masak 6ard
jnthn m: my int @a = 2, 4, 6, 8; my @b := @a[1, 3]; @b[0] = 40; say @a
camelia rakudo-moar b2d6d0: OUTPUT«2 40 6 8␤»
jnthn kthxbai :P
masak o.O
TimToady nice delorean
masak a miracle!
brrt is baking popcorn
TimToady we do have native refs, after all
dha I have a feeling that the C<scalar> function is not particularly p6ish. Is it gone? 20:45
TimToady very
dha *nod* 20:46
TimToady as is wantarray
masak m: say my $x + my $y given $x = 40, $y = 2;
camelia rakudo-moar b2d6d0: OUTPUT«42␤»
smls theres no "scalar vs list context" in Perl 6
TimToady not in the sense that Perl 5 means it, anyway 20:47
smls only coercion of values that have been produced with no knowledge of the caller context
masak m: say my my $w1 ~ my $s ~ my $w2 given $w1 = "OH", $s = " ", $w2 = $w1.subst(/./, "").subst(/$/, "AI"); 20:48
camelia rakudo-moar b2d6d0: OUTPUT«5===SORRY!5===␤Type 'my' is not declared␤at /tmp/e5CacpkF70:1␤------> 3say my my7⏏5 $w1 ~ my $s ~ my $w2 given $w1 = "OH", ␤Malformed my␤at /tmp/e5CacpkF70:1␤------> 3say my7⏏5 my $w1 ~ my $s ~ my $w2 given $w1 = "OH␤␤»
masak m: say my $w1 ~ my $s ~ my $w2 given $w1 = "OH", $s = " ", $w2 = $w1.subst(/./, "").subst(/$/, "AI");
camelia rakudo-moar b2d6d0: OUTPUT«OH HAI␤»
masak \o/
TimToady is particularly fond of: repeat while my $x != 42 { ...; $x = 42 } 20:49
20:49 kaare_ joined, colomon left
smls what's the difference between "repeat while" and "while"? 20:49
masak smls: when the condition is evaluated; after vs before the loop body
aka `do while` in many older languages 20:50
smls ah, so *that's* the repolacement for do { ... } while
TimToady you can also say repeat { ...; $x = 42 } while $x != 42, but that doesn't work unles $x is predeclared
masak but I really dig Perl 6's version. and TimToady++'s `repeat while my` pattern is a big part of that. 20:51
TimToady and very clearly shows the distinction between order of elaboration and order of executtion
m: say '{ commit() }' ~~ /'{' ~ '}' .*?/ 20:52
camelia rakudo-moar 7c35c5: OUTPUT«「{ commit() }」␤»
TimToady there we go
jnthn++
masak and I like that lexical variables are woven into the order of elaboration.
as they should.
TimToady nqp also has the /a ~ b c/ fix, but I didn't deem it worthy a bump
(passes all tests though) 20:53
masak speaking of which
I tried removing Interface Consistency in a local branch
two cases of missing nameds in the core setting -- easily fixed
ugexe sub signal-jvm($) { Supply.new }; my $signal-handler = &::("signal") ~~ Failure ?? &::("signal-jvm") !! &::("signal"); my $sig-resize = ::("Signal::SIGWINCH"); $signal-handler.($sig-resize).act: { $MAX-TERM-COLS = GET-TERM-COLUMNS() }; # is a better way to catch signals on Moar but still *compile* on JVM?
masak but then the spectest suite shows loads of "Dubious"es, and then hangs around S32 20:54
S32-io, even
no idea why
t/spec/S32-io/copy.t is the file that hangs. even when run directly with `perl6`
20:54 brrt left
masak fails on a call to `copy($existing-file, $existing-file-stgt)` 20:56
20:56 zakharyas left
TimToady well, the io system relies on all sorts of weird named options, so I guess I'm not surprised 20:57
jnthn deals with one of the more fun RTs
masak I see nothing weird about the definition of `copy` in src/core/io_operators.pm 20:58
jnthn (actually -Ofun)
$ perl6-m -e "sub foo(Int $x = 'omg') { }"
===SORRY!=== Error while compiling -e
Default value '"omg"' will never bind to a parameter of type Int
at -e:1
------> sub foo(Int $x = 'omg'<HERE>) { }
:)
masak I could push this branch if someone else wants to play with it.
jnthn As requested by masak at some point :)
TimToady jnthn: why the double quoting?
nwc10 if I try to build the origin/libuv-1.6.1-update branch, at Configure.pl time it bombs out with 20:59
Updating submodules .................................... FAIL git error: fatal: reference is not a tree: 30c8be07bb78a66fdee5141626bf53a49a17094a
Unable to checkout '30c8be07bb78a66fdee5141626bf53a49a17094a' in submodule path '3rdparty/libuv'
jnthn TimToady: 'cus I .perl the value, but put that in quotes...
TimToady: Would you prefer it without any? 21:00
FROGGS nwc10: it worked for me after doing: git submodule foreach git pull origin master
masak jnthn: cool!
jnthn TimToady: Was thinking more of when it's like an integer
TimToady how bout .gist instead?
jnthn Hm, also works
TimToady or just leave off the outer quotes
jnthn Let's try that
dalek kudo/interface-inconsistency: dd67e25 | (Carl Masak)++ | src/Perl6/World.nqp:
remove auto-adding of *%_ in methods
kudo/interface-inconsistency: 257b202 | (Carl Masak)++ | src/core/ (2 files):
add two "missing" named params

The absence of these made `make` fail.
jnthn Gone with .gist
nwc10 FROGGS: it still hates me 21:01
FROGGS :/
masak there you go. anyone who wants can investigate why we get massive failures and a hang in the spectest suite in that branch ;)
nwc10 my upstream is github.com/joyent/libuv.git
FROGGS nwc10: should have changed to libuv/libuv.git
TimToady masak: perhaps IO is the canary in your Mine of Inconsistency 21:02
nwc10 aha. presumably nothing automates that for me...
TimToady we don't otherwise do much with class hierarchies
nwc10 FROGGS: now building. thanks. that was the problem.
masak TimToady: if so, then that's an interesting data point.
but I don't know yet.
nwc10 the perils of being an early adopter
TimToady It's okay to be an early adopter if you're also an early adapter... 21:03
masak being an early adopter means getting to say "I will show them! I will show them *all*!" a lot...
"...mwhahahaha!" 21:04
dalek ast: c1305ef | jnthn++ | S06-signature/optional.t:
Tweak a test the compiler got too clever for.
21:06
kudo/nom: 6519911 | jnthn++ | src/ (2 files):
Catch impossible default values at compile time.

When we use a literal as a default value, we know its type. We can check it against any declared nominal type, and complain at compile time that it's unreasonable.
dha Can I assume that the concept of "the currently selected filehandle" does not really apply to p6, and therefore C<select> can be tossed away? 21:07
TimToady yup 21:08
masak m: my $x = 42; sub bar(Int $y = $x) { say $y }; bar(); $x = "OH HAI"; bar()
camelia rakudo-moar 7c35c5: OUTPUT«42␤Type check failed in binding $y; expected 'Int' but got 'Str'␤ in sub bar at /tmp/J2FLYzug4Q:1␤ in block <unit> at /tmp/J2FLYzug4Q:1␤␤»
masak dha: if you really like the concept of currently-selected-filehandle, then you can implement it in a class.
TimToady dha: though you might direct them toward the fact that $*OUT and such are overridable in a dynamic scope
dha I'm wavering on whether that would be helpful or just confusing. :-) 21:09
TimToady well, the outermost dynamic scope is kinda global... :) 21:10
[Coke] thinks 6ard might have some negative connotations for amerenglish.
masak dha: perhaps refer to sergot++'s module that redirects $*OUT to a string?
dalek ast: c286040 | jnthn++ | S06-signature/optional.t:
Test for RT #112922.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=112922
TimToady anyway, select as a global concept is dead 21:11
masak github.com/sergot/IO-Capture-Simple
TimToady though, perhaps the thing that might be confusing to P5ers is the fact that we consider globals to just be the degenerate case of dynamic variables now 21:12
so "globals" like $*OUT are really just dynamics defined at a very outer level 21:13
it was kinda one of those 'oh wow' unifications that happened along the way
dha masak - thanks. throwing that in. 21:14
jnthn Darn, my patch doesn't actually catch masak's original case in the ticket :P
FROGGS hehe
TimToady m: say sub { ... } ~~ Bool 21:15
camelia rakudo-moar 7c35c5: OUTPUT«False␤»
TimToady you'd think it should
dha TimToady - Since, obviously, I have no idea what someone reading this is actually using C<select> for, I mentioned the overriding in the context of "maybe this will be of use to you". 21:16
jnthn A closure ain't a true literal
TimToady yes, many uses of select were simply to treat some filehandle or other as if it were an object, to set $| or some such
jnthn 'cus it needs to be cloned etc.
But I can make it work
Don't want masak re-opening it with "but you didn't fix by bug!!!" :) 21:17
RabidGravy o/ we can fix it ... o/ 21:18
21:18 colomon joined
TimToady ooh, rudimentary type inference 21:18
as in "we know this can only produce this sort of value, despite it not being a constant
21:18 TEttinger joined
jnthn :) 21:19
Made it work; guess I'd better spectest again :)
TimToady "All type inference that is useful is mandatory."
"The compiler must be at least as smart as the user, but not much smarter." 21:20
dha I'm going to make a leap of faith that semctl, semget and semop are no more.
21:20 Sqirrel left
jnthn That'd sem sane to me... 21:20
TimToady anything POSIXy, BSDy, or SysVy is gonna be a thing for modules 21:21
jnthn: ctl yourself
flussence there's a Semaphore object in the core now...
TimToady but surely not an OS-level one? 21:22
jnthn Probably not in that sense
flussence it works well enough I'm not left wanting OS-level ones, at least :)
jnthn Though surely kernel supported
Since it sucks to have a kernel schedule threads that can't proceed.
TimToady well, the SysV IPC primitives were primarily for, er, IPC 21:23
jnthn Ah...ours are for in-memory 21:24
uh
in-process
TimToady nod
jnthn
.oO( good job I don't teach this stuff...oh, wait... )
RabidGravy I think I started a module for that stuff,
TimToady in fact, me nods off... 21:25
zzz &
dalek kudo/nom: aead30c | jnthn++ | src/Perl6/Actions.nqp:
Extend default type analysis to code objects.
hoelzro ShimmerFairy: while backlogging, I saw your statement about *%_. I was just thinking about how much I dislike it =)
dalek ast: 6ad32a7 | jnthn++ | S06-signature/optional.t:
A further test for RT #112922.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=112922
ugexe re: Windows. with moarvm, run("mode", :out) works. on jvm run("mode", :out) says it cannot find the file. shell("mode") works fine, but thought it may be worth noting the difference in behavior 21:29
dalek ast: 73cd22a | jnthn++ | S06-signature/optional.t:
Test for RT #123897.
21:32
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123897
DrForr .tell nine Silly point to make, but pragmas appear to not be run when declared as 'use utf8:from<Perl5>;' - I realize it's silly but something to think about. 21:33
yoleaux DrForr: I'll pass your message to nine.
jnthn Hm, rest or hunt one more RT... 21:37
21:38 colomon left 21:39 colomon joined 21:42 kaare_ left 21:50 skids joined
jnthn heh, RT #72440 was a pretty funny one :) 21:53
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=72440
masak :D 21:56
I found that bug by *porting* PGE :P
21:57 atroxaper joined 21:58 colomon left
jnthn Another 5 year old one taken out :) 21:59
dalek p: 5263e63 | jnthn++ | src/QRegex/P6Regex/Grammar.nqp:
Remove wrong and duplicate optimization.

We don't know that the atom we're looking at really can cope with us swallowing multiple chars into the literal at this point; we may be in a goal or a separator. Rather than fix it, it can simply go away, since there's code in the termish action method that does the very same optimization, but more generally, and when we know it's safe. So we don't lose out, but we do lose a couple of weird bugs.
22:00
22:00 Sqirrel joined
masak jnthn++ # taking out 5-year-olds -- oh wait 22:00
DrForr That sounds bad in *so* many ways...
dalek kudo/nom: 4a72196 | jnthn++ | tools/build/NQP_REVISION:
Get a couple of regex engine fixes.
22:01
masak DrForr: worse than I intended, even.
22:01 atroxaper left
jnthn decides he won't take the 12-year-old out of the cupboard to sip on this evening... :P 22:02
dalek ast: 4752d6b | jnthn++ | S05-meta (2 files):
Tests for RT #72440.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=72440
jnthn m: say "{1031 - 999} to go to get to a 3-digit number of RTs" 22:05
camelia rakudo-moar aead30: OUTPUT«32 to go to get to a 3-digit number of RTs␤»
jnthn Sounds do-able within the month :) 22:07
jnthn has slayed 18 RT tickets so far this week :)
masak let's hope some doofus doesn't keep opening tickets, then :P 22:08
jnthn Well, yeah, we've had like 6 in the last 24 hours 22:09
22:09 khw left 22:10 diana_olhovik_ left
jnthn Opinions welcome on rt.perl.org/Ticket/Display.html?id=125504 22:10
But since we re-write %foo<a> to %foo{'a'} at compile time...we don't have the info to do any better in terms of knowing which syntax the program used by runtime, which is when the error happens. 22:11
22:11 smls left
masak yeah. 22:12
not sure I see a good way to handle that. 22:13
jnthn Other thing with tickets is they ain't all of equal quality.
RabidGravy boom
beddy byes
masak 'night, RabidGravy
jnthn RabidGravy: Hope you had a nice day at the beach! :)
(By quality, I mean some really are well golfed down, or at least state expected outcome, whereas others are far from golfed or vauge in what they want) 22:14
22:15 uncleyear left, uncleyear joined 22:18 RabidGravy left 22:19 bin_005_e left
japhb
.oO( Expected outcome: it works. )
22:23
22:24 khw joined
jnthn :P 22:24
masak .oO( Observed outcome: something's wrong )
22:29 colomon joined 22:30 diana_olhovik_ joined, diana_olhovik_ left 22:33 spider-mario left 22:37 telex left 22:38 telex joined 22:39 AlexDaniel joined 22:43 atweiden joined
hoelzro does hack have a very aggressive fail2ban running on it or something? I just tried to get on, but now it's not accepting any traffic from me on port 22 =/ 22:45
timotimo i think there's fail2ban on it, yeah 22:48
jnthn
.oO( funny name, it didn't fail 2 ban him... )
22:49
22:51 raiph joined
hoelzro heh 22:53
dha Well, in case anyone wants an update, I've managed to get through perlfunc to C<split>. 23:01
jnthn dha++
japhb Impressive progress, dha++ ! 23:02
dha Thanks. I just hope it winds up being of use to someone...
23:03 vendethiel left
masak sounds like a very useful thing. 23:06
'night, #perl6 23:13
flussence m: given DateTime.new(Instant.new(1435708835)) { .say; say .Instant - now } # buckle up 23:14
camelia rakudo-moar 4a7219: OUTPUT«2015-06-30T23:59:60Z␤2702.292092␤»
jnthn ah, 'tis leap second night! :) 23:17
jnthn decides to try and sleep through it, so he can get an extra second of sleep :) 23:18
'night o/
skids waiting to get paged about all the machines which missed the patch for that. 23:19
23:22 gfldex left
b2gills I've heard that Google slightly adjusts the clock frequency so they don't have to deal with leap seconds directly 23:29
jercos skew is good for yew 23:30
dalek kudo-star-daily: 49d742d | coke++ | log/ (8 files):
today (automated commit)
23:35
rl6-roast-data: 953465c | coke++ | / (9 files):
today (automated commit)
skids keeps mixing up .foo and $.foo when he has both a topic and a self. I guess that goes in the "fluency" category. 23:46
TimToady b2gills: that sounds like a BSD adjtime(2) kind of approach
23:53 yqt left, yqt joined 23:58 TimToady joined