babydrop | m: use nqp; class Z { method z (Mu \SELF:) { dd [ nqp::iscont(SELF), nqp::iscont(self) ] } }; my $z = Z.new; $z.z | 00:43 | |
camelia | rakudo-moar 0c75e5: OUTPUT«[1, 0]» | ||
babydrop | Is there any case where self would be nqp::iscont()? I see nqp::decont(self) in Mu.clone which I think isn't needed, based on the above | ||
dalek | rakudo/nom: 9a161fa | (Zoffix Znet)++ | src/core/Mu.pm: | 01:36 | |
rakudo/nom: Prevent Mu.clone from incorrectly marking all attrs as inited | |||
rakudo/nom: | |||
rakudo/nom: Fixes RT#130271: rt.perl.org/Ticket/Display.html?id=130271 | |||
rakudo/nom: | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130271 | ||
dalek | rakudo/nom: Using nqp::getattr() or nqp::bindattr() on an attribute makes | ||
rakudo/nom: nqp::attrinited return true. This made cloned Baggies lose their | |||
rakudo/nom: .WHICH value, since its method uses nqp::attrinted to decide whether | |||
rakudo/nom: to give its $!WHICH attribute. And in the ticket we have a cloned | |||
rakudo/nom: Baggy, since the infix:<but> operator clones under the hood. And | |||
rakudo/nom: this is the reason for the error in the ticket, since the .WHICH value | |||
rakudo/nom: is unboxed into a native str at one point. | |||
rakudo/nom: | |||
rakudo/nom: Fix by checking whether an attribute is nqp::attrinted before to | |||
babydrop | rakudo/nom: decide whether to call getattr/bindattr. | 01:37 | |
review: github.com/rakudo/rakudo/commit/9a...d97ba81a50 | |||
dalek | ast: ebfab26 | (Zoffix Znet)++ | S02-types/WHICH.t: Test cloned Baggies have defined WHICH RT#130271: rt.perl.org/Ticket/Display.html?id=130271 Rakudo fix: github.com/rakudo/rakudo/commit/9a161fa0c92ea7 |
01:38 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130271 | ||
babydrop | samcv: BTW, to get a commit bit for rakudo, one has to sign the CLA and (e)mail it to The Perl Foundation: www.perlfoundation.org/contributor_..._agreement | 01:57 | |
samcv: just mentioning it, 'cause it took me months to find out that was a requirement :P | |||
samcv | ah | ||
but why don't other pull requests make you agree? | 01:58 | ||
babydrop | No idea. | 01:59 | |
dalek | kudo/nom: f9d34a9 | (Fernando Correa de Oliveira)++ | src/core/Int.pm: Fix UInt not smartmatching undefined Int |
02:04 | |
kudo/nom: d21d8ab | (Zoffix Znet)++ | src/core/Int.pm: Merge pull request #947 from FCO/uint-match-unsigned-int Fix UInt not smartmatching undefined Int |
|||
ast: c506ea5 | (Fernando Correa de Oliveira)++ | S32-num/int.t: Add test for smatmatch UInt with undefined Int (#194) |
|||
samcv | babydrop, the Linguist repo makes you do such a thing | 02:10 | |
for people who have not gotten a pull accepted before | |||
it's one of the checks | |||
wait did you actually have to mail it there | 02:11 | ||
babydrop | samcv: I'm pretty sure email is fine. When I mailed mine, I somehow managed to mail it to the wrong address and it got returned to me and then lizmat hooked me up with a contact whom I just emailed a digital version | 02:12 | |
samcv | ah | 02:13 | |
would we want to have somebody look at the CLA ( could be on our project they read it) and click accept? | |||
babydrop | Just for PRs? | ||
samcv | yeah. or nobody cares? lol | 02:14 | |
babydrop | I rather not add barriers to contribution. | ||
samcv | yeah. i thought that too | ||
it wasn't the easiest. it just said "1 check failed" or whatever when you hadn't signed it | |||
though courts have said that if you contribute source code, and they have a license it implies that you are submitting the code under that license unless you specify otherwise. | 02:15 | ||
babydrop | Makes sense. | 02:16 | |
geekosaur | ...courts where though? | 02:21 | |
samcv | oh USA i think? | 02:41 | |
maybe others. not sure | |||
kalkin- | who do I have to please to get github.com/rakudo/rakudo/pull/948 merged? (It passed all checks) | 04:06 | |
:) | 04:07 | ||
samcv | kalkin-, readline is initialized here already github.com/kalkin/rakudo/blob/9043...EPL.pm#L58 | 05:51 | |
does it work if you remove that line? | 05:52 | ||
actually hold on. just don't initialize readline inside that method | |||
> my $read = $Readline.new; that will make it lexical | |||
will be a nice feature to have | 05:53 | ||
kalkin-, also see how it loads github.com/kalkin/rakudo/blob/9043...EPL.pm#L60 files here | |||
make sure it doesn't read the history until after this | 05:54 | ||
nine | samcv: I emailed my CLA, too. If you don't get a reply in a reasonable time, Coke++ can help. | 07:58 | |
samcv | oh i didn't fill out a CLA yet ;P | 07:59 | |
but will remember for in the future | |||
brrt | btw, nine, i've resolved the issue with rakudo building on even-moar-jit | ||
thanks for pointing it out :-) | 08:00 | ||
nine | brrt++ | 08:03 | |
dalek | kudo/nom: e9ce28a | samcv++ | src/core/io_operators.pm: Make routines say, note and put 25% faster to stdout |
08:16 | |
kudo/nom: 99f04e0 | niner++ | src/core/io_operators.pm: Merge pull request #949 from samcv/say Make routines say, note and put 25% faster to stdout. |
|||
nine | lizmat: this ^^^ looks like something our static optimizer may be able to do automatically | 08:21 | |
[Tux] | This is Rakudo version 2016.11-194-gd21d8abbd built on MoarVM version 2016.11-44-g8e24145d | 08:26 | |
csv-ip5xs 3.205 | |||
test 14.206 | |||
test-t 6.335 | |||
csv-parser 14.092 | |||
dalek | nqp: 7fed81d | samcv++ | src/HLL/Grammar.nqp: | 09:02 | |
nqp: Add four new pairs of matched delimiters brackets/parens (#330) | |||
nqp: | |||
nqp: These are the only four pairs in Unicode that we don't have | |||
nqp: added. | |||
lizmat | samcv++ # good catch on say and friends! | 10:06 | |
jnthn is a bit surprised it makes such a difference | 10:08 | ||
The static optimizer should be able to lower such a lexical to a local at some point, though | |||
Oh, I bet I can guess why it was costly... It probably created a nativeref 'cus it can't prove statically that .print doesn't want an "is rw" thing | 10:10 | ||
And spesh can't strip them out in that case yet either | |||
timotimo | yup, native refs are a big reason our code isn't optimal | 10:12 | |
... IMHO | |||
jnthn | Yes, I need to spend a good chunk of time on spesh at some point | 10:14 | |
But I'm so burried in concurrency stuff it's hard to find the itme. | 10:15 | ||
*time | |||
dalek | kudo/nom: 64b5c2f | samcv++ | src/core/Cool.pm: Make uniprop return Bool or Str, also make it 15% faster and fix… a bug in MoarVM where canonical Unicode shortnames return the incorrect property. It is 15% faster now, and adds these two fixes as well. |
10:16 | |
kudo/nom: 71821dd | samcv++ | / (2 files): Add the script used to generate the uniprop code. Also make a comment saying the code was generated and where to find the file that generated it. 9043f58 | (Bahtiar `kalkin-` Gadimov)++ | src/core/REPL.pm: Add Historyfile support for Readline |
|||
kudo/nom: 1582e93 | lizmat++ | src/core/REPL.pm: Merge pull request #948 from kalkin/readline-history Add Historyfile support for Readline |
|||
rakudo/nom: 8965145 | samcv++ | tools/build/NQP_REVISION: | |||
rakudo/nom: Bump nqp: Add 4 new sets of matching brackets | |||
rakudo/nom: | |||
rakudo/nom: For use in q [], #`[ and other things such as this. | |||
rakudo/nom: | |||
timotimo | to be honest, it'd probably be worth more in the medium term to fix that nativeref problem in our static optimizer | 10:18 | |
jnthn | We can't. | ||
Methods are late bound. | 10:19 | ||
We can handle more cases than we do today of course, but the general case needs handling in spesh | 10:20 | ||
timotimo | oh | ||
of course | |||
arnsholt | And statically proving anything about $*ERR doesn't sound too plausible to me | ||
timotimo | we do have the same problem with operators, though | ||
makes native ints and such not very fun to use | |||
jnthn | True. Question is if we really want to maintain such an opt twice :) | ||
Well, we static inline a bunch of operators | |||
And get away with it on those | 10:21 | ||
timotimo | are we going to turn rakudo into javac? ;) | 10:22 | |
jnthn | What, does very few opts and leaves them to the VM? | 10:23 | |
timotimo | right | 10:24 | |
jnthn | It's an interesting question. For very short-lived scripts, it's usually a waste of time. | ||
samcv | thanks lizmat | ||
timotimo | so only turn on the optimizer for the core setting, then ;) | ||
jnthn | Well, we have levels too. "We're pre-compiling this" could push it up a level. | 10:25 | |
Though that only really helps if you get to skip analyses too | |||
timotimo | aye. we'll likely want to put a few more level checks into the optimizer | 10:26 | |
dalek | ast: 425011c | lizmat++ | S15-unicode-information/uniprop.t: Unfudge now passing test, samcv++ |
10:36 | |
babydrop | say was 25% slower just 'cause it saved into a variable? 0.o | 11:06 | |
dalek | kudo/nom: f4479d2 | dogbert17++ | CREDITS: Added myself |
11:09 | |
kudo/nom: e25a708 | (Zoffix Znet)++ | CREDITS: Merge pull request #946 from dogbert17/update-credits Added myself |
|||
nine | So, hands up please! Merge lexical_module_load before the release, i.e. ~ today? | 11:11 | |
o/ | |||
babydrop | +1 | ||
jnthn | Umm | 11:13 | |
Surely immediately *after* a release is more sensible? | |||
lizmat | I think we already skipped 2 releases where we could have done that | 11:14 | |
if we say now: immediately merge after the next release, I can live with that also | 11:15 | ||
jnthn | Yes, but this time we've got (a) data showing the impact, and (b) it's documented | ||
lizmat | but please let's not skip another one :-) | ||
jnthn | Yes, I can very easily agree with "merge right after next release" | ||
lizmat | 👍 | 11:16 | |
jnthn | Full +1 on that. I'm just a tad more wary on sneaking it in 4-5 days beforehand. | ||
nine | I'd be fine with right after the release, too. The "before release" plan certainly provoked responses faster though ;) | 11:17 | |
Also now that emmentaler is up and running again, we should use it more extensively. Thinking about jnthn++'s release plan from January. | 11:18 | ||
jnthn | Yes, we really should take advantage of that better to catch ecosystem-breaking changes sooner. | 11:19 | |
And perhaps even start doing the automatic release branch thing I proposed. | |||
(Where we use an automated process of spectest + selected module smoke pass = fast-foward branch we relesae from) | 11:20 | ||
babydrop | Is that proposal written down somewhere I could read the details? | 11:33 | |
.oO( we need a place for RFCs.... ) |
11:35 | ||
jnthn | babydrop: github.com/rakudo/rakudo/blob/nom/...ersions.md | 11:36 | |
babydrop | .oO( we have a place for RFCs.... ) |
||
thanks | |||
Well, with that naming scheme I just can see myself doing a checkout for a quick fix and accidentally forgetting to switch branches and ending up pushing to master :/ | 11:39 | ||
dalek | kudo/nom: e1d92e5 | (Zoffix Znet)++ | docs/language_versions.md: Fix typo |
11:41 | |
babydrop | And I guess most PRs will be made off master and not nom and requested to be merged to master and not nom? | 11:43 | |
babydrop isn't sure how that's works outs | |||
jnthn | Hm | ||
I think github may have some branch-level protection at these days? | 11:44 | ||
help.github.com/articles/about-bra...trictions/ | |||
timotimo | we can make an orphaned master branch with only a single commit that says "this isn't the branch you're looking for" | ||
jnthn | We could leave nom as the default | 11:45 | |
timotimo | then pushing will basically always tell you it's not a fast-forward | ||
oh, wait | |||
we're talking about making master only pushable by the automated thing | |||
jnthn | Right | ||
babydrop | But if I'm a random dude walking through decided to submit a fix, I'll just do it off master 'cause that's what everyone uses and I never heard of this `nom` | ||
jnthn | Right | ||
Yeah, we should probably then stick with not having a master. | |||
To avoid such confusion | 11:46 | ||
And call the release target one something else | |||
babydrop | +1 | ||
timotimo | release-target-one | ||
jnthn | At the time the doc was written, people using rakudobrew to obtain a Rakudo build was a more important use-case than it is now; now it seems we discourage that. | 11:47 | |
nine | But we already have a massively outdated master and there hasn't been a PR for master ever? | ||
jnthn | And people who want stability are pushed towards releases, packages, etc. Which is a good thing. | ||
nine: We don't have a master afaik | |||
Anyway, if there are users who want to be sort-of-bleeding-edge but not-so-rare-you-see-it-bleeds then I guess they can choose to track the release branch. | 11:49 | ||
nine | Oh, indeed. | ||
jnthn | I figure that will be an increasingly small group however. | ||
timotimo | we might have a master that's been created by accident | ||
i think i've done that once? | |||
nine | Seems like I have a master in my fork | 11:51 | |
jnthn goes to put a fork in his lunch :) | 11:57 | ||
arnsholt | jnthn: Is lunch return of revenge of the son of pulao mountain, or are you done with that now? =) | 11:58 | |
kalkin- | samcv: ohh i see, double initialization of my read | 11:59 | |
why did you guys merged it? should i make another pr fixing this? | |||
babydrop | kalkin-: if something's broken, yeah, please submit another PR fixing the issue. | 12:00 | |
kalkin- | babydrop: ok | 12:01 | |
nine | kalkin-: we usually operate in a "when in doubt, merge it" mode | 12:06 | |
kalkin- | i see | 12:07 | |
masak | we do? exactly how much doubt to we allow? :P | 12:11 | |
masak .oO( "I'm really not sure about this PR! let's merge it!" ) | |||
nine | "Wait, why would rakudo need to open an IRC connection and fork into background? And I have never read this account name. But the commit message explains that the patches just fix some indentation, so let's merge it!" | 12:13 | |
babydrop | Ummm... no, we don't? | 12:27 | |
babydrop doesn't want to start rumours that Perl 6 core devs will merge just any old thing | |||
lucasb | github.com/rakudo-acceptanything | 12:30 | |
babydrop | heh | ||
lizmat | m: my $a <== join(",") <== <a b c>; dd $a # this seems wrong ? | 12:33 | |
camelia | rakudo-moar e1d92e: OUTPUT«Array $a = $["a,b,c"]» | ||
lizmat | sorta expected to see "a,b,c" there ? | ||
psch | m: my $x <== 1; say $x | ||
camelia | rakudo-moar e1d92e: OUTPUT«[1]» | ||
psch | i always assumed feed operators to implictly always leave arrays behind | 12:34 | |
potentially lazy i wanna say, but i'm not sure about that | |||
kalkin- | Am I right that only rakudo/rakudo uses the nom branch as the current development branch while MoarVM/MoarVM and perl6/nqp use master branch? | ||
lizmat | kalkin-: yes | 12:35 | |
nine | kalkin-: correct | ||
lucasb | on nom nom | 12:36 | |
kalkin- | thanks | ||
pmurias | masak: isn't Angular 2 supposed to be faster? I have used only Angular 1 (and had performance problems with it) | 12:37 | |
pmurias meant to say that in #perl6 :( | 12:38 | ||
masak | pmurias: you switch channels for the Angular 2 discussion? | ||
ah :) | |||
please do. | |||
Woodi | m: my @a = |<| / - \ | / - \ > xx *; say @a[0]; say @a[0]; | 12:41 | |
camelia | rakudo-moar e1d92e: OUTPUT«||» | ||
Woodi | @a[0] do not shift Slip ? | ||
babydrop | What does that mean? | 12:44 | |
Why not use .rotate instead of that? | 12:45 | ||
Woodi | babydrop: it's another way, not circular but infinite! ;) | ||
babydrop | ummmmm | 12:46 | |
Well, don't let me stop you.. | |||
psch | that just wastes RAM, and you still need to either $++ or shift | ||
...if we can shift from lazy lists? | |||
Woodi | babydrop: and I should stil have that blogpost open, for closer reread :) | ||
psch | well, or overwrite AT-POS(0) of course vOv | 12:47 | |
that's probably gonna be perfectly fine and usable | |||
babydrop | I've no idea what blog post you mean :/ | ||
Woodi | psch: it is just short example, just put lazy there ? | ||
psch | Woodi: sure | ||
Woodi | m: my @b = |<| / - \ | / - \ > xx *; say shift @b; say shift @b; # shift shifts ? | 12:48 | |
camelia | rakudo-moar e1d92e: OUTPUT«|/» | ||
Woodi | but it is Slip, not Array... | ||
psch | m: my @b = |<| / - \ | / - \ > xx *; say @a.WHAT | 12:49 | |
camelia | rakudo-moar e1d92e: OUTPUT«===SORRY!=== Error while compiling <tmp>Variable '@a' is not declaredat <tmp>:1------> my @b = |<| / - \ | / - \ > xx *; say ⏏@a.WHAT» | ||
psch | m: my @b = |<| / - \ | / - \ > xx *; say @b.WHAT | ||
camelia | rakudo-moar e1d92e: OUTPUT«(Array)» | ||
psch | yeah | ||
Woodi is afk; Perl6 is hard. let's deliver some cakes for kids ;) | 12:50 | ||
jnthn | arnsholt: Thankfully, I finished that up by the end of last week. :-) | 13:01 | |
kalkin- | samcv: i fixed the double initialization of Readline you mentioned github.com/rakudo/rakudo/pull/951/...679435cf6b | 13:02 | |
MasterDuke_ | hopefully nobody minds if i ask about this again. i'm trying to get -n to codegen 'while ($_ := get()).DEFINITE { $code }' instead of 'for lines() { $code }' | 13:05 | |
dalek | kudo/nom: 0c6d142 | kalkin++ | src/core/REPL.pm: REPL fix readline double initialization |
||
kudo/nom: e296a14 | kalkin++ | CREDITS: Add myself to CREADITS file |
|||
kudo/nom: af2ff23 | niner++ | / (2 files): Merge pull request #951 from kalkin/readline-history REPL fix readline double initialization |
|||
babydrop doesn't mind but doesn't know the answer either :( | |||
MasterDuke_ | the AST i get looks reasonable, but depending on different tweaks to it, i get no output, or the error "Cannot call method 'sink' on a null object in block <unit> at -e line 1" | ||
here's a gist with some diffs gist.github.com/MasterDuke17/6e09e...2a0348ef7b | |||
kalkin- | ups typo | 13:07 | |
too late :) | |||
lizmat thinks it's creative :-)_ | 13:14 | ||
m: my @a = ^10; say -« @a # works fine | 13:18 | ||
camelia | rakudo-moar af2ff2: OUTPUT«[0 -1 -2 -3 -4 -5 -6 -7 -8 -9]» | ||
lizmat | m: my @a = ^10; say -<< @a # doesn't parse | ||
camelia | rakudo-moar af2ff2: OUTPUT«[0 -1 -2 -3 -4 -5 -6 -7 -8 -9]» | ||
lizmat | huh? | ||
oops, seen the error of my ways :-) | |||
babydrop | m: my @a = 0e0..9e0; say -« @a | 13:41 | |
camelia | rakudo-moar af2ff2: OUTPUT«[-0 -1 -2 -3 -4 -5 -6 -7 -8 -9]» | ||
babydrop | m: my @a = 0e0..9e0; dd -« @a | ||
camelia | rakudo-moar af2ff2: OUTPUT«[-0e0, -1e0, -2e0, -3e0, -4e0, -5e0, -6e0, -7e0, -8e0, -9e0]» | ||
babydrop | (good, negative zero works) | ||
A ton of failures in make j-test on nqp.... I guess I'm learning Java today. | 13:44 | ||
psch | babydrop: irclog.perlgeek.de/perl6-dev/2016-...i_13713553 and the next two or so pages will probably be helpful | 13:46 | |
babydrop: i'm assuming the contextual.t additions suffer from a similar problem, which is completely-different-codegen-architecture | 13:47 | ||
babydrop: so, yes, you probably have to learn some Java, but most of it is like in src/vm/jvm/QAST/Compiler.nqp | |||
*likely | |||
travis-ci | Rakudo build passed. Bahtiar `kalkin-` Gadimov 'Add Historyfile support for Readline' | 13:48 | |
travis-ci.org/kalkin/rakudo/builds/183241465 github.com/kalkin/rakudo/compare/1...43f5897a75 | |||
babydrop | ummm | ||
I don't undertstand any of it. | 13:49 | ||
I guess I'm too optimistic about my ability to fix those tests :) | |||
I just didn't want to fudge anything 3rd release in a row... | 13:50 | ||
psch | understandable, and maybe sufficient grounds to park r-j | ||
i mean, considering it's probably mostly new tests that test previously-assumed-correct behavior... | 13:51 | ||
babydrop | So would I release nqp with those failing tests unfudged or should I fudge them? | 13:52 | |
where by "fudge" I mean skipping them for both moarvm and jvm | |||
psch | i don't have a strong opinion on that, but it seems justifiable to not release nqp-j or r-j is what i wanted to say before | 13:53 | |
babydrop | OK. | ||
psch | like, it's new tests, but we should've been passing them all along | 13:54 | |
if people really want an nqp-j that we cannot confidently say fits notably relevant semantics -- like closure cloning and lexical references -- they probably can build it themselves | |||
and in turn take note of the failing tests | 13:55 | ||
but afaik releases should pass all the fudged tests, and it feels a bit weird to me at least to fudge tests that at time of release are only a few days old but pass on the other backend | |||
especially in nqp | |||
on the other hand that's previously been policy, so you could also fudge and release both | |||
as i said, i don't really have a strong opinion either way, and i'm sadly not capable of fixing anything in the lexrel and closure cloning area quickly | 13:56 | ||
babydrop | I think I'll fudge them just so if someone's packaging this downstream they don't stop and think there's some new breakage | 13:58 | |
pmurias suspects he should run make j-test more often to avoid failing tests on nqp-j | 13:59 | ||
psch | pmurias: honestly, i'm not sure. if they're passing on moar and nobody notices bad semantics it's better to have failing tests than no tests | 14:00 | |
pmurias: if you're fixing nqp-j in the process... well great, i've troubles getting into some of the deeper parts of the compiler | |||
pmurias | wouldn't fudging my having a list of tests that nqp-j fails rather then modifing tests on release and reverting that be saner? | 14:01 | |
s/my/by/ | 14:02 | ||
psch | well, sure, we can bring the fudger into nqp tests too | ||
but currently we're just straight running them through -exec nqp ... | |||
pmurias | I just meant having a list of whole test files that we fail | 14:03 | |
Woodi | hmm, Slip is just "kind of List that automatically flattens into an outer container" so what was that kind of list that do not keep used values ? Seq ? | 14:09 | |
babydrop | Woodi: FWIW, there are more users in #perl6 channel | 14:13 | |
Woodi | damn, wrong channel... sorry | 14:15 | |
pmurias | psch: 104-method-cache, 01-qast and serialization/01-basic fail? | 14:17 | |
lunch& | |||
babydrop | yeah, those look like the ones that fail to me: gist.github.com/zoffixznet/f4e1e1c...8defd3eb38 | 14:19 | |
psch | right | ||
01-qast is the one affected by the closure model differences | |||
babydrop | But I'm unsure what you mean by "make a list" of files that fail. To what end? To just keep them in a directory that's not tested on j-test? | 14:20 | |
psch | ah, 01-qast also has the bit where we don't look for the right boxing type for some reason | 14:23 | |
i don't remember offhand what's going on with the other two | |||
dogbert17_ | babydrop: I'm getting quite a few fails when running 'make spectest' normally. Is something up? | ||
babydrop | dogbert17_: what are the failures? | 14:24 | |
dogbert17_ | bizarre to say the least, I even nuked my rakuda install and started from scratch. Let me pu up a gist. | 14:25 | |
babydrop: gist.github.com/dogbert17/5916d833...06ac49e278 | 14:26 | ||
babydrop | Just one file fails? | 14:27 | |
dogbert17_ | babydrop: sry, was afk, no several failures | 14:36 | |
five or six files: t/spec/S17-promise/basic.t, t/spec/S17-supply/syntax.t, t/spec/S29-context/sleep.t, t/spec/S05-substitution/subst.rakudo.moar, t/spec/S16-io/handles-between-threads.rakudo.moar, t/spec/S17-promise/basic.t | 14:38 | ||
babydrop | No idea. Doesn't look like anything I could've broken :} | 14:40 | |
jnthn | dogbert17_: Still got extra debug checks turned on, perhaps? | 14:43 | |
pmurias | I'll look into those nqp-j failures | 14:48 | |
babydrop | pmurias++ | 14:49 | |
dalek | kudo/nom: e5e81e4 | (Zoffix Znet)++ | src/core/Rakudo/Internals/VMBackedDecoder.pm: Re-instate comment about why the `with` is in the code And expand on why it was removed/re-added |
14:51 | |
p: 069d9ea | (Pawel Murias)++ | t/qast/01-qast.t: [jvm] Add a takeclosure op needed for JVM's old closure handling. |
14:52 | ||
pmurias | when is nqp-j release planned? | 14:59 | |
babydrop | This Saturday. | 15:01 | |
NeuralAnomaly: status | |||
NeuralAnomaly | babydrop, [✘] Next release will be in 4 days and 14 hours. Since last release, there are 48 new still-open tickets (2 unreviewed and 0 blockers) and 28 unreviewed commits. See perl6.fail/release/stats for details | ||
dogbert17_ | jnthn: no, I started from scratch | 15:02 | |
dogbert17_ hopes he's made some stupid mistake | 15:03 | ||
MasterDuke_ | dogbert17_: pretty sure i've seen some failures in some of those files also | 15:05 | |
dogbert17_ | MasterDuke to the rescue :) | ||
bizarre: # Failed test 'huge values to sleep() work' | 15:06 | ||
# at /home/dogbert/repos/rakudo/t/spec/packages/Test/Util.pm (Test::Util) line 76 | |||
# got err: "Thread 3 bound to a hash key of an object (BOOTHash) allocated by thread 1\n at <unknown>:1 (./CORE.setting.moarvm:BIND-KEY)\n from SETTING::src/core/hash_slice.pm:12 | |||
babydrop | I'm not getting any failures in the entire stresstest. In fact the opposite: | 15:11 | |
t/spec/S17-procasync/kill.rakudo.moar (Wstat: 0 Tests: 9 Failed: 0) | |||
TODO passed: 9 | |||
Files=1204, Tests=130277, 139 wallclock secs (21.52 usr 3.56 sys + 2945.33 cusr 287.87 csys = 3258.28 CPU) | |||
Result: PASS | |||
dalek | kudo/nom: aa27d5c | (Zoffix Znet)++ | src/core/Date.pm: Make all Date constructors check validity of dates Fixes RT#130313: rt.perl.org/Ticket/Display.html?id=130313 |
15:13 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130313 | ||
dalek | ast: fecfa65 | (Zoffix Znet)++ | S32-temporal/Date.t: Test all Date contructors check validity of dates RT#130313: rt.perl.org/Ticket/Display.html?id=130313 Rakudo fix: github.com/rakudo/rakudo/commit/aa27d5ce94 |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130313 | ||
pmurias | babydrop: I'll try fixing the failures later today/tommorow, the don't look like they require a closure handling refactor or anything that serious | 15:18 | |
babydrop | cool | ||
lizmat | babydrop: are you sure you didn't break the subclassability of Date ? | ||
ah, read the commit wrong | 15:19 | ||
dogbert17_ | babydrop: it's very strange, for me the following code spits out lots of strange output: await ^30 .map: { start { S/.+/{$/.chars.print}/ given "abc"; } } | ||
m: await ^30 .map: { start { S/.+/{$/.chars.print}/ given "abc"; } } | |||
camelia | rakudo-moar e5e81e: OUTPUT«333333333333333333333333333333» | ||
dogbert17_ | odd | ||
lizmat | babydrop: but I do think you've severely slowed down Date.new(y,m,d) creation :-( | 15:20 | |
dogbert17_ | babydrop: if it's no to much trouble, are you close to your 32-bit dev machine? | 15:21 | |
ilmari | s: Range, 'in-range', \(Int, Str) | ||
SourceBaby | ilmari, Something's wrong: ERR: Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' (from 'gen/moar/main.nqp') at <unknown>:1 (/home/zoffix/services/sourceable/building-perl6/perl6.moarvm:<dependencies+deserialize>) | ||
lizmat | since that now has to go through the (much slower) named variant :-( | ||
babydrop | dogbert17_: it's kinda of "trouble" tho, beucase I don't use it to dev Perl 6. So any time you ask me for something I have to rebuild Perl 6 which takes ages. | 15:22 | |
ilmari resorts to ag | |||
dogbert17_ | babydrop: that's cool just wanted to check. will try with slightly older releases | 15:23 | |
babydrop | lizmat: it's slower just due to named args? | 15:24 | |
I see it's now 3 times slower :o | |||
lizmat | oh, yes | ||
babydrop makes changes | |||
lizmat | named parameters are *way* slower than positionals | ||
that's the whole point of not using BUILD in the core setting, but custom SET-SELF methods instead | 15:25 | ||
babydrop | s: Range, 'in-range', \(Int, Str) | 15:28 | |
SourceBaby | babydrop, Sauce is at github.com/rakudo/rakudo/blob/aa27...ge.pm#L629 | ||
babydrop | ilmari: you just caught it in the middle of building a new commit | ||
ilmari | ah | ||
jnthn | m: class C { method m($a, $b) { } }; C.m(1, 2) for ^100000; say now - INIT now | 15:30 | |
camelia | rakudo-moar e5e81e: OUTPUT«0.21150674» | ||
jnthn | m: class C { method m($a, $b) { } }; C.m(1, 2) for ^1000000; say now - INIT now | ||
camelia | rakudo-moar e5e81e: OUTPUT«2.0623987» | ||
jnthn | m: class C { method m(:$a!, :$b!) { } }; C.m(:1a, :2b) for ^1000000; say now - INIT now | 15:31 | |
camelia | rakudo-moar aa27d5: OUTPUT«2.0579070» | ||
jnthn | lizmat: Really? :) | ||
babydrop | m: class C { method m(:$a, :$b) { } }; C.m(:1a, :2b) for ^1000000; say now - INIT now | ||
camelia | rakudo-moar aa27d5: OUTPUT«2.22023755» | ||
lizmat | well, :$a! is essentially the same as a positional | ||
jnthn | Uh | 15:32 | |
No, it's passed as a named :) | |||
Spesh rewrites it into a positional | |||
But it does that in the optinal case too | |||
lizmat | well, as babydrop showed, it's clearly slower | ||
if you don't use ! | |||
jnthn | m: class C { method m($a?, $b?) { } }; C.m(1, 2) for ^1000000; say now - INIT now | ||
camelia | rakudo-moar aa27d5: OUTPUT«1.8460138» | ||
jnthn | huh, how come that one is a bunch faster... | 15:33 | |
m: class C { method m($a?, $b?) { } }; C.m(1, 2) for ^1000000; say now - INIT now | |||
camelia | rakudo-moar aa27d5: OUTPUT«2.10225324» | ||
jnthn | Oh, just noise :) | ||
ilmari | .oO( dumbbench? ) |
||
jnthn | I suspect that if it boils down to "if you don't use !" then it's not too much to do with nameds and much more to do with optional, anyways. | ||
m: say 100 * (2.05 / 2.22) | 15:34 | ||
camelia | rakudo-moar aa27d5: OUTPUT«92.342342» | ||
dalek | kudo/nom: 5556b3c | (Zoffix Znet)++ | src/core/Date.pm: Redo Date validation differently for performance The method implemented in aa27d5c made Date.new($y, $m, $d) run 3x slower. lizmat++ for noticing |
||
MasterDuke_ | jnthn: have you seen my AST question? | ||
jnthn | And even then we're talking 10% if those numbers are to believed. So I suspect there's a little more to the story (multi dispatch maybe?) than just nameds | 15:35 | |
MasterDuke_: No; link? | |||
MasterDuke_ | jnthn: gist.github.com/MasterDuke17/6e09e...2a0348ef7b | ||
i'm trying to get -n to codegen 'while ($_ := get()).DEFINITE { $code }' instead of 'for lines() { $code }' | 15:36 | ||
babydrop | m: class C { multi method m(Str $x) { }; multi method m($a, :$b) { }; multi method m(:$a, :$b) { } }; C.m(:1a, :2b) for ^1000000; say now - INIT now | ||
camelia | rakudo-moar aa27d5: OUTPUT«2.20618128» | ||
babydrop | weird | ||
oh | |||
m: class C { multi method m(Str $x) { }; multi method m($a, $b) { self.m(:$a, :$b) }; multi method m(:$a, :$b) { } }; C.m(1, 2) for ^1000000; say now - INIT now | |||
camelia | rakudo-moar aa27d5: OUTPUT«2.5596973» | 15:37 | |
babydrop | vOv | ||
perl6 -e 'Date.new(2015, 12, 25) for ^10_000; say now - INIT now runs in 0.13 and change and with the first patch that turned into 0.6 | |||
jnthn | MasterDuke_: The immediate cause is that a QAST while node doesn't evaluate to anything, but you're sinking it | 15:39 | |
Thus it produces a null to sink leading to the error | |||
But it's nowhere near that easy to do this | |||
Since the change breaks FIRST/NEXT/LAST phasers | 15:40 | ||
MasterDuke_ | interesting, how does it break them? | 15:41 | |
jnthn | The code-gen for while inserts stuff to make them work | ||
MasterDuke_ | ha, turtles all the way down? code-gen a code-gen for while? | 15:42 | |
jnthn | Well, maybe take a look at how while is implemented :) | ||
I think the needed bits may well just be facotred out into a sub you can call, thinking about it | |||
MasterDuke_ | tweak_loop? | ||
jnthn | Sounds plausible, yeah :) | 15:43 | |
MasterDuke_ | so that would unbreak the phasers, but then would it work to not sink the while? | 15:44 | |
just QAST::Want the while directly? | 15:45 | ||
jnthn | You don't even need the QAST::Want either | ||
MasterDuke_ | i can't test right now, but i believe that without the Want i didn't get the sink null error, but nothing got printed (for '-ne '.say' <file>) | 15:48 | |
jnthn | That'd be...odd | ||
(The QAST op 'while' doesn't do anything lazy) | 15:49 | ||
MasterDuke_ | i believe it took a while to run with a large file (as if it was actually reading it), but even a "say 'hi'" didn't do anything | 15:50 | |
dogbert17_ notices that the strange errors he's getting comes from MVM_cross_thread_write_check | |||
MasterDuke_ | jnthn: i'll play around with tweak_loop this evening, thanks for the help | 15:53 | |
jnthn | dogbert17_: Do you have MVM_CROSS_THREAD_WRITE_LOG in your environment somehow? | 15:59 | |
dogbert17_ | jnthn?+++ I have | 16:00 | |
so maybe my nonsense might be something after all then | 16:01 | ||
or is it a known fact that some tests suffer from cross thread writes? | 16:02 | ||
this code reliably reproduces it for me (stolen from a test file): await ^30 .map: { start { S/.+/{$/.chars.print}/ given "abc"; } } | 16:04 | ||
jnthn | dogbert17_: There are a number of totally benign ones | 16:06 | |
lizmat | m: my @a := 0 ... 200 # shouldn't / didn't this work before ? | ||
camelia | rakudo-moar 5556b3: OUTPUT«Type check failed in binding; expected Positional but got Seq ((0, 1, 2, 3, 4, 5, 6,...) in block <unit> at <tmp> line 1» | ||
jnthn | lizmat: Before the GLR | 16:07 | |
And no, shouldn't. | |||
lizmat | ok | ||
jnthn | Use assignment or .list or .cache or @(...) | ||
Or don't stick it in an @ thing :) | 16:08 | ||
Depending on what you're aiming at | |||
lizmat | m: my @a := 0, 1, { say $^a; $^a + 1 } ... 10 # correct this iterates on assignment ? | ||
camelia | rakudo-moar 5556b3: OUTPUT«123456789Type check failed in binding; expected Positional but got Seq ((0, 1, 2, 3, 4, 5, 6,...) in block <unit> at <tmp> line 1» | ||
lizmat | m: my @a = 0, 1, { say $^a; $^a + 1 } ... 10 # correct this iterates on assignment ? | ||
camelia | rakudo-moar 5556b3: OUTPUT«123456789» | ||
jnthn | Yes, becauae assignment is eager unless the thing being assigned is marked lazy | ||
And we discovered that sequences being lazy by default caused surprises. | 16:09 | ||
dalek | kudo/nom: 5558710 | (Zoffix Znet)++ | src/core/List.pm: Make .rotor on empty list return empty Seq The current version returns Rakudo::Internals.EmptyIterator, which appears to be something that's meant to be returned via .iterator method. Fix by returning ().Seq instead. Fixes RT#130283: rt.perl.org/Ticket/Display.html?id=130283 |
||
lizmat | aha, so my @a = "file".IO.lines *will* read the whole file nowadays | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130283 | ||
dalek | ast: 891568b | (Zoffix Znet)++ | S32-list/rotor.t: Test .rotor on empty list returns empty Seq RT#130283: rt.perl.org/Ticket/Display.html?id=130283 Rakudo fix: github.com/rakudo/rakudo/commit/5558710da6 |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130283 | ||
lizmat | babydrop: good catch | ||
jnthn | lizmat: Unless it's being marked lazy :) | ||
babydrop | tsk tsk, AlexDaniel. Very unprofessional ticket :) | ||
lizmat | I have been confused about the naming / use of EmptyIterator before | 16:10 | |
jnthn: yeah, got that now | |||
jnthn | You can force it with my @lines = lazy "foo".IO.lines; | ||
lizmat | yup | ||
I guess I still assumed per-GLR behaviour in that context | 16:11 | ||
*pre | |||
AlexDaniel | babydrop: and I'm not a proffesional bug reporter :) But I'll try better next time | ||
babydrop | :D | ||
dogbert17_ | jnthn: thx, you have saved me from early insanity :) | 16:15 | |
AlexDaniel | bisect: old=2015.11 class MyInt is Any is Int { } | 16:17 | |
bisectable6 | AlexDaniel, Bisecting by output (old=2015.11 new=5558710) because on both starting points the exit code is 1 | ||
AlexDaniel, bisect log: gist.github.com/3f4ef010db484d5171...a55adf91fd | |||
AlexDaniel, (2015-12-18) github.com/rakudo/rakudo/commit/c3...0403c8d6e7 | |||
AlexDaniel | bisect: say 255.base(16, -100) | 16:20 | |
bisectable6 | AlexDaniel, On both starting points (old=2015.12 new=5558710) the exit code is 1 and the output is identical as well | ||
AlexDaniel, Output on both points: digits argument to base out of range. Is: -100, should be in 0..* in block <unit> at /tmp/zx8nYA_biq line 1Actually thrown at: in block <unit> at /tmp/zx8nYA_biq line 1 | |||
AlexDaniel | oh really | ||
bisect: old=2015.07 say 255.base(16, -100) | 16:21 | ||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2015.07 new=5558710). Old exit code: 0 | ||
AlexDaniel, bisect log: gist.github.com/360db0e86f4c338f5a...9bf3fea7cf | |||
AlexDaniel, (2015-09-08) github.com/rakudo/rakudo/commit/57...1f03d6b549 | 16:22 | ||
AlexDaniel | m: say 255.base(16, 9999999999999999999999999999999999999999999999999); | ||
camelia | rakudo-moar 5556b3: OUTPUT«Cannot unbox 163 bit wide bigint into native integer in block <unit> at <tmp> line 1» | ||
AlexDaniel | say 255.base(16, 9999999999999999999999999999999999999999999999999999999999999999999999999); | ||
m: say 255.base(16, 9999999999999999999999999999999999999999999999999999999999999999999999999); | |||
camelia | rakudo-moar 5556b3: OUTPUT«Cannot unbox 243 bit wide bigint into native integer in block <unit> at <tmp> line 1» | ||
AlexDaniel | yet another resolved ticket | ||
MasterDuke_ | resolved? | 16:34 | |
ah, used to go negative | 16:37 | ||
lizmat | m: my $odds = (3, 5 ... 15); dd $odds | 16:47 | |
camelia | rakudo-moar 555871: OUTPUT«Seq $odds = (3, 5, 7, 9, 11, 13, 15).Seq» | ||
lizmat | m: my $odds = 3, 5 ... 15; dd $odds # sorta expected that to be the same ?? | ||
camelia | rakudo-moar 555871: OUTPUT«Int $odds = 3» | ||
lizmat | I guess the parens here aren't superstitious ? | ||
m: my ($odds) = 3, 5 ... 15; dd $odds # this I can understand | 16:48 | ||
camelia | rakudo-moar 555871: OUTPUT«Int $odds = 3» | ||
jnthn | Item and list assignment have different precedence | 16:50 | |
jnthn away for a bit | |||
lizmat also steps away for s bit | 16:52 | ||
babydrop | /me wonders what are these bits and whether he wants one too.... | 16:53 | |
Phillips? | |||
ilmari | a _tiny_ snack? even less than a nybble | 16:54 | |
TimToady | 2 bits'll get you a few sticks of gum anyway... | 16:56 | |
Pieces of eight! Pieces of eight! Rawk! | 16:57 | ||
TimToady hopes it's Talk like a Parrot Day... | |||
TimToady wonders why the thing at :47 doesn't give a 'Useless use of ...' error | 16:59 | ||
something for the uu file... | 17:00 | ||
I guess it's vaguely possible that ... could have side effects, but usually it is used as if it were pure | 17:05 | ||
b2gills | Is there a good reason 「^5e0」 is not the same as 「0e0 ..^ 5e0」 ( there are only 2 spec tests that fail with that change, and they are for 「^5e0 .perl」 and 「^(5/1) .perl」 ) | 17:09 | |
babydrop | m: dd eager ^5e0 | 17:12 | |
camelia | rakudo-moar 555871: OUTPUT«(0, 1, 2, 3, 4)» | ||
babydrop | m: dd eager 0e0 ..^ 5e0 | 17:13 | |
camelia | rakudo-moar 555871: OUTPUT«(0e0, 1e0, 2e0, 3e0, 4e0)» | ||
babydrop | s: &prefix:<^>, \(5e0) | ||
SourceBaby | babydrop, Sauce is at github.com/rakudo/rakudo/blob/5558...ge.pm#L655 | ||
babydrop | heh | 17:14 | |
b2gills: are those tests in 6.c-errata or just in master? | |||
m: 5e0.Numeric.^name.say | 17:15 | ||
camelia | rakudo-moar 555871: OUTPUT«Num» | ||
b2gills | The relevant parts of the test looks the same to me github.com/perl6/roast/blob/6.c-er...ge-basic.t | 17:18 | |
specifically lines 43,44 combined with line 18 | |||
babydrop | Then unfortunatelly we can't change this in 6.c language. | 17:19 | |
b2gills | I did also find two errors, on lines 12,13 where they hard-code 2 and 6 | ||
babydrop | hehe | ||
b2gills | ... only in the description though | 17:20 | |
babydrop | m: dd eager ^5.5 | ||
camelia | rakudo-moar 555871: OUTPUT«(0, 1, 2, 3, 4, 5)» | ||
babydrop | m: dd eager 0.0..^5.5 | 17:21 | |
camelia | rakudo-moar 555871: OUTPUT«(0.0, 1.0, 2.0, 3.0, 4.0, 5.0)» | ||
babydrop | huggable: 6.d | 17:24 | |
huggable | babydrop, nothing found | ||
babydrop | huggable: 6d | ||
huggable | babydrop, nothing found | ||
babydrop | huggable: 6.d :is: Proposals for 6.d language: github.com/perl6/specs/blob/master/v6d.pod | ||
huggable | babydrop, Added 6.d as Proposals for 6.d language: github.com/perl6/specs/blob/master/v6d.pod | ||
babydrop | b2gills: ^ that's the doc we have for 6.d changes. Add yourself, if you feel this is important enough :) | 17:25 | |
b2gills | Actually the only reason I looked into it was someone talking about ranges with two different types of bounds being slow | 17:26 | |
babydrop | b2gills: oh, I fixed that a few days ago | 17:30 | |
m: eager 1..1e5; say now - INIT now | |||
camelia | rakudo-moar 555871: OUTPUT«0.5589974» | ||
babydrop | star: eager 1..1e5; say now - INIT now | ||
camelia | star-m 2016.10: OUTPUT«6.7768728» | ||
babydrop | m: say 6.7768728 / 0.5589974 | ||
camelia | rakudo-moar 555871: OUTPUT«12.12326354» | ||
b2gills | m: eager 1e0..1e5; say now - INIT now | 17:31 | |
camelia | rakudo-moar 555871: OUTPUT«0.27743616» | ||
babydrop | hm, yeah, there's still that, I suppose. | 17:32 | |
b2gills | m: eager 1..100000; say now - INIT now # wow so much faster yet | 17:33 | |
camelia | rakudo-moar 555871: OUTPUT«0.0446517» | ||
b2gills | Which reminds me, I think that Range should be split up a bit. I think even just splitting off Str Range into its own subtype would simplify a bunch of code. | 17:41 | |
dalek | kudo/nom: 55cf6fa | (Zoffix Znet)++ | src/core/Complex.pm: Fix &infix:<===> on Complex failing to distinguish signed zeros Fixes RT#128999: rt.perl.org/Ticket/Display.html?id=128999 |
17:53 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128999 | ||
dalek | ast: 15c0978 | (Zoffix Znet)++ | S32-num/negative-zero.t: Test &infix:<===> on Complex distinguishes signed zeros RT#128999: rt.perl.org/Ticket/Display.html?id=128999 Rakudo fix: github.com/rakudo/rakudo/commit/55cf6fa9e1 |
17:54 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128999 | ||
babydrop | Is there a reason for that nqp::abs_n in there? github.com/rakudo/rakudo/blob/5558...lex.pm#L53 | 18:01 | |
psch | m: say 2 + -1; say 2 ~ "-" ~ -1 | 18:21 | |
camelia | rakudo-moar 55cf6f: OUTPUT«12--1» | ||
babydrop | I'll take it as "no" then :) | 18:22 | |
psch | well, the explicit concat of '-' is the reason vOv | ||
babydrop | Thanks. | 18:24 | |
psch | i mean, of course i don't know the intent of the original author, and maybe $negative-number.Str is a slower code path | 18:25 | |
babydrop | that op is kinda broken BTW | 18:28 | |
m: use nqp; say nqp::abs_n(-0e0) | |||
camelia | rakudo-moar 55cf6f: OUTPUT«-0» | ||
psch | m: use nqp; say nqp::abs_n(-1e0) | ||
camelia | rakudo-moar 55cf6f: OUTPUT«1» | ||
babydrop | j: use nqp; say nqp::abs_n(-0e0) | 18:29 | |
camelia | rakudo-jvm 8ca367: OUTPUT«0» | ||
babydrop | hm, then maybe something I could fix then | ||
psch | well, if -0e0 is distinct from 0e0 and ieee754 has strong opinions about that..? | ||
m: use nqp; say nqp::abs_i(-0) | |||
camelia | rakudo-moar 55cf6f: OUTPUT«0» | ||
babydrop | ints don't got negative zeros | 18:30 | |
psch | right, which is why it maybe makes sense for abs_n to not turn -0e0 into 0e0 | ||
babydrop | "In mathematics, the absolute value or modulus |x| of a real number x is the non-negative value of x without regard to its sign" per en.wikipedia.org/wiki/Absolute_value | 18:31 | |
So to me that sounds like it shouldn't have a sign | |||
babydrop pops up ieee | |||
psch | yeah, if anything the rfc should answer abs on -0e0 | ||
or, "published standard" actually i guess | 18:32 | ||
babydrop | "abs(x) copies a floating-point operand x to a destination in the same format, setting the sign bit to 0 (positive)." | ||
That's the only mention of abs() I see other than a blurb about NaNs | 18:33 | ||
psch | right, then moar seems wrong | ||
babydrop will try to fix | |||
m: -0e0.abs | 18:34 | ||
camelia | rakudo-moar 55cf6f: OUTPUT«WARNINGS for <tmp>:Useless use of "-" in expression "-0e0.abs" in sink context (line 1)» | ||
babydrop | m: -0e0.abs.say | ||
camelia | rakudo-moar 55cf6f: OUTPUT«WARNINGS for <tmp>:Useless use of "-" in expression "-0e0.abs.say" in sink context (line 1)0» | ||
babydrop | m: -0e0 .abs.say | ||
camelia | rakudo-moar 55cf6f: OUTPUT«-0» | ||
babydrop | :D | ||
lizmat | .tell babydrop with 15c0978f on roast, is there a reason to use is-deeply foo, True instead of ok foo ?? | 19:26 | |
yoleaux2 | lizmat: I'll pass your message to babydrop. | ||
dalek | kudo/nom: a3735af | (Zoffix Znet)++ | src/core/Complex.pm: Fix stringif. of Complex failing on negative zero in img. part A negative zero goes through <0e0 conditional, at which point it ends up as -0 via p6box_s, concatenated with a '+'. 1/-0e0 == -Inf, so use that knowledge to figure out the sign of the zero. The nqp::abs_n() op seemed to have no point in there to me (and is slower), so I removed it. Fixes RT#130329: rt.perl.org/Ticket/Display.html?id=130329 |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130329 | ||
ast: 967a64b | (Zoffix Znet)++ | S32-num/negative-zero.t: Test stringification of negative zeros in Complex RT#130329: rt.perl.org/Ticket/Display.html?id=130329 Rakudo fix: github.com/rakudo/rakudo/commit/a3735af278 |
19:28 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130329 | ||
phatbot | lizmat: well, it kinda goes back to my rant that `is` is not precise enough. And the same applies in this case too. If that op will start to return 1/0 all of a sudden, the `ok` test won't catch it, while is-deeply will. | 19:32 | |
And moritz disagreed with me, back when I mentioned that, but two days ago a regression slipped through the `is` test, but it would've been caught by an is-deeply: github.com/perl6/roast/commit/99a9...86b00da63e | 19:33 | ||
Why is is-deeply a lot slower than ok? | |||
lizmat | ok, I left a comment to the commit | ||
do with it what you will :-) | |||
phatbot | lizmat: so we were fixing the same ticket? | 19:34 | |
lizmat | yeah, no biggie :-) | ||
wanted some distraction between proofreading and writing P6W :-) | |||
phatbot | I was actually thinking of that today.... that sooner or later we'll have that happen when I saw sena_kun hacking on a ticket | 19:35 | |
lizmat | as to the question why is-deeply is slowe? well, I think it's the difference between x eqv y and x.Bool | 19:37 | |
lizmat starts on the P6W | |||
dogbert17 | oops, Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb5bffb40 (LWP 3985)] 0xb7ce9312 in MVM_gc_write_barrier (tc=0xa0a8420, update_root=0x0, referenced=0xb5caf910) at src/gc/wb.h:8 | 19:40 | |
dogbert17 is once again tinkering with small nursery sizes | 19:41 | ||
dalek | kudo/nom: fa98875 | (Zoffix Znet)++ | src/core/Complex.pm: Use lizmat++'s Complex stringification algo Replaces previous fix[^1] for RT#130329: rt.perl.org/Ticket/Display.html?id=130329 Not only liztmat's version is much easier to read, it's also 1.5x times faster. [1] github.com/rakudo/rakudo/commit/a3735af278 |
19:51 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130329 | ||
phatbot | lizmat++ | 19:52 | |
lizmat: as for test failing, those are for the commit I pushed an hour or so ago, so I'm guessing you just didn't have that fix in your local checkout? | |||
lizmat | phatbot: lemme check that again | 19:53 | |
phatbot | it's 55cf6fa "2 hours ago" according to github | ||
lizmat | phatbot: I didn't have 55cf6fa9e154d4e7 yet, so that's probably the reason | 19:54 | |
phatbot | \o/ | ||
lizmat | yup | ||
pmurias | an eval-server for nqp-j would be awesome to speed up make j-test | 20:03 | |
dalek | p: 49d6beb | (Pawel Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/ (4 files): [jvm] Make nqp::findmethod throw an exception if it can't find the method. |
20:12 | |
ast: f30510e | (Zoffix Znet)++ | integration/error-reporting.t: Test we do not refer to curly quotes as smart RT#130260: rt.perl.org/Ticket/Display.html?id=130260 |
20:28 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130260 | ||
dalek | ast: 862c53b | samcv++ | S15-unicode-information/unimatch-general.t: Add test to check unimatch checks short/alternate canonical Unicode property names properly. github.com/MoarVM/MoarVM/issues/448 |
20:36 | |
p: 9ab1467 | (Pawel Murias)++ | src/vm/jvm/ (2 files): [jvm] Make boxing int/num/str respect the HLL int_box/num_box/str_box setting. |
21:05 | ||
p: 3ebba28 | (Pawel Murias)++ | t/serialization/01-basic.t: [jvm] Fix serialization context name collisions. |
21:29 | ||
pmurias | that shouldn't have been [jvm] tagged :/ | 21:30 | |
phatbot | samcv: do you run make spectest to ensure no breakage happens? | ||
samcv | yes | ||
phatbot | ok. | 21:31 | |
I'm on my phone, but 952 looks like the new multi would cause ambiguity with the one below it, no? | 21:32 | ||
phatbot squints | |||
samcv | well it only gets called when there is not a third term | ||
err. wait. if there IS a third term | |||
it checks the one above first | |||
phatbot | m: multi foo($,$,$) {say "here"}; muti foo ($,$,$ = 42) {say "there"}; foo 1, 1, 1 | 21:34 | |
camelia | rakudo-moar fa9887: OUTPUT«===SORRY!=== Error while compiling <tmp>Unexpected block in infix position (missing statement control word before the expression?)at <tmp>:1------> $,$) {say "here"}; muti foo ($,$,$ = 42)⏏ {say "there"}; foo 1, 1, 1 expecting…» | ||
phatbot | m: multi foo($,$,$) {say "here"}; multi foo ($,$,$ = 42) {say "there"}; foo 1, 1, 1 | 21:35 | |
camelia | rakudo-moar fa9887: OUTPUT«here» | ||
phatbot | TIL | ||
lizmat | samcv: re ab10dc42dfd2a198, in the commit message there are 5 pairs of matching brackets?? | 21:37 | |
samcv | oh maybe i added 5 then.. | ||
lizmat | :-) | ||
samcv | uhm | ||
lizmat | you *list* five in the commit message | ||
samcv | bisectable6, say q⟮test⟯ | 21:38 | |
bisectable6 | samcv, Bisecting by exit code (old=2015.12 new=fa98875). Old exit code: 1 | ||
samcv, bisect log: gist.github.com/af192e0c4c29b944a9...7e395c1946 | |||
samcv, (2016-12-12) github.com/rakudo/rakudo/commit/89...4deeea53c4 | |||
samcv | bisectable6, say ⸤test⸥ | ||
bisectable6 | samcv, On both starting points (old=2015.12 new=fa98875) the exit code is 1 and the output is identical as well | ||
samcv, gist.github.com/28354b0c87cbbf7f4d...bcaf12de8f | |||
samcv | bisectable6, say q⸤test⸥ | ||
bisectable6 | samcv, Bisecting by exit code (old=2015.12 new=fa98875). Old exit code: 1 | ||
samcv, bisect log: gist.github.com/a178b948e7675ffb0a...4885bd86fc | 21:39 | ||
samcv, (2016-12-12) github.com/rakudo/rakudo/commit/89...4deeea53c4 | |||
samcv | yeah i think i added 5 then? | ||
regardless all the ones we didn't have are now there :P | |||
but it is 5 | |||
lizmat | samcv: ok, it will be so in the weekly :-) | 22:00 | |
dalek | p: f79d66f | (Pawel Murias)++ | t/serialization/01-basic.t: Skip tests on the JVM that depend on getting a null from an accessor (this is broken on the JVM). |
22:02 | |
samcv | :-) | ||
pmurias | make j-test should now pass in nqp-j (with 2 new skipped tests) | 22:03 | |
phatbot | woooo | 22:07 | |
pmurias++ | |||
dalek | kudo/nom: b456471 | samcv++ | src/core/Cool.pm: Fix unimatch so it checks canonical short/alternate unicode props If we don't specify a property name to check against unimatch will still work the same, but if we do supply a property to check against, call uniprop where the issue is fixed to resolve the name. Passes S15-unicode-information/unimatch-general.t |
22:23 | |
rakudo/nom: f8cbcac | lizmat++ | src/core/Cool.pm: | |||
rakudo/nom: Merge pull request #952 from samcv/unimatch | |||
rakudo/nom: | |||
rakudo/nom: Fix unimatch so it checks canonical short/alternate unicode properties | |||
phatbot | heh | ||
phatbot got "Could not merge... refresh page" or something :) | |||
lizmat | :-) | ||
and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/12/12/...rofilesql/ | |||
phatbot | \o/ | 22:24 | |
eh, my article was posted on hacker news | 22:25 | ||
phatbot reads first commit.... | |||
Yeah, ain't reading the rest :} | |||
*comment | |||
jnthn | lizmat++ # weekly | 22:29 | |
phatbot: Reading comments is usually a bad idea. :) | 22:30 | ||
phatbot | lizmat++ great weekly \o/ | ||
pmurias | jnthn: nqp-j has uninitialized P6opaque attributes set to null? | 22:33 | |
jnthn | nqp-j: class A { has $!a; method m() { say($!a.HOW.name($!a)) } }; A.new.m | 22:35 | |
hmm...is there a bot here for that? | |||
nqp: class A { has $!a; method m() { say($!a.HOW.name($!a)) } }; A.new.m | |||
camelia | nqp-moarvm: OUTPUT«NQPMu» | ||
jnthn | I'd expect that to be NQPMu on all the backends, though...pretty sure it's set as part of the attribute composition protocol | 22:36 | |
phatbot | j: class A { has $!a; method m() { say($!a.HOW.name($!a)) } }; A.new.m | 22:40 | |
camelia | rakudo-jvm 8ca367: OUTPUT«Any» | ||
phatbot | (that's not nqp, just rakudo-j) | ||
[Coke] | some gold from a ycombinator thread we should appreciate: | 22:41 | |
[2] And, amazingly, Rakudo is a pretty compact executable compared to most other langs. | |||
jnthn | :) | 22:44 | |
'night, #perl6-dev | 22:45 | ||
timotimo | gnite jnthn | 22:48 | |
dalek | ast: a248d15 | lizmat++ | S15-unicode-information/unimatch-general.t: Unfudge now passing test, samcv++ |
22:55 | |
kudo/nom: 29b228c | lizmat++ | src/core/List.pm: Use Seq.new(R:I:EmptyIterator) instead of ().Seq Because it is about 1.5x faster and doesn't need to allocate a new empty List first. |
23:16 | ||
timotimo | nice | ||
phatbot | TIL | ||
lizmat | timotimo: oddly enough, creating a R:I:EmptySeq method that does a Seq.new(R:I:EmptyIterator) is significantly slower :-( | 23:17 | |
probably not getting inlined or so | |||
timotimo | huh, weird | 23:18 | |
but yeah, could perhaps be | |||
dalek | ast: e1a8098 | samcv++ | S15-unicode-information/uniprop.t: Add uniprop todo tests for 'tc', 'lc' and 'uc' Titlecase_Mapping, Lowercase_Mapping and Uppercase_Mapping |
23:20 |