»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by diakopter on 6 April 2013.
diakopter your mom is an umarshallable value 00:02
japhb_ .ask jnthn Could you take a look at the 'has' stuff in the clog starting at irclog.perlgeek.de/perl6/2013-04-09 ? I'm curious if what I'm seeing is an artifact of the implementation (and perhaps a bug), or if Rakudo's behavior is intended. 00:05
yoleaux japhb_: I'll pass your message to jnthn.
diakopter japhb_: but.. there's nothing at that link yet. 00:17
except that message I just wrote
and that one
japhb_ .ask jnthn Sorry, I meant irclog.perlgeek.de/perl6/2013-04-08#i_6679299 00:19
yoleaux japhb_: I'll pass your message to jnthn.
00:36 census_ joined
dalek rl6-roast-data: b00393c | coke++ | bin/days_since.pl:
diagnose days running clean/dirty
01:02
kudo/nom: 51c9784 | (Geoffrey Broadwell)++ | src/core/Mu.pm:
More minor cleanups, native typing, etc. in Mu.DUMP
kudo/nom: a822ca4 | (Geoffrey Broadwell)++ | src/core/Mu.pm:
DUMP(): Handle unmarshallable values in native hashes by marking the entire native hash contents unmarshallable and continuing
japhb_ diakopter, once a822ca4 builds, batter up for more fuzzing. :-) 01:04
diakopter oh boy
01:06 anuby joined 01:12 grondilu joined, census_ left 01:16 FROGGS_ joined
diakopter r: ; 01:16
p6eval rakudo a822ca: ( no output )
japhb_ btw diakopter, say DUMP(.^methods) is almost 1000 lines, containing some stuff I'd never heard of before. What's an OwnedResizablePMCArray, anyway?
(The RPA I get, but what's the Owned part?) 01:17
diakopter github.com/perl6/nqp/blob/master/s...carray.pmc
01:18 mls joined
diakopter no clue other than that comment 01:18
japhb_ Now *that's* a mouthful: pmclass OwnedResizablePMCArray extends ResizablePMCArray provides array auto_attrs dynpmc group nqp
I think I can see why it appears in method DUMP results -- probably needed to invalidate caches or somesuch. 01:19
01:19 FROGGS left, Patterner left
japhb_ So diakopter, found any sufficiently evil expressions to break DUMP() again? 01:22
diakopter finishing my dinner, I mean box of girl scout cookies 01:23
japhb_ heh 01:24
01:27 Psyche^ joined, Psyche^ is now known as Patterner
japhb_ Mini-contest idea: most characters of DUMP for smallest expression. Perhaps ratio of DUMP(expr).chars.say to length of expr (so the characters in 'DUMP().chars.say' don't count for the ratio). 01:31
r: DUMP(%*ENV).chars.say 01:32
p6eval rakudo a822ca: OUTPUT«2593␤»
japhb_ r: 2593 / 5
p6eval rakudo a822ca: ( no output )
japhb_ r: say 2593 / 5
p6eval rakudo a822ca: OUTPUT«518.6␤»
01:33 grondilu left
japhb_ r: DUMP(.^methods).chars.say 01:33
p6eval rakudo a822ca: OUTPUT«28898␤»
diakopter r: say (9999999**9999).DUMP.chars / 13 01:34
p6eval rakudo a822ca: OUTPUT«5384.076923␤»
japhb_ r: say 28898 / 9
p6eval rakudo a822ca: OUTPUT«3210.888889␤»
japhb_ Oooh, diakopter, that's going to be hard to beat.
r: say (9999999**9999 x 99).DUMP.chars / 18 01:35
p6eval rakudo a822ca: OUTPUT«(timeout)»
japhb_ heh
r: say ((9999999**9999) x 99).DUMP.chars / 20 01:36
p6eval rakudo a822ca: OUTPUT«(timeout)»
japhb_ r: say (9999999**9999 x 9).DUMP.chars / 17
p6eval rakudo a822ca: OUTPUT«(timeout)»
japhb_ heh 01:37
diakopter mwahaha
japhb_ r: say (9999999**9999 xx 9).DUMP.chars / 18
p6eval rakudo a822ca: OUTPUT«15.722222␤»
japhb_ DANG!
r: say (9999999**9999 xx 9).DUMP.say
p6eval rakudo a822ca: OUTPUT«List<1>(␤ :$!flattens(Mu),␤ :$!items(▶Mu),␤ :$!nextiter(ListIter<3>(␤ :$!list(=List<1>),␤ :$!reified(▶Mu),␤ :$!nextiter(▶Mu),␤ :$!rest(RPA<4>(GatherIter<5>(␤ :$!reified(▶Any),␤ :$!coro(Coroutine<7>(...))␤ …
japhb_ ah
japhb_ imagines lurkers /msg'ing p6eval trying to beat diakopter's best ... :-) 01:39
diakopter imagines no lurkers
japhb_ I'm including clog lurkers
(and time skewed ones as well)
01:56 arlinius joined 02:11 BenGoldberg left
moritz r: say (1 xx 9**99).DUMP.chars 02:21
p6eval rakudo a822ca: OUTPUT«283␤»
moritz r: say (map {1 xx 9 } xx 9**99).DUMP.chars 02:22
p6eval rakudo a822ca: OUTPUT«Cannot call 'map'; none of these signatures match:␤:(&code, *@values)␤ in sub map at src/gen/CORE.setting:1801␤ in block at /tmp/aXAB4Tzx7T:1␤␤»
moritz r: say (map {1 xx 9 }, 1 xx 9**99).DUMP.chars
p6eval rakudo a822ca: OUTPUT«2702␤»
moritz hasn't even backlogged
dalek ast: 9c1a668 | (Solomon Foster)++ | S32-num/power.t:
Tests raising small integers to the power of very large integers.
02:23
02:28 lustlife joined
japhb_ moritz, the key thing is ratio of .DUMP.chars to length of expression dumped. :-) 02:29
moritz japhb_: thought so
r: say (my @ = 1 xx 9**99).DUMP.chars 02:30
p6eval rakudo a822ca: OUTPUT«(timeout)»
moritz r: say (my @ = 1 xx 99).DUMP.chars
p6eval rakudo a822ca: OUTPUT«2883␤»
moritz r: say (my @ = 1 xx 999).DUMP.chars
p6eval rakudo a822ca: OUTPUT«26283␤»
02:31 japhb_ left
moritz r: say (my @=1 xx 999).DUMP.chars 02:31
p6eval rakudo a822ca: OUTPUT«26283␤»
moritz r: say 26283 / '(my @=1 xx 999)'.chars
p6eval rakudo a822ca: OUTPUT«1752.2␤»
02:33 fgomez left 02:37 tgt left 02:49 orafu joined 02:50 fgomez joined 02:52 preflex_ joined 02:53 preflex_ is now known as preflex
dalek ecza: f9c8fc2 | (Solomon Foster)++ | lib/Builtins.cs:
Special cases for big_pow.
02:58
ast: 5058d2a | (Solomon Foster)++ | S32-num/power.t:
Fudge for niecza.
02:59
03:00 rindolf joined 03:10 woosley joined 03:31 fgomez left 03:35 fgomez joined
[Coke] tries to find .DUMP in spec. 03:37
ENODUMP 03:39
r: /123/.DUMP 03:40
p6eval rakudo a822ca: ( no output )
[Coke] r: /123/.DUMP.say
p6eval rakudo a822ca: OUTPUT«Regex<1>(␤ :$!caps(Hash<2>(␤ :$!descriptor((null)),␤ :$!storage(Hash<3>( => ▶0))␤ )),␤ :$!nfa(Parcel<5>(:$!storage(RPA<6>(␤ RPA<7>(),␤ RPA<8>(␤ Integer<9>(...),␤ Integer<10>(...),␤ Integer<11>(..…
timotimo r: /123/.DUMP.chars.say 03:46
p6eval rakudo a822ca: OUTPUT«2734␤»
timotimo we have a winner
[Coke] r: /1/.DUMP.say
p6eval rakudo a822ca: OUTPUT«Regex<1>(␤ :$!caps(Hash<2>(␤ :$!descriptor((null)),␤ :$!storage(Hash<3>( => ▶0))␤ )),␤ :$!nfa(Parcel<5>(:$!storage(RPA<6>(␤ RPA<7>(),␤ RPA<8>(␤ Integer<9>(...),␤ Integer<10>(...),␤ Integer<11>(..…
[Coke] r: /1/.DUMP.chars.say 03:47
p6eval rakudo a822ca: OUTPUT«2510␤»
[Coke] some fine tuning there on the regex logic.
r: /{9**999}/.DUMP.chars.say
p6eval rakudo a822ca: OUTPUT«2299␤»
[Coke] r: /{1 xx 9**99}/.DUMP.chars.say 03:48
p6eval rakudo a822ca: OUTPUT«2299␤»
[Coke] r: eval("/"~1xx9**99~"/").DUMP.chars.say 03:49
p6eval rakudo a822ca: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/DdVgAKk2x4:1␤------> eval("/"~1⏏xx9**99~"/").DUMP.chars.say␤ expecting any of:␤ whitespace␤»
[Coke] r: "/{1 xx 318}/".eval.DUMP.chars.say 03:58
p6eval rakudo a822ca: OUTPUT«(timeout)»
[Coke] r: "/{1 xx 316}/".eval.DUMP.chars.say
p6eval rakudo a822ca: OUTPUT«(timeout)» 03:59
[Coke] r: "/{1 xx 310}/".eval.DUMP.chars.say
p6eval rakudo a822ca: OUTPUT«37969␤»
diakopter wonders how long [Coke] took to get to 318
[Coke] r: "/{1 xx 315}/".eval.DUMP.chars.say
p6eval rakudo a822ca: OUTPUT«(timeout)38544␤» 04:00
[Coke] re-bazinga.
diakopter nice.
[Coke] about 5 minutes of tweaking the original, 5 minutes of binary search.
r: "/{'.*' xx 186}/".eval.DUMP.chars.say 04:08
p6eval rakudo a822ca: OUTPUT«(timeout)»
[Coke] r: "/{'.*' xx 184}/".eval.DUMP.chars.say
p6eval rakudo a822ca: OUTPUT«(timeout)» 04:09
04:09 fgomez left
[Coke] r: "/{'.*' xx 182}/".eval.DUMP.chars.say 04:09
p6eval rakudo a822ca: OUTPUT«(timeout)39087»
[Coke] r: "/{'.*' xx 183}/".eval.DUMP.chars.say
p6eval rakudo a822ca: OUTPUT«39289␤»
[Coke] so, close to 40K given feather's load. 04:10
I suspect you could mine some gold in the regexp space to get that higher.
04:10 fgomez joined 04:35 rvchangue joined 04:53 jferrero joined 04:56 denisboyun joined 04:57 frdmn left 05:12 kurahaupo left 05:47 dmol joined 05:56 rindolf left, SamuraiJack joined, rindolf joined 05:58 denisboyun left 06:05 shlomif joined, rindolf left 06:17 Heather joined
Heather hello ! 06:17
this video is very much fits As I see Gentoo developers: www.youtube.com/watch?v=xr22jMkMZQk 06:18
06:21 woosley left 06:26 lustlife left 06:32 fgomez left 06:35 lustlife joined 06:39 grondilu joined
bonsaikitten Heather: random offtopic stuff is random? 06:43
06:46 fgomez joined
labster did /dev/urandom pick that video? 06:46
06:48 domidumont joined
Heather bonsaikitten well I usually call it another words 06:48
06:49 fgomez left 06:51 fgomez joined 06:54 frdmn joined 06:58 shlomif is now known as rindolf 07:01 FROGGS_ left, domidumont left 07:02 domidumont joined 07:14 kaleem joined 07:18 rindolf left 07:19 woolfy joined 07:36 kurahaupo joined
Heather bought grooveshark premium... 07:39
nwc10 jnthn: the usual 07:40
07:51 kurahaupo left
hoelzro good morning, #perl6! 07:53
Heather hood morning, hoelzro 07:54
hoelzro has anyone had a chance to look at my research for rt.perl.org/rt3/Public/Bug/Display...?id=117377 ? 07:58
08:04 FROGGS joined 08:18 domidumont left
jnthn Good morning, #perl6 08:23
yoleaux 00:05Z <japhb_> jnthn: Could you take a look at the 'has' stuff in the clog starting at irclog.perlgeek.de/perl6/2013-04-09 ? I'm curious if what I'm seeing is an artifact of the implementation (and perhaps a bug), or if Rakudo's behavior is intended.
00:19Z <japhb_> jnthn: Sorry, I meant irclog.perlgeek.de/perl6/2013-04-08#i_6679299
labster should really update rakudo so I have eager for loops
good morning, jnthn! 08:24
08:24 fhelmberger joined
jnthn japhb: has $!x, like my $x, has a constraint of Mu and a default value of Any 08:25
japhb: However, the default type of paramters is Any 08:27
japhb: Type constraint, that is
08:28 denisboyun_ joined 08:29 sqirrel joined 08:30 grondilu left 08:31 grondilu joined 08:32 felher joined 08:39 sqirrel left 08:53 dakkar joined
Heather wow github.com/MoeOrganization/moe 08:55
tadzik yep 08:57
Heather speakerdeck.com/player/b402d2a03f3...38154bc3?# - interesting deck 08:58
09:07 arlinius left
Heather masak what do you think about moe? 09:07
09:11 cognominal joined
hoelzro I have encountered the strangest bug ever. 09:12
</exaggeration>
I was trying to add ttyname to POSIX
09:12 domidumont joined
hoelzro and depending on the presence of *other* functions in the module, one of the following happens: 09:12
1) a weird boxing/unboxing error in NativeCall 09:13
2) segfault
3) the string being returned is an integer garbage value
4) the actual proper behavior
jnthn Smells like memory corruption somewhere. 09:17
hoelzro yeah 09:18
something is *weird*
I'll try to isolate some of the more bizarre cases after work
09:18 jerome joined
FROGGS hoelzro: are the errors you get constant? I mean, do you always get error #1 for a given piece of code? 09:19
hoelzro FROGGS: the errors are consistent; by that I mean that if I don't change the source from one run to the next, the error remains the same
FROGGS well, that is actually a good thing 09:20
hoelzro yes 09:21
I plan on creating minimal reproductions for each error
and submitting them here =)
FROGGS bah
fix'em :o)
hoelzro heh
I can try
emphasis on the "try" part ;)
09:21 cognominal left
hoelzro my delve into Rakudo for postcircumfix:<()> taught me a lot, though 09:22
FROGGS ++hoelzro # you now have to succeed to get the karma
09:22 cognominal joined
masak Heather: I'm all excited about moe. 09:31
Heather: for many reasons. I like stevan and trust his judgment.
09:32 arlinius joined
Heather masak well how to use it :D 09:32
masak Heather: and I think his conclusion -- which seems increasingly to be "if you set out to improve Perl 5, you get Perl 6 or something very much like it" -- is very beneficial for the p5-p6 relationship.
Heather: haven't actually tried it yet. :)
Heather: I meant to do that for Easter, but got sidetracked :/ 09:33
09:33 berekuk left
Heather I see 09:33
09:33 berekuk joined
moritz speaking of "meant do that for Easter" -- how's the t2 review coming along? 09:33
Heather masak bin/moe looks very strange for me ) 09:34
masak moritz: it's progressing, but still suffering from $work grabbing priority. :/ 09:35
moritz: realistically, I won't have time for it until the weekend. all of my day- and evening-time is going to $work presently.
09:36 daxim joined
Heather maybe talk / try moe today evening? 09:37
masak I wonder about picture The Community with evil door "Don't open Dead inside" 09:38
masak Heather: :) 09:40
Heather: so, there's this thing called p5p.
Heather: think of it as the Linux kernel development list, but for Perl 5. 09:41
Heather: it's very high-traffic, far more than I can keep up with every day.
Heather: many people on there are also very conservative, basically working against everything that could work to improve p5. 09:42
Heather: for reasons such as "we cannot break backwards compatibility" or "there's a DarkPAN out there full of users who depend on our old bugs!"
Heather: don't get me wrong -- they definitely have a point. it's important not to pull the carpet out from under users. 09:43
Heather I understand
masak Heather: but there comes a point where you cannot do *anything* to improve the state of Perl 5.
09:43 berekuk left
masak Heather: Perl 6 was created out of that realization. and now Moe, too. 09:43
Heather masak but moe support moe... 09:44
moar
)
masak WHAT IN THE WORLD DO YOU MEAN?
er.
what do you mean? :P 09:45
Heather ))))
masak oh, it was a... pun.
I see. :P
Heather masak they say they work on perl5 compatibility as well
masak .oO( moe languages, moe problems )
Heather: yeah, well. it's difficult. as anyone who's tried will tell you. 09:46
Heather sorta
masak Heather: but realistically, it seems that Moe is becoming a "stepping-stone" between Perl 5 and Perl 6. linguistically and (more importantly) socially.
Heather well... 09:47
all the JVM mess I don't like doesn't testes good until I will see perl code with llvm compiled to native image 09:48
*machine code
masak Heather: the consensus here seems to be that LLVM is not as wonderful as you would think. 09:49
mainly because it's, well, low-level. ;)
jnthn I suspect LLVM is rather good at doing what it is typically used for. It's just not the JVM/CLR/Parrot alternative that some confuse it as. 09:50
Heather oh hell I hate my english /s/testes/tastes
jnthn
.oO( what a balls-up :P )
nwc10 today is punday? 09:51
dalek p-jvm-prep: 4a6d986 | jnthn++ | / (3 files):
Prepare for StackState improvements.
nwc10 or is every day punday?
oh, goalposts just moved...
jnthn Yeah...
jnthn hit the point where he has to hack on one of the hairier parts of the code-gen... 09:52
Heather masak well everyone loves jit in java world
instead ARMJ* kernels
*EXCEPT
FROGGS loves jit at the bus station
masak and with good reason.
Heather well jit can use llvm backend 09:53
jnthn The JVM JIT is very good, and it's especially cool that invokedynamic lets us teach it how to efficiently handle constructs and type systems different to the Java one.
masak hm, this bit of news doesn't seem to have reached #perl6: twitter.com/kraih/status/321385887042772993 09:54
also, blogs.perl.org/users/tinita/2013/04...-club.html 09:56
Heather wait what's boy's club? 09:58
tadzik is it just me, or perlmonks is a PITA to browse
masak tadzik: it's not just you.
I distinctly feel that #perl6 is no boys club, and I'd like to keep it that way.
Heather what is boy's club?
labster Heather: male-exclusive zone 09:59
masak Heather: a metaphor for a community that's meant for guys, not gals.
Heather alike?
masak Heather: in this case, by making fun of strawman feminist over-reactions.
Heather: there's enough background in those two links if you're interested. 10:00
Heather alright
masak (but as tadzik pointed out, actually reading PerlMonks is a PITA)
at some point, we're going to replace PerlMonks, I hope everyone understands that :) 10:01
tadzik "And 7 people upvoted that post. That makes perlmonks look quite bad"
masak and by "we", I mean "the Perl 6 community".
tadzik I disagree. 7 bad examples is not that bad for that community size
masak tadzik: how many downvotes?
tadzik I dunno 10:02
I quote tinita's post
nwc10 which "we" is going to replace PerlMonks? I'm a bit confused
tadzik I can see that the poll joke is quite on the edge 10:03
labster It's definitely not a boy's club in here, even if a lot of us are male. We welcome everyone who comes into the community.
(even if they really want perl5 help) 10:04
tadzik on one hand it's ridicouling those few situations when women do overreact over some issues. On the other, well, that's thin ice
nwc10 oh, Perl 5 needs help :-)
10:04 domidumont left
Heather masak another oftopic - I found golo more interesting than scala 10:05
huf is that go on the jvm?
masak Heather: url?
Heather masak for golo?
labster I just read speakerdeck.com/stevan_little/perl...a-dead-end As I'm in the process of porting core modules, I couldn't agree more about the whole perl 5 is "supporting too much old buggy code" thing.
masak Heather: yes. 10:06
Heather masak golo-lang.org/
tadzik labster: hah, I remember when I decided to write File::Find for Perl 6
Heather very "rusty" -- static.rust-lang.org/doc/0.6/tutorial.html
tadzik I was like "I'll just look at Perl 5 for inspiration. OOHHH NOPE"
10:07 domidumont joined
labster Working on File::Path right now (which first of all is a bad name, should be File::Directory::Tree or something). Thankfully someone made a ::Tiny version, so I didn't have to look for inspriation in the 3 existing formats for functions. 10:09
tadzik heh
masak Heather: cute little language indeed.
Heather: though I note it copies Java's (bad taste) can't mutate closed-over variables. :/
Heather masak it looks very similar to rust for me 10:10
masak sort of. 10:11
I'm definitely keeping my eye on Rust. it's an interesting experiment. :)
with nice velocity.
golo seems sort of partway between Java and Rust, yes.
Heather and I feel like all of them just inspired by ML 10:12
masak 16 UTC is still being party time here? 10:20
masak Heather: are you talking about the workshop? it's on May 1st. :) 10:21
Heather: I need to prepare, lots, for handling the simultaneous guiding of 7 people through interesting programming topics, in real time! :P
Heather masak aaah.... 10:22
masak I was thinking that it's today :P
masak Heather: but yeah, I think we're running with 16:00 UTC, if that's fine with you. if you feel that midnight becomes too late to stay up for, there's always the backlog later.
8 people. timotimo++ signed up, too \o/ 10:23
Heather masak no, 16 UTC is good for me.
masak \o/ 10:27
dalek p-jvm-prep: 37116c4 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Implement stack to local spilling for handle.

This gets the general mechanism in place, or general enough for now at least. This means that 'try' now works as an expression; before it was broken due to the JVM mandating an empty stack for a try/catch. Most likely we need this in a few more places; it's also a key piece for the fragmenting transform that will be needed to support gather/take in the future.
p-jvm-prep: 8acffb0 | jnthn++ | t/nqp/44-try-catch.t:
We now fully pass 44-try-catch.t.
nqp-jvm-prep: 50c35da | jnthn++ | docs/ROADMAP:
tadzik ...dalek, you there bro? 10:29
jnthn :)
10:29 anuby left
jnthn The ROADMAP update was just removing a completed item. 10:29
That was a slightly fiddly thing to do... 10:30
tadzik so asm_port is merged?
jnthn tadzik: yeah, and we even make very basic use of invokedynamic already. Not for calls yet.
tadzik nice
jnthn Just for wval resolution.
But it means the invokedynamic code-gen is in place and working. \o/
10:31 rindolf joined
jnthn General question: I'm planning to move the NQP on JVM work into the main NQP repository in the next week or so. It shares far more code than it differs by. Does anybody strongly feel that I should carry the full history of the nqp-jvm-prep repository over when I do this? 10:33
jnthn is personally fine with not doing that, because it almost certainly makes his life easier. 10:34
Also many things that have existed in the nqp-jvm-prep repo are copies of stuff in the NQP repo.
Unless anybody cries out in favor of doing something clever with the history, I suspect I'll just pull in the files as needed. :) 10:35
FROGGS jnthn: will you keep the nqp-jvm-prep repo? 10:39
jnthn FROGGS: I can keep it around for historical interest, if that's considered valuable.
FROGGS maybe just make a note at its README, and let it lay around
I think I won't need its history fwiw 10:40
masak jnthn: if you don't think the history is important, and you're responsible for most of that history, feel free to flatten it :P 10:41
jnthn Yes, I think I'm to blame for the majority of it :P 10:43
timotimo jnthn: do you know how you can just merge commits from a different repository? 10:46
masak .oO( jnthn is to `git blame` for the majority of it )
jnthn timotimo: subtree merge 10:47
Well, it's more like you do the read-tree trick with a prefix, then merge -s ours actually, I guess... 10:48
And massage from there.
timotimo i don't really know exactly how your directory structure differs from the one in nqp, but i woud just make one commit to make the folder structures agree, then git fetch nqp-jvm-prep and git merge than in there 10:49
wow, the only test files that are still missing are 67-errno one and 24-module? 10:53
jnthn Yeah 10:54
Excluding the few Parrot-specific ones. 10:55
timotimo i excluded them "manually" ;) 10:56
masak: looking forward to the workshop 10:59
i'll be visiting my parents at that time, but i should be able to make it no-problem 11:00
masak I'm looking forward to it too. 11:04
timotimo should i directly post my code to rosettacode or should i gist it here first to ask for feedback? 11:05
11:06 brrt joined 11:09 rvchangue left
masak timotimo: the former. 11:11
timotimo: forgiveness > permission.
timotimo right. 11:14
11:14 rvchangue joined
timotimo it needs a bit of fine-tuning first 11:14
and i wish it wasn't so utterly slow
jftr, \c[...] is really nice to have 11:20
lizmat good afternoon #perl6 11:24
Heather hello 11:25
lizmat with the QA Hackathon coming up, I'm planning on expanding the concepts used in my Perl5 module Devel::MaintBlead to Perl 6 11:26
and, if possible, integrate them into CPAN.pm
so that you could have a distribution of a module on CPAN, which would have a Perl 5 and a Perl 6 version 11:27
and have tools like cpan / cpanm be able to install Perl 6 modules from these distributions as well
is that a plan?
masak lizmat: that sounds very attractive, yes. 11:35
lizmat: I refer you to moritz++ and szabgab++, who have both released Perl 6 modules on CPAN before, and have had some interaction with the CPAN admins about the ways that worked less-than-perfect. 11:36
ly*
lizmat goes to check those modules 11:37
timotimo r: my @l = ["█", "█", " ", "█", "█"]; say join "", @l; 11:38
p6eval rakudo a822ca: OUTPUT«█ █ █ █␤»
timotimo why do i get spaces in between, even though i'm joining with ""? 11:39
11:39 tgt joined
timotimo r: my @l = ["a", "b", "c"]; say join "", @l; 11:39
p6eval rakudo a822ca: OUTPUT«a b c␤»
timotimo r: my @l = ["a", "b", "c"]; say (join "", @l).perl;
p6eval rakudo a822ca: OUTPUT«"a b c"␤»
timotimo r: my @l = ["█", "█", " ", "█", "█"]; say join ",", @l; 11:40
p6eval rakudo a822ca: OUTPUT«█ █ █ █␤»
timotimo oh, am i calling it the wrong way around?
r: my @l = ["█", "█", " ", "█", "█"]; say join @l, "";
p6eval rakudo a822ca: OUTPUT«␤»
timotimo r: my @l = ["█", "█", " ", "█", "█"]; say @l.join("");
p6eval rakudo a822ca: OUTPUT«█ █ █ █␤»
lizmat my @l = <a b c>; say join "", @l' 11:41
rn: my @l = <a b c>; say join "", @l'
p6eval niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Confused at /tmp/AFDxusrdS2 line 1:␤------> my @l = <a b c>; say join "", @l⏏'␤␤Parse failed␤␤» 11:42
..rakudo a822ca: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/wRBS9AaNzl:1␤------> my @l = <a b c>; say join "", @l⏏'␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ statement modi…
lizmat rn: my @l = <a b c>; say join "", @l
p6eval rakudo a822ca, niecza v24-37-gf9c8fc2: OUTPUT«abc␤»
timotimo did i break my array?
lizmat rn: my @l = ["a", "b", "c"]; say @l[0] 11:43
p6eval rakudo a822ca, niecza v24-37-gf9c8fc2: OUTPUT«a b c␤»
timotimo oh!
indeed!
lizmat it's a one element array
timotimo thank you, good eye
lizmat rn: say join *, <a b c> 11:44
p6eval niecza v24-37-gf9c8fc2: OUTPUT«aWhatever()<instance>bWhatever()<instance>c␤»
..rakudo a822ca: OUTPUT«aWhatever<1752397876>bWhatever<1752397876>c␤»
lizmat I sort of expected * to revert to an empty string here 11:45
masak never thought of * in that role there. 11:56
lizmat it's one character less than "" and better readable 11:57
timotimo indeed
lizmat however, maybe there is a more Perl6ish way of joining strings without anything in between > 11:58
?
timotimo well ,the only thing that would make sense there would be "", or maybe " ". so principle of least surprise?
jnthn [~] <a b c>
timotimo oh, good point. even shorter and still readable.
jnthn r: say <a b c>.join
p6eval rakudo a822ca: OUTPUT«abc␤»
jnthn Or that :)
lizmat :-) 11:59
nwc10 jnthn: the ususal, again. 12:00
jnthn nwc10: yay :)
12:03 skids left, kaare_ joined 12:05 kivutar joined 12:08 woosley joined 12:10 rindolf left
lizmat looks like '[~] <a b c>' is preferable from a performance point of view 12:12
jnthn That...surprises me.
lizmat it surprised me too 12:13
$ time perl6 -e '[~] (<a b c> xx 10000)' 12:15
real 0m3.573s, user 0m3.333s, sys 0m0.235s
$ time perl6 -e '(<a b c> xx 10000).join'
real 0m4.794s, user 0m4.584s, sys 0m0.198s
moritz huh. 12:18
might be related to weirdnesses in list flattening
12:19 kaleem left
Heather I want gui toolkit 12:20
timotimo how would you implement mapping True, False to "\c[UPPER HALF BLOCK]", False, True to "\c[LOWER HALF BLOCK]", True, True to "\c[FULL BLOCK]" and False, False to " "?
i made a given with four whens, but i was hoping there could be a nicer way
lizmat 2 dimensional array with numified booleans as indexes ? 12:21
12:21 rindolf joined
moritz timotimo: stringify the bools, but it into a hash table 12:22
my %h = ('True True' => "\c[FULL BLOCK]", ...);
timotimo hmm
moritz say %h{"$bool1 $bool2"}
timotimo well, things are more complicated, because i actually have 1 or Any :P 12:24
jnthn walk; bbiab 12:25
12:25 domidumont left
moritz boolify them :-) 12:25
12:25 domidumont joined 12:26 anant joined 12:29 domidumont left 12:30 domidumont joined
lizmat rn: my @a= [" ","\c[LOWER HALF BLOCK]"], ["\c[UPPER HALF BLOCK]","\c[FULL BLOCK]"]; say @a[so "foo"][so "bar"] 12:32
p6eval rakudo a822ca, niecza v24-37-gf9c8fc2: OUTPUT«█␤» 12:33
lizmat rn: my @a= [" ","\c[LOWER HALF BLOCK]"], ["\c[UPPER HALF BLOCK]","\c[FULL BLOCK]"]; say @a[so "foo"][so ""]
p6eval rakudo a822ca, niecza v24-37-gf9c8fc2: OUTPUT«▀␤»
timotimo that's not very much prettier :( 12:34
the output code is so slow ;_;
12:39 kaleem joined
FROGGS rn: my @a= [" ","\c[LOWER HALF BLOCK]"], ["\c[UPPER HALF BLOCK]","\c[FULL BLOCK]"]; say @a[?"foo"][?""] 12:42
p6eval rakudo a822ca, niecza v24-37-gf9c8fc2: OUTPUT«▀␤»
12:42 Heather left
lizmat FROGGS++ 12:44
12:45 anant left 12:53 frdmn left
lizmat maybe this is faster? 12:53
gtodd masak: amazingly I have been able to clone the repo locally and then add 9 pull requests "manually" (by adding repos with "git remote add" ; then "git fetching" then "git cherry-picking" each pull request's SHA ... and I have almost completed following the instructions in docs/release_guid.pod
lizmat rn: my @a= (" ","\c[LOWER HALF BLOCK]","\c[UPPER HALF BLOCK]","\c[FULL BLOCK]"); say @a[?""+ 2*(?"foo")]
p6eval rakudo a822ca, niecza v24-37-gf9c8fc2: OUTPUT«▀␤»
gtodd release_guide.pod even ... I realize these pull requests would not all go into a release without testing/discussion/review I was just "practicing" 12:54
masak: let me do this 25-30 more times to practice then sign me up for June :-)
timotimo niecza runs lots of laps around rakudo on this implementation 12:56
that's both good and bad :|
FROGGS lizmat: I don't think there is a difference in performance of so vs. ? 12:57
12:57 asogani joined
FROGGS rn: my @a= [" ","\c[LOWER HALF BLOCK]"], ["\c[UPPER HALF BLOCK]","\c[FULL BLOCK]"]; sub infix:<█> { @a[?$^a][?$^b] }; say True █ False 12:57
p6eval rakudo a822ca, niecza v24-37-gf9c8fc2: OUTPUT«▀␤»
FROGGS but it takes ages :/
timotimo 1000 particles simulated by niecza in the time rakudo does 50 12:58
lizmat my last one used a flat array
wonder whether that would make a difference
FROGGS hmmm 12:59
FROGGS benches that
*benchmarks or so
13:00 asogani is now known as anant_ 13:01 stevan_ joined
timotimo FROGGS: allow the creation of the array to be pre-loaded before the access happens in the benchmark 13:01
FROGGS lizmat: the flat one takes 2.3s for 1000 say's, 2.8 seconds for the 2d one 13:02
timotimo: what do you mean by 'preloaded'?
timotimo well, create the array, then try 10000 accesses on the array 13:03
FROGGS I did: time perl6 -e 'my @a= (" ","\c[LOWER HALF BLOCK]","\c[UPPER HALF BLOCK]","\c[FULL BLOCK]"); say @a[?""+ 2*(?"foo")] for ^9999'
ohh, 10k says
printing that stuff to my terminal should cost the most time 13:04
lizmat do it without the say?
timotimo yeah, that would be okay
13:05 wolverian joined
lizmat timotimo: maybe additional gains can be had by reducing the number of prints/says (by joining values up beforehand) 13:05
13:05 wolverian left
FROGGS 1.4s flat, 2.1s 2d 13:05
timotimo indeed. 13:06
13:06 wolverian joined
masak gtodd: ;) 13:06
jnthn back
masak gtodd: I can add you right now. 13:07
gtodd masak: :-) I need more training master
masak: still building parrot :) 13:08
by June I should have it down :) OTOH the April release seems like it will be uneventful
FROGGS gtodd: we'll support you, so april might be doable as well 13:10
gtodd masak: do the pull requests (after discussion review whatever) get moved into an official "pull request repository" so they can all be pulled at once (instead of cherry-picking) or are they handled in the github web gui or is there some kind of github "tooling"? (there's a ruby tool called "hub" and matsuno's "ph"). 13:12
FROGGS: heh .. well then ok ...
FROGGS: as you know this channel is being recorded ... :-) 13:13
nwc10 jnthn: the ususal, again.
FROGGS hehe
nwc10 jnthn: I'm not acutally sure if that's an update. That was actually from command history as I was trying to use scrollback to work out when I last reported it
FROGGS gtodd: no problem, I usually do what I promise :o)
nwc10 jnthn: but that's for 50c35da46c94149cd47fa8af6a9fd940e6579cd5, so try is done 13:14
jnthn :) 13:16
13:18 rindolf left 13:19 grondilu left, grondilu joined
gtodd FROGGS: :-) 13:20
FROGGS gtodd: what's your timezone? 13:21
masak gtodd: people tend to handle the pull requests through the github web interface.
gtodd masak: oops on "tooling" I forgot to mention "pithub" which seems to facilitate dealing with pull requests in a locally cloned repos but I can't get it working just now (firewalled for a bit) 13:22
masak ok.
moritz its-a-pity-hub?
gtodd masak: ok I just wanted to practice a bit locally ... I'm a RCS subversion and fossil user but git is foreign :) 13:23
FROGGS: EDT/EST Montreal Canada
FROGGS: (I'm in Ottawa)
FROGGS gtodd: ahh, okay
gtodd so GMT -5 or something 13:24
moritz: haven't heard of that one :-) 13:25
13:26 SamuraiJack left
gtodd moritz: but I like the name 13:27
13:27 SamuraiJack joined 13:30 rindolf joined
timotimo okay, not quite surprisingly, writing ($x, $y) = map { ($_-1, $_, $_+1).pick }, ($x, $y); as two lines without maps is about 5x faster 13:32
that makes a huge difference in the performance of the whole thing
i don't think that quite qualifies for an optimization ... map unrolling :) 13:34
on niecza the difference is almost 0% 13:36
that's what JIT can do ... i'm envious
gtodd masak: so perl6 bugs are tracked on RT (along with perl5) which is nice ... they aren't being moved or reported (or lost) on github ..
jnthn timotimo: I'm...not sure if that's JIT to thank or something else 13:37
moritz well, I think we pay heavily for laziness. If we could statically analyze out laziness in this case, we'd be much faster
masak gtodd: Rakudo bugs are being tracked on RT for now, yes.
timotimo moritz: that makes sense. how hard do you think that would be? at least for some cases? 13:38
13:38 skids joined
timotimo wait, would using for instead make it faster, as for is eager by default now? 13:38
masak rn: my ($x, $y) = 100, 1000; ($x, $y).=map({ ($_-1, $_, $_+1).pick }); say $x; say $y
p6eval rakudo a822ca: OUTPUT«100␤1000␤» 13:39
..niecza v24-37-gf9c8fc2: OUTPUT«101␤1000␤»
13:39 frdmn joined
pmichaud good morning, #perl6 13:39
masak pmichaud! \o/
rn: my ($x, $y) = 100, 1000; ($x, $y).=map({ ($_-1, $_+1).pick }); say $x; say $y
p6eval niecza v24-37-gf9c8fc2: OUTPUT«101␤1001␤»
..rakudo a822ca: OUTPUT«99␤999␤»
hoelzro why are issues enabled for Rakudo on GH if they're not migrated to RT?
moritz timotimo: the hard part is probably what code to run in the eager case
masak hoelzro: good question. I don't know.
moritz hoelzro: they shouldn't be
hoelzro moves to disable them on GH or migrate issues there 13:40
moritz just gets a Unicorn from github
pmichaud issues aren't enabled on Rakudo at GitHub, afaict
jnthn o/ pmichaud
pmichaud I don't see an "issues" link.
github.com/rakudo/rakudo/issues # 404 not found 13:41
gtodd masak: I looked and saw many bugs I won't paste here :-) (I wish RT's search URLs were a bit more RESTful) but was unable to follow the advice of the release_guide.pod since I had no way of determining what "needs resolving" :) 13:42
PerlJam good $localtime all
pmichaud PerlJam o/ 13:43
PerlJam What's new in the world of #perl6 ?
(or even of Perl 6 :)
hoelzro ah, they are indeed disabled
gtodd pmichaud: I have a sense that dvcs works better than distributed bug reporting but ... as long as everything is in sync I guess ...
jnthn PerlJam: NQP on JVM is progressing steadily again :) 13:44
timotimo interesting, the code with for is a tiny bit faster
PerlJam jnthn: cool! :-) 13:45
timotimo: "tiny bit" sounds like "measurement error" to me :)
timotimo jnthn: what interesting challenges lie ahead before rakudo can run on the jvm, too?
PerlJam timotimo: or perhaps "noise"
colomon jnthn: \o/ 13:46
jnthn timotimo: Dealing with the various remaining Parrot-specific bits of Rakudo is a big part of it.
timotimo: Though finishing up the stuff to make gather/take work on the JVM decidedly also counts as "interesting" :) 13:47
timotimo i read about that
PerlJam jnthn: is there a feature-matrix style list of what works and what doesn't? 13:48
jnthn PerlJam: Well, at the moment Rakudo doesn't run on the JVM at all, so no :)
PerlJam: I guess we could do one for NQP but most things from NQP now work too :) 13:49
PerlJam I meant parrot-nqp vs jvm-nqp. Bits that are done, bits that are todo
jnthn Ah. 13:50
There's no matrix for that at the moment, no
But most of what remains is abstractions that don't exist yet on either side.
timotimo PerlJam: it's 21 seconds vs 28 seconds. 13:51
13:54 nyuszika7h left 13:55 nyuszika7h joined
PerlJam jnthn: if all of those things were written down (existing or not), then the other *-nqp implementations would have some clear targets for parity. 13:55
(and would be able to show ways in which they are "better" because they may implement some abstraction that parrot-nqp or jvm-nqp don't have :) 13:57
14:01 kaleem left 14:03 nyuszika7h left 14:04 nyuszika7h joined 14:08 rindolf left 14:11 fgomez left 14:12 rindolf joined 14:13 xilo left, fgomez joined
timotimo arnsholt: does the report on the zavolaj ticket help us fix the problem entirely and all at once? 14:14
seems like someone did a great job finding the problem
14:19 woosley left 14:20 isBEKaml joined
gtodd so if a VM can handle nqp then perl6 can be made to run somehow 14:21
masak heh :)
gtodd: you make it sound so easy! :) 14:22
gtodd but so far there are only 2-3 workable/working VMs (parrot and niezca and ... I forgot) ....
moritz well, rakudo needs a bit more than nqp does
gtodd masak: that's what I meant :-) 14:23
moritz for example support for continuation-y bits
14:23 raiph joined
gtodd masak: *now* it looks like there's "only 2 VMs" but ... being careful what one wishes for is important ;-) 14:23
lizmat afaik, niecza is not a VM, but rather a rakudo on .NET 14:25
jnthn a Perl 6 implementation of .Net 14:26
It's independent of the Rakudo codebase
gtodd lizmat: ok .. that makes future development of "places where perl6 can run" seem even more possible or errm "easy" :-)
lizmat s/rakudo/Perl6
as jnthn pointed out
gtodd it's not really comparable but there was once upon a time people who said "linux is a kernel people need more than just a kernel to have unix workalike" ... jump ahead 10+ years and ... there's N++ distros :-) 14:30
14:31 xilo joined 14:35 prammer joined 14:37 gcole joined 14:41 frdmn left 14:43 SmokeMachine left
gtodd masak: btw as it stands merging some of the git pulls (there are 9) breaks the build :-) 14:47
hoelzro where is this Perl 6 workshop happening? 14:48
14:48 SmokeMachine joined
gtodd it is probably easy to fix or possibly I made a mistake but I wouldn't want to presume merging them was necessary ... I was just "practicing" with git 14:49
masak hoelzro: github.com/perl6/mu/wiki/perl6-wor...p-may-2013 14:52
hoelzro masak: yes, but where? 14:53
on the internet?
isBEKaml irc
japhb (backlogging) [Coke]: DUMP is not in the spec, it's a Rakudo tool for looking "under the covers". At most the spec could specify that such a thing *exists*, but the output would of necessity be very implementation-dependent, so not spectest-able. 14:54
14:55 crab2313 joined
masak hoelzro: on a channel near you. 14:55
japhb jnthn, Why the dichotomy between parameters having Any/Any for default constraint/default type, but has and my having Mu/Any?
hoelzro masak: neat
masak hoelzro: interested? 14:56
hoelzro yes
I just added myself =)
japhb (And FWIW, I had trouble finding the Mu-ness of has in the spec by searching. If it was anywhere, I think it must have been implicit.
)
timotimo japhb: so that methods will autothread on junctions
masak hoelzro++
14:57 jerry66 joined
jerry66 xgermanamateur.blogspot.com/2013/04...world.html 14:57
14:57 jerry66 left
masak I love you people ♡ 14:57
timotimo looking for a somewhat nice, but not completely easy to parse text-based format
masak er. I didn't mean that expression of love to come right after an unfortunate drive-by porn link :P
japhb timotimo, Hmmm, yes, and you don't exactly want to autothread across setting object attributes ... 14:58
FROGGS masak: LIAR *g*
masak ;)
japhb timotimo, thanks for the reminder.
isBEKaml masak: you got atrocious timing! :P
14:58 jerry66 joined, jerry66 left
masak seems so. 14:59
jnthn japhb: Because people generally expect to be able to store anything they like in a scalar they declared, but don't expect to have junctions floating into their code unexpectedly.
japhb jnthn, yep, makes sense. 15:00
jnthn Note that pointy blocks have Mu as the type constraint, as those tend to come inside of your routine 15:01
And for @foo -> $x { } auto-threading on the $x confused people :)
15:02 isBEKaml left
japhb Oh, makes total sense, yes. 15:02
Is there somewhere in the spec that all these default constraint / default type choices are compared, like a table or something?
Like I said, when I searched yesterday, I had searchfail. 15:03
jnthn I *think* these things live in S06 or maybe S09 where auto-threading is defined, but I forget exactly where...
I'm pretty sure there's not a nice table like you describe, though.
nwc10 I don't think that it's S06, as I read it end-to-end yesterday/today 15:04
FROGGS japhb: maybe add a nice table? 15:11
15:13 crab2313 left
gtodd hmm I thought I just clicked on the IRC workshop link ... :-| 15:14
masak: I think can be in the audience 2013-05-01T16:00Z -- 2013-05-01T20:00Z 15:18
i.e. in my local time zone (EST)
[Coke] japhb: I think I won your DUMP contest.
gtodd masak: I won't understand anything it will be more of an ethnographic thing for me 15:19
masak gtodd: hey, don't undersell yourself. either way, you're welcome to attend. 15:22
gtodd thanks 15:23
[Coke] r: say 39289 /22 15:27
p6eval rakudo a822ca: OUTPUT«1785.863636␤»
[Coke] ah, no diakopter did. 15:29
japhb [Coke], diakopter is the current leader, IIRC, with a ratio of 5384.076923
right
FROGGS, currently suffering a little tuit shortage, but I may be able to yes. 15:30
Where *should* such a table live?
[Coke] japhb: I misread his original as only generating that many, not having that ratio. Just noticed the div on the reread. 15:31
FROGGS japhb: what about that place? doc.perl6.org/language/variables
15:32 brrt left 15:37 fhelmberger left
japhb FROGGS, yes, should most likely go there (or have a link from there), but that's documentation, not spec. Should be in the spec too. 15:42
[Coke], ah, gotcha
15:43 kaleem joined
[Coke] I assume one of the unwritten rules is "via the evalbot" so anything that times out doesn't count. 15:44
15:44 isBEKaml joined, isBEKaml left, kaleem left
lizmat S03:2751 states: "An C<IO> object has a C<.file> method that can be queried for its filename (if known)." 15:44
15:45 isBEKaml joined
lizmat shouldn't that be <.path> ? 15:45
rn: my $x="fooz".IO; say $x 15:46
p6eval niecza v24-37-gf9c8fc2: OUTPUT«"fooz".IO␤»
..rakudo a822ca: OUTPUT«IO.new(ins => 0, chomp => Bool::True, path => "fooz")␤»
PerlJam I think that depends on who you believe :) 15:47
lizmat out for dinner, bbl& 15:48
rn: my $x="fooz".IO; say $x.path 15:50
p6eval rakudo a822ca, niecza v24-37-gf9c8fc2: OUTPUT«fooz␤»
lizmat rn: my $x="fooz".IO; say $x.file
masak votes for '.path' being the correct one, and the spec being fossilized
lizmat will then fix trhe
p6eval rakudo a822ca: OUTPUT«No such method 'file' for invocant of type 'IO'␤ in block at /tmp/uoXs3nr2Hc:1␤␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Unable to resolve method file in type IO␤ at /tmp/LvkmQ_GOOK line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4300 (module-CORE @ 583) ␤ at /home/p6…
lizmat the spec when I get back
masak ++lizmat
rationale: 'file' tells you nothing, 'path' tells you that you're wanting the location of the thing. 15:51
PerlJam masak: and so when you have an IO object that's really and HTTP request to some resource, "path" will tell you the URI? 15:55
(not arguing, just pushing the analogy)
s/and/an/ 15:56
masak PerlJam: I think the analogy breaks down sooner than that. with $*IN and $*ERR, for example. 15:58
PerlJam aye, so what should .path return in those instance?
masak PerlJam: but I don't see how that makes "path" worse than "file". :)
PerlJam no, path is certainly better than file :) 15:59
masak PerlJam: also, this is just the usual confusion that our IO class suffers.
it's become better with the last refactor, but I forget the details.
moritz++ might remember.
16:00 grondilu_ joined
moritz wakes-on-IRC 16:00
remember what?
16:01 domidumont left
moritz oh, IO refactor 16:01
it mostly deleted a bunch of design astronautism that was way too vague to implement 16:02
and added IO::Path
and specced a few functions that existed in the implementations
and unconfused Str and Buf in a few places
16:03 grondilu left
masak oh right, IO::Path. 16:03
16:13 FROGGS left
japhb [Coke], yeah, 'via the evalbot' also makes things fair for use of system-dependent values, like %*ENV. :-) 16:14
dalek p/hll: 09d22fc | jnthn++ | src/ (2 files):
Add arnsholt++ nqp::sethllconfig implementation.

