| jnthn | Rest time for me also & | 00:06 | |
|
00:20
lizmat joined
01:37
cognominal joined
02:03
FROGGS_ joined
05:09
lue joined
07:25
FROGGS_ joined
08:32
odc joined
|
|||
| timotimo | aaw. i don't really feel well rested | 08:37 | |
| jnthn | timotimo: Aww. :( Sorry to hear that. | ||
| timotimo | at least most of my headache seems to be gon | 08:40 | |
| gone | |||
| jnthn: should i remuse work on the jnthn_bigint_opt branch or do you still have something you're about to commit? | 08:41 | ||
| jnthn | timotimo: I've nothing to commit | 09:55 | |
| timotimo | got a hint what i should tackle first? | 09:56 | |
| i suppose i should try tackling the tests in the order they fail in | |||
| i'm guessing a fail would cause the whole test to abort? | |||
| jnthn | Right | ||
| I'd just work through 60-bigint.t | 09:57 | ||
| That's what I did so far. | |||
| And once that is happy, see what Rakudo thinks. | |||
| timotimo | hehe. | 10:01 | |
|
10:48
crab2313 joined
|
|||
| timotimo | jnthn: i'm mildly sad that you decided to ditch the "little big int" name | 10:53 | |
| because it has a very nice ring to it | |||
| hoelzro | morning Moar folk | 10:54 | |
| masak | moarning, hoelzro | ||
| timotimo | hob roelz! | ||
| jnthn | timotimo: "You think it's cute today" :P | 10:55 | |
| hoelzro | heh | 10:56 | |
| FROGGS_: for the openpipe stuff, what's left to do? | |||
| FROGGS_ | hoelzro: a proper design for IO::Pipe | 10:58 | |
| hoelzro | ah ha | ||
| FROGGS_ | but qx{} does already work on linux and windows | ||
| hoelzro | thanks for stepping in and completing things | ||
| jnthn | Also I guess when we have said proper design it needs doing over all backends too | 11:02 | |
| timotimo | that is probably going to be less hard once it actually exists | 11:03 | |
| jnthn | aye | ||
| It's probably coming towards the time when I will give IO its needed refactoring too | |||
| timotimo | jnthn: should i be expecting fails in t/nqp/60-bigint.t? | 11:04 | |
| ah, yes | |||
| i forgot to "make install" in moarvm | |||
| that's certainly clever :P | |||
| hoelzro | jnthn, FROGGS_: that being the case, could it hurt to merge it into master? | 11:06 | |
| jnthn | timotimo: Yes, on the branch first 8 pass then it erupts | ||
| timotimo | yup. | 11:09 | |
| after confirming that a bigint is big, should i directly access its ->u.bigint? | 11:10 | ||
| jnthn | Yes. | 11:11 | |
| timotimo | good | 11:12 | |
| jnthn | The answer will never change. | ||
| timotimo is hackety-hacking on div | |||
| jnthn | In this model, everything is immutable. | ||
| Which is how it needs to be. | |||
| timotimo | the division test passes | 11:23 | |
| now for some bit shifting | 11:24 | ||
| FROGGS_ | hoelzro: I'd like to get a review before merging it | 11:26 | |
| hoelzro | FROGGS_: alright | ||
| I just added a commit on my repo (github.com/hoelzro/MoarVM) for the wip-openpipe branch | |||
| and I filed a PR for nqp for an openpipe test for Moar | 11:27 | ||
| timotimo | jnthn: what's your suggestion for implementing a "where is the most significant bit" operation? | ||
| or maybe i should ask the question that caused this question to arise: | |||
| i'd like to see for the left shift if the resulting number will still be in range or if it will overflow | 11:28 | ||
| ideally before doing the computation | |||
| jnthn | timotimo: Oh... Well, if you're shifting left >= 31 bits, it obviously will | 11:29 | |
| timotimo: Otherwise, do it in a 64-bit integer and then call store_int64_result to have it do the right thing. | |||
| timotimo | oh! | ||
| that seems easy :) | 11:30 | ||
| jnthn | Yeah, I think many of the cases you can now build out of the building blocks I added. :) | ||
| timotimo | you're most helpful! :) | ||
| FROGGS_ | hoelzro: there is no PR | 11:31 | |
| hoelzro | FROGGS_: github.com/perl6/nqp/pull/156 | ||
| FROGGS_ | nqp? | ||
| hoelzro | yeah | 11:32 | |
| I added a Moar test for NQP | |||
| FROGGS_ | ahh | ||
| hoelzro | I'll point you to the moar commit I made | ||
| timotimo | 2 more passing tests with my shift implementation | ||
| FROGGS_ | github.com/MoarVM/MoarVM/pull/75 | ||
| timotimo | shr will be a bit easier :) | ||
| hoelzro | github.com/hoelzro/MoarVM/commit/a...10aeeefd7c | ||
| dalek | arVM/wip-openpipe: a9c8032 | (Rob Hoelz)++ | src/io/fileops.c: Don't freak out if we close a pipe twice This may or may not be a good idea; I'm just following the standard set by the JVM implementation |
||
| arVM/wip-openpipe: 6483a7a | (Tobias Leich)++ | src/io/fileops.c: Merge pull request #75 from hoelzro/wip-openpipe Don't freak out if we close a pipe twice |
|||
| hoelzro | thanks | 11:33 | |
| timotimo | are moarvm commit bits also covered by the need for a perl cla? | ||
| FROGGS_ | hoelzro: I won't apply the nqp PR yet, but after the wip-openpipe landed, alright? | ||
| jnthn | No | ||
| hoelzro | FROGGS_: sounds good | 11:34 | |
| FROGGS_ | timotimo: you need to send a beer to jnthn in order to get a commit bit :o) | ||
| timotimo | heh heh :) | ||
| hoelzro | FROGGS_: is that the secret? =P | ||
| does MoarVM have the same CLA policy that rakudo does? | |||
| FROGGS_ | no, no CLA | ||
| jnthn | No CLA, just as NQP | 11:35 | |
| Moar commit bits are given out to people I'm comfortable giving them to :) | |||
| FROGGS_ | *g* | ||
| puuh | |||
| good that I got mine :o) | |||
| jnthn | hoelzro: Do you not have a Moar commit bit? | ||
| hoelzro | jnthn: no | 11:36 | |
| but I've just started looking at it | |||
| I intend to work on it tomorrow at the Perl hackathon in AMS | |||
| well, the focus is Perl 6 | |||
| but if it involves Moar, that's cool with me =) | |||
| FROGGS_ | Moar's focus is Perl 6, that is its slogan :o) | 11:38 | |
| timotimo | jnthn: what's the reasoning behind using malloc + mp_init for the result object in the BINARY_OP_SIMPLE? | ||
| FROGGS_ | brb | ||
| timotimo | rather than using force_bigint which can do the allocation for us, too? | 11:39 | |
| or rather, the result object is likely to already be allocated for us from the interp.c code | |||
| jnthn | timotimo: force_bigint is for use on *existing* values, not on the result one we're constructing. | 11:41 | |
| timotimo: if it does have to force, it creates a temporary | |||
| timotimo: Which we clean up later | |||
| timotimo: But we don't want to clean it up if it's going to form the result in some cases. | |||
| timotimo | oh | ||
| yeah, that does make sense | 11:42 | ||
| timotimo revises his code | |||
| jnthn | Feel free to improve the comments I left on those functions. | ||
| hoelzro | if I were to install a Perl 6 module into a MoarVM rakudo tree, what would it install? A .moarvm file? | 11:49 | |
| hoelzro is trying to figure out the analogue to .pir | |||
| jnthn | .moarvm | 11:50 | |
| hoelzro | alright | 11:51 | |
| timotimo | it seems like we have two implementations of bitwise negation | ||
| hoelzro | and what if a rakudo install has multiple backends? Should a module installer (like ufo) install a .pir, .jar, and .moarvm file? | ||
| timotimo | one based on the MVM_BIGINT_UNARY_OP macro, one plainly called MVM_bigint_not | ||
| but since the code of the latter is, in comparison, incredibly tight, i'm just going to remove the former | 11:52 | ||
| jnthn | Do they do the same thing? | 11:54 | |
| We hve a not_i and a bitnot_i iirc | |||
| timotimo | oh, so the neg one is supposed to be -foo rather than ~foo? | 11:55 | |
| that makes sense. | |||
| 20 passing tests | |||
| jnthn | oh...neg is negativ,e I think. | ||
| timotimo | yes, it is | 11:57 | |
| now pow_I | |||
| i think i'll just go with "force bigints for all parameters" for now | 11:58 | ||
| jnthn | aye, if you use store_bigint_result it'll downgrade the result if it can. | ||
| timotimo | i saw that :D | 11:59 | |
| jnthn | Cool. Seems you're successfully figuring out my I-was-tired code :) | 12:00 | |
| nwc10 | Why does Rakudo end up creating a lot of P6BigInts? (which I assume is the reason why all this work is a win) | 12:01 | |
| timotimo | every Int is a bigint | 12:02 | |
| only int is non-bigint | 12:03 | ||
| but we end up using Int every time the user writes a number in the code and we can't say for sure that a native int would be fine as well | |||
| next up is expmod | 12:05 | ||
| jnthn | Right. Perl 6's default integer type has big integer semantics by default | 12:08 | |
| So the easy implementation was to just use mp_int for all of them. | |||
| timotimo | up to 34 passing tests already | ||
| jnthn | Now we're more at the phase of wanting to worry about performance over get stuff in... | ||
| timotimo | i shall push, so that you can tell me if i've forked up somewhere :) | 12:09 | |
| jnthn | ...it's worth tackling this. | ||
| dalek | arVM/jnthn_bigint_opt: 1baad4f | (Timo Paulssen)++ | src/math/bigintops.c: teach bigint_div about smallint. |
||
| arVM/jnthn_bigint_opt: e128df2 | (Timo Paulssen)++ | src/math/bigintops.c: implement smallint support for left-shift remove some stray backslashes |
|||
| timotimo | there we go :) | ||
| sorry, dalek :( | 12:10 | ||
|
12:10
dalek joined
|
|||
| timotimo | jnthn: any specific random number generator i should be using for rand_I? | 12:16 | |
| dalek | arVM/jnthn_bigint_opt: d041af9 | (Timo Paulssen)++ | src/math/bigintops.c: div_num can handle two smallint values now. may be worth it to specialize for "only a is big" and "only b is big" later on? |
12:20 | |
| arVM/jnthn_bigint_opt: 9e74f8b | (Timo Paulssen)++ | src/math/bigintops.c: bigint_rand without smallint support |
|||
| timotimo | er ... why do we pass an integer argument to the primality test? | 12:21 | |
| is that for giving it more or less accuracy? | |||
| only gcd, lcm and bool_I left | 12:25 | ||
| dalek | arVM/jnthn_bigint_opt: ced68ba | (Timo Paulssen)++ | src/math/bigintops.c: bigint_is_prime should at one point work with smallint, too. but for now, we just want to pass. |
||
| timotimo | passes all bigint tests | 12:27 | |
| dalek | arVM/jnthn_bigint_opt: c62e15e | (Timo Paulssen)++ | src/math/bigintops.c: gcd and lcm should really get proper smallint impls. they are used very heavily every time we have Rat objects. |
12:28 | |
| timotimo tries to compile a rakudo | |||
| Incomplete smallint handling! | 12:29 | ||
| something not covered by the test cases! | |||
| radix_I apparently. huh. | |||
| well, that'll be easy enough. | 12:30 | ||
| tonum_I seems to be missing tests in bigint.t, too | 12:33 | ||
| dalek | arVM/jnthn_bigint_opt: 541f51a | (Timo Paulssen)++ | src/math/bigintops.c: teach radix about smallint/bigint bodies. |
12:35 | |
| timotimo | we get to the optimizer now | ||
| arVM/jnthn_bigint_opt: dd9b245 | (Timo Paulssen)++ | src/math/bigintops.c: implement a smallint path for bigint_to_num |
|||
| timotimo | rakudo compiled completely \o/ | 12:42 | |
| dalek | arVM/jnthn_bigint_opt: 08398c9 | (Timo Paulssen)++ | src/math/bigintops.c: bigint_mod with smallint support |
||
| arVM/jnthn_bigint_opt: 2079191 | (Timo Paulssen)++ | src/math/bigintops.c: bigint_is_big with smallint support |
|||
| timotimo | jnthn: how do you feel about serializing smallbigints as 32bit integers? | 12:46 | |
| 220 wallclock secs - pretty decent for 4 parallel test jobs | 12:47 | ||
| hm. the smallbigint run seems to have taken significantly longer (though i was listening to music during the smallbigint run, but not the master run) | 12:53 | ||
| and there are some more failing tests | |||
| jnthn | timotimo: When we're done, we should have no calls left to get_bigint. | 12:54 | |
| timotimo: +1 on the serializing thing. Store a flag saying what's coming, and then the thing | |||
| timotimo | are we currently doing unnecessary extra work if we call one of the bigint_ ops from interp.c and pass an object to the result slot? | 12:56 | |
| nwc10 | does this mean that on the JVM, everything Rakudo creates is a JVM bigint, and a similar win would be possible? | ||
| timotimo | 0.21user 0.01system 0:00.23elapsed 98%CPU (0avgtext+0avgdata 92892maxresident)k | 12:57 | |
| that's master | 12:58 | ||
| 0.21user 0.00system 0:00.22elapsed 98%CPU (0avgtext+0avgdata 92540maxresident)k | |||
| that's our smallbigint branch | |||
| i wonder if this difference is actually meaningful and caused by our smallbigints? | |||
| (that's for -e "say 1" | |||
| so not a very valuable benchmark by any stretch of the imagination) | |||
| jnthn | Yeah. Doing a my @a = ^10000; is probably more informative. | 13:00 | |
| timotimo | heh. will try. | ||
| jnthn | No, we need to allocate a result object, still. Int is still boxed. | 13:01 | |
| But note I changed initialize to never allocate an mp_int any more. | |||
| timotimo | does the creation cause an mp_init? | ||
| ah, perfect! | |||
| =time ./perl6-m -e 'my @a = (^50_000).list' | 13:02 | ||
| 0.28user 0.03system 0:00.32elapsed 99%CPU (0avgtext+0avgdata 104196maxresident)k | |||
| =time ./perl6-m -e 'my @a = (^50_000).list' | |||
| 0.31user 0.05system 0:00.36elapsed 99%CPU (0avgtext+0avgdata 122288maxresident)k | |||
| feel free to guess which one is which | |||
| jnthn | I'm rather hoping the second one is with master :) | 13:03 | |
| timotimo | *ding* *ding* *ding* | ||
| you are correct! | |||
| one hundred million kilodollars! | |||
| \o/ | |||
| timotimo throws confetti | |||
| jnthn | That's a small performance win, but a big memory one. | ||
| timotimo | 18 megabytes difference, that's pretty decent | 13:04 | |
| jnthn | Yes. Hope this will have some good consequences out in real world code. | ||
| timotimo | me, too | ||
| with 200_000 numbers it goes to 201544maxresident -> 139164maxresident | 13:06 | ||
| and 0:00.78elapsed -> 0:00.60elapsed | |||
| the additional spectest failures are not as nice, though | 13:07 | ||
| maybe sprintf needs to learn about smallbigint, too, for example | 13:09 | ||
| jnthn | Well, do you hvae anywhere that get_bigint is still called? | 13:10 | |
| timotimo | oh hold on | ||
| it's partially just re-ordering inside the results m) | 13:11 | ||
| -t/spec/S03-operators/arith.t (Wstat: 0 Tests: 145 Failed: 5) | |||
| - Failed tests: 6-7, 14-15, 145 | |||
| +t/spec/S03-operators/arith.t (Wstat: 0 Tests: 145 Failed: 7) | |||
| + Failed tests: 2-3, 6-7, 14-15, 145 | |||
| Parse errors: Bad plan. You planned 144 tests but ran 145. | |||
| +t/spec/S03-operators/numeric-shift.t (Wstat: 0 Tests: 36 Failed: 12) | |||
| + Failed tests: 4, 6, 10, 12, 16, 18, 22, 24, 28, 30, 34 | |||
| + 36 | |||
| +t/spec/S03-operators/overflow.t (Wstat: 0 Tests: 98 Failed: 1) | |||
| + Failed test: 46 | |||
| er, the overflow is not legit | |||
| +t/spec/integration/lazy-bentley-generator.t (Wstat: 0 Tests: 1 Failed: 1) | 13:12 | ||
| + Failed test: 1 | |||
| this one is legit | |||
| jnthn | Thie numeric-shitf onel ooks legit too | ||
| wow, great typing! | |||
| timotimo | %) | 13:13 | |
| not ok 22 - got expected value for shl -15 by -3 | 13:14 | ||
| # got: '2305843009213693952' | |||
| # expected: '-2' | |||
| that seems pretty far off the value we wanted | |||
| jnthn | yes :) | ||
| Probably some fail with handling shifting signs | |||
| timotimo | github.com/MoarVM/MoarVM/blob/jnth...ops.c#L509 - you probably know more about C and shifting than me | 13:15 | |
| oh | 13:16 | ||
| shift left by negative numbers | |||
| of course | |||
| i don't handle that properly at all | |||
| er ... i think i need a force_bigint there | 13:18 | ||
| and an mp_init | 13:19 | ||
|
13:19
FROGGS joined
|
|||
| timotimo | but that doesn't fix the test failures | 13:20 | |
| dalek | arVM/jnthn_bigint_opt: ad0b98e | (Timo Paulssen)++ | src/math/bigintops.c: fix some mess-ups in bigint_shl |
13:21 | |
| jnthn | The spectests to triage aside, this has gotten us quite a long way with the small big ints stuff... :) | 13:22 | |
| timotimo | yes, i'm glad you got me started with some high quality code | ||
| timotimo has an implementation for flagged (and backwards-compatible) bigint/smallint serialization/deserialization | 13:31 | ||
| jnthn | yay | 13:33 | |
| timotimo | and i could build a rakudo with it | 13:36 | |
| of course i neglected to measure the sizes of the serialized files | |||
| and i'm guessing there's hardly any P6bigint in the nqp bootstrap | |||
| jnthn | No, there's none in NQP | 13:38 | |
| timotimo | probably not too many in the core setting .moarvm file? | ||
| 9187399 ā that's the size with smallerized serialization | 13:39 | ||
| jnthn | Some, though. | ||
| I mean, the setting has its share of Int constants. | |||
| But in the grand scheme of things I suspect it's fairly few | |||
| Especially as it is smart enough to re-use constants. | |||
| timotimo | i wonder if we should keep one level of serialization *writing* backwards compatibility? | 13:41 | |
| so that we can easily switch back and forth between versions while developing | 13:42 | ||
| and not having to rebuild nqp and rakudo | |||
| jnthn | timotimo: I generally prefer to | ||
| timotimo | 9189363 ā without smallerized bigints | 13:45 | |
| so ... 2 kilobytes? | |||
| jnthn | Yeah... | ||
| timotimo | ah well. it'll kick in if we have an array constant of, say, the first 1000 prime numbers | ||
| jnthn | Small win is small. | ||
| right. | |||
| dalek | arVM/jnthn_bigint_opt: 7949341 | (Timo Paulssen)++ | src/6model/ (2 files): serialize smallints smaller, put a flag in front |
13:46 | |
| timotimo | i think you misread my point about writing backwards compatibility | 13:48 | |
| i know we have multiple levels of reading backwards compatibility | |||
| but i see no way to tell the serializer to write the format of an older version | |||
| jnthn | Oh | 13:50 | |
| No, there's no way to do that. | |||
| And I don't think we need one. | |||
| Not at the moment, anyway. | |||
| timotimo | fair enough. | ||
| sigh, i feel myself unmotivated to go fix the test fallout right now | 13:53 | ||
| i suppose it's time to take a nice walk in the only somewhat nice weather outside | |||
| jnthn | Here the weather mings. | 13:59 | |
| timotimo | i don't know what that means :\ | ||
| jnthn | timotimo: "it's disgusting" | 14:03 | |
| timotimo | aaw | ||
| it's very windy outside, it seems | |||
| jnthn | wind and rain here | 14:04 | |
| timotimo | i shall use the time i'm away from the computer to run some benchmarks | 14:09 | |
| sadly, perl6-bench has no way for me to tell it to "build this rakudo with moarvm=master and this rakudo with moarvm=jnthn_bigint_opt" :( | |||
| japhb_, japhb__: ^ | 14:10 | ||
|
14:34
jnap joined
14:49
ggoebel1115 joined
15:06
benabik joined
|
|||
| japhb__ | *cough* Implementation welcome! *cough* | 16:37 | |
| japhb__ is about 5 levels deep in Perl 6 yak shaving and is trying to avoid further distraction. | |||
| I will say that I'm *really* wanting A) working sockets everywhere, and B) a solid binding for a security library (e.g. openssl) | 16:38 | ||
| jnthn | japhb__: They already work on JVM, afaik? It's Moar that's missing 'em? | 16:39 | |
| japhb__ | About the only way to do anything not strictly local here is to shell out to something else that has the proper capabilities, because you can't sneeze without encryption. | ||
| jnthn: Yeah, so all my work is JVM-specific right now, which makes for eye-rolling startup time. :-/ | 16:40 | ||
| jnthn | japhb__: Well, there's Parrot :P | 16:41 | |
| japhb__ ruminates for a bit on the concept of encrypted sneezes. | |||
| jnthn | I suspect Moar will have sockets by the Feb compiler release, anyways. | ||
| But you still need the concurrent stuff I guess | |||
| japhb__ | jnthn: Yeah, right now I use r-m for one-liners and no-network scripts, r-p for REPL, and r-j for net or concurrent scripts. | 16:42 | |
| jnthn | japhb__: Not r-m for REPL 'cus not proper readline yet? | ||
| japhb__ | jnthn: Yup. | ||
| jnthn | k | ||
| Need to figure out readline spewing... | |||
| japhb__ | I tend to need readline to get into flow thinking. | ||
| jnthn | It did work on Windows. | 16:43 | |
| I wonder if you managed to link it against normal readline rathr than linenoise it works out. | |||
| japhb__ has access to MacOS and Linux right now. | |||
| (And doesn't know didly about MacOS builds -- I just use the Mac as a nice piece of hardware for SSH'ing to a Linux box) | 16:44 | ||
| japhb__ chuckles ... the person in front of me on the bus is reading a romance novel on her phone. In really big print. | 16:46 | ||
| timotimo: EMESSAGEDOESNTMATCHCOMMIT: irclog.perlgeek.de/moarvm/2014-02-07#i_8246872 | 16:47 | ||
| Not that it's worth trying to fix that now .... | 16:48 | ||
| jnthn | japhb__: I hope it's not 50 shades of grey... :P | 16:49 | |
| japhb__ | Whatever it is, the writing is AWFUL. I glance forward when I'm thinking and my brain captures half a sentence and wants to run away screaming. | 16:52 | |
| timotimo | japhb__: it *does* match the commit, but only indirectly | 16:53 | |
| gcd and lcm are the only users of that particular macro | 16:54 | ||
| MVM_BIGINT_BINARY_OP(gcd) | |||
| MVM_BIGINT_BINARY_OP(lcm) | |||
| japhb__: do you have an idea how multi-versioned targets should be handled? like, just a few pointers? | |||
| japhb__ | timotimo: Hmmm, lemme think | 16:56 | |
| japhb__ checks something | 16:57 | ||
| timotimo | maybe the compilers file should have a section "parameters": {"moarvm": "master", "nqp": "master"} or something | ||
| and if you specify the empty string, it won't pass a --gen-moar (for example) and the configure script will use NQP_REVISION and/or MOAR_REVISION | 16:58 | ||
| japhb__ | Hmmm, that's not a bad idea | 16:59 | |
| timotimo | i'm not 100% sure if we can --gen-moar=foo --gen-nqp=bar from rakudo's own Configure.pl | ||
| if we could, that should work | |||
| it would then have a name like "rakudo-moar/master//7fpebcak" for example | 17:00 | ||
| or *maybe* it should fill out these slots by looking at the actual *_REVISIOON used | |||
| i think that makes more sense, but would have to be a bit magical; maybe there should be a list of "theis subdirectory is the checkout for this part, this other subdirectory is the checkout for that part" | 17:02 | ||
| and it would grab the names from those | |||
| japhb__ | So we need to be able to pass things through to the build steps, and I don't want to special-case how configure works | ||
| dang, early boss stop, bbiab | |||
| timotimo | heh. | ||
| i have an idea for that | 17:04 | ||
| japhb__ | Corned beef hash FTW | 17:08 | |
| timotimo | japhb__: gist.github.com/timo/301073744c9555c79064 | ||
| japhb__ | Interesting, where are you getting those variable values? | 17:09 | |
| japhb__ wonders if it isn't easier to have a 'configure_flags' key in compilers.pl (or passed through from the command line) | 17:10 | ||
| (command line of 'bench build' I mean) | 17:11 | ||
| Actually no, because compilers.pl is ... Perl 5. | 17:12 | ||
.oO( use v5) |
|||
| timotimo | also because compilers.pl isn't responsible for building the components | ||
| japhb__ | I'm not sure what this pancake flavor is, but it's not coconut. | 17:13 | |
| timotimo | i would think the variable values would be "positional" and it would split the part after the first / either at a , or at another / and get the values that way | ||
| so if you have parameters: <nqp mvm> and you ask perl6-bench to extract&build rakudo-moarvm/f00b42, you'd get a rakudo-moarvm with an nqp at f00b42 | 17:14 | ||
| japhb__ | component/rev:var1=val1,var2=val2? | ||
| timotimo | nah, i don't like that | ||
| but / is also not such a good idea | |||
| it should map to subfolders of the component without more depth, IMO | 17:15 | ||
| but using something that can be part of a git branch/tag name would be problematic, too | |||
| japhb__ | What punctuation can be used in a branch/tag name? I know . and /, what else? | ||
| timotimo | - and _ | ||
| you can use / in branch names!? | |||
| jnthn | yes :) | ||
| japhb__ | I don't even think of - and _ as punctuation these days, heh | 17:16 | |
| timotimo | :) | ||
| clearly we should use ⦠| |||
| since the commits are usually abbreviated anyway | |||
| well, brackets might be an option | 17:17 | ||
| japhb__ | Curlies? Already used for brace expansion. I tend to say things like rakudo/2014.{01,02} | ||
| Don't want visual confusion. | |||
| Why is : not useful? | |||
| timotimo | git-check-ref-format is enlightening | 17:18 | |
| not curlies | |||
| japhb__ | Hah, Rule 4: I was right. ;-) | 17:19 | |
| timotimo | :) | ||
| japhb__ | Square braces might work, though. | ||
| timotimo | : would be acceptable, but i'd really rather not have the variable name in there along with the value | ||
| japhb__ | If you really think : fails the visual distinctiveness test. | ||
| timotimo: What if you only want to override one? | |||
| timotimo | use :: | ||
| japhb__ | What if we start building a lot of flexibility into the build procedures, and most of the time, you want most of the defaults? | 17:20 | |
| timotimo | the default ought to be the empty string. using :: is the natural consequence, at least to me | ||
| i don't think we should have that many parameters | |||
| japhb__ | Which reminds me, the defaults need to be stored in components.json. | ||
| japhb__ is thinking farther down the road, not just the immediate problem. | |||
| timotimo | the defaults would always be the empty string; the build steps list would be in charge of figuring out the rest | ||
| japhb__ | (If I'm going to play designer instead of coder, I have to.) | 17:21 | |
| timotimo | :) | ||
| also, if we think about things like versions mostly, the "default" would be specified by what's in our check-out | |||
| japhb__ | I think empty string is a default default, not a default. | ||
| timotimo | which is problematic, because we'd like to name our directory after the version and parameters | ||
| japhb__ | Do you really want to code the ability to parse NQP_VERSION as part of components.json? | 17:22 | |
| timotimo | and if we only figure out what the NQP_REVISION was after we made our clone, we have to go out, mv, go back in | ||
| not parse NQP_REVISION | |||
| japhb__ | Damn, I need to run for a meeting. | ||
| I'll backlog. | |||
| timotimo | it'd be something like "defaults": {"nqp": [ "cat tools/build/NQP_REVISION" ] } | ||
| i'd love to see statistics about collective start-up time for each backend ... "the jvm wasted 40 minutes of this benchmark run just for starting up" | 17:31 | ||
| jnthn | Beer time, at last & | ||
| japhb_ | timotimo, Well, we do measure startup and compile times ... | 19:17 | |
.oO( Beer time? Why yes, I believe it is! ) |
19:18 | ||
| FROGGS | k, I have P6 tuits now... but what to do? | 19:40 | |
| nwc10 | 1) review your qx{} change? | ||
| 2) get Panda working on MoarVM | 19:41 | ||
| 3) profit! | |||
| or | |||
| 0) give up for the evening and drink beer | |||
| FROGGS | 1) I think somebody else should do it, because I won't see my thinkos | ||
| 2) yeah, good point | |||
| 0) no, I don't even have beer :o) | |||
| ohh | 19:42 | ||
| 4) NDEBUG? | |||
| nwc10 | I thought that jnthn had doen NDEBUG | ||
| FROGGS | ahh, k | ||
| had no time to backlog :/ | |||
| nwc10 | just read the commits :-) | 19:44 | |
| FROGGS | yeah | ||
| dalek | Heuristic branch merge: pushed 19 commits to MoarVM/wip-openpipe by FROGGS | 19:46 | |
|
19:49
jnap joined
|
|||
| timotimo | FROGGS: there's LHF tests for bigint operations in t/nqp/60-bigint.t if you like something very easy | 19:57 | |
| FROGGS | timotimo: yeah, perhaps | ||
| timotimo | and shift left/right misbehaves a lot in the same branch | ||
| (jnthn_bigint_opt) | |||
| FROGGS | video.fosdem.org/2014/K3201/Saturday/ | 20:03 | |
| timotimo | oooh awesome! | 20:09 | |
| thank you very much :) | |||
| FROGGS | now I know what I will do when $kids are sleeping :o) | 20:10 | |
|
20:10
dalek joined
|
|||
| timotimo | wowza | 20:14 | |
| no post-processing on the sound of the video whatsoever :( | |||
| FROGGS | :o( | 20:15 | |
| timotimo | at 2:50 minutes in, the buzzing starts to subside | ||
| here's the buzzing again ;_; | 20:16 | ||
| it seems like quite a bit more than half of the time the sound is okayd | 20:20 | ||
| i wonder why nqp-moarvm is a tiny bit slower than parrot at the while_array_set benchmark | 20:47 | ||
| microbenchmark* | |||
| it amuses me greatly, that moarvm is not only much faster than parrot at "loop_empty_native", but the jvm only catches up at the very, very end of the benchmark run | 20:48 | ||
| oh dang! | 20:49 | ||
| i didn't even build the code gen for locallifetime yet! | |||
| FROGGS | :o) | 20:51 | |
| timotimo | FROGGS: if you want to, you can try it yourself ;) | ||
| FROGGS | bah | 20:52 | |
| :P | |||
| lee__ | timotimo: are your benchmarks online somewhere? | ||
| lee__ is curious | |||
| FROGGS | I don't think that this would work out when I am not even able to port the labels ops :o) | ||
| lee__: maybe this? feather.perl6.nl/~raiph/25jan2014-b...kudos.html | 20:54 | ||
| timotimo | lee__: one second. | ||
| huh, where did i put my benchmarks the other times ... | 20:55 | ||
| ah | |||
| lee__ | FROGGS' link looks interesting, and pretty recent | 20:56 | |
|
20:56
colomon joined
|
|||
| timotimo | t.h8.lv/p6bench/2014-02-07-regular.html | 20:56 | |
| lee__ | awesome | 20:58 | |
| thanks | |||
| timotimo | yw | ||
| there is way more non-buzzed audio than buzzed audio in the talk | 21:02 | ||
| i'm happy about that | |||
| the buzzing has returned! :( | 21:05 | ||
| somebody invited the microphone over to a pillow fight or something | 21:06 | ||
| the pillows are furious | 21:07 | ||
| dalek | arVM/wip-openpipe: 3cdc2a0 | (Tobias Leich)++ | src/io/procops.c: initialize and set exit codes |
21:19 | |
|
21:28
jnap joined
|
|||
| FROGGS | that is pretty much the first thing panda does: | 22:13 | |
| panda$ PERL6LIB=ext/File__Find/lib:ext/Shell__Command/lib:ext/JSON__Tiny/lib:lib perl6-m bin/panda install File::Find /home/froggs/dev/panda | |||
| Could not download module metadata: Could not find symbol '&INET' | |||
| so, we'd need that now | |||
| timotimo | yeah ... not going to happen that soon :( | ||
| FROGGS | hmmm, why? | 22:15 | |
| timotimo | we don't have any sockets and i don't think i feel up to it | ||
| FROGGS | are we supposed to do that after IO refactor? | ||
| timotimo | jnthn would have to say | 22:21 | |
| i *think* it'd make sense, but what do i know :) | |||
| FROGGS | on the other hand he would have patterns for things that somehow do their job... | 22:22 | |
| we'll see :o) | |||
| timotimo | hm, i guess | 22:23 | |
|
22:27
benabik joined
22:50
benabik joined
|
|||
| jnthn | evening o/ | 23:40 | |
| timotimo | evening jnthn | ||
| i think i'm going to bed now, though | |||
| jnthn | :) | 23:42 | |
| jnthn had a long decommute | |||
| An IPA, a curry, a lambic and an imperial stout. Hard life. :) | |||
| ooh, a new perl6-bench set... :) | 23:43 | ||
| timotimo | i got sidetracked into yak shaving after doing that set | 23:46 | |
| i want to do a comparison against a rakudo-moar with the smallint changes | |||
| that'd either require a hack or parameterised builds for perl6-bench's components ... | |||
| (and it would also require the smallint operations to all work :P) | 23:47 | ||
| jnthn | Also that :) | 23:52 | |
| dalek | arVM/jnthn_bigint_opt: 90256a9 | (Timo Paulssen)++ | src/math/bigintops.c: negative right-shift could be trouble for smallint. |
||
| timotimo | (this commit also doesn't fix it at all) | ||
| gnite o/ | |||
| jnthn | 'night | 23:53 | |