»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:00 Peter_R joined
skids It hovers around 32ish for me. Might have picked up a second or two. 00:03
ShimmerFairy I would think I have a slower computer than normal, but then I remember my old PPC laptop that towards the end of its life basically couldn't compile rakudo anymore (didn't help that we only had Parrot at the time) :P 00:05
flussence ISTR compiling r-p on my netbook took *at least* 1 hour for CORE.setting... maybe even 2 00:07
ShimmerFairy I'm curious how that laptop would handle moar, but as I recall it doesn't boot up anymore :) 00:10
00:15 laouji joined 00:35 BenGoldberg joined 00:39 laouji left 00:40 laouji joined, laouji left 00:41 laouji joined 00:46 Timbus left 00:58 llfourn joined 01:02 llfourn left 01:20 skids left 01:33 cibs left 01:35 cibs joined 01:47 Timbus joined 01:48 kaare_ joined 01:54 dayangkun joined 02:01 abaugher left 02:10 aborazmeh joined, aborazmeh left, aborazmeh joined
flussence I'm trying to refactor some stuff atm and I'm stumped on this one thing: if I have "unit module Foo;" at the top of a file, what do I need to do to use a "sub MAIN { ... }" in the same file (and have it do its automagic stuff, and call things from Foo)? 02:26
I've made it "module Foo { ... }" and put MAIN at the end, which works. I feel like it ought to be possible to do nicer though... 02:31
02:33 gfldex left 02:36 noganex joined 02:38 cognominal_ left, noganex_ left 02:48 cognominal joined 02:59 llfourn joined
dalek p: a8c8ee4 | hoelzro++ | src/vm/jvm/QAST/Compiler.nqp:
Implement with/without for JVM backend
02:59
kudo/nom: 5b6a348 | hoelzro++ | tools/build/NQP_REVISION:
Bump NQP revision to include JVM with[out]? impl
03:00
03:01 ugexe joined 03:03 llfourn left 03:13 grondilu left 03:14 grondilu joined 03:21 aristotle joined
aristotle so I thought I recently saw mention of .contains and something like .starts-with/.ends-with (I think those were called differently) being added to Str, that are basically the boolean version of .index 03:22
but now I can’t find anything on it any more
did I just hallucinate that?
hoelzro aristotle: I see mention of starts-with on 2015-07-31 03:24
and lizmat mentioned .contains on 2015-08-07 03:25
03:26 bin_005 joined
b2gills starts-with and ends-with are in Cool.pm 03:30
aristotle ah 03:38
is Cool documented anywhere publicly at least with something like a synopsis? 03:39
03:43 bin_005 left, aborazmeh left
dalek kudo/nom: f39d115 | hoelzro++ | src/Perl6/Compiler.nqp:
Use :outer_ctx to force Compiler.eval to return a value

This fixes Linenoise REPL support
03:44
03:45 bin_005 joined 03:50 bin_005 left
flussence aristotle: I can't find either in perl6/specs, they're in perl6/doc under Str though 03:53
03:54 cognominal left
aristotle thanks. I’ve left my comment now, with bets hedged appropriately: 03:55
blogs.perl.org/users/aaron_baugher/...nt-1612104
03:57 khw left
ShimmerFairy m: say "ABC".contains("BC") 04:00
camelia rakudo-moar 5b6a34: OUTPUT«Method 'contains' not found for invocant of class 'Str'␤ in block <unit> at /tmp/GgBtTf3AXl:1␤␤»
ShimmerFairy aristotle: there is no such .contains method
aristotle so I haven’t caught recent development rights 04:01
*developments right
flussence m: say .so with 'ABC'.index('BC') 04:02
camelia rakudo-moar 5b6a34: OUTPUT«True␤»
Sgeo So, what if some clueless person uses `if' with index instead of `with'? 04:16
04:19 firefish5000 joined
ShimmerFairy same thing that happens in every other language where you forget about position 0 :) 04:19
Sgeo 0 isn't falsey in Haskell
Nor truthy 04:20
You need to use actual Bools for if
Smalltalk's similar
ShimmerFairy languages that eschew the historical meanings of zero and non-zero values wrt boolean logic don't count :) 04:21
04:42 pyrimidi_ joined 04:45 pyrimidine left 04:46 b42_ joined
JimmyZ m: say so 'ABC'.index('A') 04:55
camelia rakudo-moar f39d11: OUTPUT«False␤»
JimmyZ m: say .so with 'ABC'.index('A') 04:56
camelia rakudo-moar f39d11: OUTPUT«False␤»
Sgeo m: say defined 'ABC'.index('A')
camelia rakudo-moar f39d11: OUTPUT«True␤»
Sgeo Of course, a general "takes a truthiness function and blocks" etc. might be useful
JimmyZ m: say 'ABC'.index('D') 04:59
camelia rakudo-moar f39d11: OUTPUT«Nil␤»
04:59 llfourn joined 05:01 b42_ left 05:10 mr-foobar left 05:14 davido___ left 05:16 davido___ joined 05:18 BenGoldberg left 05:20 laouji left, gfldex joined 05:27 cognominal joined 05:35 rurban joined, laouji joined 05:42 laouji left 05:43 laouji joined 05:52 aborazmeh joined, aborazmeh left, aborazmeh joined
TimToady .tell flussence sub MAIN should certainly work inside unit module Foo, so it's just a plain old bug 05:59
yoleaux TimToady: I'll pass your message to flussence.
06:01 diana_olhovik_ joined, espadrine joined 06:08 dayangkun left, fxer joined 06:12 laouji left 06:13 laouji joined 06:33 cognominal left 06:35 maettu joined 06:40 dayangkun joined 06:46 jjido joined
ShimmerFairy TimToady: I'm wondering, are nqp::with[out] required to call .defined, or could they use nqp::defined() ? I only ask because as of now you can't use them on plain NQP objects. (I don't need nqp::with[out] to be changed, just something I happened to come across) 06:46
06:51 virtualsue joined
nine .tell japhb thanks, very much appreciated :) It's really conference driven development at its best. I just want my message at YAPC::EU to be "you don't have to know much, just use it!" 06:54
yoleaux nine: I'll pass your message to japhb.
[Tux] shouldn't this warn? 06:55
m: my Int $this = 1; $thıs++; say $this;
camelia rakudo-moar f39d11: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QgcDsRffJj␤Variable '$thıs' is not declared. Did you mean '$this'?␤at /tmp/QgcDsRffJj:1␤------> 3my Int $this = 1; 7⏏5$thıs++; say $this;␤»
[Tux] $ perl6 -e'my Int $this = 1; $thıs++; say $this;'
1
isn't there a command-line switch to force that strictness? 06:57
ShimmerFairy -e runs in 'no strict' mode, so that's just implicitly declaring a new variable on the ++'d one.
[Tux]: perl6 -e 'use strict; ...' or perl6 -Mstrict -e '...' 06:58
06:58 aborazmeh left
[Tux] use v6 also works 06:58
ShimmerFairy [Tux]: and for the record I don't get what the rationale for defaulting to "no strict" _anywhere_ in Perl 6 is :) 06:59
[Tux] but why isn't there a *short* switch for that or even an option to make that default
06:59 SamuraiJack joined
nine I thought we changed that already 06:59
[Tux] ShimmerFairy, I completely agree
ShimmerFairy nine: was there discussion?
[Tux]: As far as I'm concerned, Perl 6 has 'use strict' for a reason. You don't get to be sloppy-by-default just because you typed -e :) 07:00
[Tux] that reads to me as contradictive
ShimmerFairy Sorry, I should've written that as "Perl 6 defaulted to 'use strict' for a reason." 07:01
nine ShimmerFairy: IIRC the topic came up a couple months ago and pretty much everyone was for strictness by default
[Tux] to that I agree
nine, make it so! :)
ShimmerFairy [Tux]: your example actually highlights a possible source of errors without strict, and a very frustrating one at that; accidentally confusing some confusable Unicode chars when typing a variable name. 07:02
[Tux]: at first I didn't notice that the i was dotless in the second statement :)
Sgeo m: with "foo".index('z') { say "Huh?" } elsif True { say "Will this work?" }
camelia rakudo-moar f39d11: OUTPUT«Will this work?␤»
Sgeo neat
07:03 darutoko joined
[Tux] thinks he's pretty sharp in finding nice examples :) 07:03
nine According to irclog.perlgeek.de/perl6/search/?nick=;q=strict it actually came up several times this year alone and I can't find anyone arguing for a lax -e 07:04
07:05 brrt joined 07:06 edsc joined 07:11 jkva joined, dayangkun left
nine I found clear positive statements about a strict -e by psch, masak, jnthn, nine and Tux so far. I'm not sure what lizmat thinks. 07:13
07:14 dayangkun joined
ShimmerFairy nine: I can't say much since I'm on the "strict" side, but the only justification I can think of is "Someone from P5 might start playing with P6 by using -e and then it's all strict and nooooooo", but that's a very weak argument to me :) 07:15
dalek line-Perl5: 64826f1 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
Fix undef warnings in Test::WWW::Mechanize