Also teach it a bunch of extra HLL-interop related keys.
16:32
p/hll: 6b1f913 | jnthn++ | src/ (4 files):
Start of new HLL-interop infrastructure.

Builds upon the Parrot HLL identifiers. This mechanism will be used to fix various Rakudo issues when NQP-defiend objects are encountered. It will also replace the special-case perl6ize_type with a more general and more portable mechanism, that can work in an environment where all objects are 6model objects.
16:32 Chillance joined 16:36 grondilu joined 16:39 grondilu_ left 16:40 denisboyun_ left 16:45 FROGGS joined 16:46 _jaldhar joined
dalek kudo/hll: 78665ec | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Set up some HLL interop configuration.
16:50
kudo/hll: 5de401d | jnthn++ | src/ (5 files):
First round of pir::perl6ize_type => nqp::hllize.
kudo/hll: 879a068 | jnthn++ | src/ (9 files):
Replace remaining perl6ize_type uses with hllize.
16:56 dakkar left
arnsholt jnthn: Would that branch be a good place to start from for a saner version of my vmarray work? 16:59
16:59 xilo left
jnthn arnsholt: It's opening commit is actually directly nabbing stuff you did. 16:59
arnsholt: This branch should merge soon-ish. It relates to your work in so far as making it possible to handle a world where NQP's basic types (like arrays) are 6model objects. 17:00
arnsholt: I was about to hit the issue on the JVM port, plus I want to fix some long-standing ugliness in Rakudo with regard to using objects from NQP land. 17:01
arnsholt Spiffy!
jnthn arnsholt: But it direclty helps your work too :)
arnsholt In that case I may well just wait for the branch to master
jnthn Yeah. It's going smoothly so far. 17:02
arnsholt Now that I have a better idea of what needs doing, I think I can do it saner and with far less invasive changes to the NQP code in nqp
jnthn OK
17:02 prammer_ joined
isBEKaml arnsholt: heh, everytime I see someone saying "Spiffy", I visualise a guy spitting into his hands and rubbing on his pants. :P 17:02
arnsholt The current state of it is such that I'm pretty certain there are sad-paths that aren't triggered in the NQP/Rakudo compile cycles 17:03
PerlJam Spiffy
arnsholt For example "@vmlist == 3" doesn't work, which is a fairly common idiom. So coercion to I should probably go through the smart_numify op
PerlJam (I'm hacking your brane isBEKaml! ;-)
dalek kudo/hll: 8627b69 | jnthn++ | src/ops/perl6.ops:
Toss perl6ize_type dynop.
17:04
kudo/hll: a7e8fbf | jnthn++ | src/Perl6/Metamodel/ (11 files):
Tag all types as being Perl 6 types.
jnthn arnsholt: Yes, I think that's how I have it on the JVM>
isBEKaml SpiffyJam! :D
17:04 daxim left
jnthn Well, my replacement of perl6ize_type with hllize busts no spectests so far. :) 17:04
arnsholt jnthn: Oh, that's good too. Independently coming up with the same idea as you have on the JVM is a fairly good sign =) 17:05
jnthn r: say Sub.^methods
p6eval rakudo a822ca: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤ in method gist at src/gen/CORE.setting:5259␤ in method gist at src/gen/CORE.setting:902␤ in sub say at src/gen/CORE.setting:7787␤ in block at /tmp/l7D2UoP5bg:1␤␤»
jnthn I should be able to fix things like this soon too :) 17:06
Dinner first, though
arnsholt jnthn: In the end, do you expect any of the custom Parrot ops in Rakudo to survive?
jnthn arnsholt: Some will, but some things really want pushing a little deeper. 17:08
arnsholt: And some need not be ops.
17:09 domidumont joined 17:13 Chillance_ joined
arnsholt Yeah, that's what I thought. The less VM-specific stuff the better 17:14
17:14 tgt left 17:16 Chillance left
[Coke] question I had - what about custom rakudo ops? will those be pushed down into nqp, or will those go away some other how? 17:18
arnsholt Pretty much what jnthn just said I think. Some things are going away, but I suspect there will always be a bit of VM-specific stuff 17:20
If nothing else performance may force VM-specific stuff
17:22 cognominal left, cognominal joined
[Coke] whoops, I misread arnsholt's question as being "in NQP". so, deeper = "move to nqp" ? 17:34
17:45 _jaldhar left
sergot hi ! o/ 17:51
masak sergocie! \o/ 17:54
17:58 fhelmberger joined, xilo joined 17:59 fhelmberger left, tgt joined
timotimo ooooh, YAML is bitrotted a bit 18:00
i should fix it.
18:01 denisboyun_ joined
tadzik hello hello 18:06
moritz ohle leho 18:07
or so :-)
isBEKaml tadzik: 'elo
colomon o/
18:10 fhelmberger joined
masak tadziku! \o/ 18:10
isBEKaml tadzik: [brane-bust] have you started counting leaves to build forests? :P 18:11
tadzik oh, hm 18:12
nope :)
18:13 prammer_ left, prammer left 18:16 fhelmberger left
timotimo oh, it's TestML that's bitrotted, not YAML 18:18
and moritz++ already added patches and a pull requests 18:20
PerlJam twice now today I've glanced at a Perl 6 program and thought it was Perl 5. 18:22
(granted, since the program were written by me, that could be saying something about how I write Perl 6 code )
*programs
18:26 dmol left
perigrin PerlJam: are you saying that's a good thing or a bad thing? 18:27
18:28 dmol joined
timotimo bleh, no comments in this thing 18:28
jnthn back 18:29
moritz Yay. The first evening for three days that bringing $daughter to bed didn't involve 2 hours of her screaming 18:32
isBEKaml moritz: was it 1 hr 59 mins of screaming? (I should really shut up) :P 18:33
moritz I might get around to actually do something
18:33 prammer joined
moritz isBEKaml: even better, no screaming at all 18:33
moritz too tired to think of a witty response 18:34
18:34 kivutar left
isBEKaml moritz: nice, rest and be frei! 18:35
18:35 Chillance_ is now known as Chillance
isBEKaml hmm, *free 18:35
moritz he, "frei" is the correct word in German :-) 18:36
masak moritz: parenting sounds awesome, where do I sign up? :)
isBEKaml moritz: yeah, I got briefly confused where that came from. :)
nwc10 it's easiest with a co-conspirator
masak decides to get one of those non-scream models
isBEKaml masak: they don't make such stock anymore. 18:37
timotimo knowing absolutely nothing about testml, i may not want to tackle YAML and TestML at this point
18:37 kivutar joined
moritz to be fair, Ronja usually one of those non-scream models 18:37
*is 18:38
but no smill child takes it well when the mother is away for several days
isBEKaml o.O( das kind nicht den mund halten! ) 18:40
18:41 tgt left
sergot nom: sub readme_file(Str $path) { return "README$_" if "$path/README$_".IO.e for "", ".md"; } 18:42
p6eval rakudo a822ca: ( no output )
sergot star: sub readme_file(Str $path) { return "README$_" if "$path/README$_".IO.e for "", ".md"; }
p6eval star 2013.02: ( no output )
18:43 SamuraiJack left
moritz sergot: note that p6eval runs on an installed R*, and I don't think the README is installed 18:44
masak moritz: oh, so that was the explanation. I wish you a lot of patience and perseverance, then.
sergot What does "Attempt to return outside of any Routine" mean?
moritz: I have another problem I think. 18:45
masak sergot: means you put a return in a lazy 'for' loop :(
sergot: or in a .map
sergot What does lazy 'for' loop mean? :)
It worked some time ago. 18:46
:)
FROGGS sergot: try the following locally: sub readme_file(Str $path) { return "README$_" if "$path/README$_".IO.e for "", ".md"; return Mu }
moritz and it'll work with the 2013.04 star release again
masak: thanks
isBEKaml sergot: yup, I can reproduce that in 2013.02. Was that fixed since? 18:47
moritz: oh, I didn't see your message. 2013.04, okay. :) 18:48
isBEKaml really goes back to lurking 18:49
moritz basically, rakudo made for-loops lazy by default, as per spec
18:49 tgt joined
moritz and it was surprising in so many ways that I switched it back to being eager 18:49
18:50 arlinius left
japhb For which I most sincerely thank you, moritz++ 18:51
moritz the next question is whether loops should return values at all when they are statements on their own
timotimo i find this grammar is written in an annoying way. 18:52
moritz (and not part of any other expression)
japhb My personal feeling, on unexpected bad performance grounds, is no -- seeing an O(n) algorithm become O(n**2) because of hidden scan semantics kinda sucks. 18:55
I do not want performance of an algorithm to be different depending on order of statements in a sub. 18:56
(When the algorithm itself is not changing.)
18:56 kivutar left
perigrin thanks you saved me from snark overload there. 18:56
timotimo no wonder it says "couldn't find TestML meta declaration". the grammar looks for a colon, but it's not there in the files. 18:57
19:05 isBEKaml left 19:08 domidumont left 19:10 kivutar joined 19:12 fhelmberger joined 19:13 fhelmberger left 19:14 spider-mario joined
timotimo i have the feeling that those testml files from the tests from TestML aren't actually valid testml 19:17
FROGGS .oO( beetlejuice beetlejuice beetlejuice ) 19:19
timotimo FROGGS: the grammar things there should be a : between TestML and the version, for instance. that is not the case.
FROGGS maybe the author was in lax mode when writing it? 19:21
moritz ask ingy :-) 19:22
FROGGS but the question (for me is), is the test file right or the grammar?
19:22 rindolf left
moritz and the answer is an emphatic "yes!" 19:22
FROGGS hehe
timotimo oh, i could ask ingy 19:23
FROGGS moritz: that is the answer I get from my son usually
timotimo ingy: can you give me a bit of guidance with TestML-p6? i'd like to unbitrot YAML, but it uses TestML and that totally does no twork
FROGGS that's why I tend to not ask or-questions
19:23 berekuk joined
masak moritz: the 'x' in 'xor' is pronounced like a cat hissing loudly, or like static from an old-skool TV set. 19:25
moritz masak: even with xor, the answer is "yes" :-) 19:27
masak dang! 19:29
timotimo i guess i'll just have a look at the official specification 19:35
colomon no twork! 19:38
masak .oO( sporks are old hat, meet the twork! ) 19:40
colomon no! no tworks! 19:41
colomon wonders if there's a way to teach TextMate to use < > as quotes. 19:42
PerlJam tworks the pkench
dalek p/hll: 5f9c348 | jnthn++ | src/ (2 files):
Code object mapping support.
19:43
p/hll: 0e3f03c | jnthn++ | src/6model/sixmodelobject.c:
Interop mapping support for 6model objects.
19:49 anant_ left, araujo_ joined 19:51 araujo_ left
dalek kudo/hll: 5cb7046 | jnthn++ | / (4 files):
Add ForeignCode, to wrap foreign code objects.

