»ö« 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.
dalek kudo/lolly: a433f3f | TimToady++ | src/ (8 files):
add SEQ(a; b) circumfix to do what (a; b) did

The $() construct also assumes sequence semantics, since it only wants one value. These are roughly equivalent except where nqp macros need SEQ() to compile down to the bare sequence of statements without any addition coercion. $() also works for code that wants to be backward compatible to pre-lolly days, like spec tests.
00:21
ecs: 63a0d61 | TimToady++ | S06-routines.pod:
Remove notion of stacked feeds

The proposed syntax for stacked feeds is now going to be used by LoL composers.
00:28
dalek ast: e1e9543 | TimToady++ | / (9 files):
lolly-proof uses of (;)
00:56
dalek kudo/lolly: 03e22fd | TimToady++ | src/core/LoL.pm:
Don't loop on 0-art infix:<Z>
02:23
Mouq m: say *.WHICH 02:25
yoleaux 17 Aug 2014 11:16Z <lizmat> Mouq: scalars can only be indexed with [0], and nothing else
camelia rakudo-moar 05f006: OUTPUT«WhateverCode.new()␤»
yoleaux 17 Aug 2014 11:18Z <lizmat> Mouq: although I'm not sure where that is specced
Mouq m: say (my $ := *).WHICH 02:26
camelia rakudo-moar 05f006: OUTPUT«Whatever|140418567167992␤»
Mouq ^^ I'm *pretty* sure Whatevers are immutable :P
TimToady well, lolly still fails 13 more tests than nom, but at least it gets through without looooooping now 02:38
TimToady guesses those 13 fails are only two or three bugs though 02:39
lee_
.oO( lollyloop, lollyloop )
02:42
Mouq m: DateTime.new("2014-01-01T00:00:61Z").say 02:48
camelia rakudo-moar 05f006: OUTPUT«second out of range. Is: 61, should be in 0..^60; No second 61 has yet been defined␤ in method check-time at src/gen/m-CORE.setting:15579␤ in method new at src/gen/m-CORE.setting:15565␤ in method new at src/gen/m-CORE.setting:15661␤ in block a…»
dalek Heuristic branch merge: pushed 86 commits to rakudo/S26-WHY by hoelzro 02:58
Mouq m: my @a; @a[0..*] = 1..*; say @a[3] 03:04
camelia rakudo-moar 05f006: OUTPUT«(Any)␤»
Mouq m: my @a = 0..10; @a[0..*] = 1..*; say @a[3] 03:05
camelia rakudo-moar 05f006: OUTPUT«4␤»
dalek kudo/S26-WHY: 9b6a63a | (Rob Hoelz)++ | src/Perl6/ (2 files):
Apply role decl comments to candidates, not groups
03:06
TimToady @a[0..*] isn't abstract enough to do that, it's defined to stop at the actual size 03:10
dalek ast/S26-WHY: 252b93e | (Rob Hoelz)++ | S26-documentation/why- (3 files):
Test for role decl comments on candidates, not role groups
03:32
Mouq TimToady: Oh, alright. I'm just trying to figure out how to get @a[1;2] to autovivify 03:57
Mouq m: .WHICH.say for True, False, True, False 04:13
camelia rakudo-moar 05f006: OUTPUT«Bool|52348152␤Bool|52348112␤Bool|52348152␤Bool|52348112␤»
TimToady Mouq: did you fix @a[]:kv and such to return everything since I forked lolly? 04:19
Mouq m: my @a = [ [1,2,3], [4,5,6] ], [ [7,8,9], [10,11,12] ]; say @a[*;*;1]:kv; # like this? 04:20
camelia rakudo-moar 05f006: OUTPUT«0 0 1 0 2 1 0 1 5 1 0 1 1 8 1 1 1 11␤»
Mouq m: my @a = [ [1,2,3], [4,5,6] ], [ [7,8,9], [10,11,12] ]; say (@a[*;*;1]:kv).perl; # like this?
camelia rakudo-moar 05f006: OUTPUT«((lol(0, 0), 1), (lol(0, 2), 1), (lol(0, 1), 5), (lol(1, 0), 1), (lol(1, 8), 1), (lol(1, 1), 11))␤»
Mouq Wait what? 04:21
TimToady I mean specifically the Zen slice
empty []
Mouq m: my @a = [ [1,2,3], [4,5,6] ], [ [7,8,9], [10,11,12] ]; say (@a[*;*;1]:p).perl;
camelia rakudo-moar 05f006: OUTPUT«(lol(0, 0, 1).item => 2, lol(0, 1, 1).item => 5, lol(1, 0, 1).item => 8, lol(1, 1, 1).item => 11)␤»
Mouq Looks like :kv is broken anyway.. 04:22
but no, I didn't even know that was an issue
TimToady m: my @a; say @a[].WHAT
camelia rakudo-moar 05f006: OUTPUT«(Array)␤»
TimToady I get Parcel here, sight 04:23
Mouq m: my @a = <a b c>; say (@a[]:kv).perl
camelia rakudo-moar 05f006: OUTPUT«((0, "a"), (1, "b"), (2, "c"))␤»
TimToady *¬t
lolly currently gets () :/ 04:24
I don't know where zen slice is recognized
and I've probably messed up the secret handshake in changing semilist 04:25
Mouq Maybe lolly's making LoLs too zealously?
TimToady doesn't make LoL unless there are more than 2 things
currently return an infix:<,> to generate an empty parcel, but obviously that's not exactly what the [] recognizer is looking for 04:26
dalek kudo/nom: e55e04b | Mouq++ | src/core/array_slice.pm:
Fix @a[*;1]:kv
04:32
TimToady okay, got zen slices working again, wonder what I broke now :) 04:49
TimToady oh wow, obviously most of the failures were from that 04:52
TimToady though I got one back, obviously the one I "fixed" when I broke zen 04:53
dalek kudo/lolly: 675242a | TimToady++ | src/Perl6/Actions.nqp:
unbreak zen slices
04:57
TimToady down to just three failures peculiar to lolly now 04:57
dalek kudo/lolly: 2e4ccda | TimToady++ | src/Perl6/ (2 files):
keep () from disappearing prematurely