We add 'v6.pm' and 'v6/inline.pm' to %INC by setting the hash slots to undef to prevent perl from actually trying to find those files. Test::WWW::Mechanize::_taintedness has a weird loop, looping over qw(/dev/null / . ..), values %INC, $0, $^X to find some taintedness. This gives a warning about an undefined $filename caused by our undefs in %INC.
Set $INC{'v6.pm'} and $INC{'v6/inline.pm'} to '' instead to avoid this.
brrt good morning! 07:16
nine Real life code really brings out the strangest issues...
07:16 jkva left
nine Good morning brrt! 07:16
07:16 jkva joined
brrt good morning nine 07:16
yapc::eu schedule is online \o/ 07:17
[Tux] is "Merging GLOBAL symbols failed: duplicate definition of symbol HLL" so difficult to fix? It is still present 07:21
OpenSSH-7.0p1 released today (FYI) 07:22
nine |Tux|: I guess everyone is just busy with other things. Haven't seen FROGGS++ around much lately, who would be a candidate. Even lizmat++ seems kind of sparse.
|Tux|: maybe I can have a look at the P6 hackathon if no one beats me. But I have no experience at all with that area of the code.
Oh my, I'm scheduled for 8:30 on the last day :/ 07:23
[Tux] I think both FROGGS and lizmat stated they would have a look. There is no hurry, but it hinders me in giving more feedback 07:24
test 50000 44.663 44.280 07:26
test-t 50000 42.309 41.926
nine And I'm scheduled next to Stevan Little's "The Intersection of Code and Art". Even I would probably choose his talk
[Tux] I was once scheduled next to Damien and MJD :( 07:28
El_Che [Tux]: that pretty bad
[Tux] I had TWO people in the audience and one of them was the time-keeper
we decide to cancel the talk and go to MJD
brrt 8:30 in the morning? :-o 07:29
[Tux] I had a conversation with that one person at the end of the day
brrt is at 12:00 on wednesday, which is kind of nice
El_Che I have given talks to small audiences (discourse analysis, not IT) and they were very interesting. More discussion than talk
although 1 attendee is the type of talk to move to the bar :)
[Tux] 15:30
El_Che, exactly 07:30
I also had prepared a presentation at a workshop. The room was well visited
07:30 pyrimidine joined
JimmyZ 15:30 here too 07:30
[Tux] when I started, one person asked if I was the one that did configure for perl5
El_Che like you said, a lot of expternal factors
[Tux] I replied yes
07:31 ecocode joined
[Tux] and then they audience asked if I could talk about that instead. WEIRD! 07:31
El_Che hehe :)
nine Kinda takes the drive out of my preparations 07:32
07:32 [Sno] left 07:33 pyrimidi_ left
El_Che well, perl6 talks out of the echochamber may be like that once released 07:33
07:34 laouji left, laouji joined 07:37 rurban left 07:38 rurban joined
brrt i'm wondering who will show up at mine... 07:42
nine I will 07:43
brrt :-)
well, i hope it'll be sufficiently interesting, then 07:44
[Tux] brrt, what is your talk?
brrt [Tux]: this one act.yapc.eu/ye2015/talk/6267 about the moarvm JIT compiler
[Tux] 12:00 wed - JIT - I signed up for that
brrt cool
07:44 edsc left
[Tux] shows as 24 persons attending 07:44
07:45 laben joined, dayangkun left
[Tux] 25 if you include yourself 07:45
laben hello p6'ers
DrForr Marnin'. 07:46
Huh, I'm just before that talk.
laben i got a question, is UFO still supported or is it deprecated?
i mean this UFO: github.com/masak/ufo/ 07:47
DrForr Good thing that it wasn't directly up against "modeling mathematical objects with perl", I imagine the crowds are similar.
07:48 jjido left 07:49 tinyblak joined
arnsholt laben: UFO is deprecated in favour of Panda, I think 07:50
laben arnsholt: mh, that makes packagins seriously challenging 07:51
07:52 RabidGravy joined
laben unless i package the bootstrapped panda, dang 07:52
it's just that ufo fails on json-tiny
and i dont understand why 07:53
it fails with this: gist.github.com/anonymous/03bf7928a4bedbb96730 07:58
07:58 dakkar joined
lizmat [Tux] nine: my answer to the strict / -e question: alias 6='time perl6 -Mstrict -e' 07:58
laben dunno whay it doesnt find the precompiled Actions.pm
[Tux] lizmat, I also have that in an alias, but only on the machine where I develop Text::CSV 07:59
lizmat I just meant to say I'm in the "strict all the time everywhere" camp :-)
[Tux] *we* (all) know how to work around this "issue"
who is against, and what would be their reason/argument? 08:00
alias p6="perl6 -I. -Ilib perl6 -Mstrict" 08:01
08:04 rindolf joined
laben wow, i found a way to make it work, but it shouldnt... 08:05
nine lizmat: thanks for clarification
laben shouldnt 'perl6 -I' give an error?
DrForr Looks like the p6 track gets the big room this year. 08:07
08:08 zakharyas joined 08:10 breinbaas joined
lizmat laben: $ perl6 -l 08:11
No such option -l
laben not lc(L) but uc(i) 08:12
lizmat $ perl6 -I
Option -I needs a value
laben the one you use to add lib paths
yeah it doesnt give error but the result is not good anyway 08:13
dalek kudo/nom: bd0871a | lizmat++ | src/core/Cool.pm:
Make position checking robust like with index()
laben i dont understant why rakudo doesnt find the file: it's precompiled, in the right dir-tree, freshly done, but it says it cand find it 08:14
lizmat what does it say when you run it with RAKUDO_MODULE_DEBUG=1 ? 08:17
laben right away gist.github.com/anonymous/897043c1a560a21b7f62 08:18
how come the first path isnt split by ':' ? 08:19
dalek kudo/nom: 2fec0bd | lizmat++ | src/core/Cool.pm:
Implement Cool.contains

This was discussed many times in the past weeks. I tought I'd bite the bullet.
laben error in Makefile?
lizmat that first @*INC entry seems bogus 08:20
laben yea dunno why, it was made by ufo in Makefile 08:21
lizmat ah, perhaps UFO isn't aware of the delimiter change
jnthn glrd morning, #perl6
laben what is it?
jnthn: hello there 08:22
lizmat laben: it should be , nowadays
laben lizmat: ill try asap
lizmat jnthn o/
lizmat needs to afk to pack for trip to Tokyo 08:23
laben lizmat: PERFECT! 08:24
ill work some magiks for the rest then, will someone update ufo or accept a patch? 08:25
RabidGravy it's just send a PR to ufo 08:28
JimmyZ \o jnthn 08:29
jnthn So...nobody patched glr branch while I left it... :/ 08:35
08:35 g5 joined
jnthn skids++ sent me a gist with some patches though 08:35
laben well, PR fix for ufo already exists (from May), just need someone to accept it 08:36
there's also one to fix the deprecated use 08:37
.tell masak could you please accept the two PR for masak/ufo? it would make my life much easier, thanks :) 08:42
yoleaux laben: I'll pass your message to masak.
jnthn heh, I broke ($a, $b) = 1, 2; 08:45
No wonder a lot is bust
08:46 firefish5000 left 08:48 dayangkun joined 08:51 fxer left
jdv79 so, how does one wedge a proxy into an attr 08:59
lizmat my writing the accessot method ? 09:00
*accessor
BTW, hoelzro++ for unbusting the JVM build 09:01
jnthn Binding should do it
hoelzro++ # Hacking with JVM without complaining :)
lizmat although now nativecall on the JVM is pretty busted 09:02
jnthn wonders if list assignment really needs a 2-pass algorithm...
m: my ($a, $b) = 1, 2; ($a, $b) = ($b, $a); say $a; say $b; 09:03
camelia rakudo-moar 2fec0b: OUTPUT«2␤1␤»
lizmat $ perl6-j t/04-nativecall/01-argless.t
1..3
Unable to execute 'sw_vers'
09:03 [Sno] joined
jnthn yeah, that case *does* need 2-pass. 09:03
09:05 smls joined
lizmat The root of the problem on JVM atm: 09:06
$ perl6-j -e 'say $*KERNEL'
Unable to execute 'sw_vers'
in block <unit> at -e:1
whereas "sw_vers" *is* available and runnable on OS X
afk again& 09:07
09:07 japhb left 09:23 azawawi joined
azawawi hi 09:23
hoelzro: ping 09:24
.tell hoelzro Regarding yesterday's backlog, the topic was github parsing .pod6 files and how to make your p6 module documentation available on github. Is there anything you needed to discuss with me about it? 09:27
yoleaux azawawi: I'll pass your message to hoelzro.
09:29 espadrine left
jdv79 isnt 2 pass frowned upon? 09:29
thanks lizmat. i was trying with attr default. 09:30
idk why now that i think more on it 09:31
09:31 bin_005 joined
lizmat jdv79: 2 pass is about runtime, nor parsing, in this case 09:31
aka, making temps for the RHS of the assignment first, and then assigning them
so that ($a,$b) = ($b,$a) works
dalek kudo/glr: 34a4c0a | jnthn++ | src/core/Any.pm:
Missing join default; b2gills++.
09:33
kudo/glr: b706d2b | jnthn++ | src/core/List.pm:
Re-instate list assignment.

This unbreaks 'my ($a, $b) = 1, 2;', which probably unbreaks quite a lot (including another of the sanity tests). Also changes the error from compiling Test.pm.
09:34 iH2O joined
jnthn Decided to get that working, given the skids++ patch commented out various of them :) 09:34
09:34 iH2O left 09:35 TEttinger left 09:40 virtualsue left, ChoHag joined 09:44 CIAvash joined, baest_ joined 09:45 baest left 09:46 dayangkun left 09:49 dayangkun joined 09:52 breinbaas left 09:53 espadrine joined 09:57 tinyblak left 10:01 telex left 10:02 telex joined
lizmat commute to Tokyo& 10:17
10:17 lizmat left 10:23 skids joined
ShimmerFairy m: "abc" ~~ /$<foo> = [<first=alpha> .+]/; say $<foo><first>; say $<first>; 10:26
camelia rakudo-moar 2fec0b: OUTPUT«Nil␤「a」␤»
ShimmerFairy ^ how dumb was I not to know/realize this for way too long? :) 10:27
10:27 brrt left, laouji left 10:28 azawawi left
ShimmerFairy I'm sure something in S05 would explain it, but why does that regex stored the "first" named thing as $<first> and not $<foo><first> ? 10:29
laben why would you expect $<foo><first> and not $<first>? 10:31
jnthn ShimmerFairy: Because [...] doesn't count as a nested match
ShimmerFairy Because the <first> capture is captured within $<foo>
jnthn m: "abc" ~~ /$<foo> = (<first=alpha> .+)/; say $<foo><first>; say $<first>;
camelia rakudo-moar 2fec0b: OUTPUT«「a」␤Nil␤»
ShimmerFairy jnthn: ah. It should be noted that I usually do $<foo>=(...) in my own code, for some reason I've since forgotten :) 10:32
jnthn Because (...) *is* a nested match :)
laben ShimmerFairy: there was something amiss
jnthn So it generates a separate match object.
laben and jnthn found it :)
ShimmerFairy jnthn: oh yeah! I decided to stick with $<a>=() in my own code because I wanted $<a> to act like I had written an <a> rule somewhere :)
dalek kudo/glr: f9d8459 | jnthn++ | src/core/IO/Handle.pm:
Eliminate gimme use in IO::Handle.print.
10:33
10:33 skids left
ShimmerFairy jnthn: I just spent far too much time with perl6 running out of memory or sometimes just locking up (_after_ the core compilation step) because I mistakenly expected $<coeff><int> and $<coeff><frac> to work :P 10:34
10:35 skids joined
jnthn ShimmerFairy: d'oh :) 10:37
ShimmerFairy jnthn: it was really weird, for I time I thought I broke radix_I, but when I reverted my MVM and nqp repos to master and it was still breaking I thought maybe radix_I was always broken ~somehow~ and... argh :)
dalek kudo/glr: a16adb8 | jnthn++ | src/core/Array.pm:
It's fine to store non-Any things into Arrays.
10:39
kudo/glr: b0851b3 | jnthn++ | src/core/io_operators.pm:
Make print subs .Str.

Makes things cheaper a layer down.
kudo/glr: e1e908a | jnthn++ | t/01-sanity/08-var-array.t:
This test needs a 'flat' to pass post-GLR.
10:40
jnthn OK, seems the next big blocker is range iteration 10:44
10:57 laouji joined 10:58 tinyblak joined 11:00 rurban_ joined 11:02 tinyblak left 11:05 breinbaas joined
dalek kudo/glr: 01444dd | jnthn++ | src/core/Range.pm:
Start getting range iteration in place.
11:12
jnthn Bloody hell. The slicing code.
11:21 breinbaas left
jnthn @a[1..2] manage to set up a pipeline 8 iterators deep o.O 11:22
11:22 tinyblak_ joined
RabidGravy wahay! 11:22
11:23 CIAvash left
jnthn goes for lunch 11:23
11:25 tinyblak_ left 11:30 bin_005 left, brrt joined
jdv79 seems like too much 11:41
smls jnthn: Does that mean you've decided on a new slice semantic (e.g. the "truncating if known infinite" you speculated earlier)? 11:45
Or just trying to bring back the old behavior for now? 11:46
timotimo jnthn: i wanted to look into it a bit, but i ddin't get a sane error message and then i was pulled away from my computer 11:53
11:53 japhb joined
jnthn timotimo: You'll need --ll-exception for the moment 12:13
smls: Still need to figure things out a bit :)
I'm kinda pondering the fate of the .infinite method 12:15
The whole concept has gone away really 12:16
But we still have a bunch of code that wants to go introspecting
skids One thing I saw a possible need for was a ".whatever-you-can-say-about-elems-without-reifying" 12:17
jnthn Reifying isn't a problem 12:18
It's reifying into a lazy thing that is
We already have "deep" reify-until-lazy stuff available
But it's in the iterator API
And while I was fine using that with .join, and will be for postcircumfix stuff. 12:19
But that doesn't cover the rest of the use cases.
skids Right, but if you have a computationally heavy thing that knows how many elems it will produce, but has to work to produce them, it could help with things like ThisSeq ~~ ThatSeq.
(by short-circuiting on a length check) 12:20
jnthn wonders what smart-matching a Seq even means :)
skids Well, [...] ~~ [...] where they are lazy is what I mean.
jnthn I guess equivalent semantics to "do .list on either side"
BTW, I think the slicing *can* flatten the things it's slicing over 12:21
Because the commonest caess are @a[1..2] style things, or @a[@b]
And .flat on those can be almost free
skids ISRT pmichaud saying "we know we want numbers there so..."
*ISTR (too much RT) 12:22
jnthn Yeah...having slept on it I think DWIM there probably is saneest
And I can see how the common cases don't have to be expensive. 12:23
I *do* think that the type constraint on the postcircumfix:<[ ]> candidates that currently takes Positional needs to start being Iterable instead.
m: my @a = 1..10; say @a[5..20] 12:32
camelia rakudo-moar 2fec0b: OUTPUT«6 7 8 9 10␤»
jnthn m: my @a = 1..10; say @a[1, 5..20]
camelia rakudo-moar 2fec0b: OUTPUT«2 6 7 8 9 10 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)␤»
jnthn m: my @a = 1..10; @a[5..20] = 40..60; say @a
camelia rakudo-moar 2fec0b: OUTPUT«1 2 3 4 5 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55␤»
jnthn m: my @a = 1..10; (@a[5..20]) = 40..60; say @a
camelia rakudo-moar 2fec0b: OUTPUT«1 2 3 4 5 40 41 42 43 44␤» 12:33
jnthn figured so :)
S09 doesn't actually talk about the case of a range inside of a set of subscripts.
The last 2 I did are interesting also; they show the lookup/assign discrepancy up nicely. 12:34
What's also interesting is the current code assumes any infinite thing is monotonic. :) 12:39
m: my @a = 1..10; say @a[1, 3, 11, 5, * + * ... *];
camelia rakudo-moar 2fec0b: OUTPUT«2 4␤»
skids Yeah I would say in the face of that discrepency, better not to autotruncate at all. Clear case of "if we make that work, this looks broken."
jnthn Well, I can kinda maybe sorta live with assign and lookup behaving differently. 12:40
But if we just got and flatten the whole thing and apply the monotic assumption if it's infinite, we'll get other surprises.
And infinite is kinda confusing to talk about now too 12:41
Oh, this is horribly confusing...
I wonder what happens if we 12:43
1) Grab the iterator for the positions we're to index
2) Do a reify-until-infinite to get the positions, filtering out any where EXISTS-POS returns False
s/reify-until-ifinite/reify-until-lazy/ 12:44
Dammit, I really AM going to kill the use of the word infinite in the codebase just stop me seeing it :/
3) For the remaining position that are marked lazy, hand them back until one fails to exist, and then assume it's monotonic beyond that point. 12:45
12:46 aramisf joined
jnthn And for assignment we actually just assume that we really are going to obtain all of the positions, so try to do so, and if you're silly enough to do something infinite there then you get the hang you deserved. 12:46
hoelzro morning #perl6 12:48
yoleaux 09:27Z <azawawi> hoelzro: Regarding yesterday's backlog, the topic was github parsing .pod6 files and how to make your p6 module documentation available on github. Is there anything you needed to discuss with me about it?
hoelzro .tell azawawi I just wanted to share my experience on the matter. Pod6 is a bit more complex than Pod, so adding support to GH could be somewhat difficult. Not that you shouldn't try, of course =) For now I've been generating my README.md via Pod::To::Markdown 12:49
yoleaux hoelzro: I'll pass your message to azawawi.
ShimmerFairy jnthn: I'm fine with assign and lookup being different. I don't think it's unreasonable to force the user to know that assignment acts differently from a lot of other typical operations :) 12:50
skids
.oO(@a[@oddseq] <== ...; @a[@evenseq] <==...; # I think I just hurt my bane)
ShimmerFairy (After all, $a = 5 is probably one of the few operations that does something to the Scalar container, instead of what it contains ☺) 12:51
jnthn notes that we can do something cheaper when the positions we need are coming out of a range too 12:52
But I'll code up the general thing first 12:53
ShimmerFairy Er, I think s/operations/operators/ would've been more correct in what I said :)
jnthn smls: Seems you get your "we don't call .elems, but .EXISTS-POS" wish for slicing; unfortunately, you still need it to support @a[*-2] :) 12:54
smls .list was what it called for slicing 12:55
jnthn Oh 12:56
OK, that won't be happening :P
smls .elems, I've made my peace with
jnthn OK
smls ok, sounds good
jnthn Fine, then you'll be some kind of happyish :)
13:08 dayangkun left 13:12 rmgk_ joined, rmgk is now known as Guest44305, Guest44305 left, rmgk_ is now known as rmgk
timotimo jnthn: even with --ll-exception it was pretty much bullcrap; but what you fixed, array sasignment, sort of explains why the exception seemed so weird-ass confusing 13:13
jnthn grr, but what I suggested will go badly wrong 'cus it doesn't distinguish Ranges from other indexes.
How badly do we want @a[0, 2..5] to give the range auto-truncating behavior, and @a[0, |(2..5)] (or @a[0, 2, 3, 4, 5]) to not? 13:16
And do we want @a[0, (2, 3..5)] also to auto-truncate?
smls "badly do we want @a[0, 2..5] to give the range auto-truncating behavior" -- it doesnt currenty, I think 13:17
jnthn Yes, I know that ;)
I'm asking if we want that.
ShimmerFairy jnthn: To be honest, I wasn't even aware of auto-truncating behavior until a short while ago, so I clearly don't need it that much :) (to me, it seems like it's only potentially useful in really common [] uses where manual end-checking would be too tedious) 13:18
timotimo autotrunc was only recently discussed; i'm not sure it was in rakudo for a while before that?
dalek kudo/fix-travis: 3621cd7 | hoelzro++ | .travis.yml:
Try to fix Travis tests

  travis-ci.org/rakudo/rakudo currently reports
  "This is not an active repository"
jnthn Well, we've had it for ranges and sequences if you use them directly until now
timotimo OK 13:19
jnthn With what I've got, @a[2..5] will auto-truncate, @a[0, 2..5] would not, but curiously @a[0, lazy 2..5] actually would... :)
timotimo i'll build a fresh rakudo and see how far i get with my "wavy block animation" code :)
smls jnthn: regardless of @a[0, 2..5], will .[2..5] actually truncate?
I thought you said it would need to be written as .[lazy 2..5]
jnthn smls: Maybe accidentally ;) 13:20
ShimmerFairy m: my @a = 1,2,3,4,5; say @a[0, ($_ if $_ < +@a for 3..7)] # <-- jnthn: the non-truncating workaround doesn't seem too bad, at least :)
camelia rakudo-moar 2fec0b: OUTPUT«1 4 5␤»
jnthn smls: I know I can't get away with *that* though ;)
smls: And I don't especially want to.
ShimmerFairy: Well, with my current semantics a simple "lazy" before the Range does that for you :)
hoelzro does anyone know why travis-ci.org/rakudo/rakudo might be marked as an inactive repository as far as Travis concerned? 13:21
ShimmerFairy jnthn: ah, even less reason to make sure auto-truncating automagically works beyond the simplest [] use cases! :P
13:22 SamuraiJack left
smls jnthn: Would it make sense to only truncate if the top-level thing is marked as "strictly lazy" from the start? 13:22
jnthn smls: I don't think people will like having to write @a[lazy 1..10] :) 13:23
smls so only if you add the 'lazyl keyword at the start, or give something that is inherently infinite
jnthn Really this is about Range wanting to be special.
smls sequences too, though
.[0, 3, 6, 9 ... *]
ShimmerFairy
.oO('lazy' is an inherently ironic keyword)
13:24
jnthn Yeah, but that one falls out as lazy.
Basically, I'm looking for a semantics that will DWIM often enough, not be crazy expensive to implement, and not be uttery unteachable. :)
smls I woulnd't mind @a[lazy 1..10] (can also be written as @a[1..10]:v if you only need the ro values) 13:25
ShimmerFairy I would, that's exactly double the number of characters in those brackets as before :) 13:26
smls ....for some non-trivial extra functionality.
ShimmerFairy I think you could safely make a "just one range argument" version of [] that treats said range as implicitly lazy. 13:29
smls in any case, things like @a[1..*] (all except the first) will probably be the most commohn uses of it
jnthn Aye
smls for everything else, it would be fine to require extra explicitness imo
jnthn I think for now I'll:
1) Special-case @a[range here]
2) For everything else, we reify until a lazy thing is encountered, and then that lazy thing will cut off on the first EXISTS-KEY failure 13:31
smls in .[0, 2, 4, 6 ... *] will the sequence operator return something that is lazy from the start? wouldn't want the "0, 2, 4, 6" to be non-truncating there. 13:32
ShimmerFairy jnhtn: and then non-lazy things after the lazy thing will reify and behave no differently from reified things before the lazy thing, correct? 13:33
smls I don't think @a[2..5] (i.e. non-infinite range) for truncating is that common, which is why i'd be fine with it requiring an explicit lazy prefix or :v adverb. 13:35
jnthn ShimmerFairy: Only if the lazy thing doesn't produce an element that doesn't exist
ShimmerFairy jnthn: so my @a = 1,2,3; say @a[0, lazy 2..5, 1] wouldn't get @a[1] at the end, if I understand correctly? 13:37
jnthn Right
If you want us to have things like that work, we're going to have to do something more difficult. 13:38
I'll levae it up to TimToady to decide
smls Also, it would be easier to document without the .[2..5] vs .[1, 2..5] inconsistency.
jnthn I can implement it either way
smls So I'd prbably drop rule (1).
jnthn smls: I can tell you that won't happen.
Like, almost certain :) 13:39
ShimmerFairy jnthn: seems fair. I'm fine with subscripting not expecting or trying to see if I go back and forth, instead of in one direction :)
jnthn Won't get past lang design :)
13:40 mr-foobar joined
smls The thing is, it's a little weird to have one rule that only checks the top-level (Range), and one that may also be encountered in a nested part of the list (lazyness) 13:40
ShimmerFairy I don't think your use of the word "top-level" is appropriate here; makes it sound like you're possibly referring to multi-dim stuff. 13:41
smls i.e. if .[2..5] truncates but .[1, 2..5] doesn't, maybe .[1, @something-lazy] shouldn't either? 13:42
TimToady will know. 13:45
jnthn Yeah
I'm a bit fed up of it all
I didn't want to waste hours of today's GLR time on slice crap
But I couldn't leave it alone when it was .gimme this and .infinite that
13:48 aramisf left
hoelzro nqp::shell is documented as blocking until the process is complete, and returning the exit status of the process. Now that shell has been expanded to allow piping and background processes, what do others think it should return in case of usage of things like :out ? 13:53
13:54 cognominal joined 13:55 aramisf joined, aramisf is now known as Guest37541 14:04 rurban left
leont hoelzro: what do you propose? 14:08
dalek kudo/glr: f5c14a1 | jnthn++ | src/core/ (2 files):
Range and Seq are flat "for free".
14:09
kudo/glr: 23d8e71 | jnthn++ | src/core/List.pm:
Re-instate EXISTS-POS on List.
kudo/glr: 5546f38 | jnthn++ | src/core/array_slice.pm:
Get array slicing basically working again.

