00:26
BenGoldberg joined
00:42
synopsebot6 joined
01:07
lizmat joined
01:25
geekosaur joined
02:47
ilbot3 joined
05:20
synopsebot6 joined
05:23
synopsebot6 joined
|
|||
[Tux] | test 20.841 | 07:41 | |
test-t 12.436 | |||
csv-parser 25.131 | |||
07:55
TimToady joined
08:22
FROGGS joined
10:23
RabidGravy joined
|
|||
dalek | kudo/nom: 7cbf2d3 | skids++ | src/core/Range.pm: More Range fixes/optimizations Make Range.EXISTS-POS properly handle negative indices Optimize Range.AT-POS for integer range from O(index) to O(1) Note that there are no real-world constraints allowing unbox_i on this path |
11:19 | |
kudo/nom: 176285f | lizmat++ | src/core/Range.pm: Merge pull request #728 from skids/range More Range fixes/optimizations |
|||
timotimo | ^- i am OK with this | 11:20 | |
lizmat | so was I :-) | 11:22 | |
12:10
perlpilot_ joined
12:11
colomon joined
|
|||
dalek | kudo/nom: 08a7603 | lizmat++ | src/core/Str.pm: Make <96 97 c>.chrs give a better error message Type check failed in converting element #2 to .chr; expected Int but got Str ("c") |
12:12 | |
psch | so i was looking at #125577, and thought "hey, maybe can just remove that jvm-specific code and do what moar does!" | 12:14 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125577 | ||
psch | and it actually *worked* | ||
at least for that file | |||
then i decided to check for other files in S12-attributes that use .clone | 12:15 | ||
and S12-attributes/instance.t also does, but NPE'd with my change | |||
which of course made me stash my changes and rebuild nom HEAD | |||
but hey, that *also* NPE'd, so my patch is obviously perfectly fine... :) | 12:16 | ||
...okay, no point in make spectest. the first 2 dozen files all report 'NO subtests run'... | 12:18 | ||
lizmat: re 'make test', i did find out that binding of the $!call attribute for role Native is what dies | 12:24 | ||
lizmat: i suspect that the REPR plays a role there, but... | |||
12:37
mojca joined
|
|||
[Coke] | nine: if I have a test file that says "use lib "lib"" and lib doesn't exist... lib gets created with a .precomp dir. | 12:48 | |
that seems aggressive. | |||
timotimo | a bit | ||
[Coke] | (I'm making a sample git project for a git presentation and using perl 6 as the sample code, so I found this by doing a test first approach) | 12:51 | |
lizmat | [Coke]: the problem is that a new repo needs to be made when installing modules for the first time... | 12:53 | |
and where that repo lives, is basically indicated with "use lib" at the moment | |||
well, afaik | |||
perlpilot | use lib shouldn't install anything though. | 12:54 | |
lizmat | no, but it creates a Repo object | 12:55 | |
nine knows more :) | |||
12:58
mojca left
|
|||
perlpilot | [Coke]: I just tried to reproduce that behavior and I can not. | 12:59 | |
[Coke] | perlpilot: my test file has: use lib 'lib'; | 13:01 | |
use Square; | |||
use Test; | |||
and Square didn't exist yet. | |||
perlpilot | ah. okay. | 13:02 | |
oddly, it only does that for the last directory that has been "use lib"d | 13:04 | ||
i.e. use lib "does_not_exist", "nor_this"; use FooBarBaz; # will create nor_this/.precomp | 13:05 | ||
or even .. use lib "does_not_exist"; use lib "nor_this"; use FooBarBaz; # same as above | |||
13:25
skids joined
|
|||
nine | Oh, use lib "foo", "bar"; should be the equivalent to use lib "bar"; use lib "foo"; | 13:42 | |
[Coke]: I agree. We shouldn't create a lib dir that doesn't exist yet. | 13:45 | ||
dalek | rakudo/repl6: b843735 | hoelzro++ | src/Perl6/Compiler.nqp: | 13:46 | |
rakudo/repl6: REPL6: Fix -I processing when using REPL | |||
rakudo/repl6: | |||
rakudo/repl6: The -I option is processed in | |||
rakudo/repl6: CompUnit::RepositoryRegistry.setup-repositories upon the first eval | |||
nine | Should be a relatively simple fix once I've shaved this particularly felted yak. | ||
13:46
dalek joined
|
|||
dalek | Heuristic branch merge: pushed 31 commits to rakudo/repl6 by hoelzro | 13:46 | |
psch | humm | 14:07 | |
m: use nqp; class A { has $.f is box_target is repr('bigint') }; say nqp::getattr(A.new, A, '$!f') | |||
camelia | rakudo-moar 08a760: OUTPUTĀ«(Any)ā¤Ā» | ||
psch | same code on r-j says "This representation does not support being a box target" | ||
m: use NativeCall; use nqp; class A { has $.f is box_target is repr('NativeCall') }; say nqp::getattr(A.new, A, '$!f') | 14:08 | ||
camelia | rakudo-moar 08a760: OUTPUTĀ«(Any)ā¤Ā» | ||
psch | same there... | ||
hrm, i suspect NativeCall does codegen shenanigans to overwrite sixmodel.REPR.generateBoxingMethods() with something non-throwy when it's used properly on nqp-j... | 14:10 | ||
huh, no, reprs.NativeCall *already* overrides that... | 14:11 | ||
...why does it call the parent method? | |||
14:22
timotimo joined
14:24
[Tux] joined
|
|||
dalek | kudo/nom: c3446c0 | lizmat++ | src/core/Dateish.pm: Only integers live in these lookup lists |
14:45 | |
timotimo | that'll be worth a few bytes | 14:46 | |
lizmat | yeah, only a few, but hopefully the atpos_i lookup is a bit faster than the atpos one ? | 14:50 | |
and it should be easier jittable, as we can now before hand the type of what atpos_i returns | 14:51 | ||
timotimo | it's only much better if it doesn't get boxed directly after lookup | 14:52 | |
which is a tiny bit likely | |||
lizmat | well, it would be nice if we could annotate methods returning natives :-) | 14:54 | |
timotimo | we can't? | ||
well, !DAYS-IN-MONTH can also return Nil | 14:55 | ||
lizmat | nope, everything gets boxed on the way out | ||
timotimo | i mean, being allowed to return Nil or Failure through regular methods or subs, that's already a tiny bit bad | ||
but in "returns int" annotated methods ... :| | |||
lizmat | I guess that method should just return 0 | 14:56 | |
timotimo | is there a good reason to allow Nil or Failure through methods/subs annotated to return a native int, num or str? | 14:57 | |
because if not, we can have a simpler return typecheck for that | |||
lizmat | I would think that they would disallow that | 14:58 | |
timotimo | it's probably not noticably cheaper | 14:59 | |
dalek | kudo/nom: e57e631 | lizmat++ | src/core/IO/Handle.pm: Make IO::Handle.comb use native strings internally |
||
jnthn | I don't think you can return Nil/Failure from a native...it should just blow up immediately inside the sub | 15:01 | |
(a returns native, that is) | |||
15:12
AlexDaniel joined
|
|||
nine | m: sub foo returns int { fail "noooo"; }; foo; | 15:14 | |
camelia | rakudo-moar e57e63: OUTPUTĀ«nooooā¤ in sub foo at /tmp/TmG9X3wavu line 1ā¤ in block <unit> at /tmp/TmG9X3wavu line 1ā¤ā¤Actually thrown at:ā¤ in block <unit> at /tmp/TmG9X3wavu line 1ā¤ā¤Ā» | ||
nine has always liked the empirical approach | 15:15 | ||
timotimo | m: sub foo returns int { fail "nooooo"; }; my $result = foo; say "alive" | 15:16 | |
camelia | rakudo-moar e57e63: OUTPUTĀ«aliveā¤Ā» | ||
timotimo | so much for that | 15:17 | |
nine | Oh...thanks for fixing my bug :) | 15:26 | |
colomon | what happened to File::Copy? | 15:30 | |
nevermind | |||
colomon accidentally tried to run the p5 version of the script he wanted in p6. | 15:31 | ||
16:29
SrKeys joined
17:26
pmurias joined
|
|||
dalek | p: 4e9507f | (Pawel Murias)++ | src/vm/js/ (9 files): [js] Pass t/serialization/03-closures.t Implement serialization of closures. Disable the qregex test which started to just eat up all memory for some reason and the sprintf test which bitrotted. |
17:26 | |
p: 78a021d | (Pawel Murias)++ | src/vm/js/ (2 files): [js] Pass t/hll/06-sprintf.t. Support stringifing VMException. |
18:18 | ||
19:15
camelia joined
19:18
Hotkeys_ joined
19:20
dalek joined
|
|||
[Coke] | ok, work crunch is done, will definitely be able to cut a release this afternoon. | 19:30 | |
jnthn | [Coke]++ :) | 19:47 | |
19:52
FROGGS joined
20:33
colomon joined
21:38
colomon joined
21:44
geekosaur joined
|
|||
dalek | p/use-setdebugtypename: e400d72 | jnthn++ | src/vm/moar/stage0/ (11 files): Update MoarVM stage0 bootstrap. This means we'll be able to use the nqp::setdebugtypename op in NQP's MOP. |
21:56 | |
p/use-setdebugtypename: 77005fc | jnthn++ | src/how/NQP (5 files): Scatter various nqp::setdebugtypename. |
|||
jnthn | For those who don't follow #moarvm: the heap snapshots and analyzer I've been working on can do some basic stuff, including explaining the source of the EVAL memory leak... gist.github.com/jnthn/f67379ff234861729f34 | 22:19 | |
timotimo | how does the analyzer perform? | 22:23 | |
did you have to wait long for the result you've shown there? | |||
jnthn | Nah | ||
It's actually slowest to start up | 22:24 | ||
For entirely fixable reasons | |||
timotimo | cool :) | ||
jnthn | With the NQP sized snapshots you're barely waiting around more than a couple of seconds. | ||
The .Int thing I put into Rakudo yesterday removed one bottleneck | 22:26 | ||
The MoarVM GC blocking fix I put in earlier removed a second major one | |||
So now I'm basically down to just one that feels annoying. | |||
I'm sure we'll be able to tune it more beyond that though. | 22:27 | ||
But yeah, if you have an idea where the compute-intensive things are and write carefully, and take advantage of multi-core stuff, you can get some nice wins :) | 22:28 | ||
The frontend shell is just "whatever, write cute Perl 6": github.com/jnthn/p6-app-moarvm-hea.../Shell.pm6 | 22:29 | ||
While the core processing model has careful use of native/packed arrays, binding, and parallel processing: github.com/jnthn/p6-app-moarvm-hea.../Model.pm6 | |||
timotimo | :) | 22:31 | |
jnthn | Note, zero dropping down to nqp:: to get acceptable performance :) | ||
Anyways, enough for today :) | |||
timotimo | do you want to drop me a few little tasks? | 22:32 | |
i don't have energy to do anything well, but i can at least try | |||
i don't want to keep feeling useless :| | |||
jnthn | timotimo: Yeah, more things could do with unmanaged_size | 22:33 | |
timotimo | aye, that was the obvious part :) | ||
jnthn | You did P6bigint | ||
timotimo | i did, yes | 22:34 | |
jnthn | Biggest targets are MVMHash, MVMStaticFrame (the list of lexicals, for example), MultiDimArray, MVMCompUnit (has various long C arrays), SCRef (the same)... | ||
timotimo | i've already got MDA open in an editor | ||
jnthn | MVMMultiCache too :) | 22:35 | |
timotimo | mhm | ||
jnthn | Those are all the ones on my todo list | ||
timotimo | are we interested at all in "allocated" vs "used"? | ||
jnthn | Not at the moment | ||
timotimo | 'k | ||
jnthn | Maybe in the future... :) | 22:36 | |
Anyway, I should relax :) | |||
timotimo | do you have a word or two of design advice for "attribute names and such"? | ||
ah. yes, you should :) | |||
jnthn | Yeah... Another REPR function | ||
You pass it the MVMHeapSnapshot or so | |||
And it can call the functions like MVM_profile_heap_add_collectable_rel_vm_str | 22:37 | ||
timotimo | ah, so that it can grab some strings, yeah | ||
jnthn | (e.g. with P6opaque attribute names) | ||
Or MVM_profile_heap_add_collectable_rel_idx in MVMArray | |||
timotimo | that's a/the function that tells a reference what name it should have, yeah? | ||
wow, that's super simple! :) | |||
jnthn | It adds a reference to the collectable, and if the collectable isn't in the seen hash does the right thing, and if it's NULL ignores it totally. | 22:38 | |
So you don't have to guard against it | |||
Yeah, I already did most of the work ;) | |||
timotimo | fantastic | ||
have a great relaxation ;) | |||
jnthn | Thanks! :) | ||
Have fun! | |||
o/ | |||
timotimo | i'll be fed some food now, see ya later! | ||
23:06
[Tux] joined
23:18
AlexDaniel joined
23:31
BenGoldberg joined
23:33
BenGoldberg joined
23:41
geekosaur joined
|