This means they behave sufficiently Perl 6-like to not blow up:
   say Sub.^methods
And similar.
19:55
colomon has TextMate handling < > as quotes! o/ 19:57
dalek p: 09d22fc | jnthn++ | src/ (2 files):
Add arnsholt++ nqp::sethllconfig implementation.

Also teach it a bunch of extra HLL-interop related keys.
p: 6b1f913 | jnthn++ | src/ (4 files):
Start of new HLL-interop infrastructure.

Builds upon the Parrot HLL identifiers. This mechanism will be used to fix various Rakudo issues when NQP-defiend objects are encountered. It will also replace the special-case perl6ize_type with a more general and more portable mechanism, that can work in an environment where all objects are 6model objects.
kudo/nom: 78665ec | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Set up some HLL interop configuration.
kudo/nom: 5de401d | jnthn++ | src/ (5 files):
First round of pir::perl6ize_type => nqp::hllize.
kudo/nom: 879a068 | jnthn++ | src/ (9 files):
Replace remaining perl6ize_type uses with hllize.
kudo/nom: 8627b69 | jnthn++ | src/ops/perl6.ops:
Toss perl6ize_type dynop.
kudo/nom: a7e8fbf | jnthn++ | src/Perl6/Metamodel/ (11 files):
Tag all types as being Perl 6 types.

Bump NQP_REVISION.
ast: 4ac2c2b | jnthn++ | S12-introspection/methods.t:
Test for RT#115658.
19:59
19:59 fhelmberger joined 20:00 fhelmberger left
FROGGS cool! 20:00
moritz \o/
nwc10 and now beer
?
FROGGS hehe
jnthn Soon :) 20:01
jnthn resolves the RT
gtodd masak: so there were a few problems with the build not working when I added some of the pull requests so .. I did: git reset --hard 51c97843a..... 20:04
and rebuilt
tadzik is tempted to photoshop "SOON" onto a picture of jnthn++ with beer
similarly to img.izismile.com/img/img5/20120224/...640_03.jpg for example
FROGGS hehe 20:05
PerlJam tadzik: I thought beer is was actually fueled all of his work?
FROGGS ++tadzik
PerlJam tadzik: it would be more like "ALWAYS"
tadzik :)
gtodd masak: git has strange docs and --help flags ... lots of sub commands remain mysterious to me but it is not too different than fossil
FROGGS tadzik: I'll order a shirt
moritz git has the "dungeons to be discovered, princesses to be rescued" feel to it 20:07
which is also well-known from Perl 5 :-)
diakopter except without cheat codes
moritz oh, I forgot "dragons to be slain"
diakopter: oh, google is the cheat code :-) 20:08
20:08 gcole left
rjbs jnthn++ # 115658 20:10
[Coke] jnthn++
gtodd moritz: hah 20:15
so if dalek says: 20:16
5:58:46) dalek: roast: Test for RT#115658.
review: github.com/perl6/roast/commit/4ac2c2be9f
does that men the commit 4ac2c2be9f has been reviewed and stuck into nom or it's waiting for review? 20:17
tadzik it's commited and pushed, if you want to review click here
it could as well say "summary:" 20:18
dalek ecs: 18c2444 | (Elizabeth Mattijsen)++ | S03-operators.pod:
Replace mention of now defunct .file method by de-facto .path
20:20
moritz it gives you a link where *you* can review the commit 20:21
[Coke] as we discussed yesterday, there's no formal "review" process for incoming commits, esp. if you've got commit privs. 20:22
PerlJam lizmat++ 20:23
labster wonders if .path on IO should return IO::Path instead 20:26
20:26 araujo joined, araujo left, araujo joined
PerlJam www.facebook.com/photo.php?fbid=51...amp;ref=nf reminds me of #perl6 for some reason :) 20:26
Tene Heh. 20:27
masak :D
lizmat s/eat/program and it would be entirely appropriate
masak .oO( code-pendence ) 20:28
lizmat labster: I would think yes, as it would getting an absolute path from it automatic, no?
labster not quite, you have to do .absolute on it. 20:29
20:32 PacoAir joined
labster So if I wanted to install File::Spec as a core module, would all I have to do is drop it in /rakudo/src/core? 20:34
tadzik core module, or part of CORE.setting? 20:36
labster: obligatory reading: perlgeek.de/blog-en/perl-6/how-core-is-core.html
labster It's core as in: IO::Path which is in S32 needs it to work properly, but it doesn't need to be added to the namespace by default. 20:41
Thanks for the link tadzik++ 20:42
dalek kudo/nom: 003d5cf | jnthn++ | src/Perl6/Metamodel/ContainerDescriptor.pm:
A simple pir:: => nqp:: in the MOP.
20:44
kudo/nom: 4402426 | jnthn++ | src/ (4 files):
Replace an op and a dozen C lines with 1 NQP line.
20:45 bbkr joined
tadzik wow :) 20:47
lizmat always likes it when code get better by (mostly) removing code
tadzik . o O ( Code is best when it's gone ) 20:48
lizmat . o O ( that's another way of finishing a project ) 20:49
Tene c2.com/cgi/wiki?LinesOfCode
jnthn: any chance you'll be blogging again soon? 20:51
lee_ my @list = 0..1_000_000; # should not take 30s and over a 1G of RAM right? 20:52
jnthn Tene: Yeah, it's pretty high on my todo list, now that I'm back in action after my break :) 20:53
lee_ i was looking at en.wikibooks.org/wiki/Perl_6_Progra...eds#Ranges and it says it should be lazy
Tene Glad to hear it. :)
lee_ so i'm surprised it takes so long
tadzik r: my $list = 0..1_000_000
p6eval rakudo 805190: ( no output )
tadzik lee_: if you assign it to a list container (@foo) it expands the range into a list 20:54
20:54 splitcells joined
labster r: my @list := 0..1_000_000; 20:54
p6eval rakudo 805190: ( no output )
tadzik I suppose wikibooks may be outdated here and there
lee_ tadzik: what i am really trying to speed up is 'say [+] 0..1_000_000' which also takes 30s 20:55
tadzik ah, there are plans for things like this 20:56
I mean optimizing these sort of cases
we're not quite there yet, sorry
lee_ ok, just curious if i was missing something 20:57
thanks!
tadzik I suppose that at this moment it generates the entire list in memory and sums its elements
21:01 dmol left
lee_ is there a suggested way to iterate over a lazy list like that? 21:01
without generating the entire list
tadzik if you iterate over the lazy list you will generate it in memory, but not at once :) 21:03
anocelot lee_ A for loop...?
21:03 dmol joined
anocelot read "like that" very, very litterally. 21:03
lizmat map is supposed to be lazy, no? 21:04
21:04 dmol left 21:05 tgt left
labster ($end-$begin)/2*($end-$begin+1) ? 21:05
21:05 gcole joined 21:06 dmol joined
dalek p: 18f5d04 | jnthn++ | src/ops/nqp.ops:
Make nqp::setcodeobj cool with coroutines.
21:06
21:07 splitcells left 21:08 dmol left, skids left 21:09 tgt joined
dalek kudo/nom: ccaae41 | (Geoffrey Broadwell)++ | src/core/Mu.pm:
Change text for unmarshallable hash value to '...' to match unmarshallable objects
21:09
kudo/nom: df6a910 | (Geoffrey Broadwell)++ | src/ (5 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
21:10 dmol joined 21:12 dmol left
labster lee_: maybe this will help: rosettacode.org/wiki/Sum_of_a_series#Perl_6 21:15
lee_ labster: perfect, thanks 21:18
21:19 PacoAir left 21:23 LlamaRider joined 21:24 shachaf_ joined, shachaf_ left, shachaf_ joined, shachaf_ is now known as shachaf
LlamaRider masak: just signed up for your tutorial, looks interesting :) Have you decided what it will cover? 21:26
s/tutorial/workshop/
21:27 fgomez left 21:28 ironcame1 joined, zamolxes_ joined, nwc10_ joined 21:31 fgomez joined 21:32 kaare_ left 21:33 zamolxes left 21:34 kivutar left
masak LlamaRider: I'm fairly clear on what it will cover, but I haven't written it down yet. I will need to do that first before divulging a schedule. 21:36
LlamaRider: also, welcome aboard! \o/
lizmat rn: my ($a, $b, $c) = 1, 2, 3, 4; say $c 21:39
p6eval rakudo 440242: OUTPUT«3␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/fo6SjcCcWT line 1:␤------> my ⏏($a, $b, $c) = 1, 2, 3, 4; say $c␤ $b is declared but not used at /tmp/fo6SjcCcWT line 1:␤------> my ⏏($a, $b, $c) = 1, 2, 3, 4;…
lizmat S03:2918 states: "This, however, warns you of information loss: ($a, $b, $c) = 1, 2, 3, 4;" 21:40
so is this a matter or NYI ?
FROGGS ya, I remember a discussion about that
NYI, I believe it should warn about 4 being in sink context 21:41
lizmat n: my ($a, $b, $c) = 1, 2, 3, 4; say $a, $b, $c
p6eval niecza v24-37-gf9c8fc2: OUTPUT«123␤»
21:41 rking joined
lizmat registers this as NYI then 21:42
21:43 hugme joined, ChanServ sets mode: +v hugme
dalek kudo/nom: e088624 | jnthn++ | / (5 files):
Eliminate a Perl 6 dynop in favor of an NQP one.