Semantic details TBD, but this should handle all the normal things.
leont Backgrounding makes it impossible to return a wait-status, a PID would make more sense
Redirecting std{in,out,err} shouldn't really affect the return status, right?
Actually, backgrounding has other issues, at least if you want to make it do the POSIXy thing on POSIX systems with regard to signals 14:10
timotimo it's also problematic if you're not reading out of the stderr and stdout streams 14:11
they're buffered, but not infinitely so, you may deadlock your program
leont Indeed
Really, redirection kind of only makes sense when not synchronizing that way.
hoelzro leont: I'm thinking a sentinel value, perhaps -1, in case the process is still runing 14:14
*running
leont But then you don't know which process
hoelzro the pipe has a reference to the child's PID 14:15
14:15 laouji left
leont Seems rather convoluted to get it from there 14:15
hoelzro it's a bit odd, yes 14:16
that's how it currently works, though
but we can always change that =)
we could return the pid with a bitmask set
and add an nqp::wait 14:17
leont I don't think the backgrounding is a good fit with the rest of shell (assuming nqp::shell is mostly like P6's shell)
If you need async, why don't you use a Proc::Async?
hoelzro I'm just trying to get qx{...}/run/shell working again 14:18
we *could* implement qx in terms of P::A, and remove the pipe functionality from run&shell 14:19
leont Where is that pipe functionality documented? 14:20
hoelzro afaik, it's not
it's not in docs/ops.markdown
but Rakudo now relies on it
14:21 lizmat joined
leont Having something return the output is sensible, and can synchronously. Having something return a stream is rather tricky to get right for the reason timotimo mentioned 14:21
s/can/can be done/
lizmat waves from FRA
colomon \o 14:22
brrt \o lizmat
lizmat brrt colomon o/ 14:23
PerlJam good $localtime all.
hoelzro ahoy lizmat, PerlJam 14:24
lizmat PerlJam hoelzro o/
hoelzro leont: I didn't see timotimo's comment on that; I'll backlog
commute &
leont The pipe buffer is of limited size (typically 4k), so if the child process writes to it and it is full, it will hang until the other side reads from it 14:25
14:28 g5 left
jnthn o/ lizmat 14:29
Hope the journey was fine so far :)
lizmat yeah... just the maze that is FRA was the hardest parts so far
jnthn FRA is...big
lizmat yeah... 14:30
better make a picture of where you parked your car :-)
PerlJam hoelzro: I don't think removing the pipe functionality from run/shell is a good idea. It's a better fit for piped opens ala Perl 5. (e.g. open(my $fh, "zcat $filename |") or die; ) Unless, you're also proposing to add that functionality back to P6's open 14:32
jnthn lizmat: ah, you drove the first bit :) 14:33
lizmat: I'll be flying PRG -> MUC -> Tokyo
lizmat yeah, I mean, driving to AMS is also 2 hours
and FRA for us is 2.5 hours
jnthn yeah, then you may as well do that
lizmat and no direct flight from AMS to HND
[Coke] cannot imagine jnthn's crazy schedule. Coke is freaking out just getting prepped for something 2 weeks out! 14:34
jnthn lizmat: ah, you're going to HND too rather than Narita :) 14:36
lizmat: Staying somewhere near the venue, ooc?
lizmat yup
jnthn Cool...me also 14:38
And flying to HND 'cus it's more convenient for that :)
dalek kudo/glr: 5b635cd | jnthn++ | src/core/List.pm:
A correct fix, plus code simplification.
14:40
kudo/glr: d68086f | jnthn++ | src/core/ (2 files):
Ensure storage is allocated for Array.

We need this because of the lazy lexical stuff that allocates my @a.
lizmat jnthn: yup, that was the plan 14:41
14:41 zakharyas left
dalek ast: f7705af | lizmat++ | S32-str/contains.t:
Add some tests for Cool.contains
14:41
TimToady we're flying into Kansai 14:42
leont PerlJam: that is essentially an asynchronous execution, but with synchronous IO 14:43
14:43 baest joined 14:44 arch_vader joined
brrt exit 14:44
14:44 brrt left, baest_ left, davido___ left
hoelzro leont: I brought that up on #moarvm a few months ago; with the MVM backend (at least), it's not an issue, because MVM is constantly reading from handles hooked up to its event loop in the background 14:45
leont Yeah, that is sensible really
hoelzro PerlJam: I would rather not, but we would have to if we want to distance ourselves from the implementation warts leont is pointing out 14:46
14:46 davido___ joined
hoelzro but you know what they say about implementors and users ;) 14:46
leont The obvious solution would be to implement the synchronous IO on top of asynchronous, but that may be tricky with bootstrapping 14:47
No wait, I'm overly complicating things now 14:48
As long as you're doing backgrounding and redirecting together, you should be fine
The zcat scenario is essentially doing that
14:49 andreoss joined
leont qx makes sense as a backgrounded shell that is then waited upon. 14:52
lizmat is enjoying the complimentary sekt 14:56
14:56 arch_vader left
dalek kudo/glr: b3c5ca3 | jnthn++ | src/core/Array.pm:
Array.new, one-value Array.push and Array.unshift.
14:57
kudo/nom: 5342f98 | lizmat++ | t/spectest.data:
Add Cool.contains tests
15:00
15:06 CIAvash joined 15:08 tinyblak joined 15:13 skarn joined
jnthn Hm, after re-instating hash iteration the build gets through to NativeCall before exploding. 15:14
15:14 diana_olhovik_ left
dalek ast: 4587519 | lizmat++ | S02-types/pair.t:
Add some Pair.new and pair() tests
15:16
xinming How do we do around modifier just like Moose in perl 6? 15:18
dalek kudo/glr: dad13fe | jnthn++ | src/core/EnumMap.pm:
Re-instate most forms of hash iteration.
15:19
jnthn xinming: method foo() { ...before stuff...; callsame(); ...after stuff... } 15:20
15:21 jkva left
xinming Ok, so, all methods are around modifiers. 15:21
thanks
lizmat boarding& 15:22
15:22 lizmat left, khw joined, tgt joined 15:23 tgt left
timotimo deepmap calls $o.new(deepmap(op, $o)).item; in this case that seems to be List, which says "default constructor only takes named arguments" 15:26
so List wants to get a method new that takes positionals?
jnthn timotimo: yeah, the new is still commented out there
timotimo ah, yes, indeed
what's the lbocker there? p6list?
dalek kudo/glr: 1f154fe | jnthn++ | src/core/Array.pm:
Fix missing allocation.
15:27
jnthn p6list is dead
Just writing the boring code to make it happen really :)
timotimo fair enough; where do i cargo-cult from? :)
laben does someone know a c library contained but still useful to begin experimenting with nativecall? i tried libxml2 for my needs but it's waaaaay too big
timotimo laben: are you interested in looking at examples? like Cairo or SDL2::Raw perhaps? 15:28
GTK::Simple is quite big and exercises many features
jnthn timotimo: I'd do it like method new(**@things) { ...
laben more like i was interested in makeing a new module, to make new bindings, but all the libs i need to use are immense in scope 15:29
timotimo ah
laben maybe i should just checkout some already done
jnthn timotimo: And then grab @things.iterator, make an IterationBuffer, populate that until you hit something lazy, and then if you do set it up as a "reify later"
laben it's not the same
PerlJam laben: DBM is small and perhaps useful :)
TimToady .tell ShimmerFairy re irclog.perlgeek.de/perl6/2015-08-12#i_11042225 the problem with nqp::defined is that it treats Failure.new as defined, and 'with' needs to treat those as undefined
yoleaux TimToady: I'll pass your message to ShimmerFairy.
jnthn timotimo: You can actually steal most of that from sub POSITIONS in array_slice.pm
timotimo thanks!
15:30 araujo left
timotimo it'll just be filling in $!reified with the values from @things and current-iter and reification target to be empty, yeah? 15:30
laben PerlJam: you mean this? www.gnu.org.ua/software/gdbm/
PerlJam laben: aye 15:31
jnthn timotimo: you'll need to create an IterationBuffer for $!reified
xinming Is it ok to ask Inline::Perl5 question here?
timotimo xinming: yeah
xinming It seems Inline::Perl5 doesn't work with perl 5.20
Ok
laben PerlJam: cool, i never even knew it existed, thanks for the mention
xinming I got the rror
/lib/perl5/5.22.0/x86_64-linux/CORE/libperl.a(op.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
But I checked 'perl -V'
It does have -fPIC 15:32
PerlJam laben: and once you do the native call stuff to make it available in P6-land, you can then figure out how to tie it to a %hash via a trait. (lots of learning potential there :)
xinming 5.22 15:33
Not 5.20
laben PerlJam: well, before i need to learn exactly what can i do with that lib, but thanks for the heads up :)
xinming How do I check where the problem is please? 15:38
dalek kudo/glr: 0c47e1a | jnthn++ | src/core/Array.pm:
Cannot fail at a distance, plus another thinko.
15:40
15:41 Guest37541 left 15:43 rurban_ left, araujo joined
xinming I'll nopate the whole log 15:45
15:46 ChoHag left
timotimo jnthn: i'm not really sure how .new should behave with regards to LoL-ish argument lists 15:47
i don't know why, but apparently LoL args will correctly create a nested List already ?! 15:48
that's cool
xinming paste.scsys.co.uk/496969 <-- This is the error log for 'panda install Inline::Perl5'
dalek osystem: 34d91c3 | RabidGravy++ | META.list:
Add Audio::Convert::Samplerate
15:49
timotimo nine probably wants to be highlighted fro this ^
dalek kudo/glr: b3aa4ff | jnthn++ | src/core/Iterable.pm:
Missing 'is rw's in various pull-one methods.
jnthn timotimo: LoL is gone, we just don't do a .flat 15:50
timotimo: List.new shouldn't flatten
timotimo oh, cool
what do i run to test this?
my script that does >>.clone seems to work 15:51
i just don't understand how with my code a **@ turns into a List with List objects inside :)
should i just push?
TimToady jnthn: but what flattens the lower-level slices in .[1,3..5;2,stuff()]? 15:52
that's what ** did 15:53
15:53 TEttinger joined
dalek kudo/glr: 6ed8694 | timotimo++ | src/core/List.pm:
this implementation of List.new(**@) seems to work
15:54
timotimo there you can has a look at it
jnthn TimToady: We'll need a new type for the ;-separated stuff, I think
TimToady or recognize it in the parser
jnthn TimToady: I think that's de-coupled from **@foo now
TimToady and just call something different
laben xinming: did you check if you have libperl.so? 15:55
jnthn oh fuck it, git crashed, and indstead of deleting .git/index.lock I deleted .git/index :/ 15:57
leont xinming: first guess: you need a shrplib perl (what does 􏿽xABperl -V:useshrplib􏿽xBB return?
jnthn *sigh*
laben jnthn: may the google-fu help you fix this problem 15:58
15:59 ChoHag joined
timotimo oops, i was wrong, this doesn't work after all :S 15:59
16:00 diana_olhovik_ joined
dalek kudo/glr: 826b491 | jnthn++ | src/core/ (2 files):
Seq.sink should return Nil, not self.

Otherwise, we'll end up trying to do it twice, which will throw an exception.
16:00
timotimo but now i can dive deeper 16:01
RabidGravy now, what shall I do next?
xinming leont: false 16:04
leont: oops, sorry, wrong compleetion
leont: false
timotimo %) 16:05
laben xinming: that's your answer, you need to add " -Duseshrplib" to the ./Configure line when building perl
leont Without useshrplib, it won't create a libperl.so, so the object files won't be made relocatable
xinming Alright, Thanks for your info.
By default, we won't have -Duseshrplib, right
?
16:06 rurban joined
RabidGravy some packagers build it like, some don't - I don't think that "e.g. ./Configure -des" does 16:06
laben xinming: i dont think so, but which distro are you using that doesnt use that flag while building perl?
xinming It's not distro, It might be because I press the enter to create the perl 16:07
I'll re-compile perl, thanks.
16:09 [TuxCM] joined, [TuxCM] left
dalek kudo/glr: 4036ace | jnthn++ | src/core/traits.pm:
Add a now-needed flat.
16:14
kudo/glr: e24313c | jnthn++ | lib/NativeCall.pm:
Get rid of an nqp::p6list in NativeCall.

We don't need the hack from before because we don't have so much magic flattening any more.
jnthn With that, "make" in the glr branch gets all the way through.
nine xinming: Perl 5.20.0 is even the example used in the Inline::Perl5 README ;) perlbrew install perl-5.20.0 -Duseshrplib 16:16
timotimo way cool, thanks jnthn
that'll make things much more smooth
because make install 16:17
jnthn The error reporting without --ll-exception is still broken, but the error has kept changing as I've gone, so it's clearly unbreaking :)
timotimo :) 16:18
maybe we should make parsing of comments beginning with # in the rakudo parser faster 16:19
i bet the increase to parsing time recently comes from all the commented-out lines :P 16:20
16:20 ChoHag left
laben PerlJam: first binding stuff seems to work, exciting times! 16:20
timotimo bleh, method push not found for invocant of type Mu ... with one frame from m-BOOTSTRAP and two with :1 line numbers :( 16:22
16:23 ChoHag joined
laben PerlJam: oops, too easy to be true, i was wrong 16:24
PerlJam laben: It happens :-) Share your code with #perl6 when you're comfortable and maybe you can get some pointers about better or different ways to do things. 16:25
dalek kudo/glr: f9384f6 | jnthn++ | src/core/Array.pm:
Re-instate pop and shift on Array.
16:26
kudo/glr: 511c03b | jnthn++ | src/core/CompUnitRepo.pm:
Re-enable some CompUnitRepo setup code.

Was commented out because it broke setting loading; now that's fixed.
16:27 ChoHag left
laben PerlJam: sorry, i was wrong about being wrong, i simply wrote down the wrong libname ;P 16:28
16:28 ChoHag joined
TimToady jnthn: I'm fine with your current formulation of slicing, btw, at least for now 16:28
laben but now i need to understand those erro codes 16:29
dalek kudo/glr: 680fe58 | jnthn++ | src/core/Inc.pm:
Partial re-instatement of @*INC setup.
16:31
16:31 japhb left
jnthn TimToady: OK...I'm not sure I am, but we'll live with it for now :) 16:32
perl6-m -Ilib -e "use Test; ok 1" is really rather close to working now :)
It actually spits out the ok 1, then seems to die afterwards. 16:33
If I can fix that, we'll be back to being able to run "make spectest", though fixing the sanity tests further is probably more sensible :) 16:34
Time for a break first, though :)
bbl
16:35 ChoHag left 16:36 virtualsue joined, ChoHag joined, tinyblak left
flussence #| TimToady: thanks for the confirmation, I'm not making insane assumptions at least 16:41
yoleaux 05:59Z <TimToady> flussence: sub MAIN should certainly work inside unit module Foo, so it's just a plain old bug
TimToady though, of course, only if the file is invoked directly, but I verified that doesn't work 16:42
flussence m: module Foo;␤sub MAIN() { say 'foo' } 16:43
camelia rakudo-moar 5342f9: OUTPUT«Saw 1 occurrence of deprecated code.␤================================================================================␤Semicolon form of 'module' without 'unit' seen at:␤ /tmp/hggRXVO707, line 1␤Deprecated since v2015.4, will be removed with releas…»
TimToady the #| is cute there
flussence whoops
:)
m: unit module Foo;␤sub MAIN() { say 'foo' }
camelia ( no output )
flussence m: sub MAIN() { say 'foo' }
camelia rakudo-moar 5342f9: OUTPUT«foo␤»
flussence (it'll take a while to retrain my fingers to type "unit", it seems...) 16:44
TimToady it's lexically scoped, so it shouldn't be misplacing it, unless unit module is adding in a spurious lexical scope
m: say MY::.WHICH; unit module Foo; say MY::.WHICH 16:45
camelia rakudo-moar 5342f9: OUTPUT«PseudoStash|54046200␤PseudoStash|54046256␤»
TimToady unit should not be introducing a new lexical scope, it's just supposed to label the existing file scope 16:46
laben is there a way to make dd correctly dump $var of a class inheriting from repr('CStruct')? 16:48
16:49 ChoHag left
TimToady well, it's open source, so there's always a way... :) 16:50
I dunno if there's a convenient way though...
laben is dd code in rakudo, right? not nqp or moarvm? 16:53
trying to see how it does its work
16:55 virtualsue_ joined
laben if it's this src/core/Any.pm:888, then it calls .perl 16:55
timotimo in rakudo
laben but can i add it to the class but keep it repr of CStruct?
16:56 virtualsue left, virtualsue_ is now known as virtualsue
timotimo sure, CStruct can have methods 16:57
repr is only about storing the internal data
the metaobject, the ClassHOW, is in charge of methods and such
dalek c: a5267c9 | (Steve Mynott)++ | lib/Type/IO/Notification.pod:
watch_path is now watch-path and some white space changes
xinming I know that pre-mature optimization is wrong thing to do. But still curious, Will rakudo be much faster in this X-Mas? :-) 16:58
timotimo the Great List Refactoring has shown good results in preliminary benchmarks
RabidGravy laben, see for example github.com/jonathanstowe/Audio-Snd...le/Info.pm 16:59
but most of those bindings do something similar 17:00
17:00 ecocode left 17:08 dakkar left, beastd joined, dha joined, jkva joined 17:11 aramisf joined, aramisf is now known as Guest39820 17:13 jkva_ joined 17:14 raiph left 17:15 jkva left
dha So, I was looking at the CONTRIBUTING document, and I was wondering - how strict are we being about using the active voice? 17:16
yoleaux 4 Aug 2015 07:25Z <nine> dha: please merge your 5-to-6 docs into docs.perl6.org. Yesterday I would have had a use for it but couldn't find it.
dha eep.
17:17 jkva_ left
dha sorry nine. I'm cleaning them up, and will work on merging them asap. 17:17
Speaking of which, any thoughts on said merging, anyone?
Should there be a separate 5->6 directory? 17:18
DrForr dha: Also I sent you a blurb on Facebook, speaking of things.
dha Ah, yes! Thanks for reminding me. I saw it, but didn't get to doing anything with it yet. 17:19
DrForr The email I remembered for you was out of date.
dha oh?
DrForr panix.net.
Probably *very* out of date.
dha No, it's just wrong. :-) It's panix.com. But you can pretty much just use pobox.com nowadays. 17:21
timotimo it kind of seems like we don't annotate nqp:: ops from the source code with line number annotations 17:22
maybe i can fix that
17:23 zakharyas joined 17:24 jjido joined 17:25 spider-mario joined
smls dha: A separate directory/category would probably be overkill. Could you make do with a set of docs named /language/5to6 /language/5to6-variables /language/5to6-functions or similar? 17:26
timotimo yes, i apparetnly fixed it 17:27
this'll help
dha Sure. I'm just thinking that might - *might* - get a bit unweildy. So far I've got Functions, Operators, Special Variables and Syntax. 17:28
But I'll do it as you suggest, and we can always change it later if it turns out to be a problem. Yay!
smls dha: Syntax could go in the main doc, no? Operators probably too. 17:29
dalek kudo/glr: a945ce0 | timotimo++ | src/Perl6/Actions.nqp:
ulti-line nqp::ops trees will now give you line numbers
smls dha: Maybe abbreviate the filenames to sth like 5to6, 5to6-var, 5to6-func to keep them as short as the existing ones 17:30
dha It *could*, but my original intent was to write these as, essentially, replacements for the old Perl 5 docs - perlfunc, perlop, etc. To make things as easy for the Perl 5 programmer to find as possible.
DrForr And formatted so I can copy/paste into modules :) 17:31
dalek kudo/nom: 591a147 | timotimo++ | src/Perl6/Actions.nqp:
ulti-line nqp::ops trees will now give you line numbers
timotimo i hope this doesn't break anything
i better check
dha I'm not really sure that the differences between p5 and p6 should be in the main docs, as that seems to me that it would be... cluttered, at best, confusing at worst. 17:32
17:32 espadrine left
dha And, yes, so DrForr can Mogrify. :-) 17:32
laben i implemented method perl(), but it gives me "Cannot look up attributes in a type object"
smls dha: That's why it would be in the Appendix section in my /language docs structuring plan
geekosaur laben: a type object is a typed "undef", so somewhere you have something without a value 17:33
dha Right. Which is one of the things that made me think maybe a separate directory under Appendix might be the way to go.
Are there plans to implement the restructuring soon? Because, apparently at least one person would like my docs now. :-) 17:34
17:34 jjido left
laben geekosaur: yea it seems the attributes dont get set by the native funcs, some kind of error 17:34
geekosaur: but i would like it to say "undefined" istead of erroring out
PerlJam laben: show the code :) 17:35
smls dha: dunno, hopefully we'll get it done soon 17:36
laben PerlJam: here it is, gist.github.com/anonymous/8960d3e45caad00ec63d
RabidGravy laben, right so how is it supposed to get created? 17:37
and/or populated
smls dha: re separate pages: There are dozens of perldoc pages though, you can't (meaningfully) replace all of them... I think it's fine to condense things into the main doc and only have pages for long listings like functions and variables.
laben i get the struct created directly by the c funcs
RabidGravy as a return value or a rw argument> 17:38
PerlJam laben: um ... show more code
laben for now i get some errors, but i would like to debug them. it would be useful to see when it's undefined
as a return value
PerlJam: the rest are the bindings and 1 line calling a func that gives this struct 17:39
dalek kudo/glr: d5c28cc | TimToady++ | src/core/Array.pm:
1st whack at Array.perl
RabidGravy and you have declared the ... returns datum 17:40
dha True. But some are fairly essential, such as - I would argue - those I've already done. Also, some version of perlre would probably be useful.
laben RabidGravy: yep, right as they're called in the c code
RabidGravy laben, by the why nicely volunteered for doing a gdbm binding btw
show us more code
smls dha: Right, there's probably quite a bit to document when it comes to regex changes... ;) 17:41
laben well, if it works
dha But, no, I certainly don't intend to do *all* of the p5 pages.
laben i think i messed up somewhere greatly
it cant be this hard
PerlJam laben: it's not :)
17:41 hahainternet joined
dha perlootut and perlperf, for instance, do not strike me as ripe for conversion. 17:42
laben uhoh, wait, is it called dbm or gdbm?
PerlJam laben: there are multiple flavors of *dbm, gdbm is one of them.
hahainternet in p5, -c seems to catch printing a nonexistent variable, is there an equivalent level of checking in perl6 or am i confused about how perl works? :D
PerlJam hahainternet: I think you may be slightly confused. 17:43
dha When we get to it, though, we might want to use the old perlfaqs as the skeleton for the new perlfaqs. I'm sure many of the same questions would apply.
dalek kudo/glr: 1ede1e3 | (Stefan Seifert)++ | src/core/Inc.pm:
We can actually run more of core/Inc.pm before things explode
RabidGravy you have something like "sub gdbm_fetch(GdbmFile, datum) returns datum is native('libgdbm')" ?
geekosaur perl6 should always catch that. make sure you are using the correct quotes though; in a unix-like shell, unquoted or double quoted will see $xxx interpreted by the *shell*before perl ever sees it
hahainternet, ^^
laben i think i got the old one dangit, only now i see
hahainternet geekosaur: it catches it but prints it as if it was blank, i'm wondering if there's a way to check ahead of time without actually executing 17:44
laben sorry p6'ers, i wasted some of your time
hahainternet the syntax check -c in current rakudo doesn't seem to care
17:44 llfourn left
smls dha: I already started an issue about adding FAQs (github.com/perl6/doc/issues/112) and yes, I used the perlfaqs as a guide in my preliminary plan 17:44
RabidGravy labenL no worries, I was actually thinking of doing the gdbm binding recently 17:45
timotimo m: CONTROL { die $_ }; my Str $foo; say "Hello, $foo"
camelia rakudo-moar 5342f9: OUTPUT«Use of uninitialized value $foo of type Str in string context␤ in block <unit> at /tmp/7KOODuXzs7:1␤␤»
timotimo m: CONTROL { die $_ }; my Str $foo; say "Hello, $foo"; say "alive"
camelia rakudo-moar 5342f9: OUTPUT«Use of uninitialized value $foo of type Str in string context␤ in block <unit> at /tmp/lZ3qus9Q3Y:1␤␤»
hahainternet PerlJam: i welcome elucidation, but no pressure, it's just something i couldn't figure out
timotimo m: my Str $foo; say "Hello, $foo"; say "alive"
camelia rakudo-moar 5342f9: OUTPUT«Use of uninitialized value $foo of type Str in string context in block <unit> at /tmp/DOOpAIgxQM:1␤Hello, ␤alive␤»
timotimo m: use fatal; my Str $foo; say "Hello, $foo"; say "alive"
camelia rakudo-moar 5342f9: OUTPUT«Use of uninitialized value $foo of type Str in string context in block <unit> at /tmp/e4vY0HuDIP:1␤Hello, ␤alive␤»
hahainternet interesting, i will go google CONTROL blocks
it seems a bit of a subtle difference between the two -c options, but those examples are clear enough 17:46
timotimo they'll be triggered when a control exception flies by; those are resumable exceptions, which is how - among other things - warnings are implemented
PerlJam hahainternet: perl 5's -c doesn't catch anything, it's warnings and/or strict that will complain.
RabidGravy all -c does is compile the code and then exit without running it, on both 5 and 6 17:47
PerlJam hahainternet: *doesn't catch anything with regard to a non-existant variable.
hahainternet PerlJam: rgr
makes perfect sense
laben right, the gdbm one has much more info and stuff, i will work on this thing more
seems very interesting 17:48
hahainternet although, i don't understand what use fatal; is doing there
as the output is identical?
i guess that's what timotimo is saying about reusmable
17:48 [Sno] left
laben see you later 17:49
17:49 laben left
dha smls - ah. Excellent. 17:51
But I guess my general point is that, although there will definitely be p5 pages not useful to turn into conversion documents, I'm going to look at all of them to make sure. :-)
17:52 telex left
dha Ah, Must run. Thanks for the suggestions. 17:52
17:52 dha left 17:54 telex joined, skids left
timotimo hahainternet: it's about Failure, not about control exceptions 17:54
dalek kudo/glr: 95e34ac | (Stefan Seifert)++ | src/Perl6/World.nqp:
Bring back initialization of %?INC
17:56
nine Hey this is fun :)
17:56 andreoss left
nine Although I'm a bit nervous as I'm not sure what exactly I'm doing... 17:56
hahainternet timotimo: roger
timotimo figured out method close has a little problem apparently 17:57
timotimo is now trying to fix it for /glr
17:58 rurban left
dalek kudo/glr: a3d3ae5 | jnthn++ | src/core/Inc.pm:
These bits of Inc.pm are OK too.
18:07
kudo/glr: 41a8fb3 | (Stefan Seifert)++ | src/core/Perl.pm:
Bustage in Version seems to be gone
18:08
nine jnthn: "Cannot assign to an immutable value" seems to be everywhere. Is there any common pattern to look out for? 18:11
jnthn nine: my @; @a[0] = 42; # does this die? :)
nine jnthn: you mean my @a;? 18:12
jnthn: yes, that dies gloriously :)
jnthn I bet that's a lot of them
It's amazing how far you can get without auto-extending array assignment working :D
dalek kudo/glr: 63bac99 | jnthn++ | src/core/Array.pm:
Implement multi-value Array.push.
18:13
nine jnthn: good that you didn't tell me earlier. I'd have never dared to start poking around had I known :)
jnthn Real programmers don't need to stinkin' assignment statement... :P 18:14
dalek kudo/glr: b3a4d76 | jnthn++ | src/core/Inc.pm:
More of Inc.pm can come back with .push fix.
leont Probably my entire p6 codebase would work without that, yes :-p 18:16
nine jnthn: why does this seem to help? gist.github.com/niner/fe8f0f4df17f84d7e0d5
timotimo probably because you're overriding the Var inside the array? 18:17
jnthn Uh, is that in map? :)
nine jnthn: yes 18:18
in sequential-map
18:18 zakharyas left
nine I guess this would be a case where it'd pay off to fully understand containers and binding in Perl 6 18:19
jnthn Yes, your patch is correct
Thinko on my part
timotimo oh, neato
jnthn nine++ for finding that one
dalek kudo/glr: edbc2af | (Stefan Seifert)++ | src/core/Any-iterable-methods.pm:
Fix one case of Cannot assign to an immutable value
nine wwoooohooo :)
jnthn dinner; bbiab 18:20
18:21 jkva joined 18:25 lucasb joined
_itz is the Test module itself broken on glr or something? :) 18:27
geekosaur was certainly expected to be 18:28
nine _itz: I guess it's more like too much brokenness in rakudo itself
geekosaur glr heavily impacts most of the core, and Test requires a lot of basics to work 18:29
_itz > use Test 18:30
Cannot assign to an immutable value
oh I'm out of date 18:31
18:31 jkva left
_itz > use Test 18:33
Too few positionals passed; expected 3 arguments but got 0
I guess something parameter parsing ish
nine _itz: yes, that's brokenness in the Binder 18:34
18:38 dwarring joined 18:44 bin_005 joined
dalek rl6-roast-data: 8392601 | coke++ | / (9 files):
today (automated commit)
18:45
kudo/glr: d1a5b29 | (Stefan Seifert)++ | src/core/Array.pm:
Try to implement Array::AT-POS(Int)

my @a; @a[0] = 42; say @a[0]; works now :)
18:48
nine jnthn: please have a look at this ^^^ I'm really just stumbling along with no idea if this is in any way correct. 18:54
[Coke] wonders if half-tab is a common style in the rakudo core. 18:55
timotimo + fail X::Cannot::Infinite.new(action => '.unshift to')
is that right?
nine timotimo: definitely not, copy&pasto 18:56
timotimo :)
dalek kudo/glr: 9d4099c | (Stefan Seifert)++ | src/core/Array.pm:
Fix copy&pasto noticed by timotimo++
18:57
nine [Coke]: same question could be asked about the missing space in: reified,$pos
[Coke]: maybe this would actually be a good time to clean up this code, as git blame is affected already anyway 18:58
18:59 bin_005_q joined 19:01 bin_005 left
nine jnthn: why does my $foo; $foo := try die if False; say $foo.^name; give me a Slip? 19:01
jnthn nine: Because that's what a failed if block evaluates to 19:02
so .map({ $_ if .is-prime }) style things work
nine jnthn: so $msg := try ~$msg if defined($msg); is no longer correct in Exception::throw?
jnthn I think Slip will need to be treated as a kind of Nil though
But...it's binding here not assignment 19:03
m: say (try 1 if False).WHAT
camelia rakudo-moar 591a14: OUTPUT«Empty␤»
jnthn m: my $msg := (try 1 if False); say $msg.WHAT
camelia rakudo-moar 591a14: OUTPUT«Empty␤»
jnthn Empty in the GLR is an empty Slip 19:04
leont How should I put a binary zero byte in a string? "\0"?
jnthn m: say ord("\0")
camelia rakudo-moar 591a14: OUTPUT«0␤»
jnthn Indeed
19:04 spider-mario left
leont Ah 19:04
m: say ord("\x01")
camelia rakudo-moar 591a14: OUTPUT«1␤»
leont m: say ord("\x011")
camelia rakudo-moar 591a14: OUTPUT«17␤»
leont m: say ord("\x01111111") 19:05
camelia rakudo-moar 591a14: OUTPUT«17895697␤»
leont m: say ord("\x{01111111}")
camelia rakudo-moar 591a14: OUTPUT«5===SORRY!5=== Error while compiling /tmp/v0A9Jhx7hs␤Unsupported use of curlies around escape argument; in Perl 6 please use square brackets␤at /tmp/v0A9Jhx7hs:1␤------> 3say ord("\x{7⏏0501111111}")␤»
leont m: say ord("\x[1111111]")
camelia rakudo-moar 591a14: OUTPUT«17895697␤»
nine jnthn: should I change it to if defined($msg) { $msg := try ~$msg; } then?
leont Nice error :-)
jnthn nine: Can do, I'm surprised we got away with it before 19:06
leont m: say ord("\x0b")
camelia rakudo-moar 591a14: OUTPUT«11␤»
dalek kudo/glr: 6c45969 | (Stefan Seifert)++ | src/core/Exception.pm:
Fix "This type cannot unbox to a native string" in Exception::throw

try ~$msg if defined($msg); returns a Slip now for which the error message is indeed correct.
19:07
19:07 [Sno] joined
jnthn nine: I'd say that AT-POS isn't quite right there 19:07
nine jnthn: I'd have been quite surprised if it were otherwise :) 19:08
jnthn But yeah, I can see it'll work for the basic cases :)
19:11 skids joined
nine It also breaks .isa 19:15
jnthn "it"? 19:16
nine My AT-POS implementation
jnthn ah :)
I've got a tweaked one to try out
nine With it 01-sanity/17-isa.t dies with X::Multi::Ambiguous exception produced no message
19:19 zakharyas joined
nine But I guess it's the mere precense of AT-POS that's the issue 19:20
jnthn Will see if my patch fixes it 19:23
compiling now :)
19:23 CIAvash left, fxer joined 19:28 spider-mario joined
jnthn nine: 17-isa.t passes with my patch so I guess I made things better somehow :) 19:29
nine yeah :)
Curious what it looks like 19:30
dalek kudo/glr: c629eb7 | jnthn++ | src/core/Array.pm:
Improve Array.AT-POS.

Split it into fast path and slow path like List.AT-POS, add the int candidate, and properly handle laziness.
19:31
jnthn OK, I need to try and fill out some more of the missing slides for my YAPC::Asia talk, so the interpreter has an idea what I'll be talking about. :)
19:34 tinyblak joined 19:37 breinbaas joined 19:38 tinyblak left, jkva joined
nine Btw. --ll-exception is no longer needed to get useful exception messages :) 19:40
jnthn \o/
19:41 llfourn joined, espadrine joined
timotimo i've made nqp::ops have a line number and such, too! 19:41
19:42 mlei joined 19:43 mlei left 19:45 llfourn left 19:46 fxer left
timotimo which of the many things we have now will cause a List to be fully reified? 19:46
well, currently the thing starts with .List, so maybe that wants to be changed, too?
19:49 japhb joined
[Coke] ARGH. I waited a day to book my flights to SPW to insure I could find my passport. Go to book flight - 300USD increase. 19:51
PerlJam ouch.
timotimo is "gimme" dead in GLR?
seems so
PerlJam timotimo: I think jnthn said as much earlier today
timotimo so perhaps everything that uses "gimme" at the moment may want to be commented out or something? 19:52
nine Seems like. A lot already is
PerlJam oops, no it was 2 days ago ... irclog.perlgeek.de/perl6/2015-08-10#i_11032421 19:53
jnthn Well, no point commenting ones that explode...
It's pretty clear we need to fix them
Replacing the use of gimme with a die isn't much help 19:54
timotimo right
jnthn timotimo: .elems will fully reify a list but...be sure you really want to do that
timotimo in nodemap, which is used for HYPER, yeah :)
we do want that
ideally, i'd somehow translate the thing to use .hyper.map or something 19:55
DrForr [Coke]: If you haven't booked yet, delete cooies and cache, and try again. Airlines do track.
[Coke] DrForr: sneaky!
19:55 bin_005_q left 19:56 bin_005_q joined
jnthn timotimo: I suspect we only want to parallelize at the first level, at least initially 19:56
timotimo: I'd leave that out though for now
timotimo: Let's get things basically working again, then switch on the parallelism
Especially as I didn't finish it yet really :) 19:57
timotimo yeah, adding .elems made it work again <3
um, no
i replaced >>.clone with .hyper.map: *.clone
in my code 19:58
jnthn That's not the same though :) 19:59
hyper goes deep
uh, >>.clone goes deep
.hyper doesn't mean that
But I didn't really implement .hyper yet, only .race
So it'll dis-order your stuff if you try it
timotimo yeah
oh, i didn't know that
well, without .hyper the code works, too 20:00
nine Oh: my ($a, $b) := 1, 2; gives Too few positionals passed; expected 2 arguments but got 0
jnthn nine: I'll bet it's 'cus List.Capture ain't been re-implemented yet 20:01
timotimo my @grid = (^2).roll(COLS).List xx ROWS; 20:07
trying to @grid[1][1] = 5 gives me "cannot modify an immutable Int"
how come no containers get created here?
oh 20:08
because List not Array
my code runs!
ohmygosh
dalek kudo/glr: 1fd4619 | (Stefan Seifert)++ | src/core/List.pm:
Bring back List.Capture()

my ($a, $b) := 1, 2; works with this
20:10
nine jnthn: a look at this can't hurt ^^^
jnthn nine: Works for me. :) 20:12
nine nice :)
jnthn I love how we can just share $!reified safe in the knowledge nothing will mutate it :)
Oh
20:12 brrt joined
jnthn But now you perhaps need to do an override in Array that does an nqp::clone of it 20:13
Or we could just say that's erroneous
You tend to consume the .Capture immediately anyway
timotimo WHAT STARTS WITH THE LETTER C?
Capture! OM NOM NOM!
jnthn: should i rather build push-at-least or push-exactly for Range's Int Iterator? 20:23
20:23 darutoko left
timotimo apparently currently for'ing a range gives us sink -> sink-all -> pull-one 20:23
20:23 diana_olhovik_ left
jnthn timotimo: Actually for loops have to pull-one since they only want one value at a time; they've no buffer :) 20:25
dalek kudo/glr: bbfb4a1 | (Stefan Seifert)++ | src/core/Cool.pm:
Somewhat unbreak sprintf

This lets CompUnitRepo get along a step further. However a perl6 -e 'sprintf "%d", 1;' still fails :/
20:26
nine I really should get some nom now...
jnthn git checkout nom # there :)
timotimo: We do want to implement push-exactly and push-at-least for Range's iterator though, so my @a = 1..10; can push the lot :)
timotimo: push-at-least can check if the number given to it is less than, say 256, and if so push-exactly with 256 20:27
timotimo: So you only have to do the hard work once :)
(as in, implement the loop in one method) 20:28
20:32 rurban joined 20:37 lucasb left, zakharyas left
RabidGravy Hmm, maybe PortMidi next - an area that needs exploring 20:41
20:41 llfourn joined
RabidGravy then we can haz noise 20:41
20:46 llfourn left, jkva_ joined 20:49 jkva left
timotimo cool 20:51
i just picked up my name tag
it can say "hello my name is timo" on any radio frequency from 50 MHz to 4000 MHz 20:52
21:03 bin_005_q left, bin_005 joined 21:07 jkva_ left 21:08 brrt left 21:10 muraiki left
_itz ccc? 21:18
timotimo yup
this year the "name badge" is actually a software defined radio :)
_itz nice 21:19
timotimo last year the badge was already rf-enabled, but limited to one frequency and i think also with a pre-defined protocol (which could probably be replaced via a firmware flash)
dalek kudo/glr: 3f0557c | PerlJam++ | src/core/List.pm:
Take a whack at List.perl
21:21
21:24 espadrine left
RabidGravy whack it real good! 21:33
21:36 rindolf left
jnthn is happy to see plenty of folks jumping into the glr hacking :) 21:40
21:40 Guest39820 left
dalek kudo/glr: 58ae243 | (Stefan Seifert)++ | src/core/Signature.pm:
Unbust Signature!gistperl

self.params is now an immutable List.
  .Array that to keep .shift working
Allows at least some exceptions to show their message
21:42
21:45 labster left 21:46 labster joined 21:47 yqt joined 21:53 aiden joined
aiden hello 21:53
hoelzro greetings aiden
21:56 aiden left 21:59 geraud joined
nine Ok, no more progress today. But this was fun! 21:59
Good night all :)
jnthn 'night nine o/ 22:00
geraud m: say "a\nb\nc\n".lines.elems; 22:01
camelia rakudo-moar 591a14: OUTPUT«3␤»
timotimo nighty nine! 22:02
22:24 yqt left, bin_005 left
japhb .botsnack 22:28
yoleaux 06:54Z <nine> japhb: thanks, very much appreciated :) It's really conference driven development at its best. I just want my message at YAPC::EU to be "you don't have to know much, just use it!"
:D
timotimo jnthn: could it be we're takeclosure-ing a whole bunc hwhen we have a "my class" inside a method? 22:29
er, wait
yeah
a huge number of BOOTCode get allocated with the line number pointing at the "class :: does Iterator {" line inside method iterator inside class List 22:30
leont Type junctions don't work yet?
timotimo yeah it still uses gimme(*)
leont I'm using Foo|Bar, and it's giving me "Missing block" errors 22:31
22:31 breinbaas left, smls left
timotimo oh 22:31
type junctions!
they have been thrown out
22:32 smls joined, ilbelkyr is now known as bcode
leont Bummer 22:33
timotimo can still have them with a subset
22:34 yqt joined
leont Like explicitly? subset Baz of Any where .does(Foo) || .does(Bar) ? 22:36
jnthn timotimo: I hope not, and if it is then I'll be fixing it, because there ain't any closures there. :)
timotimo yeah
potentially the line number is just wrong
jnthn subset Baz where any(Foo, Bar); may well be enough 22:37
I *think* Any is the default base type for a subset
timotimo anyway, i found i was allocating 50k unncessary Scalar objects because Num.ACCEPTS has $a for the other instead of \a
jnthn Heck, subset Baz where Foo|Bar; probably works
timotimo should, yeah
leont Right
Kind of makes sense
timotimo spec tests with the Numeric.ACCPEPTS change 22:38
22:42 llfourn joined
Sgeo Why are type junctions gone? 22:42
jnthn We never actually had them 22:44
Unless you count speculated about in design docs
Sgeo That where doesn't help if you want to accept Failures and some other type normally, or Failures and Junctions but not unanticipated non-Any things in the future
jnthn They're probably not ruled out forever, but they bring up some interesting issues with multi-dispatch, iirc. And we already have too much to do. 22:45
So, not this side of 6.christmas. 22:46
Sgeo ok 22:47
22:47 llfourn left
jnthn The big question is if they should work as nominal types or constraitn types 22:47
*constraint
And the latter is easier, but equivalent to the "where" 22:48
Sgeo Ah
jnthn Which means they'd only tie-break in multi-dispatch
So better to reserve the syntax until we have time to make good decisions about it.
Sgeo Makes sense 22:49
dalek kudo/nom: 98df934 | timotimo++ | src/core/Numeric.pm:
avoid allocating a scalar for Numeric.ACCEPTS
22:51 virtualsue left 22:53 rurban left
RabidGravy I thought I'd seen "where Fii|Bii" in the world 22:53
in HTTP::UserAgent 22:54
sub get($target where URI|Str)
22:54 Psyche^_ joined
smls the RHS of 'where' is an arbitrary expression (to be smart-matched against), not a type spec 22:55
jnthn Right :)
RabidGravy it was more agreeing that the explicit any wasn't required 22:57
22:58 Psyche^ left
leont Why does JSON::Tiny use .flatmap here: github.com/moritz/json/blob/master...iny.pm#L46 ? 22:59
And how does that relate to the GLR?
jnthn No idea; a hash doesn't have a way to not be flat... 23:02
leont Not sure it's correct for the positional case either 23:03
jnthn No, same here
The GLR does get rid of almost all implicit flattening
my @a = @b, @c; # @a has two elements, for example 23:04
But I don't see how that affects the hash case
23:04 RabidGravy left
jnthn And yeah, a bit dubious on the positional one too :) 23:05
And it's a bit odd for a serializer to be trying to flatten the data structure you gave it.
I mean, you should give it the data structure you want serialized. 23:06
So I'd probably lean to turning those two into map
sleep & 23:11
timotimo gnite jnthn :)
23:12 smls left
timotimo this script bails 16 frames in total due to setcodeobj being encountered 23:22
23:58 yqt left
skids m: my @a = 1..*; @a.unshift(1); # rationale? 23:59
camelia rakudo-moar 98df93: OUTPUT«Cannot push to an infinite list␤ in block <unit> at /tmp/07Na8gD92v:1␤␤Actually thrown at:␤ in block <unit> at /tmp/07Na8gD92v:1␤␤»