Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-06-13

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:04 btyler joined #perl6
00:21 btyler joined #perl6
00:36 Chillance joined #perl6
00:55 anuby joined #perl6
01:06 FROGGS_ joined #perl6
01:11 BenGoldberg joined #perl6
01:13 ssutch joined #perl6
01:14 ssutch is there any way to make the panda bootstrap script more explicit, it is failing on one of the subtests (testing panda) and i'd like to debug
01:15 hypolin joined #perl6
01:16 timotimo_ you can try installing ufo, then running ufo in the panda dir to get a makefile, then building panda with ufo and running the tests manually with "perl6 -Ilib t/foo.t
01:17 ssutch oh dear
01:17 colomon I don't think you actually need to use ufo to build panda if you run the tests with perl6 -Ilib
01:19 timotimo_ oh, that works? good point then.
01:19 ssutch ah ok
01:20 timotimo_ i'm going to bed now. good luck!
01:21 ssutch ok, so i ran perl6 -Ilib t/tester.t (which is the file that was failing)
01:21 timotimo_ hehe, the tester fails to test :)
01:22 ssutch and it appears to pass, and then die on t/fail.t
01:22 ssutch which is not addressed in the command line
01:23 timotimo_ oh
01:23 timotimo_ a question
01:23 timotimo_ does it end in "ok 2 - what should fail, fails"?
01:23 ssutch https://gist.github.com/samuraisam/5770551
01:23 ssutch ^ output above, it ends with "not ok 2 - what should fail, fails"
01:23 timotimo_ hah, wat? it fails, but fails to notice that it failed, so it assumed it succeeded and thus the test to fail failed
01:24 ssutch haha
01:24 timotimo_ oh, that may come from the new exception types perhaps, let me check
01:24 [Coke] with latest rakudo-java, if I comment out "use v6" in t/01-sanity/*.t, we actually pass 8 files.
01:24 ssutch if it was just committed to rakudo, then possibly. i am not running a star release
01:25 colomon [Coke]: \o/
01:25 ssutch nice!
01:25 colomon ssutch: the change is actually to panda.
01:25 timotimo_ hmm, if the prove returns nonzero, it will "fail 'Tests failed'"
01:26 timotimo_ why doesn't it fail according to dies_ok?
01:26 colomon ssutch: I don't see any sign of a fail.t existing now?
01:26 ssutch environ: ubuntu 13.04, perl 5.14.2, TAP::harness 3.23
01:26 timotimo_ r: sub foo() { fail "tests failed" }; use Test; dies_ok { foo }, "hopefully OK";
01:26 camelia rakudo b2072f: OUTPUT«ok 1 - hopefully OK␤»
01:26 ssutch rakudo: latest, panda: latest
01:26 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/MXExaCWR91:1â�¤------> [32mlatest, panda[33mâ��[31m: latest[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        statement endâ�¤        stat…
01:27 timotimo_ fwiw, i cannot reproduce your problem :(
01:27 colomon ssutch: https://github.com/tadzik/panda/tree/master/t
01:28 ssutch colomon: strangely, panda installed on another machine fine, not hours ago
01:28 colomon oh, is this in testmodules/testme2/t/?
01:28 timotimo_ yes
01:28 ssutch yeah
01:29 rindolf joined #perl6
01:29 timotimo_ i was going to bed, so that's what i'll do now. good luck!
01:29 colomon https://github.com/tadzik/panda/blob/master/testmodules/testme2/t/fail.t
01:29 colomon is it that file?  That's only got one test...
01:29 timotimo_ t/fail.t (Wstat: 0 Tests: 1 Failed: 1) Failed test:  1
01:29 timotimo_ that's the expected result
01:30 timotimo_ the *unexpected* result is that fail not leading to the exception
01:30 colomon ah
01:30 timotimo_ and *that* causes not ok 2 - what should fail, fails
01:30 timotimo_ # Looks like you failed 1 tests of 2
01:30 timotimo_ testception
01:30 timotimo_ and bedtime
01:30 ssutch hah
01:30 ssutch colomon: https://gist.github.com/samuraisam/5770551
01:30 ssutch (you may've already seen that link)
01:31 colomon hold on, I'm going to try it myself.
01:33 ssutch perl6 --version; This is perl6 version 2012.10 built on parrot 4.6.0 revision 0
01:33 colomon hmmm... that's a bit old now.
01:34 colomon aha!  duplicated your failure.
01:34 ssutch installed from the repo, not sure why it says that
01:34 ssutch maybe when building from a repo it doesn't embed the correct version
01:34 colomon wrong branch, maybe?
01:34 colomon perl6 --version
01:34 colomon This is perl6 version 2013.05-210-g1d43629 built on parrot 5.2.0 revision RELEASE_5_2_0
01:34 colomon that's built from a repo
01:36 ssutch yep, you're right, i am pointing at the wrong perl6 binary, strangely
01:36 lustlife joined #perl6
01:36 ssutch This is perl6 version 2013.05-236-gc947f78 built on parrot 5.2.0 revision RELEASE_5_2_0
01:38 ssutch colomon: how did you repro?
01:39 colomon I got a fresh panda, used the bootstrap code to git the submodules, then did perl6 -Ilib -Iext/File__Tools/lib  t/tester.t
01:39 mrallen1 joined #perl6
01:40 ssutch colomon: strangely, when using the correct version of rakudo, it installed just fine, so perhaps an error is being masked somewhere?
01:40 colomon I don't know.  This is somewhat confusing code.  :\
01:41 colomon my rakudo is not perfectly fresh, so there's a possibility that's the issue.
01:42 ssutch probably not, i can repro the issue (despite installation working properly) by running the same command as you
01:42 colomon interesting.  if I change Tester.pm to die instead of fail, I catch the error.
01:46 ssutch what does that imply?
01:47 colomon I wonder if you're seeing nested failures?  That is, tester.t fails because Panda::Tester::test has changed errors from die to fail; and then the installer installs it anyway, because Panda does n't notice the fail as a test failure.
01:47 labster try doesn't catch errors thing I ran into yesterday?
01:48 colomon labster: I didn't notice that when you posted it (or I've forgotten), can you give us more context?
01:48 s1n joined #perl6
01:48 labster sub foo { fail "bar" };  try foo(); #this dies
01:49 * colomon is running a huge cad test in the background, as well as systematically downloading video of the 1981 Newfoundland Folk Festival.  My input control on my box comes and goes as a result...
01:49 labster because try catches thrown errors, but not failures, and then the failure goes into sink context and gets thrown
01:50 cognominal joined #perl6
01:50 ssutch hmm
01:50 colomon labster: yes, I'm think this might be a similar issue
01:51 * colomon is now desperately turning off programs because his Mac is running out of memory.
01:53 * colomon ah, the cad program was using 4.5 gigs of memory.  :\
01:54 GlitchMr joined #perl6
01:55 atroxaper joined #perl6
01:56 ssutch colomon, labster: is that a bug which needs reported?
01:56 labster Yeah, a specsbug (IMO, anyway)
01:56 colomon the immediate problem is a panda bug
01:56 colomon (I mean, not labster's thing)
01:57 ssutch im not sure what a specsbug is, or how to go about helping, unfortunately
01:57 colomon ssutch: he means it's actually a problem with the perl 6 specification.
01:57 labster Don't worry about it, I'll think about it some more :)
01:58 labster What are we trying to fix in panda?
01:58 colomon the panda thing is a more immediate issue though, I'm pretty sure it still won't work even if that bit of the spec and rakudo were fixed the way labster++ wants.
01:59 ssutch i see
01:59 colomon let me ponder the best way to report it.
02:01 atroxaper left #perl6
02:01 ssutch meaning how to describe it in a bug on the GH project?
02:02 colomon ssutch: was pondering fixing it locally and doing a pull request, but probably just submitting the bug is better.
02:02 benabik joined #perl6
02:02 ssutch eh, good to get something started
02:03 ssutch if you file a bug i can tinker with a fix
02:03 census2 joined #perl6
02:03 ssutch i won't be able to describe the problem well enough, or with enough depth
02:05 colomon I'm still trying to figure out if I understand the problem or not.
02:07 stevan__ http://www.infoq.com/presentations/Thinking-Parallel-Programming << good talk about concurrency and perhaps Perl 6 related
02:08 stevan__ lizmat: ^ you in particular might be interested in this
02:12 colomon ssutch: huh.  looking over everything again, I'm not convinced there is a bug after all.  what you were seeing may have been because you were using an obsolete p6
02:12 ssutch true
02:12 ssutch why might it fail when you run the case individually, then?
02:12 colomon I think I might have been misreading the test output then.
02:13 colomon https://gist.github.com/colomon/5770760 looks like the first one I got working
02:13 sorear o/
02:13 colomon there's that FAIL, but it's the FAIL for the inner test, not the outer test.
02:13 colomon \o, sorear
02:14 ssutch haha, you're right:
02:14 ssutch ok 2 - what should fail, fails
02:14 colomon ssutch: I searched over the code, and it looks to me like it should be trapping fails and converting them to exceptions.
02:14 colomon I'm not convinced it's a sane error handling system, but it does look like it should work.
02:15 colomon unless $_ = $.tester.test($dir) {
02:15 colomon die X::Panda.new($bone.name, 'test', $_)
02:15 colomon }
02:17 colomon seems like it's adding a couple of lines of code and a conditional simply to avoid passing the name of the project into the testing code.
02:19 labster anyone convinced of panda's sanity is probably insane himself.
02:20 ssutch hah
02:40 colomon afk # sleep
02:42 Teratogen does perl 6 still use & for functions/subroutines?
02:43 atroxaper joined #perl6
02:44 lue r: &say("yes :)")
02:44 camelia rakudo b2072f: OUTPUT«yes :)␤»
02:45 Teratogen that's slicker than cum on a gold tooth!
02:46 ssutch r: my $s = &say; $s("plop");
02:46 camelia rakudo b2072f: OUTPUT«plop␤»
02:47 Teratogen I can see Perl 6 is going to be a whole new learning curve for me
02:48 SamuraiJack joined #perl6
02:49 lue r: my ¢capture = \(1,2,3); # sadly, we do not still have this sigil :( (S08 says we do, but IIRC that's a bunch of lies)
02:49 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Malformed myâ�¤at /tmp/U0j_rYGsVR:1â�¤------> [32mmy [33mâ��[31m¢capture = \(1,2,3); # sadly, we do not [0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤Â»
02:49 benabik r: my \cap = \(1,2,3)
02:49 camelia rakudo b2072f:  ( no output )
02:49 benabik r: my \cap = \(1,2,3); say cap
02:49 camelia rakudo b2072f: OUTPUT«1 2 3␤»
03:00 imIKARi joined #perl6
03:03 btyler joined #perl6
03:05 labster r: my \cap = \(1,2,3); say cap.perl
03:05 camelia rakudo b2072f: OUTPUT«Capture.new( list => (1, 2, 3).list, hash => EnumMap.new())␤»
03:06 benabik To be fair, I think you can store them in normal $vars.
03:06 benabik r: my $cap = \(1,2,3); say $cap.perl
03:06 camelia rakudo b2072f: OUTPUT«Capture.new( list => (1, 2, 3).list, hash => EnumMap.new())␤»
03:07 lue Of course you can. But normal variables don't have a sigil that requires fancier methods to type :)
03:08 lue (On a US keyboard, anyway)
03:19 atroxaper Good morning, #perl6 !
03:24 sorear o/
03:29 cognominal joined #perl6
03:29 jercos joined #perl6
03:40 btyler joined #perl6
03:43 pmichaud sorear: sorry I didn't get the CLA printed while in Austin... ended up getting back to room too late each day.
03:44 Teratogen is there a CPAN for Perl 6 yet?
03:44 benabik panda?
03:44 sorear it's called panda.  look it up.
03:44 pmichaud if you email or /msg me a mailing address for you, I'll send you a blank CLA and a return-postage envelope.
03:44 pmichaud Teratogen: modules.perl6.org may be what you're looking for.
03:55 ldthien0 joined #perl6
03:59 preflex_ joined #perl6
04:02 ldthien0 joined #perl6
04:06 dalek rakudo/nom: 90f3bee | pmichaud++ | src/core/Hash.pm:
04:06 dalek rakudo/nom: Enable Hash[TVal,TKey].new to work (for lizmat++).
04:06 dalek rakudo/nom:
04:06 dalek rakudo/nom: This patch updates Hash.new so that it correctly understands
04:06 dalek rakudo/nom: how to create typed hashes from a parameterized Hash type object.
04:06 dalek rakudo/nom: In particular, `Hash[Str,Int].new` will create a hash constrained
04:06 dalek rakudo/nom: to Int keys and Str values.
04:06 dalek rakudo/nom:
04:06 dalek rakudo/nom: This patch at least partially addresses
04:06 dalek rakudo/nom: https://github.com/perl6/specs/issues/43 .
04:06 dalek rakudo/nom:
04:06 dalek rakudo/nom: Note that this doesn't resolve the output of `.perl` on
04:06 dalek rakudo/nom: typed hashes; that's a different problem (having to do with
04:06 dalek rakudo/nom: the definition of `Hash.perl` and/or `TypedHash.perl`).
04:06 dalek rakudo/nom: And `.perl` is due for some redesign as well, see
04:06 dalek rakudo/nom: https://github.com/perl6/specs/issues/6 .
04:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90f3beeceb
04:07 aindilis joined #perl6
04:07 sorear pmichaud: \o/
04:08 pmichaud https://gist.github.com/pmichaud/5771173  # example run
04:09 pmichaud it's often nice when the patch description is longer than the patch itself :)
04:11 pmichaud .tell lizmat creating typed hashes via Hash[TVal,TKey].new now works.
04:11 yoleaux pmichaud: I'll pass your message to lizmat.
04:11 pmichaud okay, time to take care of other stuff... be back tomorrow, hopefully
04:27 Psyche^ joined #perl6
04:32 FOAD joined #perl6
04:32 FOAD joined #perl6
04:52 birdwindupbird joined #perl6
04:53 lue Is TVal first because someone who types just Hash[Obj] is more likely to be wanting to constrict value type?
04:59 sorear yes
04:59 sorear all required parameters must come before all optional parameters
04:59 zby_home joined #perl6
04:59 sorear also this allows Hash[foo] and Array[foo] to both be containers of foo
05:44 dmol joined #perl6
06:06 dylanwh joined #perl6
06:16 tomyan joined #perl6
06:41 zby_home joined #perl6
06:43 vaelxon joined #perl6
06:46 kaleem joined #perl6
06:47 yves joined #perl6
06:49 FROGGS_ joined #perl6
06:49 FROGGS o/
06:54 labster \o FROGGS
06:54 moritz \o *
06:57 RedditAnalytics could someone show me a COBOL one-liner to decode a JSON string?
06:57 RedditAnalytics whoops wrong channel
06:59 FROGGS hehe
07:00 FROGGS not so wrong, I guess here are peeps who'd love to help you there
07:00 Patterner don't say the C-word.
07:02 Teratogen back in the late 1990s I saw examples of Cobol CGI and Fortran CGI on the web
07:03 Teratogen they both looked very painful
07:03 Patterner I saw a "HUNT THE WUMPUS" in COBOL recently
07:03 bonsaikitten Teratogen: you say that as if these things were retired now
07:03 Patterner I do COBOL nearly every day... it's alive^Wundead.
07:03 Teratogen Object Oriented Cobol!
07:04 moritz cOObol?
07:04 Patterner OOPSCOBOL
07:05 sorear is that anything like CLC OBJECT DISORIENTED INTERCAL
07:06 sorear bonsaikitten: but is cobol still being used *for CGI*?
07:06 domidumont joined #perl6
07:07 bonsaikitten sorear: never run a touchy system, or something ;) I mean ... I have some sh-CGI here, and I see no reason to replace it
07:11 Patterner banks and insurance companies normally don't use CGI.
07:12 moritz what do they use? mod_php?
07:12 Patterner 3270 :)
07:14 * sorear does, in fact, have to interface with COBOL for $dayjob
07:14 * sorear uses... unsecured ftp dropboxes.
07:15 Patterner our customers have to use sftp for delivery :)
07:15 sorear actually that's not quite true.  the system uses USER/PASS authentication.
07:16 sorear but business data over cleartext tcp gives me the heebie jeebies
07:16 sqirrel joined #perl6
07:16 sorear Patterner: that's awesome.  $PARTNER doesn't even offer sftp.
07:17 sorear and no X12.58 either
07:19 Patterner "we don't do that" "exclude our liability in writing" "we can do that"
07:20 sorear hmm?
07:21 Patterner when some doesn't want to use sftp
07:21 Patterner *someone
07:22 sorear ah, when other people want to use plain ftp, you make them sign waivers?
07:22 sorear what kind of business are you running?
07:23 Patterner so far everybody complied :)
07:23 Patterner converting z/OS Assembly to COBOL
07:23 Patterner (not running, just a small cog in the big wheel)
07:26 domidumont joined #perl6
07:31 lustlife` joined #perl6
07:40 lustlife` joined #perl6
07:43 lizmat pmichaud++
07:43 yoleaux 04:11Z <pmichaud> lizmat: creating typed hashes via Hash[TVal,TKey].new now works.
07:50 Tsuki-san joined #perl6
07:53 lizmat Stevan__++
07:54 lustlife` joined #perl6
08:01 Tsuki-san joined #perl6
08:13 fhelmberger joined #perl6
08:18 tomyan joined #perl6
08:26 tgt joined #perl6
08:29 ssutch_ joined #perl6
08:30 ssutch_ damn, i like hyper operators or whatever, the >>
08:32 SmokeMac_ joined #perl6
08:34 dakkar joined #perl6
08:37 moritz yes, they are neat
08:40 masak good antenoon, #perl6
08:45 moritz \o masak
08:46 sorear o/
08:46 dalek roast: 11905a8 | (Elizabeth Mattijsen)++ | S02-types/ (2 files):
08:46 dalek roast: Fudge some now passing keyset|set tests
08:46 dalek roast: review: https://github.com/perl6/roast/commit/11905a837b
08:46 hypolin joined #perl6
08:46 sorear moritz: I just realized I haven't seen Ronja in almost a year.  Did you successfully train her to avoid keyboards? :)
08:47 ssutch_ what's a good way to get an array of random numbers
08:47 sorear r: say rand xx 5
08:48 camelia rakudo b2072f: OUTPUT«0.47205200940104 0.873995257114199 0.0482415071191511 0.820666323078587 0.344253672970794␤»
08:48 SmokeMachine joined #perl6
08:48 moritz sorear: for one my laptop is broken, and the desktop keyboard harder to read
08:49 moritz sorear: and I try harder to move the cursor out of the irssi window, thus taking the focus away
08:49 moritz sorear: and finally, growing up, she spends less time on my lap :-)
08:49 ssutch_ what if i want integers 1 to 30?
08:49 jnthn r: say (1..30).roll(5)
08:49 camelia rakudo b2072f: OUTPUT«24 21 10 3 17␤»
08:50 moritz sorear: oh, and I work more, so less time at home in front of IRC
08:50 ssutch_ roll?
08:50 moritz like rolling dice
08:50 ssutch_ yeah, how does (1..30).roll work?
08:50 sorear r: say (1..10).pick(7) # or if you want a lottery, that can be done too
08:50 camelia rakudo b2072f: OUTPUT«5 4 8 7 9 3 1␤»
08:51 sorear ssutch_: 1..30 returns a Range object, pick and roll are methods on that
08:51 ssutch_ ahh
08:51 jlaire joined #perl6
08:51 sorear moritz: so how much longer until she deliberately seeks out IRC windows? :D
08:52 ssutch_ neato
08:56 moritz sorear: dunno, currently youtube is all the rage, mostly this one here: https://en.wikipedia.org/wiki/Mole_%28Zden%C4%9Bk_Miler_character%29
08:56 moritz and anything related to fire fighters
08:58 ssutch_ is it better to turn a float rand into an int or to use Range::roll?
08:59 moritz sorear: Range.roll is more idiomatic
08:59 moritz sorry, meant ssutch_
09:00 ssutch_ hokay
09:00 ssutch_ thanks!
09:00 ssutch_ is there a way to apply the >> operator to an infix operator such as *
09:01 sorear r: say (1..10) <<*>> (1..10)
09:01 camelia rakudo b2072f: OUTPUT«1 4 9 16 25 36 49 64 81 100␤»
09:01 sorear r: say (1..10) >>*<< (1..10)
09:01 camelia rakudo b2072f: OUTPUT«1 4 9 16 25 36 49 64 81 100␤»
09:01 sorear r: say (1..10) >>*>> 5
09:01 camelia rakudo b2072f: OUTPUT«5 10 15 20 25 30 35 40 45 50␤»
09:01 sorear r: say (1..10) >>*<< 5
09:01 camelia rakudo b2072f: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<*> are not of the same length␤left: 10 elements, right: 1 elements␤  in sub hyper at src/gen/CORE.setting:14157␤  in sub hyper at src/gen/CORE.setting:14145␤  in block  at src/gen/CORE.setting:14136␤  in block  at …
09:03 ssutch_ heh you guys rock
09:04 kaleem joined #perl6
09:07 ssutch_ r: say ((rand xx 10)>>*>>10)>>.floor.join(", ")
09:07 camelia rakudo b2072f: OUTPUT«7, 9, 2, 0, 5, 6, 1, 3, 1, 3␤»
09:07 ssutch_ lolz
09:07 ssutch_ that's fun
09:16 jnthn pmichaud++ # Hash.new fix, and it's almost certainly faster too :)
09:16 Timbus r: (0..9).roll(10).join(", ").say
09:16 camelia rakudo b2072f: OUTPUT«8, 8, 2, 6, 2, 8, 6, 0, 9, 9␤»
09:17 ssutch_ what if i wanted to turn those each into a list of string "x"
09:18 ssutch_ eg ["xxxxx", "xxxx", "x", "xxxxxxx", ...]
09:18 Timbus map * x "x"
09:18 ssutch_ so x multiplied by the integer in the array
09:18 Timbus r: say "x" x 5
09:18 jnthn r: (0..9).roll(10).map("x" x *).join(", ").say
09:18 camelia rakudo b2072f: OUTPUT«xxxxx␤»
09:18 camelia rakudo b2072f: OUTPUT«x, xxxxxxxx, xxxx, x, xxxxxxxx, xxxxx, xx, xxxxxx, xxxxx, ␤»
09:18 Timbus yeah
09:18 ssutch_ nice
09:18 ssutch_ what is the *
09:19 Timbus "whatever"
09:19 ssutch_ like $_
09:19 Timbus basically
09:19 ssutch_ cool
09:19 Timbus makes a block though
09:19 jnthn "x" x * creates a closure like { "x" x $_ }
09:20 ssutch_ ahhh, ok
09:20 Timbus r: my $addfive = * + 5; say $addfive(37)
09:20 camelia rakudo b2072f: OUTPUT«42␤»
09:20 jnthn Well, I guess it doesn't clone over much of anything in this case, though. :)
09:20 ssutch_ is there something like .select(* > 1) to filter an array
09:20 jnthn .grep(* > 1)
09:20 Timbus grep(* > 1)
09:20 Timbus what is this a race D;
09:21 jnthn :)
09:21 ssutch_ fun
09:22 lizmat jnthn: wrt pmichaud's changes: I guess all of the [TVal,TKey] work is done in the nqp::create(self) ?
09:22 ssutch_ p: say ((rand xx 10)>>*>>10)>>.floor.grep(* > 1).map("x" x *).join(", ")
09:22 camelia pugs: OUTPUT«*** ␤    Unexpected "*>>"␤    expecting term postfix␤    at /tmp/7AisggCMaP line 1, column 20␤»
09:22 ssutch_ r: say ((rand xx 10)>>*>>10)>>.floor.grep(* > 1).map("x" x *).join(", ")
09:22 camelia rakudo b2072f: OUTPUT«xx, xxxxxxx, xxxxxxx, xxx, xxxx, xxxxxxx, xxxxx, xxxx␤»
09:22 lizmat jnthn: or in the %h.STORE(@args) ?
09:23 jnthn lizmat: nqp::create(self) creates something of exactly the same type as self
09:23 jnthn lizmat: And the [TKey, TValue] are part of the type
09:23 lizmat ok, I didn't realize it was that simple
09:23 ssutch_ fun times
09:24 masak r: say join ", ", map "x" x *, (2..10).roll
09:24 camelia rakudo b2072f: OUTPUT«xxxxx␤»
09:24 masak r: say join ", ", map "x" x *, (2..10).roll xx 10
09:24 camelia rakudo b2072f: OUTPUT«xxxxx, xxxxxxx, xx, xxxxxx, xxxxxxxx, xxxxxxxxxx, xx, xxxxxxx, xxxxxx, xxxxxxxxxx␤»
09:24 ssutch_ nice
09:25 masak utilizing listops and not just chaining.
09:25 masak r: say join ", ", "x" x (2..10).roll xx 10
09:25 camelia rakudo b2072f: OUTPUT«xxxxxx, xxx, xxxxxxxxx, xx, xxxxxxx, xxxxxxxxx, xxxx, xxxxxxxxx, xxxxxxxx, xxxxx␤»
09:25 masak even better ;)
09:25 ssutch_ interesting, listops
09:26 masak in the above, 'join' and 'map' were listops.
09:26 masak effectively it means that they have an invisible '(' and the ')' is also invisible and ends up at the end of the statement.
09:27 ssutch_ chaining is clearer, coming from python/java/etc, however listops is prettier
09:27 masak yeah, listops reduce clutter.
09:27 jnthn There's also feeds
09:27 lizmat r: say ("x" x 10).substr(0,(2..10).roll) for ^10
09:27 camelia rakudo b2072f: OUTPUT«xxxx␤xx␤xxxx␤xxxxxx␤xxxxxxxxx␤xxxxxxxxxx␤xxxxxxx␤xxxxxxxxxx␤xxxxxx␤xxx␤»
09:27 jnthn r: (2..10).roll(10) ==> map "x" x * ==> join ", " ==> say
09:27 camelia rakudo b2072f: OUTPUT«xxxxx, xxxxxxx, xx, xxxxxxxx, xxxx, xx, xxxxxxxx, xxxxxxx, xxxxxxx, xxxxxxxxx␤»
09:27 masak so many paradigms! :D
09:27 Timbus r: say join ", ", do for ^10 {"x" x (2..9).pick}
09:28 camelia rakudo b2072f: OUTPUT«xxxxxxxx, xxx, xxxxxx, xxxxxxx, xxxxxxxx, xxx, xxxxxx, xxx, xxx, xx␤»
09:28 jnthn Which mean you can write things in the order they take place.
09:28 ssutch_ masak: if you were to put parens around that, what would it look like?
09:28 sorear jnthn: I'm thinking that all frames in a caller-chain should have the same thread context
09:28 masak r: say(join(", ", map("x" x *, (2..10).roll xx 10)))
09:28 camelia rakudo b2072f: OUTPUT«xx, xxxxx, xxx, xxxxx, xxxxxxxx, xxxxx, xxxxxxx, xxxxx, xxxxxxxxxx, xxxxxxxx␤»
09:29 jnthn sorear: Not sure that can be true? I mean, what's the caller of an async?
09:29 jnthn sorear: Or in @stuff>>.() where the invocations get threaded?
09:29 jnthn I'd expect $*FOOs to still be visible.
09:30 jnthn Or are we talking about the dynamic caller chain?
09:30 sorear Right now I'm working on a one-caller model
09:30 sorear async sort of wants two-caller
09:31 sorear because we absolutely don't want exceptions propagating out
09:31 jnthn True...I'd kinda been thinking that the boundary frame would be "special" in some way
09:31 sorear anyway as long as we have a continuation boundary at the async all is good :)
09:32 ssutch_ xxxes: https://gist.github.com/samuraisam/5772440
09:32 jnthn That sounds reasonable. Not having one hurts my not-enough-coffee-yet head :)
09:32 sorear async and gather both want to propagate contextuals but not exceptions
09:35 masak ssutch_: nice :)
09:42 tgt joined #perl6
09:48 ggoebel joined #perl6
09:54 sorear awesome.  just got a NRE in org.objectweb.asm.Frame.a
09:55 nwc10 NRE? E is presumably Exception
09:55 sorear null ref
09:56 nwc10 forgive my ignorance, but is that a bug in it, or in user code?
09:56 nwc10 ie, is it "Should not be possible"?
09:56 sorear that's a very good question.
09:56 jnthn sorear: Grab a debug version of it, rather than the minified one
09:58 Timbus joined #perl6
10:00 jnthn sorear: I think what sometimes happens is that there's an unbalanced stack, and it then reports it very badly (e.g. like this) :/
10:02 kaleem joined #perl6
10:02 sorear hmm, seems my labels are getting eaten to
10:02 sorear too
10:03 sorear d'oh
10:03 sorear was passing the wrong thing to trycatch
10:03 sorear let's see if this fixes it
10:04 daxim joined #perl6
10:05 yves joined #perl6
10:07 sorear jnthn: can I assume "has int $!foo" will be initialized to zero?
10:07 jnthn sorear: yes
10:09 sorear jnthn: It seems that modifying the compiler to define all the labels I'm jumping to helped a bit
10:10 jnthn sorear: "you don't say" :)
10:10 jnthn sorear: Got a more useful error now?
10:10 sorear Not really
10:11 sorear Which version of the asm.jar am I supposed to get again?
10:11 jnthn aww
10:11 jnthn I think we're on 4.1
10:11 sorear java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 1
10:11 jnthn eek
10:11 sorear I'm staring at http://forge.ow2.org/project/showfiles.php?group_id=23 and I can't see which jars are minified
10:12 jnthn sorear: The .zip files tend to contain a minified and non-minified version.
10:13 jnthn sorear: It can also be sometimes helpful to put a e.printStackTrace() in around line 67 or so of JASTToJVMBytecode.java
10:14 sorear found it
10:15 sorear java.lang.ClassFormatError: Illegal class name "Lorg/perl6/nqp/runtime/ThreadContext;" in class file D9375F1865034634DA52C58DF992620B58E5A6CB
10:15 sorear wut
10:16 daxim_ joined #perl6
10:16 jnthn wat
10:17 tadzik Lorg is the new Borg
10:18 masak :)
10:18 masak the 'L' stands for 'cLass', IIRC.
10:18 masak or at least a reference type, which isn't an array.
10:19 jferrero joined #perl6
10:19 jferrero joined #perl6
10:22 sorear oops, I was *also* leaving the stack rather unbalanced
10:24 jferrero joined #perl6
10:27 rindolf joined #perl6
10:28 sorear ok, now it's blowing up in a completely different way.
10:28 sqirrel o/ sorear
10:32 sorear o/ aq
10:32 sorear o/ sqirrel
10:35 daxim__ joined #perl6
10:37 SamuraiJack joined #perl6
10:43 sorear ok, the crash depends on COMPUTE_FRAMEWS
10:44 colomon ugh, when I try to install Time::Duration with panda I get 24 test failures.  when I run it by hand, I get 0 test failures -- even when I use the pre-compiled module.  :(
10:46 jnthn sorear: That tends to mean the stack is unbalanced somewhere. But if you remove it, you get bytecode out and can inspect it at least.
10:49 sorear qb_NNN numbers aren't consequtive and vary from compile to compile?
10:51 jnthn I don't think they vary from compile to compile
10:51 jnthn They're consecutive in some sense but probably not ordered in the generated output.
10:52 jnthn Probably ordered by "when did we first encounter the QAST::Block in question"
10:55 sorear yay!  i made it...ONE FILE FURTHER!
10:57 tadzik colomon: wow, that's weird
10:57 colomon tadzik: indeed
10:58 colomon tadzik: also, it worked yesterday.
10:58 tadzik :o
10:58 jnthn sorear: yay!
11:00 lizmat colomon: it's the 13th today?  although not a Friday  :-)
11:00 colomon tadzik: so it seems like it must have been caused by a Rakudo change yesterday
11:01 tadzik that'd make me feel better
11:01 lizmat I think the only one is pmichaud's Hash.new change ?
11:01 colomon lizmat: jnthn had two patches yesterday as well
11:02 jnthn uh-oh. :)
11:02 lizmat Ah, ok, must have slipped out of my Textual, visible backlog then
11:02 * colomon backs up his rakudo to 978aeeee24d3d88131695f74568873c29a8de921 and tries again...
11:03 jnthn Though, my patches were on JVM stuff, I think.
11:04 lizmat fwiw, I spectestested pmichaud's change without any errors
11:04 lizmat so if that *is* the problem, we don't have a test for it
11:05 colomon lizmat: that would describe almost every issue with have in the overall module ecosystem.  ;)
11:05 amkrankruleuen joined #perl6
11:06 amkrankruleuen joined #perl6
11:07 atroxaper left #perl6
11:09 JimmyZ joined #perl6
11:09 colomon at 978aeeee24d3d88131695f74568873c29a8de921 it works fine
11:10 moritz colomon: of course; the errors we have tests for never even make it to the ecosystem
11:11 dalek joined #perl6
11:14 sorear cool, it falls apart if I have a function call which needs to be treated as a resume point inside a parameter default value
11:15 lizmat is there an easy way to convert a string such as 'Str' to the type Str without having to resort to eval ?
11:15 sorear ::('Str')
11:18 lizmat sorear++
11:18 cooper joined #perl6
11:18 amkrankruleuen joined #perl6
11:19 amkrankruleuen joined #perl6
11:19 amkrankruleuen joined #perl6
11:22 masak rn: multi foo(:$d!, *@f) {}; multi foo(*@f) { say "works" }; foo()
11:22 camelia rakudo b2072f: OUTPUT«works␤»
11:22 camelia ..niecza v24-75-g480a062: OUTPUT«Potential difficulties:â�¤  $d is declared but not used at /tmp/fldzGYorEm line 1:â�¤------> [32mmulti foo(:[33mâ��[31m$d!, *@f) {}; multi foo(*@f) { say "work[0mâ�¤  @f is declared but not used at /tmp/fldzGYorEm line 1:â�¤------> [32mmulti foo(:$d!, *[33mâ��[…
11:22 masak rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo()
11:22 camelia rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(*@f, :d(:$d)!)␤:(*@f)␤  in sub foo at /tmp/ENmRfCy7XE:1␤  in block  at /tmp/ENmRfCy7XE:1␤␤»
11:22 camelia ..niecza v24-75-g480a062: OUTPUT«Potential difficulties:â�¤  @f is declared but not used at /tmp/1FKU62R8td line 1:â�¤------> [32mmulti foo(*[33mâ��[31m@f, :$d!) {}; multi foo(*@f) { say "work[0mâ�¤  $d is declared but not used at /tmp/1FKU62R8td line 1:â�¤------> [32mmulti foo(*@f, :[33mâ��[3…
11:22 masak *sigh*
11:23 masak can we please removed those useless 'is declared but not used' warnings?
11:23 masak remove*
11:23 masak they're obscuring the result of the program.
11:23 lizmat at least in camelia  :-)
11:23 lizmat r: say 'Str'.WHAT; say Str.WHAT  # how do I differentiate between 'Str' and Str ?
11:23 camelia rakudo b2072f: OUTPUT«(Str)␤(Str)␤»
11:23 masak really, we should start thinking of warnings as having (at least) two levels: refactor-time and commit-time.
11:24 * sorear wonders if masak is interested in #OK
11:24 masak sorear: yes, in the short term. thanks.
11:24 jnthn lizmat: .DEFINITE
11:24 masak rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo() # OK
11:24 camelia niecza v24-75-g480a062: OUTPUT«Potential difficulties:â�¤  @f is declared but not used at /tmp/wCHfjb5uOe line 1:â�¤------> [32mmulti foo(*[33mâ��[31m@f, :$d!) {}; multi foo(*@f) { say "work[0mâ�¤  $d is declared but not used at /tmp/wCHfjb5uOe line 1:â�¤------> [32mmulti foo(*@f, :[33mâ��[3…
11:24 camelia ..rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(*@f, :d(:$d)!)␤:(*@f)␤  in sub foo at /tmp/qaOCMY8Ca9:1␤  in block  at /tmp/qaOCMY8Ca9:1␤␤»
11:24 masak rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo() #OK
11:24 camelia niecza v24-75-g480a062: OUTPUT«works␤»
11:24 camelia ..rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(*@f, :d(:$d)!)␤:(*@f)␤  in sub foo at /tmp/x62Ze8yNAL:1␤  in block  at /tmp/x62Ze8yNAL:1␤␤»
11:24 masak rn: multi foo(:$d!, *@f) {}; multi foo(*@f) { say "works" }; foo() #OK
11:24 camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«works␤»
11:24 * masak submits rakudobug
11:24 lizmat jnthn++
11:25 sorear jnthn: Is it deliberate that function parameter default values are compiled outside the scope of $*BLOCK ?
11:25 cognominal joined #perl6
11:25 jnthn sorear: No, that sounds accidental.
11:26 amkrankruleuen joined #perl6
11:26 amkrankruleuen joined #perl6
11:27 jnthn sorear: Oddly though, "sub foo($x, $y = $x) { say($y) }; foo(1);" works...which I'd kinda not expect to if the wrong $*BLOCK was in scope...
11:34 sorear nqp-jvm: sub foo($x, $y = $x) { say($y) }; foo(1);
11:34 camelia nqp-jvm: OUTPUT«1␤»
11:35 sorear nqp-jvm: my $z := 2; my $x := 3; sub foo($x, $y = $x) { say($y) }; foo(1);
11:35 camelia nqp-jvm: OUTPUT«java.lang.ArrayIndexOutOfBoundsException: 5␤    at org.perl6.nqp.runtime.Ops.getlex_o(Ops.java:473)␤    at A69CBE3FC5DEDECB510AAD35FFAA48063FF8862B.qb_11(<generated>)␤ at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1240)␤     at org.perl6.nqp.runtime.Ops.invoke(Ops.java:1200…
11:35 jnthn eek
11:35 sorear jnthn: I blame fallback to dynamic lookup
11:35 jnthn Yeah, forgot about that.
11:36 sorear sorear$ ./nqp -e 'my $z := 2; my $x := 3; sub foo($x, $y = $x) { say($y) }; foo(1);'
11:36 sorear 1
11:36 colomon okay, it looks like it's the Hash.new changes causing the problem with Time::Duration / Panda.  If I rollback just that commit, everything works okay.
11:36 colomon afk # walk
11:37 dalek nqp: 4891d23 | sorear++ | src/vm/jvm/ (3 files):
11:37 dalek nqp: Code generation support for thawing saved frames.  Also fixes block scope error on default arguments.
11:37 dalek nqp: review: https://github.com/perl6/nqp/commit/4891d23dfd
11:43 lizmat colomon: any example of code actually breaking?
11:43 sorear nqp::qlist.  Heh.
11:45 sorear jnthn: what is "inlinability" in QAST::CompilerJAST?
11:47 jnthn sorear: "can an optimizer inline some block using this op in a plce that calls it"
11:47 jnthn *place
11:48 jnthn I did it as an opt-in thing on Parrot, but most things are inlineable, so pondering switching it to opt-out for Moar. Don't think anything is marked either way just yet.
11:54 * masak .oO( "outlinability"?! )
11:55 sorear sleep&
11:56 jnthn 'night, sorear
11:59 gudahtt joined #perl6
11:59 moritz inlininability
12:04 yoleaux joined #perl6
12:06 dpk joined #perl6
12:08 btyler joined #perl6
12:11 dalek rakudo/nom: 948b2b5 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
12:11 dalek rakudo/nom: Get rid of evil eval hack in Any.hash, change type to keytype
12:11 dalek rakudo/nom:
12:11 dalek rakudo/nom: The latter was suggested on #perl6 by TimToady, as I recall.  Possible thanks
12:11 dalek rakudo/nom: to the work of pmichaud on Hash.new.
12:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/948b2b5cd4
12:12 lizmat off to the French Perl Workshop&
12:13 woolfy left #perl6
12:14 crab2313 joined #perl6
12:18 jnthn airport, stuff...be back sometime &
12:18 konundra joined #perl6
12:19 masak ditto &
12:27 dalek perl6-roast-data: 722bf4f | coke++ | / (4 files):
12:27 dalek perl6-roast-data: today (automated commit)
12:27 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/722bf4fa1e
12:28 [Coke] niecza has 16 failing tests at the moment. (so close)
12:35 dalek rakudo-star-daily: fba81ec | coke++ | log/ (5 files):
12:35 dalek rakudo-star-daily: today (automated commit)
12:35 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/fba81ec743
12:47 atroxaper joined #perl6
12:49 spider-mario joined #perl6
12:53 JimmyZ joined #perl6
13:00 Woodi joined #perl6
13:00 colomon First six tests which fail all are calls to later_exact
13:03 census joined #perl6
13:06 timotimo_ hm, what does that do?
13:07 kaleem joined #perl6
13:07 PacoAir joined #perl6
13:08 ajr joined #perl6
13:13 JimmyZ joined #perl6
13:14 broquaint joined #perl6
13:22 rindolf joined #perl6
13:26 JimmyZ joined #perl6
13:30 pecastro joined #perl6
13:33 JimmyZ joined #perl6
13:39 btyler joined #perl6
13:41 skids joined #perl6
13:41 btyler_ joined #perl6
13:43 cibs_ joined #perl6
13:45 konundra joined #perl6
13:46 bluescreen10 joined #perl6
13:53 * colomon has finally gotten Panda to run prove --verbose so he can see what the error is:
13:53 colomon #      got: '365 days, 22 hours, 59 minutes, and 32 seconds later'
13:53 colomon # expected: '1 year, 22 hours, 59 minutes, and 32 seconds later'
13:57 spider-mario leap year?
13:58 PerlJam saying "365 days" rather than "1 year"
13:59 xenoterracide joined #perl6
13:59 colomon ugh, this bug is going to be a nightmare to track down
14:03 xenoterracide is there a comparison interface? like obj.equals( obj ) ? ( and on a more perly note is said interface automagically used under the hood by things like smartmatch
14:03 colomon xenoterracide: there are quite a few comparison operators
14:03 colomon and yes, in some cases smartmatch uses them.
14:06 xenoterracide let me clarify, by interface, I mean is there specifically a role which defines the interface for equality.
14:06 colomon xenoterracide: nope
14:06 colomon ACCEPTS is the standard method to implement smartmatch under the hood, but it's not a role
14:07 xenoterracide ok
14:08 xenoterracide on a different note, anyone get rakudo working on windows?
14:08 colomon getting 365 days instead of 1 year requires $this = floor($remainder / (365 * 24 * 60 * 60)); to not work correctly.  :\
14:08 colomon xenoterracide: has it recently stopped working on windows?
14:08 xenoterracide no idea, I've not tried to build it
14:09 xenoterracide wasn't sure if it was a supported arch
14:10 colomon xenoterracide: one of our main developers uses it
14:10 colomon as his development platform, I mean.
14:11 xenoterracide maybe I should ask him what he uses as a terminal emulator
14:11 PerlJam xenoterracide: See http://rakudo.org/ btw
14:12 gudahtt joined #perl6
14:17 colomon r: 3600 * 24 * 366 - 360 -28
14:17 camelia rakudo b2072f:  ( no output )
14:18 colomon r: say 3600 * 24 * 366 - 360 -28
14:18 camelia rakudo b2072f: OUTPUT«31622012␤»
14:18 colomon rn: say floor(31622012 / (365 * 24 * 60 * 60))
14:18 camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«1␤»
14:19 colomon rn: say 31622012 - (365 * 24 * 60 * 60)
14:19 camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«86012␤»
14:20 colomon rn: say 86012 / 3600
14:20 camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«23.892222␤»
14:20 colomon rn: say 86012 % 3600
14:20 camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«3212␤»
14:20 colomon rn: say 3212 / 60
14:20 camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«53.533333␤»
14:21 * colomon appears to have made a math error somewhere
14:21 census joined #perl6
14:22 colomon rn: my $MINUTE = 60; my $HOUR = 60 * $MINUTE; my $DAY = 24 * $HOUR; my $YEAR = 365 * $DAY; say $DAY + - $HOUR + -28 + $YEAR
14:22 camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«31618772␤»
14:22 colomon rn: say floor(31618772 /  (365 * 24 * 60 * 60))
14:22 camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«1␤»
14:27 colomon how does one execute a p6 script which has been translated to pir?
14:27 xenoterracide joined #perl6
14:28 colomon afk # promised son I'd play the next level of Lego Star Wars
14:35 moritz colomon: I don't think that's possible right now
14:36 gfldex xenoterracide: rakudo on parrot runs (most of the time) on cygwin
14:37 xenoterracide joined #perl6
14:37 JimmyZ joined #perl6
14:42 xenoterracide cygwin is of course not quite native windows
14:44 moritz fwiw jnthn uses the msvcc toolchain to build rakudo
14:44 gfldex what is a good idea
14:44 gfldex Makefile:772: recipe for target `NQPP5QRegex.pbc' failed
14:44 gfldex make: *** [NQPP5QRegex.pbc] Segmentation fault (core dumped)
14:45 moritz gfldex: find installed copies of nqp, and delete them
14:46 * JimmyZ use msvcc to build MoarVM because apr doesn't support strawberry perl
14:57 BinGOs JimmyZ: do you mean apr doesn't support mingw, rather than Strawberry?
14:57 jnap joined #perl6
14:57 JimmyZ BinGOs: the former
14:58 jnap wow, there's a lot of people here
14:58 BinGOs it didn't appear to like Cygwin very much either. But I'll leave that to rurban
14:58 PerlJam jnap: just a few  :)
14:59 gfldex the world waits for perl 6 :)
15:00 jnap is https://github.com/supernovus/perl6-psgi/ what we have for Perl6 and PSGI?  is that recommended?
15:02 jnap I'm asking because I am considering working on a Catalyst like port to Perl6, as a way to help CatalystP5 experiment with possible futures without breaking existing production code
15:02 JimmyZ BinGOs: I guess libuv will replace apr eventually
15:02 PerlJam jnap++  (I was just going to ask if you were exploring a perl6y catalyst)
15:03 JimmyZ Catalyst? the author of Catalyst creats mojo?
15:04 JimmyZ *created
15:05 jnap PerlJam: I think so, because like I said, maybe if some of us get sick of hacking backcompat all the time :)  nice to have a free slate, but something that can co inspire between P5 and P6 Catalyst teams
15:06 census joined #perl6
15:07 jnap also maybe I can help try to inspire interest in hacking out the nonblcking support, which seems to not really be around, and is becoming a bigger deal for webdevelopment
15:08 gfldex rakudo build fine on cygwin after rm -r install/
15:12 ajr joined #perl6
15:12 timotimo_ oh, nonblocking support? yes, please :)
15:12 diakopter japhb: ping
15:12 moritz jnap: you can start by giving moarvm libuv as backend for IO, which supports non-blocking IO very nicely
15:13 timotimo_ not even suggesting to bring parrot up to speed? ;)
15:14 JimmyZ timotimo_: that will take another 10 years, me thinks :P
15:14 timotimo_ people keep saying moarvm seems very promising, which gives me hope :)
15:15 timotimo_ being non-involved in both the jvm work and the moarvm effort makes it really hard for me to see the progress being made; not enough blogposts ;)
15:16 jnap I'll look at linuv, but I guess that's going to be c programming, not my thing.  I might be better off doing test cases, etc.
15:18 jnap so I guess steps would be (for moarvm at least) integrate libuv with test cases, build a non blocking web server with it, then we can complate the PSGI port...
15:19 diakopter jnap: some of us are working on the libuv thing. not sure about timeline.
15:20 diakopter 1-2 months to replace apr; 1-2 months to get async IO/events finalized, conservatively
15:20 diakopter stevan__: that talk has been discussed several times on this channel :D it's possible they're findable in the clogs
15:23 diakopter jnap: optimistically, 2-3 weeks for each of those.. ;)
15:24 diakopter chip & I are working on the design doc with jnthn's and others' oversight
15:24 jnap diakopter:  for nonblocking?  are the docs someplace I can watch?
15:25 diakopter anyone else with node/libuv/C/threads experience is very welcome to contribute; we're not at the saturation point of contributors yet
15:26 diakopter jnap: yep; PM me a google account ID I can add to the shared drive folder
15:26 jnap I don't actually think we need to have nonblocking baked in to have PSGI as a base for webframeworks.  I'm just looking at https://github.com/supernovus/perl6-psgi/ and not sure
15:27 diakopter it doesn't need non-blocking if the threads are low-overhead enough, depending on how high concurrency/capacity you intend to serve... I mean... looking at these graphs gives some perspective:
15:28 diakopter http://www.techempower.com/benchmarks/#section=data-r3
15:30 diakopter oh, I guess there's some more recent rounds linked there from the top
15:30 diakopter ah, they added some perl ones by then
15:31 diakopter dancer, mojolicious
15:31 diakopter they're both around 1/25 the capacity of the best
15:32 diakopter well, on one test anyway
15:32 diakopter on another, around 1/2
15:32 jnap lol, I don't even want to know what Catalyst would look like on that
15:32 diakopter off the charts?
15:32 diakopter and not in the good direction?
15:33 jnap doubt in the good direction, yeah
15:33 jnap the claim here is going to have to be productivity and long term maint over raw speed, at least for Catalyst P5
15:33 jnap is my focus anyway
15:33 fhelmberger_ joined #perl6
15:36 btyler joined #perl6
15:37 diakopter I mean, they have Web::Simple on there.
15:37 diakopter ...
15:38 diakopter seems Kelp is also a Perl one
15:38 diakopter afk&
15:41 btyler_ joined #perl6
15:46 JimmyZ can I watch the docs too?
15:47 timotimo_ i hope there'll be a bit of nice performance to be had with websites and frameworks atop perl6 some day :|
15:47 cognominal joined #perl6
15:53 pochi_ joined #perl6
16:03 kaare_ joined #perl6
16:04 snearch joined #perl6
16:08 crab2313 joined #perl6
16:12 * __sri would be more than happy with perl5-ish performance
16:12 timotimo_ i don't know what perl5-ish performance is like :(
16:13 * __sri is also very much looking forward to libuv and proper threads in moarvm :)
16:15 drbean joined #perl6
16:15 * timotimo_ is going to be excited about the deployment possibilities the jvm offers
16:16 timotimo_ perl6 web app: here's your .war, go!
16:16 Chillance joined #perl6
16:16 __sri jnap: hopefully we'll not have to make any of the perl5 tradeoffs in perl6
16:17 jnap __sri:  I do think the big frameworks ontop of company supported languages are going to have a certain advantage here, since they can spend money on certain types of db and related optimizations
16:17 * __sri expects web development in perl6 to be more like in scala... with play framework and the like
16:18 jnap I like play and on the JS side angular.js has a lot of neat ideas
16:18 timotimo_ what's special about play?
16:18 * __sri is going to bring his mongodb driver with him once he starts working on mojolicious6
16:19 __sri timotimo_: heavily based on actors
16:19 jnap timotimo_:  is pretty approachable for the power you get
16:20 * __sri imagines perl6 web dev to be about custom web servers with non-blocking i/o and actors
16:20 jnap but for CatalystP6 I think I'd want to be inspired by the current catalyst values of not trying to be a full stack, stay with the ideals of sticking as close as possible to standard syntax, etc
16:23 FROGGS[mobile] joined #perl6
16:24 japhb diakopter, pong
16:27 timotimo_ so, what are the "conservative" and "optimistic" estimates for running something like the cave adventure game or a simple bailador web server or something along those lines on moarvm and/or jvm?
16:28 dalek specs: 58d18fa | larry++ | S04-control.pod:
16:28 dalek specs: a try prefix implies 'use fatal' inside
16:28 dalek specs: review: https://github.com/perl6/specs/commit/58d18fa4f9
16:29 diakopter timotimo_: lolz.
16:30 diakopter those are like 60% confidence intervals. ;)
16:31 timotimo_ well, i'll still take them :P
16:40 dmol joined #perl6
17:08 dmol joined #perl6
17:16 colomon joined #perl6
17:19 scottp joined #perl6
17:25 mls joined #perl6
17:27 [Coke] nieza has 16 failures again today.
17:28 colomon [Coke]: presumably that will be the case until I figure out how to fix the Nil bug.
17:28 dalek doc: 0f839d3 | GlitchMr++ | lib/Bool.pod:
17:28 dalek doc: Add forgotten dot.
17:28 dalek doc: review: https://github.com/perl6/doc/commit/0f839d3504
17:28 rafl joined #perl6
17:30 mls Hi guys!
17:31 mls (just backlogged a bit)
17:31 Shozan joined #perl6
17:32 mls regarding auto-close: that reminds me of parrot patch I did some time ago
17:32 tadzik hi mls!
17:32 mls It got rid of that "sub->ctx" ponter in parrot.
17:33 zby_home joined #perl6
17:33 mls It made nqp and perl6 work with the patch, it was just changing a couple of lines of code.
17:34 mls (jnthn++ maybe doesn't remember, though)
17:35 mls Anyway, I didn't merge it into parrot because it is not backward comatible, so I wanted to get the ok from the hll developers first
17:35 * [Coke] talks with the rtbugadmins - my bug is fixed in the version we are (eventually) upgrading to.
17:35 mls It somehow slipped of my radar, though, so it's still not merged.
17:36 mls The commits are still in the mls/new-autoclose branch in the parrot git repo
17:37 mls See https://github.com/parrot/parrot/commits/mls/new-autoclose
17:39 lizmat joined #perl6
17:40 * lizmat arrived in hotel in Nancy, France
17:40 mls .tell jnthn FYI, I wrote a couple of comments about auto-close
17:40 yoleaux mls: I'll pass your message to jnthn.
17:42 domidumont joined #perl6
17:45 kaleem joined #perl6
18:02 census joined #perl6
18:04 lizmat "all our dishes are furnished"
18:04 lizmat wow, what google translate will do to your menu  :-)
18:26 ajr joined #perl6
18:26 lue hello world o/
18:27 dalek perl6-roast-data: f4dd3ba | coke++ | / (4 files):
18:27 dalek perl6-roast-data: today (automated commit)
18:27 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/f4dd3ba762
18:33 kst joined #perl6
18:39 rindolf joined #perl6
18:46 ssutch joined #perl6
18:54 labster \o hi lue
18:57 tomyan joined #perl6
19:17 rhr joined #perl6
19:19 tgt joined #perl6
19:19 tomyan joined #perl6
19:21 flussence huh... I just noticed the first byte of every UTF-8 codepoint in the Combining Diacriticals block is 0xCC|0xCD. wonder if that was done intentionally as a mnemonic.
19:29 dalek rakudo-star-daily: 1130a81 | coke++ | log/ (5 files):
19:29 dalek rakudo-star-daily: today (automated commit)
19:29 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/1130a81a2a
19:35 [Coke] anyone know if star is picking the same version of modules each time, or if it's getting HEAD of master each time?
19:40 diakopter I thought the star repo contained snapshots of last known working releases
19:49 dagurval they point to a specific commit in each module
19:49 dagurval see for example this commit https://github.com/rakudo/star/commit/cabee9dc58718716c581c845ef2d89416c6a93fa#modules
19:53 fgomez joined #perl6
19:53 flussence star uses git submodules last I checked, and those don't auto-update. You have to run a specific `git submodule $something` to do that.
19:57 labster r: my $h = &cwd.wrap( { 'FAKE' } ); say cwd(); say &cwd();
19:57 camelia rakudo b2072f: OUTPUT«/home/p6eval␤FAKE␤»
19:57 labster Am I doing something wrong here?
20:05 dalek specs: 8875a24 | (Dagur Valberg Johansson)++ | S11-modules.pod:
20:05 dalek specs: Constants, enums and (our) variables are also exportable (I hope)
20:05 dalek specs: review: https://github.com/perl6/specs/commit/8875a2490b
20:14 lue I'm a bit confused by S02:1908. Should it instead be s/short form/method form/ (or similar phrasing)?
20:17 flussence +1 for method
20:17 lue (Of course, I question the validity of mentioning alternate forms of dereferencers in a section called "sigils indicate interference", but oh well)
20:17 lue s/interference/interface/
20:17 timotimo_ hehe
20:17 timotimo_ with a barcode sigil you get cancer rays from outer space
20:18 lue I'm wondering if I shouldn't just remove the paragraph I cited. Yes the [], {}, and () were mentioned above, but only in passing.
20:20 flussence that'd kill two problems at once (there's an "s" trying to run away too)
20:23 bruges joined #perl6
20:24 [Coke] dagurval: danke. (so, I think one thing I have to add the daily star runs is "how many commits behind are we for each module"
20:26 dalek specs: b832cbe | lue++ | S02-bits.pod:
20:26 dalek specs: [S02] Remove irrelevant sentence.
20:26 dalek specs:
20:26 dalek specs: The operators to which the sentence was referring to were only
20:26 dalek specs: mentioned in passing in this section ("Sigils indicate interface").
20:26 dalek specs: Dereferencers are described in detail elsewhere, along with the dotted
20:26 dalek specs: method forms.
20:26 dalek specs: review: https://github.com/perl6/specs/commit/b832cbe160
20:26 [Coke] in my checked out copy of star, those module directories are already ... checked out. how can I edit/get the submodule verison?
20:27 [Coke] *version
20:27 dagurval I wonder if there is a reason for star not following latest commit. It wasn't possible before with submodules, perhaps that is the reason? It's possible now though with a recent version of git.
20:29 [Coke] We don't want to fight breakage just before a release.
20:29 [Coke] I think it's reasonable to stick with "known good" versions. (I'd prefer something like auto-jumping to the next release tag, but our ecosystem doesn't do that)
20:30 [Coke] doc is not the latest version.
20:32 [Coke] json... jsonrpc, panda, rakudo-debugger, zavolaj - those all have updates not in star.
20:32 [Coke] If someone bumps those up to latest, we can get some test coverage on the daily run before any release this month.
20:38 fgomez joined #perl6
20:41 sorear good * #perl6
20:43 kivutar joined #perl6
20:44 flussence [Coke]: git submodule init; git submodule update # ...I think
20:44 flussence the versions are in ./.gitmodules IIRC
20:45 lizmat joined #perl6
20:47 [Coke] ./.gitmodules doesn't have a version on it
20:47 [Coke] (on any of the submodules)
20:47 * flussence goes to read up on how this *actually works*...
20:48 [Coke] running "git submodule update", I get the expected updates based on my earlier send - but git status shows no difference in the star checkout I have.
20:49 flussence okay, git *does* track the submodule revisions in the parent, just not that file. `git diff` should show they've changed though.
20:50 [Coke] nope. I see no diff.
20:51 flussence hm... maybe I should try poking the repo myself
20:54 [Coke] Danke.
20:56 timotimo_ you have to cd into the submodule, checkout a newer revision, cd out, git add the change and then commit it
20:56 timotimo_ iirc
20:56 flussence aha, there's a way to tell git to pull updates for submodules
20:57 flussence each one needs submodule.$thing.branch = master in its .gitmodules section, then you just do `git submodule update --remote`
20:58 flussence (want me to commit that?)
20:59 flussence (oh wait, I can't. never mind)
21:04 flussence actually I'm not sure if all of them call the branch "master", but it didn't break anything when I tested just now
21:07 d4l3k_ joined #perl6
21:09 tgt joined #perl6
21:34 SmokeMac_ joined #perl6
21:53 BenGoldberg joined #perl6
21:56 s1n joined #perl6
22:16 donaldh joined #perl6
22:23 ssutch joined #perl6
22:26 benabik joined #perl6
22:36 eternaleye tadzik: I'm finding myself tempted to try making something like Bailador, but with a bit more magic and a bit more syntactic sugar. Mind if I occasionally poke you with questions? (My current thoughts involve a syntax like: get "/foo/bar/*/baz" -> $var #`[ from that asterisk ], :$parameter #`[ CGI-style ?foo=bar params are named params ] { } with coercion to signature-introspected types)
22:38 tadzik eternaleye: no, I won't mind :) Ask whenever you need
22:38 eternaleye Also, dynamically generating a grammar from the paths and using that + actions to dispatch.
22:38 tadzik my exam session is coming to an end, so I'll hopefully have tuits to answer them
22:38 eternaleye Cool, thanks!
22:38 tadzik oh, I've tried that once, did you see it?
22:38 tadzik although it wasn't dynamic
22:38 eternaleye tadzik: Mm, no I didn't. It's in the git repo?
22:39 tadzik http://ttjjss.wordpress.com/2010/11/27/grammar-dispatching-%E2%80%93-a-step-further/
22:39 eternaleye Anyway, I just felt that having :name in the path was redundant with Perl 6's signatures, and then I started thinking about type coercion and how well path components = positional and cgiparams = named seemed to work.
22:39 tadzik and previous post, linked
22:40 eternaleye And then you get :$foo! mandatory stuff and :foo(:f) aliasing for free
22:42 eternaleye And the Whatever star just seemed to be the placeholder that made the most sense to me.
22:42 eternaleye (earlier I toyed with the idea of doing something more like given/when, but it ended up ugly kinda fast in my head)
22:43 eternaleye Where you'd have root { path 'foo' { } path 'bar' { get 'baz' -> :$cgiparam { } } }
22:46 skids joined #perl6
22:49 eternaleye tadzik: I'm thinking of naming it Capoeira, since it's Dancer with a plan to kick ass :P
22:49 tomyan joined #perl6
22:49 flussence eternaleye: I've considered doing a thing that uses multis, where your example up there would match «sub get('foo','bar',$var,'baz')»
22:49 tadzik eternaleye: :D
22:49 tadzik eternaleye: sounds good :0
22:49 flussence (might get a bit long-winded, but it uses minimal magic :)
22:50 eternaleye flussence: I though about it, but last I checked where clauses were expensive in the MMD sense.
22:58 xenoterracide joined #perl6
23:10 btyler_ joined #perl6
23:10 btyler joined #perl6
23:20 ssutch would it be possible to compile EBNF into grammars
23:23 diakopter ssutch: sure
23:24 diakopter want to write a grammar for EBNF? :)
23:24 ssutch yeah
23:24 ssutch i am trying to write a grammar for protocol buffer IDL
23:24 ssutch and found a protocol buffer EBNF
23:24 diakopter I mean, want to write a grammar than can parse EBNF, so that it can be compiled to p6 grammar
23:25 sorear slaaaaangs
23:26 ssutch grammars all the way down
23:30 [Coke] is there a better way to write this in nqp these days:?
23:30 [Coke] token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
23:34 [Coke] looks like Rakudo leaves off the pirop entirely (which I can do for the ones that match perl6's defaults, I suppose)
23:35 adu joined #perl6
23:35 [Coke] if I remove the pirop mul there, I get the same error.
23:36 [Coke] https://gist.github.com/coke/5778345
23:42 btyler joined #perl6
23:49 sciurius joined #perl6
23:49 sorear NQP uses     token infix:sym<*>    { <sym>  <O('%multiplicative, :op<mul_n>')> }
23:55 [Coke] is the _n needed?
23:56 sorear probably
23:56 sorear I'm not really an expert with this part of NQP
23:57 [Coke] ENOCHANGE
23:57 s1n joined #perl6
23:58 [Coke] :op<mul> and :op<mul_n> still die with Null PMC access in get_string - presumably I am missing something else.

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo