AlexDaniel | commit: all say (1,2).map({ LAST { say "DONE" } })[2] | 00:15 | |
committable6 | AlexDaniel, gist.github.com/5b4c3171a75e540f69...6e764fdfc6 | ||
AlexDaniel | ugexe: I don't see a bug report | ||
bisect: say (1,2).map({ LAST { say "DONE" } })[2] | |||
bisectable6 | AlexDaniel, Bisecting by output (old=2015.12 new=7021861) because on both starting points the exit code is 0 | ||
AlexDaniel, bisect log: gist.github.com/6cc1c59e7ab8fef71b...b349fa011f | |||
AlexDaniel, (2016-06-08) github.com/rakudo/rakudo/commit/07...08fa53c7de | |||
AlexDaniel | commit: 072a6c256^,072a6c256 say (1,2).map({ LAST { say "DONE" } })[2] | 00:16 | |
committable6 | AlexDaniel, ¦«072a6c256^»: DONENil¦«072a6c2»: DONEDONENil | ||
dalek | kudo/nom: 0e688e4 | (Zoffix Znet)++ | docs/ChangeLog: Log all commits to date to ChangeLog Documents commits: 003e654 1d46004 287af6a 2a8ec40 334d134 5558710 55cf6fa 7021861 8965145 8eef234 9a161fa 9a3c350 9ff5b7e a8ff3b9 a980eb1 aa27d5c b286048 b456471 f9d34a9 fa98875 |
02:00 | |
p: 92d1403 | MasterDuke17++ | src/vm/moar/HLL/Backend.nqp: Escape 's in function names for SQL profile output |
02:57 | ||
TimToady has a patch to make *² work right | 04:48 | ||
TimToady doesn't see a bug report for it offhand... | 04:58 | ||
dalek | kudo/nom: c35d562 | TimToady++ | src/Perl6/Actions.nqp: Allow autocurrying of superscript exponents. The curry routine needed to be told that generic postscript actually has a second argument like infixes do. |
04:59 | |
kudo/nom: 4d6854c | TimToady++ | docs/ChangeLog: update for last-minute patch to autocurry powers |
05:03 | ||
TimToady | m: say .(42) given *³ | 05:08 | |
camelia | rakudo-moar 0e688e: OUTPUT«Cannot resolve caller Numeric(Whatever: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at <tmp> line 1» | ||
TimToady | m: say .(42) given *³ | 05:11 | |
camelia | rakudo-moar 4d6854: OUTPUT«74088» | ||
TimToady | m: say map *², 1..10 | 05:13 | |
camelia | rakudo-moar 4d6854: OUTPUT«(1 4 9 16 25 36 49 64 81 100)» | ||
MasterDuke | m: use nqp; my Num $a; say ++$a | 05:49 | |
camelia | rakudo-moar 4d6854: OUTPUT«1» | ||
MasterDuke | m: use nqp; my Num $a; say nqp::p6box_n(nqp::add_n(nqp::unbox_n($a), 1e0)) | ||
camelia | rakudo-moar 4d6854: OUTPUT«Cannot unbox a type object (Num) to a num. in block <unit> at <tmp> line 1» | ||
MasterDuke | is there a better way to get the Perl 6 behavior in nqp than wrapping the unbox->add->box in an if defined? | 05:50 | |
lizmat | Files=1155, Tests=53919, 194 wallclock secs (10.85 usr 4.51 sys + 1140.92 cusr 123.60 csys = 1279.88 CPU) | 08:09 | |
dalek | kudo/nom: 8940dc8 | lizmat++ | docs/ChangeLog: Add commit ID to changelog entry |
08:12 | |
cowens | Are Rats just a Perl 6 layer thing, or can you work with them in NQP? | 09:05 | |
tadzik | nah, rats are p6 | 09:09 | |
cowens | So Rats become Nums when passing to NQP? | 09:12 | |
dalek | kudo/nom: f775474 | lizmat++ | src/core/Any-iterable-methods.pm: Better fix for RT #130365 This re-instates the original optimisation, but with a LAST handler. Oddly enough, this breaks the passing race/hyper tests again (which are marked TODO). Not sure what is going on there, but that will be for another day then. |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130365 | ||
kudo/nom: c8b950b | lizmat++ | docs/ChangeLog: Add commit ID of final fix for RT #130365 |
09:14 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130365 | ||
samcv | nqp doesn't have the rat type. i'm not an expert but I suppose you could pass it as numerator and denomenator. though there may be a thing for that | 09:49 | |
cowens, yeah there isn't… checked the op codes nqp only has floating points and integers | 09:51 | ||
lizmat | yeah, Rats are HLL | 10:13 | |
[Tux] | This is Rakudo version 2016.11-264-gc8b950b83 built on MoarVM version 2016.11-60-g21abc2a1 | 10:54 | |
csv-ip5xs 3.136 | |||
test 13.538 | |||
test-t 6.122 | |||
csv-parser 13.734 | |||
lizmat | sometimes I think we need a .skip(N) and .every(N,M) list comprehenders | 11:25 | |
hmmm... I guess .rotor fits the .every(N,M) possibly | 11:31 | ||
lucasb | I love those list utilities :) | 11:43 | |
I wished 'take' was not taken for something. That P6 could have the take/drop/take-while/drop-while common functions from other languages | 11:44 | ||
*that way | |||
jnthn | .[4..*] # skip | ||
;) | |||
And you can feed a sequence into the subscript too I guess :) | 11:45 | ||
lucasb | seems like the Perlish way is to do everything using array subscripts | 11:46 | |
jnthn | Well, we ended up with .head too :) | 11:47 | |
One incentive to have methods is that we can also have their reactive duals | |||
lizmat | jnthn: yeah, that would be in that vein | ||
and .skip would be much more effcient :-) | 11:48 | ||
lucasb | reactive duals? please, enligthen me! | ||
jnthn | lizmat: And I guess work on infinite things | ||
lizmat | jnthn: yes | ||
jnthn | lucasb: We can put them on Supply too | ||
lucasb | *enlighten | 11:49 | |
ah, ok | |||
lizmat | inspiration is an example from Laurent's P6 book | ||
where it needs to skip the first 354 lines of a file and then start to process | |||
jnthn | (Supply and Seq are related by some category theory stuff, which is where the notion of duals comes from) | ||
lizmat | for "file".IO.lines.skip(354) { } | 11:50 | |
I also think one of Ken Youen-Clark's bio perl6 examples could use an .every | 11:51 | ||
jnthn | m: say <a b c d e f g h>.grep({ $++ > 3 }) # curious | ||
camelia | rakudo-moar c8b950: OUTPUT«(e f g h)» | ||
lizmat | for "file".IO.lines.every(3) { } | ||
jnthn | m: say <a b c d e f g h i>.grep({ $++ %% 3 }) # curious | 11:52 | |
camelia | rakudo-moar c8b950: OUTPUT«(a d g)» | ||
jnthn | Anything you can do, I can do grepper :P | ||
lizmat | jnthn: yeah, it can all be done :-) I grep that :) | ||
jnthn | ooh, I need to do a MoarVM release :) | 11:57 | |
lizmat | yes, please :-) | ||
our release manager would like that very much :-) | |||
jnthn | Phew, the mention of me in #perl6 wasn't telling me about a bug in my advent post :) | 11:59 | |
lizmat | yeah, that would not have been in time before publishing :-) | 12:00 | |
jnthn | Well, I could still have tweaked any small things today anyway :) | 12:02 | |
I should finish up the README for Test::Scheduler too :) | |||
nine | What do you think about shipping install-dist.pl (or named just install-dist) as part of the CORE dist? Then it would get installed into e.g. /usr/share/perl6/bin/install-dist and be easily accessible for distro packaging modules. | 12:31 | |
dalek | kudo/nom: 69d808f | lizmat++ | src/core/Any-iterable-methods.pm: Make sure .head(N) *always* returns a .Seq It used to be an empty List, aka () for N <= 0 |
12:32 | |
lizmat | nine: isn't that what "raccoon" was supposed to be ? | ||
dalek | kudo/nom: 27cc8da | lizmat++ | docs/ChangeLog: Add 69d808f to ChangeLog |
12:33 | |
nine | Yes, it's just that "raccoon" as a name does not have universal support (as it's very non-descriptive) while install-dist does not indicate any relation to perl6 | 12:34 | |
And as raccoon/install-dist is not exactly an end user tool, putting it in /usr/bin is not necessary and may cause confusion | 12:35 | ||
jnthn | If it's not particularly user-facing then could always dehuffmanize it to perl6-install-dist :) | ||
nine | also true | 12:36 | |
Too bad I need to leave like 10 minutes ago and probably won't be able do anything before the release. But I will experiment with the openSUSE packages. | 12:37 | ||
I still think, putting it into the CORE dist (even as perl6-install-dist) is a good idea. | 12:39 | ||
MasterDuke | lizmat: is there a better way to get the Perl 6 behavior of ++ on a Num that might start out undefined in nqp than wrapping unbox->add->box in an if defined? | 12:44 | |
oh, and is $!a = <something> faster/slower than nqp::bindattr(self, self, '$!a', <something>)? | 12:47 | ||
jnthn | MasterDuke: Possibly faster | ||
Certainly no slower | |||
Ideally equivalent but the first form gets hints spat out reliably and I don't know the second does | 12:48 | ||
Though on Moar that matters little since spesh can happily fix up both cases to the same machine code | |||
MasterDuke | excellent, i like when the simpler code is better | ||
jnthn | On JVM it matters more, iirc | ||
MasterDuke | still trying to figure out if there's better code to gen for -n, but am working on a patch that at least seems to make the existing code that is genned ~40% faster | 12:49 | |
which is just re-writing IO::ArgFiles.lines.pull-one and IO::Handle.lines.pull-one completely in nqp | 12:51 | ||
jnthn | .tell Zoffix www.moarvm.org/releases/MoarVM-2016.12.tar.gz | 13:10 | |
yoleaux2 | jnthn: I'll pass your message to Zoffix. | ||
lizmat | MasterDuke: what jnthn said :-) | 13:11 | |
afk& | |||
dalek | kudo/nom: f086b49 | (Zoffix Znet)++ | src/core/REPL.pm: s/panda/zef/ in REPL message As next R* release will most likely switch to zef as installer of choice. |
13:14 | |
kudo/nom: 8b36e47 | (Zoffix Znet)++ | docs/ChangeLog: Use consistent multi-sha listing format in ChangeLog |
13:17 | ||
ar/zef: c58da35 | ugexe++ | README: Remove mentions of runtime deps for zef Technically you don't need git for zef to work. If you take the default ecosystem package list and transform the git urls to the archive url (.zip, .tar.gz) on github then git is not needed |
13:35 | ||
ar/zef: 10125ab | (Steve Mynott)++ | README: Merge pull request #82 from ugexe/zef Remove mentions of runtime deps for zef |
|||
ar/zef: 469e40f | (Steve Mynott)++ | README: recommend git |
13:38 | ||
ar/zef: c06e3b1 | (Steve Mynott)++ | ports/darwin_dmg/HOW_TO_INSTALL.txt: fix panda ref to say zef |
13:39 | ||
ar/zef: ecbe3d3 | (Steve Mynott)++ | / (3 files): Readd panda for a transition period |
13:45 | ||
kudo/nom: 90bed96 | (Zoffix Znet)++ | docs/ChangeLog: Quote var in ChangeLog to prevent italicizing everything in Markdown |
14:02 | ||
kudo/nom: 15d184a | (Zoffix Znet)++ | docs/ChangeLog: Quote var in ChangeLog to prevent italicizing everything in Markdown |
14:09 | ||
Zoffix | Hello. | 14:44 | |
NeuralAnomaly, yo | |||
NeuralAnomaly | Zoffix, Yo, yo, yo! What up, homeslice? | ||
Zoffix | NeuralAnomaly, it's time | ||
NeuralAnomaly | Zoffix, Oh boy! Really?! Release time!!!! YEY! | ||
Zoffix | yup | 14:45 | |
NeuralAnomaly, cut the release | |||
NeuralAnomaly | Zoffix, Will do! If you're feeling particularly naughty, you can watch me at perl6.fail/release/progress or go look at some cats icanhas.cheezburger.com/lolcats | ||
Zoffix, ☠☠☠☠☠☠ R6 status is not clean. Cannot proceed | |||
Zoffix, ☠☠☠☠☠☠☠☠☠☠ ABNORMAL EXIT! | |||
Zoffix | nice | ||
NeuralAnomaly, status | |||
NeuralAnomaly | Zoffix, [✘] Next release is today. Since last release, there are 56 new still-open tickets (0 unreviewed and 0 blockers) and 4 unreviewed commits. See perl6.fail/release/stats for details | ||
Zoffix | NeuralAnomaly, status | ||
NeuralAnomaly | Zoffix, [✔] Next release is today. Since last release, there are 56 new still-open tickets (0 unreviewed and 0 blockers) and 0 unreviewed commits. See perl6.fail/release/stats for details | ||
Zoffix | NeuralAnomaly, cut the release | ||
NeuralAnomaly | Zoffix, Will do! If you're feeling particularly naughty, you can watch me at perl6.fail/release/progress or go look at some cats icanhas.cheezburger.com/lolcats | ||
Zoffix, ♥♥♥♥♥♥ Prep done | |||
dalek | p: eb871b2 | (Zoffix Znet)++ | tools/build/MOAR_REVISION: bump MoarVM version to 2016.12 |
||
p: 8460157 | (Zoffix Znet)++ | VERSION: bump VERSION to 2016.12 |
|||
ar/zef: 882504d | (Steve Mynott)++ | tools/build/Makefile.in: install zef not panda |
14:52 | ||
star/zef: 835a2fe | (Steve Mynott)++ | tools/build/module-install.pl: | |||
star/zef: args for zef | |||
NeuralAnomaly | Zoffix, ♥♥♥♥♥♥ nqp tests OK | 14:55 | |
stmuk_ | damm git | 15:01 | |
yoleaux2 | 16 Dec 2016 00:47Z <Zoffix> stmuk_: any ideas for rt.perl.org/Ticket/Display.html?id=130192 ? I can't reproduce the issue with a built-from-source Rakudo, but it does exists in 2016.04 and 2016.11 Stars (the only two I tried) | ||
stmuk_ | .tell zoffix we are building windows star the same way maybe the repl hang is to do with the WiX MSI installer? | 15:04 | |
yoleaux2 | stmuk_: I'll pass your message to zoffix. | ||
Zoffix shrugs | 15:05 | ||
yoleaux2 | 15:04Z <stmuk_> Zoffix: we are building windows star the same way maybe the repl hang is to do with the WiX MSI installer? | ||
Zoffix | Don't know anything about windows :( | ||
NeuralAnomaly | Zoffix, ♥♥♥♥♥♥ nqp release tarball tests OK | ||
stmuk_ | me neither I just have a VM | ||
NeuralAnomaly | Zoffix, ♥♥♥♥♥♥ nqp release DONE | 15:06 | |
stmuk_ | can't you get one of your bots to fix it :) | ||
dalek | kudo/nom: ad75e79 | (Zoffix Znet)++ | docs/announce/2016.12.md: Generate release announcement for 2016.12 |
||
kudo/nom: 4e74773 | (Zoffix Znet)++ | tools/build/NQP_REVISION: [release] bump NQP revision |
|||
kudo/nom: 27d4d9c | (Zoffix Znet)++ | VERSION: [release] bump VERSION to 2016.12 |
|||
Zoffix | ugh | 15:10 | |
crap | |||
NeuralAnomaly, steps | |||
NeuralAnomaly | Zoffix, all pre nqp r post pre-r6 pre-blank-slate nqp-clone nqp-bump-vers nqp-build nqp-test nqp-tar nqp-tar-build nqp-tag nqp-tar-sign nqp-tar-copy r-clone r-prep-ann r-bump-vers r-build r-p5 r-stress r-stress-v6c r-tar r-tar-build r-tar-p5 r-tar-stress r-tag r-tar-sign r-tar-copy post-scp | ||
dalek | kudo/nom: 6f54e07 | (Zoffix Znet)++ | docs/announce/2016.12.md: Remove email address used instead of name of contributor |
15:13 | |
kudo/nom: 862e2d5 | (Zoffix Znet)++ | docs/announce/2016.12.md: Fix markdown formatting. |
|||
Zoffix | NeuralAnomaly, run r-build r-p5 r-stress r-stress-v6c r-tar r-tar-build r-tar-p5 r-tar-stress r-tag r-tar-sign r-tar-copy post-scp | 15:15 | |
stmuk_ | Zoffix: minor fix github.com/rakudo/rakudo/pull/959 | 15:18 | |
dalek | kudo/nom: 3a25a5a | (Steve Mynott)++ | docs/announce/2016.12.md: No more 2016 releases |
15:20 | |
kudo/nom: 6f69eeb | (Zoffix Znet)++ | docs/announce/2016.12.md: Merge pull request #959 from LondonPM/nom No more 2016 releases |
|||
kudo/nom: b2a3441 | (Zoffix Znet)++ | tools/create-release-announcement.pl: Fix year in announcement generator |
15:21 | ||
Zoffix | NeuralAnomaly, run r-build r-p5 r-stress r-stress-v6c r-tar r-tar-build r-tar-p5 r-tar-stress r-tag r-tar-sign r-tar-copy post-scp | 15:22 | |
NeuralAnomaly | Zoffix, ♥♥♥♥♥♥ Rakudo stresstest (master) OK | 15:32 | |
Zoffix, ♥♥♥♥♥♥ Rakudo stresstest (6.c-errata) OK | 15:34 | ||
stmuk_ | I suppose this is what Microsoft would call the "Anniversary Update" | 15:38 | |
Zoffix is way ahead of it twitter.com/zoffix/status/810119675061403649 | 15:39 | ||
stmuk_ | consair and carrot cake? | 15:42 | |
NeuralAnomaly | Zoffix, ♥♥♥♥♥♥ Rakudo release DONE | 15:43 | |
Zoffix, ♥♥♥♥♥♥ Post: upload tarballs to rakudo.org | |||
Zoffix, 🎺🎺🎺📯📯📯📯📯📯🌈🌈🌈📦📦📦 | |||
Zoffix, The release of **Rakudo #106 2016.12** has now been completed | |||
Zoffix, 🎺🎺🎺📯📯📯📯📯📯🌈🌈🌈📦📦📦 | |||
NeuralAnomaly celebrates with an appropriate amount of fun | |||
MasterDuke | Zoffix++ | 15:44 | |
stmuk_ | Zoffix++ | 15:45 | |
dalek | kudo/nom: 82e636d | (Zoffix Znet)++ | docs/release_guide.pod: 2016.12 is now in the past |
15:48 | |
ar/zef: 2d3bec9 | (Steve Mynott)++ | tools/ (2 files): use new rakudo in forthcoming zef based star beta |
15:52 | ||
ar/zef: 6d7d30b | (Steve Mynott)++ | patches/panda.patch: improve content and display of panda is leaving use zef message |
16:26 | ||
samcv | yayyyy | 16:44 | |
cowens | I have three related but separate problems with fmt: | 17:10 | |
1. fmt/sprintf is NQP level, so it doesn't know about Rats, which means there isn't a good way (I know about) to format Rats. I can use base(10, $precision) to control precision and then call fmt on it to control string padding with %s, but that feels clunky and doesn’t provide as many options as %f. | |||
2. fmt/sprintf uses nqp::split to get the integer and decimal parts which stringifies the float too early leading to loss of precision | |||
3. fmt/sprintf doesn’t have an “%a” directive, so there is no way to get the actual float value out of Perl6 that I know about | |||
I think 1 is intractable with the current scheme. Is the right answer to create a fmt method for the Rat class? Or move fmt up to the Perl6 level? | |||
I took a stab at 2 and was able to “fix” it with some very hacky code codepad.org/lckF4ld0 | |||
I think 3 is fixable if I learn more about NQP | |||
timotimo | cowens: when a Rat comes in there, you can still call methods on it from nqp-land | 18:26 | |
we may want to have something near the fmt that lets rakudo's bootstrap "install the Rat type" so we can compare against it inside fmt | 18:27 | ||
i.e. just have a my $the_rat_type; sub register_rat_type($type) { $the_rat_type := $type } | |||
cowens | So, add a fractional method to Rat, Num, etc | 18:29 | |
timotimo | hum? | 18:30 | |
cowens | then fmt could call num.floor to get the integer part and fractional(precision) to get the fractional? | ||
timotimo | ah, it'd return a string then | 18:31 | |
cowens | yes | ||
then fmt could do its formating magic | |||
timotimo | that might be a way. i won't decide whether that's how we'll move forward | 18:32 | |
cowens | It would also fix 2 as it wouldn't use nqp::split and turn the number into a string too early | 18:33 | |
RabidGravy | does soneone want to cast a quick eye over the perl6advent.wordpress.com/?p=6247 for typos, beginning to get a bit blurry here | 18:35 | |
TimToady | "lke" | 18:36 | |
"these kind of problems" | 18:37 | ||
"theobject" | 18:39 | ||
RabidGravy | ooh I thought I'd already fixed that last one | 18:40 | |
you got better eyes than me clearly | |||
TimToady | "apply, typically" --> "apply; typically" | ||
"apply.)" --> "apply)." | 18:41 | ||
and the next sentence could use commas around the 'if' clause | |||
"in our ticketing" seems like it starts a new sentence | 18:42 | ||
RabidGravy | I love Zoffix little hack of using a gist to format the code, but my word does it make finding stuff difficult | 18:43 | |
TimToady | "Tinky provides" paragraph is massively run on | ||
needs to be broken up with something harder than commas | 18:44 | ||
"if required, it also" needs semicolon or period | 18:45 | ||
"like above so you" --> "like above, so you" | 18:46 | ||
not clear how to parse the phrases after "different objects:" | 18:48 | ||
"clear, failure" --> "clear, since failure" | 18:49 | ||
(to make it parallel with the subsequent "because") | 18:50 | ||
RabidGravy | Actually that Tinky provides paragraph is a basket case, let me re-word that | 18:51 | |
TimToady | "files from it will wait" --> "files from, it will wait" | ||
"workflow to it, every object" --> "workflow to it, then every object" | 18:52 | ||
"new files, however this" --> "new files; however, this" | 18:53 | ||
"here:there" --> "here: there" | 18:54 | ||
"cookbook style" --> "cookbook-style" | |||
"use it, if" --> "use it; if" | 18:55 | ||
(or make a separate sentence) | |||
the next-to-last paragraph needs to be broken up into about 3 sentences | 18:57 | ||
TimToady --> Christmas shopping... | 18:58 | ||
RabidGravy | have fun | 19:01 | |
it's quite alarming how my brain jumps between tenses while I am writing | |||
timotimo | a side-effect of spending so much time in a tardis | 19:21 | |
MasterDuke | timotimo: i have a profile, with one routine all orange. if i also have a JIT log of running the same code, how could i tell which ops would need to be JITted for it to go green? | 19:34 | |
i see some BAILs, but which of those correspond to the ops used in that routine? | 19:35 | ||
timotimo | you just look upwards from the BAIL to see what frame name comes up | 19:37 | |
MasterDuke | hm, none of those match the name of the orange routine | 19:42 | |
i see the name of the orange routine, but it doesn't precede any BAILs | 19:44 | ||
timotimo | interesting. sometimes it's weird like that and i don't really know why | 19:46 | |
i mean, i see the same thing sometimes | 19:49 | ||
MasterDuke | well, if you're curious, the orange routine is my modified IO::Handle.lines.pull-one from github.com/rakudo/rakudo/pull/960 | 19:54 | |
timotimo | it could be that the method ends up inlined all of the time and the inlining frame actually gets bailed out of | 19:55 | |
i'm not finding the inlinedness percentage stuff in the profiler output very convincing :P | 19:57 | ||
though since i know what the code looks like that makes it, i'm not sure it's actually wrong | |||
proof by construction isn't easy if your program is big like moarvm :) | 19:58 | ||
MasterDuke | virtual machines, pshaw! i like to prove a couple before breakfast just to get the juices flowing | 20:00 | |
timotimo | %) | 20:01 | |
i've proven five VMs before breakfast | |||
... | |||
that's not how that quote goes | |||
lizmat | Files=1155, Tests=53935, 195 wallclock secs (10.91 usr 4.60 sys + 1154.52 cusr 123.59 csys = 1293.62 CPU) | 20:26 | |
jdv79 | is that good? | ||
lizmat | better than this morning: mind you, still before the release | 20:27 | |
building the release now, but that warms up my notebook again, so tomorrow a benchmark of that | |||
MasterDuke | lizmat: i see ~50 places in rakudo where nqp::bindattr(self, <foo>, '$!bar', <baz>) is used. given what jnthn said earlier today, would it make sense to turn those into $!bar = <baz>? | 20:40 | |
lizmat | MasterDuke: If you can, please do | 20:42 | |
but I seem to recall there was a reason for it, related to roles and natives if I remember correctly | |||
also: bindattr is *not* the same as $!a = 42; but the same as $! := 42 | 20:43 | ||
*$!a | |||
MasterDuke | lizmat: yep. well, i'll try making some changes, see what happens, and submit PRs if nothing breaks | 20:44 | |
timotimo | hmm. | 20:47 | |
do we actually have ASSIGN for attributes? | 20:49 | ||
jnthn | Assignment is just assignment | ||
It's an operation on an l-value and an r-value | |||
It doesn't care where said l-value is from | 20:50 | ||
timotimo | fair enough, but we do generate a bind with first argument being an attribute on lexical self | 20:51 | |
MasterDuke | btw, same question about nqp::getattr(self, <foo>, '$!bar') vs just $!bar. faster/better/different? | ||
timotimo | sometimes we have places where the class in <foo> doesn't match the type of self | ||
in that case we can't just use the shorter form | 20:52 | ||
same for bindattr | |||
MasterDuke | hm, any way to know when that would be the case from looking at the immediately surrounding code? | 20:54 | |
timotimo | put a special case into the actions part that handles nqp:: and emit some diagnostic code :P | 20:55 | |
i mean, sometimes you can easily see it from the code | 20:56 | ||
oh, i wasn't clear about something | |||
it's about what type self is, it's about what the class outside the code is when code gets generated | |||
sorry, it's *not* about what type self is | 20:57 | ||
that'd be ridiculous :) | 20:58 | ||
also, the type that ends up being important is what's also in the ast tree as the second argument to the var attribute | |||
MasterDuke | cool, i'll play around with this stuff later. afk& | 20:59 | |
lizmat | MasterDuke: the bindattr form is used inside roles afaics | ||
example the TypedArray role | 21:00 | ||
it is supposed to be mixed into Array | |||
but technically, the role could be mixed into anything else, so it cannot know about $!reified (which is from List, BTW) | |||
timotimo | ah, quite. | 21:01 | |
there might be some cases left where a bindattr could be turned into bindattrinvres, that could be worth a lot in select cases | 21:03 | ||
lizmat | timotimo: you mean p6bindattrinvres ? | 21:24 | |
timotimo | that's the one | 21:30 | |
lizmat | I thought I had covered all possible uses, but it seems I missed a few :-) | ||
timotimo | oh | 21:31 | |
i didn't look for a long time | 21:32 | ||
dalek | kudo/nom: 587ceea | lizmat++ | src/core/Any.pm: Make my $a; $a.AT-POS(0) = 42 about 15% faster By simplifying the code in Any.AT-POS itself, and also inside of the $!whence. This also makes my $a; $a[0] = 42 faster, but less so because of postcircumfix:<[]> overhead. |
22:07 | |
lizmat | timotimo MasterDuke: first win :-) | ||
timotimo | first win since the release, or what do you mean? | 22:10 | |
lizmat | since we decided to hunt some bindattr :-) | 22:11 | |
timotimo | oh! | 22:16 | |
you already had other wins since the release then? :) | 22:17 | ||
lizmat | no, not yet | 22:21 | |
timotimo | oh, you mean "since" as in "because" | 22:22 | |
lizmat | well, yes, I guess :-) | ||
timotimo | %) | 22:32 | |
dalek | kudo/nom: 6c98372 | lizmat++ | src/core/Any.pm: Make my $a; $a.AT-KEY("a") = 42 about 10% faster By simplifying the code in Any.AT-KEY itself, and also inside of the $!whence. This also makes my $a; $a<a> = 42 faster, but less so because of postcircumfix:<{}> overhead. |
22:43 | |
lizmat | which concludes my hacking for today | ||
good night, #perl6-dev! | 22:44 | ||
RabidGravy | toodles | 23:48 |