»ö« 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:03
yqt left
|
|||
leont | japhb: cute, but not very intuitive | 00:07 | |
00:17
tokuhiro_ joined
00:18
leont left
|
|||
TimToady | m: say (Nil) => Nil | 00:18 | |
camelia | rakudo-moar 4653d9: OUTPUT«(Any) => Nil» | ||
TimToady | hmm | ||
timotimo | do we know what's wrong with CURL::I? | 00:20 | |
CUR::L::I? | |||
CURLI? | |||
00:22
laouji joined
|
|||
adu <3 cURL | 00:23 | ||
ShimmerFairy | timotimo: we seem to have agreed on tossing the namespace 'sigils' (?) in the abbreviation of CURL, CURLF, and CURLI :) | 00:24 | |
pink_mist | do those names actually have to do with curl(1)? | 00:28 | |
(had it only been CURL, I would have assumed so, but with CURLF and CURLI thrown into the mix I'm less sure) | 00:30 | ||
timotimo | separators, eh? | 00:31 | |
Comp Unit Repository:: Local:: Installation | |||
in this case | |||
ShimmerFairy | pink_mist: well, if your module installer uses curl to download the modules it installs... :P | 00:33 | |
pink_mist | hehe :P | ||
00:37
larion left
|
|||
timotimo | it could | 00:37 | |
that'd also allow us to distribute our modules via gopher | |||
00:38
larion joined
00:39
laouji left
00:40
laouji joined
|
|||
ShimmerFairy | timotimo: I'm personally excited to see if gentoo's portage/emerge could do P6 module installation 'natively', as opposed to going through other installers like they do for other languages :3 | 00:40 | |
00:42
laouji left
00:43
laouji joined
00:46
xinming left
00:57
kid51 left
|
|||
timotimo | is paludis still a thing, btw? | 00:59 | |
dalek | ast: 71be130 | TimToady++ | S02-types/pair.t: make sure pairs can take Nil and such as key |
01:03 | |
ast: f31fbab | TimToady++ | S32-exceptions/misc.t: make sure return errors report Nil and Junction ok |
|||
kudo/nom: 77d6f04 | TimToady++ | src/core/Range.pm: exception wants a type, not a string |
|||
kudo/nom: b02c4e1 | TimToady++ | src/core/traits.pm: allow 'is default' on attributes It simply sets the default slot in the container_descriptor that the attribute already has one of. And seems to work right. |
|||
kudo/nom: 8c9be89 | TimToady++ | src/core/Exception.pm: use defaults on attrs to allow Mu/Nil type reports |
|||
kudo/nom: 8edd1cd | TimToady++ | src/core/Pair.pm: Pair should allow Nil keys and values |
|||
kudo/nom: 1b73d7a | TimToady++ | src/core/Pair.pm: forgot => and pair() also need the Mu treatment |
|||
kudo/nom: 9e2dd67 | TimToady++ | lib/Test.pm: allow checking 'got' against Nil |
|||
ShimmerFairy | timotimo: don't know what that is | ||
TimToady | .tell lizmat turns out adding 'is default' to an attribute's container descriptor was a 3-line patch :) | 01:05 | |
yoleaux | TimToady: I'll pass your message to lizmat. | ||
ShimmerFairy | timotimo: looking now, and it seems interesting so far. Haven't had a problem with portage myself, but then again I don't really mess with any of the code or ebuilds :) | 01:07 | |
01:09
rurban left
01:18
abaugher left
01:19
abaugher joined
|
|||
TimToady | m: say (Nil) => Nil | 01:25 | |
camelia | rakudo-moar 9e2dd6: OUTPUT«Nil => Nil» | ||
TimToady | m: sub foo(--> Nil) { 42 }; foo | 01:27 | |
camelia | rakudo-moar 9e2dd6: OUTPUT«Type check failed for return value; expected 'Nil' but got 'Int' in sub foo at /tmp/NVYwJX_SCx:1 in block <unit> at /tmp/NVYwJX_SCx:1» | ||
TimToady | \o/ | ||
dinner & | |||
01:35
helloworldlang joined
|
|||
helloworldlang | what is the the surrounding list? | 01:37 | |
01:37
thou joined
01:41
thou left,
mattprelude left
01:42
timbunce_ left
01:43
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:46
timbunce_ joined,
lolisa joined
01:47
dnmfarrell joined
01:51
adu left
|
|||
geekosaur | errr. context? | 01:53 | |
01:56
Peter_R left
02:05
chenryn joined
|
|||
helloworldlang | what is the the surrounding list? | 02:08 | |
02:14
zakharyas joined
|
|||
Zoffix | helloworldlang, you'd get a more helpful response if you explained the context. Where are you seeing that term? | 02:17 | |
02:17
MadcapJake joined
02:23
samb1 left
|
|||
helloworldlang | Flattening is the idea that an @-like thing will, in certain contexts, have its values automatically incorporated into the surrounding list. | 02:24 | |
in page design.perl6.org/S07.html | 02:25 | ||
Zoffix | helloworldlang, I don't know Perl 6, but in other languages that would mean that, say, [ 'foo', [1, 2, 3], 'bar'], when flattened, would become ['foo', 1, 2, 3, 'bar'] | 02:26 | |
so 'list' [1, 2, 3], when flattened is incorporated into the "parent" 'list', [ 'foo', $this, 'bar'] | 02:27 | ||
geekosaur | yes | 02:28 | |
perl 5 has this thing where if you have a list inside another list, it "gets absorbed" into the outer list | |||
implicit flattening | |||
02:29
lolisa left
|
|||
geekosaur | but perl 5's notion of what a "list" is for that purpose, many people find confusing. perl 6 is trying to be more clear about such things (and a great many other fun perl5-isms that often trap the unwary...) | 02:29 | |
02:33
lolisa joined
|
|||
dalek | kudo-star-daily: d302375 | coke++ | log/ (9 files): today (automated commit) |
02:34 | |
02:35
samb1 joined
|
|||
BenGoldberg | m: gist.github.com/BenGoldberg1/bc39a...aeb733012a | 02:38 | |
camelia | rakudo-moar 9e2dd6: OUTPUT«Cannot send a message on a closed channel in block <unit> at /tmp/8zxPwX29g7:33» | ||
02:38
[particle] joined
|
|||
BenGoldberg is confused. | 02:40 | ||
02:40
lolisa left
|
|||
BenGoldberg | If I never call .close on a Channel object until after I'm done sending into it, then the above error shouldn't be able to occur, yes? | 02:41 | |
02:41
noganex joined
|
|||
Zoffix | Can someone that knows Perl 6 see if this entry is wrong: en.wikipedia.org/wiki/Fluent_interface#Perl_6 Shouldn't the last line of code be say $employee.gist; ? | 02:42 | |
geekosaur | "say" does .gist | 02:43 | |
Zoffix | Weird. :) | ||
Zoffix should find time to learn Perl 6 | 02:44 | ||
geekosaur | if you want the whole thing, use print instead of say | ||
(or some other output) | |||
02:44
noganex_ left
02:46
mr_ron joined
02:47
rurban joined,
larion left
|
|||
mr_ron | Why can't the rakudo star daily find URI::Escape? | 02:47 | |
Zoffix is not seeing URI::Escape neither in modules.perl6.org nor in Task::Star | 02:49 | ||
Looking at some other channels, it seems Perl 6 is getting some negative rep because you can't put method calls on new lines, like say, here (look at last lines): en.wikipedia.org/wiki/Fluent_interface#Ruby | 02:50 | ||
The given {} bit feels to verbose here: en.wikipedia.org/wiki/Fluent_interface#Perl_6 | |||
geekosaur | you can but you need to use an unspace. which I agree is a bit unfortunate | ||
dnmfarrell | URI::Encode | 02:51 | |
02:51
kaare__ joined
|
|||
mr_ron | It's part of URI. If you install URI you get URI::Escape with it ... | 02:51 | |
Zoffix | geekosaur, would you be able to provide an example? I'm not getting any matches for unspace on doc.perl6.org/ | ||
geekosaur | ? | 02:52 | |
Zoffix | how would I use unspace. ? | ||
geekosaur | I just entered "unspace" in the search box and the first hit talks about it | ||
Zoffix | 0.o | ||
geekosaur | oh | ||
design.perl6.org/ | |||
Zoffix | Oh, I was using the wrong website, sorry. | 02:53 | |
geekosaur | if you are somewhere else then the docs you are seeing may be out of date (or not indexed properly) | ||
Zoffix was looking at doc.perl6.org/ | |||
geekosaur | anyway the idea of unspace is that a backslash followed by any (nonempty) amount of any kind of whitespace is "invisible" | 02:54 | |
yeh. I reclal that being way out of date and unmaintained. and down for a while I think | |||
design.perl6.org/S02.html#Unspaces | |||
anyway, it works but I find the backslashes (a) cluttery (b) too reminiscent of the more annoying aspects of shell scripting | 02:55 | ||
dnmfarrell | mr_ron: you've installed URI, but cannot use URI::Escape, is that the issue? | ||
geekosaur | maybe the question is "CPAN can find the package for a module by module name, shouldn't we as well"? | 02:56 | |
mr_ron | No, I just noticed that "rakudo-star-daily" autocommit had lots of errors about no seeing URI::Escape irclog.perlgeek.de/perl6/2015-09-25#i_11272436 | 02:57 | |
geekosaur | right, I feel like modules.perl6.prg is indexing packages, not modules | ||
*.org | |||
Zoffix | Is it difficult to make Perl 6 accept method calls on new lines without unspaces? | 02:59 | |
Looking at other languages on en.wikipedia.org/wiki/Fluent_interface, I get a feel that Perl 6 should not be listed there at all. | 03:01 | ||
ShimmerFairy | Zoffix: it would count as TTIAR, since .method means $_.method, thus $foo .bar really means $foo $_.bar | 03:02 | |
Zoffix: and before you ask, it's too late to make .method not mean that anymore :P | |||
Zoffix | ShimmerFairy, what's "TTIAR"? | 03:03 | |
ShimmerFairy | Two Terms In A Row | ||
Zoffix | Ah | ||
ShimmerFairy | m: say 42 42 | ||
camelia | rakudo-moar 9e2dd6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5Xou6G3CeRTwo terms in a rowat /tmp/5Xou6G3CeR:1------> 3say 427⏏5 42 expecting any of: infix infix stopper postfix statement end statement…» | ||
03:03
BenGoldberg left
|
|||
Zoffix | It's never too late! :) | 03:04 | |
By why does it mean that? I don't know Perl 6, so I'm speaking from ignorance, but isn't $foo \n .bar; unambiuous, since $foo \n $_.bar is an error anyway, since there's no semicolon? | 03:05 | ||
ShimmerFairy | trust me, there are cases where I personally think an implied $_ is not that useful (m// being the main thing for me, since I _always_ do $thing ~~ m//), but there's no hope of making people use $_ in their code more :) | ||
Zoffix: If I'm correct (I don't know the correct reason for sure off-hand), it's because method calls are a postfix operation, and you generally can't put space between a term and a postfix | 03:07 | ||
m: my $a = 41; $a ++; say $a | |||
camelia | rakudo-moar 9e2dd6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gUilA_IykoPrefix + requires an argument, but no valid term foundat /tmp/gUilA_Iyko:1------> 3my $a = 41; $a ++7⏏5; say $a expecting any of: prefix» | ||
ShimmerFairy | ^ an example of this | ||
Zoffix | Ah | ||
03:10
chencho joined
03:12
mr_ron left
03:22
chencho left
03:26
makapa joined
|
|||
geekosaur | perl 6 has a number of places where whitespace is significant | 03:30 | |
I think in the end it's probably better than what perl 5 does with print ($x + 2) * 3;... | 03:31 | ||
03:32
uvtc joined
|
|||
uvtc | Is there a video available to go with jnthn's recent "Perl 6 hands-on tutorial" slides? | 03:33 | |
(Swiss Perl Workshop 2015) | |||
helloworldlang | p6: my @a = 1,2,3; my @b; @b.push: @a,; | 03:35 | |
camelia | ( no output ) | ||
helloworldlang | p6: my @a = 1,2,3; my @b; @b.push: @a,; say @b; | ||
camelia | rakudo-moar 9e2dd6: OUTPUT«[1 2 3]» | ||
helloworldlang | p6: my @a = 1,2,3; my @b; @b.push: (@a,); say @b; | 03:36 | |
camelia | rakudo-moar 9e2dd6: OUTPUT«[[1 2 3]]» | ||
helloworldlang | p6: my @a = 1,2,3; my @b; @b.push: @a,; say @b; | ||
camelia | rakudo-moar 9e2dd6: OUTPUT«[1 2 3]» | ||
03:41
MadcapJake left,
rurban left
|
|||
[Coke] | there was only one video made at the SPW - the Q&A with larry - www.youtube.com/watch?v=zmNInkzaYLc | 03:41 | |
uvtc | [Coke]: Yup, saw that one. With you hosting! | 03:42 | |
Thanks. | |||
[Coke] | </plug> | 03:45 | |
uvtc | :) Also nice --- when no video is available --- is when there's an approx textual transcription under each slide. | 03:46 | |
03:47
helloworldlang is now known as newname,
newname is now known as name,
name is now known as electricface
03:49
dnmfarrell left
03:54
chenryn left
04:07
vendethiel joined
04:08
laouji left
04:15
ShimmerFairy left
04:22
electricface left,
electricface joined,
chenryn joined
04:24
laouji joined
04:26
rmgk left,
rmgk_ joined,
rmgk_ is now known as rmgk
04:27
ShimmerFairy joined
04:30
vendethiel left
04:32
uvtc left
04:44
skids left
04:47
kanishka joined
04:53
chenryn left
04:57
chenryn joined
04:59
khw left
05:03
dnmfarrell joined,
makapa left
05:05
kanishka left
05:08
adu joined
05:13
telex left
05:14
telex joined
|
|||
ShimmerFairy | t/spec/S32-io/IO-Socket-Async.t hangs for me :( | 05:40 | |
chenryn | p6: say -3%2; | 05:43 | |
yoleaux | 22 Nov 2014 04:30Z <JimmyZ> chenryn: 那个是匿名变量 | ||
camelia | rakudo-moar 9e2dd6: OUTPUT«1» | ||
05:54
adu left
|
|||
dalek | kudo/nom: f347690 | ShimmerFairy++ | t/harness: Have harness run with 'trap' enabled This lets you still get a test summary if you send a SIGINT, which means you can quit out of the spectest if one of them is hanging by typing ^C, and still get a summary of whatever was run. Inspired by the fact that I would've appreciated this when I ran the spectest just now :) . |
06:04 | |
kudo/nom: c84ff30 | ShimmerFairy++ | t/harness: Remove leftover parrot cruft from t/harness This includes the icu option (since, as I recall, that was a Parrot thing, and there are no # icu lines in spectest.data anymore anyway), as well as the parrot-revision option and attempts to use perl6-p or fudge on rakudo.parrot. The ternaries that were modified simply default to moar now. I figured that would be the safest option, though I could also see some sort of exception being thrown in those spots instead, or something along those lines. |
|||
06:05
dnmfarrell left
|
|||
tony-o | CURLI!!!! | 06:06 | |
06:10
diana_olhovik joined
06:11
espadrine joined
06:18
domidumont joined
06:26
FROGGS joined,
Ven joined
06:28
xfix joined,
electricface left,
araujo_ joined
06:29
aiacob joined
06:32
araujo left
06:33
araujo_ left
|
|||
[Tux] | test 50000 34.938 34.837 | 06:42 | |
test-t 50000 35.454 35.353 | |||
06:57
nwc10 joined
|
|||
nwc10 | hi. | 06:57 | |
commit f3476903e466c047d95d888639c0f7750e3c6fd8 | |||
Have harness run with 'trap' enabled | |||
Breaks on older versions of Test::Harness. | |||
that's somewhat LTA | |||
Unknown arguments to TAP::Harness::new (trap) at t/harness line 120 | 06:58 | ||
offhand I don't know what the minimum version needed is | |||
I suspect that the Awesome fix is to optionally add that argument if $TAP::Harness::VERSION is new enough | |||
ShimmerFairy | perldoc.perl.org/5.20.1/TAP/Harness.html mentions nothing about what version 'trap' is for, and since it does mention a couple "NEW in" lines, presumably it's been around for a while. | 07:00 | |
How old is your TAP::Harness? | |||
rather, Test::Harness | 07:02 | ||
07:02
xinming joined
|
|||
nwc10 | 3.17 | 07:03 | |
metacpan.org/changes/distribution/Test-Harness | 07:04 | ||
3.22 2010-08-14 | |||
- Add --trap (summary on Ctrl-C) option to prove (#59427). | |||
FROGGS | nwc10++ | 07:05 | |
ShimmerFairy | woah, that's from five years ago O_o | ||
07:05
RabidGravy joined
|
|||
nwc10 | sometimes I think "woah, it's still using Perl 5" :-/ | 07:06 | |
after all, Perl 5 isn't using Perl 4 to run its tests :-) | |||
ShimmerFairy | nwc10: true, I frequently wonder when we can replace P5 stuff in rakudo with P6 :P (though IIRC P5 doesn't do its config in P5...) | 07:08 | |
nwc10: honestly, I'm used to implicit *%_ enough that I'm surprised it balked at the strange named :P | 07:10 | ||
masak | nwc10: optionally adding the argument based on version sounds sane. | 07:16 | |
ShimmerFairy | I agree, even though I'm very tempted to say "this was added five years ago, why are you so outdated?" :P (Then again, I guess I just don't understand how P5 upgrading works, or something.) | 07:17 | |
masak | people are running old versions of a lot of things. | 07:18 | |
frequent/timely updates sometimes seem to be the exception, not the rule | |||
ShimmerFairy | masak: I guess it's just weird to me since I keep a bleeding-edge copy of rakudo (and LLVM whenever I remember it), and I'm toying with the idea of finally installing a C++14 capable version of gcc, despite gentoo still marking them unstable :) | 07:20 | |
[Tux] | tux.nl/Talks/CSV6/test-t.jpg (all reports taking longer than 75 seconds stripped) | 07:21 | |
masak | ShimmerFairy: en.wikipedia.org/wiki/Diffusion_of_innovations | 07:22 | |
ShimmerFairy | masak: I think another reason is that 5 years ago in Perl 6, we still had only parrot (and IIRC rakudo was itself fairly new), so I can't help but automatically think that a version of Perl from a few years back shouldn't be very maintainable anymore :P | 07:25 | |
masak | heh. | 07:26 | |
I'm sure at least some would agree with you. | |||
ShimmerFairy | Though on the other side I'm sure it's a testament to P5 that you can get away with lagging behind for half a decade :D | 07:27 | |
07:29
abraxxa joined
|
|||
masak | the sad thing about "DarkPAN" users of Perl is that they often don't upgrade, and don't immediately see why they should. thus increasing the distance and isolation with connected community people. | 07:30 | |
s/with/from/ | |||
ShimmerFairy | .oO(Spell it like DARKPAN, it reads like some sort of edgy cyber-enemy from an 80's/90's movie) |
07:33 | |
nwc10 | I wonder how the average age of Perl installs compares with that of Python installs | 07:34 | |
07:35
Ven left
|
|||
masak | fwiw, I saw Python people being stuck with Python 2.6 sometimes. | 07:36 | |
I think that was due to some default Linux distro install, maybe. | |||
07:36
Ven joined
|
|||
ShimmerFairy | Reading www.modernperlbooks.com/mt/2009/02/...oblem.html , I kinda hope we don't end up being quite so careful in the future of Perl 6. I like the idea that big and necessary changes can happen :) | 07:37 | |
07:37
abaugher left
07:38
abaugher joined
|
|||
masak | I think we'll have a Scylla/Charybdis like situation there, where the "spirit" of the Perl 6 codebase/community is to change things as needed. but we also want to gel more and more as we get more customers and more people depending on stability. | 07:41 | |
dalek | p: a54d49e | ShimmerFairy++ | src/HLL/sprintf.nqp: Remove useless conditional in sprintf Unless I've severely forgotten my math, a < b && a > b is never True. This ternary inside an if statement was effectively testing that, meaning the False portion would always happen. Doesn't make a difference to remove this ternary, but I think it's nice to not be using a conditional that isn't very conditional :) . |
07:42 | |
ShimmerFairy | masak: sure. Perhaps a good way to do that is to encourage not upgrading to a new version of the standard when you're not willing to correct new problems :) | 07:43 | |
07:43
leont joined
|
|||
nwc10 | mmm, a < b && a > b will always be false, won't it | 07:58 | |
but a < b || a > b won't always be true | |||
(because NaN) | |||
ShimmerFairy | nwc10: well, math generally only deals with numbers though :P | 08:01 | |
RabidGravy | ^ This Fedora has has python 2.7 *and* python 3.4 (and must have got installed as deps of something as I didn't do it deliberately) | 08:04 | |
ShimmerFairy | RabidGravy: I have python2 and python3, but I think that's just how it works out on gentoo :) | 08:08 | |
dalek | c/MARTIMM-patch-1: eb77e04 | (Marcel Timmerman)++ | lib/Language/functions.pod: small changes - Modified a pod command at line 351 - A typo at line 395 |
08:09 | |
08:10
dakkar joined
08:12
darutoko joined
|
|||
masak | m: class W {}; multi infix:<< < >>($a, $b) { True }; multi infix:<< > >>($a, $b) { True }; my ($a, $b) = W.new xx *; say $a < $b && $a > $b | 08:14 | |
camelia | rakudo-moar c84ff3: OUTPUT«Ambiguous call to 'infix:<<>'; these signatures all match::(\a, \b):($a, $b) in block <unit> at /tmp/1sejb7Djt1:1» | ||
08:14
leont left
|
|||
masak | m: class W {}; multi infix:<< < >>(W $a, W $b) { True }; multi infix:<< > >>(W $a, W $b) { True }; my ($a, $b) = W.new xx *; say $a < $b && $a > $b | 08:14 | |
camelia | rakudo-moar c84ff3: OUTPUT«True» | ||
masak | nwc10: ^ | ||
ShimmerFairy | cheater :P | 08:16 | |
masak | cheating is technique. :) | ||
08:16
jack_rabbit_ joined
|
|||
masak | but I agree that with Real things there's an expectation that `a < b && a > b` is never true. | 08:17 | |
ShimmerFairy | masak: the only mathematical place I know where that breaks down is the real projective line, or whatever the one is that connects both ends of the real number line to Inf | 08:18 | |
dalek | c: eb77e04 | (Marcel Timmerman)++ | lib/Language/functions.pod: small changes - Modified a pod command at line 351 - A typo at line 395 |
08:19 | |
c: d884b12 | RabidGravy++ | lib/Language/functions.pod: Merge pull request #133 from perl6/MARTIMM-patch-1 small changes |
|||
ShimmerFairy | (and for that weird number line, then it becomes a < b ↔ a > b, if I'm not mistaken ☺) | 08:20 | |
08:24
Ven left
|
|||
psch | ShimmerFairy: from what i understand from wikipedia that's wrong | 08:25 | |
ShimmerFairy | psch: my use of ↔ or my mention of the number line? | ||
psch | ShimmerFairy: the real projective line is cyclically ordered, which means you'd have to go from a to Inf to b when a > b | ||
ShimmerFairy: but you won't reach Inf | |||
ShimmerFairy | psch: ah, I could swear I came across a number line where ordering broke down, and I was sure it's the one that looks like a circle :) | 08:26 | |
08:27
rindolf joined,
TEttinger left
08:28
araujo joined
|
|||
psch | ShimmerFairy: afaiu that's true for every cycle whos underlying set is countable finite | 08:31 | |
e.g. 12 pm < 12 am < 12 pm | |||
ShimmerFairy | Maybe the projective real line page once claimed ordering broke down or something, who knows? | 08:32 | |
08:32
laouji left
08:33
laouji joined
|
|||
psch shrugs | 08:33 | ||
not like i really learned all of this anywhere else either :) | |||
08:33
Ven joined
|
|||
psch | well, school up to a point of course... | 08:33 | |
ShimmerFairy | psch: I did see a mention of being totally ordered, so I'm inclined to think I misremembered :) | 08:35 | |
08:41
salv0 joined
|
|||
jnthn | morning, #perl6 | 08:43 | |
08:43
Ven left
08:44
Ven joined
|
|||
nwc10 | good UGT, jnthn | 08:45 | |
08:47
_mg_ joined
|
|||
jnthn | .oO( given how my throat feels, it's more like URGH-T ) |
08:47 | |
ShimmerFairy | jnthn: hope you're not using any voice-to-text, then :) | 08:48 | |
08:51
bjz_ joined
|
|||
psch | backends don't agree on one specific usage of superstituous parenthesis :( | 08:52 | |
r: sub f { (sub g { 1 }) }; say f()() | |||
camelia | rakudo-{moar,jvm} c84ff3: OUTPUT«1» | 08:53 | |
psch | r: sub f { sub g { 1 } }; say f()() | ||
camelia | rakudo-moar c84ff3: OUTPUT«1» | ||
..rakudo-jvm c84ff3: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/tmpfile:1» | |||
psch | also hi jnthn, and get well soon jnthn | ||
08:53
laouji left
|
|||
jnthn | ShimmerFairy: Thankfully not :) | 08:53 | |
FROGGS | r: sub f { my $ = sub g { 1 } }; say f()() | 08:55 | |
camelia | rakudo-{moar,jvm} c84ff3: OUTPUT«1» | ||
FROGGS | this has been in a workaround in the setting for a while | ||
08:56
salv0 left,
Ven left
08:57
Ven joined,
salv0 joined
|
|||
psch | FROGGS: i suppose that means you don't have an idea where to start looking either? | 08:57 | |
08:58
laouji joined
|
|||
FROGGS | psch: no | 08:59 | |
psch: and I lack knowledge to guess | 09:00 | ||
jnthn | If I had to guess, it may be in the QAST::Want void hanlding, since we use that to decide whether we need to emit the closure taking in place or if it's just a straight declaration | 09:01 | |
Probably somewhere near the end of routine_def is a good place to start exploring | |||
FROGGS | jnthn: but how can that be an issue on jvm only? | 09:03 | |
ShimmerFairy | QAST->JAST would be my guess :) | ||
09:06
brrt joined
|
|||
FROGGS | hi brrt | 09:06 | |
brrt | hi FROGGS | ||
jnthn | FROGGS: I'm assuming code-gen mis-hap | ||
09:09
Ven left
|
|||
psch | the stage=ast output is identical, fwiw | 09:09 | |
so QASTCompilerJAST i guess..? | |||
09:11
cognominal joined
|
|||
jnthn | psch: Yes, I was expecting it would be...you can verify --target=optimize also is | 09:11 | |
psch | oh, right, optimize | ||
jnthn | psch: But yeah, I was more pointing you to routine_def to give you a point to start digging rather than expecting the issue to be near there...it probably is in QAST->JAST. | ||
psch | mhm | 09:12 | |
09:12
espadrine left
|
|||
FROGGS | the void handling compile_all_the_stmts looks differently on moar/jvm... but I've not enough brain cycles atm spare | 09:21 | |
09:27
aborazmeh left
|
|||
grondilu suddenly wonders if my & = sub {} is ok | 09:38 | ||
09:38
espadrine joined
|
|||
grondilu | std: my & | 09:38 | |
camelia | std 28329a7: OUTPUT«ok 00:00 138m» | ||
grondilu | m: my & | ||
camelia | ( no output ) | ||
09:40
Ven joined
|
|||
brrt | how do dynamic variables actually work in perl6? | 09:41 | |
(dynamically scoped, that is) | 09:42 | ||
lizmat | messages ? | 09:43 | |
yoleaux | 01:05Z <TimToady> lizmat: turns out adding 'is default' to an attribute's container descriptor was a 3-line patch :) | ||
lizmat | wow, TimToady++ :-) | ||
brrt | ah, i get it | 09:45 | |
hmm, just making dynvars fail is not so simple | 09:48 | ||
masak | m: (my &)() | ||
camelia | rakudo-moar c84ff3: OUTPUT«Cannot invoke this object in block <unit> at /tmp/lOtyyWW442:1» | ||
masak | m: say (my &).^name | ||
camelia | rakudo-moar c84ff3: OUTPUT«Callable» | ||
dalek | ast: 3abe56f | lizmat++ | S02-names/is_default.t: Unfudge now passing tests |
09:49 | |
jnthn | brrt: They're just lexicals; it's just the lookup that is different | 09:50 | |
brrt | yeah, i figured | 09:51 | |
brrt wonders what would be necessary to make a failing case outside of the compiler | |||
timotimo | ShimmerFairy: did you consider perhaps $a > $b && $a < $b is for NaN handling? | 09:52 | |
ShimmerFairy | timotimo: still false | 09:55 | |
timotimo | OK, good | ||
brrt | i fear it'll be a grammar, and we all know how easy they are to debug | ||
ShimmerFairy | timotimo: or rather, you wouldn't enter that conditional in the first place :) | ||
m: say 1 < NaN; say 1 > NaN; | 09:56 | ||
camelia | rakudo-moar c84ff3: OUTPUT«FalseFalse» | ||
timotimo | mhm | ||
i didn't look at the code, just the commit message sounded dangerous :D | |||
jnthn | brrt: I'm not sure it's about grammars per se | 09:57 | |
timotimo | i still have masak's post about that topic in the back of my head | 09:58 | |
jnthn | brrt: That's just where it shows up | ||
brrt | yeah, that's what i think too | ||
it's just that grammars tend to be the type of code where these bugs show up | |||
in general | |||
jnthn | They showed up a couple of SSA bugs 'cus they have the most interesting control flow ;) | 10:05 | |
But I don't think that's what this is | |||
10:05
aiacob left
|
|||
lizmat | m: my @b; @b.push: (1,2,3),; dd @b # note comma after list, should this flatten ? | 10:08 | |
camelia | rakudo-moar c84ff3: OUTPUT«Array @b = [1, 2, 3]» | ||
10:08
Ven left
|
|||
lizmat | jnthn: 13 days ago you wrote that it should :-) | 10:09 | |
*shouldn't | |||
jnthn | lizmat: uh...did I? :) | 10:10 | |
m: my @b; @b.push: ((1,2,3),); dd @b | |||
camelia | rakudo-moar c84ff3: OUTPUT«Array @b = [(1, 2, 3),]» | ||
lizmat | commit de53e4be in specs | ||
jnthn | Argh | ||
OK, I should fix that. :) | |||
lizmat | the specs or the runtime ? | ||
psch | m: my @b; @b.push: (1,2,3),; dd @b[0] # dd output is a bit confusing, in some cases | ||
camelia | rakudo-moar c84ff3: OUTPUT«Int @b = 1» | ||
jnthn | m: my @b; @b.push: $(1,2,3); dd @b # idiomatic way | ||
camelia | rakudo-moar c84ff3: OUTPUT«Array @b = [(1, 2, 3),]» | ||
jnthn | lizmat: The specs :) | ||
lizmat | ah, ok | ||
I'll reject #126172 then :-) | 10:11 | ||
jnthn | There's no way we can make argument lists do such weird things with trailing commas :) | ||
Sorry for the confusion | |||
lizmat | shall I fix it ? | 10:14 | |
10:15
nwc10 left
10:16
zakharyas left
|
|||
jnthn | lizmat: Please | 10:19 | |
dalek | ecs: 82b8032 | lizmat++ | S07-lists.pod: Spec fix for #126172 |
10:20 | |
10:22
tokuhiro_ left,
tokuhiro_ joined
10:23
makapa joined
10:24
_mg_ left
10:26
tokuhiro_ left
10:29
chenryn left
10:38
AlexDaniel joined
10:39
abraxxa left
10:46
raiph left
10:47
brrt left
10:57
aiacob joined
10:58
tokuhiro_ joined
|
|||
ilmari discovers he has a cow-orker called camelia, thanks to her accidental reply-all | 11:02 | ||
dalek | kudo/nom: e87794e | lizmat++ | src/core/Any-iterable-methods.pm: Add List.repeated(:as,:with) The opposite of List.unique: returns all things that are seen more than once. <a b b b c c d e f>.repeated.say (b b c) If you only want unique repeats, add unique: <a b b b c c d e f>.repeated.unique.say (b c) This is basically a cat license job on .unique and really only for discussion so far. Please revert if considered unneeded. |
||
11:02
tokuhiro_ left
|
|||
lizmat | ilmari: she should have a camelia button :-) | 11:04 | |
11:16
Ven joined
|
|||
lizmat | m: 42 | 11:20 | |
camelia | rakudo-moar c84ff3: OUTPUT«WARNINGS:Useless use of constant integer 42 in sink context (line 1)» | ||
11:23
rindolf left
11:24
_mg_ joined
11:26
Ven left,
Peter_R joined,
Ven joined
|
|||
pink_mist | is sink context the equivalent of perl5's void context? | 11:30 | |
11:31
brrt joined
|
|||
moritz | yes | 11:32 | |
dalek | kudo/nom: 08b0359 | lizmat++ | t/spectest.data: Move S32-io/IO-Socket-INET.t to "right" place Well, the list gets sorted in the end anyway, so there was no point putting it at the end. *And* it seems to survive under load nowadays |
11:48 | |
11:50
Ven left
|
|||
moritz | maybe we could have a warning for the use of 'return' in a routine that was marked as 'is rw'? | 11:55 | |
11:55
AlexDaniel left
|
|||
lizmat | or maybe "is rw" should be enough to have the return transmogrify into a return-rw autmatically ? | 11:56 | |
ShimmerFairy | I think it'd be a bit weird if I had to write 'rw' twice :) (might also discourage use of 'is rw' altogether, since "it doesn't matter") | 11:59 | |
12:01
cognominal left,
zakharyas joined
12:03
timbunce_ left
12:05
larion joined
|
|||
masak | I thought all things ending in `-rw` were basically stopgap things until we figure out how to do without them performantly. | 12:05 | |
ShimmerFairy | that would be news to me, though that doesn't mean much :) | 12:07 | |
brrt | oh goody, are we killing containers? :-P | 12:10 | |
12:12
FROGGS left
|
|||
masak | brrt: not likely. | 12:12 | |
brrt: but I was thinking there are still things that could be done that would push them into the background. | 12:13 | ||
like ShimmerFairy says, if I already did `is rw` on the routine, why shouldn't it be clear enough that it's the *container* I want to return when I do `return $x;` ? | |||
brrt | hmm yeah, it probably should | 12:14 | |
masak | if it were Java, I would expect it to be specified in triplicate, but this is Perl. | ||
ShimmerFairy | It also means the 'is rw' trait becomes useless, since it adds nothing over 'return-rw' | ||
.oO( use JavaJavaJava; ) |
12:15 | ||
brrt | return.... return probably decontainerizes the value normaly | ||
*normally* | |||
12:17
makapa left,
cognominal joined
|
|||
jdv79 | ShimmerFairy: have you worked with large legacy codebases? I think its common ot be lagging the bleeding edge by a lot. | 12:22 | |
ShimmerFairy | no, I haven't. | 12:23 | |
12:24
andreoss joined
12:32
aiacob left
12:41
ab6tract joined
12:44
FROGGS joined
|
|||
masak | brrt: if I had never heard about the `return-rw` workaround, and I was wondering how to return a container from an `is rw` routine, my expectation/guess would be squarely on `return`. | 12:45 | |
brrt: and I guess you could say that this is because at that moment, I don't care about containers. I want it to Just Work. | |||
12:46
plicease left,
plicease joined
|
|||
jnthn | masak: I don't see why we have to have "return-rw", tbh | 12:47 | |
masak: There's no deep impl reason as far as I can see | |||
12:49
laouji left
|
|||
dalek | kudo/nom: 4b2f8e1 | lizmat++ | t/harness: Implement "slow" fudger A test marked as "slow" will not be done in alphabetical order. Instead, all tests marked "slow" injected as far apart from each other in the total run of testing. When given enough TEST_JOBS (e.g. 10 on a quad-core CPU) this results in almost 100% CPU usage for the whole run. Which should result in smaller wallclock times. |
12:49 | |
kudo/nom: 80578e5 | lizmat++ | t/spectest.data: Mark slow test files |
12:50 | ||
lizmat | TimToady: the fan should not go off anymore :-) | ||
cycling& | |||
masak | as long as we're fairly agreed that `return-rw` (et al) are deliberately ugly stopgap features, which we may end up supporting for a long time after 6.christmas because backwards compatibility, we're all good | ||
lizmat++ # slow fudger | 12:51 | ||
jnthn | masak: I don't really see take/take-rw as being in the same boat fwiw | 12:52 | |
masak | sounds like a British insult. :P "come along, ya slow fudger!" | ||
jnthn | That seems legit | ||
masak | jnthn: ok. because they build different results? | ||
jnthn | Well, and the alternative would be a gather-rw :) | ||
And putting it on the take is the more flexible option | |||
masak | I can't recall ever wanting `take-rw`, tbh. | 12:53 | |
if anyone has a use case for that, I'd be much interested :> | |||
I always build a sequence of values, not of containers. | |||
jnthn | Well, something traversing a tree finding things to process, and you want to do for the-things() { s/foo/bar/; } | 12:54 | |
12:56
rindolf joined
13:00
tokuhiro_ joined
|
|||
[Coke] | RT: 1,019; testneeded: 9; GLR: 4; xmas: 98; LTA: 78; WEIRD: 12 | 13:02 | |
13:04
pat_js` joined,
tokuhiro_ left
|
|||
vytas | sorry for a silly question, but what does "use v6;" mean for Perl6 ? does it have to be used? | 13:07 | |
DrForr | It's more for when you accidentally run the script in perl5 :) | 13:10 | |
pat_js` | vytas: it's a perl5-compatible way of saying that you are using perl6 | ||
is there an “interactive perl6-shell mode” for emacs out there? | 13:11 | ||
vytas | does Perl5 output warning? I know there is p6.pm | ||
pat_js` | vytas: here is the message you get: Perl v6.0.0 required--this is only v5.20.2, stopped at rb_tree.p6 line 1. | 13:12 | |
vytas | thanks :) | ||
jdv79 | lizmat: a *real* test runner would randomize the execution:) | 13:13 | |
DrForr | prove(1) has a randomizer :) | 13:14 | |
jdv79 | i've never done it though. seems of dubious value. | ||
oh yeah. forgot about that. DrForr++ | 13:15 | ||
13:16
dnmfarrell joined
|
|||
ShimmerFairy | m: multi sub foo(Int $a) { say "I" }; constant &bar = &foo; multi sub bar(Str $a) { say "S" }; foo(42); bar("A"); foo("A"); bar(12) | 13:18 | |
camelia | rakudo-moar 08b035: OUTPUT«ISSI» | ||
ShimmerFairy | someone please tell me it isn't this easy to define a "synonym" for something :) | ||
13:18
Ven joined
|
|||
[Coke] | lizmat: anything marked stress should also be considered slow, aye? | 13:18 | |
jdv79 | they don't get run in spec though right? | ||
jnthn | [Coke]: Those are excluded in a normal spectest run, though | 13:19 | |
[Coke] | not in spectest, but in stresstest - but it's the same harness, just different options. | ||
so if we want slow to be the default, it should be the default for stressy things too, I think. | |||
13:22
Ven left
|
|||
jdv79 | does anyone use Net::IRC::Bot? And is there something better these days? | 13:32 | |
tony-o | .tell nwc10 there is a perl6 'prove' module/bin out there called 'Green', can be installed with zef or panda. | 13:33 | |
yoleaux | tony-o: I'll pass your message to nwc10. | ||
[Coke] hurls a new SE question: stackoverflow.com/questions/327778...ule-system | 13:35 | ||
er, SO, not SE | |||
[Coke] thinks he might have combined stack overflow and experts exchange there. | 13:36 | ||
jdv79 | maybe that first comment is the best idea there | 13:37 | |
tony-o | seems like that is what the :auth in that spec should be used for [Coke], if that company wants to have its own private ecosystem for modules. | ||
jdv79++ | 13:38 | ||
[Coke] | tony-o: to be clear, I didn't ask it, I just mentioned it here. | ||
TimToady: You just brought + prefix on argument lists back, yes? stackoverflow.com/questions/159476...perl6?rq=1 might need a new answer. :) | 13:40 | ||
13:43
kjk joined
13:46
skids joined
13:48
Ven joined
|
|||
kjk | how do I find out what methods I can invoke on an object? | 13:49 | |
masak | is it possible to import a family of multis, and then add another candidate to it in the current lexical scope? | ||
m: say Mu.^methods>>.name | 13:50 | ||
camelia | rakudo-moar 80578e: OUTPUT«(self gimme munch ACCEPTS WHERE WHICH take return-rw return WHY set_why Bool so not defined new is-lazy CREATE bless BUILDALL BUILD_LEAST_DERIVED Numeric Real Str Stringy item say print note gist perl DUMP DUMP-PIECES DUMP-OBJECT-ATTRS isa does can clone C…» | ||
masak | kjk: ^ | ||
m: say ?Mu.^can("new") | |||
camelia | rakudo-moar 80578e: OUTPUT«True» | ||
jnthn | masak: You just import (or use) and then declare another multi, no? | ||
masak | jnthn: so that works? nice. | ||
jnthn: does it work because the import is actually a copy, and so the family of multis you extend are actually located in your lexical scope, not where you imported them from? | 13:51 | ||
jnthn | masak: Don't see why not. | ||
masak: Yeah, should do | |||
skids | masak: you mentioned in RT#120895 you'd want to review any ideas for altering dedenting, I posted one in PR#540 | ||
kjk | masak: thank you! this would really help a lot with exploring perl6 in repl | ||
jnthn | masak: We have to do some amount of candidate list copying anyway 'cus you can export just some multis ratehr than the whole set | 13:52 | |
dalek | ast: 3c32ca8 | hoelzro++ | S17-lowlevel/lock.t: Unfudge lock/join test The condition under which it would fail under OS X has been fixed |
||
masak | m: module Foo { multi x(Int $n) is export { say "Int" } }; import Foo; multi x(Str $s) { say "Str" }; x(42); x("OH HAI") | ||
camelia | rakudo-moar 80578e: OUTPUT«IntStr» | ||
masak | niiiiiice. | ||
skids: url? | |||
jnthn | hoelzro: I thought it was :) | ||
hoelzro++ | |||
skids | masak: github.com/rakudo/rakudo/pull/540 | 13:53 | |
masak looks | |||
jnthn | Time for me to do some Perl 6 bits :) | ||
dalek | kudo/rw-cleanup: 890402f | jnthn++ | src/core/ (5 files): Clean up various `is rw` misuses. It's meaningless on non-Scalars. In some places, drop bogus `is rw`, and in others switch to using scalars over \foo. |
13:54 | |
kudo/rw-cleanup: 03a42d9 | jnthn++ | src/core/ (24 files): Cleanup of `is rw` usage on subs/methods. Most of them wanted to be "is raw". Some didn't want anything at all. In some places "rw" stayed. Commit poem! Oh, LOL! Well played. |
|||
kudo/rw-cleanup: 73e9f5d | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Only allow `is rw` on Scalar parameters. |
|||
jnthn | heh, forgot a rebase would replay all the branch here | 13:55 | |
Now I need to remember what I was meant to do next with that branch... | 13:56 | ||
moritz | spectest? merge? | ||
masak | skids: both look good. | 13:57 | |
jnthn | heh, no :) | ||
masak | skids: the second one more obviously so than the first. :) | ||
jnthn | Ah, yeah, actually make "is rw" enforce something... | ||
masak | skids: I guess changing from deleting from the end rather than from the front was a fairly deliberate thing? and probably the saner one anyway. | 13:58 | |
skids: I don't immediately see that one direction would be more right than the other there. we mainly need to support the use cases we know about, and be consistent/sane. | 13:59 | ||
skids: in other words, it looks mergeable to me. | |||
skids | masak: Yes, deliberate on that (actually I think indenting by padding the right is, while convenient, less what people expect) | 14:00 | |
dnmfarrell | Just pushed a new version of URI::Encode, and thanks to smls, it's much faster. Swapping a .trans for a .subst did the trick :) | 14:02 | |
skids | masak: (but I didn't change that, because there may e use cases for "don't alter my tabbification at all") | 14:03 | |
tony-o | [Coke]: i'm aware, i juyst like talking about the curli spec | ||
since it's still pretty ambiguous.. | 14:04 | ||
masak | skids: OK if I merge? | 14:05 | |
skids | FIne by be. I'll fix up thos spectests. | ||
dalek | rakudo/nom: 12db6c0 | skids++ | src/core/Str.pm: | ||
rakudo/nom: One possible solution to RT#120895 | |||
rakudo/nom: | |||
rakudo/nom: Deindents delete from the front. Any spaces that are not | |||
rakudo/nom: contributing to the length are deleted along with the tab | |||
14:05
dalek left
|
|||
masak | merged/ | 14:05 | |
jdv79 | fyi, the snippets at the top of doc.perl6.org/type/IO::Socket::Async are broken:( | ||
14:06
dalek joined,
ChanServ sets mode: +v dalek
|
|||
RabidGravy | jdv79, that'll probably be my fault | 14:07 | |
ls | |||
jdv79 | Type check failed in binding $b; expected 'Blob' but got 'Str' in block <unit> at test_bot.pl:3 | 14:08 | |
but there is no $b... | |||
jnthn | jdv79: That probably refers to a $b inside IO::Socket::Async's impl somewhere | 14:09 | |
jdv79 | oh, hmm. yeah. s/write/print/ fixed it but that error. :( | ||
RabidGravy | got a different error | 14:11 | |
dalek | ast: 41afc57 | skids++ | S32-str/indent.t: Alter two tests due to new semantics arising from RT#120895 |
||
skids | I'll get to describing that in design docs later, and maybe an RT-specific test | 14:12 | |
jdv79 | RabidGravy: something about send? | ||
RabidGravy | yeah | ||
jnthn | skids++ # taking things from fixmas list | ||
jdv79 | yeah. i did s/send/write/ wrongly and then to print and it seems better now | ||
but that error message - can that be fixed? | 14:13 | ||
skids | Ah, those were LHF. Most of those tickets I don;t even know where to start or boil down to a spec desicision. | ||
dalek | c: 96b4260 | RabidGravy++ | lib/Type/IO/Socket/Async.pod: s/send/print/ |
||
kudo/rw-cleanup: cdc51a7 | jnthn++ | src/core/CompUnitRepo.pm: A couple more `is rw` -> `is raw`. |
14:14 | ||
RabidGravy | still don't like the client example | ||
14:14
sria91 joined
14:16
sria91 left
14:18
anaeem1 joined
14:19
anaeem1 left,
_mg_ left
|
|||
dalek | kudo/rw-cleanup: 8b7d0c1 | jnthn++ | src/Perl6/Actions.nqp: Topic blocks need $_ to be raw, not rw. |
14:22 | |
kudo/rw-cleanup: 2434d18 | jnthn++ | src/Perl6/ (2 files): Update binder (on Moar) to make `is rw` constrain. Now it requires to be passed something that is an assignable scalar container (Scalar, Proxy, etc.) |
14:25 | ||
14:25
pmurias_ joined
|
|||
andreoss | how can I copy a function? | 14:26 | |
colomon | andreoss: why would you copy a function? | ||
jnthn | andreoss: What do you mean by "copy"? | ||
andreoss | to undefine state variable | ||
jnthn | Oh, that just happens out of closure semantics | 14:27 | |
.clone() should do it also though | |||
m: sub foo() { return sub () { state $a = 1; $a++ } }; my &a = foo(); my &b = foo(); a xx 4; b xx 4; | |||
camelia | rakudo-moar bff29c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HCJ0Z_JX4zUndeclared routine: xx used at line 1» | ||
jnthn | m: sub foo() { return sub () { state $a = 1; $a++ } }; my &a = foo(); my &b = foo(); a() xx 4; b() xx 4; | ||
camelia | ( no output ) | ||
jnthn | m: sub foo() { return sub () { state $a = 1; $a++ } }; my &a = foo(); my &b = foo(); say a() xx 4; say b() xx 4; | 14:28 | |
camelia | rakudo-moar bff29c: OUTPUT«(1 2 3 4)(1 2 3 4)» | ||
jnthn | There you go | ||
andreoss | m: sub foo { state $x; say "hi {$x++}" } ; my &bar = &foo; foo(); bar(); foo() | 14:29 | |
camelia | rakudo-moar bff29c: OUTPUT«hi 0hi 1hi 2» | ||
andreoss | m: sub foo { state $x; say "hi {$x++}" } ; my &bar = clone &foo; foo(); bar(); foo() | ||
camelia | rakudo-moar bff29c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MoD9e2IjKTUndeclared routine: clone used at line 1. Did you mean 'close', 'done', 'none'?» | ||
andreoss | m: sub foo { state $x; say "hi {$x++}" } ; my &bar = &foo.clone; foo(); bar(); foo() | ||
camelia | rakudo-moar bff29c: OUTPUT«hi 0hi 0hi 1» | ||
jnthn | That works too (and is safe to rely on) | 14:30 | |
andreoss | m: sub foo { state $x; say "hi {$x++}" } ; my &bar = &(&foo); foo(); bar(); foo() | ||
camelia | rakudo-moar bff29c: OUTPUT«hi 0hi 1hi 2» | ||
jnthn | You'll have to explicitly clone if you don't want to write it in the function generator form I showed above | ||
Assignment just assigns the same closure. | 14:31 | ||
andreoss | thanks | ||
jnthn | Phew, only one spectest I need to look at from making `is rw` check for a container | 14:32 | |
14:33
zakharyas left
|
|||
moritz | jnthn: does 'sub f($x is rw) { }; f 42' fail to dispatch in your branch? | 14:33 | |
jnthn | Yes | ||
moritz | \o/ | ||
jnthn | C:\consulting\rakudo>perl6-m -e "sub f($x is rw) { }; f 42" | 14:34 | |
Parameter '$x' expected a container, but got an Int value in sub f at -e:1 | |||
Any comments on the message are welcome | |||
psch | s/value/literal/ maybe? | ||
oh but there's values that aren't literal | |||
jnthn | I pondered literal, but...yes, that. :) | ||
moritz | jnthn: "expected a writable container"? | 14:35 | |
does sub g($x) { f(x) }; sub f ($x is rw); g my $y; fail to dispatch to &f? | |||
jnthn | Hm, that does better link it back to rw | ||
Did you mean f($x) ? | 14:36 | ||
moritz | yes | ||
jnthn | Uh, it should but...hmm | ||
Ah... | 14:37 | ||
iscont isn't sufficient 'cus we use ro Scalar to prevent flattening | |||
grr | 14:39 | ||
jnthn fixes | |||
jdv79 | RabidGravy: yes, that client is awful;) | 14:40 | |
jnthn | moritz++ for the test base, btw | ||
*case | |||
I'd expected that one to already refuse to bind... | |||
jdv79 | maybe better net and/or async docs would be nice | ||
moritz too | 14:41 | ||
jdv79: I've tried very hard to document Promise, Supply and Channel well | |||
jdv79 | i'm just digging in for the first time | 14:42 | |
moritz | jdv79: if you have any complaints in that part of the docs, please let me know | ||
jdv79 | moritz++ # thanks! | ||
jnthn | moritz: Turns out it's some work to not totally cheat on it too... Working on it :) | 14:45 | |
14:49
jack_rabbit_ left
14:50
domidumont left,
zoosha_ left
|
|||
andreoss | m: sub foo { say "hi" }; my &bar = &foo.perl.EVAL; bar() | 14:55 | |
camelia | rakudo-moar bff29c: OUTPUT«Stub code executed in sub foo at EVAL_0:1 in block <unit> at /tmp/kKAytGgWID:1Actually thrown at: in block <unit> at /tmp/kKAytGgWID:1» | ||
jnthn | &foo.perl doesn't actually provide the source code. | 14:56 | |
14:58
bjz_ left
|
|||
masak | there's no real technical limitation there. many JavaScript implementations do that. | 14:59 | |
14:59
bjz joined
|
|||
jnthn | It's more a choice | 14:59 | |
masak | still, there might be security concerns. and maybe performance/memory concerns. | 15:00 | |
jnthn | We choose not to, otherwise pre-comps have to carry the source code around in them too | ||
Do that for CORE.setting and it's another few megs of RAM on base Perl 6. | |||
masak | right. | ||
15:00
pmurias_ is now known as pmurias
|
|||
TimToady | well, or a file lookup | 15:00 | |
jnthn | True, the info is kept around to do that. | 15:01 | |
Well | |||
The start of the function is :) | |||
Even then it's not the whole story because you don't have the context | |||
So it *still* won't round-trip | |||
15:01
tokuhiro_ joined
|
|||
masak .oO( just forbid closure semantics! ) :P | 15:02 | ||
jnthn | We're not *that* enterprise :P | ||
pmurias | m: sub foo {say "hi" }; say(&foo.perl) | 15:03 | |
camelia | rakudo-moar bff29c: OUTPUT«sub foo () { #`(Sub|77114784) ... }» | ||
pmurias | it seems less the awesome | ||
jnthn | Tough. | ||
pmurias | * then | ||
jnthn | * than :P | 15:04 | |
pmurias | yes ;) | ||
Ven | masak: Function::toString used to be "nonstandard" (not required to work). I think es6 standardises it.. | 15:05 | |
15:06
tokuhiro_ left
|
|||
skids | Oh, that reminded me, is a "wisdom" system for storing spesh/optimization preloads in a disk cache for future runs potentially feasible? | 15:06 | |
(JOOC) | 15:07 | ||
jnthn | skids: Potentially, yeah, it's just...hard :) | ||
skids: Ideally you'd store the JITted output but you gotta get security right and write a linker... :) | |||
FROGGS | jnthn: once you thought precomp+BEGIN is hard, no? :o) | ||
jnthn | FROGGS: It still *is* hard, as evidenced by the fact we still have precomp issues to squish ;) | 15:08 | |
nine | We do have file and line information for call frames. Isn't this somehow accessible? | ||
jnthn | nine: Yeah | ||
nine: I think timotimo did something to make it so | |||
On a routine | |||
m: say Routine.^methods>>.name | |||
camelia | rakudo-moar bff29c: OUTPUT«(<anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> of returns onlystar candidates cando multi soft wrap unwrap yada package leave perl add_phaser phasers assuming WHY set_why perl <anon> fire_ph…» | ||
timotimo | i *thought* i put something in there | ||
tony-o | lizmat: is CURLF or CURLI returning the proper type? CURLF is returning a CompUnitRepo and CURLI is returning an array.. | ||
timotimo | but i couldn't find it the last time i looked | ||
perhaps it's in a branch | 15:09 | ||
jnthn | m: say Routine.^methods>>.name.grep(* ne '<anon>') | ||
camelia | rakudo-moar bff29c: OUTPUT«(of returns onlystar candidates cando multi soft wrap unwrap yada package leave perl add_phaser phasers assuming WHY set_why perl fire_phasers has-phasers count of ACCEPTS signature Str arity returns new outer static_id)» | ||
jnthn | Yeah, I don't see it in there | ||
15:10
zoosha joined
|
|||
jnthn | timotimo: Mebbe you just did the moar work to make it possible :) | 15:11 | |
timotimo | cit seems i put a commit there to get nqp::getcodelocation, but didn't put it into core | ||
jnthn | aha | ||
timotimo | m: say nqp::getcodelocation(nqp::getattr(sub foo() { }), Block, '$!do')) | ||
camelia | rakudo-moar bff29c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cDKcckOySPUnexpected closing bracketat /tmp/cDKcckOySP:1------> 3::getattr(sub foo() { }), Block, '$!do')7⏏5)» | ||
timotimo | m: use nqp; say nqp::getcodelocation(nqp::getattr(sub foo() { }), Block, '$!do') | ||
camelia | rakudo-moar bff29c: OUTPUT«===SORRY!===Arg count 3 doesn't equal required operand count 2 for op 'getcodelocation'» | ||
timotimo | m: use nqp; say nqp::getcodelocation(nqp::getattr(sub foo() { }, Block, '$!do')) | ||
camelia | rakudo-moar bff29c: OUTPUT«P6opaque: no such attribute '$!do' in block <unit> at /tmp/VehgbQRdUX:1» | ||
timotimo | m: use nqp; say nqp::getcodelocation(nqp::getattr(sub foo() { }, Routine, '$!do')) | 15:12 | |
camelia | rakudo-moar bff29c: OUTPUT«P6opaque: no such attribute '$!do' in block <unit> at /tmp/e9TnOGH7Wp:1» | ||
timotimo | m: use nqp; say nqp::getcodelocation(nqp::getattr(sub foo() { }, Code, '$!do')) | ||
camelia | rakudo-moar bff29c: OUTPUT«file => /tmp/owkwm5aYQe, line => 1» | ||
timotimo | there we go | ||
this is how we'd implement it | |||
nine: do you want to? :) | |||
nine | I give it a try :) | ||
hoelzro | o/ #perl6 | 15:13 | |
tony-o | .tell lizmat, i'm looking to fix either CURLI or CURLF so we can keep working on the modules we have. can you tell me whether the CURLF (returns CompUnit) or CURLI (returns an Array) is correct? this will tell me whether CURLI needs to be changed or whether CURLF needs to be fixed along with whatever is trying to call .load on the returned value. | 15:16 | |
yoleaux | tony-o: What kind of a name is "lizmat,"?! | ||
tony-o | .tell lizmat i'm looking to fix either CURLI or CURLF so we can keep working on the modules we have. can you tell me whether the CURLF (returns CompUnit) or CURLI (returns an Array) is correct? this will tell me whether CURLI needs to be changed or whether CURLF needs to be fixed along with whatever is trying to call .load on the returned value. | ||
yoleaux | tony-o: I'll pass your message to lizmat. | ||
tony-o | thanks yoleaux | ||
15:16
haroldwu joined
|
|||
jnthn | C:\consulting\rakudo>perl6-m -e "sub g($x) { f($x) }; sub f ($x is rw) { }; g my $y;" | 15:17 | |
Parameter '$x' expected a writable container, but got an Any value in sub f at -e:1 in sub g at -e:1 | |||
\o/ | |||
tony-o | what is C:\ | ||
nine | Ok, finding a sub in a file is easy. The hard part is knowing where it ends | ||
pink_mist | tony-o: the main harddrive in most windows installs | 15:18 | |
dalek | p: d55821d | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for isrwcont op. |
||
p: bd77bf7 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Map isrwcont op on Moar backend. |
|||
kudo/nom: 94bc1a9 | (Stefan Seifert)++ | src/core/Code.pm: Make .file and .line of Code objects accessible |
|||
jnthn | tony-o: Wearning a turban and feeling odd about it. | 15:19 | |
*Wearing | |||
15:19
diana_olhovik left
15:20
AlexDaniel joined
|
|||
nine | Now if only we had a Perl 6 parser available for Perl 6 ;) | 15:21 | |
AlexDaniel | hah | ||
15:21
dnmfarrell left
|
|||
jdv79 | chars-supply seems line oriented. that's not correct right? | 15:21 | |
jnthn | jdv79: It's not something you can rely on | 15:22 | |
jdv79: We give you the stuff the OS gives us | |||
jdv79 | thought so | ||
jnthn | jdv79: If the programming is outputting data a line at a time it's possible you'll get lines, but don't rely on it :) | 15:23 | |
*program | |||
AlexDaniel | p6weekly is barely p6monthly again :( | ||
jnthn | AlexDaniel: If you're time/interest, I'm sure the two people who try to make it happen woudln't mind a third person to help spread the load. | 15:24 | |
AlexDaniel | jnthn: sure | ||
jnthn: but I'm afraid that I'm not the right person to do that, because it's basically one of my primary sources of perl6 news | |||
15:24
tokuhiro_ joined
|
|||
AlexDaniel | jnthn: maybe if I was a bit more active on IRC… | 15:25 | |
but just wanted to complain a little bit to remember that p6weekly is a really great idea, I wish there were more updates | 15:26 | ||
tony-o | jnthn++ | ||
AlexDaniel | by the way, maybe it is a good idea to make some wiki page where everyone could make dirty notes? Which would be later refactored into a blog post | 15:28 | |
this way, even I could contribute | |||
15:29
tokuhiro_ left
|
|||
jnthn | AlexDaniel: I think looking over the commit logs for Rakudo and the ecosystem module list would get you plenty of info on stuff that's been going on as a source. | 15:29 | |
RabidGravy | is there a nice way of getting out of a "react"? having troubling working it out | ||
jnthn | RabidGravy: "done" | ||
RabidGravy | ah-ha! cheers | ||
jnthn | AlexDaniel: Collecting that into notes somewhere (just a gist even, or a github wiki) would certainly help | 15:30 | |
AlexDaniel: Typically whoever writes it posts it here for review and asks if there's anything people want included also | |||
15:31
travis-ci joined
|
|||
travis-ci | NQP build errored. jnthn 'Map isrwcont op on Moar backend.' | 15:31 | |
travis-ci.org/perl6/nqp/builds/82171720 github.com/perl6/nqp/compare/a54d4...77bf71acc1 | |||
15:31
travis-ci left
|
|||
jnthn | If we could get up to 4-5 people who contribute then it'd only be once per month for somebody to curate the stuff into a blog post. | 15:31 | |
pmurias | hoelzro: \o | ||
jnthn | oh really, travis... | ||
yowser, that's a nasty build fail | 15:32 | ||
tony-o | jnthn: contribute to what? | ||
jnthn | tony-o: perl6 weekly | ||
p6weekly.wordpress.com/ | |||
hoelzro | o/ pmurias | ||
dalek | p: 06ae7d2 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (4 files): [js] Progress on serializing P6opaque and object references. |
15:37 | |
p: 2f956fd | (Pawel Murias)++ | src/vm/js/nqp-runtime/serialization.js: [js] Fix bug |
|||
15:39
sufrostico joined
|
|||
RabidGravy | is gist.github.com/jonathanstowe/9ca5...6d7bd0a50e a nicer example for an IO::Socket::Async client? jdv79? | 15:40 | |
15:42
travis-ci joined
|
|||
travis-ci | NQP build passed. Pawel Murias '[js] Fix bug' | 15:42 | |
travis-ci.org/perl6/nqp/builds/82174925 github.com/perl6/nqp/compare/bd77b...956fd2b4c1 | |||
15:42
travis-ci left,
travis-ci joined
|
|||
travis-ci | Rakudo build failed. Stefan Seifert 'Make .file and .line of Code objects accessible' | 15:42 | |
travis-ci.org/rakudo/rakudo/builds/82171738 github.com/rakudo/rakudo/compare/b...bc1a93eda3 | |||
15:42
travis-ci left
15:48
Goblin_ joined
|
|||
Goblin_ | How to load module from different location? | 15:48 | |
15:49
estrabd joined
|
|||
jnthn | -Ifoo at the command line or use lib 'foo'; in code | 15:49 | |
15:50
ab6tract left,
Goblin_ left
15:52
estrabd left
|
|||
dalek | p: a2deb14 | jnthn++ | src/vm/jvm/ (3 files): Implement nqp::isrwcont on JVM backend. |
15:52 | |
andreoss | why my sub foo {...} is immutable but my &foo = sub {...} is not? | ||
jnthn | sub foo installs the sub at compile time into the lexpad | 15:53 | |
my &foo is just a Scalar container with a Callable type constraint. | |||
15:54
estrabd joined
|
|||
jnthn | (And since the first happens at compile time, a bunch more error checking and optimization is possible) | 15:54 | |
15:55
estrabd left
|
|||
dalek | kudo/rw-cleanup: 6eec497 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for nqp::isrwcont. |
15:56 | |
kudo/rw-cleanup: 089e7df | jnthn++ | src/vm/moar/ops/container.c: Implement new can_store container API on Moar. |
|||
jnthn | lizmat: fwiw, the slow test re-ordering makes things *slower* on Windows | 15:59 | |
lizmat: 'cus it launches tests in batches | |||
lizmat: And now there's more slow batches | |||
16:00
FROGGS left
16:01
Alina-malina left
16:04
Ven left
|
|||
dalek | kudo/rw-cleanup: 19975f9 | jnthn++ | src/Perl6/ (2 files): Use nqp::isrwcont for checking parameter `is rw`. |
16:04 | |
kudo/rw-cleanup: 1d3c344 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Mention "writable" in error; moritz++. |
|||
jnthn | OK, I got 4 test failures in rw-cleanup, and 3 are about error reporting | 16:07 | |
jdv79 | Calling emit() will never work with declared signature (\value) | ||
why not ? | |||
jnthn | jdv79: emit needs a value to emit | 16:08 | |
jdv79: I don't see a sensible "default" value | |||
jdv79 | oh i read it wrong | ||
right | |||
jnthn needs a break for a little bit | 16:09 | ||
16:11
brrt left
16:12
spider-mario joined
16:16
diana_olhovik joined
|
|||
jdv79 | oh WOW. i just spent 10 mins trying to figure out how "Cannot find method 'postcircumfix:<( )>'" could be coming from a react or whenever block since tht's the line # it ref'd | 16:16 | |
it was inside the supply block that it was looping over. :( that can't be fixed? | |||
dalek | c: 6d961f0 | RabidGravy++ | lib/Type/IO/Socket/Async.pod: Slightly prettier client example |
16:19 | |
16:20
FROGGS[mobile] joined
|
|||
FROGGS[mobile] | jdv79: can you golf and report it? | 16:21 | |
16:21
diana_olhovik left
|
|||
jdv79 | ok | 16:21 | |
jnthn | async error reporting is always some fun to get right :) | 16:23 | |
jdv79 | is it async related? seems to be def vs runtime on an anon block kinda | 16:28 | |
gist.github.com/jdv/81f942b02e414219f79e | 16:29 | ||
16:30
FROGGS[mobile]2 joined
|
|||
jnthn | Yeah, I can imagine how we lose the original exception | 16:31 | |
Can you RT that? I'm working on some of the rw-cleanup regressions and then it'll be dinner time soon... | |||
jdv79 | yes | ||
thanks | |||
16:34
FROGGS[mobile] left
|
|||
TimToady | on code locations, it's gonna be hopeless unless we store positions rather than line numbers | 16:37 | |
16:37
khw joined
|
|||
TimToady | but I repeat myself... | 16:37 | |
16:38
FROGGS[mobile]2 left
|
|||
timotimo | for all those one-liners out there | 16:38 | |
and minified perl6 scripts | |||
jdv79 | in 3d? | ||
jnthn | .oO( TimToady repetition detected 5 lines ago :P ) |
||
16:39
FROGGS[mobile] joined
16:41
cognominal left
|
|||
dalek | kudo/rw-cleanup: dbec58f | jnthn++ | src/ (2 files): Typed exception for no `is rw` satisfaction. |
16:41 | |
jdv79 | gist.github.com/anonymous/c4b70a65e2475ff25968 | 16:43 | |
TimToady | jnthn: maybe there should be a Storable role and s/writable container/Storable/? well, maybe Storable is not the best name... | ||
jdv79 | is taht really necessary to write? can't the core IO stuff do that? | ||
16:43
cognominal joined
|
|||
jnthn | TimToady: I figured we could put that off until we figure out what `is rw` means on non-Scalar things... | 16:44 | |
TimToady: Of course we could test if .VAR ~~ Storable | |||
Though yeah, the name has some...history...we may want to consider ;) | |||
16:45
Alina-malina joined
16:46
dakkar left
|
|||
jnthn | jdv79: $conn.chars-supply.lines | 16:48 | |
m: my $s = supply { emit "omg"; emit "wtf\nbbq"; emit "!" }; react { whenever $s.lines { ++state $i; say "$i: $_" } } | 16:49 | ||
camelia | rakudo-moar 94bc1a: OUTPUT«1: omgwtf2: bbq!» | ||
jnthn | OK, I think I got my rw-cleanup branch mergable :) | 16:50 | |
16:51
espadrine left
|
|||
jdv79 | ha | 16:54 | |
RabidGravy: that's the sort of stuff to put in that example code | 16:55 | ||
RabidGravy | just doing the server example to make it more like that | 16:56 | |
dalek | kudo/nom: d593789 | jnthn++ | src/core/ (5 files): Clean up various `is rw` misuses. It's meaningless on non-Scalars. In some places, drop bogus `is rw`, and in others switch to using scalars over \foo. |
||
16:56
dalek left
|
|||
jdv79 | i did find a perhaps genuine bug though because i reinvented that wheel | 16:57 | |
16:57
dalek joined,
ChanServ sets mode: +v dalek
|
|||
dalek | ast: 5caab8c | jnthn++ | S0 (3 files): Update some expected exception types. We now enforce rw-ness at parameter binding time, so these die earlier. |
16:57 | |
jdv79 | so maybe not wasted | ||
ast: 6d542a7 | jnthn++ | S06-traits/misc.t: Update tests for `is rw` for constraint semantics. |
|||
16:57
yqt joined
|
|||
jnthn | rw-cleanup merged, thsoe were the fails I noticed and have fixed up tests for :) | 16:58 | |
This isn't everything, 'cus the multi-dispatcher needs to learn to enforce the constraint too | |||
And the JVM binder... :) | |||
But, dinner time & | |||
17:01
pierrot_ joined
|
|||
moritz | hack.p6c.org/~moritz/rakudo-star-2015.09.tar.gz # everbody please test it | 17:02 | |
jdv79 | is there something like say for a socket? | 17:03 | |
for line based text protocols for instance | |||
moritz | jdv79: no; and I don't advise adding it either | 17:04 | |
cause say() uses gist, which is the summary meant for humans | 17:05 | ||
not something you usually send over the network | |||
jdv79 | yup | ||
17:09
pierrot__ joined,
pierrot_ left
17:11
AlexDaniel left
17:12
espadrine joined
17:14
domidumont joined
17:19
travis-ci joined
|
|||
travis-ci | Rakudo build passed. jnthn 'Typed exception for no `is rw` satisfaction.' | 17:19 | |
travis-ci.org/rakudo/rakudo/builds/82188992 github.com/rakudo/rakudo/compare/9...7ed7e5bb97 | |||
17:19
travis-ci left
17:23
telex left
17:24
telex joined
|
|||
garu_ | I *love* the "did you mean" messages on undeclared variables. I wonder if we can do the same for unrecognized character names, since it's also a compile time error | 17:26 | |
something like 'say "\c[WHITE HEART]"' -- compile error: did you mean "WHITE HEART SUIT"? | 17:28 | ||
hoelzro | garu_: that's a spectacular idea | 17:31 | |
moritz | also algorithmically a bit more challenging than for the setting | ||
there are many more Unicode characters than symbols in the setting, for example | 17:32 | ||
TimToady | and you're looking for more than just typos | 17:33 | |
hoelzro | it's more complex time-wise, but it would only happen at compilation failure, right? | 17:36 | |
jdv79 | RabidGravy: you work on HTTP::UserAgent, right? | ||
hoelzro | so a few extra millis for that info wouldn't be so bad, imo | 17:37 | |
jdv79 | seems to be hangy again | ||
RabidGravy | jdv79, yes | ||
occasionally anyway | |||
17:37
adu joined
17:39
_mg_ joined
17:40
araujo_ joined
17:44
araujo left
|
|||
jdv79 | RabidGravy: i bugged it ^H | 17:45 | |
RabidGravy | cool | ||
jdv79 | who knew an http us could be so cranky:) | ||
*ua | |||
17:52
yqt left
17:55
leont joined
|
|||
geekosaur | anyone who's written one >.> | 17:56 | |
dalek | c: 70321a6 | RabidGravy++ | lib/Type/IO/Socket/Async.pod: Make the server example more similar in style |
18:00 | |
18:02
dnmfarrell joined
18:04
FROGGS joined
|
|||
FROGGS | o/ | 18:11 | |
garu_ | \o | 18:12 | |
FROGGS | hi garu_ :o) | ||
dalek | ast: f384b62 | FROGGS++ | S05-capture/array-alias.t: turn old test into valid Perl 6 That is, fix stringificationn of variables and lexical regex declarations. |
18:14 | |
[Coke] | FROGGS: that has a note at the top that it doesn't compile. | 18:18 | |
... which you can remove now. Not sure if there's anything else that needs doing to fix that RT, either. | |||
er, that test file you just updated. | |||
FROGGS | [Coke]: I am working on making it pass... | 18:19 | |
m: my @chars; say "abc" ~~ m/@chars=(.)/; say @chars | |||
camelia | rakudo-moar 277ed7: OUTPUT«===SORRY!===QAST::Block with cuid cuid_1_1443205161.35459 has not appeared» | ||
FROGGS | [Coke]: it does not compile yet on nom | ||
dalek | kudo/nom: 863a2a4 | TimToady++ | src/Perl6/Grammar.nqp: die better on malformed --> |
18:23 | |
18:30
_mg_ left
18:31
domidumont left,
mr_ron joined
|
|||
mr_ron | m: gist.github.com/ronaldxs/4cb6bb2b47140eab390a | 18:32 | |
camelia | rakudo-moar 277ed7: OUTPUT«count should be 1 but is: 2» | ||
mr_ron | looks like proxy bug | ||
timotimo | rakudo doesn't guarantee how often FETCH is called | 18:34 | |
18:36
espadrine left,
andreoss left
|
|||
mr_ron | I think that conclusion effects a roast test suite: github.com/perl6/roast/blob/master...mutators.t | 18:37 | |
18:38
pierrot__ is now known as pierrot,
sufrostico left
|
|||
timotimo | ah, i don't think we should be testing for the exact count of FETCH invocations there | 18:39 | |
mr_ron | the FETCH will be called twice and add 4 instead of 2 | ||
timotimo | but the test is currently skipped anyway, perhaps because $!varies gets the wrong "self" there? | ||
let's look at RT #124909 | 18:40 | ||
oh | |||
it's one of *those* | |||
rt.perl.org/Public/Bug/Display.html?id=124909 | |||
mr_ron | yes I saw it - it doesn't say much | 18:41 | |
custom mutators are something I want for one of my modules. They don't really seem to be in the documentation. Are they officially documented as part of Perl6 in some way? | 18:43 | ||
lizmat | messages? | 18:44 | |
yoleaux | 15:16Z <tony-o> lizmat: i'm looking to fix either CURLI or CURLF so we can keep working on the modules we have. can you tell me whether the CURLF (returns CompUnit) or CURLI (returns an Array) is correct? this will tell me whether CURLI needs to be changed or whether CURLF needs to be fixed along with whatever is trying to call .load on the returned value. | ||
18:44
pierrot left
|
|||
lizmat | tony-o: looking into it | 18:45 | |
lizmat backlogs first | |||
jdv79: re irclog.perlgeek.de/perl6/2015-09-25#i_11274295 , in 871268e72e11c9dd0c6705 I added a randomize option to t/harness | 18:48 | ||
jdv79: it did not make things go faster (wallclock wise) | |||
18:48
ggoebel2 joined
|
|||
lizmat | [Coke]: well, slow in my book is more "slow in wallclock" because of sleep() or i/O | 18:49 | |
mr_ron | custom object attribute mutators I mean. From S12 "You may write your own accessors to override any or all of the autogenerated ones.". Is there similar documentation on mutators? | ||
lizmat | [Coke]: so re irclog.perlgeek.de/perl6/2015-09-25#i_11274331 : I don't think tests marked "stress" should be considered slow as well | 18:50 | |
the whole idea was to spread out the tests that take long, but don't need a lot of CPU, over the entire run of the spectest, rather than be concentrated at a particular period of the run | 18:51 | ||
[Coke] | lizmat: if stress tests are slow by wallclock standard, what makes them stress tests? | ||
18:51
sufrostico joined
|
|||
[Coke] | *aren't | 18:51 | |
lizmat | because they are generally CPU intensive, and possibly take long because they do a lot | 18:52 | |
the "slow" tests are just slow because they *don't* do a lot, just waiting for things to happen | |||
18:59
yqt joined
|
|||
lizmat | jnthn: re irclog.perlgeek.de/perl6/2015-09-25#i_11275510 about the slow fudger making things slower | 19:02 | |
afaik I only changed the *order* in which test files are being executed | 19:03 | ||
I did not change anything related to batching at all | |||
in fact, in t/harness there is no batching at all (in the end) | 19:04 | ||
$tap_harness_class->new( \%harness_options )->runtests(@tfiles); | |||
so I'm surprised | 19:05 | ||
if it really does slow down things on windows, I could make the slow fudger work only if --slow is specified | |||
and have the makefile not specify that on Win ? | |||
moritz | R* uploaded, tag pushed, blog post published | 19:09 | |
will do the mailing lists soonish | |||
if somebody could update the wikipedia pages, that would be awesome | 19:10 | ||
lizmat | moritz++ | ||
19:10
quester-temp joined
|
|||
quester-temp | m: say < a b c d e >.grep( / <[bd]> / ); | 19:11 | |
camelia | rakudo-moar 863a2a: OUTPUT«(b d)» | ||
quester-temp | m: say < a b c d e >.grep( m{ <[bd]> } ); | 19:12 | |
camelia | rakudo-moar 863a2a: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/ipaMoijBFX:1» | ||
lizmat | m: m/a/ | 19:13 | |
camelia | rakudo-moar 863a2a: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/QQevzKtSUq:1» | ||
quester-temp | say < a b c d e >.grep( { $^x ~~ m{ <[bd]> } } | 19:14 | |
m: say < a b c d e >.grep( { $^x ~~ m{ <[bd]> } }; | 19:15 | ||
camelia | rakudo-moar 863a2a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ReFKNXj8b6Unable to parse expression in argument list; couldn't find final ')' at /tmp/ReFKNXj8b6:1------> 3 b c d e >.grep( { $^x ~~ m{ <[bd]> } };7⏏5<EOL> expecting any of: argu…» | ||
quester-temp | m: say < a b c d e >.grep( { $^x ~~ m{ <[bd]> } } ); | ||
camelia | rakudo-moar 863a2a: OUTPUT«(b d)» | ||
19:18
_mg_ joined
|
|||
dalek | kudo/nom: de8b431 | lizmat++ | t/harness: Make the slow fudger optional: --slow |
19:18 | |
19:20
_mg_ left
|
|||
quester-temp | m: say < a b c d e >.grep( re{ <[bd]> } ); | 19:22 | |
camelia | rakudo-moar 863a2a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PYEFRCI5ONUndeclared routine: re used at line 1» | ||
quester-temp | m: say < a b c d e >.grep( rx{ <[bd]> } ); | ||
camelia | rakudo-moar 863a2a: OUTPUT«(b d)» | ||
19:22
Goblin_ joined
|
|||
dalek | kudo/nom: 5f5cfcf | lizmat++ | Configure.pl: Factor out Win check into variable |
19:23 | |
19:30
araujo_ left
|
|||
kjk | is it possible to get documentation on a method at runtime? | 19:30 | |
19:30
araujo joined
|
|||
tadzik | yes | 19:31 | |
a bit tricky though | |||
19:31
Goblin_ left
|
|||
tadzik | m: gist.github.com/tadzik/adaded60411f1768aef7 | 19:32 | |
camelia | rakudo-moar 863a2a: OUTPUT«foo bar baz dupa» | ||
tadzik | kjk: &^ | ||
[0] is actually unnecessary | 19:33 | ||
FROGGS | m: class Foo { method bar { } #= baz}; say Foo.^find_method('bar')[0].WHY | 19:34 | |
camelia | rakudo-moar 863a2a: OUTPUT«(Any)» | ||
FROGGS | m: class Foo { #|flubbermethod bar { } #= baz}; say Foo.^find_method('bar')[0].WHY | ||
camelia | rakudo-moar 863a2a: OUTPUT«baz» | ||
FROGGS | that smells like a bug | ||
lizmat | I find it hard to believe that we actually need something like ^find_method | ||
hoelzro | ruh roh | ||
when did *that* stop working? | 19:35 | ||
and WHY didn't the S26 tests pick that up? | |||
kjk | ic, thanks tadzik! looks like many methods on built-in types still have no docs on them? Str.^find_method('chomp').WHY.say | ||
tadzik | kjk: yeah, the built-in things are not documented in the code :( | ||
hoelzro | kjk: none of the builtins do, unfortunately =/ | ||
moritz | that's what p6/doc is for | 19:36 | |
hoelzro | I have a side project in mind that takes the docs from perl6/doc and injects them into the WHYs, but ENOTENOUGHTIME | ||
tony-o | lizmat: lmk, i'll work on CUR because right now it's pretty well broken | ||
lizmat | hoelzro: inject? why not go out to fetch the docs when .WHY is called? | ||
kjk | ic, I'm just looking for a way to get the docs while I explore objects and methods in a repl | ||
tadzik | . o O ( use docs; ) | 19:37 | |
hoelzro | lizmat: I don't see why not; injecting them would just be easier =) | ||
s/easier/less work/ | |||
I think we were musing about documentation sources when I added S26 support | |||
lizmat | yeah, but that would increase memory requirements for the runtime ? | ||
hoelzro | yes | ||
I was thinking you'd have to ask for them at Configure.pl time | 19:38 | ||
lizmat | I mean, if we have the docs sitting on disk, we could go out to them the moment .WHY is called ? | ||
it would only need filename and possible seek position/length ? | |||
hoelzro | it feels like CompUnitRepos could manage that | ||
lizmat | tony-o: let's make sure we're not doing double work on CUR... | 19:39 | |
hoelzro | when you install a module, the installer could extract the docs and put them somewhere nice | ||
lizmat | that's one approach, indeed | ||
or if the source is still available, (which I think it should be) | 19:40 | ||
hoelzro | oh, duh | ||
nice idea, lizmat =) | |||
lizmat | it could go out to the source and *then* extract | ||
could anyone with enough Configure.pl / Makefile foo add --slow as a parameter to M_HARNESS_WITH_FUDGE when not on Windows ? | 19:41 | ||
I've been looking at the code, but got lost | 19:42 | ||
tony-o | lizmat: well, i'd like to just get it fixed sooner rather than later. right now CURLF is most likely broken but it's the only thing that works to load modules. i have modules that i haven't been able to load or test for a few weeks now because CURLI is broken | ||
lizmat | and it seems to me that this would be a piece of cake for someone | ||
moritz | lizmat: what does --slow do? | ||
lizmat | it spreads out the tests marked slow equally over the test run | ||
it brings down spectest time for me from 215 to 207 wallclock | 19:43 | ||
tony-o | or if we could at least revert whatever the commit was that broke it | ||
lizmat | tony-o: CURLI will remain broken until we got all precomp / installation issues solved | 19:44 | |
moritz | lizmat: my solution would be to default $slow to 1 in t/harness on non-windows | ||
lizmat | that would work for me as well | ||
19:45
FROGGS[mobile] left
|
|||
moritz | lizmat: perlpunks.de/paste/show/5605a45c.5c35.d6 | 19:45 | |
I need to compile my rakudo before I can test it :-) | |||
19:46
zoosha left
19:47
zoosha joined
|
|||
lizmat | I have a slightly different patch | 19:48 | |
jdv79 | lizmat: i was 1/2 kidding around | ||
dalek | kudo/nom: 65129cf | lizmat++ | t/harness: Make --slow default to true on non Win |
19:49 | |
jdv79 | but if randoming spread out the slow offenders and added depedancy breaking yay:) | ||
serm you found not though | 19:50 | ||
*seems | |||
lizmat | no, it made things worse | ||
leont should try a conversion of t/harness to p6 one of these days, and see how far it manages to get | |||
lizmat | leont: looks pretty doable to me | 19:51 | |
leont | I think so too | ||
jnthn | lizmat: The batching isn't anything in t/harness, it's just the way parallel testing works on Windows for...some reason | ||
jdv79 | curious | ||
lizmat | jnthn: yeah, got that later.... | ||
jnthn | k :) | ||
lizmat | it's not spreading out on Win anymore | 19:52 | |
leont | It's just that parallel testing has been tricky so far (no idea if that's fixed by now) | ||
jnthn | lizmat++ # thanks! | ||
tony-o | you're really going to deny a PR that fixes something spec'd? | ||
jnthn | tony-o: Which PR is in question here? | ||
jnthn can look at it | |||
tony-o | i want to fix CURLI so i can continue developing and testing modules for perl6. | ||
lizmat | tony-o: which PR ? | 19:53 | |
tony-o | i will submit a PR to fix it once i know it's worth doing | ||
jdv79 | curl* is shrouded in mystery | ||
lizmat | please don't assume malice is intended, just laziness and probably stupidity from my end | ||
tony-o | i haven't worked on it yet because i'm not sure if CURLF or CURLI is out of spec | ||
lizmat | as the person having written most of the spec, I'm not sure atm either | ||
tony-o | so would it be okay if i just get CURLI working and submit a PR for that? should i put the PR on a certain branch? | 19:54 | |
lizmat | tony-o: that's why I said I'm looking into it (yes, I know, I got sidetracked earlier this week) | ||
nine | tony-o: I guess you wouldn't have to spend much time to become one of the top 3 experts in that area... | ||
jdv79 would like to see curl* more fleshed out | 19:55 | ||
tony-o | nine: i have some ideas about how to implement but i can't seem to keep the discussion going (maybe that's why ^^) | ||
lizmat | tony-o: "just get CURLI working" is something that I think we *don't* want at this point | ||
jnthn | lizmat: Why not, ooc? | ||
lizmat | there are serious flaws in the way CURLI currently has been implemented | ||
tony-o | jnthn: more to refactor is my guess, | ||
jnthn | lizmat: Sometimes making the thing work at all is a prereq for knowing how to refactor it, though :) | 19:56 | |
lizmat | very true | ||
jnthn | Not to mention it might let us write tests that the refactor should also pass. | ||
lizmat | also true | 19:57 | |
tony-o | honestly i think CURLF is the one that is borken, i think returning an array for 'candidates' is more ideal than returning a single CU | ||
jnthn | I guess that's assuming the thing needing refactoring is the implementation, not the API... | ||
lizmat | but like we don't want anything in 6mas Perl 6 that will cause trouble in the future | ||
19:57
rindolf left
|
|||
tony-o | what are the flaws that are in CURL lizmat ? | 19:57 | |
lizmat | we don't want to start installing moduled in such a way now that will cause a lot of (remote) problems in the future either | ||
nine | tony-o: but who is going to decide which of the candidates to pick? Isn't that CURLF's job? | 19:58 | |
tony-o | i don't mind refactoring a large portion of all of it.. | ||
lizmat | maybe I should write a blog post about this | ||
tony-o | nine: i'd argue that the CUR's job is to provide information about what is available and the module loader to pick one if there are many | ||
jdv79 | curl may need more vision and less vaguery | 19:59 | |
lizmat | what are the prerequisites of a CUR: | ||
jnthn | lizmat: That could help | ||
jdv79 | lizmat++ # on the grttin the convo started | 20:00 | |
jnthn senses this is an area he needs to look at somewhat | |||
jdv79 | *gettin | ||
lizmat | well, in a way it's the elephant in the room that nobody wanted to talk about | ||
jnthn | It's also kinda the elephant that I hoped I could delegate :P | ||
lizmat | now that the other elephants have left the room (NFG, NSA and GLR) | ||
jnthn: yes, you will | 20:01 | ||
jnthn | lizmat: Well, I want to follow the discussion well enough to understand what's going on :) | ||
lizmat | after having been on the road for ~ 8 weeks and not having had much quality programming time | ||
jnthn | Doesn't mean I want to write the code. Especially as tony-o++ also seems interesting in hacking on it :) | ||
timotimo | we can probably turn "parallelized hypers and junctions" to +/- on the features matrix by now, right? | ||
FROGGS | lizmat: why do you think nobody wants to talk about CURs? | ||
lizmat | I'm finally getting into the flow again :-) | ||
FROGGS | lizmat: I mean, we brought in a better shape just lately, in order to improve it | 20:02 | |
lizmat | FROGGS: *you* did that :-) | ||
and I'm trying to muster up the courage to start working on it again | |||
20:02
pierrot joined
|
|||
FROGGS | I can also look into it again | 20:02 | |
lizmat | FROGGS: wrt to nobody talking about it: it's more nobody wants to make decisions about it | 20:03 | |
20:03
pierrot is now known as Guest84393
|
|||
FROGGS | that discussion about how broken it is makes me feel that I don't even know it | 20:03 | |
jdv79 | what are the blockers? | ||
20:03
Guest84393 left
|
|||
FROGGS | jdv79: I just know one: slowness | 20:03 | |
lizmat | as far as I understand now, TimToady doesn't really care about how it happens | ||
FROGGS | if you install 200+ modules, your startup time grows to at least 5s | ||
tony-o | yea i'm more than happy to fix it or even come up with what it should look like, i just need to know where i should start | ||
jdv79 | lizmat: sounds like you are it then:) | 20:04 | |
tony-o | if it's a total design/write, i can do that too | ||
lizmat | ok, let me try to outline the design I have in mind in a gist | ||
give me an hour or so to write that down, ok | 20:05 | ||
20:05
pierrot_ joined
|
|||
jdv79 | woohoo | 20:05 | |
FROGGS | tony-o: that is certainly not needed | ||
tony-o | roger that | ||
lizmat | .oO( should have done that a long time ago, but I guess some things need to ripen) |
||
jnthn can put on this pumpkin-shaped hat if any decisions need his input to make :) | |||
lizmat | jnthn: that would be cool | 20:06 | |
20:06
quester-temp left
|
|||
lizmat | meanwhile, having run some spectests in a row: it appears I got a few random flappers / hangers | 20:06 | |
jnthn hopes lizmat, FROGGS, and tony-o will find a way to collaborate on getitng us something nice. :) | |||
lizmat thinks that's entirely possble! :-) | |||
20:06
pierrot_ is now known as pierrot
|
|||
jnthn | lizmat: What're you seeing? | 20:06 | |
FROGGS | tony-o: IMO there are a few things to solve: 1) give CULF and install method 2) make it precomp 3) fix the slowdown (which is the problem what I probably know best atm) | 20:07 | |
lizmat | repeatable; | ||
$ perl6 t/spec/S28-named-variables/slangs.t | |||
1..6 | |||
Cannot make a Block object using .new | |||
FROGGS | though, I need jnthntime for #3 | ||
20:07
TEttinger joined
|
|||
lizmat | $ perl6 t/spec/S06-signature/defaults.t | 20:07 | |
===SORRY!=== Error while compiling t/spec/S06-signature/defaults.t | |||
Type 'Hash' is not declared | |||
jnthn | I...what?! | 20:08 | |
lizmat | t/spec/S17-supply/syntax.t hung | ||
jnthn | Sounds like the compiler is doing Hash :P | ||
FROGGS | weird compiler is weird | ||
jnthn | lizmat: Odd, defaults.t works fine here | 20:09 | |
Lemme pull latest | |||
I get the slangs.t one | |||
lizmat: You did re-configure recently, yes? | 20:10 | ||
lizmat | yup | ||
recompiled moar and nqp | |||
jnthn | OK, odd | ||
lizmat | I will nuke install and start from scratch to make sure | 20:11 | |
jnthn | m: $~MAIN | 20:13 | |
camelia | rakudo-moar 5f5cfc: OUTPUT«Cannot make a Block object using .new in block <unit> at /tmp/J2rQZIHdBU:1» | ||
jnthn | There's a golf... | ||
FROGGS | m: $~TDI | 20:14 | |
camelia | rakudo-moar 5f5cfc: OUTPUT«Cannot make a Block object using .new in block <unit> at /tmp/aR65qPwoI9:1» | ||
FROGGS | now it's a golf TDI | ||
tony-o | i have a golf wagen tdi | 20:15 | |
on the recall list | |||
jnthn | m: Slang.new | 20:16 | |
camelia | rakudo-moar 5f5cfc: OUTPUT«Cannot make a Block object using .new in block <unit> at /tmp/VFQ3rXaRf2:1» | ||
20:16
diana_olhovik joined
|
|||
jnthn | What on earth... | 20:17 | |
FROGGS | I have no car, so I've got other problems :o) | ||
RabidGravy | broked | ||
jdv79 | hmm? | 20:19 | |
jnthn | Will look more tomorrow...getting sleep now | 20:22 | |
'night | |||
tony-o | FROGGS: bike? i have a lot more of those than cars. i'm happy vw gave the epa the finger, though. | ||
20:23
_dolmen_ joined
|
|||
masak | wow, we've had Slang since Nov 2013... | 20:23 | |
FROGGS | tony-o: I've got no car anymore since I'm living about 1000m from $work | 20:24 | |
tony-o: everything is nearby, and I enjoy my bike more atm :o) | |||
20:24
diana_olhovik left
|
|||
hoelzro | this has probably been brought up already, but a cursory log search didn't find anything - did spectest get a lot slower recently? | 20:26 | |
20:26
xfix left
|
|||
lizmat | hoelzro: there's more tests... and settings compiling has gone up from 35 to 40 seconds for me | 20:27 | |
20:27
darutoko left
|
|||
lizmat | but I'm not sure that's because parsing got slower, or there's more to parse now | 20:27 | |
hoelzro | hmm | ||
lizmat | feels to me that all of the anonymous classes for Iterator could cause a compiling slowdown in settings | 20:28 | |
20:28
khw left
|
|||
lizmat | much more to look up / compose / resolve at compile time now | 20:28 | |
nine | lizmat: my feeling is that parsing got slower as code was added | ||
Also it's not that much slower | |||
lizmat | 35 -> 40 is ~ 15% | 20:29 | |
hoelzro | make spectest has been running for an hour on my machine =/ | ||
nine | .tell jnthn the Slang.new failure started appearing in the range 94bc1a9..65129cf | ||
yoleaux | nine: I'll pass your message to jnthn. | ||
hoelzro | I haven't seen that since parrot times | ||
lizmat | hoelzro: then something is hanging | ||
FROGGS | hoelzro: so it hangs, no? | ||
hoelzro | well, I just killed the socket async test | ||
I don't know how long that was hanging | |||
lizmat | do a ps, grep on moar and kill all the higher numbered processes :-) | 20:30 | |
nine | I thought we could just do ctrl+c now? | ||
hoelzro | the test speed seems to be ok now | ||
lizmat | or press CONTROL-C now ? | ||
hoelzro | oh, you can? great! | ||
I always hated doing that by mistake and killing the whole run | |||
nine | I seem to remember a commit about that yesterday | ||
hoelzro | yay | 20:31 | |
hoelzro has not been as involved as he would like since the SPW | |||
lizmat | yeah, ShimmerFairy ++ | ||
hoelzro | ShimmerFairy++ | ||
bad combination of MGS5 + Stein's Gate + Japan prep | |||
20:34
mr_ron left
20:36
pat_js left
|
|||
jdv79 | the build and testing timing concerns remind me of $ex-work's 1/2 test syite time and our, mostly failing, attempts at "fixing" that. | 20:41 | |
*1/2 hour | |||
lizmat | well, I guess with less than 4 minutes, we're not doing to bad then ? | 20:42 | |
jdv79 | ha | ||
lizmat | ( 207 seconds with TEST_JOBS=10 on my machine) | ||
jdv79 | its only a matter of time:) | 20:43 | |
FROGGS | though I dont see why we add complexity there for a 8s speedup (if I remembered it correctly) | 20:44 | |
lizmat | it's more about fans not switching off :-) | ||
and the complexity is not during the running of the test... just a little bit before starting testing | 20:45 | ||
nine | .tell jnthn or...not. When I checkout 94bc1a9 and rebuild nqp/Moar I still get "Method 'new' not found for invocant of class '$?CLASS'". But with rakudo from this afternoon it worked. | ||
yoleaux | nine: I'll pass your message to jnthn. | ||
lizmat | nine: feels more like a Moar change issue? | 20:46 | |
FROGGS | lizmat: yes, I understand it is just about preparing the test files beforehand | ||
nine | lizmat: that'd be my guess. That's why I'm so surprised by getting an error with an older nqp/Moar | ||
lizmat | ah... ok :-) I thought you just reverted rakudo, not nqp / moar as well | 20:47 | |
jdv79 | at least its only complexity and not complication | ||
RabidGravy | man at my previous work the tests took two and a half hours | ||
jdv79 | ew | ||
testing hard fail | |||
lizmat | fwiw, I run spectests many times a day... typically before any commit that I do | 20:48 | |
FROGGS | same here | ||
RabidGravy | well 90% coverage over 250,000 lines of code with database build and tear down, quite quick really ;-) | ||
20:48
dnmfarrell left
|
|||
FROGGS | gnight #perl6 | 20:51 | |
20:51
FROGGS left
|
|||
[Coke] | nite | 20:52 | |
jdv79 | RabidGravy: i can sympathize though. its a real problem. | ||
[Coke]: cya | 20:53 | ||
oh, nm | |||
20:57
espadrine joined
|
|||
[Coke] | ;) | 20:58 | |
I'm about to commute, though, so I'll take it. | |||
lizmat | work on CURLI description so far: gist.github.com/lizmat/f3807956c354c14902a3 | 21:07 | |
comments welcome | |||
21:10
skids left
|
|||
hoelzro wipes some sweat from his brow | 21:10 | ||
.tell FROGGS that S26 example you posted that looked buggy is fine; you need a whitespace between '#|' and your comment | 21:11 | ||
yoleaux | hoelzro: I'll pass your message to FROGGS. | ||
lizmat | *phew* :) | ||
hoelzro | which almost makes me think that '#|my comment' should warn the user or something | ||
lizmat: I always have a small panic when S26 stuff is broken =) | |||
lizmat | Know the feeling, but for other S-es :-) | 21:12 | |
hoelzro | hehe | ||
21:21
_dolmen_ left
21:25
adu left
21:26
kjk left
21:30
tokuhiro_ joined
21:35
tokuhiro_ left,
uberbaud joined
21:40
cognominal left
21:42
uberbaud left
|
|||
lizmat | jnthn: how would you call the ID by which rakudo recognizes "its" precomped files ? | 21:45 | |
21:45
uberbaud joined
21:49
mullagainn left,
araujo_ joined
21:52
araujo left
|
|||
lizmat updated gist.github.com/lizmat/f3807956c354c14902a3 | 21:55 | ||
tony-o: any comments so far? ^^^ | 21:56 | ||
21:57
pmurias left
|
|||
ShimmerFairy | hoelzro: I ran into IO::Socket::Async 's test hanging yesterday (and didn't notice until the very end), so I added the trap => 1 option to the harness so ^C still prints a summary for however much happened :) | 21:59 | |
22:06
uberbaud left
22:07
uberbaud joined
22:13
sufrostico left
22:14
uberbaud left
22:19
uberbaud joined
22:25
skids joined
22:32
ponbiki left
|
|||
dalek | ecs: 4b6d27a | TimToady++ | S0 (2 files): Start documenting one-arg slurpies |
22:35 | |
lizmat | final update of CURLI writeup for today: gist.github.com/lizmat/f3807956c354c14902a3 | 22:39 | |
timotimo | o/ | 22:40 | |
ShimmerFairy | TimToady: yesterday I found that constant &bar = &foo is enough to create a 'synonym' like I've talked about before (including defining multis on either and having them available to both). Would constant &infix:<(elem)> = &infix:<∈> be sufficient for that sort of thing, or are there reasons to want a separate 'synonym' concept? | ||
lizmat | .tell tony-o please read gist.github.com/lizmat/f3807956c354c14902a3 for first stab at CURLI revival | ||
yoleaux | lizmat: I'll pass your message to tony-o. | ||
lizmat | .tell FROGGS please read gist.github.com/lizmat/f3807956c354c14902a3 for first stab at CURLI revival | ||
yoleaux | lizmat: I'll pass your message to FROGGS. | ||
lizmat | .tell jnthn please read gist.github.com/lizmat/f3807956c354c14902a3 for first stab at CURLI revival | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
22:41
ponbiki joined
|
|||
ShimmerFairy | lizmat: "S11 / S22 describe an API" immediately makes me think there should be an S32::CUR doc or something :) | 22:42 | |
22:42
ponbiki is now known as Guest40225
|
|||
lizmat | perhaps this gist is a start of that :-) | 22:42 | |
22:42
BenGoldberg joined
|
|||
dalek | kudo-star-daily: 8b22370 | coke++ | log/ (9 files): today (automated commit) |
22:44 | |
rl6-roast-data: bf53de7 | coke++ | / (9 files): today (automated commit) |
|||
22:46
kanishka joined
|
|||
lizmat | good night, #perl6! | 22:46 | |
ShimmerFairy | ♞ lizmat o/ | ||
BenGoldberg | Hellow and good evening. | ||
dalek | kudo/nom: de8024d | TimToady++ | src/ (3 files): implement definite return of values |
22:51 | |
ast: 815bd50 | TimToady++ | S (2 files): definite return of values implemented |
|||
22:53
sufrostico joined
22:59
dnmfarrell joined
|
|||
dnmfarrell | *is not a robot* | 23:00 | |
tony-o | .tell lizmat does this mean that i'm open to putting whatever i want in a CURLI manifest file? how does CURLF store information about multiple modules with :auth and :ver? how do i handle *not* being able to write to a precomp directory, is that a total failure for installing the module? this doesn't seem to imply that a CURLF and CURLI should have the same interface, does the loader behave differently depending on which on | 23:09 | |
yoleaux | tony-o: I'll pass your message to lizmat. | ||
22:40Z <lizmat> tony-o: please read gist.github.com/lizmat/f3807956c354c14902a3 for first stab at CURLI revival | |||
tony-o | i should maybe gist that | ||
ShimmerFairy | tony-o: as I understand it, CURLF should be seen as really just for things like perl6 -Ilib testing_my_module.p6 | 23:10 | |
.tell lizmat left a comment on your gist, hope it helps! :) | 23:11 | ||
yoleaux | ShimmerFairy: I'll pass your message to lizmat. | ||
tony-o | ShimmerFairy: i'm not into guessing, i want to fix CURLI. If i need to fix CURLF too then i will. I've been digging around in CURL{I|F} and asking a lot of questions about it for more than a year and a project i was working on is now dead until CURLI is fixed. I'm willing to contribute to fix the issue but we're under the consensus that CURLs need to change and we're trying to hammer out how. CURLF is useful on a bigger sc | 23:15 | |
ShimmerFairy | tony-o: well, lizmat++'s gist pretty much says that CURLF doesn't do the auth/ver stuff, and that it's more for development purposes. | 23:16 | |
23:17
mr_ron joined
|
|||
tony-o | it really doesn't say that but thank you for your opinion. | 23:19 | |
explicitly not addressing something doesn't mean the opposite is true. | |||
23:21
mattprelude joined,
spider-mario left
|
|||
ShimmerFairy | tony-o: have you not read this section? gist.github.com/lizmat/f3807956c35...le1-txt-L9 | 23:21 | |
> It is basically just a frontend to the module loader that supports Perl 5 like module loading semantics (aka, without any from / auth / version support) | 23:22 | ||
> A CURLF is intended for a development situation, *not* for a production environment | |||
tony-o | i have. it's dumb to knee cap ourselves out of the gate. | ||
ShimmerFairy | What I've said is how I've interpreted that section, particularly what I quoted :) | 23:23 | |
tony-o | worse is the pandering | ||
ShimmerFairy | tony-o: well, you may disagree with the current definition of CURLF, but then why did you claim the gist wasn't saying what it is? | ||
dalek | ast: 383e161 | TimToady++ | S06-signature/definite-return.t: unfudge, more tests for definite return |
23:24 | |
ShimmerFairy | (are we just interpreting that section differently?) | 23:25 | |
tony-o | did you read the response full SF? i replied to lizmat's gist with the full thing spelled out. | ||
fully^ | |||
23:26
CurtisOvidPoe left
|
|||
ShimmerFairy | tony-o: your messages got cutoff, both when you did .tell lizmat and when you started with "i'm not into guessing, i want to fix CURLI..." | 23:27 | |
so I'm not sure I got to see everything you said :( | 23:28 | ||
tony-o | gotcha, i went back and read it and understood | ||
23:28
sufrostico left
|
|||
ShimmerFairy | tony-o: for the record, I do think CURLFs would be slightly more useful if they understood the provides section in META6.info, just so you don't have to set up the old filesystem-based layout for testing via -Ilib and such :) | 23:29 | |
23:30
Guest40225 is now known as ponbiki
23:31
adu joined,
tokuhiro_ joined
|
|||
dalek | ast: 7eb5190 | TimToady++ | S06-signature/definite-return.t: test definite return of booleans, named constnts |
23:31 | |
TimToady | m: sub foo(--> pi) {}; say foo | 23:32 | |
camelia | rakudo-moar de8024: OUTPUT«3.14159265358979» | ||
ShimmerFairy | TimToady: this is unrelated to --> Foo:D , right? (or does it mean 'definite' in that way too?) | ||
TimToady | no, Foo:D is not definite | 23:33 | |
it's just a test of it | |||
ShimmerFairy | Yeah, I figured you didn't mean .DEFINITE too, just wanted to make sure :) | ||
TimToady | m: sub foo(--> pi) { return 3 }; say foo | ||
camelia | rakudo-moar de8024: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dKR9wGCGjzNo return arguments allowed when return value 3.14159265358979e0 is already specified in the signatureat /tmp/dKR9wGCGjz:1------> 3sub foo(--> pi) { return 3 7⏏5}; say foo» | ||
TimToady | it is that meaning of definite | 23:34 | |
m: say Int:D.DEFINITE | |||
camelia | rakudo-moar de8024: OUTPUT«False» | ||
TimToady | though actually it's using nqp::isconcrete internally | ||
ShimmerFairy | oh, derp. I'm confusing the smileys for what they ask for it seems :) | ||
m: sub foo (--> Int:D) { Int }; say foo # this is still NYI then, just to provide a clear example of what I'm saying | 23:35 | ||
camelia | rakudo-moar de8024: OUTPUT«(Int)» | ||
23:35
tokuhiro_ left
|
|||
TimToady | yeah, looks like :D isn't checked there | 23:36 | |
ShimmerFairy | (And of course Int:U too) | ||
TimToady | m: -> --> 42 {}().say | 23:38 | |
camelia | rakudo-moar de8024: OUTPUT«42» | ||
TimToady | could use a bunch more tests there, we don't test lambdas or methods yet | ||
m: class Foo { method foo(--> 42) {}}; Foo.new.foo.say | 23:39 | ||
camelia | rakudo-moar de8024: OUTPUT«42» | ||
TimToady | whew! | ||
m: say grep -> $x --> False { say $x }, 1..10 | 23:41 | ||
camelia | rakudo-moar de8024: OUTPUT«12345678910()» | ||
ShimmerFairy | TimToady: what's the rationale for definite return? It seems pretty silly for these "glorified constant" examples, but I'm assuming something like sub do-foo-for-sure(--> True) { ... } (where the hypothetical base do-foo returns a Bool indicating if it actually did something)? | ||
TimToady | it's part of the contract | ||
m: sub foo(--> pi) { return 3 }; say &foo.signature | 23:42 | ||
camelia | rakudo-moar de8024: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vODWXr0eprNo return arguments allowed when return value 3.14159265358979e0 is already specified in the signatureat /tmp/vODWXr0epr:1------> 3sub foo(--> pi) { return 3 7⏏5}; say &foo.signature» | ||
TimToady | m: sub foo(--> pi) { return}; say &foo.signature | ||
camelia | rakudo-moar de8024: OUTPUT«( --> 3.14159265358979e0)» | ||
TimToady | from the standpoint of multiple dispatch and binding, putting the return into the signature makes little sense, but from a dataflow contract perspective, it's treating the inputs and outputs equally | 23:43 | |
ShimmerFairy | Sure, I think that's fair :) | 23:44 | |
TimToady: looks like you can't do sub foo(--> pi) { return $*INDIANA ?? 3.2 !! Nil } to conditionally break a return in this case, though I'm not sure if you'd ever want that. (I just chose Nil 'cos it seemed like a possible way of saying "return nothing") | 23:47 | ||
pierrot | When a proper book about Perl 6 well be published? | 23:48 | |
yoleaux | 1 Sep 2015 22:46Z <raiph> pierrot: irclog.perlgeek.de/perl6/2015-09-01#i_11155377 is wrong. One must use a `?` or `!` for an assertion, eg `<?{...}>` is an assertion -- note the `?`. (I was right that `<{...}>` inserts the ... as a subrule.) (A plain `{...}` just tells P6 to do regular code (eg the debugging `say` that I used in irclog.perlgeek.de/perl6/2 | ||
TimToady | m: sub foo(--> pi) { fail 3 }; .way without foo | 23:55 | |
camelia | rakudo-moar de8024: OUTPUT«3 in sub foo at /tmp/YTQgf3AxjO:1 in block <unit> at /tmp/YTQgf3AxjO:1Actually thrown at: in any at gen/moar/m-Metamodel.nqp:2869 in block <unit> at /tmp/YTQgf3AxjO:1» | ||
TimToady | m: sub foo(--> pi) { fail 3 }; .say without foo | ||
camelia | rakudo-moar de8024: OUTPUT«3 in sub foo at /tmp/sjoKqerDwu:1 in block <unit> at /tmp/sjoKqerDwu:1» | ||
23:55
captain-adequate left
|
|||
TimToady | m: say $~MAIN # this seems like a recent breakage that I don't think is my fault, but maybe it is | 23:57 | |
camelia | rakudo-moar de8024: OUTPUT«You cannot create an instance of this type in block <unit> at /tmp/m_XjX5Trdt:1» | ||
dalek | kudo/nom: 0024b0a | TimToady++ | src/core/ (6 files): definite dogfood |
23:59 |