also fix tabs
05:17
TimToady okay, none of the spectest fails are lolly's fault; it it wasn't a release week, I'd merge it 05:26
maybe I'll try a reverse merge 05:28
Mouq TimToady++
dalek kudo/lolly: 7752c57 | duff++ | src/core/LoL.pm:
Prevent infinite recurse on bare "zip"; fixes RT #119337
05:32
rakudo/lolly: a756a17 | (Elizabeth Mattijsen)++ | lib/Test.pm:
rakudo/lolly: Small tweaks, more Perl6isms
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119337 05:32
TimToady huh, how come that didn't list your last patch? 05:33
oh, I kill dalek dead
so deathness
diakopter mostly dead
TimToady > say (<a b c>;1,2,3).perl 05:35
lol($("a", "b", "c"), $(1, 2, 3))
> say [<a b c>;1,2,3].perl
[$("a", "b", "c"), $(1, 2, 3)]
TimToady > say SEQ(<a b c>;1,2,3).perl 05:37
WARNINGS:
Useless use of "a b c" in expression "a b c" in sink context (line 1)
(1, 2, 3)
> say $(<a b c>;1,2,3).perl 05:38
WARNINGS:
Useless use of "a b c" in expression "a b c" in sink context (line 1)
$(1, 2, 3)
I decided to add a SEQ macro rather than an infix:<S>, at least for now
Mouq Unless you changed LoL.perl locally, shouldn't say [<a b c>;1,2,3].perl -> lol($("a", "b", "c"), $(1, 2, 3)).item ? 05:42
TimToady [] should make an array 05:43
(I think...) 05:44
seems like a 2D array is more likely to be useful than an itemized lol 05:45
anyway, I think I'm about done for the night, so feel free to checkout lolly and fiddle with it 05:48
we still need to decide what kind of migration strategy is appropriate 05:49
if we put off merging lolly till after this version, I think this version should have some warning that lollipops are going to explode
but I really dunno how many modules use lollipops for sequencing 05:50
TimToady actually, I didn't spectest after the reverse merge, better go do that... 05:55
Mouq nom should probably get the SEQ macro in that case.. 05:58
Mouq 's face is almost recovered after a caterpillar landed on him yesterday 05:59
Some caterpillars have toxic hairs. Who knew?
TimToady yes, it needs that at least for gather/take, even if everywhere else can get by with $() 06:03
Mouq So.. what is LoL? Currently it and Array are 'is List', but Lists are mutable, whereas LoL almost wants to be more like a Parcel, it seems... 06:08
TimToady Yeah, it's really more like a PoP 06:09
though I suppose in theory one could have a generator of lists on the end of a LoL 06:11
but I think list of list is how people will tend to think of it, whatever we call it 06:12
and we have specced the || interpolater that could generate a supply of lists, so it's at least extensible, if not quite mutable in its reified elements 06:14
TimToady should obviously go to bed soon, since he's thinking about lols and their similarity to logarithms: both are kind of metadata used to find the real values :) 06:16
and both of them flatten out something that would otherwise not appear flat 06:17
Mouq Haha, 'night TimToady, I plan on doing the same 06:19
j4jackj TimToady: Hi. Of non-Perl languages, which is your favourite? 06:23
TimToady English, then Japanese :) 06:26
j4jackj TimToady: I mean, programming languages
TimToady I program people in English all the time :) 06:27
j4jackj No, I mean languages for programming computers. :-P
j4jackj TimToady: are you deliberately being sarcastic? 06:27
TimToady not sarcastic, merely objectionably prone to misinterpret ambiguity intensionally :) 06:28
intentionally, even 06:29
j4jackj TimToady: what is your favourite non-Perl language in which to program computers?
TimToady well, I suppose C
j4jackj Hopefully your head won't explode when I say... "I like Tcl" 06:30
TimToady it has its merits
j4jackj TimToady: do you ever mess around with ZNC, a program which has a module to load modules written for it in Perl? 06:31
TimToady never heard of it
j4jackj ZNC is an irc bouncer
TimToady hasn't done much irc automation
j4jackj ZNC itself is in C++, but it can load modules which are written in Perl. 06:32
TimToady if I started playing with irc, I'd probably reinvent the whole darn thing
j4jackj I almost tried that once.
Timbus please do
j4jackj (Just remember, you're talking to a 14 year old.) 06:32
TimToady is first trying to invent the correct language for reinventing the whole darn thing :) 06:33
.oO(Perl 6 as a very large yak to shave.)
if you like comparitive (computer) linguistics, you should check out rosettacode.org 06:34
*comparative
gah, you'd think I was about to turn into a pumpkin or something 06:35
j4jackj wow
TimToady so what's a 14-year-old doing with an address in Tonga? 06:36
j4jackj Lols. That's kinda the problem. afraid.org had a domain (uk.to) I could subdomain (caffeinet.uk.to) 06:37
The rDNS in question is a semi-serious joke about pulling all nighters
TimToady what TZ are you in? 06:38
j4jackj PDT 06:39
TimToady nice place :)
j4jackj Western Canada, to be precise 06:40
TimToady first time I've ever heard half of Canada referred to as "precise" :)
j4jackj XD 06:41
Well, just bout northern BC
TimToady I've only been up as far as Lilloett (sp?)
well, except for watch it go by on an Alaskan cruise :) 06:42
oh, Lillooet
but there's lots of BC north of the last you can see from the coast even 06:44
well, okay, I've been to Yoho/Banff, which I guess is norther by a bit 06:46
j4jackj Banff is in Alberta...? 06:53
TimToady no, but those parks kinda go together
it's silly to do one and not the other
I mean, yes, it's in Alberta :) 06:54
though I wasn't much older than you when I was last there... 06:56
sergot hi o/
TimToady \o
TimToady ooh, and there's an address from Christmas Island :) 06:59
FROGGS morning o/ 07:01
timotimo hello 07:14
raydiak \o 07:23
FROGGS[mobile] masak / jnthn: guess why they always 'say 3'? look at the topic :p 08:24
timotimo: the Perl 6 v5 passes now 32.8% of the NQP version 08:28
timotimo great news! i'll be sure to mention it in the weekly 08:32
FROGGS[mobile] thanks :o) 08:36
sergot Do you know something about the panda's segfault? 08:53
I've just got it on another box.
FROGGS sergot: somebody else reported that yesterday evening too 08:55
sergot ok 08:56
jnthn Darn...I can reproduce it too 09:02
Panda rebootstraps fine and passes tests. Then explodes on trying to use it. :/
FROGGS might it be a precomp issue? has to, right? 09:03
jnthn No idea...the modules are precomp'd when it tests them.
Under debugger it gives "Internal error: zeroed target thread ID in work pass" 09:06
So could very easily relate to the v5 issue too
(As in, the issue v5 suffers from)
nwc10 jnthn: and here you were thinking that you'd get to write conference talks today? 09:07
jnthn nwc10: Well, got some $dayjob things to take care of first, also... 09:09
On the upside, one of the pieces of code I wanted to write for one of my talks is about done... :) 09:10
masak FROGGS[mobile]: yeah, lue++ found that out for us, too. 09:23
good antenoon, #perl6
jnthn o/ masak
sergot masaku o/ 09:30
woolfy FROGGS: so if I understand that correctly, almost 1/3 of Perl 5 code now can be run in Perl 6? That is wow news. 10:10
FROGGS woolfy: only the third of Perl 5 code that the v5-written-in-NQP supported 10:13
lizmat meanwhile, pulling latest and greatest, I see 2 repeatable spectest error
FROGGS which is about 8000 passing tests of about 90_000 passing tests 10:14
and a third from these 8000 passing tests...
jnthn FROGGS: Any idea of how many of those are about core modules and how many are about the language itself, ooc?
woolfy FROGGS: good news anyway, thanks for explaining
FROGGS jnthn: that's hard to tell 10:15
lizmat t/spec/S29-os/system, test 5; t/spec/integration/advent2009-day06.t, test 15
jnthn feared so
FROGGS but my guess is that at least another 40-50% are about the language support itself
woolfy So if I can ask... if you would convert this to a percentage of "the whole of Perl 5 commands / functions /etc", how much would that be? Ballpark-figure of course...
FROGGS because even when we have about 500 namespaces built-in, these do not make for more than 30k tests 10:16
FROGGS[mobile] about panda: it uses a not-precomp'd version of itself to install itself... so when that works but fails for other modules, it has to be a procomp issue me thinks 10:19
lizmat m: my @a = 1,2,3,4; @a >>/=>> 4; say @a # sanity check: is this correct ?
camelia rakudo-moar e55e04: OUTPUT«0.25 0.5 0.75 1␤» 10:20
FROGGS[mobile] seems so
lizmat ok, then TimToady added a bogus test... :-)
dalek ast: 33be9cc | (Elizabeth Mattijsen)++ | integration/advent2009-day06.t:
Fix recently changed metaop inplace test
10:21
FROGGS[mobile] lizmat: but the test expects something else 10:24
it was correct before, no?
lizmat no, it failed
FROGGS[mobile] but 1/2 is not. 25 10:25
.25*
lizmat # got: '0.25 0.5 0.75 1'
# expected: '0.5 1 1.5 2'
FROGGS[mobile] exactly 10:26
lizmat I did the minimal change, by dividing /2 instead of /4
FROGGS[mobile] ohh, my bad
sorry :o)
dalek ast: 496d7c9 | (Elizabeth Mattijsen)++ | S29-os/system.t:
Fix failing test wrt to chdir sensitivity

