»ö« 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/QgcDsRffJjVariable '$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«21» | ||
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:useshrplibxBB 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 1Deprecated 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|54046200PseudoStash|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:1Hello, 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:1Hello, 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/v0A9Jhx7hsUnsupported use of curlies around escape argument; in Perl 6 please use square bracketsat /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:1Actually thrown at: in block <unit> at /tmp/07Na8gD92v:1» |