Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-08-24

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:12 Akagi201 joined #perl6
00:14 lizmat joined #perl6
00:33 gmunoz joined #perl6
00:42 aborazmeh joined #perl6
00:42 nbrown_ joined #perl6
00:46 aborazmeh joined #perl6
00:49 dolmen joined #perl6
01:11 xenoterracide joined #perl6
01:13 Akagi201 joined #perl6
01:13 gmunoz joined #perl6
01:22 FROGGS_ joined #perl6
01:48 nbrown_ joined #perl6
01:57 klaas-janstol joined #perl6
01:59 kst` joined #perl6
02:04 Akagi201 joined #perl6
02:15 jimmyz joined #perl6
02:15 jimmyz r: constant fib = 0, 1, *+* ... *; say fib[100000]
02:16 camelia rakudo-{parrot,jvm} c793d8: OUTPUT«(timeout)»
02:16 camelia ..rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage'␤  in method reify at src/gen/m-CORE.setting:7722␤  in method reify at src/gen/m-CORE.setting:7716␤  in method gimme at src/gen/m-CORE.setting:8205␤  in method exists_pos at src/gen/m-CORE.setting:8193␤  in …»
02:16 jimmyz TimToady, jnthn: ^^
02:19 jimmyz fib[99999] works
02:22 nbrown_ joined #perl6
02:28 gtodd1 joined #perl6
02:31 jimmyz masak: ^
02:33 btyler .tell colomon I added a rough draft for encoding values to JSON::Jansson, next up is adding an option to parse JSON into perl6 data structures (rather than preserving them as jansson objects)...or something more pressing for your use case, if you have something in mind
02:33 yoleaux btyler: I'll pass your message to colomon.
02:35 akaseki joined #perl6
02:35 btyler for other folks -- any feedback much appreciated: https://github.com/kanatohodets/p6-json-jansson
02:36 btyler one trouble with the approach I'm taking is that I end up needing to implement all of positional/associative, and it isn't clear to me what exactly needs implementing in order to confidently say "this will behave just like a p6 array/hash/etc"
02:39 kurahaupo joined #perl6
02:41 noganex_ joined #perl6
02:46 Sqirrel joined #perl6
02:49 PZt joined #perl6
02:53 gtodd1 http://perlgeek.de/blog-en/​perl-6/2013-repl-trick.html   still digging the REPL trick
03:06 kst`` joined #perl6
03:07 _sri joined #perl6
03:44 jack_rabbit joined #perl6
03:53 fling joined #perl6
03:57 masak morning, #perl6
04:01 masak m: constant fib = 0, 1, *+* ... *; say fib[99999]
04:01 camelia rakudo-moar c793d8: OUTPUT«16052857682729819697035016991663235902​858671639804648448322390168030822771061488580​073827999833419864870699029805508859754773223​514347062306370044090497840728999491965070830​841567941162516998014867217362233907224275701​86888655751529235613410338408870193727…»
04:02 masak m: constant fib = 0, 1, *+* ... *; say fib[100_000]
04:02 camelia rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage'␤  in method reify at src/gen/m-CORE.setting:7722␤  in method reify at src/gen/m-CORE.setting:7716␤  in method gimme at src/gen/m-CORE.setting:8205␤  in method exists_pos at src/gen/m-CORE.setting:8193␤  in …»
04:02 masak yeah, that seems like an arbitrary limit...
04:03 masak m: constant fib = 0, 1 ... *; say fib[100_000]
04:03 camelia rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage'␤  in method reify at src/gen/m-CORE.setting:7722␤  in method reify at src/gen/m-CORE.setting:7716␤  in method gimme at src/gen/m-CORE.setting:8205␤  in method exists_pos at src/gen/m-CORE.setting:8193␤  in …»
04:03 masak m: constant fib = 0, 1 ... *; say fib[99_999]
04:03 camelia rakudo-moar c793d8: OUTPUT«99999␤»
04:04 masak m: constant fib = 0 xx 100_000; say fib[99_999]
04:04 camelia rakudo-moar c793d8: OUTPUT«0␤»
04:04 masak m: constant fib = 0 xx 100_000; say fib[100_000]
04:04 camelia rakudo-moar c793d8: OUTPUT«Nil␤»
04:07 masak m: constant fib = 0 xx 100_001; say fib[100_000]
04:07 camelia rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage'␤  in method reify at src/gen/m-CORE.setting:7722␤  in method gimme at src/gen/m-CORE.setting:8205␤  in method exists_pos at src/gen/m-CORE.setting:8193␤  in method at_pos at src/gen/m-CORE.setting:8166␤  in…»
04:07 masak m: constant fib = 0 xx 100_001; say fib[99_999]
04:07 camelia rakudo-moar c793d8: OUTPUT«0␤»
04:07 masak m: constant fib = 0 xx 100_002; say fib[100_000]
04:07 camelia rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage'␤  in method reify at src/gen/m-CORE.setting:7722␤  in method gimme at src/gen/m-CORE.setting:8205␤  in method exists_pos at src/gen/m-CORE.setting:8193␤  in method at_pos at src/gen/m-CORE.setting:8166␤  in…»
04:07 kaare_ joined #perl6
04:08 masak ok, so it doesn't necessarily involve infix:<...>
04:08 masak I'm now going for breakfast, and then I'll be scope-down until my talk.
04:08 masak &
04:13 lizmat morning masak
04:13 lizmat morning #perl6
04:13 lizmat please note the the title and the tone of my presentation has changed: http://act.yapc.eu/ye2014/talk/5704
04:15 kaare__ joined #perl6
04:15 Pleiades` joined #perl6
04:17 * lizmat also does a scope down until the talk
04:25 xinming_ joined #perl6
04:37 Psyche^ joined #perl6
05:05 kst``` joined #perl6
05:06 rindolf joined #perl6
05:14 rindolf joined #perl6
05:24 woolfy joined #perl6
05:30 SamuraiJack joined #perl6
05:35 dolmen joined #perl6
05:45 rindolf joined #perl6
05:48 kurahaupo_ joined #perl6
06:02 pmurias joined #perl6
06:03 thou joined #perl6
06:06 FROGGS[mobile] joined #perl6
06:08 FROGGS[mobile] morning
06:08 nwc10 morning
06:09 FROGGS[mobile] masak++'s talk is starting in 22 minutes?
06:09 nwc10 I hope not. I think it's 82 minutes
06:09 FROGGS[mobile] ohh, okay
06:11 rindolf joined #perl6
06:13 erkan joined #perl6
06:13 erkan joined #perl6
06:22 masak FROGGS[mobile]: don't scare me like that! :P
06:23 FROGGS[mobile] *g*
06:24 FROGGS[mobile] sorry, I just woke up and subtracted the tz offset twice
06:28 rindolf joined #perl6
06:32 gmunoz joined #perl6
06:37 pmurias CALLER stops inlining unless it's absence is proven by static analysis?
06:38 Ven joined #perl6
06:40 Ven o/, #perl6
06:42 rindolf joined #perl6
06:43 rindolf joined #perl6
06:44 gmunoz joined #perl6
07:03 woolfy Good morning...
07:04 woolfy lizmat and I are in a very nice big room in Sofia, at YAPC::EU.  We invite all Perl 6-ers and other Perl-people to a hackathon in our room.  We have 18 seats and excellent connection.  And food and drinks.
07:05 woolfy It will be on Monday 25th in room 10.01 in the Metropolitan Hotel, starting as soon as we wake up.  Can be as early as 10:00.
07:06 woolfy I will make sure that the front desk give people who mention "Perl Hackathon"  access to the elevator.
07:08 woolfy I will add a page to the wiki of YAPC::EU.
07:10 rindolf joined #perl6
07:12 tadzik half of the talks I'm planning for today are done by female speakers
07:12 tadzik and there are collisions!
07:12 tadzik I can't get over how fantastic that is
07:12 gmunoz joined #perl6
07:16 Ven tadzik: not sure why you think collisions are so great. :P
07:16 tadzik Ven: I'm not happy about them, but it's a sign of good times that they're there
07:17 Ven tadzik: I'm kidding, I'm kidding. It's a great news indeed :)
07:17 tadzik :) indeed
07:18 gmunoz joined #perl6
07:25 gmunoz joined #perl6
07:26 Ven masak++ up next
07:27 woolfy Hackathon on Monday (of course, we hope some Perl6-ers can make it): http://act.yapc.eu/ye2014/wiki?node=Hackathon
07:28 FROGGS woolfy: I'll join remotely :/
07:29 darutoko joined #perl6
07:30 gmunoz joined #perl6
07:30 FROGGS I have no sound!! /o\
07:31 FROGGS ahh, better :o)
07:31 FROGGS masak: hello :o)
07:31 woolfy FROGGS: nice
07:34 TimToady lack of sound considere harmful
07:34 TimToady *red
07:35 Ven .o( red means harm, as usual )
07:36 Ven wut
07:37 TimToady at least I'm not the only one misspelling things around here
07:42 tadzik is there a reason why .get() is a part of Socket::INET rather than than Socket itself?
07:51 TimToady YOU_ARE_HERE
07:51 thou joined #perl6
07:52 TimToady this is more or less what we do for the setting
07:56 Ven you goto?
07:59 Ven .oO( Gotta use that to build an adventure where you are the hero )
07:59 TimToady thought that was called a cactus stack...
08:01 woolfy Oh my, in 27 minutes lizmat's talk will begin and we're still in the hotel
08:01 woolfy She has been working frantically since 06:00 this morning.
08:02 woolfy Because jnthn++ and masak++ and even mst++ changed lots of stuff the last few days with their talks
08:02 TimToady LoL works!
08:02 TimToady so does lol!
08:02 TimToady m: say LoL, lol;
08:02 camelia rakudo-moar c793d8: OUTPUT«(LoL)␤»
08:02 tadzik what a bargain
08:03 tadzik you don't even need slangs
08:03 TimToady term:<LOL>
08:03 nwc10 we can heckle-by-proxy if you like. :-)
08:03 TimToady you're authorized :)
08:04 woolfy One more time plugging the Hackathon: http://act.yapc.eu/ye2014/wiki?node=Hackathon
08:05 TimToady pause is just the YOU_ARE_HERE of the rest of the block as a continuation; we just limit YOU_ARE_HERE to a call scope currently
08:06 TimToady that's what the SETTING does
08:09 dolmen joined #perl6
08:10 TimToady the setting can do that too
08:10 TimToady maybe we just write the setting in terms of a pause
08:12 TimToady well, the compiler kinda does that too with the setting, compiling code and then jumping to it
08:12 TimToady so the primitives are already kinda there
08:13 Ven oh c'mon, lisp has been doing that forever ;-)
08:15 TimToady mention the YOU_ARE_HERE as a kind of pause if you like
08:18 FROGGS masak: so, how do we make subclassing Perl6::Grammar/Actions work? :o)
08:18 TimToady rewrite the compiler in Perl 6 :)
08:18 FROGGS use: Perl6::Grammar :from<NQP>
08:18 FROGGS m: use Perl6::Grammar:from<NQP>
08:18 mrf joined #perl6
08:18 camelia rakudo-moar c793d8: ( no output )
08:18 zakharyas joined #perl6
08:19 FROGGS m: use Perl6::Grammar:from<NQP>; grammar Foo is Perl6::Grammar { }; say Foo
08:19 camelia rakudo-moar c793d8: OUTPUT«No such method 'gist' for invocant of type 'Foo'␤  in sub say at src/gen/m-CORE.setting:14117␤  in block <unit> at /tmp/xwyN0EDvdi:1␤␤»
08:19 FROGGS TimToady: I don't wanna do that :o)
08:20 FROGGS I mean, it would be awesome and perhaps helpful in the end, but it would also be like five times slower than it is now
08:22 FROGGS what I am thinking about now is that masak wants to change method statementlist too perhaps, without breaking future changes of that method too often
08:22 dolmen joined #perl6
08:22 FROGGS would it be possible to inherit from a class, take a method from the parent class and inject/remove statements, and the expose that method as our own?
08:23 TimToady we merely have to write it in the subset that compiles down at least as efficiently as nqp :P
08:23 FROGGS true
08:23 FROGGS how?
08:23 FROGGS :D
08:23 TimToady that's obvious, torment the implementors! duh!
08:24 TimToady you just need to treat the continuation of the current statement as the YOU_ARE_HERE that you serialize
08:24 FROGGS I'd think hllizing grammars and cursors might be enough
08:24 TimToady well semantically
08:25 FROGGS hmmm
08:25 TimToady messing with that concept syntactically is of course an interesting problem that remains
08:26 FROGGS what I'd like to see first is that we would be able to add rules to statement_control and so on
08:26 TimToady but pause is sort of a {YOU_ARE_HERE} that is null, and just returns, much like the -n and -p settings return to the loop around your program
08:27 TimToady your program is already in a sequence of statements within the setting
08:31 masak thanks to my lovely audience for all the nice heckling :>
08:32 TimToady yeah, they offered to, and then they didn't :)
08:32 nwc10 is t/spec/S17-supply/watch_path.t expected to spectest fail on OS X?
08:32 masak oh, there was some heckling :)
08:32 nwc10 you could ask liz for me :-)
08:32 TimToady what you get for talking on the morning of the last day of the conference :P
08:33 masak heh :)
08:33 * masak lizzens to lizmat
08:33 nwc10 oh, nice
08:33 nwc10 ok 1 - make sure we don't have a file 1..22
08:33 nwc10 Trace/BPT trap
08:33 nwc10 I can't debug that during a talk
08:37 * TimToady is silent right now :)
08:38 Ven I actually decided that, instead of trying to mess up with the parent process' bit to change something's, I'll just generate `alias`es in some .sh file :P
08:39 TimToady splat!
08:39 TimToady oh, thought it was a windshield :)
08:39 masak heh :)
08:39 masak TimToady: no, the butterfly has a 10 feet wingspan!
08:40 masak "the new Perl is Perl 6" -- it's too early to pull that lever, IMHO.
08:41 Ven masak: who said that?
08:41 TimToady it's me!
08:41 masak Ven: watching a lizmat talk live.
08:42 TimToady it's just like a...a pause!
08:43 * TimToady is pretty stupid...
08:44 TimToady 'this death star is fully operational'
08:46 TimToady yes, use the mic
08:46 FROGGS TimToady: I like you anyway :o)
08:46 Ven masak: one, that one talk :P
08:46 masak :P
08:46 Ven oh, it's that one talk, but a new one instead
08:46 masak yes.
08:46 Ven wow, she just said I was stupid :P
08:46 Ven AAAH
08:46 masak data point: we have too many outsider-facing names.
08:46 gfldex joined #perl6
08:47 masak ideally, it should be just "Perl 6" -- but it tends to be Perl 6, rakudo, moar, panda, rakudobrew...
08:47 masak maybe nqp too.
08:47 FROGGS and parrot
08:47 masak right.
08:47 Ven that's what happens when you take the internals for granted :P
08:48 masak there's nothing wrong with all of these sub-projects, but we should provide paths/onramps where they don't constitute an obstacle.
08:48 TimToady INTERCAL backend!!!
08:48 nwc10 sat with my work colleague for breakfast - he was only aware of parrot and JVM, and JVM was not his faviourite thing
08:48 TimToady we'll get threading for free!!
08:48 Ven That question was staged! I know it!
08:48 TimToady NFG
08:48 masak Ven: nope. :)
08:49 jnthn No, it was certainly asked off-stage... :P
08:52 TimToady well, we'll see about that...
08:52 TimToady we've already implemented several 80%s...
08:53 FROGGS I think we are better then 80/80 to over Perl 6 1.0
08:53 FROGGS cover*
08:54 FROGGS ribasushi: I care, and the many deps need to be written
08:55 * masak frowns in the general direction of predictions, promises, and estimates
08:55 FROGGS ribasushi: and it takes time for me to write all DBIx::Class deps...
08:55 FROGGS masak: I do not make any promise :o)
08:56 FROGGS so, making lists of what needs to be done is the right thing here
08:56 FROGGS perhaps this will pull ppl in
08:56 nwc10 lists of lists? ;-)
08:56 FROGGS *g*
08:57 FROGGS indeed
08:57 Ven the person doing what?
08:57 masak Ven: p5-p6 interop.
08:58 masak Ven: there was a TPF grant for doing that.
08:58 Ven that is, FROGGS, or something else?
08:58 masak Ven: not FROGGS.
08:58 FROGGS no, diakopter
08:58 masak Ven: lizmat is being discrete and not naming names :)
08:58 Ven I got that, but I was wondering mostly about the project itself
08:59 TimToady batteries are supplied by distributors, not core
08:59 TimToady someone point out the success of the Linux model
08:59 TimToady Perl 6 is just the kernel, in that model
09:00 nwc10 jnthn: 30% of setting load was rel2abs?
09:02 dg joined #perl6
09:02 TimToady thanks
09:03 jnthn nwc10: Seems so, from the profiler, yes.
09:03 moritz is that because rel2abs is so slow, or because it's called so often?
09:03 Ven so, jnthn++'s async talk is this afternoon, right?
09:03 nwc10 I believe that's still "left as an excercise to the readler"
09:04 FROGGS moritz: isnt it always a mix of both? :o)
09:04 TimToady Ven: yes, 1450 Sofia time
09:04 TimToady someone point out the success of the Linux model:)
09:04 FROGGS *g*
09:04 TimToady oops.
09:04 TimToady which is, conveniently, 450 here
09:05 TimToady darn scrolling touchpad...
09:05 FROGGS you can glue it to your desk
09:05 TimToady it sees both my hands and thinks I'm doing two-fingered scrolling
09:05 FROGGS or shorten then cable
09:05 Ven that means 1350 my time, eh.
09:07 TimToady so, time for another nap here...
09:07 TimToady zzz &
09:07 moritz FROGGS: often enough one of them clearly dominates
09:11 Ven joined #perl6
09:12 * masak is now re-enjoying https://speakerdeck.com/stevan_littl​e/perl-is-not-dead-it-is-a-dead-end
09:29 isBEKaml_mobile joined #perl6
09:31 Ven joined #perl6
09:32 Ven masak: well, what happened to moe?
09:39 thou joined #perl6
09:46 FROGGS m: my $b = Buf.new(1, 2, 3); $b[1] = 22; say $b # jnthn: would you mind allowing that?
09:46 camelia rakudo-moar c793d8: OUTPUT«Cannot modify an immutable Int␤  in method assign_pos at src/gen/m-CORE.setting:1812␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2511␤  in block <unit> at /tmp/Dv3VyArOYs:1␤␤»
09:46 Ven joined #perl6
09:55 anaeem1 joined #perl6
09:57 kst```` joined #perl6
09:57 masak Ven: I'd kinda like to hear stevan's answer to that, too.
09:58 Ven well, my goto.p6 is done \o/
09:58 FROGGS O.o
09:58 Ven which has nothing in common with masak++'s talk, btw.
09:59 masak Ven: the second-hand stories I hear vary between (a) the more he evolved it, the more he realized he was rebuilding Perl 6, and (b) he realized that building a language/compiler is hard work.
10:00 FROGGS yeah, that nothing you can do on a sunday afternoon
10:01 lizmat joined #perl6
10:02 masak niner++! # https://github.com/niner/Inline-P​erl5/blob/master/inline_perl5.pl
10:03 tadzik aww yiss
10:03 masak what's the coolest thing we can do with this new Awesome Powar?
10:04 tadzik cgi.pm
10:04 nine_ tadzik: where are you right now?
10:04 * tadzik hides
10:04 tadzik nine_: hidden
10:04 FROGGS under a table perhaps :o)
10:04 tadzik :)
10:05 * nine_ just realized that maybe I don't want to know...
10:08 mrf nine_: now I want an imbedded perl interp inside mod_perl imbedded in perl6 :D
10:20 lizmat around the 6th Lightning Talk will be one of mine:"A State Of Perl 6"
10:20 lizmat slightly updated from the OSCON one
10:20 masak \o/
10:21 Akagi201 joined #perl6
10:24 masak m: say "foo".encode.WHAT
10:24 camelia rakudo-moar c793d8: OUTPUT«(utf8)␤»
10:24 masak m: say "foo".encode.^mro
10:24 camelia rakudo-moar c793d8: OUTPUT«(utf8) (Any) (Mu)␤»
10:25 masak m: say utf8.^methods
10:25 camelia rakudo-moar c793d8: OUTPUT«decode encoding new elems bytes chars Numeric Int list subbuf unpack contents of Str at_pos Bool Stringy gist perl␤»
10:25 BizarreCake joined #perl6
10:25 masak m: say utf8.^methods(:local)
10:25 camelia rakudo-moar c793d8: OUTPUT«decode encoding new elems bytes chars Numeric Int list subbuf unpack contents of Str at_pos Bool Stringy gist perl␤»
10:26 FROGGS jnthn: the Digest module segfaults in one of its tests :/ (MVM_gc_worklist_add)
10:26 masak m: say Buf.^methods(:local)
10:26 camelia rakudo-moar c793d8: OUTPUT«new elems bytes chars Numeric Int decode list subbuf unpack contents encoding of at_pos Bool Str Stringy gist perl␤»
10:26 FROGGS masak: they do the Blob role that implements these
10:28 masak m: say Buf.^methods>>.name.Set === utf8.^methods>>.name.Set
10:28 camelia rakudo-moar c793d8: OUTPUT«True␤»
10:28 masak m: say utf8.^does(Blob)
10:28 camelia rakudo-moar c793d8: OUTPUT«True␤»
10:28 masak m: say Buf.^does(Blob)
10:28 camelia rakudo-moar c793d8: OUTPUT«True␤»
10:29 jaffa4 joined #perl6
10:29 FROGGS jnthn: and this segfault goes away by using MVM_SPESH_DISABLE=1
10:30 masak FROGGS: try unsetting it and setting MVM_SPESH_OSR_DISABLE=1 instead
10:30 spider-mario joined #perl6
10:31 FROGGS jnthn: it segfaults with MVM_SPESH_OSR_DISABLE=1 # masak++
10:31 FROGGS jnthn: it passes with MVM_SPESH_INLINE_DISABLE=1
10:34 spider-mario joined #perl6
10:35 mj41 joined #perl6
10:35 masak the current talk by Mark Overmeer in Vitosha is crazy.
10:36 masak he's talking about how an important CPAN module Digest::SHA got broken by an "improvement" that treats the bytestream input as UTF-8 strings.
10:36 kst````` joined #perl6
10:37 itz File::Slurp (and probably much more) is also broken wrt utf-8
10:37 masak Perl 5 programmers don't have it easy; this whole talk wouldn't have existed if they'd had the Str/Buf distinction.
10:37 moritz only possible (and likely) due to p5's deep-rooted confusion about byte strings and text strings
10:37 masak aye.
10:38 dolmen joined #perl6
10:38 masak but all levels of the chain (p5, core, modules, module author, module users) are compounding the problem.
10:39 moritz I've done my best to inform people about the problem, but it seems like a struggle against wind mills
10:40 moritz for everybody who understands it, there three more who try but don't, and five more than don't even try
10:41 masak moritz: the questions part seems to confirm this.
10:41 moritz in some sense, it's a really tough problem in p5 design space
10:41 masak moritz: the first question/comment started "I think you're basically wrong about everything..."
10:41 jaffa4 what is the time over there?
10:41 moritz p5 is really "only different types for things with different shapes"
10:41 masak jaffa4: 13:41
10:42 moritz a scalar and a hash have different-enough shapes to warrant separate types ($ vs. %), but there's no real mechanism for core-types below the scalar level
10:43 moritz which is why still no good solution has been found
10:43 moritz a partial solution might be to have three user-introspectable string types, "byte only", "text only", and "polymorphic" (which is what's currently used)
10:44 moritz and mixing text-only and byte-only strings would be fatal
10:44 Ven joined #perl6
10:45 FROGGS (at runtime)
10:45 moritz sure
10:45 mj41 lizmat: new charts https://github.com/mj41/Perl6-Analytics-res​ults/blob/master/slides/mj41-brnopm-prev1/ (data are a few hours old) ... feel free to use any of them
10:46 moritz but it's really just a tiny patch over a huge spasm between the type model that p5 offers, and the type model that modern programmers want/need
10:46 masak hehe... "huge spasm" :P
10:46 masak that may be a typo, but it's a brilliant one.
10:46 * moritz in gloomy philosphy mode
10:47 moritz yes, I meant "chasm"
10:47 masak "spasm" is funnier
10:47 * masak .oO( "but I don't *like* spasm!" )
10:47 * moritz is funniest when he doesn't mean to
10:48 jaffa4 What was your lecture about, masak?
10:50 Ven lizmat: slides somewhere? :)
10:50 Ven the new shiny ones
10:50 lizmat not yet....  in a moment...
10:50 dolmen Looks like trying to build rakudo/jvm from a non-ASCII path is a bad idea...
10:50 dolmen paste?
10:52 masak "are we starting from 0?" -- guy in the third row :P
10:52 masak jaffa4: "implementing goto in 16 hours"
10:53 jaffa4 you have good memory, nice
10:53 masak ;)
10:54 lizmat_ joined #perl6
10:55 masak jaffa4: it was about how to pretend that delimited continuation exists in the language, through painstaking-but-eventually-straightforward code generation, slightly modified Perl 6 grammar, and slangs.
10:58 Ven aka cheating :D
10:58 masak jaffa4: vlodtz was active on the channel back in 2005. he came up to me after the talk and said that the talk made him decide to start looking into Perl 6 again.
10:59 masak Ven: yes, definitely cheating.
10:59 masak Ven: but given that Perl 6 will never support continuations in core, that's the option I could think of.
11:00 nwc10 I'm sure I should know hte answer - does MoarVM support continuations?
11:01 masak nwc10: oh yes.
11:01 masak nwc10: see src/core/continuation.c :)
11:02 nwc10 aha yes.
11:03 nine_ tadzik: https://github.com/niner/Inline-Perl5/commi​t/7506873c29ea38c10f4a5424690ccdd97731f79c
11:03 nine_ tadzik: we now have working two way communication between Perl 5 and Perl 6 :)
11:03 nwc10 ship it!
11:04 masak o.O
11:04 masak nine_++
11:04 tadzik nine_: awesome :)
11:04 tadzik nine_: now we can send 64bit ints and encode json inside
11:04 tadzik :>
11:05 nwc10 haters are particularly going to hate that their nice pure untainted Perl 5 code is now being used by Perl 6 :-)
11:05 tadzik . o O ( Perl 5 Only Artistic License )
11:06 lizmat_ nine_++
11:07 huf perl5 code pure? running on _that_ vm?
11:07 huf it's lots of things but pure isnt even remotely applicable :)
11:08 masak huf: one almost suspects that nwc10 was being sarcastic or something.
11:09 huf masak: nah, sarcasm aint real.
11:10 lizmat this just on CNN: A 6.0-magnitude earthquake hit the northern San Francisco Bay area early Sunday, the U.S. Geological Survey said.
11:10 nwc10 I'm not sure how many different nuances I'm thinking.
11:10 lizmat hope TimToady was not woken up by this
11:10 nwc10 The statement was made in good faith as a somewhat contraversial observational joke
11:11 nwc10 but I suspect it's both "many a true word said in jest" and "resistance is futile. you will be assimilated"
11:11 dolmen http://rakudo.org/how-to-get-rakudo/ should be the home page of rakudo
11:11 dolmen the current home page shows Star releases that are outdated
11:11 masak dolmen: +1
11:13 dolmen Star releases are advertised "for early adopters", but "early adopters" want instead the latest in development features
11:13 lizmat Ven: slides up at http://www.liz.nl/C-DayIsComingYAPCEU.pdf
11:13 dolmen the amzing stuff we read in jnthn blogs posts
11:15 lizmat_ joined #perl6
11:15 masak dolmen: ideally, Star releases should have that, too.
11:20 Ven lizmat: thanks & thanks for the mention :P
11:23 nine_ tadzik: where are you?
11:23 tadzik nine_: at sawyer's
11:24 nine_ tadzik: ah right next to the column
11:24 tadzik oh yes :)
11:26 Ven lizmat_: "if your using" little typo here :)
11:26 tadzik nine_: u wot m8
11:26 tadzik that's crazy things :)
11:26 tadzik I love YAPC
11:26 nine_ tadzik: yes, I'm using Inline::Python from within Inline::Perl5 from within Perl 6 :)
11:27 tadzik :D
11:27 Ven I'm very much agreeing with the c-day talk
11:27 lizmat fixed and uploading, Ven++
11:28 thou joined #perl6
11:31 masak nine_: o.O
11:31 lizmat_ joined #perl6
11:31 Ven masak: y'know about the rabbit hole ? well that's about it
11:32 Ven I guess you need some some slang around it to build the universe (http://xkcd.com/224/)
11:32 Ven (lisp slang, that is)
11:32 masak not sure which rabbit hole you're referring to.
11:32 masak the original Alice one?
11:33 masak the Matrix/Morpheus one?
11:33 masak or the proverbial one?
11:33 masak you can't just say "the rabbit hole" :P
11:33 Ven masak: Matrix's is just alice's, really.
11:33 masak troo
11:33 Ven Sure I can, that's the point: you don't even know which one you're dwelving :P
11:34 masak ok, so what I've gathered so far is that you're talking about *a* rabbit hole. fine. :)
11:34 Ven let's go with alice. This nesting is already making my brain hurt enough, I don't need metaphors to hurt it more
11:36 lizmat joined #perl6
11:36 masak :)
11:36 telex joined #perl6
11:36 jaffa4 What is the state of calling perl5 from Perl6?
11:37 masak jaffa4: it works!
11:37 masak nine_++
11:40 jaffa4 I am reading the slide "Too stupid to contribute?"
11:40 lizmat and?
11:40 Ven I took that one badly :(
11:40 lizmat seriously?
11:40 jaffa4 not PC?
11:41 masak it's... perhaps not the ideal formulation :/
11:41 Ven no, not seriously, but it's not well said.
11:41 lizmat well, I wasn't going for subtle
11:41 masak "we value all contributions" is a better start
11:41 Ven "if you're writing a tutorial instead of commiting, you're stupid LOL" <- not exactly the best way to get ppl involved
11:42 masak the current one implies that non-dev contributions are worth less, because the contributors are too stupid to code.
11:42 masak it's a dev perspective, a very common one, and wrong.
11:44 jaffa4 I write code and doc, so I am both stupid and smart
11:44 masak clearly :)
11:44 Ven jaffa4: congratulations, you're now a heisencake
11:44 Ven (if your username is "jaffathecake")
11:44 TimToady actually, I was awoken by the earthquake, but I'm a Californian so I admired the tinkling noises from some glass bells and the dog barking next door, then promptly fell back asleep
11:45 masak TimToady: glad to hear you weren't more shook up than that.
11:45 TimToady it only felt like a 4.0 here
11:45 lizmat good it's only just that
11:45 tgt joined #perl6
11:45 lizmat in the early 90's, I woke up like that once in Amsterdam
11:45 lizmat a 3.1 earthquake about 200km away
11:45 TimToady and I knew it wasn't huge because it wasn't long enough, but I knew it was larger than 4 because it went on too long for that :)
11:45 Ven I'm not sure I could live someplace with earthquakes :o) really needs to get habituated
11:46 nine_ And now we handle strings returned from Perl 5 to Perl 6 :)
11:46 TimToady well, they happen seldom enough to be interesting, but all you can do is make sure everything is bolted to the wall
11:47 timotimo pro: i just tuned in when jnthn started setting up for his talk. con: i've gotta go again in about 10 minutes >_<
11:47 flussence yayitsjnthn!
11:47 TimToady other than that, you can't see 'em coming like a hurricane or even a tornado
11:47 mj41 joined #perl6
11:47 Ven timotimo: is he in now?
11:48 masak jnthn is about to begin, yes.
11:48 TimToady oh, and I also looked at my watch, so I know the earthquake was at 3:21 local
11:51 lizmat_ joined #perl6
11:51 dolmen joined #perl6
11:52 flussence I ended up missing masak's talk, because some fire engines went down the road here at 3am... :(
11:53 * Ven woke up one hour too early, but caught the talk :o)
11:54 lizmat__ joined #perl6
11:54 * flussence braces for awesome
11:59 timotimo *sigh*, slides not visible :(
12:00 lizmat :-(
12:00 lizmat visible here  :-)
12:01 TimToady the video person doesn't think code is interesting...
12:01 Ven :(
12:02 timotimo ah, finally
12:04 ecocode joined #perl6
12:07 Ven m: my @a = True, False, True; say @a.grep(!*)
12:07 camelia rakudo-moar c793d8: OUTPUT«False␤»
12:08 Ven oh, he used it :P
12:08 timotimo .o( shake your closure-maker )
12:11 flussence m: say signal(SIGINT).perl
12:11 lizmat_ joined #perl6
12:11 camelia rakudo-moar c793d8: OUTPUT«Supply.new()␤»
12:11 flussence m: say Signal.enums
12:11 timotimo m: say signal(SIGINT).Promise
12:11 camelia rakudo-moar c793d8: OUTPUT«("SIGBREAK" => 2, "SIGHUP" => 3, "SIGINT" => 1, "SIGWINCH" => 4).hash␤»
12:11 camelia rakudo-moar c793d8: OUTPUT«Promise.new(scheduler => ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable), status => PromiseStatus::Planned)␤»
12:11 flussence oh, sigint was one of the ones already there :)
12:12 lizmat__ joined #perl6
12:13 timotimo "await $proc.start" kinda sounds like "wait for the process to start", d'oh
12:14 flussence that might read better as "$proc ==> start ==> await" (if that even works...)
12:15 timotimo probably want to use .start instead, as that's a method call on $proc
12:15 timotimo while await is a subroutine call
12:17 timotimo i'd be interested in seeing how you can do good exception handling with this pattern, as any of these promises may be broken instead of kept, right?
12:18 Ven I didn't even know `.<>` worked. Though I already used *<foo> P
12:18 timotimo the boolean value of the promise will be True on "Broken", so it'll at least kick those out of the @work stuff
12:18 timotimo yeah, .<> is for $_, *<> is for making a little closure
12:18 Ven hehe
12:19 Ven doesn't @working need a rw for .= ?
12:19 timotimo i kind of think so
12:19 FROGGS do arrays need that?
12:19 timotimo well, .= does an assignment ...
12:19 Ven yea
12:19 Ven grep itself isnt destructive
12:20 timotimo m: sub test(@arr) { @arr .= sort }; my @a = <a b x y r s t>; test(@a); say @a
12:20 camelia rakudo-moar c793d8: OUTPUT«a b r s t x y␤»
12:20 timotimo ah.
12:20 Ven that seems kinda bad :o)
12:20 * Ven would be interested in the spec part about that
12:21 FROGGS I think it is not trivial to make it ro
12:22 timotimo oh gotta run
12:22 Ven m: sub test(@arr) { @arr = @arr.sort }; my @a = <a b x y r s t>; test(@a); say @a
12:22 camelia rakudo-moar c793d8: OUTPUT«a b r s t x y␤»
12:22 Ven m: sub test(@arr) { @arr = 1, 2, 3; }; my @a = <a b x y r s t>; test(@a); say @a
12:22 camelia rakudo-moar c793d8: OUTPUT«1 2 3␤»
12:22 lizmat__ same kind of problem as making ::+ work
12:22 Ven eh.
12:22 lizmat__ ::= rather
12:23 Ven eh?
12:24 ecocode joined #perl6
12:25 lizmat S03:2348
12:25 synopsebot Link: http://perlcabal.org/syn/S03.html#line_2348
12:27 Ven yes, I know about ::=, I don't know about what's wrong with making it work tho
12:28 akaseki joined #perl6
12:29 nine_ Aaaand....now we're able to call parameterless return value less Perl 5 functions from Perl 6 :)
12:29 nine_ I really should switch to preparing the lightning talk about this now...
12:30 Ven nine_: are there tests :)?
12:30 flussence yayitsmasak!
12:31 nine_ Ven: not yet. But I've also moved the code to a module so it's easier to write tests.
12:31 Ven grate!
12:33 Ven nine_: what's your talk about, btw? :)
12:33 Ven about that, I guess.
12:33 brrt joined #perl6
12:34 jaffa4 there is gui for Perl6?
12:34 nine_ Ven: yes, it's my very first Perl 6 program, and since it's essentially a fancy hello world, I might as well show it ;)
12:34 Ven gtk bindings
12:36 FROGGS nine_++
12:39 dalek doc: 2ed8f99 | moritz++ | lib/Language/traps.pod:
12:39 dalek doc: new language document "traps" (common errors)
12:39 dalek doc: review: https://github.com/perl6/doc/commit/2ed8f992d9
12:42 * TimToady -> 3rd nap &
12:42 dolmen joined #perl6
12:43 Ven good
12:43 moritz feedback on traps.pod very welcome
12:44 moritz another one I want to write is that BUILD stops attribute default assignment
12:49 sergot moritz++
12:53 cognome jnthn's talk is in vitosha? I don't see him on the feed
12:53 ecocode joined #perl6
12:55 cognome is that masak in the second raw?
12:57 FROGGS[mobile] cognome: the talk is over
12:57 cognome I got the schedule wrong?
12:58 cognome what time is it in sofia?
12:58 moritz 15:58
12:58 cognome that's why :(
12:58 moritz date --utc + 3 hours :-)
12:59 Ven joined #perl6
12:59 cognome so far east
12:59 masak cognome: Not Quite The Far East
13:00 cognome masak, for Europe, yes
13:00 Ven has litchkind++ put up his slides yet?
13:05 __sri joined #perl6
13:06 moritz m: class A { has $.x; has $.y; submethod BUILDALL(|c) { nextsame; $!y = 18; self; } }; A.new(x => 42).x
13:06 camelia rakudo-moar c793d8: ( no output )
13:06 moritz m: class A { has $.x; has $.y; submethod BUILDALL(|c) { nextsame; $!y = 18; self; } }; say A.new(x => 42).x
13:06 camelia rakudo-moar c793d8: OUTPUT«(Any)␤»
13:06 moritz what am I doing wrong here?
13:07 masak m: class A { has $.x; has $.y; submethod BUILDALL(|c) { nextsame; $!y = 18; self; } }; say A.new(x => 42).y
13:07 camelia rakudo-moar c793d8: OUTPUT«18␤»
13:07 moritz oh, should it be a method instead of a submethod?
13:08 moritz m: class A { has $.x; has $.y; method BUILDALL(|c) { nextsame; $!y = 18; self; } }; say A.new(x => 42).x
13:08 camelia rakudo-moar c793d8: OUTPUT«42␤»
13:08 masak ah; that was it.
13:08 dolmen joined #perl6
13:08 jaffa4 the quality of string is quite good unlike in Kiev
13:08 jaffa4 streaming
13:09 masak so BUILDALL is a method, but BUILD is a submethod?
13:09 moritz yes
13:09 moritz BUILDALL builds the whole thing
13:09 moritz so it's called once
13:09 moritz (which is why you need to nextsame)
13:09 moritz and BUILD is per class
13:09 klaas-janstol joined #perl6
13:10 ecocode seems rakudobrew fails to build perl6 with moarvm on macosx ? it works with parrot though
13:10 * colomon just realized he slept through jnthn's talk today.
13:10 yoleaux 02:33Z <btyler> colomon: I added a rough draft for encoding values to JSON::Jansson, next up is adding an option to parse JSON into perl6 data structures (rather than preserving them as jansson objects)...or something more pressing for your use case, if you have something in mind
13:10 tadzik ecocode: what's the error message? Also, does it work without rakudobrew?
13:11 colomon ecocode: is it "
13:11 colomon is it "make: write error"?  If so, it mostly works, and it's rakudo's fault (well, make's, really) rahter than rakudobrew's
13:12 ecocode yep that's it
13:12 Ven then it's ok
13:12 ecocode ah ?
13:12 ecocode ok not to build ?
13:13 Ven it worked, don't worry
13:15 ecocode weird
13:15 Ven osx make bug. Just `make install` and off you go :)
13:16 thou joined #perl6
13:16 ecocode rakudobrew switch seems to do the job
13:16 ecocode still
13:17 ecocode weird ;)
13:17 ecocode are there any statictics on module releases to panda ?
13:20 jnthn Slides from my talk: http://jnthn.net/papers/2014-yapceu-async.pdf
13:20 moritz http://stackoverflow.com/questions/​8134572/why-is-make-failing-on-lion suggestss trying 'ulimit -s hard' before running make
13:20 moritz can somebody on OS X please test that?
13:20 colomon ecocode: the downside is that if you later on upgrade the build with rakudobrew, it won't automtically update panda as well, because it stops on the error.  But the building rakudo part still works, and you can update panda by hand.
13:21 ecocode ok
13:21 colomon moritz: trying
13:22 ecocode moritz:fails
13:23 jaffa4 what is rakudobrew?
13:24 ecocode perlbrew for perl6
13:26 jaffa4 Does it work under Windows?
13:26 ecocode would not know... test it ;)
13:27 Ven no
13:27 Ven doesnt
13:29 moritz ecocode: :(
13:29 moritz ecocode: but thnaks for testing it
13:29 moritz is there a difference between  await @todos;   and await Promise.allof(@todos);  ?
13:31 Ven moritz: was wondering the same
13:32 moritz I guess it's the same, but the motivation becomes clear later on
13:32 moritz Promise.anyof($kill, Promise.allof(@todos))
13:33 moritz when you do that step, you need the allof combinator
13:37 colomon moritz: I got the same result ecocode++ did.
13:37 moritz hmpf. Still, worth a try
13:39 moritz jnthn++ # slides, talk
13:39 masak moritz: they're the same.
13:40 moritz masak: jnthn, talk and slides? :-)
13:40 masak :P
13:41 colomon moritz: totally worth a try!
13:41 colomon tadzik: hmmm, maybe rakudobrew should issue "make" twice in a row?  I think that would work around the OS X bug without too many sicde effects?
13:49 kaare_ joined #perl6
13:49 Ven joined #perl6
13:50 ecocode that would seem to solve the problem
13:50 ecocode I just tried from scratch
13:51 tgt make >/dev/null (or wherever) also causes it to run to completion if that means anything.
13:51 ecocode no clue why the second run doesn't show the error (again)
13:52 ecocode this seems to be the command that causes the prob : perl -MExtUtils::Command -e chmod 755 perl6
13:56 tgt joined #perl6
13:59 timotimo i'm briefly at the keyboard again to ask: were there interesting questions at the end of jnthns asynchrony talk?
13:59 timotimo and afk again :)
14:00 Ven er, can we cancel promises
14:00 masak oh right.
14:00 masak that was a good question.
14:00 Ven answer no, mainly because of api design, but can cancel supplies
14:01 Ven and the other one .. can't remember. WTB edeitic memory :)
14:01 masak the thing you can't do is cancel threads. I got the feeling that canceling promises came close to that.
14:01 Ven (okay, edeitic memory doesn't have anything to do with vocal questions)
14:02 Ven masak: yeah, that's kinda the problem
14:02 Ven to quote jnthn "we don't want to make people think they can stop it from processing, so we want to make it explicit that a promise is breakable"
14:04 masak *nod*
14:05 masak and "you can't stop a thread because it might have taken a lock"
14:05 kst`````` joined #perl6
14:07 dalek doc: 5cd0d2a | moritz++ | lib/Language/traps.pod:
14:07 dalek doc: [traps] BUILD and attribute initialization
14:07 dalek doc: review: https://github.com/perl6/doc/commit/5cd0d2a408
14:10 dolmen joined #perl6
14:10 Ven moritz: add explicit comment about BUILDALL being a method mayb?
14:11 tadzik colomon: huh, if it indeed helps I don't see a reason to not have it :)
14:11 colomon shall I try to figure out how to do it locally and see what happens?
14:11 tadzik as longs as it has #damnitOSX next to it
14:11 colomon ;)
14:14 dalek doc: 039575e | moritz++ | lib/Language/traps.pod:
14:14 dalek doc: [traps] comment why BUILDALL is a method, not a submethod
14:14 dalek doc: review: https://github.com/perl6/doc/commit/039575eeda
14:22 smls joined #perl6
14:29 smls Are any recordings of Perl 6 related YAPC:EU talks uploaded yet?
14:30 tadzik I don't think any of the recordings are available yet
14:31 smls ok
14:38 klaas-janstol joined #perl6
14:38 colomon hmmm, p6 way to figure out if we are on OS X?
14:38 jnthn m: say $*OS
14:38 camelia rakudo-moar c793d8: OUTPUT«linux␤Saw 1 call to deprecated code during execution.␤=====================================​===========================================␤$*OS called at:␤  /tmp/qiNYRnC9st, line 1␤Please use $*DISTRO.name instead.␤---------------------------------…»
14:38 tadzik :)
14:38 jnthn What the warning said :P
14:38 colomon jnthn++
14:39 jnthn Wish I could keep up with Perl 6... :P
14:40 masak m: say $*DISTRO.name
14:40 camelia rakudo-moar c793d8: OUTPUT«linux␤»
14:40 masak m: say $*DISTRO.keys
14:40 camelia rakudo-moar c793d8: OUTPUT«0␤»
14:40 mr-foobar using ruby after a long time. something i felt like writing --http://lexical.foobar.systems/is-ruby-perl6.html
14:40 masak m: say $*DISTRO.^attrs
14:40 camelia rakudo-moar c793d8: OUTPUT«No such method 'attrs' for invocant of type 'Perl6::Metamodel::ClassHOW'␤  in block <unit> at /tmp/EsGKViGEed:1␤␤»
14:40 masak m: say $*DISTRO.^attributes
14:40 camelia rakudo-moar c793d8: OUTPUT«Str $!release Bool $!is-win Str $!path-sep Str $!name Str $!auth Version $!version Blob $!signature Str $!desc␤»
14:41 jnthn m: say $*DISTRO.^methods
14:41 camelia rakudo-moar c793d8: OUTPUT«BUILD release gist Str <anon> <anon> <anon> <anon> <anon> <anon> <anon>␤»
14:41 jnthn ah
14:41 colomon whoops, rakudobrew is in perl 5
14:42 masak mr-foobar: '1) is jvm now' -- what?
14:42 tadzik "What is unique to Perl6 1) One vm to rule them all"
14:42 tadzik I don't think that's right :)
14:42 masak mr-foobar: that is false no matter whether you mean Ruby (whose main VM is written in C) or Perl 6 (Parrot, JVM, MoarVM)
14:42 tadzik colomon: hmm, maybe you can just type 'make' twice in there :)
14:42 jnthn "one vm to rule them all" was a Parrot thing, not a Perl 6 one.
14:43 tadzik if it succeeded, it won't do a thing on the second run
14:43 colomon tadzik: yeah, I thought it might be better to make it OS X specific
14:43 SamuraiJack joined #perl6
14:43 tadzik colomon: do what feels right :)
14:43 mr-foobar masak: i was pointing out how jvm is now the most targeted vm ( vs parrot )
14:44 masak mr-foobar: wtf
14:44 masak mr-foobar: everyone and his dog uses moar.
14:44 masak mr-foobar: also, '2) First Class Grammars to describe them all' -- '2) is a bootstrap nightmare' -- what in the world do you mean?
14:44 tadzik timotimo++!
14:44 masak timotimo++
14:45 flussence I dunno what this is about but... timotimo++!
14:45 flussence (something at yapc? I'm on 3G atm so can't watch :)
14:46 mr-foobar masak: "the first class" part meaning something that is changable during runtime.
14:46 masak flussence: his weekly newsletters were mentioned in nine's lightning talk
14:46 mr-foobar isn't it tricky to get right ?
14:46 masak flussence: which is AWESOME, by the way.
14:46 masak mr-foobar: I mean, it's very nice of you to write blog posts, but I'd rather they not be FUD.
14:47 masak mr-foobar: hope you understand.
14:47 flussence I'm gonna have to watch most of these on youtube/etc... I've missed a ton of cool people
14:48 masak flussence: he ran some Python inside Perl 5 inside Perl 6.
14:48 colomon tadzik: what I've got seems to be working for me, now.
14:48 xenoterracide joined #perl6
14:48 tadzik colomon: awesome
14:48 tadzik do you have a commit bit?
14:48 mr-foobar masak: yes agreed. i really think there is a great payoff for perl6's goals. no one is targeting that level of interop.
14:49 colomon tadzik: I'm a little hesitant to just check it in, for fear of breaking things on other platforms.
14:49 colomon tadzik: and I don't have a commit bit
14:49 masak mr-foobar: you can't just write "is a bootstrap nightmare" without meaning anything specific by it.
14:50 colomon tadzik https://gist.github.com/co​lomon/c30f1ea8c4d67054bff6
14:50 masak mr-foobar: re the first list: Perl 6 has 1, 2, 4, 5, 6, and 7.
14:51 mr-foobar masak: i might be mistaken. i remember that before nqp there was one more bootstrap no ? My guess is grammars (+ runtime) are intricate to get right.
14:53 masak mr-foobar: ok, absent *actual data*, please assume you're mistaken.
14:53 TimToady I'm here kinda
14:53 masak TimToady++
14:53 tadzik :)
14:54 colomon tadzik++
14:55 colomon want me to get that?
14:55 tadzik colomon: of course
14:55 masak mr-foobar: perhaps most glaringly, the question "Is Ruby and acceptable Perl6 ?" is *crazy*, somewhat offensive, stupid, and it doesn't feel like you address it with your lists.
14:55 tadzik it makes stuff work, that's always good :)
14:56 TimToady course, we just changed smartmatch last month :)
14:56 masak ssshh!
14:56 flussence question about doc.perl6.org: does it extract signatures and stuff programatically and discard the bits without documentation, or is it all manually written? my point being, IMO, it'd be useful to have a complete API reference there even if there's large chunks of descriptive text missing.
14:58 colomon tadzik: there you go
14:59 tadzik colomon++
14:59 masak an*
14:59 tadzik colomon: it was just advertised by lizmat++ on the YAPC :)
15:00 tadzik it'll now make mac users happier
15:01 masak mr-foobar: I think a big improvement of your article would be to replace it, in its entirety, with "No."
15:02 mr-foobar masak: yeah I guess I'll modify it :) what do you think are most challenging implementation aspects of rakudo / moarvm ? Are there any novel problems like register vm  or accurate parsing ?
15:03 molaf joined #perl6
15:03 masak biggest challenge is FUD on the web, I think.
15:03 mr-foobar i want to understand the flexibility perl6 is trying to achieve. my lotr analogy obviously sucked :)
15:04 masak lotr analogy?
15:05 thou joined #perl6
15:05 mr-foobar "One vm to rule them all" <--
15:05 masak it was true back in 2012 or so.
15:05 masak no, not really.
15:05 masak because Pugs and Niecza.
15:09 moritz pugs was pretty much dead in 2012
15:10 masak indeed, but it still existed enough for "one VM to rule them all" to be false.
15:12 mr-foobar "First Class Grammars to describe them all" <-- my understanding is that perl6 grammars can host an umberrella of langs.
15:13 moritz that is correct
15:13 mr-foobar is that difficult is implement ? are there any research challenges ?
15:13 mr-foobar *to
15:13 moritz the p6 grammar itself has several sub-grammars ("slangs"): regexes, quotes, char classes in regexes etc.
15:14 moritz mr-foobar: difficult for whom? for the author of a grammar? or for the person writing the grammar engine?
15:15 geekosaur no real research challenges, the "new" thing is designing it into the core language from the start
15:15 mr-foobar the latter. I honestly donno if I can attempt a thirdy party engine in another lang.
15:16 moritz well, writing the grammar engine wasn't easy
15:16 moritz but as a Perl 6 user, that's done for you.
15:16 masak I don't see what that has to do with anything.
15:16 masak the question is "Is Ruby an acceptable Perl 6?"
15:16 moritz oh
15:16 moritz the answer to that question is "no".
15:16 masak whether grammars are in some sense hard is irrelevant.
15:16 masak yes, the answer is "no". of course it is.
15:17 mr-foobar oh i am editing it. the answer is no.
15:17 masak I suggested to mr-foobar that he replace the entire body of his post by "no".
15:17 guru joined #perl6
15:17 masak that's the only way it'd be acceptable to me, I think.
15:17 mr-foobar i want write how perl6 is different and why no one can equal p6
15:17 masak no, not the only way.
15:17 masak but it's not a net good right now.
15:18 Alula_ joined #perl6
15:21 moritz mr-foobar: well, grammars are a significant Perl 6 feature that very few (or none) languages can compare with
15:22 moritz mr-foobar: also, gradual typing
15:22 moritz good support for both OO and functional programming
15:22 moritz very expressive
15:23 mr-foobar moritz: agreed.
15:25 dalek Heuristic branch merge: pushed 138 commits to roast/S26-WHY by hoelzro
15:25 dalek Heuristic branch merge: pushed 100 commits to rakudo/S26-WHY by hoelzro
15:26 timotimo yay i was mentioned :)
15:26 timotimo wish i could have seen it live on the stream.
15:27 timotimo watching the recording should be fine :)
15:28 tadzik they just said that they'll hopefully be up in a couple o weeks
15:32 masak EOYAPC::EU
15:32 tadzik :(
15:32 masak ):
15:32 jnthn aww
15:32 masak it was a very good YAPC.
15:32 jnthn aye
15:34 jnthn time to leave &
15:39 timotimo a couple of weeks. hmm
15:40 timotimo maybe I should have run rtmpdump or something like that
15:41 timotimo are stream dumps going to be available semi - officially? :)
15:42 timotimo afk again, walk &
15:43 tgt I've golfed the Makefile issue down to https://gist.github.com/tgt/5424dcb00f874c0375ef if anyone has any suggestions about where to go next?
15:45 _sri joined #perl6
15:47 petercommand joined #perl6
15:47 tgt Actually, the second line can be anything with >= 1024 characters as long as the first runs nqp-m
15:53 mr-foobar masak moritz: do note that my blog has an avg viewership of 1.5; one is me and the other has a more pressing tab to click -- http://lexical.foobar.systems/is-ruby-perl6.html
16:12 brrt joined #perl6
16:14 rindolf joined #perl6
16:16 jaffa4 what is gradual typing?
16:34 lizmat joined #perl6
16:37 woolfy joined #perl6
16:53 thou joined #perl6
16:56 raiph joined #perl6
17:12 SamuraiJack joined #perl6
17:20 jaffa4 native call is working
17:21 FROGGS were there interesting lightening talks today?
17:21 FROGGS I've missed everything after jnthn's talk because I was forces to go outside :/
17:22 jaffa4 there was a talk about a guy's favourite movies and series
17:23 moritz tgt: first of all, open a bug report with apple
17:24 moritz tgt: then we can investigate; what line in our Makefile is longer than 1024 chars?
17:24 FROGGS jaffa4: this could have been Getty, I've seen such a talk in march
17:24 moritz tgt: and try to find a workaround
17:25 tgt I've submitted a report to Apple.
17:25 tgt Line 384 once expanded.
17:25 moritz for me that's  $(M_NQP) $(M_GEN_CAT) $(M_CORE_SOURCES) > src/gen/m-CORE.setting
17:25 tgt Actually, not that line. One sec.
17:25 raydiak joined #perl6
17:26 jaffa4 there was another about how you should not format your Perl code
17:26 colomon tgt++
17:27 tgt Ah, line 374: $(M_NQP) $(M_GEN_CAT) $(M_METAMODEL_SOURCES) > src/gen/m-Metamodel.nqp
17:28 moritz ok, that's a pretty long strong
17:28 moritz the $(M_METAMODEL_SOURCES)
17:29 moritz about 1.7k characters
17:29 moritz I wonder if we could shorten it by extracing the common prefix
17:30 moritz src/Perl6/Metamodel/{Arechetyp​es,Naming,Documenting,...}.nqp
17:30 moritz does windows make (or cmd.exe) support the brace expansion?
17:31 moritz if not, we'll have to put the list of file names into a file
17:32 moritz and then teach gen_cat to read the list of file names from a file
17:32 moritz (and Configure.pl must read the same file, and generate the string that's now in the makefile, to get the dependencies right)
17:36 anaeem1 joined #perl6
17:45 moritz nqp: say(nqp::trim(' abc '));
17:45 camelia nqp-jvm: OUTPUT«(signal )#␤# There is insufficient memory for the Java Runtime Environment to continue.␤# pthread_getattr_np␤»
17:45 camelia ..nqp-parrot: OUTPUT«Error while compiling op trim (source text: "nqp::trim(' abc ')"): No registered operation handler for 'trim'␤current instr.: 'as_post' pc 60313 (gen/parrot/stage2/QAST.pir:21515) (gen/parrot/stage2/QAST.nqp:3860)␤»
17:45 camelia ..nqp-moarvm: OUTPUT«No registered operation handler for 'trim'␤   at gen/moar/stage2/QAST.nqp:1406  (/home/p6eval/rakudo-inst-2/languages​/nqp/lib/QAST.moarvm:compile_op:64)␤ from gen/moar/stage2/QAST.nqp:5006  (/home/p6eval/rakudo-inst-2/language​s/nqp/lib/QAST.moarvm:compile_node…»
17:47 moritz how do I combine two array in nqp?
17:47 moritz like a flattening unshift
17:47 tgt How can I assign src/Perl6/Metamodel/{Archetypes.nqp,...} to COMMON_BOOTSTRAP_SOURCES? It doesn't expand it, calls stat on the unexpanded thing and complains about the filename being too long.
17:47 moritz tgt: than that's not a viable solution
17:47 moritz tgt: I'm working on the other solution now I mentioned above
17:47 tgt Ah. I thought it might be some make magic.
17:47 tgt Okay.
17:48 moritz nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, |@a); say(nqp::join(', ', @b));
17:48 camelia nqp-moarvm: OUTPUT«This representation (VMArray) cannot unbox to a native string␤   at /tmp/_xvn10HqHz:1  (<ephemeral file>:<mainline>:52)␤ from gen/moar/stage2/NQPHLL.nqp:1230  (/home/p6eval/rakudo-inst-2/languag​es/nqp/lib/NQPHLL.moarvm:eval:172)␤ from gen/moar/stage2/NQPHLL.…»
17:48 moritz nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; say(nqp::join(', ', @b));
17:48 camelia nqp-moarvm: OUTPUT«This representation (P6int) cannot unbox to a native string␤   at /tmp/ob12nH5GaQ:1  (<ephemeral file>:<mainline>:51)␤ from gen/moar/stage2/NQPHLL.nqp:1230  (/home/p6eval/rakudo-inst-2/languag​es/nqp/lib/NQPHLL.moarvm:eval:172)␤ from gen/moar/stage2/NQPHLL.nq…»
17:49 moritz nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; say(@b);
17:49 camelia nqp-moarvm: OUTPUT«cannot stringify this␤   at gen/moar/stage2/NQPCORE.setting:681  (/home/p6eval/rakudo-inst-2/languages/nq​p/lib/NQPCORE.setting.moarvm:print:13)␤ from gen/moar/stage2/NQPCORE.setting:687  (/home/p6eval/rakudo-inst-2/languages/​nqp/lib/NQPCORE.setting.moarvm:say:…»
17:49 moritz nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, |@a); for @b -> $x { say($x) }
17:49 camelia nqp-moarvm: OUTPUT«cannot stringify this␤   at gen/moar/stage2/NQPCORE.setting:681  (/home/p6eval/rakudo-inst-2/languages/nq​p/lib/NQPCORE.setting.moarvm:print:13)␤ from gen/moar/stage2/NQPCORE.setting:687  (/home/p6eval/rakudo-inst-2/languages/​nqp/lib/NQPCORE.setting.moarvm:say:…»
17:50 FROGGS nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, |@a); for @b -> $x { say(~$x) }
17:50 camelia nqp-moarvm: OUTPUT«cannot stringify this␤   at /tmp/fPULqIe7YM:1  (<ephemeral file>:<mainline>:61)␤ from gen/moar/stage2/NQPHLL.nqp:1230  (/home/p6eval/rakudo-inst-2/languag​es/nqp/lib/NQPHLL.moarvm:eval:172)␤ from gen/moar/stage2/NQPHLL.nqp:1423  (/home/p6eval/rakudo-inst-2/la…»
17:51 raiph joined #perl6
17:51 FROGGS nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, |@a); for @a -> $x { say($x) }
17:51 camelia nqp-moarvm: OUTPUT«1␤2␤3␤»
17:51 FROGGS so, you cannot unshift an array
17:52 FROGGS nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, $_) for @a; for @b -> $x { say($x) }
17:52 camelia nqp-moarvm: OUTPUT«3␤2␤1␤4␤5␤6␤»
17:52 jaffa4 Is there any tool to convert c headers to Perl native definitions?
17:52 FROGGS jaffa4: maybe LibraryMake? not sure
17:56 anaeem1_ joined #perl6
17:57 moritz how do I strip newlines in nqp?
17:57 * moritz is very rusty
17:58 FROGGS using a regex?
17:58 moritz nqp-m: my $x := "abc\n"; say(substr($x, /\s+/, ''));
17:58 camelia nqp-moarvm: OUTPUT«Cannot invoke null object␤   at /tmp/zcvZm68Dyf:1  (<ephemeral file>:<mainline>:57)␤ from gen/moar/stage2/NQPHLL.nqp:1230  (/home/p6eval/rakudo-inst-2/languag​es/nqp/lib/NQPHLL.moarvm:eval:172)␤ from gen/moar/stage2/NQPHLL.nqp:1423  (/home/p6eval/rakudo-inst-…»
17:58 FROGGS nqp::substr
17:59 moritz t/nqp/62-subst.t seems to use subst
17:59 FROGGS err, what are ya doing?
17:59 FROGGS subst
17:59 FROGGS nqp-m: my $x := "abc\n"; say(subst($x, /\s+/, ''));
17:59 moritz argl
17:59 camelia nqp-moarvm: OUTPUT«abc␤»
17:59 moritz nqp-m: my $x := "abc\n"; say(subst($x, /\s+/, ''));
17:59 camelia nqp-moarvm: OUTPUT«abc␤»
17:59 FROGGS :o)
18:03 dalek rakudo/makefile-line-length: dea7adf | moritz++ | / (5 files):
18:03 dalek rakudo/makefile-line-length: Read bootstrap sources from file
18:03 dalek rakudo/makefile-line-length:
18:03 dalek rakudo/makefile-line-length: because make on Mac OS X has a line length limit in commands
18:03 dalek rakudo/makefile-line-length: (symptom: "write error")
18:03 dalek rakudo/makefile-line-length: review: https://github.com/rakudo/rakudo/commit/dea7adf299
18:04 moritz tgt++ # golfing the error
18:04 moritz ok branch makefile-line-length should remove that particular instance of that problem
18:04 moritz s/remove/work around/
18:05 moritz and make it pretty easy to solve other intances the same way
18:05 colomon woah, rakudobrew actually handles it if you give it a branch!  tadzik++
18:06 moritz I fear M_CORE_SOURCES needs the same approach
18:06 molaf_ joined #perl6
18:10 tgt Yup, M_CORE_SOURCES is also too long.
18:14 dalek rakudo/makefile-line-length: c693d75 | moritz++ | / (3 files):
18:14 dalek rakudo/makefile-line-length: Do not pass M_CORE_SOURCES on the command line
18:14 dalek rakudo/makefile-line-length:
18:14 dalek rakudo/makefile-line-length: it is too long for Mac OS X make
18:14 dalek rakudo/makefile-line-length: review: https://github.com/rakudo/rakudo/commit/c693d75273
18:14 moritz tgt: could you please test with that branch?
18:14 tgt Am doing.
18:14 moritz it builds for me on linux :-)
18:15 moritz jnthn: tests of the makefile-line-length rakudo branch on windows would be greatly appreciated
18:15 tgt It works!
18:17 moritz \o/
18:17 colomon moritz: looks like it works here, too.
18:17 colomon moritz++
18:17 colomon tgt++
18:17 moritz jnthn: and if it builds on windows, please merge into nom; should fix the "Write error" bug on mac os X
18:18 ingy just checking... does rakudo have pcre/p5 support yet? :)
18:18 ingy (re: regexes)
18:19 ingy bbl
18:27 thou joined #perl6
18:31 BizarreCake joined #perl6
18:31 tgt moritz: re: your first commit message. Commands with more than 1024 characters run fine unless they follow a command using nqp-m (or moar, but not perl6-m weirdly)
18:33 timotimo ingy: partial support for P5 regexes via our regular grammar engine
18:36 BizarreCake Is type checking done completely at compile time (when types are given)?
18:36 BizarreCake or is there some runtime checking involved?
18:37 zakharyas joined #perl6
18:38 silug joined #perl6
18:39 timotimo BizarreCake: partially compile-time, partially run-time
18:39 timotimo m: my Str $foobar = 1; say "alive"
18:39 camelia rakudo-moar c793d8: OUTPUT«Type check failed in assignment to '$foobar'; expected 'Str' but got 'Int'␤  in block <unit> at /tmp/laV9JoNRcI:1␤␤»
18:40 tadzik colomon: really? cool :)
18:40 japhb BizarreCake: Am I correct that you are the one working on a new Perl 6 interpreter in C++?
18:40 timotimo m: say "alive"; my Str $foobar = 1;
18:40 camelia rakudo-moar c793d8: OUTPUT«alive␤Type check failed in assignment to '$foobar'; expected 'Str' but got 'Int'␤  in block <unit> at /tmp/0Xh8i2Q9Ef:1␤␤»
18:40 timotimo as you can see, this was done at run-time
18:40 BizarreCake Hmm
18:40 timotimo m: say "alive"; sub foobar(Str $a) { say $a }; foobar(1);
18:40 camelia rakudo-moar c793d8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fRhRiLv9VSâ�¤Calling 'foobar' will never work with argument types (int)â�¤    Expected: :(Str $a)â�¤at /tmp/fRhRiLv9VS:1â�¤------> [32m"alive"; sub foobar(Str $a) { say $a }; [33mâ��[31mfoobar(1)…»
18:40 timotimo ^- this was done at compile time
18:40 BizarreCake japhb: Yes.
18:40 japhb Are you familiar with https://github.com/japhb/perl6-bench ?
18:41 BizarreCake timotimo: So it performs type checking at compile time when it can, but defers the rest to later?
18:41 timotimo yes
18:41 BizarreCake japhb: Nope, I'm pretty new to things here haha
18:42 timotimo the reason why we have compile-time type checking for routines is that we try to do type-based multiple dispatch in the optimizer. that's the spot where we can figure out that some calls can never work, like the one i demonstrated above
18:42 BizarreCake timotimo: Not exactly what I wished it to be.. but okay.
18:42 timotimo m: say "alive"; class Foo { method !foobar(Str $a) { say $a }; method test { self!foobar(1) } };
18:42 camelia rakudo-moar c793d8: OUTPUT«alive␤»
18:43 BizarreCake These checks cost CPU cycles D;
18:43 timotimo that's why we have spesh in moarvm
18:44 BizarreCake I thought about having the compiler analyze the types used in a typed expression, and have it throw an error if it sees something whose type it can't determine.
18:44 japhb That's a collection of benchmarks (mostly microbenchmarks at the moment, but also a few minibenchmarks too), plus programs to manage timing and analysis.  But the idea is that once a new compiler is defined for it, it can clone, build, time, and otherwise manage it along with all the others it knows.
18:44 timotimo yeah, that'd be pretty cool
18:44 timotimo except you'll have to deoptimize properly if classes aren't open or solid or whatever
18:45 BizarreCake That would make it possible to have all the checks done at compile time, but it would make (I'm assuming) a lot of Perl 6 programs invalid.
18:45 timotimo oh, you want to require type annotations everywhere?
18:45 timotimo that's not a problem, just set any type annotation that the programmer didn't specify to "Any"
18:45 timotimo :P
18:46 timotimo that's like python's static typing ... every variable is defined to hold an "object" or any subclass thereof
18:46 timotimo (well ... old-style classes and blah blah ...)
18:47 japhb BizarreCake: So, we just need to add entries in https://github.com/japhb/perl6-b​ench/blob/master/components.json and https://github.com/japhb/perl6-​bench/blob/master/compilers.pl for your compiler, and you can then compare it against Rakudo, NQP, Perl 5, ...
18:48 BizarreCake japhb: That sounds wonderful, but mine is still lacking in functionality.
18:48 BizarreCake It's still only able to interpret relatively simple programs.
18:49 timotimo i wonder how much ram would be required to actually properly dump the profiler data collected during the compilation of the core setting
18:49 japhb BizarreCake: As long as it understands a "-e" style option, you can get a long way with just the microbenchmarks in https://github.com/japhb/perl6-ben​ch/blob/master/microbenchmarks.pl
18:50 japhb BizarreCake: perl6-bench is smart enough to skip tests that the compiler fails on, as long as the failure mode is either crashing (so that there's a detectable signal), or non-zero exit code.
18:50 BizarreCake what should the -e flag do?
18:50 timotimo accept a program to be run from the command line
18:50 BizarreCake Ah
18:51 BizarreCake Read it from stdin?
18:51 timotimo nah, as commandline argument
18:51 BizarreCake Alright
18:51 japhb BizarreCake: As timotimo said, it's for doing one-liners, instead of having the tests be script files.  And all the microbenchmarks are designed as one-liners.
18:51 BizarreCake japhb: I will add that in then .
18:51 japhb As in: perl6 -e 'say "hello"'
18:52 timotimo can i has the link to the github repository again? :)
18:53 BizarreCake For my compiler?
18:53 timotimo yup
18:53 BizarreCake https://github.com/BizarreCake/Arane
18:53 BizarreCake New name, thanks to masak :3
18:53 japhb timotimo: Do you want to do the components.json and compilers.pl updates, or shall I?
18:54 timotimo ah, masak++ :)
18:55 timotimo japhb: feel free to go ahead, i can't really compile stuff here, i forgot to bring my power brick
18:55 timotimo given low usage, it'll last at least 1.5h, but if i try to compile multiple times ... :\
18:56 japhb Heh, yeah
18:58 japhb BizarreCake: The other thing that's helpful is that on your regular release schedule (if you have one yet), or whenever you make major changes, tag your tree with some ascending sequence.  For example, Moar, NQP, and Rakudo use YYYY.MM tags (e.g. 2014.08) for their monthly release.  Niecza used to use vNN (e.g. v21) for its releases.
18:59 BizarreCake Got it :)
18:59 japhb Because perl6-bench has the ability to plot historical performance across a series of tags.
19:00 japhb (Plus until I finish the code to provide an alias for a particular git rev + build options, tags are much easier to work with than raw git revs everywhere)
19:02 timotimo BizarreCake: i'm looking forward to seeing how flexible your compiler will end up being :)
19:02 timotimo custom operators, for example, would be an interesting thing
19:03 BizarreCake In time haha.
19:04 BizarreCake And custom operators, although I do to have the compiler comply with the spec, are something that I'm a bit worried about
19:04 BizarreCake do plan*
19:05 BizarreCake I didn't get to it yet, but I'm afraid of having to perform full dynamic method dispatches whenever two numbers are being added.
19:05 BizarreCake in case the + operator is overloaded.
19:07 timotimo oh, that's no problem
19:07 timotimo operators are defined lexically
19:07 timotimo as soon as you reach the + statement, you know exactly what candidates you have
19:07 BizarreCake Ah, that's perfect then.
19:09 japhb BizarreCake: Can you lower the CMAKE_MINIMUM_REQUIRED(VERSION 3.0) requirement?  My best build machine is still running the previous Ubuntu LTS release (as opposed to the current one from this spring) and only has version 2.8.7.
19:09 BizarreCake Sure
19:11 BizarreCake Done.
19:14 japhb Thanks!  That got me through the cmake portion, but make still dies with "cc1plus: error: unrecognized command line option ‘-std=c++11’"
19:14 BizarreCake g++ version?
19:15 japhb hmm, perhaps i need an upgrade after all
19:15 japhb lemme check
19:15 japhb gcc version 4.6.3
19:15 BizarreCake Yeah.. should be 4.7-4.8
19:15 japhb ah, ok
19:20 diakopter BizarreCake: were you named after [or named with awareness of] the Dr. J.Z.
19:20 diakopter *the* Dr. J.Z., I mean
19:20 BizarreCake .. Nope xD
19:21 timotimo is that the rapper?
19:21 diakopter lol no; Jacob Zhitomirsky
19:21 BizarreCake lol
19:21 BizarreCake That's my name.
19:21 BizarreCake I'm not doctor though
19:22 BizarreCake no*
19:22 raiph joined #perl6
19:23 diakopter ... I'm referring to Lenin's Bolshevik agent in Berlin in 190x
19:23 BizarreCake Oh wait, for a second there I thought you referred to "BizarreCake".
19:23 BizarreCake and I questioned how the two were related.
19:23 diakopter wut
19:24 diakopter same name, I thought
19:24 BizarreCake I'm russian, so it's possible that I might be related to him.
19:25 diakopter cool
19:26 BizarreCake Not likely though :P
19:30 dalek rakudo-star-daily: ad68955 | coke++ | log/ (10 files):
19:30 dalek rakudo-star-daily: today (automated commit)
19:30 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/ad68955d36
19:30 dalek perl6-roast-data: 8c547f7 | coke++ | / (6 files):
19:30 dalek perl6-roast-data: today (automated commit)
19:30 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/8c547f74e3
19:32 Ven joined #perl6
19:33 dalek perl6-bench: 31ce56d | (Geoffrey Broadwell)++ | components.json:
19:33 dalek perl6-bench: Add clone and build instructions for Arane
19:33 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/31ce56d2f8
19:33 BizarreCake ;D!
19:33 mberends joined #perl6
19:37 dalek doc: aa5926c | Nami-Doc++ | lib/Language/traps.pod:
19:37 dalek doc: [traps] fix typo
19:37 dalek doc: review: https://github.com/perl6/doc/commit/aa5926cc66
19:38 dalek perl6-bench: c13e4e0 | (Geoffrey Broadwell)++ | compilers.pl:
19:38 dalek perl6-bench: Add compilers.pl entry for Arane
19:38 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/c13e4e042a
19:40 japhb BizarreCake: With that, you should be able to use perl6-bench for Arane, assuming you have implemented -e and --version already.  I can't test because of aforementioned old gcc.
19:41 BizarreCake Alright, once I finish implementing big integers, which I'm almost done, I'll add those two flags in :)
19:41 BizarreCake Thanks
19:42 japhb BizarreCake: No problem.  Glad to have a new compiler to add to the mix.  :-)
19:45 * [Coke] thought he something in backscroll about the moar-rakudo-os x build being fixed, but doesn't see a commit.
19:46 brrt left #perl6
19:47 tgt It's on https://github.com/rakudo/rakud​o/commits/makefile-line-length atm so someone can test on windows before merging.
19:47 dalek ecosystem: 7603a72 | (Tobias Leich)++ | META.list:
19:47 dalek ecosystem: add Digest::PSHA1
19:47 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/7603a728f4
19:48 Ven just in case, windows *Doesnt* support brace expansion (sorry if stale backlogging)
19:51 timotimo what does PSHA1 do?
19:51 FROGGS it is one method used to sign XML documents
19:52 timotimo .o( also, isn't SHA1 supposed to be too insecure for common cryptographic use? )
19:52 FROGGS (to generate a key our of two secrets)
19:52 FROGGS I think it is good enough for integrity checks
19:52 FROGGS that XML doc signing is stupid anyway
19:53 FROGGS you calculate a digest of two timestamps of the document by default (not of the body)
19:53 FROGGS and then you sign the block that contains the digest
19:53 FROGGS so the body of the document is not even involved
19:54 timotimo .. what ...
19:54 FROGGS :o)
19:54 Ven BizarreCake: I don't think the spec forbids you to do every single type-checking at compile-time :P
19:55 timotimo that's correct :)
19:55 BizarreCake I wondered if it's possible to do that without rendering otherwise valid Perl programs invalid.
19:56 Ven well, it should.
19:56 Ven Else those program would throw a runtime type error
19:56 Ven s/Else/Otherwise/ # english pls
19:57 BizarreCake lol
19:57 BizarreCake I asked because I started implementing type constraints
19:57 * Ven is all for type erasure all the way
19:57 BizarreCake and I wondered what should be done if I assign an abitrary expression to a local variable whose type I know.
19:58 BizarreCake if the expression contains variables whose types are not known at compile time, then it can't be done without deferring those checks until later.
19:58 timotimo that's right
19:58 BizarreCake I thought about having the compiler throw an error on such scenarios
19:58 timotimo also, do you know of subset types?
19:59 BizarreCake a type that can have custom constraints defined to it?
19:59 japhb BizarreCake: Note that one thing that catches people out in Rakudo is type-constrained arrays, which people tend to find rather confusing, so when using Rakudo people tend to fall back to unconstrained arrays.  Something to be careful of in your compiler.
19:59 timotimo that's right
19:59 timotimo m: subset Even of Int where * %% 2; my Even $foo = 2; my Even $bar = 3;
19:59 camelia rakudo-moar c793d8: OUTPUT«Type check failed in assignment to '$bar'; expected 'Even' but got 'Int'␤  in block <unit> at /tmp/6jzBM_UDLx:1␤␤»
20:00 japhb m: subset Even of Int where * %% 2;  say so 3 ~~ Even; say so 4 ~~ Even;
20:00 camelia rakudo-moar c793d8: OUTPUT«False␤True␤»
20:00 klaas-janstol joined #perl6
20:00 BizarreCake Is that done at runtime?
20:00 moritz yes
20:00 moritz though you're free to do as much of it at compile time as you want
20:02 BizarreCake http://pastebin.com/c27kRRrD
20:03 BizarreCake ^So having the compiler throw on error on that one is allowed by the spec?
20:03 moritz the spec allows it
20:03 japhb BizarreCake: Why would that be an error?
20:04 BizarreCake If type checking was done strictly at compile time, then I thought it should be.
20:04 BizarreCake That's why I'm asking.
20:04 moritz right
20:04 moritz but perl 6 is gradually typed (type declarations are optional)
20:04 japhb I may be missing something.  Assigning something with unknown type to something with known type is not an error.  Assigning something with incompatible type is.
20:04 moritz BizarreCake: btw I got an error "No such file or directory" on #include "runtime/bigint.hpp"
20:05 BizarreCake So type checking *must* be done at runtime in that case.
20:05 moritz BizarreCake: correct
20:05 BizarreCake moritz: It's possible I didn't add that file :o
20:05 BizarreCake One moment
20:05 Ven fwiw, I'm pretty sure we could achieve timotimo++'s kind of type-checking at compile-time.
20:05 japhb Yes, if you have all the types specified, you're allowed to move checks to compile time.  But when the typing is gradual, you're required to do it at runtime.
20:05 moritz japhb: you're not missing anything, BizarreCake is just slowly approaching questions you might have figured out long ago
20:05 Ven I thought about using the "pure" markers
20:06 timotimo Ven:  the timotimo type checking system? %)
20:06 japhb TTCS
20:06 Ven timotimo: how performant are you?
20:06 japhb .oO( How long does it take for him to determine someone is his type? )
20:07 timotimo :43
20:07 timotimo :3
20:10 anaeem1_ joined #perl6
20:13 BizarreCake moritz: I've made some big/breaking changes to bigint.cpp, so it will have to wait a bit.
20:13 yoleaux joined #perl6
20:16 moritz BizarreCake: no hurry
20:22 colomon joined #perl6
20:25 tadzik lizmat: woolfy don't want to text on this hour, but I'd love to come to the hackathon tomorrow ;)
20:35 BizarreCake moritz: Should work now :)
20:37 moritz BizarreCake: build worked, thanks
20:39 BizarreCake Was able to get http://pastebin.com/jrfSqHjL to run in 0.23s :3
20:40 FROGGS BizarreCake: implement more stuff :o)
20:40 moritz BizarreCake++
20:40 moritz BizarreCake: https://github.com/perl6/nqp/tree/master/t/nqp has a few test files that might be easy-ish to get to run
20:40 kjs_ BizarreCake: I’m on MacOS, and can’t find <malloc.h>
20:41 dolmen joined #perl6
20:41 FROGGS I mean, rakudo's setting is 20k lines long... that takes some time to load
20:41 BizarreCake kjs_: lol, I'm not really sure I can help you with that.
20:41 BizarreCake moritz: Thanks, I will check those out.
20:42 kjs_ BizarreCake: I think <stdlib.h> is more portable
20:42 moritz BizarreCake: especially the first few ones
20:43 BizarreCake kjs_: I've picked up a habit of always including <malloc.h> instead of <stdlib.h> a long time ago.
20:43 FROGGS BizarreCake: MoarVM also does not include malloc.h but stdlib.h
20:43 BizarreCake since it added a bunch of other stuff into the namespace.
20:43 BizarreCake Okay, I'll change it.
20:44 Ven joined #perl6
20:44 BizarreCake kjs_: Changed it.
20:44 kjs_ thanks will try again
20:47 kjs_ BizarreCake: that works perfectly on MacOS now. thanks
20:47 BizarreCake :D
20:47 ingy timotimo: how hard would a pcre binding be?
20:48 Ven ingy: like :P5? in what?
20:50 ingy Ven: earlier I asked
20:50 ingy just checking... does rakudo have pcre/p5 support yet? :)
20:50 ingy and timotimo said, partially via p6rules
20:51 ingy the short of it is that I want to make a Pegex.pm6 implementation
20:51 ingy that is as fast as it is in other langs
20:51 FROGGS m: say "foo" ~~ m:P5/(?{ say 1 })/
20:51 camelia rakudo-moar c793d8: OUTPUT«1␤「」␤␤»
20:53 ingy FROGGS: what are you implying?
20:53 FROGGS that we have P5 regex support, but not by using an external library
20:54 ingy that doesn't look like a p5 regex
20:55 ingy m: say "foo" ~~ m:P5/(fo*)/
20:55 camelia rakudo-moar c793d8: OUTPUT«「foo」␤ 0 => 「foo」␤␤»
20:56 ingy m: say "foo" ~~ m:P5/(fo*x)/
20:56 camelia rakudo-moar c793d8: OUTPUT«False␤»
20:56 ingy ok, well I can start with that at least
20:57 FROGGS ingy: look at http://perldoc.perl.org/per​lre.html#Extended-Patterns for (?{ code }), that is P5 syntax
20:58 FROGGS m: say "foo" ~~ m:P5/(?<bar>foo)/
20:58 camelia rakudo-moar c793d8: OUTPUT«「foo」␤ bar => 「foo」␤␤»
20:58 FROGGS ohh, even that works
20:59 FROGGS ingy: when I hit missing bits in v5 I usually implement that in nqp to make it available both to v5 and rakudo
21:00 dalek doc: 1ac3899 | (Steve Mynott)++ | htmlify.p6:
21:00 dalek doc: the the fixed
21:00 dalek doc: review: https://github.com/perl6/doc/commit/1ac389982f
21:12 dalek doc: f373a21 | (Steve Mynott)++ | lib/Language/containers.pod:
21:12 dalek doc: fix minor spelling errors
21:12 dalek doc: review: https://github.com/perl6/doc/commit/f373a21601
21:12 dalek doc: 103d690 | (Steve Mynott)++ | lib/Language/Sets_Bags_and_Mixes.pod:
21:12 dalek doc: fix minor spelling errors
21:12 dalek doc: review: https://github.com/perl6/doc/commit/103d690b6e
21:13 dalek doc: d6d2e70 | (Steve Mynott)++ | lib/Language/traps.pod:
21:13 dalek doc: fix minor spelling errors
21:13 dalek doc: review: https://github.com/perl6/doc/commit/d6d2e70815
21:13 moritz yay, fixes
21:14 BizarreCake left #perl6
21:15 Ven yay, pselling :)
21:16 anaeem1 joined #perl6
21:32 dalek doc: 9fc6dd0 | (Steve Mynott)++ | lib/Type/ (3 files):
21:32 dalek doc: fix minor spelling errors and typos
21:32 dalek doc: review: https://github.com/perl6/doc/commit/9fc6dd0541
22:00 dolmen joined #perl6
22:04 telex joined #perl6
22:11 timotimo FROGGS++ # v5 and :P5 improvements
22:15 kjs_ joined #perl6
22:18 ecocode joined #perl6
22:35 dolmen joined #perl6
22:37 xenoterracide joined #perl6
22:57 xragnar_ joined #perl6
23:09 anaeem1_ joined #perl6
23:09 anaeem1_ joined #perl6
23:12 jack_rabbit joined #perl6
23:13 anaeem___ joined #perl6
23:16 xenoterracide joined #perl6
23:32 lizmat .tell tadzik looking forward to seeing you
23:32 yoleaux lizmat: I'll pass your message to tadzik.
23:38 BenGoldberg joined #perl6
23:38 raiph joined #perl6

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

Perl 6 | Reference Documentation | Rakudo