But it feels to me the wrong things are being tested here.
10:35
masak I just wanted to flag Su-Shee++'s post as something worth reading: www.reddit.com/r/perl/comments/2dpu..._6/cjteviy 10:47
lizmat masak: not sure how to interpret your ++ in this manner 10:57
masak lizmat: something like "in a thread where personal attacks, inane statements, and mud-flinging reaches all-time lows, this was a post with worthwhile points, and I commend Su-Shee for writing it". 11:00
timotimo i'm not quite sure why that person even posted that thread to begin with; hasn't the question they posed been answered lots of times already? 11:16
FROGGS of course, and somebody will ask again :o) 11:19
comptezero hi all, anyone as an idea to embeded nqp or rakudo jvm version in java like JSR-223 ? 11:51
lizmat m my int @a; say @a.WHAT; my @b of int; say @b.WHAT # I thought these two were equivalent ? 11:53
m: my int @a; say @a.WHAT; my @b of int; say @b.WHAT # I thought these two were equivalent ?
camelia rakudo-moar e55e04: OUTPUT«(Int)␤(Array[int])␤»
jnthn comptezero: It's certainly on the wish list, but I don't know that anybody has worked on it yet 11:54
lizmat m: my Int @a; say @a.WHAT; my @b of Int; say @b.WHAT # the *are* for Int
camelia rakudo-moar e55e04: OUTPUT«(Array[Int])␤(Array[Int])␤»
jnthn lizmat: Native arrays NYI
lizmat m: my @a of int; @a.push: 42 # not as completely NYI as you think 11:55
camelia rakudo-moar e55e04: OUTPUT«Type check failed in .push; expected 'int' but got 'Int'␤ in method push at src/gen/m-CORE.setting:8279␤ in block at /tmp/sMT3AwUjQ1:1␤␤»
lizmat m: my @a of int; @a.push: "foo" # better example
camelia rakudo-moar e55e04: OUTPUT«Type check failed in .push; expected 'int' but got 'Str'␤ in method push at src/gen/m-CORE.setting:8279␤ in block at /tmp/bpkN17IekF:1␤␤»
jnthn lizmat: Well, to put it another way: anything that does work is working out of luck :)
Native arrays (probably called array, not Array) would directly use the VMArray REPR, alot like Blob and Buf already do. 11:56
And needn't be lazy.
lizmat ok, I get that... I'll just mark tests for "@a of int" and "int @a" differently 11:58
(one skip, other todo)
timotimo jnthn: how could a native array be lazy *and* use the VMArray repr? 11:59
jnthn timotimo: It can't, really. :) 12:00
masak I just discovered a case where printing or not printing some output leads to different results in a script of mine.
jnthn masak: Is the difference that you get output in one case and not the other? 12:01
masak no, different results of a computation.
jnthn Oh. Darn.
masak after some thought, I suspect this is because of the copying GC in Moar, and the script's realiance on infix:<===>.
just wanted to report this.
jnthn Ah, yeah
masak not a big thing; I will rewrite the script not to rely on this.
probably the extra output (and there's quite a lot of it) triggers different GC runs somehow. 12:02
jnthn Probably
masak it's quite deterministic in the sense that I always get the right result with the output, and always the wrong one without.
but given the cause, I doubt I'd be able to golf it.
jnthn Yeah; the same program run will allocate the same objects.
masak right.
jnthn And so fill the nursery at the same points
masak anyway, I'm glad I discovered it now rather than later. 12:03
and I'm not gonna rant about it; just looking forward to this one getting fixed eventually ;)
lizmat indeed :-)
jnthn Yeah, somebody should do that...oh, wait... :) 12:04
masak jnthn: what's the fix, by the way? some internal data that holds a unique identity and survives GC copying? 12:08
jnthn masak: I think pre-reserving a gen2 slot for objects we want a .WHICH for that are in the nursery
And using that as the address 12:09
Which means there's only a memory cost if you use .WHICH, and we don't have to make every object bigger
timotimo lizmat: can i ask you for a quick summary of all the things you worked on in the last 14 days? 12:13
jnthn
.oO( git log --author=liz --since="14 days ago" )
12:14
timotimo hmm, that's actually not bad
lizmat not really much, I'm afraid 12:15
timotimo well, all the eval testing stuff 12:16
lizmat menial tasks mostly, hope to unblock on CompUnit at the YAPC::EU
yes, that...
timotimo what were the functions that got nuked? eval_dies or something like that?
lizmat I removed eval_dies_ok and eval_lives_ok from the spec 12:17
I didn't nuke them from Test.pm yet
timotimo ah
lizmat going through the spectests to fix those
timotimo good
lizmat only 281 more files to go
timotimo oh my
lizmat I think I've done 60 or so so far 12:18
and found about 5 cases where tests were dieing for the wrong reason
timotimo that's clearly valuable 12:19
lizmat yup 12:20
I think so
and having them all check for exception types, should allow is to more quickly find regressions
timotimo yup 12:21
dalek ast: 01c9c12 | (Elizabeth Mattijsen)++ | S02- (6 files):
Another batch of dies_ok -> throws_like
12:31
dalek kudo/nom: ddfb572 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add S02-types/array-shapes.t: properly fudged now
12:32
lizmat errands& 12:38
timotimo p6weekly.wordpress.com/?p=214&s...1f3f52b9a0 - first draft of today's blog post. i've missed at least lichtkinds tablets work, what else? 12:39
moritz timotimo: sergot's gsoc work (lots of documentation for HTTP::UserAgent and friends) 12:46
timotimo ah!
right, i haven't been looking that way much
but there was that blog post
sergot moritz++ timotimo++ 12:47
;)
dalek ast/S26-WHY: 2b4a645 | (Rob Hoelz)++ | S26-documentation/why- (3 files):
Test declarative comments for multi methods
12:48
ast/S26-WHY: c9bc645 | (Rob Hoelz)++ | S26-TODO.md:
Mark multi methods as completed
ast/S26-WHY: 5bec18b | (Rob Hoelz)++ | S26-TODO.md:
Remove things that are complete
ast/S26-WHY: d2e2567 | (Rob Hoelz)++ | S26-documentation/block-leading.t:
Add test for leading block comments
ast/S26-WHY: 79454d4 | (Rob Hoelz)++ | S26-documentation/block-trailing.t:
Add test for trailing declarative comments
kudo/S26-WHY: 8d20a3f | (Rob Hoelz)++ | src/Perl6/Grammar.nqp:
Properly handle block-style leading declarative comments
kudo/S26-WHY: a6161e1 | (Rob Hoelz)++ | src/Perl6/Grammar.nqp:
Remove useless comments
kudo/S26-WHY: 24f5949 | (Rob Hoelz)++ | src/Perl6/Grammar.nqp:
Implement trailing declarative block comments
dalek ast/S26-WHY: 85da650 | (Rob Hoelz)++ | S26-documentation/block-trailing.t:
Add test for trailing declarative block comments
12:49
ast/S26-WHY: ed87af0 | (Rob Hoelz)++ | S26-TODO.md:
Document block comments as impl'd
jnthn timotimo: The HyperWhatever example uses...Whatever.. 12:50
timotimo oops :D
ah
well, that was for comparison
i haven't looked at actual examples for hyperwhatever yet 12:51
p6weekly.wordpress.com/?p=214&s...1f71c26f09 12:52
jnthn timotimo: Don't forget the JVM compile time improvements :) 12:53
timotimo OH!
yes!
dwarring did that, right?
jnthn donaldh
timotimo OK
jnthn "They all start with a d anyway..." :P 12:54
timotimo dwarring was the advent calendar tests dude
jnthn Also PerlJam++ did various fixes
Including to sprintf
timotimo very good
the sprintf fix is cross-backend, aye?
jnthn Think so
timotimo btw, do we want to turn sprintf into a code-generating thing, rather than an "interpreter"?
timotimo if we have static format strings, that is 12:55
jnthn There were some regex error message improvements by psch
dalek ecs: ea8a8de | (Rob Hoelz)++ | S05-regex.pod:
Fix broken link to Extensible metasyntax on S05 page
12:56
timotimo avuserow: do you have a short statement on how you'll handle the star release? since the next rakudo release will happen this week, i mean 12:57
will you try to release a 2014.07 Star and then a 2014.08 Star after that?
or just skip the .07 one?
jnthn I suspect we'd go directly for a .08 one
timotimo: Also don't forget dynvar lookup improvements by TimToady++ 12:58
timotimo oh, right, that was in the last 14 days
psch hi #perl6 o/ 13:02
timotimo: there's also m:g// and s:g/// improvements, but those hinge on the lists rework 13:03
which i have no idea about progress of
timotimo i think the post is in an acceptable state now 13:04
sergot hi psch \/ 13:05
timotimo p6weekly.wordpress.com/?p=214&s...1f9f8b6f8c
sergot um, o/
psch headless excitement..? :)
psch hi sergot 13:05
timotimo i think i'll go ahead and publish this version now. 13:10
jnthn Looks good to me.
timotimo nobody noticed the not really existing title of the post %) 13:13
a good sign
dalek kudo-star-daily: 60ffd2d | coke++ | log/ (14 files):
today (automated commit)
13:25
rl6-roast-data: bbe49f8 | coke++ | / (6 files):
today (automated commit)
lizmat timotimo: maybe mention --moar-options=--enable-jit as well? 13:40
lizmat timotimo: also, I specced and implemented Test::cmp_ok 13:46
still wandering whether we would want something like "smatch" 13:47
*wondering
:-)
jnthn grmbl 13:51
The NativeCall tests appear to fail
Because some output comes from C without counts
And some from Perl 6
jnthn Did we start returning an error code when the number of tests didn't match up? 13:53
ah 13:54
elsif !$no_plan && $num_of_tests_planned != $num_of_tests_run {
exit(255);
jnthn Ah, yes. In the recent test work. 13:55
While I suspect that's good in general, it means test.pm is now just too awkward to be bothered with for NativeCall tests... 13:56
lizmat jnthn: sorry to hear that, what apart from the exit value, is bothering you there ? 13:56
jnthn Well, it's the exit value really 13:57
lizmat what are you expecting? 0 ?
jnthn Yeah
lizmat but not all tests have run ?
jnthn Well, the thing is, we *know* the counts don't match up in the NativeCall tests.
lizmat ah, so you need to override that...
jnthn it's because the plan has 26
lizmat how about no plan?
jnthn Which *is* the number of OKs
oh, hmm :) 13:58
Then the harness whines about no plan...
[Coke] do we have a "done_testing" that stops that whining? 13:59
jnthn And putting "done" at the end remvoes that but makes prove REALLY confused. :)
lizmat it's called "done" actually now
lizmat fwiw, craziness *I* saw in tests the past days, is gone now fortunately 14:01
jnthn Well, NativeCall's tests *are* a weird case
lizmat could it be that the "done" comes before the C output? 14:02
masak Python 3.5 may get gradual typing: github.com/JukkaL/mypy -- news.ycombinator.com/item?id=8191916
jnthn Just in that the output is like this:
ok 13 - out-of-bounds access on managed array 14:03
ok - struct in position 0, C-side
ok - struct in position 1, C-side
ok - struct in position 2, C-side
ok 14 - byte in element 0
tadzik masak: wow, that's pretty nice 14:03
masak tadzik: the HN discussion is interesting.
masak tadzik: if Python went the TypeScript route, that *would* be pretty nice. 14:03
lizmat jnthn: any way to get the C-output in a subtest ? 14:04
jnthn lizmat: Um... 14:06
lizmat: What does that involve?
lizmat printing 4 spaces in front of each line for each subtest level 14:09
jnthn lizmat++ # that does it... 14:12
dalek volaj: d9e11ac | jnthn++ | t/0 (6 files):
Use subtest syntax for C output.

