»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
jepeway s/time/Instant/ 00:01
err...s:2nd/time/Instant/
jack_rabbit oh, duh. 00:02
[Coke] is down to the last bisect.... slooow 00:03
00:06 grondilu left
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
*requester
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:07
00:08 grondilu joined, grondilu is now known as Guest83289
jack_rabbit Where do I get the bitmask for IO::Socket.poll? 00:10
jepeway maybe "TZ=US/wherever irssi" (or whichever client) would help there? 00:12
TimToady my client is not in my timezone either 00:13
00:14 nick__ joined
nick__ hello 00:14
[Coke] annnnd, TimToady broke rakudo-parrot. :)
98c32aaa8b2219 is the first bad commit.
nick__ well thats good?
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?
nick__ hey i was think an mascot like otter for perl6? any ideas 00:16
[Coke] nick__: hello. Whats up?
nick__: we already have camelia. (the butterfly on perl6.org) 00:17
nick__ new guy, pretty new to perl, coming from perl 5...
how much is a diffs in syntax? between the two 00:18
so far i don't see much of a diff
00:23 jack_rabbit left
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
00:25 jerrycheung left
jepeway .tell masak hey, I'm poking at RT 122319; would you have time to peek at clog around irclog.perlgeek.de/perl6/2014-09-01#i_9282046? 00:28
yoleaux jepeway: I'll pass your message to masak.
nick__ Hello? 00:29
[Coke] nick__: it's not going to fly, sorry 00:30
nick__ why?
jepeway well, gtg. g'nite (from US/Eastern aka EDT5EST) #perl6
00:30 jepeway left
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
[Coke] nick__: perl6.org/about/
"Camelia as the logo for Perl 6 and perl6.org is not negotiable. 00:32
"
timotimo t.h8.lv/p6bench/2014-09-02-since_release.html - the json benchmarks really got a nice little boost from the recent jit and optimization improvements
[Coke] You can imagine that having someone who is not yet part of the community suggest a change about the logo isn
t going to get much traction.
timotimo: nice.
nick__: I do imagine an otter would also be cute, however. 00:33
timotimo i wonder what the otter would symbolize
"this is the otter perl language"? %)
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
yoleaux timotimo: I'll pass your message to japhb_.
nick__ otter (Joy Agility Energy Curiosity Creativity Dexterity Protection Friendship Playfulness) , i think it would help and i can comeup with a samples 00:35
timotimo does any other language have an otter? 00:36
nick__ also i had came to the chat b4, many time to the community
no, that i know of
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 :)
yoleaux timotimo: I'll pass your message to japhb_.
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:39
Fearlessness is another great symbolic attribute of the otter 00:41
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 i 00:42
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
timotimo cut off after "equipped with a brilliant i" 00:43
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:44
look i know i am new, but i seen how can a simple but yet logo can boost perl6. 00:45
i just saying whats on my mind 00:46
i.dailymail.co.uk/i/pix/2014/03/06/...34x424.jpg otter fighting 00:48
00:49 jerrycheung joined
nick__ otter can eat snake too ;) 00:50
00:50 kurahaupo joined 01:02 dayangkun joined 01:04 FROGGS_ joined, xenoterracide left 01:07 FROGGS left
TimToady
.oO(Proposed order of subject merit: relationships > jokes > culture > philosophy > principles > features > sugar > bikesheds > mascots > competition > licenses...)
01:07
01:09 cooper left
nick__ ?? 01:09
01:09 cooper joined, cooper left, cooper joined
[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:18
nick__ ok, i will come back in 15years,then lol 01:19
01:19 nick__ left 01:23 xenoterracide joined
TimToady ooh, the old take my marbles and go home ploy... 01:25
01:28 cooper left
TimToady suspects Camelia has succesfully fended off another potential troublemaker 01:28
01:29 cooper joined, cooper left, cooper joined 01:36 jack_rabbit joined 01:57 firefish5000 left
TimToady [Coke]++ # unfailingly polite 02:04
02:05 noganex_ joined
[Coke] I'm glad we can take turns being polite. it's hard to do all the time. :) 02:07
02:07 Guest83289 left 02:08 noganex left
TimToady you said it 02:08
02:08 grondilu joined
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:10
TimToady no, only the first one 02:11
the rest are arguments
gotta have something left to stick into $*ARGS 02:12
er @
grondilu ok
02:12 cooper left
grondilu for some reason I'd swear I had already ran something like perl6 *.t 02:13
I probably did, without knowing that was wrong :/
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:14 grondilu left
TimToady there are many migration strategies, and that supports some of them 02:15
jack_rabbit Are there async socket IO or concurrency implementations available? 02:18
TimToady doesn't know the status of that offhand; there has certainly been some work on it 02:19
dj_goku_ TimToady: are you still at craiglist? 02:20
TimToady yes
they take good care of me
dj_goku_ so do they have you work on anything other than p6?
TimToady not yet :)
dj_goku_ are they using p6?
TimToady not yet :) 02:21
02:21 chenryn joined
dj_goku_ either way it is pretty awesome they are supporting that development. 02:23
TimToady for sure!
jack_rabbit Well their goal is to use it I would guess.
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
they're a great bunch of people
dj_goku_ looking at a job posting. sounds like it. 02:29
jack_rabbit sweet. 02:30
02:34 BenGoldberg left
dj_goku_ TimToady: so I presume you work from home? 02:35
02:42 pyrimidine joined
TimToady mostly, yes 02:44
haven't been able to get away from home as much as I expected this year :) 02:45
02:53 [Sno] left 02:54 [Sno] joined 02:59 telex left 03:00 telex joined
[Coke] ah, ymd-from-daycount is the likely culprit for parrot breakage. 03:00
03:07 jerrycheung left
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:07
03:08 xinming joined
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:15
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
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:19
dj_goku_ we use pandas a lot, which is really nice, but sometimes with my lack of knowledge I bang my head around. 03:20
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 :)
pyrimidine might 03:24
xiaomiao Go ... some good ideas, with added extra braindamage stapled in
pyrimidine heh
xiaomiao e.g. static linking to make distro packaging impossible
e.g. "deploy from github" as feature
TimToady they fixed a lot of things from C, including a fair number of things that didn't need fixing :)
dj_goku_ pyrimidine: I don't deal with the data analysis portion, just the loading. :D
pyrimidine dj_goku_: like those guys that set up the dynatmie charges for road work? 03:26
*dynamite
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 :)
not that R is much better. But it was at least written by statisticians (and it shows) 03:29
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:30
03:31 tardisx joined
dj_goku_ Adding a lot of tests too. There weren't a lot of tests when I started. 03:33
pyrimidine: so are you writing R stuff and executing in python?
pyrimidine dj_goku_: nope. Straight R/Perl/Python. 03:34
(not in that order)
Basically, ‘whatever is needed for the job at hand’ 03:35
dj_goku_ pyrimidine: sounds like me, but we have other people doing R and the reporting side. 03:36
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:37
We run most tasks on high-performance clusters (local, but sometimes AWS). We even have access to this: bluewaters.ncsa.illinois.edu 03:38
xiaomiao pyrimidine: sounds like great fun 03:39
pyrimidine yes, it is. Can be very frustrating as well
ggoebel1111112 hey dj_goku
xiaomiao pyrimidine: frustration is part of the job 03:40
03:40 Woodi_ left
pyrimidine xiaomiao: yep. much of it in my case comes from working with users w/ little to no compute knowloedge 03:40
03:40 Woodi joined
dj_goku_ ggoebel1111112: hey garrett! how goes it?! 03:41
pyrimidine: that sounds fun.
pyrimidine it is 03:44
xiaomiao hehe. "It'd be so much easier without users"
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
users are relatively easy to tolerate, bad code is much more frustrating
pyrimidine xiaomiao++ 03:46
couldn’t agree more
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
03:48 [Sno] left
pyrimidine lots of ‘thesis-ware’ 03:48
xiaomiao well, I'm seeing that a lot on the linux front now ... 03:55
deterministic boot? who needs that! 03:56
03:57 jerrycheung joined
ggoebel1111112 working through Let's Build A Compiler and translating it to perl targetting MSIL 04:05
filling in the gaps and looking to delurk in a useful capacity someday 04:06
good to hear from you... <and back to being a lurker> 04:08
TimToady ggoebel1111112++
that makes you, what, ggoebel1111113 or so? 04:09
ggoebel1111112 all those 1's blur together... :-)
probably means its time for bed
04:10 Akagi201 left 04:11 kaare_ joined 04:30 raiph left, mr-foobar left 04:45 rindolf joined 04:47 xenoterracide left, pyrimidine left 04:50 dwarring left 04:59 chenryn left 05:01 hagiri joined 05:05 rindolf left 05:06 rindolf joined, hagiri left 05:12 SamuraiJack joined 05:13 [Sno] joined 05:15 chenryn joined 05:36 rindolf left 05:37 rindolf joined 05:54 mr-foobar joined, gfldex joined 05:58 virtualsue joined 06:12 rindolf left 06:13 rindolf joined
sergot hi o/ 06:14
06:16 gfldex left 06:22 vendethiel left 06:42 rindolf left, fhelmberger joined, rindolf joined 06:43 fhelmberger left
TimToady where is #75010 06:43
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=75010
06:44 kaleem joined 06:51 rindolf left 06:52 rindolf joined
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:52
06:53 mberends joined, kaleem left, virtualsue left 06:54 mberends left
TimToady danaj++ 06:55
06:56 rindolf left, rindolf joined 06:57 rindolf left 06:59 itz_ joined 07:02 itz left 07:06 darutoko joined 07:07 jerrycheung left, zakharyas joined, ggoebel1111112 left 07:16 kaleem joined
dalek ast: 7a6c919 | TimToady++ | S32- (2 files):
:p is supposed to weed out non-existing
07:31
ast: 2befb5e | TimToady++ | S32-array/splice.t:
unfudge, works now in rakudo
ast: 79039df | TimToady++ | S12-class/attributes.t:
all ranges now autotruncate on subscripting
ast: 7060722 | TimToady++ | S0 (4 files):
parcels no longer autoflatten for .elems or .[]
kudo/nom: a8df1c9 | TimToady++ | src/core/array_slice.pm:
all ranges autotruncate on subscripting overrun
07:33
kudo/nom: ef380d2 | TimToady++ | src/core/ (2 files):
Parcel no longer autoflattens for .elems or .[]
07:35 virtualsue joined 07:37 FROGGS_ is now known as FROGGS
FROGGS o/ 07:37
moritz \o 07:38
TimToady: I can imagine those commits make list stuff a bit faster
07:39 bjz joined
dalek ecs: 366eca4 | TimToady++ | S02-bits.pod:
Parcels are not so ephemeral anymore
07:39
nwc10 after the ASAN build, I'll have another go with optimisation 07:40
and see how startup now looks
TimToady moritz: well, possibly, possibly not
07:40 brrt joined
TimToady was going for correct semantics first, and we may need the list refactor to make them faster 07:40
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
nwc10 good * mberends 07:43
is this "good Jet Lag, mberends"?
07:44 mberends left
TimToady m: say (1,(2,3),4).elems 07:44
camelia rakudo-moar 0a4af1: OUTPUT«4␤»
TimToady that will say 3 when my changes recompile 07:45
07:45 chenryn left
TimToady and you'll have to say .flat.elems if that's what you actually want 07:45
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
07:46 mberends joined
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
nwc10 good *, mberends 07:47
mberends good am, nwc10
nwc10 [nick@gcc1-power7 rakudo]$ ./perl6-m -e 'say $*DISTRO' 07:48
linux (2.6.32.279.19.1.el.6.ppc.64)
with SPESH disabled it fails one spectest.
with SPESH it fails quite a few, but all seems to be the same underlying problem
moritz nwc10: have you tried it with with spesh, but MVM_SPESH_OSR_DISABLE=1 ? 07:49
nwc10 not yet
anyway
mberends: you might find that it builds on more debian platforms than the two usual suspects
mberends nwc10: excellent! Moar on ARM32 seems viable :-) 07:51
07:51 ggoebel1111112 joined
nwc10 mberends: you have tested this recently? 07:51
mberends nwc10: no, I think tadzik++ reported success on Android. 07:52
tadzik nah, that was SailfishOS
and a partial success :)
mberends ah, thanks
07:53 donaldh joined
nwc10 it was a complete sod to get MoarVM to work on ARM 07:53
(hidden alignment assumptions in the NQP code)
and I've not re-checked whether something else then broke it
also, a Raspberry Pi is considerably slower than other stuff, even (I believe) more beefy ARM boards 07:54
07:54 chenryn joined
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. 07:57
dalek kudo/nom: a640aab | (Elizabeth Mattijsen)++ | src/core/Int.pm:
Unbreak 98c32aaa8b2219 for parrot (RT #122681)
08:03
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122681
FROGGS "XXX temporary fix" *g* 08:05
I bet it will still be there in 2020 :o)
08:06 Akagi201 joined
FROGGS ohh, a nativecall test relied on the parcel flattening as it seems 08:06
08:08 pecastro joined 08:12 kjs_ joined, domidumont joined 08:13 mberends left
lizmat FROGGS: but will parrot make it to 2020 ? 08:14
anyway, I thought it would be too early to let breakage of that kind persist 08:15
as it was clearly an opt directed towards developments on MoarVM
FROGGS lizmat: no idea about parrot... I think depends on new devs joining #parrot or not 08:16
dalek ecs: c6647e2 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Added "opt" lemma and moved OSR to right place
08:18
FROGGS this fails: 08:21
my $carray = nativecast(CArray[uint32], ReturnArray());
is $carray[0..2], [1, 2, 3], 'casting int * to CArray[uint32] works';
but this passes:
is $carray[0,1,2], [1, 2, 3], 'casting int * to CArray[uint32] works';
ohh, it might be the role IntTypedCArray in NativeCall 08:23
nwc10 of course. Parrot 12.0 will be released on Tuesday 21st Jan 2020 08:24
this is the benefit of a predictable release schedule
sometimes I wonder why it's not automated with cron
FROGGS nwc10: because you cannot automate documentation patches </troll>
moritz ah, but then we wouldn't notice when the last parrot developer has given up
FROGGS (yes, I know there were very nice patches during this GSoC) 08:25
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
you need a solid base to do experiments which let you grow
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
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
yoleaux timotimo: I'll pass your message to mberends.
moritz (and iirc I still qualify as a parrot developer, and have a commit bit, and all that) 08:28
08:30 dakkar joined
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
err, 0 then 1 then 2
dalek ast: 447e63c | (Elizabeth Mattijsen)++ | S02-types/WHICH.t:
Separate concurrency to avoid parrot breakage
08:37
08:37 kjs_ left
dalek ast: c738362 | (Elizabeth Mattijsen)++ | S02-types/WHICH.t:
some more tweaks
08:39
08:39 dakkar left
FROGGS that shows it: 08:40
m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]
camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤»
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␤»
lizmat afk for a few hours&
FROGGS o/
timotimo m: say (0..2).list.perl 08:45
camelia rakudo-moar a640aa: OUTPUT«(0, 1, 2).list␤»
timotimo m: say (0..2).list.elems
camelia rakudo-moar a640aa: OUTPUT«3␤»
timotimo :\
method infinite() { nqp::p6bool(nqp::istype($!max, Num)) && $!max eq 'Inf' } # ← is this a workaround? the eq part? 08:46
08:47 jack_rabbit left
FROGGS looks like 08:47
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)
camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤0␤»
FROGGS m: say POSITIONS(my $a, 0..2) 08:50
camelia rakudo-moar a640aa: OUTPUT«␤»
FROGGS m: say POSITIONS(my $a = [], 0..2)
camelia rakudo-moar a640aa: OUTPUT«␤»
FROGGS m: say POSITIONS(my $a = [0], 0..2)
camelia rakudo-moar a640aa: OUTPUT«0␤»
FROGGS m: say POSITIONS(my $a = [0,1,2,3,4,5], 0..2)
camelia rakudo-moar a640aa: OUTPUT«0 1 2␤»
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␤»
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␤»
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)
camelia rakudo-moar a640aa: OUTPUT«atpos 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤fetch 0␤True␤0␤»
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␤»
timotimo hm.
i don't know how this part of the whole thing works, tbh
FROGGS me neither 08:57
09:00 virtualsue left
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␤␤»
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)
camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤0␤»
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)
camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤1␤»
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)
camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤1␤»
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.
camelia rakudo-moar a640aa: OUTPUT«===SORRY!=== Error while compiling /tmp/7mykzsYbTI␤Missing semicolon.␤at /tmp/7mykzsYbTI:1␤------> $a = Foo.new; say $a[0..2]; say $a.list.⏏<EOL>␤ expecting any of:␤ method arguments␤ post…»
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
camelia rakudo-moar a640aa: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤Foo.new()␤»
09:08 chenryn left 09:19 kjs_ joined 09:33 dakkar joined, anaeem1 joined 09:34 spider-mario joined 09:35 spider-mario left 09:38 spider-mario joined, chenryn joined 09:44 chenryn left 09:48 itz_ left 09:51 virtualsue joined 09:54 itz joined 10:01 chenryn joined 10:02 brrt left 10:04 itz_ joined 10:05 itz left 10:22 chenryn left 10:23 chenryn joined
nine 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:32
10:48 salv0 left
carlin m: $*TZ=43200; say DateTime.new("2014-09-01T12:00:00Z").local 10:48
camelia rakudo-moar a640aa: OUTPUT«2014-09-02T00:00:00+1200␤»
carlin m: say DateTime.new("2014-09-01T12:00:00Z").local 10:49
camelia rakudo-moar a640aa: OUTPUT«2014-09-01T12:00:00Z␤»
carlin that's easier than getting camelia to do CTCP time requests :p 10:50
dalek kudo/nom: 69d7051 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
Hack a Parcel.WHICH solution

Apparently, a Parcel created by the .Parcel method, consists of a ListIter as its only element. Upon inspection, this is flattened, causing a problem with the .WHICH representation, as the immutable Parcel internally mutes. This fix will just expose the ListIter if the Parcel was created with
  .Parcel, and thereby create a WHICH that indicates the inherit mutability
of a Parcel that is created that way. Suggestions for a better solution are welcome.
11:04
lizmat $ 6 'my @a=^3; say @a.Parcel.WHICH'
Parcel|(ListIter|140616894388608)
11:07 salv0 joined 11:08 kaleem left
moritz why doens't the assignment flatten out the list? 11:14
oh, .Parcel
moritz blind
11:30 nuggs joined
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 ?
nuggs My apologies for the bad report.
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:34
11:41 chenryn left
dalek ast: 04d38c8 | Carlin++ | S32-temporal/local.t:
set $*TZ rather than requiring specific OS setup

These tests will now run everywhere
11:54
ggoebel1111112 nuggs++ 11:55
nine++ 11:56
hoelzro_ morning #perl6
colomon \o 11:57
lizmat nuggs: [Coke] runs the closest thing we have to a buildfarm 11:58
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
nuggs Cool. I'll try to sync up w/ Coke to see if I can provide some cycles there. Thanks. 12:03
12:04 PerlJam left, PerlJam joined, kaare_ left 12:07 brrt joined, nuggs left 12:08 nuggs_ joined
lizmat commute to Amsterdam.PM meeting& 12:10
12:10 lizmat left
hoelzro_ is =pod considered special? or should it be considered as an abbreviated form of =for pod? 12:12
I've been looking over S26, but that's not helping much =/
12:13 hoelzro_ is now known as hoelzro 12:18 jerrycheung joined, nuggs_ is now known as nuggs 12:26 mr-foobar left, firefish5000 joined 12:27 mr-foobar joined
nuggs make spectest on 32 bit arm, moar backend built without optimizations: 12:29
tadzik hoelzro: I don't think =pod is anything special
nuggs whups, crappy junky paste, here's a gist: gist.github.com/anonymous/1922aa1acd6fdfa6a02c
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
so I'd hope that that would pass with something like
MVM_SPESH_DISABLE=1 ./perl6-m t/spec/integration/99problems-51-to-60.t
tadzik hoelzro: I don't see why it should
nwc10 if so, it's "known cross platform problem"
hoelzro tadzik: well, abbreviated POD blocks are supposed to continue to the next blank line, right? 12:31
tadzik hoelzro: yes 12:32
hoelzro so wouldn't =pod be the same as =for pod?
tadzik should
12:33 _thou joined
hoelzro so shouldn't =pod stop at that first newline, and thus the say would not be inside of it? 12:33
tadzik ooh
I see it now
yes, it should say "1"
imoh
12:34 nuggs left
hoelzro ok, then I'll update the ticket with that insight =) 12:34
thanks for sanity checking =)
12:36 nuggs joined
PerlJam good * #perl6 12:36
nuggs nwc10: groovy, MVM_SPESH_DISABLE=1 did the trick there. 12:37
hoelzro o/ PerlJam
oh, you know what? that's *not* a blank line
"=pod\n\nsay 666" would be
hoelzro is crazy
commute &
nwc10 nuggs: what are you building on?
12:39 raiph joined
nuggs nwc10: an Ubuntu 14.04 chroot on a Samsung chromebook 2 (ocatcore thingy-dingy) 12:39
nwc10 ah OK 12:43
I built it back in May on a Rasberry Pi 12:44
not that fast
nuggs *octacore, even. Heh, I bet that Pi build took a minute. 12:49
12:49 mr-foobar left
carlin NativeCall is amazing, can't say that enough 12:51
Perl 6 makes C fun 12:53
[Coke] lizmat++ # avoiding failure on r-p 12:54
dalek ecs: 9720a17 | (Stéphane Payrard)++ | S99-glossary.pod:
S99: entries related to Unicode, whitespace, comments
12:57 anaeem1 left
[Coke] Any Perl 6 L</token>s may or must be separated by tokens. 13:02
from that commit. I think that whitespace node could a minor cleanup, otherwise looks good.
cognome WIP 13:04
13:10 korteland joined 13:13 nuggs left 13:14 chenryn joined
dalek ecs: 10d91b4 | (Stéphane Payrard)++ | S99-glossary.pod:
S99: boolean context
13:21
[Coke] cognome: tokens must be separated by tokens? 13:22
cognome yea, whitespaces are very special. Not sure if the spec call them tokens 13:23
PerlJam Why mention tokens at all if they 'may or must'? 13:24
(i.e. it doesn't seem to relate directly to whitespace unless there are things that must be separated by whitespace) 13:25
13:25 kaare_ joined
dalek ecs: 5c16468 | (Stéphane Payrard)++ | S99-glossary.pod:
S99: boolean related entries, attempt at fix whitespace
13:27
ecs: e517b60 | duff++ | S99-glossary.pod:
expand on whitespace a little
13:29
PerlJam How about that definition? 13:30
cognome I love it
13:31 chenryn left 13:34 guru joined, guru is now known as Guest12712, Guest12712 is now known as ajr_, anaeem1_ joined, anaeem1_ left 13:35 anaeem1_ joined
PerlJam Is there some unicode character property for "whitespace"? 13:36
moritz PerlJam: "Separator", short "Z" 13:37
(I think)
13:40 ajr_ left, telex left, chenryn joined
dalek kudo-star-daily: bb4abf4 | coke++ | log/ (14 files):
today (automated commit)
13:40
13:41 ajr joined, ajr is now known as Guest91085, Guest91085 is now known as ajr_ 13:42 telex joined 13:47 SamuraiJack left 13:58 kaleem joined 14:00 jerrycheung left 14:13 jerrycheung joined 14:14 brrt left
[Coke] rt.perl.org/Ticket/Display.html?id=72844 is closable now, yes? 14:16
PerlJam p6: say() for ^3; 14:20
p6: say for ^3; 14:21
camelia rakudo-{parrot,jvm,moar} 69d705, niecza v24-109-g48a8de3: OUTPUT«␤␤␤»
14:21 ajr_ left
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤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:␤------> say⏏ for ^3;␤␤Unhandled exception: Check f…» 14:21
..rakudo-{parrot,jvm,moar} 69d705: OUTPUT«===SORRY!=== 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␤------> say ⏏for ^3;…»
PerlJam [Coke]: looks like it to me (Assuming there are appropriate tests in roast)
14:22 guru joined, guru left 14:23 raiph left 14:24 guru joined, raiph joined, guru is now known as Guest20565
PerlJam huh ... looks like there's an extra space between the semicolon and "in Perl 6" in Rakudo-land as compared with niecza 14:24
14:28 anaeem1_ left, Guest20565 left 14:29 brrt joined, korteland left 14:31 firefish5000 left
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:35
14:35 jerrycheung left
jdv79 the mast stage is where my box ran out of mem 14:36
14:37 anaeem1_ joined
hoelzro does func; and func(); actually parse differently? 14:37
dalek ecs: ca2464c | (Stéphane Payrard)++ | S99-glossary.pod:
S99: more entries
TimToady jdv79: it would take separate compilation of the pieces of the setting, probably 14:38
hoelzro: you'll have to define your threshold for "differently" 14:39
PerlJam hoelzro: for the case where "func" is really "say", the answer is clearly "yes" ;) 14:40
Woodi hallo perlers :) 14:41
dalek kudo/nom: 83a5f52 | duff++ | src/Perl6/Grammar.nqp:
Remove extra spaces

