timotimo | it appears that get_bigint gets a pointer-pointer sometimes and a single-pointer at other times from the get_boxed_ref fucntion | 00:04 | |
function* | |||
i should do a comparison of the address against likely heap positions and if it seems to be a pointer-pointer, deallocate once more! | 00:06 | ||
that's a totally sensible thing to do! | |||
i think i fixed it now >_> | 00:07 | ||
yeah, it works now | 00:08 | ||
but i don't know why i had to do that | |||
this is a foundation upon which i can start working with littlebigints | 00:10 | ||
now i know why it was wrong | 00:20 | ||
so there's something | |||
japhb__ | Knowing why it's wrong is a big thing! | 01:10 | |
timotimo | :) | 01:21 | |
indeed it is | |||
i fear i'll have to endure lots and lots and lots of pain while implementing little_big_int | |||
japhb__ | But just think of the upside! :-) | 01:39 | |
timotimo | that's right | 01:46 | |
01:50
ggoebel1113 joined
|
|||
timotimo | i think we may already win a crapton of memory just by reducing the "how much data to allocate for a fresh mp_int" | 01:51 | |
down from 32 longs to ... 4 longs for example? | |||
01:58
jnap joined
|
|||
timotimo | yeah, -DMP_LOW_MEM already makes a measurable difference to even -e "say 1" | 02:06 | |
not terribly big, but still measurable | |||
nope, not actually measurable. | 02:21 | ||
er, hold on | |||
i built another one with LOW_MEM | |||
diakopter | timotimo: what are you doing awake :) | 02:22 | |
timotimo | yeah, i'm going to bed right now. | ||
gnite | |||
diakopter | o///// | ||
03:17
tokuhirom joined
|
|||
ingy | hi diakopter | 04:15 | |
04:21
jnap joined
05:22
jnap joined
05:50
krunen joined
06:06
TimToady joined
06:23
jnap joined
06:39
PerlJam joined
06:40
lee__ joined
06:45
lue joined
06:46
woolfy joined
07:27
TimToady1 joined
07:59
FROGGS joined
08:24
jnap joined
09:25
jnap joined
10:26
jnap joined
10:41
FROGGS joined
11:01
diakopter joined
11:27
jnap joined
12:20
odc joined
12:23
JimmyZ joined
12:27
jnap joined
|
|||
nwc10 | I have a git submodules question, which will involve a *lot* of swearing soon. :-( | 12:36 | |
How come Confgure.pl keeps insisting on winding 3rdparty/libuv back to commit 3e054c36294f9d8fc197c9d1b715ea2db334f6bf (Sept 3rd) | |||
which breaks the build | |||
and contradicts the commit I can see in history which says that the correct commit is 666aa2f0683dc8b80954c01e5799d476e4068350 | 12:37 | ||
diakopter | did you git submodule update to update it? or update it from within? | ||
(I found it makes a difference :S) | 12:38 | ||
nwc10 | I tried from within | 12:40 | |
in which case, they seem to be a FUCKING STUPID thing. | |||
OK, if I cherry-pick the commit which did the update (ee5a5bd1e4695bc96f9040f4582bc9f2499fe370) then it works | 12:42 | ||
*but* I don't see that commit in the log for the directory | |||
timotimo | as far as i know, you cd to the submodule, checkout the commit you want, cd outwards, git add the submodule and git commit the result | 12:45 | |
and then it should DTRT | |||
nwc10 | no, somewhat confused (oops, I have 3 checkouts) but I do have to cherry-pick that commit | 12:46 | |
so there is something fucked up here | |||
timotimo | bleh. the task of setting up little_big_int is very daunting | ||
it'll most probably be a big chunk of work and in the middle, nothing will work :( | |||
nwc10 | ah shit, I see. I have a cherry-picked commit locally that also unwinds that. Gah. | 12:47 | |
this stuff is painful | |||
right, because if I check out a different branch, the submodules don't update, but are now different, and git add will suck them in | 12:48 | ||
timotimo | maybe we should switch over to subtree merges at some point :\ | 12:49 | |
nwc10 | FUCK FUCK FUCK FUCK I can't unwind this with git rebase -i | 12:55 | |
even when I can see what I need to do | |||
this is really blood stupid. | 12:56 | ||
bloody. I can't type. | |||
timotimo | git rebase -i is nothing more than an automatic application of a series of git cherry-pick operations | 12:58 | |
plus it can squash commits into single commits | |||
if you can conceive it, you can achieve it! | 12:59 | ||
nwc10 | yes, I did eventually work out which part of this was PEBKAC | 13:02 | |
but I still don't *like* the submodules | 13:03 | ||
timotimo | yeah, submodules should be amazing and simple and convenient in theory | ||
but somehow they end up being super obnoxious | |||
13:28
jnap joined
|
|||
diakopter | nwc10++ # persistence | 13:32 | |
13:33
dalek joined
|
|||
tadzik | everybody seems to hate submodules | 13:42 | |
moritz | I mostly hate them because support for them in most git commands is lousy | 13:56 | |
tadzik | I wonder if subtrees are old enough so we can start using them | 14:02 | |
they're supposed to be less painful | |||
diakopter | ingy made a subcommand that is supposed to be best of both worlds | ||
I don't remember what its called | |||
FROGGS | T'Pol? | 14:06 | |
ohh no, that was a sub commander :o) | |||
diakopter | *snort | 14:07 | |
FROGGS | sneeze* | 14:08 | |
14:18
jnap joined
|
|||
masak | tadzik: it always seemed to me that the 'git submodule' command is rather OK, but the essential complexity of submodules is quite horrible. | 15:25 | |
tadzik: basically, you start asking non-obvious questions of the form "how do submodules interact with feature X" for various values of X, and before you know it, sweat is breaking out on your forehead. | 15:26 | ||
tadzik | heh, yeah | ||
masak backlogs and finds this to be the cause of nwc10's swearing | 15:29 | ||
nwc10: I don't know if this helps, but ISTR that the submodule commit information is stored in two places: one is in the appropriate tree object, and one is in the .gitmodules file. | 15:30 | ||
nwc10: but my memory is fuzzy, so don't take my word for it. then again, that may help. | |||
timotimo | the .gitmodules only stores where to clone the commit from | 15:40 | |
iirc | |||
hoelzro | FROGGS: did you finish impl'ing openpipe? | 16:15 | |
I ended up not bringing my laptop to FOSDEM, so I didn't get to work on it at all =( | |||
FROGGS | hoelzro: irclog.perlgeek.de/moarvm/2014-02-03#i_8226084 | 16:16 | |
hoelzro: no worries :o) | 16:17 | ||
hoelzro | ah ha | ||
damn, I was hoping to get my first feature into Moar =/ | |||
oh well | |||
the best code is the code you don't have to write, right? =P | |||
FROGGS | so we can write to a pipe, but not read from it | ||
hoelzro | oh, really? | ||
I had it the other way | |||
FROGGS | hoelzro: I have not committed yet :O) | ||
hoelzro | by our powers combined... | ||
I have a party to go to tonight, but I think I have tomorrow to hack on stuff | 16:18 | ||
and I'm going to a Perl hackathon this weekend; most/all of my time there will be on P6 | |||
FROGGS | hoelzro: but you used unix's pipe(), and I think we should use lib_uv's stuff | ||
cool! | |||
hoelzro | right, I looked into that | ||
libuv's pipe isn't really a pipe | |||
I mean, it *can* be | |||
FROGGS | the reading-from-a-pipe thing is very weird (when you apply my gist) | 16:19 | |
hoelzro | but there was some oddness working with them | ||
timotimo | it's just sockets, no? | ||
hoelzro | timotimo: I think on Unix it's impl'd as a socket pair | ||
FROGGS | if I'd know how I would test it on windows | 16:20 | |
(reading from a child process) | |||
err, writing too | |||
FROGGS is totally bamboozled by all these buttons and knobs | 16:23 | ||
timotimo | mhm | 16:25 | |
i'm not feeling up to the task of little big ints right now :( | 16:33 | ||
i'll work on ADT instead i guess | 16:34 | ||
FROGGS | I know that feeling | 16:35 | |
labels... *shudder* | |||
timotimo | :| | ||
FROGGS .oO( SHUDDER: ) | 16:37 | ||
timotimo | :D | ||
jnthn | evneing o/ | 17:16 | |
timotimo | hey jnthn :) | 17:17 | |
jnthn survived a busy day's teaching | 17:19 | ||
timotimo | does the evening hold some hacking? :3 | 17:20 | |
jnthn | uh... | 17:21 | |
...one of my colleagues is in town. And he likes curry and beer every bit as much as me. So I fear not. | 17:22 | ||
Will have time agian soon, though. | |||
Can hack tomorrow evening after the train home....and probably a bit on Thursday too :) | 17:23 | ||
timotimo | that's fair enough :) | ||
jnthn | My first half of next week is weird. I either have teaching in Oslo or teaching on Goteborg or nothing and I still don't actually know. :) | 17:24 | |
moritz recommends teaching nothing in Oslo to stundents from Goteborg | 17:27 | ||
jnthn | :P | 17:29 | |
17:32
benabik joined
17:49
Util joined
18:17
FROGGS joined
|
|||
ingy | tadzik, moritz, diakopter, masak: github.com/ingydotnet/git-subrepo#readme | 18:38 | |
moritz | ingy: is that basically infrastructure for the subtree merge strategy? | 18:40 | |
FROGGS | umm, I can read from a pipe now | 18:49 | |
ingy | moritz: bbiab | 18:50 | |
FROGGS | MVMObject * MVM_file_openpipe(MVMThreadContext *tc, MVMString *cmd, MVMString *cwd, MVMObject *env, MVMString *err_path) | 18:52 | |
does somebody know what the err_path is supposed to be? | |||
that openpipe op really is weird, there is no way I can tell it to open a :rp or :wp (or even :rwp) | 18:53 | ||
jnthn: ping | 18:58 | ||
moritz | I don't think pipes can be :rwp | 18:59 | |
I mean, pipes are unidirectional | |||
(not sure about named pipes, but I don't think they are handled with the same syscalls) | 19:00 | ||
FROGGS | moritz: but what if I want to: $fh = "wc".IO.open(:r, :w, p:); say $fh.print("hello world") ? | 19:01 | |
moritz | FROGGS: then you need to open two pipes | ||
FROGGS | it would be about two pipes internally (or two streams in case of libuv) | ||
would be more like: $fh = "wc".IO.open(:r, :w, p:); $fh.print("hello world"); say $fh.get | 19:02 | ||
but either way, the current openpipe op has no option about the direction(s) | 19:03 | ||
and then the next question: how do you do Capture::Tiny in perl6? | 19:04 | ||
I can open two pipes, one for stdout and one for stderr... but how do we present this to perl6 land? | 19:05 | ||
FROGGS reads perlcabal.org/syn/S32/IO.html#IO%3A%3APipe | 19:07 | ||
so: my ($r, $w) = open("/usr/bin/wc", :r, :w, :p).pair( :err(...) ) ? | 19:12 | ||
moritz | maybe we really want my $handle = run('wc', :pipein, :pipeout); $handle.in.say: 'A line'; $handle.in.clone; | 19:14 | |
s/clone/close/ | |||
FROGGS | it is definitely more about run() then open(), aye | 19:15 | |
but then again, I do like :r :w :p | |||
stderr does not fit in there sadly | 19:16 | ||
moritz | it fits nicely into run | ||
FROGGS | troo | ||
p: say IO::Pipe | |||
camelia | rakudo-parrot 44ab3c: OUTPUT«Could not find symbol '&Pipe' in method <anon> at gen/parrot/CORE.setting:12232 in any at gen/parrot/Metamodel.nqp:2693 in any find_method_fallback at gen/parrot/Metamodel.nqp:2681 in any find_method at gen/parrot/Metamodel.nqp:948 i…» | ||
FROGGS | k | ||
moritz | and .run really needs to return an object anyway | ||
FROGGS | run('wc', :in, :out, :err) ==> IO::Pipe | 19:17 | |
what about redirection? | |||
run('wc', :in, :out, :err(:out)) ? | 19:18 | ||
I almost like it | 19:21 | ||
my $word-count = run('wc', :in, :out, :err(:out)); $word-count.in.say: "hooray!"; say $word-count.out.lines; $word-count.close | 19:24 | ||
I am not sure about the close... | |||
should I call it on .in? or this way which calls it on .in/.out/.err? | 19:25 | ||
19:33
TimToady joined
|
|||
FROGGS | qx/qqx does work now too | 20:09 | |
nwc10 | moritz: IIRC pipes are official unidrectional, but at least something (BSD, so is that everything now) used socketpair() behind the scenes, so pipe were actually bidirectional | 20:11 | |
FROGGS: yay | |||
I can haz Moar Star? | |||
FROGGS | libuv does not use anonymous pipes... it is a (tcp?) stream or so | 20:12 | |
but I don't really are as long as it works cross platform | |||
dalek | arVM/wip-openpipe: 67a0f6f | (Tobias Leich)++ | src/ (6 files): implement openpipe, hoelzro++ |
20:14 | |
FROGGS | moritz: if we rename IO::Pipe.from/.to to IO::Pipe.in/.out/.err the we can hand that type back for run(Str, :in, :out) *as well as* open(Str, :r, :p) | 20:23 | |
moritz / TimToady: is that a bad idea? | |||
IO::Pipe.get could then be an alias to IO::Pipe.in.get | |||
etc | |||
print/say would default to .out instead of .err | 20:24 | ||
20:32
jnap joined
|
|||
FROGGS | if there is no intervention until tomorrow evening I'll change openpipe to my needs | 21:01 | |
diakopter | on windows it uses anonymous pipes I thought | 21:02 | |
FROGGS | nikhilm.github.io/uvbook/processes.html#pipes | 21:04 | |
Pipes | |||
libuv’s uv_pipe_t structure is slightly confusing to Unix programmers, because it immediately conjures up | and pipe(7). But uv_pipe_t is not related to anonymous pipes, rather it has two uses: | |||
[...] | |||
diakopter: is there a command line utility on windows that reads from stdin? | 21:05 | ||
diakopter | and does what with it | ||
FROGGS | I just wanna tets that I can print to it | ||
wc on linux is nice for testing | 21:06 | ||
diakopter | maybe copy con? :S | ||
FROGGS | I'll find something :o) | ||
23:31
jnap joined
23:32
lizmat joined
|