github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 25 June 2013.
01:06 Guest1337 joined 01:30 FROGGS joined 02:05 benabik joined 02:50 JimmyZ_ joined 03:46 Guest1337 joined
JimmyZ [A 03:49
05:39 FROGGS[mobile] joined 10:05 woosley1 joined 12:28 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
12:35 birdwindupbird joined 13:11 woosley1 joined 13:24 FROGGS[mobile] joined 13:40 FROGGS[mobile] joined
dalek arVM: 9920029 | (Geoffrey Broadwell)++ | src/core/oplist:
Snapshot of bigint op additions to src/core/oplist
14:36
arVM: c421703 | (Geoffrey Broadwell)++ | src/core/interp.c:
Merge branch 'master' into add-bigint-ops

Cope with nqp::locallifetime.
jnthn Just merged japhb++'s earlier bigint work. 14:37
14:37 dalek joined
JimmyZ \\o/, japhb++ 14:38
jnthn JimmyZ: Will get to your container branch shortly... 14:40
JimmyZ jnthn: thanks :P 14:44
jnthn Moar's nqp-cc now passes nqptest against latest nqp again.
nwc10 if MoarVM is prepared to bundle APR, should it not also bundle libuuid? 15:52
jnthn Apart from we're gonna move to libuv.
nwc10 (or, more elegantly, force the configure/link *not* to detect uuid.h)
oh, it's autoconf. mahahaha(bias)hahahaa 15:53
jnthn ;)
nwc10 because, as best I can work out, libuuid is *optional* for APR
jnthn We certainly ain't using that feature of APR
Wonder if you can configure to avoid it at all 15:54
nwc10 mmm, yes. 15:55
FROGGS that would save us a lot of pain 15:56
I believe there were more than 5 commits/PRs that "make libuuid work"
benabik Can't we just pass --no-uuid to APR or something? 15:58
jnthn Yes, if it offers that
benabik I suppose that question was more "shouldn't APR have a --no-uuid" option? ;-) 15:59
nwc10 it's autoconf 16:00
if it exists it will be spelled differnetly
and it's not in --help
also, and this is an opinion, I see *no* benefit to using a shared object for a bundled library 16:02
it's just making work
that shared library in the private tree (not even installed yet) is not used by anything other than the moarvm executable 16:03
so
1) LD_LIBRARY_PATH or however the OS names that variable has to be set
2) the dynamic linker does work at runtime 16:04
but there's no space saving
benabik nwc10: I think that comes back to "the plan is to use libuv"
nwc10 the same would apply for a bundled libub
er, libuv
unless and until moarvm can also be installed as a libmoarvm.so which *other* things can link to and embed
I believe that there's no reason to have anything private and bundled done as shared libraries 16:05
benabik patches welcome? 16:07
nwc10 archived *design decisions* and discussion needed
we are where we are due to patches being welcome 16:08
it's not sufficient
and also, I don't have time to do this and everything else
benabik Who does? 16:09
nwc10 also, I'm currently sort-of on holiday and away from the only signifcantly fast machien that I have root on, and can play with adding/removing packages
which for the next 2 weeks makes it hard for me to experiment and produce somethign I'm confident would work
I know someone, but I'm not sure how to lure him
benabik Huh. It looks like APR looks for uuid and then tries to use it, and if it can't just uses its own. Somewhat confused as to how this failed. 16:10
*fails.
nwc10 benabik: *one* of the ways that it failed, when I experiemnted, was that it can see the header, but it doesn't add the link-line to moarvm 16:11
I suspect that moarvm needs to use the APR-generated config script to answer "what other libraries do I need?"
benabik Ahhhh... 16:12
Yeah, that seems likely. I kinda wish ld would load libraries required by libraries.
nwc10 it does
oh, wait
benabik Obviously it don't.
nwc10 in this case, it wasn't told how to
but also, it needs to know paths
assuming it's on-topic enough for the perl 6 hackathon in Kiev, I'll attack it there 16:15
but I don't think that it would wait that long 16:16
and I don't want to *fix* it
I want to teach someone else how to fix it and keep it fixed
and I don't want to keep teaching different people
actually, I don't even want to do that
I want someone else to figure it out, and I answer questions when they are stuck
benabik I suspect this is going to remain slightly broken until we switch to libuv and then people will expend effort to get that right. I think there's not a lot of desire to fix something that's going to be replaced anyway. 16:17
nwc10 right now it's sufficicently broken that bundling APR is counter productive 16:18
the first two machines that I have tried to build moarvm on, it fails 16:19
on one, because uuid.h exists but the -luuid fails
on the second, because the link works, but the use of dynamic libraries means that moarvm is compiled against one set of APR headers, but the system installed (older) APR is found at runtime 16:20
the number of failure modes of the current setup means that there's a reasonably high chance of anyone iterested failing to build it 16:22
which is not good for getting people to play
benabik apr_lib => '3rdparty/apr/.libs/libapr-1.a'
That would be the static library. 16:23
nwc10 yep, but the top level is defaulting to use the shared library
benabik llibs => '-Wl,-Bstatic -lapr-1 [...] 16:25
That's telling LD to use the static version.
nwc10 not on OS X
whatever the build system *said*, I get a runtime failure from the dynamic linker 16:26
benabik Yes, because clang doesn't understand -Bstatic.
nwc10 dyld: Library not loaded: /usr/local/apr/lib/libapr-1.0.dylib Referenced from: /Volumes/Stuff/Perl/MoarVM/./moarvm Reason: Incompatible library version: moarvm requires version 5.0.0 or later, but libapr-1.0.dylib provides version 4.0.0
Trace/BPT trap
benabik I disabled that myself.
nwc10 that I didn't know.
benabik If you're going to install libraries in non-standard paths, you really should alter your environment to include those path in the search. 16:28
And if you can figure out how to tell clang to prefer the static version, that'd be great.
Well, I suppose really "tell OS X's ld" 16:29
nwc10 I didn't tell it to install APR there. Nothing has installed APR there 16:30
that seems to be APR's default
benabik Something has to have installed apr there. OS X comes with it as /usr/lib/libapr 16:31
nwc10 NO, there is no path at that directory
the dylib error as pasted isn't totally truthful
benabik Oh, dear. Stupid install paths.
nwc10 yes
benabik What OS X? 16:32
nwc10 Snow Leopard
benabik Ah. I guess somewhere between .6 and .8 ld learned to look at static over dynamic.
nwc10 sigh, yes, "Get New Utilities" 16:33
benabik No more "ah, that's why it fails for you and not for me"
benabik adds --disable-shared to APR's configured 16:37
If we're not trying to use shared libraries, let's not build it. 16:38
Well, it builds for me. 16:39
benabik submits pull request. 16:43
nwc10: Well, that's one solution to your problems on OS X. 16:44
nwc10 cool, thanks 16:45
jnthn benabik: Hm, I thought I gave you a commit bit...
benabik It shouldn't have broken the build anyway.
jnthn: I've never tried?
jnthn benabik: You have one. :) 16:46
benabik wonders if there's an easy way to tell. 16:47
jnthn benabik: Try pushin' :P
benabik Well, yes.
Well, push refused but that's because my master is out of date. :-D 16:48
dalek arVM: ce69dfd | benabik++ | build/Config/APR.pm:
Don't build APR's dynamic libraries