worryobs() and sorryobs() throw X::Obsolete which already puts a space before $.when in the message.
jnthn jdv79: "Lots of little things"
jdv79: Which is an equally annoying answe rat least 14:42
*answer
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:43
hoelzro: In terms of "grammar rule used to parse it", yes, certainly differen.t 14:44
brrt jnthn: what do you mean? :-)
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
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?
1 Sep 2014 19:46Z <japhb_> brrt: Sorry I missed you, please ping me again when you're back
14:44 [Sno] left
brrt timotimo i see what you mean 14:45
.tell japhb_ i'm back (for 45 minutes or so)
yoleaux brrt: I'll pass your message to japhb_.
jnthn brrt: I think we'll end up with an API more like the ASM code-gen lib on the JVM
brrt hmmm
as in, moarvm bytecode? 14:46
interesting
jnthn Yes
I don't have a design yet, and it's not high priority
brrt hmm
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...
brrt or in other words, OMG THERE IS SO MUCH WORK STILL TO DO
TimToady Woodi: you're wanting classes, not parcels 14:48
PerlJam heh ... "standard"
TimToady and we already support native classes to some extent
jnthn *sigh* why on earth does my SSH connectkion keep getting protocol errors... :/ 14:49
hoelzro PerlJam: yes =) 14:50
TimToady: what PerlJam said
so say is special?
Woodi TimToady: but class could be overkill sometimes... and discusion at perlcabal.org/syn/S02.html#Parcels,...d_Captures could be simplified just by having record/struct type
parcels/captures/signatures...
TimToady m: say (1,(2,3),4).elems 14:52
camelia rakudo-moar 69d705: OUTPUT«3␤»
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:54
TimToady it's special in the sense that P5 programmers will expect bare say to default to $_ 14:55
but other than that, not, it's just a listop/function
dalek ast: 6f52902 | TimToady++ | integration/advent2013-day10.t:
:kv no longer returns parcels of (k,v)
14:58
hoelzro jnthn: well, PerlJam's experimentation with say vs say() above 15:00
jnthn: does arbitrary-func parse differently from arbitrary-func(), then?
I mean, is the resulting parse tree different?
brrt jnthn: great firewall still?
jnthn hoelzro: Parse tree, yes. QAST tree, no, afaik. 15:02
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 chenryn left
brrt ugly stuff 15:03
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:04
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. :)
brrt uh, i have no news at all from Hong Kong here 15:06
jnthn the listop form kinda can't, no? :)
brrt dutch media has totally ignored anything that might have changed
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:07
15:08 anaeem1_ left
jnthn brrt: It's not a *surprising* ruling, though understandably not one everyone is happy with. 15:09
brrt ... i can imagine 15:10
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, pdcawley left
[Coke] m: my $a = class { has $a; }; say $a.new(a => 1).perl; 15:15
15:15 chenryn joined
camelia rakudo-moar 69d705: OUTPUT«<anon>.new()␤» 15:15
[Coke] moritz, TimToady: what is the expected output of the last bit of code on rt.perl.org/Ticket/Display.html?id=77474 ? 15:17
FYI, the current output is 1 0 15:18
TimToady rosettacode.org/wiki/Hamming_numbers 15:19
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?
TimToady yes, if Perl 6 were as good as Haskell at recursive definitions... 15:21
[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
masak: RT #64766 "Possibly ..."
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=64766
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:24
so practically speaking it might depend on some transformation that runs some of our lazy code with push semantics rather than just pull 15:25
but maybe not 15:27
jnthn TimToady: Is there much in the way of a concrete plan for the list refactor?
[Coke] (just another ticket with a suspiciously vague title)
TimToady jnthn: lock you and me and pmichaud in the same room for a month maybe? :) 15:29
I'm feeling my way into it from various directions
jnthn That sounds effective if it's feasible :P
dalek rl6-roast-data: 301112e | coke++ | / (6 files):
today (automated commit)
15:30
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.
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...
TimToady there's a lot of 3) ??? in there
15:32 zakharyas left
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
*property
15:33 brrt left
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
currently gimme and reify intermix policy and dataflow
so in the absence of heroic speshing, nothing can be optimized 15:35
jnthn The present situation is certainly hard to spesh
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
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
jnthn C# gets to have it that way somewhere between its 50 passes. :) 15:38
And the results are pretty speedy. At least, there's not really a "don't use enumerators" meme about. :)
TimToady policy channels and higher-order functions that can often be known at compile time
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
jnthn *sounds
15:40 fhelmberger joined
TimToady has the skill of sounding good even when he's bad. :) 15:43
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.
FROGGS TimToady: have you seen this? 15:47
m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0,1,2]
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␤»
timotimo is probably less expensive to not kidnap them
FROGGS m: class Foo { method at_pos($p) { Proxy.new: FETCH => method () { say $p }, STORE => -> | { } } }; my $a = Foo.new; say $a[0..2]
camelia rakudo-moar 83a5f5: OUTPUT«0␤0␤0␤0␤0␤0␤0␤True␤»
15:47 mr-foobar joined
FROGGS TimToady: I don't see offhand what need to be fixed... perhaps sub POSITIONS? 15:47
moritz FROGGS: method elems? 15:48
TimToady slicing ranges requires a working .gimme, and I suspect proxies are missing that
15:48 treehug88 joined
FROGGS moritz: the changed .elems might have introduced the problem, aye 15:48
15:48 fhelmberger left
moritz FROGGS: I wanted to say that maybe slicing calls .elems (at least in some situations) 15:49
TimToady on range slicing we never call .elems because the base list might be too long to calculate it 15:50
it calls .gimme($_+1)
FROGGS here github.com/rakudo/rakudo/blob/nom/...lice.pm#L6 15:51
TimToady so it's perhaps not tranforming to a proper list with .list
FROGGS so we put the pos ~~ Range case in its own branch an do something fancy?
15:51 donaldh left
TimToady you can't call .elems there 15:51
believe me, i tried
FROGGS or... I mean... we could check that SELF is a proxy perhaps 15:52
TimToady .roll(*)[^100] will never return if you doo
FROGGS ohh, no, the at_pos returned a proxy, SELF isnt one
TimToady the current loop assumes that .gimme will return a true value 15:53
maybe that's not true somehow
.oO(current loop vs RS-232, ancient history...)
15:54
FROGGS TimToady: .gimme($_ + 1) returns 1 for $_ being 1
so it lasts 15:55
RS-232? O.o
TimToady yeah, that newfangled stuff 15:56
the ttys like current loop better
m: say Bool.roll(*).infinite 15:59
camelia rakudo-moar 83a5f5: OUTPUT«Nil␤»
TimToady another thing that is difficult in the current list model is passing knowledge of the infinite backwards 16:00
a parcel containing an infinite term does not automatically become infinite, for instance, and doing so appears to be difficult in the current model
dalek ecs: 197e481 | (Stéphane Payrard)++ | S99-glossary.pod:
S99: more entries, typos, reordering
16:02
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:03
(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
TimToady WHERE HAVE YOU BEEN!?!
but we're really not
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 :)
TimToady linked lists are a terribly way to approach parallel processing
*ble 16:06
dalek ecs: b6658f6 | (Stéphane Payrard)++ | S99-glossary.pod:
S99: correct many malformed links
TimToady the FP community is still trying to recover from that
and Lisp itself was pretty cavalier about the subject of purity, compared to some of its offspring 16:07
especially Haskell 16:08
we probably need a way to mark our gathers as pure or impure, for instance 16:09
16:10 domidumont left
TimToady though we can probably detect that some gathers have no external side effects, so are effectively pure from a batching standpoint 16:10
FROGGS TimToady: I'm spectesting that now: gist.github.com/FROGGS/402a9735c371aa43d157 16:11
the nativecall test passes and also Bool.roll(*)[^100] 16:12
16:12 rindolf joined
TimToady you've probably broken autotruncation though 16:12
FROGGS yeah, spectests got stuck already >.<
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
16:15 [Sno] joined 16:16 fhelmberger joined
TimToady kurahaupo: well, xahlee.info/comp/Guy_Steele_paralle...uting.html for instance 16:17
moritz kurahaupo: basically, trees are much better suited for divide-and-conquer, and you can parallelize the divided tasks 16:18
16:19 fhelmberger left
FROGGS dinner & 16:20
kurahaupo ok, I'll have a read, thanks
TimToady historically, most FP languages have enforce a head/tail view of divide/conquer, and that doesn't scale
*enforced
FROGGS jnthn: when you have some brane cells left, can you take a look at the last line of github.com/jnthn/zavolaj/issues/11 ? 16:21
TimToady well, strongly defaulted to, perhaps not enforced
these languages are turing complete, after all
16:21 chenryn left
TimToady kurahaupo: so P6 has lists, but they are not based on => cells 16:22
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
fortunately, that's not the only way for a computer language to succeed :)
16:26 dayangkun left 16:28 rindolf left, grondilu joined
TimToady anyway, that is why good Perl 6 style avoids accumulators, but uses things like reductions and hypers instead 16:28
16:28 rindolf joined
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␤␤»
grondilu ^this is a bit annoying.
TimToady and why we need to extend hyper semantics from operators to list functions like map
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:30
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
TimToady suggests not violating the [] contract, but using {} instead, as S09 suggests 16:32
P5 got into bad trouble trying to make [] origins other than 0
grondilu looks in S09 16:33
16:33 virtualsue left
TimToady that part of S09 is NYI, of course :) 16:33
grondilu haha 16:34
oh sorry I thought you meant "not written yet"
kurahaupo wonders what hyper-map would do 16:37
TimToady not care what order the mapping is done, as long as the order of results is conserved 16:38
if you don't care about the latter, it's called "race" instead of "hyper"
kurahaupo oh, just ordinary functional map then 16:39
TimToady yes, fsdo functional not including various funtional programming languages :)
in the sense that they enforce order despite the supposed purity of the function 16:40
16:40 rindolf left 16:41 shlomif joined
kurahaupo hypermap is easier to implement if the return value of the function is of fixed arity 16:41
16:41 shlomif is now known as rindolf
TimToady well, sure 16:41
except, in p6think, it's always fixed arity of 1
since map returns parcels 16:42
and a .flat is needed somewhere if you mean it
grondilu m: class Foo { method postcircumfix:<{ }>($n) { max(0, $n) } }; say Foo.new{-1}; # this is OK, right?
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␤␤»
TimToady m: say (1..3).map({ 'x' xx $_}).perl 16:43
camelia rakudo-moar 83a5f5: OUTPUT«(("x",), ("x", "x"), ("x", "x", "x")).list␤»
kurahaupo needs to go reread the synopses; stuck in P5-land for $DAYJOB
TimToady m: say (1..3).map({ 'x' xx $_}).elems
camelia rakudo-moar 83a5f5: OUTPUT«3␤»
TimToady see, exactly 3 results (as of last night :)
so it will be perfectly natural to implement hyper-map to return an array of parcels by default 16:44
and each thread can just plonk its results into a known position 16:45
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
we want to integrate well with non-FP paradigms as well 16:47
so maps can be stateful by default
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
TimToady well, but lazy is also FP :) 16:50
cognome { ([\*] 1..*)[*-1] }(20) # should the 1..* computed lazily here?
TimToady and we assume that, so we can't also assume hyper, which is kind of the opposite
kurahaupo oh, right
erm, hang 16:51
on
TimToady lazy -> batchy -> eager -> hyper -> race
kurahaupo not necessarily
TimToady one could, of course, have a pragma to default it the other way
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
that's why we're talking about a big list refactor
but this really needs to be negotiated between supplies and demands, not enforced one way or another in the lexical scope 16:53
16:54 dakkar left
TimToady in fact, batchy probably wants to be subdivided into constant batches and scaling batches 16:55
the latter working like TCP slow-start
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
so an implementation that produces a larger batch each time could scale nicely
both up and down
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:57
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
*too
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
which doesn't vivify the list yet
TimToady well, we're lazy by default :)
timotimo right
TimToady but that should just be the default default, in the absence of other information
timotimo what does "constant folding a range" mean?
TimToady we're just not very good at distributing the other information yet 17:00
timotimo aye
TimToady 10..20 is a constant, it just happens to contain 11 subvalues
timotimo mhm
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
and having a for loop over a range already turns into a while loop
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
camelia rakudo-moar 83a5f5: OUTPUT«(Complex)␤»
TimToady otoh, sequential access to memory is usually pretty fast too
what with prefetching
m: say (i*i).WHAT 17:03
camelia rakudo-moar 83a5f5: OUTPUT«(Complex)␤»
TimToady well, Complex are intentionally a bit sticky, since otherwise your sqrt will misbehave
m: say sqrt(-(i*i)) 17:04
camelia rakudo-moar 83a5f5: OUTPUT«1+-0i␤»
TimToady m: say sqrt(i*i)
camelia rakudo-moar 83a5f5: OUTPUT«6.12323399573677e-17+1i␤»
TimToady if you narrow that, it fails
m: say sqrt (i*i).narrow
camelia rakudo-moar 83a5f5: OUTPUT«NaN␤»
17:05 jack_rabbit joined
itz_ m: say $*DISTRO 17:05
camelia rakudo-moar 83a5f5: OUTPUT«linux (3.2.0.37.generic)␤»
itz_ m: say $*KERNEL
camelia rakudo-moar 83a5f5: OUTPUT«linux (30.Ubuntu.SMP.Wed.May.1.16.35.23.UTC.2013)␤»
itz_ why does the distro name appear in kernel and noit in distro?
17:06 rindolf left
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
grondilu as opposed to multi sqrt(Real $x) returns Real
17:06 rindolf joined
grondilu ok 17:06
TimToady there's a lot of tradition for that decision as well
so we made Complex a bit stickier instead 17:07
rather like BigRats are sticky
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:08
17:11 gfldex joined, anaeem1_ joined 17:12 kaleem left 17:19 rindolf left, rindolf joined
itz_ hmmm maybe I should try and compile on Debian GNU/kFreeBSD to check KERNEL v DISTRO :> 17:24
[Coke] lots of failing tests in nqp's prove -v t/docs 17:29
feather.perl6.nl/~coke/ops_need_docs.out 17:31
timotimo: ^^ there's another boring job. :) 17:32
17:33 muraiki_ joined 17:34 muraiki_ left, muraiki joined, BizarreCake joined
cognome [coke] why a documented opcode would fail? 17:35
FROGGS [Coke]: not ok 1258 - documented op '' exists in moar
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])␤»
grondilu something like subset Vector of ???
FROGGS cognome: what line do you mean?
cognome not ok 5 - Opcode 'ctxouterskipthunks' (parrot;jvm;moar) is documented
[Coke] hoelzro: rt.perl.org/Ticket/Display.html?id=71812 17:37
look at the tags.
grondilu (subset Vector of Hash[Any,Int][Real] does not work)
[Coke] FROGGS: that is slightly less LHF. no idea why that's finding an empty opcode name
cognome: that opcode is not documented, so the test fails. 17:38
docs are in nqp's docs/ops.markdown
17:40 rindolf left
cognome [Coke] where is the script that generates these errors 17:40
17:41 rindolf joined
[Coke] t/docs/opcodes.t 17:42
there's another one that checks to see if the opcodes are tested.
dalek ecs: af7df45 | (Kamil Kułaga)++ | S26-documentation.pod:
--doc=html

