Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-09-02

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:01 jepeway s/time/Instant/
00:01 jepeway err...s:2nd/time/Instant/
00:02 jack_rabbit oh, duh.
00:03 * [Coke] is down to the last bisect.... slooow
00:06 jepeway camelia's CTCP Time'ing requestor seems a keen idea to me...might need a way to say "nope, camelia's time, not mine," too.
00:06 jepeway *requester
00:07 TimToady well, all you're gonna get is their server's time, which in my case is 3 hours off from what I'd want...
00:08 grondilu joined #perl6
00:10 jack_rabbit Where do I get the bitmask for IO::Socket.poll?
00:12 jepeway maybe "TZ=US/wherever irssi" (or whichever client) would help there?
00:13 TimToady my client is not in my timezone either
00:14 nick__ joined #perl6
00:14 nick__ hello
00:14 [Coke] annnnd, TimToady broke rakudo-parrot. :)
00:14 [Coke] 98c32aaa8b2219 is the first bad commit.
00:14 nick__ well thats good?
00:15 nick__ right
00:15 jepeway well, understood, but if you're on a nix/nux box, can't you just declare your timezone with the TZ envariable and client & OS will DTRT?
00:16 nick__ hey i was think an mascot like otter for perl6? any ideas
00:16 [Coke] nick__: hello. Whats up?
00:17 [Coke] nick__: we already have camelia. (the butterfly on perl6.org)
00:17 nick__ new guy, pretty new to perl, coming from perl 5...
00:18 nick__ how much is a diffs in syntax? between the two
00:18 nick__ so far i don't see much of a diff
00:23 * jepeway hopes he's not coming across as cheeky
00:23 nick__ so what does everyone think of using otter instead of a camelia
00:25 nick__ ???
00:28 jepeway .tell masak hey, I'm poking at RT 122319; would you have time to peek at clog around http://irclog.perlgeek.de/p​erl6/2014-09-01#i_9282046?
00:28 yoleaux jepeway: I'll pass your message to masak.
00:29 nick__ Hello?
00:30 [Coke] nick__: it's not going to fly, sorry
00:30 nick__ why?
00:30 jepeway well, gtg.  g'nite (from US/Eastern aka EDT5EST) #perl6
00:30 jepeway left #perl6
00:31 geekosaur this may not always work anyway. I'm in EST5EDT but my IRC client I force into UTC
00:31 nick__ :/ butterfly, should use the camel instead
00:31 [Coke] nick__: http://perl6.org/about/
00:32 [Coke] "Camelia as the logo for Perl 6 and perl6.org is not negotiable.
00:32 [Coke] "
00:32 timotimo http://t.h8.lv/p6bench/201​4-09-02-since_release.html - the json benchmarks really got a nice little boost from the recent jit and optimization improvements
00:32 [Coke] You can imagine that having someone who is not yet part of the community suggest a change about the logo isn
00:32 [Coke] t going to get much traction.
00:32 [Coke] timotimo: nice.
00:33 [Coke] nick__: I do imagine an otter would also be cute, however.
00:33 timotimo i wonder what the otter would symbolize
00:33 timotimo "this is the otter perl language"? %)
00:34 TimToady .oO(endangered species fighting for existence)
00:34 timotimo .tell japhb_ I'm still wondering why the benchmark plots don't disappear when there is 0 data at all, like the non-nqp-implemented benchmarks in a pure-nqp-comparison
00:34 yoleaux timotimo: I'll pass your message to japhb_.
00:35 nick__ otter (Joy Agility Energy Curiosity Creativity Dexterity Protection Friendship Playfulness) , i think it would help and i can comeup with a samples
00:36 timotimo does any other language have an otter?
00:36 nick__ also i had came to the chat b4, many time to the community
00:36 nick__ no, that i know of
00:37 nick__ we can always otter for automation, since perl has been really good for scripts in that area and master text process
00:37 timotimo .tell japhb_ i wonder when it'll be time to re-implement the perl5 portions of p6bench in pure perl6 :)
00:37 yoleaux timotimo: I'll pass your message to japhb_.
00:39 nick__ plus i tired many language for admin,script work,system, and web but perl power seem to a lot of bulltin goodness (not talking the library) but the language itself
00:41 nick__ Fearlessness is another great symbolic attribute of the otter
00:42 nick__ also Native American Zodiac Sign Meanings  A little quirky, and unorthodox, the Otter is a hard one to figure sometimes. Perceived as unconventional, the Otter methods aren't the first ones chosen to get the job done. This is a big mistake on the part of others - because although unconventional, the Otter's methods are usually quite effective. Yes, the Otter has unusual way of looking at things, but he/she is equipped with a brilliant
00:42 nick__ allowing him/her an edge over every one else. Often very perceptive and intuitive, the Otter makes a very good friend, and can be very attentive. In a nurturing environment the Otter is sensitive, sympathetic, courageous, and honest. Left to his/her own devices, the Otter can be unscrupulous, lewd, rebellious, and isolated
00:43 timotimo cut off after "equipped with a brilliant i"
00:44 nick__ so i truly believe perl, even with a lot people say the syntax or the doing things in more than one way is not good, i disagree. having freedom to write your code give you better option
00:45 nick__ look i know i am new, but i seen how can a simple but yet logo can boost perl6.
00:46 nick__ i just saying whats on my mind
00:48 nick__ http://i.dailymail.co.uk/i/pix/2014/03/06/art​icle-2574541-1C13035A00000578-424_634x424.jpg otter fighting
00:49 jerrycheung joined #perl6
00:50 nick__ otter can eat  snake too ;)
00:50 kurahaupo joined #perl6
01:02 dayangkun joined #perl6
01:04 FROGGS_ joined #perl6
01:07 TimToady .oO(Proposed order of subject merit: relationships > jokes > culture > philosophy > principles > features > sugar > bikesheds > mascots > competition > licenses...)
01:09 nick__ ??
01:09 cooper joined #perl6
01:09 cooper joined #perl6
01:18 [Coke] nick__: I appreciate your desire to make the otter the mascot for perl6. But we already have a mascot, and we're really not likely to switch it at this point. Thanks, though.
01:19 nick__ ok, i will come back in 15years,then lol
01:23 xenoterracide joined #perl6
01:25 TimToady ooh, the old take my marbles and go home ploy...
01:28 * TimToady suspects Camelia has succesfully fended off another potential troublemaker
01:29 cooper joined #perl6
01:29 cooper joined #perl6
01:36 jack_rabbit joined #perl6
02:04 TimToady [Coke]++ # unfailingly polite
02:05 noganex_ joined #perl6
02:07 [Coke] I'm glad we can take turns being polite. it's hard to do all the time. :)
02:08 TimToady you said it
02:08 grondilu joined #perl6
02:10 grondilu when given filenames on the command line, isn't perl6 supposed to execute all of them?  $ echo 'say "foo"' > foo.t; echo 'say "bar"' > bar.t; perl6 *.t  # shows only bar
02:11 TimToady no, only the first one
02:11 TimToady the rest are arguments
02:12 TimToady gotta have something left to stick into $*ARGS
02:12 TimToady er @
02:12 grondilu ok
02:13 grondilu for some reason I'd swear I had already ran something like perl6 *.t
02:13 grondilu I probably did, without knowing that was wrong :/
02:13 dj_goku_ so with the work to beable to use p5 in p6 to allow a wider audience use p6 while those big libraries on p5 are built in p6?
02:15 TimToady there are many migration strategies, and that supports some of them
02:18 jack_rabbit Are there async socket IO or concurrency implementations available?
02:19 * TimToady doesn't know the status of that offhand; there has certainly been some work on it
02:20 dj_goku_ TimToady: are you still at craiglist?
02:20 TimToady yes
02:20 TimToady they take good care of me
02:20 dj_goku_ so do they have you work on anything other than p6?
02:20 TimToady not yet :)
02:20 dj_goku_ are they using p6?
02:20 TimToady not yet :)
02:21 chenryn joined #perl6
02:23 dj_goku_ either way it is pretty awesome they are supporting that development.
02:23 TimToady for sure!
02:23 jack_rabbit Well their goal is to use it I would guess.
02:28 TimToady their goal is to support the concept of paying it forward, and if that works out to pay somthing back in the long run, all the better
02:28 TimToady they're a great bunch of people
02:29 dj_goku_ looking at a job posting. sounds like it.
02:30 jack_rabbit sweet.
02:35 dj_goku_ TimToady: so I presume you work from home?
02:42 pyrimidine joined #perl6
02:44 TimToady mostly, yes
02:45 TimToady haven't been able to get away from home as much as I expected this year :)
02:54 [Sno] joined #perl6
03:00 telex joined #perl6
03:00 [Coke] ah, ymd-from-daycount is the likely culprit for parrot breakage.
03:07 dj_goku_ TimToady: nice. I recently switched jobs back in march, from a perl shop to now python. though I am still a fan of perl. Learning mojolicious and writing web APIs on the side right now.
03:08 xinming joined #perl6
03:15 pyrimidine I kind of get the impression that python is starting to lose a bit of it’s new/shiny.  Like, Google basically creating Go as it’s (eventual) python replacement
03:16 dj_goku_ pyrimidine: there are a couple things I really like about python, but then there are somethings not so much.
03:16 TimToady Go is not really a suitable replacement for any scripting language
03:19 pyrimidine TimToady: I haven’t looked at it to be honest. Just like dj_goku_ I find some things about python nice, others not so much.
03:20 dj_goku_ we use pandas a lot, which is really nice, but sometimes with my lack of knowledge I bang my head around.
03:23 pyrimidine We actually have been sticking with R for any data analysis.  It can be like pokers to the eyes sometimes, but it’s been around long enough
03:23 TimToady we might get better leverage making sure p6 works with some python libs than some p5 libs :)
03:24 pyrimidine might
03:24 xiaomiao Go ... some good ideas, with added extra braindamage stapled in
03:24 pyrimidine heh
03:24 xiaomiao e.g. static linking to make distro packaging impossible
03:24 xiaomiao e.g. "deploy from github" as feature
03:24 TimToady they fixed a lot of things from C, including a fair number of things that didn't need fixing :)
03:24 dj_goku_ pyrimidine: I don't deal with the data analysis portion, just the loading. :D
03:26 pyrimidine dj_goku_: like those guys that set up the dynatmie charges for road work?
03:26 pyrimidine *dynamite
03:27 dj_goku_ pyrimidine: it feels that way sometimes.
03:27 pyrimidine well, as long as you just push the trigger and can stand far enough away to not get hurt :)
03:29 pyrimidine not that R is much better.  But it was at least written by statisticians (and it shows)
03:30 dj_goku_ since I have started I have mostly building API interfaces to interface with APIs like (facebook, google, salesforce) to pull in all sorts of data for our clients.
03:31 tardisx joined #perl6
03:32 dj_goku_ Adding a lot of tests too. There weren't a lot of tests when I started.
03:33 dj_goku_ pyrimidine: so are you writing R stuff and executing in python?
03:34 pyrimidine dj_goku_: nope. Straight R/Perl/Python.
03:34 pyrimidine (not in that order)
03:35 pyrimidine Basically, ‘whatever is needed for the job at hand’
03:36 dj_goku_ pyrimidine: sounds like me, but we have other people doing R and the reporting side.
03:37 pyrimidine We do genome assemblies, look at gene expression data, etc.  The tools vary, can be a mix of C, Perl (with XS), R, Python, Java, and in some cases Ruby
03:38 pyrimidine We run most tasks on high-performance clusters (local, but sometimes AWS). We even have access to this: https://bluewaters.ncsa.illinois.edu
03:39 xiaomiao pyrimidine: sounds like great fun
03:39 pyrimidine yes, it is.  Can be very frustrating as well
03:39 ggoebel1111112 hey dj_goku
03:40 xiaomiao pyrimidine: frustration is part of the job
03:40 pyrimidine xiaomiao: yep. much of it in my case comes from working with users w/ little to no compute knowloedge
03:40 Woodi joined #perl6
03:41 dj_goku_ ggoebel1111112: hey garrett! how goes it?!
03:41 dj_goku_ pyrimidine: that sounds fun.
03:44 pyrimidine it is
03:44 xiaomiao hehe. "It'd be so much easier without users"
03:45 pyrimidine xiaomiao: yeah.  Can’t they just leave us alone :)
03:45 xiaomiao I'd be happy if all the ADHD kiddies stopped writing code for a while and started creating software instead
03:45 xiaomiao users are relatively easy to tolerate, bad code is much more frustrating
03:46 pyrimidine xiaomiao++
03:46 pyrimidine couldn’t agree more
03:48 pyrimidine we get lots of that now.  Everyone is writing up the coolest viz tools in d3.js or similar, but not really thinking through that the damn thing needs to be actually useful at some point.
03:48 pyrimidine lots of ‘thesis-ware’
03:55 xiaomiao well, I'm seeing that a lot on the linux front now ...
03:56 xiaomiao deterministic boot? who needs that!
03:57 jerrycheung joined #perl6
04:05 ggoebel1111112 working through Let's Build A Compiler and translating it to perl targetting MSIL
04:06 ggoebel1111112 filling in the gaps and looking to delurk in a useful capacity someday
04:08 ggoebel1111112 good to hear from you... <and back to being a lurker>
04:08 TimToady ggoebel1111112++
04:09 TimToady that makes you, what, ggoebel1111113 or so?
04:09 ggoebel1111112 all those 1's blur together... :-)
04:09 ggoebel1111112 probably means its time for bed
04:11 kaare_ joined #perl6
04:45 rindolf joined #perl6
05:01 hagiri joined #perl6
05:06 rindolf joined #perl6
05:12 SamuraiJack joined #perl6
05:13 [Sno] joined #perl6
05:15 chenryn joined #perl6
05:37 rindolf joined #perl6
05:54 mr-foobar joined #perl6
05:54 gfldex joined #perl6
05:58 virtualsue joined #perl6
06:13 rindolf joined #perl6
06:14 sergot hi o/
06:42 fhelmberger joined #perl6
06:42 rindolf joined #perl6
06:43 TimToady where is #75010
06:43 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=75010
06:44 kaleem joined #perl6
06:52 rindolf joined #perl6
06:52 danaj I still have more testing, cleanup, and API discussion, but looks like my new is-prime is running ~20x faster than the current one.
06:53 mberends joined #perl6
06:55 TimToady danaj++
06:56 rindolf joined #perl6
06:59 itz_ joined #perl6
07:06 darutoko joined #perl6
07:07 zakharyas joined #perl6
07:16 kaleem joined #perl6
07:31 dalek roast: 7a6c919 | TimToady++ | S32- (2 files):
07:31 dalek roast: :p is supposed to weed out non-existing
07:31 dalek roast: review: https://github.com/perl6/roast/commit/7a6c9190ed
07:31 dalek roast: 2befb5e | TimToady++ | S32-array/splice.t:
07:31 dalek roast: unfudge, works now in rakudo
07:31 dalek roast: review: https://github.com/perl6/roast/commit/2befb5e3c9
07:31 dalek roast: 79039df | TimToady++ | S12-class/attributes.t:
07:31 dalek roast: all ranges now autotruncate on subscripting
07:31 dalek roast: review: https://github.com/perl6/roast/commit/79039df843
07:31 dalek roast: 7060722 | TimToady++ | S0 (4 files):
07:31 dalek roast: parcels no longer autoflatten for .elems or .[]
07:31 dalek roast: review: https://github.com/perl6/roast/commit/7060722e74
07:33 dalek rakudo/nom: a8df1c9 | TimToady++ | src/core/array_slice.pm:
07:33 dalek rakudo/nom: all ranges autotruncate on subscripting overrun
07:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a8df1c96d9
07:33 dalek rakudo/nom: ef380d2 | TimToady++ | src/core/ (2 files):
07:33 dalek rakudo/nom: Parcel no longer autoflattens for .elems or .[]
07:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ef380d29f9
07:35 virtualsue joined #perl6
07:37 FROGGS o/
07:38 moritz \o
07:38 moritz TimToady: I can imagine those commits make list stuff a bit faster
07:39 bjz joined #perl6
07:39 dalek specs: 366eca4 | TimToady++ | S02-bits.pod:
07:39 dalek specs: Parcels are not so ephemeral anymore
07:39 dalek specs: review: https://github.com/perl6/specs/commit/366eca4ba9
07:39 nwc10 after the ASAN build, I'll have another go with optimisation
07:40 nwc10 and see how startup now looks
07:40 TimToady moritz: well, possibly, possibly not
07:40 brrt joined #perl6
07:40 * TimToady was going for correct semantics first, and we may need the list refactor to make them faster
07:41 TimToady slicing continues to make far too many decisions at run time that should be made at compile time
07:41 moritz well, not doing a .flat for each .elems call should be a win
07:42 mberends joined #perl6
07:43 nwc10 good * mberends
07:43 nwc10 is this "good Jet Lag, mberends"?
07:44 TimToady m: say (1,(2,3),4).elems
07:44 camelia rakudo-moar 0a4af1: OUTPUT«4␤»
07:45 TimToady that will say 3 when my changes recompile
07:45 TimToady and you'll have to say .flat.elems if that's what you actually want
07:46 TimToady one fallout of this is that I had to work really hard to get .kv not to return a parcel for each key/value pair
07:46 mberends joined #perl6
07:46 mberends haha, yes, sitting at AMS waiting to fly on to LJU in a few mins ;-)
07:46 TimToady so .kv always flattens itself rather than relying on parcel to do it
07:47 nwc10 good *, mberends
07:47 mberends good am, nwc10
07:48 nwc10 [nick@gcc1-power7 rakudo]$ ./perl6-m -e 'say $*DISTRO'
07:48 nwc10 linux (2.6.32.279.19.1.el.6.ppc.64)
07:48 nwc10 with SPESH disabled it fails one spectest.
07:48 nwc10 with SPESH it fails quite a few, but all seems to be the same underlying problem
07:49 moritz nwc10: have you tried it with with spesh, but MVM_SPESH_OSR_DISABLE=1 ?
07:49 nwc10 not yet
07:49 nwc10 anyway
07:49 nwc10 mberends: you might find that it builds on more debian platforms than the two usual suspects
07:51 mberends nwc10: excellent! Moar on ARM32 seems viable :-)
07:51 ggoebel1111112 joined #perl6
07:51 nwc10 mberends: you have tested this recently?
07:52 mberends nwc10: no, I think tadzik++ reported success on Android.
07:52 tadzik nah, that was SailfishOS
07:52 tadzik and a partial success :)
07:52 mberends ah, thanks
07:53 donaldh joined #perl6
07:53 nwc10 it was a complete sod to get MoarVM to work on ARM
07:53 nwc10 (hidden alignment assumptions in the NQP code)
07:53 nwc10 and I've not re-checked whether something else then broke it
07:54 nwc10 also, a Raspberry Pi is considerably slower than other stuff, even (I believe) more beefy ARM boards
07:54 chenryn joined #perl6
07:57 mberends a special interest group at DebConf discussed designing a totally open source laptop motherboard with a very beefy ARM V8 (64 bit) to fit into an existing case such as a ThinkPad X220.
08:03 dalek rakudo/nom: a640aab | (Elizabeth Mattijsen)++ | src/core/Int.pm:
08:03 dalek rakudo/nom: Unbreak 98c32aaa8b2219 for parrot (RT #122681)
08:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a640aab02f
08:03 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122681
08:05 FROGGS "XXX temporary fix" *g*
08:05 FROGGS I bet it will still be there in 2020 :o)
08:06 Akagi201 joined #perl6
08:06 FROGGS ohh, a nativecall test relied on the parcel flattening as it seems
08:08 pecastro joined #perl6
08:12 kjs_ joined #perl6
08:12 domidumont joined #perl6
08:14 lizmat FROGGS: but will parrot make it to 2020 ?
08:15 lizmat anyway, I thought it would be too early to let breakage of that kind persist
08:15 lizmat as it was clearly an opt directed towards developments on MoarVM
08:16 FROGGS lizmat: no idea about parrot... I think depends on new devs joining #parrot or not
08:18 dalek specs: c6647e2 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
08:18 dalek specs: Added "opt" lemma and moved OSR to right place
08:18 dalek specs: review: https://github.com/perl6/specs/commit/c6647e2229
08:21 FROGGS this fails:
08:21 FROGGS my $carray = nativecast(CArray[uint32], ReturnArray());
08:21 FROGGS is $carray[0..2], [1, 2, 3], 'casting int * to CArray[uint32] works';
08:21 FROGGS but this passes:
08:21 FROGGS is $carray[0,1,2], [1, 2, 3], 'casting int * to CArray[uint32] works';
08:23 FROGGS ohh, it might be the role IntTypedCArray in NativeCall
08:24 nwc10 of course. Parrot 12.0 will be released on Tuesday 21st Jan 2020
08:24 nwc10 this is the benefit of a predictable release schedule
08:24 nwc10 sometimes I wonder why it's not automated with cron
08:24 moritz ah, but then we wouldn't notice when the last parrot developer has given up
08:24 FROGGS nwc10: because you cannot automate documentation patches </troll>
08:25 FROGGS (yes, I know there were very nice patches during this GSoC)
08:26 lizmat as jnthn said in his latest performance presentation: without parrot we wouldn't be with rakudo where we are now
08:26 FROGGS that's totally true
08:26 FROGGS you need a solid base to do experiments which let you grow
08:26 nwc10 not specifically in the context of Rakduo VMs - too many people think of GSoC as free labour. And ignore the cost of training. And fail to pay attention to how many students carry on with open source afterwards
08:27 moritz lizmat: I'm not questioning parrot's past contributions, merely its future
08:27 timotimo .tell mberends have these debian arm laptop special interest group looked closely at the Pyra? the Open Pandora successor? it'll be quite beefy indeed
08:27 yoleaux timotimo: I'll pass your message to mberends.
08:28 moritz (and iirc I still qualify as a parrot developer, and have a commit bit, and all that)
08:30 dakkar joined #perl6
08:31 FROGGS hmmm, in $carray[0..2] the Proxy.FETCH is only called with $pos==0, and for $carray[0,1,2] its is called with 0, then 2 then 3
08:31 FROGGS err, 0 then 1 then 2
08:37 dalek roast: 447e63c | (Elizabeth Mattijsen)++ | S02-types/WHICH.t:
08:37 dalek roast: Separate concurrency to avoid parrot breakage
08:37 dalek roast: review: https://github.com/perl6/roast/commit/447e63c84b
08:39 dalek roast: c738362 | (Elizabeth Mattijsen)++ | S02-types/WHICH.t:
08:39 dalek roast: some more tweaks
08:39 dalek roast: review: https://github.com/perl6/roast/commit/c7383627da
08:40 FROGGS that shows it:
08:40 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]
08:40 camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤»
08:40 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0,1,2]
08:41 camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤1␤1␤1␤​1␤1␤1␤1␤2␤2␤2␤2␤2␤2␤2␤True True True␤»
08:41 lizmat afk for a few hours&
08:41 FROGGS o/
08:45 timotimo m: say (0..2).list.perl
08:45 camelia rakudo-moar a640aa: OUTPUT«(0, 1, 2).list␤»
08:45 timotimo m: say (0..2).list.elems
08:45 camelia rakudo-moar a640aa: OUTPUT«3␤»
08:45 timotimo :\
08:46 timotimo method infinite() { nqp::p6bool(nqp::istype($!max, Num)) && $!max eq 'Inf' } # ← is this a workaround? the eq part?
08:47 FROGGS looks like
08:49 * timotimo gets distracted too easily
08:49 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]; say POSITIONS($a, 0..2)
08:49 camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤0␤»
08:50 FROGGS m: say POSITIONS(my $a, 0..2)
08:50 camelia rakudo-moar a640aa: OUTPUT«␤»
08:50 FROGGS m: say POSITIONS(my $a = [], 0..2)
08:50 camelia rakudo-moar a640aa: OUTPUT«␤»
08:50 FROGGS m: say POSITIONS(my $a = [0], 0..2)
08:50 camelia rakudo-moar a640aa: OUTPUT«0␤»
08:50 FROGGS m: say POSITIONS(my $a = [0,1,2,3,4,5], 0..2)
08:50 camelia rakudo-moar a640aa: OUTPUT«0 1 2␤»
08:53 timotimo m: class Foo { method at_pos($p) { say "atpos $p"; Proxy.new: FETCH => method () { say "fetch $p" }, STORE =>-> | { } } }; my $a = Foo.new; say $a[0..2]; say POSITIONS($a, 0..2)
08:53 camelia rakudo-moar a640aa: OUTPUT«atpos 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤True␤0␤»
08:54 timotimo m: class Foo { method elems() { 5 }; method at_pos($p) { say "atpos $p"; Proxy.new: FETCH => method () { say "fetch $p" }, STORE =>-> | { } } }; my $a = Foo.new; say $a[0..2]; say POSITIONS($a, 0..2)
08:54 camelia rakudo-moar a640aa: OUTPUT«atpos 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤True␤0␤»
08:54 timotimo m: class Foo { method elems() { 5 }; method exists_pos($p) { 1 }; method at_pos($p) { say "atpos $p"; Proxy.new: FETCH => method () { say "fetch $p" }, STORE =>-> | { } } }; my $a = Foo.new; say $a[0..2]; say POSITIONS($a, 0..2)
08:54 camelia rakudo-moar a640aa: OUTPUT«atpos 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤True␤0␤»
08:55 timotimo m: class Foo { method elems() { say "elems"; 5 }; method exists_pos($p) { say "exists pos $p"; 1 }; method keys() { say "keys"; (0, 1, 2, 3, 4) }; method at_pos($p) { say "atpos $p"; Proxy.new: FETCH => method () { say "fetch $p" }, STORE =>-> | { } } }; my $a = Foo.new; say $a[0..2]; say POSITIONS($a, 0..2)
08:55 camelia rakudo-moar a640aa: OUTPUT«atpos 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤True␤0␤»
08:55 timotimo hm.
08:55 timotimo i don't know how this part of the whole thing works, tbh
08:57 FROGGS me neither
09:01 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]; say $a.gimme(0)
09:01 camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤No such method 'gimme' for invocant of type 'Foo'␤  in block <unit> at /tmp/8QvcsSRCIm:1␤␤»
09:01 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]; say $a.list.gimme(0)
09:01 camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤0␤»
09:01 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]; say $a.list.gimme(1)
09:01 camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤1␤»
09:01 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]; say $a.list.gimme(2)
09:01 camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤1␤»
09:01 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]; say $a.list.
09:01 camelia rakudo-moar a640aa: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/7mykzsYbTIâ�¤Missing semicolon.â�¤at /tmp/7mykzsYbTI:1â�¤------> [32m$a = Foo.new; say $a[0..2]; say $a.list.[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤        post…»
09:01 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]; say $a.list
09:01 camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤Foo.new()␤»
09:19 kjs_ joined #perl6
09:33 dakkar joined #perl6
09:33 anaeem1 joined #perl6
09:34 spider-mario joined #perl6
09:38 spider-mario joined #perl6
09:38 chenryn joined #perl6
09:51 virtualsue joined #perl6
09:54 itz joined #perl6
10:01 chenryn joined #perl6
10:02 brrt left #perl6
10:04 itz_ joined #perl6
10:23 chenryn joined #perl6
10:32 nine http://asrabkin.bitbucket.org/papers/oopsla13.pdf "Second, intrinsic features have only secondary importance in adoption. Open source libraries, existing code, and experience strongly influence developers when selecting a language for a project. Language features such as performance, reliability, and simple semantics do not."
10:49 carlin m: $*TZ=43200; say DateTime.new("2014-09-01T12:00:00Z").local
10:49 camelia rakudo-moar a640aa: OUTPUT«2014-09-02T00:00:00+1200␤»
10:49 carlin m: say DateTime.new("2014-09-01T12:00:00Z").local
10:49 camelia rakudo-moar a640aa: OUTPUT«2014-09-01T12:00:00Z␤»
10:51 carlin that's easier than getting camelia to do CTCP time requests :p
11:04 dalek rakudo/nom: 69d7051 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
11:04 dalek rakudo/nom: Hack a Parcel.WHICH solution
11:04 dalek rakudo/nom:
11:04 dalek rakudo/nom: Apparently, a Parcel created by the .Parcel method, consists of a ListIter
11:04 dalek rakudo/nom: as its only element.  Upon inspection, this is flattened, causing a problem
11:04 dalek rakudo/nom: with the .WHICH representation, as the immutable Parcel internally mutes.
11:04 dalek rakudo/nom: This fix will just expose the ListIter if the Parcel was created with
11:04 dalek rakudo/nom: .Parcel, and thereby create a WHICH that indicates the inherit mutability
11:04 dalek rakudo/nom: of a Parcel that is created that way.  Suggestions for a better solution
11:04 dalek rakudo/nom: are welcome.
11:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/69d7051ed0
11:04 lizmat $ 6 'my @a=^3; say @a.Parcel.WHICH'
11:04 lizmat Parcel|(ListIter|140616894388608)
11:07 salv0 joined #perl6
11:14 moritz why doens't the assignment flatten out the list?
11:14 moritz oh, .Parcel
11:14 * moritz blind
11:30 nuggs joined #perl6
11:32 nuggs I believe I said a goof here yesterday when I cried about rakudo on ARM.  I had built MoarVM with optimizations, which was segfaulting in 'optimize_bb'.  Now, having built MoarVM with debug enabled and optimizations disabled, I've built an nqp atop it (andd passed tests), and built a rakudo atop that (and passed tests, currently running spectests).
11:32 carlin what's the DateTime incantation to say: give me the second Sunday in March ?
11:32 nuggs My apologies for the bad report.
11:34 nuggs Which leads me to a question, is there a buildbot farm or a somesuch for the Perl 6 compiler chain that I could attatch an ARM build to?
11:54 dalek roast: 04d38c8 | Carlin++ | S32-temporal/local.t:
11:54 dalek roast: set $*TZ rather than requiring specific OS setup
11:54 dalek roast:
11:54 dalek roast: These tests will now run everywhere
11:54 dalek roast: review: https://github.com/perl6/roast/commit/04d38c8a3c
11:55 ggoebel1111112 nuggs++
11:56 ggoebel1111112 nine++
11:56 hoelzro_ morning #perl6
11:57 colomon \o
11:58 lizmat nuggs: [Coke] runs the closest thing we have to a buildfarm
12:01 nuggs lizmat: groovy.  You know if ARM is already in the mix?  (I'll try to ping him later)
12:01 lizmat pretty sure ARM isn't
12:03 nuggs Cool.  I'll try to sync up w/ Coke to see if I can provide some cycles there.  Thanks.
12:04 PerlJam joined #perl6
12:07 brrt joined #perl6
12:08 nuggs_ joined #perl6
12:10 lizmat commute to Amsterdam.PM meeting&
12:12 hoelzro_ is =pod considered special? or should it be considered as an abbreviated form of =for pod?
12:12 hoelzro_ I've been looking over S26, but that's not helping much =/
12:18 jerrycheung joined #perl6
12:26 firefish5000 joined #perl6
12:27 mr-foobar joined #perl6
12:29 nuggs make spectest on 32 bit arm, moar backend built without optimizations:
12:29 tadzik hoelzro: I don't think =pod is anything special
12:29 nuggs whups, crappy junky paste, here's a gist: https://gist.github.com/ano​nymous/1922aa1acd6fdfa6a02c
12:30 hoelzro tadzik: so would you say EVAL "=pod\nsay 1;" should or should not print something?
12:30 nwc10 nuggs: t/spec/integration/99problems-51-to-60.t is failing with ASAN on x86_64
12:30 nwc10 so I'd hope that that would pass with something like
12:30 nwc10 MVM_SPESH_DISABLE=1 ./perl6-m t/spec/integration/99problems-51-to-60.t
12:30 tadzik hoelzro: I don't see why it should
12:30 nwc10 if so, it's "known cross platform problem"
12:31 hoelzro tadzik: well, abbreviated POD blocks are supposed to continue to the next blank line, right?
12:32 tadzik hoelzro: yes
12:32 hoelzro so wouldn't =pod be the same as =for pod?
12:32 tadzik should
12:33 _thou joined #perl6
12:33 hoelzro so shouldn't =pod stop at that first newline, and thus the say would not be inside of it?
12:33 tadzik ooh
12:33 tadzik I see it now
12:33 tadzik yes, it should say "1"
12:33 tadzik imoh
12:34 hoelzro ok, then I'll update the ticket with that insight =)
12:34 hoelzro thanks for sanity checking =)
12:36 nuggs joined #perl6
12:36 PerlJam good * #perl6
12:37 nuggs nwc10: groovy, MVM_SPESH_DISABLE=1 did the trick there.
12:37 hoelzro o/ PerlJam
12:37 hoelzro oh, you know what? that's *not* a blank line
12:37 hoelzro "=pod\n\nsay 666" would be
12:37 * hoelzro is crazy
12:37 hoelzro commute &
12:37 nwc10 nuggs: what are you building on?
12:39 raiph joined #perl6
12:39 nuggs nwc10: an Ubuntu 14.04 chroot on a Samsung chromebook 2 (ocatcore thingy-dingy)
12:43 nwc10 ah OK
12:44 nwc10 I built it back in May on a Rasberry Pi
12:44 nwc10 not that fast
12:49 nuggs *octacore, even.  Heh, I bet that Pi build took a minute.
12:51 carlin NativeCall is amazing, can't say that enough
12:53 carlin Perl 6 makes C fun
12:53 [Coke] lizmat++ # avoiding failure on r-p
12:54 dalek specs: 9720a17 | (Stéphane Payrard)++ | S99-glossary.pod:
12:54 dalek specs: S99: entries related to Unicode, whitespace, comments
12:54 dalek specs: review: https://github.com/perl6/specs/commit/9720a17a9b
13:02 [Coke] Any Perl 6 L</token>s may or must be separated by tokens.
13:02 [Coke] from that commit. I think that whitespace node could a minor cleanup, otherwise looks good.
13:04 cognome WIP
13:10 korteland joined #perl6
13:14 chenryn joined #perl6
13:21 dalek specs: 10d91b4 | (Stéphane Payrard)++ | S99-glossary.pod:
13:21 dalek specs: S99: boolean context
13:21 dalek specs: review: https://github.com/perl6/specs/commit/10d91b460d
13:22 [Coke] cognome: tokens must be separated by tokens?
13:23 cognome yea, whitespaces are very special. Not sure if the spec call them tokens
13:24 PerlJam Why mention tokens at all if they 'may or must'?
13:25 PerlJam (i.e. it doesn't seem to relate directly to whitespace unless there are things that must be separated by whitespace)
13:25 kaare_ joined #perl6
13:27 dalek specs: 5c16468 | (Stéphane Payrard)++ | S99-glossary.pod:
13:27 dalek specs: S99: boolean related entries, attempt at fix whitespace
13:27 dalek specs: review: https://github.com/perl6/specs/commit/5c16468fa2
13:29 dalek specs: e517b60 | duff++ | S99-glossary.pod:
13:29 dalek specs: expand on whitespace a little
13:29 dalek specs: review: https://github.com/perl6/specs/commit/e517b60b45
13:30 PerlJam How about that definition?
13:30 cognome I love it
13:34 guru joined #perl6
13:34 anaeem1_ joined #perl6
13:35 anaeem1_ joined #perl6
13:36 PerlJam Is there some unicode character property for "whitespace"?
13:37 moritz PerlJam: "Separator", short "Z"
13:37 moritz (I think)
13:40 chenryn joined #perl6
13:40 dalek rakudo-star-daily: bb4abf4 | coke++ | log/ (14 files):
13:40 dalek rakudo-star-daily: today (automated commit)
13:40 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/bb4abf4b39
13:41 ajr joined #perl6
13:42 telex joined #perl6
13:58 kaleem joined #perl6
14:13 jerrycheung joined #perl6
14:16 [Coke] https://rt.perl.org/Ticket/Display.html?id=72844 is closable now, yes?
14:20 PerlJam p6: say() for ^3;
14:21 PerlJam p6: say for ^3;
14:21 camelia rakudo-{parrot,jvm,moar} 69d705, niecza v24-109-g48a8de3: OUTPUT«␤␤␤»
14:21 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![3​1m===[0mâ�¤â�¤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/tmpfile line 1:â�¤------> [32msay[33mâ��[31m for ^3;[0mâ�¤â�¤Unhandled exception: Check f…»
14:21 camelia ..rakudo-{parrot,jvm,moar} 69d705: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Unsupported use of bare 'say';  in Perl 6 please use .say if you meant $_, or use an explicit invocant or argumentâ�¤at /tmp/tmpfile:1â�¤------> [32msay [33mâ��[31mfor ^3;…»
14:21 PerlJam [Coke]: looks like it to me (Assuming there are appropriate tests in roast)
14:22 guru joined #perl6
14:24 guru joined #perl6
14:24 raiph joined #perl6
14:24 PerlJam huh ... looks like there's an extra space between the semicolon and "in Perl 6" in Rakudo-land as compared with niecza
14:29 brrt joined #perl6
14:35 jdv79 so here's a probably irritating question but its vaguely important to me - what would it take to get perl6 compilation to not use so much memory?
14:36 jdv79 the mast stage is where my box ran out of mem
14:37 anaeem1_ joined #perl6
14:37 dalek specs: ca2464c | (Stéphane Payrard)++ | S99-glossary.pod:
14:37 hoelzro does func; and func(); actually parse differently?
14:37 dalek specs: S99: more entries
14:37 dalek specs: review: https://github.com/perl6/specs/commit/ca2464c9e6
14:38 TimToady jdv79: it would take separate compilation of the pieces of the setting, probably
14:39 TimToady hoelzro: you'll have to define your threshold for "differently"
14:40 PerlJam hoelzro: for the case where "func" is really "say", the answer is clearly "yes"  ;)
14:41 Woodi hallo perlers :)
14:41 dalek rakudo/nom: 83a5f52 | duff++ | src/Perl6/Grammar.nqp:
14:41 dalek rakudo/nom: Remove extra spaces
14:41 dalek rakudo/nom:
14:41 dalek rakudo/nom: worryobs() and sorryobs() throw X::Obsolete which already puts a
14:41 dalek rakudo/nom: space before $.when in the message.
14:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/83a5f52bb0
14:41 jnthn jdv79: "Lots of little things"
14:42 jnthn jdv79: Which is an equally annoying answe rat least
14:42 jnthn *answer
14:43 jnthn jdv79: The way we generate bytecode likely will change at some point to something that doens't build a huge tree and then turn it into binary stuff, to instead be something more direct/incremental.
14:44 jnthn hoelzro: In terms of "grammar rule used to parse it", yes, certainly differen.t
14:44 brrt jnthn: what do you mean? :-)
14:44 yoleaux 1 Sep 2014 16:29Z <timotimo> brrt: if we could see "beginning of inlined frame for function $foobar" in the jit log, that'd be interesting
14:44 yoleaux 1 Sep 2014 16:30Z <timotimo> brrt: for example, i see !cursor_pass only jitted like 50% of the time, spesh'd the other 50%, but in the jit log i can only see successful jittings of that frame, so it's probably in-lined versions of that otherwise?
14:44 yoleaux 1 Sep 2014 19:46Z <japhb_> brrt: Sorry I missed you, please ping me again when you're back
14:45 brrt timotimo i see what you mean
14:45 brrt .tell japhb_ i'm back (for 45 minutes or so)
14:45 yoleaux brrt: I'll pass your message to japhb_.
14:45 jnthn brrt: I think we'll end up with an API more like the ASM code-gen lib on the JVM
14:45 brrt hmmm
14:46 brrt as in, moarvm bytecode?
14:46 brrt interesting
14:46 jnthn Yes
14:46 jnthn I don't have a design yet, and it's not high priority
14:46 brrt hmm
14:47 brrt wingolog has yet another entry on the use of luajit-as-a-trace-compiler for packet filtering
14:47 Woodi I sometimes feel "forced" in Perl to use hashes instead of standard struct/record-like objects... Parcels could be such struct-like thing. hovewer specced Parcels looks a bit array-ish, maybe like degenerate Capture...
14:47 brrt or in other words, OMG THERE IS SO MUCH WORK STILL TO DO
14:48 TimToady Woodi: you're wanting classes, not parcels
14:48 PerlJam heh ... "standard"
14:48 TimToady and we already support native classes to some extent
14:49 jnthn *sigh* why on earth does my SSH connectkion keep getting protocol errors... :/
14:50 hoelzro PerlJam: yes =)
14:50 hoelzro TimToady: what PerlJam said
14:50 hoelzro so say is special?
14:50 Woodi TimToady: but class could be overkill sometimes...  and discusion at  http://perlcabal.org/syn/S02.html#Parcels,_parameters,_and_Captures   could be simplified just by having record/struct type
14:50 Woodi parcels/captures/signatures...
14:52 TimToady m: say (1,(2,3),4).elems
14:52 camelia rakudo-moar 69d705: OUTPUT«3␤»
14:54 jnthn hoelzro: say parses differently to say(), but I'd not say that "say" is special in any way...what makes you ask that?
14:55 TimToady it's special in the sense that P5 programmers will expect bare say to default to $_
14:55 TimToady but other than that, not, it's just a listop/function
14:58 dalek roast: 6f52902 | TimToady++ | integration/advent2013-day10.t:
14:58 dalek roast: :kv no longer returns parcels of (k,v)
14:58 dalek roast: review: https://github.com/perl6/roast/commit/6f52902317
15:00 hoelzro jnthn: well, PerlJam's experimentation with say vs say() above
15:00 hoelzro jnthn: does arbitrary-func parse differently from arbitrary-func(), then?
15:00 hoelzro I mean, is the resulting parse tree different?
15:00 brrt jnthn: great firewall still?
15:02 jnthn hoelzro: Parse tree, yes. QAST tree, no, afaik.
15:02 jnthn brrt: Well, it's only happened since I started using this connection to tunnel stuff over. So maybe it's an attempt to sabotage it.
15:03 brrt ugly stuff
15:04 * jnthn treats it as a great advance in internet connectivity, to go along with the last copule of day's great advancs in democracy in Hong Kong :P
15:05 TimToady hoelzro, jnthn: actually the parse is slightly different these days, insofar as foo() allows semicolons in the argument list, while foo; doesn't
15:05 jnthn TimToady: Oh, hm. :)
15:06 brrt uh, i have no news at all from Hong Kong here
15:06 jnthn the listop form kinda can't, no? :)
15:06 brrt dutch media has totally ignored anything that might have changed
15:07 jnthn brrt: There was a decision that basically means that there are elections in Hong Kong, but Beijing gets to pick who is elligible to stand for election.
15:09 jnthn brrt: It's not a *surprising* ruling, though understandably not one everyone is happy with.
15:10 brrt ... i can imagine
15:11 brrt that really puts the western political landscape into perspective
15:11 jnthn (the "great advance to democracy" comment was actually a quote from the morning news paper :))
15:12 firefish5000 joined #perl6
15:15 [Coke] m:  my $a = class { has $a; }; say $a.new(a => 1).perl;
15:15 chenryn joined #perl6
15:15 camelia rakudo-moar 69d705: OUTPUT«<anon>.new()␤»
15:17 [Coke] moritz, TimToady: what is the expected output of the last bit of code on https://rt.perl.org/Ticket/Display.html?id=77474 ?
15:18 [Coke] FYI, the current output is 1 0
15:19 TimToady http://rosettacode.org/wiki/Hamming_numbers
15:20 TimToady but we need the list refactor before that has a hope of working
15:20 [Coke] so, "1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 36" is the expected output?
15:21 TimToady yes, if Perl 6 were as good as Haskell at recursive definitions...
15:23 [Coke] added [LIST] to that ticket to indicate it's blocked on the list refactor. Feel free to do the same to other similarly blocked tickets.
15:23 [Coke] masak: RT #64766 "Possibly ..."
15:23 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=64766
15:24 TimToady I suspect we need to be able to block a gather/take on more than just a take, but also when needed information is not yet generated
15:25 TimToady so practically speaking it might depend on some transformation that runs some of our lazy code with push semantics rather than just pull
15:27 TimToady but maybe not
15:27 jnthn TimToady: Is there much in the way of a concrete plan for the list refactor?
15:27 [Coke] (just another ticket with a suspiciously vague title)
15:29 TimToady jnthn: lock you and me and pmichaud in the same room for a month maybe? :)
15:29 TimToady I'm feeling my way into it from various directions
15:29 jnthn That sounds effective if it's feasible :P
15:30 dalek perl6-roast-data: 301112e | coke++ | / (6 files):
15:30 dalek perl6-roast-data: today (automated commit)
15:30 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/301112e8c7
15:31 TimToady many of my recent changes have been pushing at the list code, from gather/take and the various listop optimizations to the recent .plan and parcel stuff
15:31 [Coke] looks like that fix for parrot didn't fix the broken tests.
15:32 TimToady but I still don't understand the reify/REIFY dance
15:32 jnthn Yes, I've noticed you've been digging into the code...
15:32 TimToady there's a lot of 3) ??? in there
15:33 jnthn I think I've sorta learned how it works 3 times by now. Maybe that's a properly of things involving laziness. :)
15:33 jnthn *property
15:34 TimToady what I want to get to eventually is that all this dataflow policy is detached from the actual dataflow, so the policy ends up generating functions that have optimized policies baked in, and are just called directly to get the next value or values
15:34 TimToady currently gimme and reify intermix policy and dataflow
15:35 TimToady so in the absence of heroic speshing, nothing can be optimized
15:35 jnthn The present situation is certainly hard to spesh
15:36 jnthn It'd be nice if sink-context for loops had an API to iterators where they could make a call to a (small, inlinable) method on an iterator to get the next available value in the common case.
15:36 TimToady an analog is the current slicing, where a great deal of decision making could be done once instead of every time you slice
15:37 jnthn That way, the loop body could be flattened into the surroundings, as well as logic to access the next value in the common cases.
15:37 TimToady yes, that's the basic idea
15:38 jnthn C# gets to have it that way somewhere between its 50 passes. :)
15:38 jnthn And the results are pretty speedy. At least, there's not really a "don't use enumerators" meme about. :)
15:38 TimToady policy channels and higher-order functions that can often be known at compile time
15:40 jnthn OK, sonds good.
15:40 TimToady or if not known at compile time, at least providing simple run-time functions that can spesh/jit
15:40 jnthn *sounds
15:40 fhelmberger joined #perl6
15:43 * TimToady has the skill of sounding good even when he's bad.  :)
15:45 TimToady darn, someone drank my first cup of coffee, gotta go get smoar
15:45 * PerlJam starts working on a TPF grant to pay for having jnthn, TimToady, and pmichaud kidnapped and locked in a room.
15:47 FROGGS TimToady: have you seen this?
15:47 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0,1,2]
15:47 camelia rakudo-moar 83a5f5: OUTPUT«0␤0␤0␤0␤0␤0␤0␤1␤1␤1␤​1␤1␤1␤1␤2␤2␤2␤2␤2␤2␤2␤True True True␤»
15:47 timotimo is probably less expensive to not kidnap them
15:47 FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]
15:47 camelia rakudo-moar 83a5f5: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤»
15:47 mr-foobar joined #perl6
15:47 FROGGS TimToady: I don't see offhand what need to be fixed... perhaps sub POSITIONS?
15:48 moritz FROGGS: method elems?
15:48 TimToady slicing ranges requires a working .gimme, and I suspect proxies are missing that
15:48 treehug88 joined #perl6
15:48 FROGGS moritz: the changed .elems might have introduced the problem, aye
15:49 moritz FROGGS: I wanted to say that maybe slicing calls .elems (at least in some situations)
15:50 TimToady on range slicing we never call .elems because the base list might be too long to calculate it
15:50 TimToady it calls .gimme($_+1)
15:51 FROGGS here https://github.com/rakudo/rakudo/b​lob/nom/src/core/array_slice.pm#L6
15:51 TimToady so it's perhaps not tranforming to a proper list with .list
15:51 FROGGS so we put the pos ~~ Range case in its own branch an do something fancy?
15:51 TimToady you can't call .elems there
15:51 TimToady believe me, i tried
15:52 FROGGS or... I mean... we could check that SELF is a proxy perhaps
15:52 TimToady .roll(*)[^100] will never return if you doo
15:52 FROGGS ohh, no, the at_pos returned a proxy, SELF isnt one
15:53 TimToady the current loop assumes that .gimme will return a true value
15:53 TimToady maybe that's not true somehow
15:54 TimToady .oO(current loop vs RS-232, ancient history...)
15:54 FROGGS TimToady: .gimme($_ + 1) returns 1 for $_ being 1
15:55 FROGGS so it lasts
15:55 FROGGS RS-232? O.o
15:56 TimToady yeah, that newfangled stuff
15:56 TimToady the ttys like current loop better
15:59 TimToady m: say Bool.roll(*).infinite
15:59 camelia rakudo-moar 83a5f5: OUTPUT«Nil␤»
16:00 TimToady another thing that is difficult in the current list model is passing knowledge of the infinite backwards
16:00 TimToady a parcel containing an infinite term does not automatically become infinite, for instance, and doing so appears to be difficult in the current model
16:02 dalek specs: 197e481 | (Stéphane Payrard)++ | S99-glossary.pod:
16:02 dalek specs: S99: more entries, typos, reordering
16:02 dalek specs: review: https://github.com/perl6/specs/commit/197e481329
16:03 TimToady purity also needs to be propagated along with infinity; infinity says we must do things in batches, while purity says we may do things in batches without much worry about side effects, other than using up too many resource conjecturally
16:04 TimToady (by "must do things in batches" I do not mean that the batches have to be larger than 1, but that they must be smaller than infinity)
16:04 * PerlJam suddenly gets the feeling we're reinventing lisp
16:04 TimToady WHERE HAVE YOU BEEN!?!
16:04 TimToady but we're really not
16:05 TimToady in the sense that Lisp made some bad mistakes, and we're trying to avoid them
16:05 PerlJam sure ... I just don't see that right now  :)
16:05 TimToady linked lists are a terribly way to approach parallel processing
16:06 TimToady *ble
16:06 dalek specs: b6658f6 | (Stéphane Payrard)++ | S99-glossary.pod:
16:06 dalek specs: S99: correct many malformed links
16:06 dalek specs: review: https://github.com/perl6/specs/commit/b6658f64dc
16:06 TimToady the FP community is still trying to recover from that
16:07 TimToady and Lisp itself was pretty cavalier about the subject of purity, compared to some of its offspring
16:08 TimToady especially Haskell
16:09 TimToady we probably need a way to mark our gathers as pure or impure, for instance
16:10 TimToady though we can probably detect that some gathers have no external side effects, so are effectively pure from a batching standpoint
16:11 FROGGS TimToady: I'm spectesting that now: https://gist.github.com/FR​OGGS/402a9735c371aa43d157
16:12 FROGGS the nativecall test passes and also Bool.roll(*)[^100]
16:12 rindolf joined #perl6
16:12 TimToady you've probably broken autotruncation though
16:12 FROGGS yeah, spectests got stuck already >.<
16:15 kurahaupo TimToady: when you say linked lists are a terrible way to approach to parallelism, which ways? Obviously the O(n) access is slow, or is there some other aspect to consider
16:15 [Sno] joined #perl6
16:16 fhelmberger joined #perl6
16:17 TimToady kurahaupo: well, http://xahlee.info/comp/Guy_S​teele_parallel_computing.html for instance
16:18 moritz kurahaupo: basically, trees are much better suited for divide-and-conquer, and you can parallelize the divided tasks
16:20 FROGGS dinner &
16:20 kurahaupo ok, I'll have a read, thanks
16:20 TimToady historically, most FP languages have enforce a head/tail view of divide/conquer, and that doesn't scale
16:20 TimToady *enforced
16:21 FROGGS jnthn: when you have some brane cells left, can you take a look at the last line of https://github.com/jnthn/zavolaj/issues/11 ?
16:21 TimToady well, strongly defaulted to, perhaps not enforced
16:21 TimToady these languages are turing complete, after all
16:21 TimToady kurahaupo: so P6 has lists, but they are not based on => cells
16:23 TimToady of course, in all fairness, we should point out that Guy Steele's new language, Fortress, turned out to be a failure, at least as far as corporate sponsorship goes
16:23 TimToady fortunately, that's not the only way for a computer language to succeed :)
16:28 grondilu joined #perl6
16:28 TimToady anyway, that is why good Perl 6 style avoids accumulators, but uses things like reductions and hypers instead
16:28 rindolf joined #perl6
16:29 grondilu m: class Foo { method at_pos($n) { max(0, $n) } }; say Foo.new[-1];
16:29 camelia rakudo-moar 83a5f5: OUTPUT«Unsupported use of [-1] subscript to access from end of Foo; in Perl 6 please use [*-1]␤  in method gist at src/gen/m-CORE.setting:13294␤  in sub say at src/gen/m-CORE.setting:14249␤  in block <unit> at /tmp/Xje1UOBXMS:1␤␤»
16:29 grondilu ^this is a bit annoying.
16:29 TimToady and why we need to extend hyper semantics from operators to list functions like map
16:30 kurahaupo TimToady: ok, so the wisdom on automatic parallelism hasn't really changed much in 20 years, just been fine-tuned a bit. I just wanted to make sure I wasn't too out of date.
16:31 * grondilu suggest the 'unsupported use of [-1]' error only applies to classes in the core.
16:31 TimToady as usual, the devil is in the details
16:32 * TimToady suggests not violating the [] contract, but using {} instead, as S09 suggests
16:32 TimToady P5 got into bad trouble trying to make [] origins other than 0
16:33 * grondilu looks in S09
16:33 TimToady that part of S09 is NYI, of course :)
16:34 grondilu haha
16:34 grondilu oh sorry I thought you meant "not written yet"
16:37 * kurahaupo wonders what hyper-map would do
16:38 TimToady not care what order the mapping is done, as long as the order of results is conserved
16:38 TimToady if you don't care about the latter, it's called "race" instead of "hyper"
16:39 kurahaupo oh, just ordinary functional map then
16:40 TimToady yes, fsdo functional not including various funtional programming languages :)
16:40 TimToady in the sense that they enforce order despite the supposed purity of the function
16:41 shlomif joined #perl6
16:41 kurahaupo hypermap is easier to implement if the return value of the function is of fixed arity
16:41 TimToady well, sure
16:41 TimToady except, in p6think, it's always fixed arity of 1
16:42 TimToady since map returns parcels
16:42 TimToady and a .flat is needed somewhere if you mean it
16:42 grondilu m: class Foo { method postcircumfix:<{ }>($n) { max(0, $n) } }; say Foo.new{-1};  # this is OK, right?
16:42 camelia rakudo-moar 83a5f5: OUTPUT«postcircumfix:<{ }> not defined for type Foo␤  in method gist at src/gen/m-CORE.setting:13294␤  in sub say at src/gen/m-CORE.setting:14249␤  in block <unit> at /tmp/EDbHkwYCne:1␤␤»
16:43 TimToady m: say (1..3).map({ 'x' xx $_}).perl
16:43 camelia rakudo-moar 83a5f5: OUTPUT«(("x",), ("x", "x"), ("x", "x", "x")).list␤»
16:43 * kurahaupo needs to go reread the synopses; stuck in P5-land for $DAYJOB
16:43 TimToady m: say (1..3).map({ 'x' xx $_}).elems
16:43 camelia rakudo-moar 83a5f5: OUTPUT«3␤»
16:43 TimToady see, exactly 3 results (as of last night :)
16:44 TimToady so it will be perfectly natural to implement hyper-map to return an array of parcels by default
16:45 TimToady and each thread can just plonk its results into a known position
16:46 kurahaupo TimToady: is there a reason not to have map do "random order" by default?
16:46 TimToady because we aren't interested in forcing people to do FP
16:47 TimToady we want to integrate well with non-FP paradigms as well
16:47 TimToady so maps can be stateful by default
16:49 TimToady when it can be proven that a map is not stateful or side-effective, it can be automatically hypered, but we're not going to assume it from the start, unless you call hyper map
16:49 kurahaupo I'd just like to see Huffman favour FP
16:49 domidumont joined #perl6
16:50 TimToady well, but lazy is also FP :)
16:50 cognome { ([\*] 1..*)[*-1] }(20)  # should the 1..* computed lazily here?
16:50 TimToady and we assume that, so we can't also assume hyper, which is kind of the opposite
16:50 kurahaupo oh, right
16:51 kurahaupo erm, hang
16:51 kurahaupo on
16:51 TimToady lazy -> batchy -> eager -> hyper -> race
16:51 kurahaupo not necessarily
16:51 TimToady one could, of course, have a pragma to default it the other way
16:52 kurahaupo lazy at the top level can still chose sequenced/race/all later
16:52 TimToady sure, and batching lazy things where we can is considered cache friendly
16:52 TimToady that's why we're talking about a big list refactor
16:53 TimToady but this really needs to be negotiated between supplies and demands, not enforced one way or another in the lexical scope
16:55 TimToady in fact, batchy probably wants to be subdivided into constant batches and scaling batches
16:55 TimToady the latter working like TCP slow-start
16:56 TimToady currently Range objects batch up to about a 1000 values, iirc, but that's wasteful if you're initializing a 10 element array
16:56 TimToady so an implementation that produces a larger batch each time could scale nicely
16:56 TimToady both up and down
16:57 * timotimo is idly wondering if we should have an nqp:: op that initializes a list with values from $start to $end increasing by $step or something like that
16:58 TimToady well, you can go further and constant fold a range, if it's not to memory intensive; I hacked this into P5 at one point
16:58 TimToady *too
16:59 PerlJam In a more magical world lists wouldn't need to reify all of the elements either, just the ones you want  ;)
16:59 timotimo i *think* we already create the Range instance at optimize-time
16:59 timotimo which doesn't vivify the list yet
16:59 TimToady well, we're lazy by default :)
16:59 timotimo right
16:59 TimToady but that should just be the default default, in the absence of other information
16:59 timotimo what does "constant folding a range" mean?
17:00 TimToady we're just not very good at distributing the other information yet
17:00 timotimo aye
17:00 TimToady 10..20 is a constant, it just happens to contain 11 subvalues
17:00 timotimo mhm
17:01 TimToady you can lay those out in memory at compile time if you like, and not even need an nqp op
17:01 timotimo well, a $known_to_be_range[$a] can just be $a.Int + $known_to_be_range.start if $a < $known_to_be_range.end
17:01 timotimo and having a for loop over a range already turns into a while loop
17:02 grondilu m: say (i**2).WHAT # is there a particular reason not to automatically narrow when possible?
17:02 TimToady well, the optimization does not make as much sense these days, when caches are much faster than memory
17:02 camelia rakudo-moar 83a5f5: OUTPUT«(Complex)␤»
17:02 TimToady otoh, sequential access to memory is usually pretty fast too
17:02 TimToady what with prefetching
17:03 TimToady m: say (i*i).WHAT
17:03 camelia rakudo-moar 83a5f5: OUTPUT«(Complex)␤»
17:03 TimToady well, Complex are intentionally a bit sticky, since otherwise your sqrt will misbehave
17:04 TimToady m: say sqrt(-(i*i))
17:04 camelia rakudo-moar 83a5f5: OUTPUT«1+-0i␤»
17:04 TimToady m: say sqrt(i*i)
17:04 camelia rakudo-moar 83a5f5: OUTPUT«6.12323399573677e-17+1i␤»
17:04 TimToady if you narrow that, it fails
17:04 TimToady m: say sqrt (i*i).narrow
17:04 camelia rakudo-moar 83a5f5: OUTPUT«NaN␤»
17:05 jack_rabbit joined #perl6
17:05 itz_ m: say $*DISTRO
17:05 camelia rakudo-moar 83a5f5: OUTPUT«linux (3.2.0.37.generic)␤»
17:05 itz_ m: say $*KERNEL
17:05 camelia rakudo-moar 83a5f5: OUTPUT«linux (30.Ubuntu.SMP.Wed.May.1.16.35.23.UTC.2013)␤»
17:05 itz_ why does the distro name appear in kernel and noit in distro?
17:06 grondilu well, it could be possible to define multi sqrt(Real $x where $x < 0) returns Complex {...}
17:06 TimToady it was discussed whether sqrt of a negative number should always just produce a complex, but not everyone wants to suddemly be dealing with the complex plane
17:06 grondilu as opposed to multi sqrt(Real $x) returns Real
17:06 rindolf joined #perl6
17:06 grondilu ok
17:06 TimToady there's a lot of tradition for that decision as well
17:07 TimToady so we made Complex a bit stickier instead
17:07 TimToady rather like BigRats are sticky
17:08 grondilu that's fine.  I can understand doing otherwise would hurt a principle of least surprise or something like that, with complicated types suddenly showing up.
17:11 gfldex joined #perl6
17:11 anaeem1_ joined #perl6
17:19 rindolf joined #perl6
17:25 itz_ hmmm maybe I should try and compile on Debian GNU/kFreeBSD to check KERNEL v DISTRO :>
17:29 [Coke] lots of failing tests in nqp's prove -v t/docs
17:31 [Coke] http://feather.perl6.nl/~coke/ops_need_docs.out
17:32 [Coke] timotimo: ^^ there's another boring job. :)
17:33 muraiki_ joined #perl6
17:34 muraiki joined #perl6
17:34 BizarreCake joined #perl6
17:35 cognome [coke] why a documented opcode would fail?
17:35 FROGGS [Coke]: not ok 1258 - documented op '' exists in moar
17:36 grondilu m: say (my %h{Int} of Real).WHAT; # how can I give a name to this type?
17:36 camelia rakudo-moar 83a5f5: OUTPUT«(Hash[Any,Int][Real])␤»
17:36 grondilu something like  subset Vector of ???
17:36 FROGGS cognome: what line do you mean?
17:36 cognome not ok 5 - Opcode 'ctxouterskipthunks' (parrot;jvm;moar) is documented
17:37 [Coke] hoelzro: https://rt.perl.org/Ticket/Display.html?id=71812
17:37 [Coke] look at the tags.
17:37 grondilu (subset Vector of Hash[Any,Int][Real] does not work)
17:37 [Coke] FROGGS: that is slightly less LHF. no idea why that's finding an empty opcode name
17:38 [Coke] cognome: that opcode is not documented, so the test fails.
17:38 [Coke] docs are in nqp's docs/ops.markdown
17:40 cognome [Coke] where is the script that generates these errors
17:41 rindolf joined #perl6
17:44 [Coke] t/docs/opcodes.t
17:44 [Coke] there's another one that checks to see if the opcodes are tested.
17:44 dalek specs: af7df45 | (Kamil Kułaga)++ | S26-documentation.pod:
17:44 dalek specs: --doc=html
17:44 dalek specs:
17:44 dalek specs: s//html/HTML
17:44 dalek specs: review: https://github.com/perl6/specs/commit/af7df45903
17:44 dalek specs: 25bbfb5 | (Tobias Leich)++ | S26-documentation.pod:
17:44 dalek specs: Merge pull request #68 from teodozjan/master
17:44 dalek specs:
17:44 dalek specs: --doc=html
17:44 dalek specs: review: https://github.com/perl6/specs/commit/25bbfb52ec
17:44 hoelzro [Coke]: thank you sir =)
17:44 cognome [coke] I mean in each repository?
17:44 cognome * which
17:45 FROGGS cognome: nqp
17:48 Ven joined #perl6
17:54 [Coke] cognome: https://github.com/perl6/nqp/tree/master/t/docs
17:55 Ven well met, #perl6
17:56 timotimo hmm
18:02 hoelzro o/ Ven
18:02 cognome \o Ven-erable
18:02 Ven oh please.
18:03 TimToady it is the ending of one age, and the beginning of another...
18:03 huf joined #perl6
18:04 TimToady but all I know is my toes are hairy
18:04 timotimo TimToeHairy?
18:04 Ven "Free is a lie" is an incredible talk by Aral Balkan
18:04 Ven timotimo++ # eh
18:04 TimToady well, at least lies are free :)
18:04 TimToady well, some of 'em...
18:05 TimToady .oO("Those words fall too easily from your lips.")
18:05 timotimo "free() is a lie"?
18:06 Ven timotimo: yes. please use MVM_free instead
18:07 TimToady "MVM_Free!" —MVM_Pseudolus
18:07 hoelzro MVM_free your mind
18:08 TimToady MVM_free Beer!
18:09 rindolf joined #perl6
18:12 molaf__ joined #perl6
18:12 hoelzro should it be possible to have an empty table in POD?
18:12 hoelzro ex. EVAL "=for table\n"
18:14 PerlJam er, that would have to be "=for table\n\n" wouldn't it?
18:14 PerlJam (and IMHO, yes, it should be possible)
18:15 hoelzro alright, just sanity checking =)
18:15 kjs_ joined #perl6
18:16 PerlJam Maybe as a lint-check or with warnings turned up a little, an empty pod directive should carp about it though.
18:17 PerlJam er, perl should carp about it.
18:19 nine PerlJam: think about the use case of quickly editing some code, probably copy&pasting and such. Being too strict about senseless constructs can be annoying.
18:21 PerlJam yeah, I'm all about Postel's Law
18:24 rindolf joined #perl6
18:32 nine Is there a way to force a GC run?
18:34 BizarreCake joined #perl6
18:37 FROGGS nine: programatically?
18:37 FROGGS or just for testing?
18:38 nine joined #perl6
18:38 nine Is there a way to force a GC run?
18:38 PerlJam Someone should write a module to expose GC to the Perl 6 programmer.
18:39 PerlJam nine: FROGGS was asking if you wanted this "programmatically" or "just for testing"?
18:40 nine For programmatic testing ;)
18:40 raiph joined #perl6
18:40 nine I want to write tests that check if Perl 6 objects referenced from Perl 5 objects survive a GC run.
18:40 FROGGS nine: look at MoarVM/src/gc/collect.h
18:41 FROGGS nine: you can reduce the MVM_NURSERY_SIZE to about 600, then it will collect very often
18:42 FROGGS but do not try to build nqp or rakudo this way, just do it for your test, and undo it afterwards
18:42 lizmat joined #perl6
18:43 cognome .u ⦄
18:43 yoleaux U+2984 RIGHT WHITE CURLY BRACKET [Pe] (⦄)
18:45 cognome where is the code for yoleaux .u?
18:47 virtualsue joined #perl6
18:47 * [Coke] guesses https://github.com/dpk/yoleaux
18:49 cognome Indeed it answers to the requests described in http://dpk.io/yoleaux
18:50 cognome .mangle Larry owns the colon
18:50 yoleaux cognome: Sorry, that command (.mangle) crashed.
18:51 brrt joined #perl6
18:51 brrt \o
18:56 spider-mario joined #perl6
18:59 spider-mario joined #perl6
19:03 sqirrel joined #perl6
19:09 nine FROGGS: I could call MVM_gc_collect using NativeCall ;) But then I'd have to get my hands on the MVMThreadContext* somehow and that doesn't seem to be exposed either...
19:12 telex joined #perl6
19:15 * brrt would advise against it
19:17 Ven joined #perl6
19:17 vendethiel joined #perl6
19:18 TimToady teach the memory allocator that a certain huge number means "not really", and then allocate that number of bytes; GC runs, then the allocator says, oops, nevermind :)
19:20 TimToady then you hope that no real code asks for 12345678987654321 bytes, or whatever you picked...
19:20 TimToady or maybe just do that on a negative request :)
19:27 cooper joined #perl6
19:27 cooper joined #perl6
19:32 kjs_ joined #perl6
19:34 brrt yeah, i'm totally no authority on it, but i regard programmatic interface to vm internals of a fairly low priority
19:34 brrt we may want to change those internals :-)
19:40 nine Well there seems to be a HLL::Backend::MoarVM::force_gc but it's not yet implemented.
19:42 BizarreCake joined #perl6
19:43 brrt hmm
19:45 brrt i'm not sure if this is an entirely good way to spend an evening, but i suppose it could be hacked together
19:45 brrt let me ask it another way
19:45 brrt what is helped by it?
19:47 virtualsue joined #perl6
19:47 nine brrt: I'd like to write tests that check if Perl 6 objects referenced only from Perl 5 objects survive a GC run.
19:47 brrt hmmm
19:47 brrt i see
19:48 PerlJam brrt: I dunno, but it seems like a reasonable thing that people working on making Rakudo interoperate with other languages would want to do in order to test their imeplementation.   i.e.  It could help the Inline::Ruby and Inline::Python and Inline::Whatever implementors actually make an implementation.
19:49 brrt fair enough
19:49 brrt let me see if i can make something quick for you
19:49 brrt (the cost is btw adding an op to moarvm. i'd argue that moarvm has plenty of op-space, but then again, i'm hardly authoritive)
19:57 brrt hmm
19:57 brrt the designspace is somewhat bigger than my brane
19:57 brrt i'll keep it in mind, though
19:59 brrt left #perl6
20:11 hoelzro m: try { EVAL "die 'nothing'" ; CATCH {} }
20:11 camelia rakudo-moar 83a5f5: OUTPUT«nothing␤  in block <unit> at EVAL_0:1␤  in any <unit-outer> at EVAL_0:1␤  in sub EVAL at src/gen/m-CORE.setting:745␤  in block <unit> at /tmp/kHzZEW2X8y:1␤␤»
20:12 hoelzro how does one catch exceptions from an EVAL?
20:13 timotimo with try
20:13 timotimo your code is correct except it doesn't mark the exception as handled
20:13 timotimo m: try { EVAL "die 'nothing'" ; CATCH { default { } } }
20:13 camelia rakudo-moar 83a5f5: ( no output )
20:13 hoelzro ah ha, thanks timotimo
20:14 FROGGS you just have to call .Bool on the exception (that is what the default block does)
20:15 hoelzro interesting
20:16 FROGGS that is how if-clausing a Failure makes it not explode
20:16 hoelzro oh, that makes sense
20:17 FROGGS yeah, a very thought through principle
20:17 timotimo right
20:18 pyrimidine joined #perl6
20:19 vendethiel uh, ocaml added open types back in
20:19 vendethiel backed in*
20:43 timotimo is base.t known t ob9rk?
20:44 timotimo b0rk*
20:45 timotimo # expected: '0.0000000000000000000010'
20:45 timotimo #      got: '0.012345678901234567890123456789012345678901234​567890123456789012345678901234567890123456789012​345678901234567890123456789012345678901234567890​123456789012345678901234567890123456789012345678​90123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
20:45 timotimo and i'm failing a bunch of TZ related tests
20:48 timotimo can folks try the dynamic_gen2_tuning branch of MoarVM against different kinds of workloads?
20:48 timotimo especially multi-threaded stuff would be good
20:51 Tony_ joined #perl6
20:51 Tony_ Hello?
20:51 PerlJam Tony_: hi!
20:51 Tony_ Cool.
20:51 timotimo hi there
20:52 cognome r:  say ', 2' ~~ m/',' 2/
20:52 guru joined #perl6
20:52 Tony_ So, I'm trying to Perl for a programming languages course. Choosing between 6 and 5. Can you guys tell me the main differences? Pros, cons, etc.
20:52 camelia rakudo-{parrot,jvm,moar} 83a5f5: OUTPUT«False␤»
20:52 Tony_ *to learn
20:52 cognome r:  say ', 2' ~~ m/','\s2/
20:53 camelia rakudo-{parrot,jvm,moar} 83a5f5: OUTPUT«「, 2」␤␤»
20:53 cognome ho, I am thinking in Perl 5 again :(
20:54 cognome need to learn to unlearn or to switch fast :(
20:55 PerlJam Tony_: they are different languages.  Perl 5 is more established and has CPAN.  Perl 6 is newer and has many things built-in that Perl 5 does not and it does not really have a CPAN yet (it will have CPAN soon, in the mean time it has modules.perl6.org)
20:56 PerlJam Tony_: If I were you, I'd probably try Perl 6 for the course.
20:56 Tony_ mmmk
20:57 cognome Tony_, without wanting, I just proved that it takes some effort to switch your muscle brain from one to the other.
20:57 ajr_ Tony, how experienced a programmer are you? Complete beginner, competent in other languages, multi-lingual ace?
20:58 Tony_ I have decent experience with the major OOP languages, as well as decent experience with a few functional languages.
20:59 Tony_ About 2-3 years of experience. Not much, but I'm improving.
20:59 cognome Tony_, the Perl 6 docs assumes in some places that you know Perl 5, but some people were able to go thru them without Perl 5 knowledge.
21:00 ajr_ OK, so you're not trying to learn programming at the same time as a language. Still, Perl 5's more firmly defined at the moment, and you'll probably find more examples.
21:00 pmurias joined #perl6
21:01 dolmen joined #perl6
21:01 PerlJam Tony_: There's also rosettacode.org where you can compare the same problem solution as implemented in several languages.  (you'll probably find that useful no matter if you use Perl 5 or Perl 6)
21:01 Tony_ I just need to research a new language for my current course and thought perl would be lovely. I definitely know basic programming principals and design patterns.
21:02 Tony_ I also know a bit of bash, if that helps.
21:02 huf i dont think that helps with perl6. it might hinder you if you were learning perl5 :)
21:02 PerlJam Tony_: How many languages do you have to interact with in your course?  (IIRC, they usually try to get you to use one of each of the main language types)
21:03 ajr_ As an example to describe and explain theories related to programming, 6 would probably be suitable.
21:03 Tony_ For this specific course, we only need to research and learn one language. I've done quite a bit of research on my own for other languages though.
21:03 pmurias Tony_: Perl 5 has a really solid ecosystem (tons of libraries, the implementation is well tested and faster, it's widely used), but the language itself is a bit ugly
21:04 pmurias the core Perl 6 language is much better but it's missing most of the libraries and the implementation is not yet fully done
21:04 cognome like people, languages get less pretty with age.
21:05 PerlJam pmurias: what's "fully done" mean?  ;)
21:06 cognome When we mark some of the specs as "will be implemented post 6.0"
21:07 pmurias PerlJam: "fully done" for a programming language would mean "dead", so it's good it's not the case for both Perls ;)
21:07 huf "perfect" :)
21:08 cognome Tony_, some of advanced the stuff like OO and grammars are pretty stable because they have been deemed necessary to cleanly bootstrap the rest.
21:08 PerlJam Tony_: Perl (either 5 or 6) lets you program in an OOP style, a FP style, a declarative style, a procedural style or some combination of all of them.   This is one of the reasons I have gravitated to Perl.  It doesn't force you to think of problems in a certain way in order to solve them.  You think of them in some "natural" way and then code a solution that maps well to that way.
21:09 PerlJam Tony_: however, Perl 6 has more built-in language support for some of those styles than Perl 5.  :)
21:10 pmurias Tony_: what is your selection criteria for the language to research?
21:10 Tony_ Nothing other than we cannot have had any prior experience with the language.
21:11 pmurias and what do you want to base your choice on?
21:14 Tony_ Flexibility of language and possible server maintenance interaction. I'm hoping to get into a systems admin career, so learning something in that area would be great.
21:15 PerlJam Tony_: Oh, Perl 5 would be perfect for that IMHO.
21:15 Tony_ Ah ok.
21:15 Tony_ Thank you.
21:15 PerlJam (Perl 6 too if only it had more admin stuff in the ecosystem)
21:16 Tony_ Well, I'll go ahead and focus on Perl 5, but learn 6 in my free time.
21:16 PerlJam cool.
21:16 * vendethiel does all his pseudo-sysadmin stuff on p6, and is pretty happy about it :-)
21:17 PerlJam Tony_: you can get Perl 5 help from #perl, and Perl 6 help here if ever you need it
21:17 pmurias out of curiosity why go into systems admin instead of programming?
21:18 PerlJam vendethiel: Have you written about that in public?  Have you shared any P6 programs you use?
21:19 Tony_ Systems administration has just always been an area of interest for me. General programming is just a bit too... baby-ish? Poor choice of words, but it summarizes my feelings pretty well. I just feel like I'm actually doing something relevant and needed when I work with servers and the like.
21:20 Tony_ Also, one quick question. Installed both and was curious if all I need to do for Rakudo was to add the system path to cmd to do work in it.
21:21 PerlJam Tony_: you don't think the guys that program MRI machines or write the code that pace-makers use are doing something "relevant and needed"?   ;)
21:21 Tony_ haha Of course they are.
21:21 vendethiel PerlJam: I even talked about them ;-)
21:22 vendethiel how to add a suffix to every file in the dir? well, 6 'rename($_, "$_.bak") for dir'
21:23 Tony_ Even in regards to those examples, I still feel like that's a lot of research and development, whereas I prefer to grow in efficiency rather than creativity. Odd, but true haha
21:23 vendethiel on my github I have p6 scripts I use for my "named cd"/version managing/changelog-from-githistory-generator, etc
21:24 vendethiel on that note, 'night, #perl6!
21:24 PerlJam oops, time for me to depart too.   later all!
21:24 * PerlJam &
21:25 Tony_ Bye all! Have a nice day.
21:25 Tony_ left #perl6
21:33 dwarring joined #perl6
21:41 kjs_ joined #perl6
21:43 dalek nqp: d1f23dd | (David Warring david.warring@gmail.com)++ | examples/rubyish/ (3 files):
21:43 dalek nqp: rubyish - handle revised nqp::for iteration on hashes
21:43 dalek nqp:
21:43 dalek nqp: nqp::for on a hash object now returns an iterator object. nqp::iter_key and
21:43 dalek nqp: nqp::iter_val are used to extract the key and value respectively.
21:43 dalek nqp: review: https://github.com/perl6/nqp/commit/d1f23dd6ac
21:47 * timotimo is now running a benchmark suite run with the adaptive full collection code tuning thingie
21:50 timotimo in one of the tests, it ended up not doing a single gen2 collection for about 200 gc runs, then quitting
22:04 timotimo in the benchmarks, an improvement is kind of hard to spot :\
22:05 timotimo in all but one benchmark it seems even slower than it was before
22:05 timotimo that's weird.
22:10 timotimo so. rc-9-billion-names did one full collection taking 45ms and 450 in total spanning from 9.1ms to 4.8ms
22:10 timotimo ah, the overview has the data, too
22:10 timotimo The average nursery collection time was 5.7ms. The average full collection time was 45.42ms.
22:12 timotimo interesting. for rc-9-billion-names, push takes the 3rd place for exclusive time and is only spesh'd, not jitted. probably because it uses slurpy parameters
22:13 TimToady yes, base.t is known borkuped
22:16 timotimo why the hell wouldn't method Bool of List get spesh'd?!
22:16 timotimo it just does self.gimme(1).Bool
22:18 _thou joined #perl6
22:20 ajr_ If Tony's still around, I would discourage him from considering a career in system administration. I don't think meaningful sysadmin jobs are going to be around for very long.
22:21 [Coke] if you count devops, there's some life innit.
22:23 TimToady my brother-in-law told me when I was going into sysadmin that it was a dead-end job :)
22:23 TimToady so I wrote a few little tools I could use in sysadmin, and shared them, and...well, you know the rest
22:31 Psyche^_ joined #perl6
22:33 bjz_ joined #perl6
22:44 cognome joined #perl6
22:45 noganex joined #perl6
22:51 lizmat joined #perl6
23:00 xragnar_ joined #perl6
23:08 TimToady m: (0..9,'A'..'Z').perl.say
23:08 camelia rakudo-moar 83a5f5: OUTPUT«(0..9, "A".."Z")␤»
23:08 TimToady m: (0..9,'A'..'Z').[1].say
23:08 camelia rakudo-moar 83a5f5: OUTPUT«"A".."Z"␤»
23:08 TimToady yeah, that's the base.t screwup
23:11 * TimToady looks around for someone else to blame, unsuccessfully...
23:11 TimToady that's probably gonna screw up a few P5 programmers...
23:18 lizmat m: (0..9,'A'..'Z').WHICH.say  # just curious
23:18 camelia rakudo-moar 83a5f5: OUTPUT«Parcel|(Int|0)(Int|1)(Int|2)(Int|3)(In​t|4)(Int|5)(Int|6)(Int|7)(Int|8)(Int|9)(Scala​r|15266784)(Str|B)(Str|C)(Str|D)(Str|E)(Str|F​)(Str|G)(Str|H)(Str|I)(Str|J)(Str|K)(Str|L)(S​tr|M)(Str|N)(Str|O)(Str|P)(Str|Q)(Str|R)(Str|​S)(Str|T)(Str|U)(Str|V)(Str|W)(Str|X)(…»
23:18 lizmat hmmm.... that feels...  weird ?
23:19 TimToady surely a Range is defined by its endpoints and exclusions?
23:19 TimToady something's .listing it unnecessarily
23:19 lizmat it's doing @(self)
23:20 TimToady well, that's .list in disguise, don't suggest you ask for the .WHICH of 1..1000000000000
23:21 lizmat m: my $p = (1,2,3); say $p.WHICH
23:21 camelia rakudo-moar 83a5f5: OUTPUT«Parcel|(Int|1)(Int|2)(Int|3)␤»
23:21 lizmat need *some* kind of listing for this case
23:22 lizmat m: (1..10).WHICH.say   # this would arguably then also be wrong
23:22 camelia rakudo-moar 83a5f5: OUTPUT«Range|54711744␤»
23:22 lizmat as a range is immutable?
23:23 TimToady yes, unless you cache range values, in which case a result like that would be okay, as long as identical ranges produce the same WHICH
23:24 xenoterracide joined #perl6
23:26 dalek rakudo/nom: bf4b469 | TimToady++ | src/core/Rational.pm:
23:26 dalek rakudo/nom: gotta flatten parcel before subscripting, oopsie
23:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bf4b469c11
23:26 TimToady that fixes base.t
23:27 lizmat TimToady: why state ?  why not simply a lexical at the class level ?
23:27 TimToady it's in a role, so doesn't work
23:27 TimToady for some reason
23:27 lizmat ah, ok
23:27 lizmat a workaround for a NYI then
23:27 TimToady tried constant too, and my constant
23:27 TimToady none worked, except state
23:28 lizmat $ 6 '(1^..^10).WHICH.say'
23:28 lizmat Range|1^..^10
23:28 lizmat better for Range for now, I would think, right?
23:28 TimToady yay-ish, modulo the injection bug :)
23:28 TimToady but that's something for another day
23:29 lizmat yup
23:30 TimToady m: my $p = (<a b c>,<d e f>); .perl.say for $p[0..*]
23:30 camelia rakudo-moar 83a5f5: OUTPUT«"a"␤"b"␤"c"␤"d"␤"e"␤"f"␤»
23:30 TimToady hmm
23:30 TimToady m: my $p = (<a b c>,<d e f>); .perl.say for $p[0,1]
23:30 camelia rakudo-moar 83a5f5: OUTPUT«"a"␤"b"␤"c"␤"d"␤"e"␤"f"␤»
23:30 TimToady m: my $p = (<a b c>,<d e f>); $p.perl.say
23:30 camelia rakudo-moar 83a5f5: OUTPUT«$(("a", "b", "c"), ("d", "e", "f"))␤»
23:31 TimToady m: my $p = (<a b c>,<d e f>); $p[0].perl.say
23:31 camelia rakudo-moar 83a5f5: OUTPUT«("a", "b", "c")␤»
23:31 lizmat the * is forcing a listy ?
23:31 TimToady m: my $p = (<a b c>,<d e f>); $p[0].WHICH.say
23:31 camelia rakudo-moar 83a5f5: OUTPUT«Parcel|(Str|a)(Str|b)(Str|c)␤»
23:31 TimToady yeah, probably
23:32 TimToady need to iterate parcel elems without using range, I guess
23:32 TimToady m: my $p = (<a b c>,<d e f>); .say for $p.values
23:32 camelia rakudo-moar 83a5f5: OUTPUT«a␤b␤c␤d␤e␤f␤»
23:33 TimToady maybe we need a special method values in a parcel?
23:33 dalek rakudo/nom: 49af621 | (Elizabeth Mattijsen)++ | src/core/Range.pm:
23:33 dalek rakudo/nom: Preliminary Range.WHICH
23:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/49af62163b
23:33 TimToady m: my $p = (<a b c>,<d e f>); .perl.say for $p.lol[0,1]
23:33 camelia rakudo-moar 83a5f5: OUTPUT«$("a", "b", "c")␤$("d", "e", "f")␤»
23:34 TimToady well, that's kinda overkill
23:34 TimToady and wrongish for ID purposes
23:34 TimToady well, at least a parcel always has a finite .elems
23:34 TimToady so you can just loop
23:35 TimToady m: my $p = (<a b c>,<d e f>); $p[$_].perl.say for 0..^$p.elems
23:35 camelia rakudo-moar 83a5f5: OUTPUT«("a", "b", "c")␤("d", "e", "f")␤»
23:35 TimToady m: my $p = (<a b c>,<d e f>); $p[$_].WHICH.say for 0..^$p.elems
23:35 camelia rakudo-moar 83a5f5: OUTPUT«Parcel|(Str|a)(Str|b)(Str|​c)␤Parcel|(Str|d)(Str|e)(Str|f)␤»
23:35 TimToady something like that
23:36 nick_____ joined #perl6
23:36 nick_____ yellow
23:37 TimToady m: my $p = (<a b c>,<d e f>); .perl.say for $p[*]
23:37 timotimo ohai
23:37 camelia rakudo-moar 83a5f5: OUTPUT«"a"␤"b"␤"c"␤"d"␤"e"␤"f"␤Mu␤»
23:37 TimToady m: my $p = (<a b c>,<d e f>); .perl.say for $p[]
23:37 camelia rakudo-moar 83a5f5: OUTPUT«"a"␤"b"␤"c"␤"d"␤"e"␤"f"␤»
23:37 timotimo huh, where does that Mu come from i wonder ...
23:37 nick_____ any idea when we can use  rakudo jvm for frameworks
23:37 timotimo please explain what "for frameworks" means?
23:38 TimToady we've already got a Dancer clone(ish)
23:38 nick_____ really cool, i like Dancer
23:38 nick_____ how does it run on jvm
23:40 nick_____ what is the framework called the dancer (ish) one
23:40 nick_____ dancer6? maybe
23:40 TimToady Bailador
23:40 TimToady haven't tried it, not really a webperson
23:42 lizmat $ 6 'my $p = ((1,2,3),(4,5,6)); $p.WHICH.say'
23:42 lizmat Parcel|(Parcel|(Int|1)(Int|2)(Int|​3))(Parcel|(Int|4)(Int|5)(Int|6))
23:43 dalek rakudo/nom: 41d7f71 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
23:43 dalek rakudo/nom: Don't flatten when creating .WHICH
23:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/41d7f7193f
23:43 nick_____ ok, well i want to spread the perl world, bc i really like useful it is, and the fact that it has a lot freedom to write
23:43 timotimo that's cool :)
23:44 timotimo i'm not a web person myself, but i'm meaning to look into some web stuff when we get an async-io-aware web framework of some kind
23:44 nick_____ any new idea for the mascot, i miss the camel lol
23:44 * lizmat wonders whether we shouldn't huffmanize the types in .WHICH for value types
23:44 lizmat I1 instead of Int|1
23:44 BenGoldberg joined #perl6
23:44 timotimo ah, you were here last night recommending an otter, was that you?
23:45 nick_____ yea, it be honest lol
23:45 nick_____ to be i mean
23:45 timotimo i like the butterfly :P
23:46 lizmat S|foo instead of Str|foo
23:46 nick_____ i do scripting and unix working with java for living etc.. in other word a admin
23:47 lizmat N2.71828182845905 instead of Num|...
23:47 nick_____ yea the butterfly is ok, i just want to get the younger crowed they are the future
23:47 lizmat R157/50 instead of Rat|157/50
23:48 BenGoldberg nick_____, what do you have against butterflies? ;)
23:48 nick_____ when its come to programming everyone seem to want the easy way and not understand something
23:48 lizmat anyways, been a long day again with a lot of driving and talking...  so going to inspect the inside of my eyelids
23:48 lizmat gnight, #perl6!
23:48 nick_____ lol
23:49 nick_____ welllllllllllll , i was thinking neutral mascot that all, something that shows the odd but efficacy of perl
23:51 nick_____ like water perl is an language that has a flow to it when you write, it become a bit personal bc not many people what patience to read it etc...
23:52 japhb .ask lizmat What does your '6' alias do?  Is it just '/path/to/perl6 -e' ?
23:52 yoleaux japhb: I'll pass your message to lizmat.
23:52 BenGoldberg nick_____, On the other hand, "Butterflies are free", and with perl, you are *free* to do what you want :)
23:52 lizmat you rang?
23:52 yoleaux 23:52Z <japhb> lizmat: What does your '6' alias do?  Is it just '/path/to/perl6 -e' ?
23:53 lizmat alias 5='perl -E'
23:53 lizmat alias 6='perl6 -MTest -e'
23:53 lizmat alias 6l='perl6 --ll-exception -MTest -e'
23:53 lizmat sleep&
23:53 timotimo useful!
23:53 timotimo hey japhb :)
23:54 timotimo japhb: i seem to recall i sent some messages your way
23:54 japhb timotimo: Hello there
23:54 timotimo did you get anything?
23:54 nick_____ true, and know butterflies help spread the beauty of the lang, but remember the camel represent ugly but efficiency, survivals etc...
23:54 japhb timotimo: Really?  I didn't get highlighted.  But sadly I think irssi's default highlighting is not as smart as whatever I had under xchat-gnome.
23:55 japhb Why don't we have yoleaux in #moarvm?  Having to .ask here when I really want to talk to e.g. brrt about Moar stuff, seems silly and miss-prone.
23:56 japhb Thanks, lizmat
23:56 timotimo hold on.
23:56 diakopter japhb: ask dpk
23:56 japhb japhb: I was not asking *how* to request it there, I was asking if there was a reason we *didn't* already.
23:57 timotimo ah
23:57 timotimo i sent them to japhb_
23:57 diakopter diakoper: maybe there's a reason dpk knows
23:58 diakopter er
23:58 diakopter fail at teasing japhb for addressing himself
23:58 tardisx joined #perl6
23:59 diakopter .tz
23:59 yoleaux diakopter: I don't currently have a timezone preference set for you.
23:59 diakopter .in 0s boo
23:59 yoleaux diakopter: Sorry, I don't understand your duration. Try using units: 1h30m, 1d, etc.
23:59 diakopter .in 1s boo
23:59 yoleaux diakopter: I'll remind you at 23:59Z
23:59 yoleaux diakopter: boo
23:59 diakopter .in 999999999999999999y boo
23:59 yoleaux diakopter: I'll remind you on 2 Sep 999336057550807353 17:06Z

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

Perl 6 | Reference Documentation | Rakudo