We're trying to use the static version anyway, so don't waste time building a dynamic library. And hopefully this will help keep some versions of ld *cough*OS X*cough* from trying to use the dynamic version. (OS X is especially bad in that at runtime it searches for where APR says its going to be installed, which is overly confusing.)
16:53
nwc10 benabik++ # now works on my machine 16:56
that is actually a more elegant solution than I was aware was possible - just disable the dynamic library build
benabik I was searching for an ld option, but then realized "hey, we don't even want that library anyway" 16:58
16:59 not_gerd joined
not_gerd o/ 16:59
personally, I suggest getting rid of -l altogether and just pass in the .a
see gist.github.com/gerdr/5895955
benabik I didn't want to change build environments I don't have. :-D 17:00
It's a good idea though, not_gerd++
FROGGS not_gerd: we had that in the meantime fwiw 17:01
not_gerd FROGGS: why was that changed, if I may ask? 17:02
FROGGS somebody changed it again to make it work on his system 17:03
but I got no answer about what he was thinking about the patch :o)
not_gerd anyway, I'm all for the move to libuv, because that's something that actually builds out-of-the-box on MinGW-64 17:06
nwc10 roll on bootstrapped native compiler 17:07
17:15 colomon joined
not_gerd ~~ 17:18
not_gerd waves goodbye
17:18 not_gerd left
benabik I don't see the build using libapr-1.a directly anywhere in the commit log. 17:57
In particular I don't see any commit that has both a -lapr-1 and libapr-1.a in the diff, which is what I would expect if someone changed from one to the other. (git log --oneline -S-lapr-1 -Slibapr-1.a) 17:59
18:12 tomyan joined 19:09 tomyan joined 19:30 pmichaud joined 22:13 colomon joined 23:02 FROGGS joined 23:31 benabik joined