s//html/HTML
ecs: 25bbfb5 | (Tobias Leich)++ | S26-documentation.pod:
Merge pull request #68 from teodozjan/master

  --doc=html
hoelzro [Coke]: thank you sir =) 17:44
cognome [coke] I mean in each repository?
* which
FROGGS cognome: nqp 17:45
17:46 kjs_ left 17:48 Ven joined
[Coke] cognome: github.com/perl6/nqp/tree/master/t/docs 17:54
Ven well met, #perl6 17:55
timotimo hmm 17:56
hoelzro o/ Ven 18:02
18:02 huf left
cognome \o Ven-erable 18:02
Ven oh please.
TimToady it is the ending of one age, and the beginning of another... 18:03
18:03 huf joined
TimToady but all I know is my toes are hairy 18:04
timotimo TimToeHairy?
Ven "Free is a lie" is an incredible talk by Aral Balkan
timotimo++ # eh
TimToady well, at least lies are free :)
well, some of 'em...
.oO("Those words fall too easily from your lips.")
18:05
timotimo "free() is a lie"?
18:06 kurahaupo left
Ven timotimo: yes. please use MVM_free instead 18:06
TimToady "MVM_Free!" —MVM_Pseudolus 18:07
hoelzro MVM_free your mind
TimToady MVM_free Beer! 18:08
18:09 rindolf left, rindolf joined 18:12 molaf__ joined
hoelzro should it be possible to have an empty table in POD? 18:12
ex. EVAL "=for table\n"
PerlJam er, that would have to be "=for table\n\n" wouldn't it? 18:14
(and IMHO, yes, it should be possible)
hoelzro alright, just sanity checking =) 18:15
18:15 molaf_ left, spider-mario left, kjs_ joined
PerlJam Maybe as a lint-check or with warnings turned up a little, an empty pod directive should carp about it though. 18:16
er, perl should carp about it. 18:17
18:19 BizarreCake left
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:19
18:20 raiph left
PerlJam yeah, I'm all about Postel's Law 18:21
18:23 rindolf left 18:24 rindolf joined
nine Is there a way to force a GC run? 18:32
18:34 Ven left, BizarreCake joined
FROGGS nine: programatically? 18:37
or just for testing?
18:37 nine left 18:38 nine joined
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.
nine: FROGGS was asking if you wanted this "programmatically" or "just for testing"? 18:39
nine For programmatic testing ;) 18:40
18:40 raiph joined
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
nine: you can reduce the MVM_NURSERY_SIZE to about 600, then it will collect very often 18:41
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
cognome .u ⦄ 18:43
yoleaux U+2984 RIGHT WHITE CURLY BRACKET [Pe] (⦄)
cognome where is the code for yoleaux .u? 18:45
18:47 virtualsue joined
[Coke] guesses github.com/dpk/yoleaux 18:47
cognome Indeed it answers to the requests described in dpk.io/yoleaux 18:49
.mangle Larry owns the colon 18:50
yoleaux cognome: Sorry, that command (.mangle) crashed.
18:50 virtualsue left 18:51 brrt joined
brrt \o 18:51
18:51 kjs_ left 18:55 darutoko left 18:56 spider-mario joined, spider-mario left 18:59 spider-mario joined 19:03 sqirrel joined
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:09
19:10 telex left 19:12 telex joined 19:14 BizarreCake left
brrt would advise against it 19:15
19:17 Ven joined, vendethiel joined 19:18 Ven left
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:18
then you hope that no real code asks for 12345678987654321 bytes, or whatever you picked... 19:20
or maybe just do that on a negative request :)
19:23 grondilu left, domidumont left 19:27 cooper joined, cooper left, cooper joined 19:28 anaeem1_ left 19:32 kjs_ joined
brrt yeah, i'm totally no authority on it, but i regard programmatic interface to vm internals of a fairly low priority 19:34
we may want to change those internals :-)
nine Well there seems to be a HLL::Backend::MoarVM::force_gc but it's not yet implemented. 19:40
19:42 BizarreCake joined
brrt hmm 19:43
19:43 _thou left
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
let me ask it another way
what is helped by it?
19:47 virtualsue joined
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
i see
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:48
brrt fair enough 19:49
let me see if i can make something quick for you
(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:51 virtualsue left
brrt hmm 19:57
the designspace is somewhat bigger than my brane
i'll keep it in mind, though
19:59 brrt left
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␤␤»
hoelzro how does one catch exceptions from an EVAL? 20:12
timotimo with try 20:13
your code is correct except it doesn't mark the exception as handled
m: try { EVAL "die 'nothing'" ; CATCH { default { } } }
camelia ( no output )
hoelzro ah ha, thanks timotimo
FROGGS you just have to call .Bool on the exception (that is what the default block does) 20:14
hoelzro interesting 20:15
FROGGS that is how if-clausing a Failure makes it not explode 20:16
hoelzro oh, that makes sense
FROGGS yeah, a very thought through principle 20:17
timotimo right
20:18 pyrimidine joined
vendethiel uh, ocaml added open types back in 20:19
backed in*
20:25 sqirrel left 20:33 japhb_ is now known as japhb 20:36 lizmat left 20:40 BizarreCake left
timotimo is base.t known t ob9rk? 20:43
b0rk* 20:44
# expected: '0.0000000000000000000010' 20:45
# got: '0.01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
20:45 pecastro left
timotimo and i'm failing a bunch of TZ related tests 20:45
can folks try the dynamic_gen2_tuning branch of MoarVM against different kinds of workloads? 20:48
especially multi-threaded stuff would be good
20:51 Tony_ joined
Tony_ Hello? 20:51
PerlJam Tony_: hi!
Tony_ Cool.
timotimo hi there 20:52
cognome r: say ', 2' ~~ m/',' 2/
20:52 guru joined
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␤»
Tony_ *to learn
20:52 guru is now known as Guest83313
cognome r: say ', 2' ~~ m/','\s2/ 20:53
camelia rakudo-{parrot,jvm,moar} 83a5f5: OUTPUT«「, 2」␤␤»
cognome ho, I am thinking in Perl 5 again :(
need to learn to unlearn or to switch fast :( 20:54
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:55
20:55 Guest83313 is now known as ajr_
PerlJam Tony_: If I were you, I'd probably try Perl 6 for the course. 20:56
Tony_ mmmk
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?
Tony_ I have decent experience with the major OOP languages, as well as decent experience with a few functional languages. 20:58
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 kaare_ left
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
21:00 pmurias joined 21:01 dolmen joined
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.
I also know a bit of bash, if that helps. 21:02
21:02 gfldex left
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)
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.
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
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.
PerlJam pmurias: what's "fully done" mean? ;) 21:05
cognome When we mark some of the specs as "will be implemented post 6.0" 21:06
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" :)
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.
Tony_: however, Perl 6 has more built-in language support for some of those styles than Perl 5. :) 21:09
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.
pmurias and what do you want to base your choice on? 21:11
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:14
PerlJam Tony_: Oh, Perl 5 would be perfect for that IMHO. 21:15
Tony_ Ah ok.
Thank you.
PerlJam (Perl 6 too if only it had more admin stuff in the ecosystem)
Tony_ Well, I'll go ahead and focus on Perl 5, but learn 6 in my free time. 21:16
PerlJam cool.
vendethiel does all his pseudo-sysadmin stuff on p6, and is pretty happy about it :-)
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?
PerlJam vendethiel: Have you written about that in public? Have you shared any P6 programs you use? 21:18
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:19
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"? ;)
Tony_ haha Of course they are.
vendethiel PerlJam: I even talked about them ;-)
how to add a suffix to every file in the dir? well, 6 'rename($_, "$_.bak") for dir' 21:22
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
on that note, 'night, #perl6! 21:24
PerlJam oops, time for me to depart too. later all!
PerlJam &
Tony_ Bye all! Have a nice day. 21:25
21:25 Tony_ left 21:29 kjs_ left 21:33 dwarring joined 21:41 kjs_ joined
dalek p: d1f23dd | (David Warring [email@hidden.address] | examples/rubyish/ (3 files):
rubyish - handle revised nqp::for iteration on hashes

nqp::for on a hash object now returns an iterator object. nqp::iter_key and nqp::iter_val are used to extract the key and value respectively.
21:43
21:44 avuserow left
timotimo is now running a benchmark suite run with the adaptive full collection code tuning thingie 21:47
in one of the tests, it ended up not doing a single gen2 collection for about 200 gc runs, then quitting 21:50
22:01 pmurias left
timotimo in the benchmarks, an improvement is kind of hard to spot :\ 22:04
in all but one benchmark it seems even slower than it was before 22:05
that's weird.
so. rc-9-billion-names did one full collection taking 45ms and 450 in total spanning from 9.1ms to 4.8ms 22:10
ah, the overview has the data, too
The average nursery collection time was 5.7ms. The average full collection time was 45.42ms.
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:12
TimToady yes, base.t is known borkuped 22:13
timotimo why the hell wouldn't method Bool of List get spesh'd?! 22:16
it just does self.gimme(1).Bool
22:16 treehug88 left 22:18 pyrimidine left, _thou joined, kjs_ left
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:20
[Coke] if you count devops, there's some life innit. 22:21
TimToady my brother-in-law told me when I was going into sysadmin that it was a dead-end job :) 22:23
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 22:33 bjz left, bjz_ joined 22:35 Psyche^ left 22:37 rindolf left 22:38 noganex_ left 22:44 cognome left, cognome joined 22:45 noganex joined 22:51 lizmat joined 23:00 xragnar_ joined, xragnar is now known as Guest89767, Guest89767 left, xragnar_ is now known as xragnar
TimToady m: (0..9,'A'..'Z').perl.say 23:08
camelia rakudo-moar 83a5f5: OUTPUT«(0..9, "A".."Z")␤»
TimToady m: (0..9,'A'..'Z').[1].say
camelia rakudo-moar 83a5f5: OUTPUT«"A".."Z"␤»
TimToady yeah, that's the base.t screwup
TimToady looks around for someone else to blame, unsuccessfully... 23:11
that's probably gonna screw up a few P5 programmers...
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)(Int|4)(Int|5)(Int|6)(Int|7)(Int|8)(Int|9)(Scalar|15266784)(Str|B)(Str|C)(Str|D)(Str|E)(Str|F)(Str|G)(Str|H)(Str|I)(Str|J)(Str|K)(Str|L)(Str|M)(Str|N)(Str|O)(Str|P)(Str|Q)(Str|R)(Str|S)(Str|T)(Str|U)(Str|V)(Str|W)(Str|X)(…»
lizmat hmmm.... that feels... weird ?
TimToady surely a Range is defined by its endpoints and exclusions? 23:19
something's .listing it unnecessarily
lizmat it's doing @(self)
TimToady well, that's .list in disguise, don't suggest you ask for the .WHICH of 1..1000000000000 23:20
lizmat m: my $p = (1,2,3); say $p.WHICH 23:21
camelia rakudo-moar 83a5f5: OUTPUT«Parcel|(Int|1)(Int|2)(Int|3)␤»
lizmat need *some* kind of listing for this case
m: (1..10).WHICH.say # this would arguably then also be wrong 23:22
camelia rakudo-moar 83a5f5: OUTPUT«Range|54711744␤»
lizmat as a range is immutable?
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:23
23:24 xenoterracide joined
dalek kudo/nom: bf4b469 | TimToady++ | src/core/Rational.pm:
gotta flatten parcel before subscripting, oopsie
23:26
TimToady that fixes base.t
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
for some reason
lizmat ah, ok
a workaround for a NYI then
TimToady tried constant too, and my constant
none worked, except state
lizmat $ 6 '(1^..^10).WHICH.say' 23:28
Range|1^..^10
better for Range for now, I would think, right?
TimToady yay-ish, modulo the injection bug :)
but that's something for another day
lizmat yup 23:29
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"␤»
TimToady hmm
m: my $p = (<a b c>,<d e f>); .perl.say for $p[0,1]
camelia rakudo-moar 83a5f5: OUTPUT«"a"␤"b"␤"c"␤"d"␤"e"␤"f"␤»
TimToady m: my $p = (<a b c>,<d e f>); $p.perl.say
camelia rakudo-moar 83a5f5: OUTPUT«$(("a", "b", "c"), ("d", "e", "f"))␤»
TimToady m: my $p = (<a b c>,<d e f>); $p[0].perl.say 23:31
camelia rakudo-moar 83a5f5: OUTPUT«("a", "b", "c")␤»
lizmat the * is forcing a listy ?
TimToady m: my $p = (<a b c>,<d e f>); $p[0].WHICH.say
camelia rakudo-moar 83a5f5: OUTPUT«Parcel|(Str|a)(Str|b)(Str|c)␤»
TimToady yeah, probably
23:32 spider-mario left
TimToady need to iterate parcel elems without using range, I guess 23:32
m: my $p = (<a b c>,<d e f>); .say for $p.values
camelia rakudo-moar 83a5f5: OUTPUT«a␤b␤c␤d␤e␤f␤»
TimToady maybe we need a special method values in a parcel? 23:33
dalek kudo/nom: 49af621 | (Elizabeth Mattijsen)++ | src/core/Range.pm:
Preliminary Range.WHICH
TimToady m: my $p = (<a b c>,<d e f>); .perl.say for $p.lol[0,1]
camelia rakudo-moar 83a5f5: OUTPUT«$("a", "b", "c")␤$("d", "e", "f")␤»
TimToady well, that's kinda overkill 23:34
and wrongish for ID purposes
well, at least a parcel always has a finite .elems
so you can just loop
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")␤»
TimToady m: my $p = (<a b c>,<d e f>); $p[$_].WHICH.say for 0..^$p.elems
camelia rakudo-moar 83a5f5: OUTPUT«Parcel|(Str|a)(Str|b)(Str|c)␤Parcel|(Str|d)(Str|e)(Str|f)␤»
TimToady something like that
23:36 nick_____ joined
nick_____ yellow 23:36
TimToady m: my $p = (<a b c>,<d e f>); .perl.say for $p[*] 23:37
timotimo ohai
camelia rakudo-moar 83a5f5: OUTPUT«"a"␤"b"␤"c"␤"d"␤"e"␤"f"␤Mu␤»
TimToady m: my $p = (<a b c>,<d e f>); .perl.say for $p[]
camelia rakudo-moar 83a5f5: OUTPUT«"a"␤"b"␤"c"␤"d"␤"e"␤"f"␤»
timotimo huh, where does that Mu come from i wonder ...
nick_____ any idea when we can use rakudo jvm for frameworks
timotimo please explain what "for frameworks" means?
TimToady we've already got a Dancer clone(ish) 23:38
nick_____ really cool, i like Dancer
how does it run on jvm
what is the framework called the dancer (ish) one 23:40
dancer6? maybe
TimToady Bailador
haven't tried it, not really a webperson
lizmat $ 6 'my $p = ((1,2,3),(4,5,6)); $p.WHICH.say' 23:42
Parcel|(Parcel|(Int|1)(Int|2)(Int|3))(Parcel|(Int|4)(Int|5)(Int|6))
dalek kudo/nom: 41d7f71 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
Don't flatten when creating .WHICH
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
timotimo that's cool :)
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
lizmat wonders whether we shouldn't huffmanize the types in .WHICH for value types
I1 instead of Int|1
23:45 BenGoldberg joined
timotimo ah, you were here last night recommending an otter, was that you? 23:45
nick_____ yea, it be honest lol
to be i mean
timotimo i like the butterfly :P
lizmat S|foo instead of Str|foo 23:46
23:46 cooper left
nick_____ i do scripting and unix working with java for living etc.. in other word a admin 23:46
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
lizmat R157/50 instead of Rat|157/50
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
lizmat anyways, been a long day again with a lot of driving and talking... so going to inspect the inside of my eyelids
gnight, #perl6!
nick_____ lol
welllllllllllll , i was thinking neutral mascot that all, something that shows the odd but efficacy of perl 23:49
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:51
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.
BenGoldberg nick_____, On the other hand, "Butterflies are free", and with perl, you are *free* to do what you want :)
lizmat you rang?
yoleaux 23:52Z <japhb> lizmat: What does your '6' alias do? Is it just '/path/to/perl6 -e' ?
lizmat alias 5='perl -E' 23:53
alias 6='perl6 -MTest -e'
alias 6l='perl6 --ll-exception -MTest -e'
sleep&
timotimo useful!
hey japhb :)
japhb: i seem to recall i sent some messages your way 23:54
japhb timotimo: Hello there
timotimo did you get anything?
nick_____ true, and know butterflies help spread the beauty of the lang, but remember the camel represent ugly but efficiency, survivals etc...
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.
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:55
Thanks, lizmat 23:56
timotimo hold on.
diakopter japhb: ask dpk
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
i sent them to japhb_
diakopter diakoper: maybe there's a reason dpk knows
er 23:58
fail at teasing japhb for addressing himself
23:58 tardisx left, tardisx joined
diakopter .tz 23:59
yoleaux diakopter: I don't currently have a timezone preference set for you.
diakopter .in 0s boo
yoleaux diakopter: Sorry, I don't understand your duration. Try using units: 1h30m, 1d, etc.
diakopter .in 1s boo
yoleaux diakopter: I'll remind you at 23:59Z
diakopter: boo
diakopter .in 999999999999999999y boo
yoleaux diakopter: I'll remind you on 2 Sep 999336057550807353 17:06Z