They did pretty much the same thing, just ended up with both for historical reasons.
21:44
kudo/nom: 83d0f6c | jnthn++ | src/ (5 files):
Toss another Perl 6 op that duplicated an NQP one.
kudo/nom: 00ca10a | jnthn++ | src/ (4 files):
Assorted pir:: => nqp::.
21:52 woolfy left 22:03 lustlife left 22:05 kurahaupo joined
dalek ecs: 5ca8187 | (Elizabeth Mattijsen)++ | S03-operators.pod:
Added semi-colons so that examples work in cut'n'paste situation
22:15
lizmat goodnight #perl6! 22:20
jnthn 'night, lizmat 22:21
22:21 erkan joined, erkan left, erkan joined
lee_ tadzik: i took a look at rakudo's reduce implementation and it appears to use a for loop, which i gather is now eager? 22:25
would it be worth changing?
jnthn A reduce operation is inherently eager in so far as it needs all the values...
lee_ yes, doh
masak :) 22:26
jnthn I think the range special case is optimizable as a special case.
lee_ i'll play around with that 22:27
jnthn Needs care to cope with the fact that range end points can be inclusive/exclusive.
And that not all ranges are integer or even numeric
22:29 spider-mario left 22:32 skids joined
colomon reduce is only eager if it isn't triangle, right? 22:33
jnthn Right.
Hmm. Seems I kinda considers that as a different meta-operator... :) 22:34
22:39 fhelmberger joined, fhelmberger left
japhb tadzik, what are your thoughts on panda supporting multiple projects.json files, fetched from multiple locations? 22:47
My use case is to have a private Perl 6 module collection at $day-job for the stuff I can't release into the wild ... but I still want to use standard tools to handle it. 22:48
22:49 grondilu left
japhb So I want to be able to fetch the public projects.json for all the open source modules, and a separate projects.json from our repo server for the private ones, and be able to specify that the private projects list overrides the public one. 22:49
(Most of the time they won't conflict, but I'd hate to have a huge mess because sometime down the road someone created a public module that happened to name-collide with one of ours.) 22:51
FROGGS japhb: if we had the <auth> adverbs on use-statements yet you would be safe 22:52
japhb .ask tadzik Please take a gander at the panda enhancement idea starting at irclog.perlgeek.de/perl6/2013-04-09#i_6684351 and let me know what you think
yoleaux japhb: I'll pass your message to tadzik.
FROGGS use File::Tools:auth<MyCompany>;
japhb Ah yes, true enough. 22:53
Maybe what I'm asking for then is to finally have auths.
FROGGS but I guess it is still a long way to that point :/
japhb Why do I get the feeling before I do a talk on this, I'm going to have to fix the stuff that's not Right yet?
FROGGS the panda way should be much easier
because that is hoe community-ware works? 22:54
japhb FROGGS, sure, but there's a nice stepping stone by which panda learns about auths and understands multiple sources of auth (and other meta) data, and uses a static rule about which to install, before we get the whole multi-install everything goes happy place. 22:55
TDD: Talk Driven Development 22:56
FROGGS hehe
masak 'night, #perl6 22:57
japhb That said, when we do automated recompiles, we're going to have to be working with files by content hash anyway, so might as well take that opportunity to start doing All The Things
'night, masak, sleep well
FROGGS night masak
well, I made a proposal about the module-loadery... but I had no time yet to implement it 22:58
japhb ditto on both counts :-) -- though as I recall mine tried to prematurely optimize, and it turned out the full generality was needed anyway. 23:00
FROGGS ya, I tried to optimize less at first, so you can better peek and poke and see what is (not) happening 23:01
that's why I put "so much" information in the manifest files, so you dont need extra debug information when starting with it 23:02
japhb I think I've got a better idea (than my original, I forget how yours varies) churning in my head about handling manifest files efficiently.
japhb wants to avoid the "startup involves thousands of stat()s" that certain other languages fall prey to. 23:03
FROGGS well, my first goal is to provide stability and reliability
japhb Sure, but I'm trying to keep startup time from getting *even worse* than it already is. 23:04
FROGGS sure sure
japhb (At least, thanks to the herculean efforts of the Rakudo devs, it's way better than it once was.)
jnthn sleep & 23:07
japhb good dreams, jnthn 23:08
jnthn here's hoping :)
o/
FROGGS gnight jnthn
23:10 denisboyun_ left
lue S02/Names/Dynamic variable creation: "It will not be created in GLOBAL (or PROCESS) automatically, nor is it created in any lexical scope." Does that mean my own $* variable won't be treated the same as the core ones unless I use the example at the bottom? 23:21
23:24 telex joined 23:42 Chillance left 23:45 LlamaRider left