Avoids confusing Test.pm, which likes to have an exact count.
  lizmat++ for suggesting this solution.
14:14
jnthn Now I just get one fail in pointers.t 14:15
jnthn not ok 5 - OpaquePointer roundtrips okay using .perl and EVAL 14:15
# got: '4194750160'
# expected: '8791697837776'
FROGGS: Got any hints where I might go looking for ^?
FROGGS hmmm 14:17
how is it initialized? not that this is because something got moved by gc 14:18
brrt wrt to python optional typing, the benefits of that remains to be seen of course :-) 14:20
jnthn m: say 0xf98fced0
camelia rakudo-moar ddfb57: OUTPUT«4186951376␤»
jnthn Hm, it .perl's OK, so it's when we EVAL it back 14:21
FROGGS jnthn: all I know is that the OpaquePointer keeps that address in its body... 14:22
dalek ecs: d651fc5 | (Stéphane Payrard)++ | S99-glossary.pod:
Update S99-glossary.pod

I realize that I am adding to this glossary what pertains to an index. I think it is ok because at this point we are unable to maintain both an index and a glossary.
14:34
dalek ecs: 4deb632 | coke++ | S99-glossary.pod:
fix spello
14:40
cognome coke++ 14:45
masak fixing yer spellos in yer spec-o. 14:46
but "self-reliant"? hmm.
cognome partially 14:48
dalek ecs: a1b4e26 | masak++ | S99-glossary.pod:
slight rephrase
lizmat afk for a bit& 14:56
dalek ecs: b6f790c | (Stéphane Payrard)++ | S99-glossary.pod:
S99: more entries
15:10
dalek p-js: 88fddf3 | (Pawel Murias)++ | examples/webpacked/ (2 files):
Use webpack-reload-plugin for the webpacking example, and mention that in the README.
15:11
pmurias webpack++ # supports recompiling and reloading the page when the .nqp code changes 15:13
dalek ecs: 448d117 | (Stéphane Payrard)++ | S99-glossary.pod:
typos. More entries
15:20
hoelzro morning #perl6 15:54
pmurias hi 15:55
TimToady o/ 15:57
hoelzro I was just thinking about introspectability of Rakudo 15:59
TimToady it occurs to me I could merge lolly if I make it switchable by envvar and default to off for this release, then we'd get SEQ for free
hoelzro ex. wouldn't it be nice if I, in the REPL, could do &infix:<+>.WHY to get the docs on the + operator?
TimToady WHY not? 16:00
TimToady well, other than performance compiling the setting... 16:00
hoelzro TimToady: yeah, I don't see WHY not, but someone has to attach all of those comments =/
and yeah, setting compilation time
heh, I wrote 'WHY not' without even realizing o_O
hoelzro we could always make use of what's on doc.perl6.org 16:04
and we could have a --no-docs option to Configure.PL 16:05
so for development, we don't need to build it
pmurias it seems to be that the editor is the proper place to display the docs 16:06
jnthn I'd pondered we might also want a way of saying "if the thing has no docs, fall back to looking in X location for them"
Which'd mean we can keep doc.perl6.org as the authoritative source, install the Pod too, and then just load it on demand
TimToady well, might want to copy them down for local usage during network outagaes 16:08
or is that what you meant already?
jnthn Oh, I didn't mean grab them over the web 16:09
I meant install them somewhere locally that WHY knows where to look as a fallback
hoelzro perhaps along with the code in a CompUnitRepo?
considering that WHY would mainly be used for inspection during development, one could probably store *all* WHY contents in a separate file post-compilation 16:10
but maybe that's overly complicated
PerlJam hoelzro: that would be awesome, but I'd also want a shortcut way to ask for the docs from the REPL. Something like docs('+') where the docs() sub can be a little smart about figuring out what I mean.
hoelzro PerlJam: agreed, but I think at that point, it's just sugar around symbol traversal and calling WHY 16:10
PerlJam aye 16:11
[Coke] got a stuck test on the rakudo-jvm run.
[Coke] S02-lexical-conventions/comments.rakudo.jvm........ 16:12
(weird, I thought my ulimited version wouldn't get stuck for this long.) 16:13
[Coke] github.com/rakudo/rakudo/commit/9b...d5f3370d77 - should we be doing that in a #parrot ifdef block in nqp? 16:20
pmurias [Coke]: isn't ifdef parrot handled by a specical file program that might not be avalible there? 16:33
FROGGS[mobile] I think we fudge nqo's source 16:34
timotimo that.s right, gen_cat.nqp doesn't do that for lib/
FROGGS[mobile] at least parts of it
TimToady wonders how long till ulimit supports limiting # of cores... 16:42
jnthn dinner & 16:44
hoelzro TimToady: if you want to limit to just 1 core, I think you could use processor affinity 16:46
but beyond that, I don't think there's anything =/
TimToady wonders who will come out with the first megacore...
lizmat couldn't you consider high-end graphic cards already megacore ? 16:47
TimToady well, in a sense, the old Connection Machine already had 65536 cores, albeit of 1-bit processors 16:48
tadzik my gpu apparently has 1.5 megacores :o 16:49
tadzik that's shader cores at least 16:49
lizmat m: sub a ($a,:$b) { say $a; say $b }; my $c = \(42, b=> 1); a(|$c) # is this correct behaviour of flattening a capture ? 16:57
camelia rakudo-moar ddfb57: OUTPUT«42␤1␤» 16:58
lizmat m: sub a ($a,$b) { say $a; say $b }; my $c = \(42, b=> 1); a(|$c) # this should never work, right? (receiving a pair in $b) 16:59
camelia rakudo-moar ddfb57: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in sub a at /tmp/U309nZ7DFK:1␤ in block at /tmp/U309nZ7DFK:1␤␤»
lizmat is looking at a possible bogus test in "t/spec/S02-types/capture.t 17:00
TimToady yes, the 2nd one is incorrect 17:01
timotimo m: sub a ($a,$b) { say $a; say $b }; my $c = \(42, "b" => 1); a(|$c) # but this "works", right?
camelia rakudo-moar ddfb57: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in sub a at /tmp/gE10y7yvNR:1␤ in block at /tmp/gE10y7yvNR:1␤␤»
lizmat so the error is correct
timotimo m: sub a ($a,$b) { say $a; say $b }; my $c = \(42, ("b" => 1)); a(|$c) # maybe putting superstitious parens helps?
camelia rakudo-moar ddfb57: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in sub a at /tmp/cCVEF4hzVw:1␤ in block at /tmp/cCVEF4hzVw:1␤␤»
lizmat ok, then the test is bogus, will fix
TimToady once upon a time that behavior was specced, but got despecced, as too much torment, and problematic performance 17:02
timotimo m: sub a ($a,$b) { say $a; say $b }; my $c = \(42, $("b" => 1)); a(|$c) # maybe throwing dollars at the problem solves it?
camelia rakudo-moar ddfb57: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in sub a at /tmp/divq9EvGJg:1␤ in block at /tmp/divq9EvGJg:1␤␤»
lizmat ok, that makes sense then, as the test was marked as a nom regression
TimToady oh wait, there's quotes
hmm
that seems buggy
lizmat => is a Pair creator, not? regardless of quoting or nor ? 17:03
TimToady but quotes or parens should suppress named arg interpretation 17:04
lizmat so that would indicate a problem in the capture creation
TimToady m: my $c = \(42, "b" => 1); say $c.elems
camelia rakudo-moar ddfb57: OUTPUT«1␤»
TimToady m: my $c = \(42, "b" => 1); say $c.keys
camelia rakudo-moar ddfb57: OUTPUT«0 b␤»
TimToady that's wrong
should have 2 elems, and the 2nd should just be a pair 17:05
masak submits rakudobug
TimToady is kinda surprised it's working in Real Life when it's not working there
implies there are two code paths where there probably oughta be one 17:06
lizmat it's probably the explicit Capture creation path that is slightly different 17:08
pmichaud_ good morning, #perl6
lizmat morning pmichaud 17:08
masak pmichaud! \o/
[Coke] hio, pmichaud 17:11
FROGGS hi pmichaud 17:13
lizmat m: sub a ($a,$b) { say $a; say $b }; my $p = (a=>1); my $c = \(42, $p); say $c.perl # should probably be Capture.new(list => (42,(a => 1)) 17:17
camelia rakudo-moar ddfb57: OUTPUT«Capture.new(list => (42,), hash => {"a" => 1})␤»
lizmat Marked test with ticket #122555 17:19
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122555
lizmat m: say now + now # feels like an LTA error message with a LHF fix 17:30
camelia rakudo-moar ddfb57: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Instant:D $a, Real:D $b)␤:(Real:D $a, Instant:D $b)␤ in block at /tmp/R1FmBudhPk:1␤␤»
TimToady "You can't add those!" 17:35
japhb Just needs an Instant:D,Instant:D multi 17:36
yoleaux 17 Aug 2014 06:17Z <timotimo> japhb: maybe the command i was thinking of could be called "testrun" and it could take either a component name if given, the system-wide "perl6/nqp/..." or a compiler by filename
[Coke] do we need a instant, instant that dies?
japhb timotimo: say what?
TimToady well, it should really say "You can't add an Instant to an Instant", where the two types are derived from the arguments 17:37
lizmat yup, something like that I had in mind 17:38
TimToady so you could also get "You can't add an Instant to a YourLife"
lizmat I'm going to create a generic "can't "op" "type1" "type2' to each other 17:39
and then add the necessary multi's with the necessary params
avuserow timotimo: re star: basically I ran into problems with parrot that were release blockers AFAICT (random segfaults or test fails in some module code). I started golfing but didn't get very far, because it seems to just change the likelihood of the crash. 17:55
for what it's worth, I think that the 2014.05 and 2014.06 stars were held up for similar reasons?
micahjam97 I've just started to learn perl 17:58
what exactly is perl 6
japhb micahjam97: A much improved (but still WIP) sister language to Perl 5. 17:59
micahjam97 what's so improved about it? 18:00
japhb micahjam97: Everyone has their favorite answer. I personally am a fan of the better concurrency system, metamodel-based OO, native (written in Perl 6) language grammar and setting (standard functions and classes), better type system, and more. 18:01
And I can think at a higher level about my problems in Perl 6 than I can in Perl 5. 18:02
dalek kudo/nom: a22a00a | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
Add X::Op::TheseTwo exception
18:06
kudo/nom: 9f4db34 | (Elizabeth Mattijsen)++ | src/core/Instant.pm:
Add candidates for illegal +/- with Instants

using the new X::Op::TheseTwo exception
moritz 18:15
TimToady lizmat: why not just add a single Any,Any candidate that is the last candidate for any failed infix:<+> 18:18
TimToady this solution is rather too specific 18:19
lizmat ok, will do... 18:19
pmichaud that solution feels weird to me, though. 18:19
TimToady well, it should probably be generalized from the message that already indicates the candidates 18:20
pmichaud it seems weird to me to add multi candidates as fallbacks for things one cannot do
TimToady for given operators, you should be able not only to list the candidates, but give a message like "You're trying to add an Apple to an Orange"
pmichaud because if I then start to ask "is there a way to infix:<+>(Any, Any)" I'll get a "yes" answer.
as in, there's a multi that claims to handle it 18:21
TimToady I agree about the multi, it should be the existing error handler made smarter
and maybe asking the operator in question if it has anything to say
dalek kudo/nom: c561ac3 | (Elizabeth Mattijsen)++ | src/core/Instant.pm:
Revert "Add candidates for illegal +/- with Instants"

This reverts commit 9f4db347c191848101a2baf2b1d02fed37409091.
TimToady in any case, we've always wanted the error to list the argument types and/or arguments as well as the candidates
pmichaud I agree that the error should list the argument types, and that this sort of analysis needs to be part of the error handler and not part of the multi candidate set 18:22
dalek kudo/nom: 755ec1b | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
Revert "Add X::Op::TheseTwo exception"

This reverts commit a22a00a252d8912a92ebfdbd823ac1b634cf5af8.
TimToady nodnod
exceptional logic should only be invoked for exceptions :)
pmichaud also, I'm not sure the infix:<+>(Any, Any) case would've resolved the now + now case 18:24
pmichaud since it complained of having an ambiguous result, not a nonexistent one 18:24
m: say now + now
camelia rakudo-moar ddfb57: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Instant:D $a, Real:D $b)␤:(Real:D $a, Instant:D $b)␤ in block at /tmp/5U0D82h7Pa:1␤␤»
pmichaud perhaps the error message should say "Ambiguous call of 'infix:<+>(Instant, Instant)" 18:26
to show the types of arguments that were being passed
TimToady m: multi infix:<+>($a,$b) { warn "AOOOGA!" }; say now + now 18:26
camelia rakudo-moar ddfb57: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Instant:D $a, Real:D $b)␤:(Real:D $a, Instant:D $b)␤ in block at /tmp/dOGtlSNmkX:1␤␤»
TimToady yeah..
pmichaud m: say now + now.Real; 18:27
camelia rakudo-moar ddfb57: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Instant:D $a, Real:D $b)␤:(Real:D $a, Instant:D $b)␤ in block at /tmp/to8ZFsteES:1␤␤»
pmichaud m: say now.Real; 18:28
camelia rakudo-moar ddfb57: OUTPUT«Instant:1408386515.915169␤»
pmichaud oh, Instant ~~ Real I guess
m: say Instant ~~ Real
camelia rakudo-moar ddfb57: OUTPUT«True␤»
TimToady yes, it's just it has no origin, officially
pmichaud m: say now.Num
camelia rakudo-moar ddfb57: OUTPUT«1408386563.15693␤»
pmichaud m: say now + now.Num;
camelia rakudo-moar ddfb57: OUTPUT«Instant:2816773142.536281␤»
TimToady yes, well, they generally only put one safety on a gun :) 18:29
raydiak actually...
TimToady yes, there are exceptions 18:30
raydiak eh, sorry...brain/finger filter must not exist this morning, that was totally unproductive 18:31
dalek kudo/lolly: 3550867 | TimToady++ | src/Perl6/ (2 files):
trap old (;) usages unless LOLLY set
18:32
pmichaud so, at the moment I wonder if lizmat++ 's first solution is the correct one. We already have an infix:<+>(Duration, Duration) candidate, for example, and we end up doing that for many of the other types
Ven .u ⍝ 18:33
yoleaux U+235D APL FUNCTIONAL SYMBOL UP SHOE JOT [So] (⍝)
pmichaud multi sub infix:<+>(Duration:D $a, Duration:D $b) {
Ven o/, #perl6.
pmichaud multi infix:<+>(Num:D \a, Num:D \b) {
multi infix:<+>(Rational \a, Rational \b) {
etc.
dalek kudo/lolly: ddfb572 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add S02-types/array-shapes.t: properly fudged now
rakudo/lolly: a22a00a | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
rakudo/lolly: Add X::Op::TheseTwo exception
pmichaud m: say Date.new(2014,08,18) - Date.new(2014,07,18) 18:35
camelia rakudo-moar ddfb57: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o8 if you mean that␤ at /tmp/C2dMsb7bKp:1␤ ------> say Date.new(2014,08⏏,18) - Date.new(2014,07,18)␤ Leading 0 does not indicate octa…»
pmichaud m: say Date.new(2014,8,18) - Date.new(2014,7,18)
camelia rakudo-moar ddfb57: OUTPUT«31␤»
pmichaud m: say Date.new(2014,8,18) + Date.new(2014,7,18)
camelia rakudo-moar ddfb57: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in sub infix:<+> at src/gen/m-CORE.setting:4313␤ in block at /tmp/UB9vs001Ym:1␤␤»
pmichaud that's another weirdish one :)
TimToady unfortunately I think we'll the octal warning for a goodly long time yet
though it should need to warn for 07 :) 18:36
pmichaud yes, I agree on octal
TimToady *shoudn't
my n't is flaking again
TimToady merged in lolly such that it complains on (;) and [;] unless you set LOLLY 18:37
so we can now fix all the old usages
Ven twitter.com/puffnfresh/status/5002...4794290176
pmichaud you all are working on LoL stuff, I gather?
PerlJam
.oO( What do (;) and [;] have to do with adverbs?!? ;-)
18:38
TimToady among otehr things
Ven ^ it's funny because gather used a behaviour deprecated by lolly :P
TimToady adverbs parse that way
:foo(bar) is the same as foo => (bar)
pmichaud: Mouq++ is working on multi-dim subscripts like @a[*;1], while I've just changed circumfixes to be list of list or array of list composers, instead of braceless blocks 18:43
but we need a small deprecation cycle on the latter to find old sequential (;) and change it to SEQ(;) or $(;)
well, or any sigil contextualizer
so unless one sets LOLLY, you get the old semantics with an error, rather than the composers 18:44
pmichaud okay... is LOLLY a temporary thing?
TimToady yes, just one month or so
pmichaud works for me
TimToady or maybe just one release
(one Star release, that is) 18:45
we just need to be sure that (;) misbehaves overtly rather than covertly for a bit
pmichaud I'll follow along for a little while longer and then deep dive to see where Lists are at 18:46
TimToady by the way, there's a spectest that assumes LOLLY already, so spectest without fails one more test than with
I've been studying up on them, so that we can talk intelligently
pmichaud that will be insanely helpful :) 18:47
TimToady my current notion is that we start with gather/take, figure out how to parameterize to support eager and batch and pure code, then figure out how to handshake that down from the context
pmichaud my last notion was figuring out eager and batch first, then the rest... but I agree gather/take is a good starting point as well 18:48
TimToady but just batching gather/take would make a lot of things run way faster
supposing we know that we may, of course
pmichaud I think it depends on whether we consider gather/take to be the fundamental way that many common operations are performed
TimToady it seems like the endpoint for almost all laziness these days 18:49
pmichaud I wonder if that's because it's naturally that way, or if it's because it's the only thing we had for doing good laziness
TimToady and the moarfolk are stressing at all the cache resources consumed by the co-routines
well, I also think the exception on every take is perhaps a mistake 18:50
pmichaud oh, I'm sure of that.
gather/take definitely needs a fundamental rethink
TimToady so we need to divorce the yield from the push
lizmat might I mention that take should work from multiple threads...
TimToady (in impl, not in interface)
lizmat now that we have them
pmichaud well, I think gather/take should be able to work efficiently threadless, too. 18:51
I've often had the feeling that too many things were being implemented using gather/take just because it was easy to do so, and not because it is the best/most efficient way to do it
dalek ast: 23da793 | (Elizabeth Mattijsen)++ | S02-types/ (7 files):
YABO dies_ok -> throws_like migration
pmichaud I'm not sure that's the case... but every time we came up with a gather/take solution for things (like sequences) I cringed a little inside 18:52
lizmat fwiw, I agree with pmichaud on that
TimToady well, sure, but it would be nice if gather/take didn't penalize us quite so much for the abstraction
pmichaud if gather/take can be made insanely efficient, then I'd have no qualms with it... I'm just not sure it can be made insanely efficient.
s:g/insanely//
TimToady but when I fixed the for loop lazy bug, I started figuring out that there was a two-way negotiation that was needed 18:53
pmichaud yes, that's where I left off -- I was working on ways of getting the two-way negotiation in place
TimToady and currently mapiter lets the lower interator decide whether to batch
pmichaud or at least so that in the common case the negotiations work out correctly
TimToady so Range automatically batches, for instance, since it's pure
it will also help to be able to figure out if the code inside a gather is pure, or can be marked as pure wrt the outer world 18:54
pmichaud the challenge with gather/take was always that it had to be mostly lazy
TimToady then you can just batch or eager it automatically
pmichaud in order to support things like lines() 18:55
TimToady yes, well, lines ain't pure
it has external side effects
dalek kudo/nom: 827ede7 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add t/spec/S02-types/int-uint.t

This test file is basically a noop at the moment, but will autmatically become active as soon as 'my int8 $a; say $a.WHAT' says "int8" correctly.
pmichaud right
and I've often wanted adverbs or options to gather/take to indicate things like infiniteness
Ven why explicit?
pmichaud purity or batching could be another dimension
TimToady but 'for eager lines()' should help for that 18:56
pmichaud I'll have to catch up later on it... I have some correspondence I have to get done today :0/
:-/
TimToady Ven: you want an explicit fallback for when you can't solve the halting problem as well as the HEBKAC
pmichaud: I know the feeling... 18:57
HTAAOF
Ven solving the halting problem in a perl? uh
TimToady the pure marker on gather might just be 'eager gather {...}' 18:58
hyper and race probably require an immediate loop: 'hyper gather for @foo {...}' or 'race gather for @foo {...}', in which case it knows it can parallelize the loop 19:00
either that, or the hyper/race distributes the first loop found in the block
ajr_ PEBKAC I understand, but what's the HE in HEBKAC?
TimToady Human Existing 19:01
or some such :)
ajr_ Ah!
TimToady who is, every now and then, less of a problem than the computer 19:01
vanila Hi all :) 19:02
good luck with perl6
TimToady we aren't all here
thanks!
ajr_ That transforms the parsing of "as well as" from "in addition to" into "with the same competence as"
lizmat that;s a new one: Stage parse : moar(19521,0x7fff7d47b310) malloc: *** error for object 0x7f81736145c0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
make: *** [CORE.setting.moarvm] Abort trap: 6
timotimo it kind of seems like luck has been in good supply recently 19:03
lizmat rebuilding from scratch
TimToady also rebuilds everything from scratch Just to Make Sure 19:07
TimToady "I'm compiling." 19:07
[Coke] lizmat++, getting everything into spectest.data! 19:15
(well, more things)
mr-foobar TimToady: what do you think of expressivity in languages like forth ? # brainstorming myself to write a forth-ish language. 19:16
nwc10 lizmat: I don't see that with ASAN on x86_64 linux 19:17
[Coke] there are -multiple- hangs in the rakudo.jvm spectest today. 19:18
lizmat fwiw, I cannot build nom right now: 19:24
TimToady mr-foobar: the problem with forth-like languages is that, while they're very expressive, they don't provide enough common culture, so everyone invents their own, which doesn't interop very well
lizmat seems to segfault in stage parse:
Stage parse : moar(21453,0x7fff7d47b310) malloc: *** error for object 0x7fb7fadcbbe0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
make: *** [CORE.setting.moarvm] Abort trap: 6
colomon is glad to see pmichaud++ back 19:25
TimToady everything builds here (well, perl-p is still compiling)
lizmat bulds ok if I go back to 755ec1b20534ce27a0c1f7e8ffe0ca4ca06e8235
TimToady: are you bullding with --mor-option=--enable=jit ? 19:26
TimToady yes
lizmat *moar
then I have no explanation 19:27
TimToady actually, no, I'm using --enable-jit 19:28
you have an =
TimToady if you actually have --enable=jit, I suspect it's not enabling the jit, but you'd think it would carp 19:29
dalek rl6-roast-data: 4b23b5b | coke++ | / (6 files):
today (automated commit)
19:30
timotimo i wonder if moar --version should point out if an environment variable has disabled jit
TimToady well, at least it says "with JIT support" if it's compiled in 19:32
it seems like adding (disabled) would be reasonable
TimToady btw, perl6-p also compiled successfully 19:33
lemme try on a different machine that never had lolly to see if I've cheated
m: say (<a b c>; <d e f>).perl 19:34
camelia rakudo-moar 9f4db3: OUTPUT«WARNINGS:␤Useless use of "a b c" in expression "a b c" in sink context (line 1)␤("d", "e", "f")␤»
TimToady still the old one 19:35
lunch & "I'm compiling." 19:36
lizmat TimToady: without jit, it compiles and builds ok 19:42
so we have some LOLLY / jit interaction :-(
TimToady with jit, compiles and builds okay on my other machine
are you compiling with LOLLY set? 19:43
TimToady isn't...
TimToady tries with, for funs 19:45
FROGGS ... and profit
TimToady compiles fine with LOLLY set too 19:46
this is on two different Linux machines running Mint, both 64-bit
do you have any uncommitted changes sitting about? 19:47
nwc10 spectests for me on x86_64 linux with ASAN, with and without JIT 19:50
so, also confusd
TimToady or any other MVM envvars set? 19:51
Ven TimToady: eager gather means you can't have pure infinite gathers, right? 19:54
TimToady sure, just leave out the 'eager' 19:55
TimToady gather still defaults to lazy 19:55
lizmat no uncommitted changes, just OSX
TimToady
.oO("just")
19:56
Ven TimToady: then that means there's no pure marker on it anymore
lizmat $ set | grep MVM
$
TimToady Ven: there never was, that I now of 19:56
*know
lizmat I'm not sure how to set LOLLY
lizmat LOLLY=1 ? 19:57
Ven lizmat: LOLLY=1 cmd ?
lizmat rebuilding with jit enabled, and then making with LOLLY 19:57
Ven TimToady: I mean, `eager` meaning `pure` instead of `finite`
TimToady eager just means I don't care if this gather has side effects, just do 'em all now 19:58
so "treat as if pure"
TimToady it's not a pure marker in the sense that you can compile-time eval it though, or constant fold it 19:59
(unless the gather is already running at compile time)
*can't 20:00
grr
TimToady glares at his n't key, which sometimes produces '', and sometimes produces 'n'
TimToady well, I suppose "can" also makes sense if you read it right 20:01
lizmat indeed, builds ok now with LOLLY=1 and jit enabled 20:02
running spectest now
Ven TimToady: so the list is allowed not to be reifed on `eager` ? 20:04
TimToady only if it's explicitly marked as infinite; otherwise eager is supposed to try real hard
eager is short for "mostly eager", which means unless known infinite 20:05
gather/take can't know, therefore don't put eager on a loop known to be infinite 20:06
or on a gather containing such a loop
or you will find out how much memory you have :)
and that you don't have even more of it
Ven then we're back to what I said first. if you use `eager` to indicate pureness, you're making it impossible to have an infinite gather marked pure, right? 20:07
TimToady well, arguably an infinite loop is a side effect :P
TimToady and the only thing that prevents that side effect is treating the loop as lazy, which is the default anyway 20:09
Ven I strongly disagree with something lazy being a side effect :) 20:13
TimToady I didn't say that. 20:15
I said it has the side effect of using up your memory if it *isn't* lazy.
TimToady lizmat: so it might be worth turning LOLLY back off and seeing if it still compiles, since it might have been a transient misconfig 20:20
lizmat alas: Stage parse : moar(34345,0x7fff7d47b310) malloc: *** error for object 0x7fdd215999b0: pointer being freed was not allocated 20:23
*** set a breakpoint in malloc_error_break to debug
make: *** [CORE.setting.moarvm] Abort trap: 6
lizmat builds ok with LOLLY :-( 20:24
TimToady bizarre
[Coke] aw, I can't build niecza with latest toolchain on os x 20:25
TimToady nor on Linux
niecza doesn't work under mono 3
'course, it's more fun to blame OS X
TimToady lizmat: can only suggest trying gdb or some such to see where it thinks it is 20:26
or get someone else on OS X to guinea pig it for you 20:27
nwc10 valgrind /home/nicholas/Sandpit/moar-g-jit/bin/moar --libpath="/home/nicholas/Sandpit/moar-g-jit/languages/nqp/lib" perl6.mo 20:28
arvm --setting=NULL --ll-exception --optimize=3 --target=mbc --stagestats --outp
ut=CORE.setting.moarvm src/gen/m-CORE.setting
no problem. so confused :-(
TimToady but that's really strange; I'm guessing something is going wrong in fetching a non-existent envvar on OS X
since that's about the only difference between LOLLY and non-LOLLY 20:29
unless it blows up trying to call .obs
but it shouldn't be doing that in compiling perl6-m anyway, since the source is lolly-clean
or lollipop, as we were calling it yesterday 20:30
nwc10: are you on osx?
lizmat aha: it builds with LOLLY=0 20:33
so indeed, the *absence* of the envvar is the problem
TimToady très étrange 20:34
TimToady the code in question is simply: if !nqp::getenvhash<LOLLY> 20:35
lizmat yup, looking at it
now, I seem to recall problems with %ENV in the past
FROGGS I also use nqp::getenvhash()<V5TRACE>, and this version did not cause problems in the past 20:36
nqp-m: say 42 if !nqp::getenvhash<LOLLY> 20:37
camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say 42 if "␤ at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:913 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/nqp.moarvm:comp_unit:872)␤ fro…»
dalek kudo/nom: 9a2f3e5 | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp:
DeTAB
FROGGS nqp-m: say(42) if !nqp::getenvhash<LOLLY>
camelia nqp-moarvm: OUTPUT«42␤»
TimToady surely the parens wouldn't make a difference?
FROGGS nqp-m: say(42) if !nqp::getenvhash()<LOLLY>
camelia nqp-moarvm: OUTPUT«42␤»
TimToady well, but that's not running on olx 20:38
*osx
FROGGS true...
is that LOLLY check in nqp code?
TimToady funny typo, typing l instead of s, wrong ring fingy
lizmat FROGGS: yes
TimToady yes, it's in src/Perl6/Actions.npq
TimToady m: say (<a b c>; <d e f>).perl 20:39
camelia rakudo-moar 827ede: OUTPUT«===SORRY!=== Error while compiling /tmp/1dedAOF5XX␤Unsupported use of ; in brackets as a statement sequence; in this and future versions please use SEQ(;) or $(;) for C comma semantics (or set LOLLY for the new list-of-list semantics fo…»
TimToady there it is
FROGGS that's what I did in v5's Actions.nqp: my $V5DEBUG := +nqp::getenvhash()<V5DEBUG>;
so, perhaps numifying it helps here too 20:40
TimToady well, if boolifying is bogus on osx, we wanna know it
m: BEGIN $*ENV<LOLLO> = 1; say (<a b c>; <d e f>).perl; # curious 20:42
camelia rakudo-moar 827ede: OUTPUT«===SORRY!===␤postcircumfix:<{ }> not defined for type Failure␤»
TimToady heh
oh
TimToady m: BEGIN %*ENV<LOLLO> = 1; say (<a b c>; <d e f>).perl; # curious 20:42
camelia rakudo-moar 827ede: OUTPUT«===SORRY!=== Error while compiling /tmp/pOd5dX0B8c␤Unsupported use of ; in brackets as a statement sequence; in this and future versions please use SEQ(;) or $(;) for C comma semantics (or set LOLLY for the new list-of-list semantics fo…»
TimToady aww
oops
m: BEGIN %*ENV<LOLLY> = 1; say (<a b c>; <d e f>).perl; # curious
camelia rakudo-moar 827ede: OUTPUT«===SORRY!=== Error while compiling /tmp/WdyBnisJpf␤Unsupported use of ; in brackets as a statement sequence; in this and future versions please use SEQ(;) or $(;) for C comma semantics (or set LOLLY for the new list-of-list semantics fo…»
TimToady naw, nqp don't see it 20:43
m: BEGIN %PROCESS::ENV<LOLLY> = 1; say (<a b c>; <d e f>).perl; # curious
camelia rakudo-moar 827ede: OUTPUT«===SORRY!=== Error while compiling /tmp/AmfAjWEmM5␤Unsupported use of ; in brackets as a statement sequence; in this and future versions please use SEQ(;) or $(;) for C comma semantics (or set LOLLY for the new list-of-list semantics fo…»
TimToady nope
probably have to do a much fancier lookup to find that 20:44
FROGGS m: BEGIN nqp::bindkey(nqp::getenvhash(), 'LOLLY', 1); say (<a b c>; <d e f>).perl; # curious
camelia rakudo-moar 827ede: OUTPUT«===SORRY!=== Error while compiling /tmp/fxA4NhB1aw␤Unsupported use of ; in brackets as a statement sequence; in this and future versions please use SEQ(;) or $(;) for C comma semantics (or set LOLLY for the new list-of-list semantics fo…»
timotimo my desktop is quite busy running benchmarks of the most current rakudo/nqp with most curren moarvm with and without jit ... 20:45
timotimo it may have been a bad idea to set --enough-time=10 ... 20:48
and --runs=4, too 20:49
Ven hehehe. 20:50
TimToady well, %*ENV<LOLLY> doesn't find it at all, so I don't think npq sets %*ENV 20:51
timotimo the other benchmark runs i did recently had the same settings, so i thought it'd look misleading if i put the latest version into the same graph and they end further to the left
lizmat sleep& 20:59
ajr_ A claim that the problem of parallel processing has been solved: www.eetimes.com/author.asp?section_...23553& 21:02
(I'll believe it when I see it in operation.) 21:03
PerlJam ajr_: It's super simple! They just used cold fusion ;) 21:06
[Coke] PerlJam: I use ColdFusion 5 days a week,a nd doubt your claim. 21:07
Ven :(( 21:11
timotimo it's a "slap yourself on the forehead and exclaim d'oh" simple approach, yeah? 21:13
dalek ecs: d3c3141 | TimToady++ | S02-bits.pod:
document lollipop composers
ecs: e21c13e | TimToady++ | S04-control.pod:
undocument old lollipop semantics
timotimo it'd be nice if that were truly something that works
Ven so, SEQ is a thing now ? 21:15
Ven is really scared of ** and ; because they feel fragile 21:16
dalek ecs: 430ee6e | TimToady++ | S03-operators.pod:
one more lollification
21:17
TimToady m: SEQ(my $x = 42; $x).say
camelia rakudo-moar 827ede: OUTPUT«42␤»
TimToady m: SEQ(42; 43) 21:18
camelia rakudo-moar 827ede: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤»
TimToady sure looks like it :)
Ven like perl5's my $ = (.., ..) ?
TimToady it's the C comma in disguise, yes
or you can think of it as a block without the {} 21:19
so declarations aren't limited to its scope
Ven that's the only difference with do{}, right?
TimToady but I decided that the (<a b c>; <d e f>) form was more useful for multi-dimensional lists 21:20
yes
Ven yes, I;ve been backlogging a bit.
TimToady well, and it works when you pass it as a handler to nqp for gather/take, turns out
timotimo the benchmarks are now close-ish to completion ... 21:36
dalek p-js: 4722696 | (Pawel Murias)++ | / (4 files):
nqp-loader uses the --source-map option, the source maps still don't get to the browser.
21:37
p-js: 5746cd3 | (Pawel Murias)++ | / (4 files):
nqp-loader creates source maps.
Ven now to learn more about ** and ;; :P 21:42
timotimo me, too. 21:43
Ven I'm kinda excited to see LoL and stuff in action, though. They're a bit of the last bits of 6.0 to me 21:54
pmurias I should learn more about it, as I'm only writing nqp, I'm missing out on the cool Perl 6 features ;)
Ven "what is LoL" *baby don't zip me, don't zip me, no moar* # mouq++ 21:55
pmurias: I really think you're going to have a hard time implementing some perl6 features in rakudo-js :P 21:56
PerlJam Ven: It's all just a Simple Matter of Programming :) 21:57
timotimo t.h8.lv/p6bench/2014-08-18-longterm_history.html - interesting. 22:00
t.h8.lv/p6bench/2014-08-18-longterm...-moar.html - didn't look at this thoroughly yet
t.h8.lv/p6bench/2014-08-18-longterm...-moar.html - same thing here
timotimo now i'm wondering if we'll get to see the param_* ops jitted before this month's release 22:03
i'm glad to see nqp-moar-jit gets noticably faster at rc-forest-fire 22:05
rurban implemented the opendir/nextfiledir iterator for nqp-p (parrot only has readdir => list) 22:19
timotimo t.h8.lv/p6bench/2014-08-18-longterm...story.html - here's a history of only rakudo-moar without nqp-moar making the differences in rakudo's performance invisible to the naked eye 22:25
dalek p/p-opendir-gh177: 85f5ff4 | rurban++ | src/vm/parrot/ (2 files):
implement missing opendir/nextfiledir/closedir ops in terms of readdir

The other backends jvm and moar provide the opendir/nextfiledir iterator. Mimic it with a parrot ArrayIterator over the string list provided by Parrot_file_readdir().
22:29
dalek p/p-opendir-gh177: 2dd934b | rurban++ | src/vm/parrot/ (2 files):
Implement missing opendir/nextfiledir/closedir ops in terms of readdir

The other backends jvm and moar provide the opendir/nextfiledir iterator. Mimic it with a parrot ArrayIterator over the string list provided by Parrot_file_readdir().
Fixes GH #177 (not yet, WIP)
22:30
TimToady something dramatic happens at 2^31... sign problem? gives up and takes a sad path? 23:26
TimToady but yeah, that last one definitely shows the jit is helping Perl 6, not just NQP 23:35