|
github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today Set by moderator on 4 June 2013. |
|||
|
05:25
_ilbot joined
|
|||
| moderator | github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today | ||
|
05:34
FROGGS joined
05:38
tomyan joined
|
|||
| hoelzro | I'm trying to build MoarVM, but I keep getting this error: 3rdparty/apr/.libs/libapr-1.a | 07:12 | |
| hmm...if I do a fresh clone, I get this instead: /usr/bin/ld: 3rdparty/apr/.libs/libapr-1.a(rand.o): undefined reference to symbol 'uuid_generate@@UUID_1.0' | 07:15 | ||
| nwc10 | does your machine have the APR headers installed in /usr/include ? | 07:16 | |
| In that, someone reported that before (might have been you, I can't remember) | |||
| and it's really not obvious why it's going wrong | |||
| hoelzro | yeah, I have the headers | 07:17 | |
| under /usr/include/apr-1, though | |||
| nwc10 | I wonder if that's it. | ||
| I'm guessing (obviously) but I wonder if the build is seeing headers from one version, but trying to link to a different version | 07:18 | ||
| hoelzro tries again after removing packages | |||
| no dice | 07:21 | ||
|
07:23
lizmat joined
|
|||
| nwc10 | hoelzro: I get that failure if I install the package libapr1-dev | 08:03 | |
| hoelzro | interesting | ||
| has anyone successfully built the VM on Arch Linux? | 08:04 | ||
| nwc10 | and these 4 lines of error which I'm going to have fun with as all start with / | ||
| /usr/bin/ld: 3rdparty/apr/.libs/libapr-1.a(rand.o): undefined reference to symbol 'uuid_generate@@UUID_1.0' | |||
| /usr/bin/ld: note: 'uuid_generate@@UUID_1.0' is defined in DSO /lib/x86_64-linux-gnu/libuuid.so.1 so try adding it to the linker command line | |||
| /lib/x86_64-linux-gnu/libuuid.so.1: could not read symbols: Invalid operation | |||
| collect2: error: ld returned 1 exit status | |||
| er, OK, 3 out of 4 did | |||
| hoelzro | that's what I see | 08:05 | |
| nwc10 | but, that Ubuntu box will build MoarVM (and pass tests) before I install libapr | ||
| and fails afterwards | |||
| OK, nailed it | 08:12 | ||
| the problem is uuid-dev | |||
| if I install the package uuid-dev the build breaks | |||
| uuid-dev is a pre-req of libapr1-dev | |||
| hoelzro | hmm | 08:13 | |
| hoelzro tries | |||
| hmm | |||
| nwc10 | so installing libapr1-dev has the side effect of making uuid.h available, at which point the *bundled* libapr sees it, and wants to use it | ||
| hoelzro | hmm, I can't get rid of uuid that easily... | ||
| nwc10 | and so the built bundled libapr now has a dependency on a symbol in the uuid library | ||
| I think you (or someone) needs to fix the MoarVM Makefile to use the proper libapr supplied config tool about "what extra libraries do I need?" and add that to the MoarVM link line | 08:14 | ||
|
08:30
cognominal joined
09:03
Guest1337 joined
10:17
flaviusb joined
11:25
kbenson joined
12:14
JimmyZ joined
|
|||
| diakopter | anyone want to port libuv's build system to Perl? | 12:59 | |
| needs done sometime in the next few months | |||
| JimmyZ | github.com/joyent/libuv this one? | 13:00 | |
| diakopter | yes | ||
| replacing apr with libuv at some point soon | |||
| Perl version of gyp, I guess | 13:01 | ||
| JimmyZ | will be libuv in 3rdparty dir or other dir? | 13:02 | |
| diakopter | 3rdparty | ||
|
13:40
lizmat joined
13:46
FROGGS joined
|
|||
| nwc10 | diakopter: sorry if this is a silly question, but if libuv's build system is currently "just" Python 2, what's the problem in leaving it that way "for now"? | 14:40 | |
| also, if you read scrollback, I think I know where the APR link failures are coming from. | |||
| diakopter | nwc10: I agree | 14:41 | |
| I wouldn't mind it being in python and shipping pre-configured versions for various platforms | |||
| jnthn would prefer there's no python dependency | |||
| nwc10 | that's reasonable, but which platforms don't have Python on them by default? | ||
| diakopter | :) | ||
| nwc10 | Python 2 that is | 14:42 | |
| diakopter | fewer than have Perl? :) | ||
| benabik | Obv, we just need to write a python interp on MoarVM. ;-D | ||
| nwc10 | as in, I think that pretty much any Linux distro will end up with Python these days, OS X seems to | ||
| tadzik | Python 2.6 is in LSB, iirc | ||
| along with Perl 5.8 :) | 14:43 | ||
| TimToady wonders if Python 4 will be a version of Python 2 that leapfrogs Python 3... :) | |||
| nwc10 | Long term I'd like the Perl 5 build dependency to go away, 'cos otherwise someone has to maintain Perl 5 forever just to bootstrap Perl 6 | ||
|
14:46
rurban joined
|
|||
| masak | +1 | 14:47 | |
| I've heard people level criticism on Parrot for its Perl 5 dependency. | 14:48 | ||
| nwc10 | Aha, right. I certainly had one specific criticism of it - it kept using Perl 5 for its build system | 14:49 | |
| rather than bootstrapping a parrot as early as possible and then using that parrot to build the rest | |||
| TimToady | of course, if moarvm advertises Perl 5 interop, we have to bundle it anyway... | ||
| (probably) | |||
| nwc10 | I assume so to | 14:50 | |
| but maybe 10 years from now it won't be needed | |||
| masak | or there should at least be a viable option to build without it for people who want just Perl 6, for example. | 14:51 | |
| TimToady | so, at what point do we get lazy and start calling it "moar" instead of "moarvm"? <-- already too lazy to capitalize | ||
|
14:51
lizmat joined
|
|||
| TimToady also wonders how soon till we have a fork named 'moa' | 14:53 | ||
| masak | :P | ||
| TimToady: "moar" is simply a short form of the full "MoarVM", just as "p5" is a short form of "The Democratic People's Republic of Perl 5". | 14:55 | ||
|
14:55
bronco_creek joined
|
|||
| masak | bronco_creek: \\o | 14:55 | |
| TimToady | moar.org seems kinda like a squatted name with ads on it | 14:56 | |
| benabik | in spanish | ||
| masak .oO( maz.org ) | 14:57 | ||
| bronco_creek | masak: Hi. I'm just a one-time perl scripter who keeps an eye on Perl 6 development. Wish I had time/skills to contribute. Look exciting at the moment. | 14:58 | |
| TimToady | bronco_creek: we hope to increase your excitement in the future :) | ||
| bronco_creek | TimToady: I enjoyed the video of your talk at YAPC:NA. Thanks! | 15:00 | |
| TimToady bows, and hits his head on the laptop | |||
| where are you located? | |||
| JimmyZ | well, windows always doesn't have python | 15:01 | |
| bronco_creek | Boulder, CO, USA | ||
| TimToady | ah, tchrist-town :) | ||
| benabik | Windows doesn't always have perl, either. Although I suppose one added dependency is better than two. | ||
| JimmyZ | you may not want to build MoarVM with perl and python together | 15:02 | |
| nwc10 | JimmyZ: yes, I should have said that I was assuming *that*. And I guess that some of the commercial Unixes may not. But Windows is a sufficiently predictable platform that you can ship a pre-configured something for libub? | ||
| er, libuv | |||
| JimmyZ | and Perl 6 | ||
| nwc10 | heck, does libuv currently need Python to build on Win32? | ||
| TimToady | maybe we should do the build system in JavaScript :) | 15:03 | |
| JimmyZ | well README says you can just run Make in linux too | 15:04 | |
| ;) | |||
| masak | TimToady: you jest, but... :) | 15:05 | |
| nwc10 | it would seem the logical choice for the libuv maintainers, as they will have V8 around already, won't they? | ||
| masak | ...there are build systems in JavaScript... | ||
| TimToady | and eventually you can compile the P6 build system down to JS, and then... | ||
| benabik | There is too much in JavaScript. | ||
| nwc10 | I'm sure the CPU manufactures and computer retailers will disagree on that | 15:06 | |
| diakopter | TimToady: probably we'll find a ride | 15:07 | |
| TimToady | thanks, I told her to call when she gets in | ||
| (to find out) | |||
| benabik | Web pages, sure. But node gives me shivers. We develop type systems for a reason. | 15:10 | |
| TimToady | it would be pretty amusing if, with the JS backend, untyped Perl 6 ended up better optimized than typed Perl 6... | 15:12 | |
|
15:18
birdwindupbird joined
|
|||
| moritz | well, if you create proper objects with a MOP and all that fun, I guess won't make much of a difference anymore :-) | 15:19 | |
| TimToady is not sure what that means unless you clarify whether you think JS has "proper objects" :) | 15:20 | ||
| moritz | ok, let me rephrase that | ||
| even a JS backend will have to provide some kind of object to represent a P6 Int, which will be different from the JS integer | 15:21 | ||
| so I guess in P6-on-JS, you won't have much of an advantage when not declaring types | |||
| TimToady | nodnod | 15:22 | |
| strolling toward hackathon & | |||
| (while it's still only hot outside) | |||
| moritz | and it seems that js engines slowly converge on a subset of JS that is particularly fast, and suitable for code generation | 15:24 | |
| so that's a bit of a typed subset | |||
| masak | indeed. | 15:26 | |
|
15:47
benabik joined
|
|||
| benabik | asm.js seems to be what all the popular kids are using these days. | 15:48 | |
| nwc10 | to get them even closer to the metal than Node? | 15:50 | |
| benabik | More or less. It tags expressions to mark them as int/float/etc so the JIT can produce better code | 15:53 | |
| sorear | asm.js as it exists today has a couple serious limitations | 16:04 | |
| you can't muck with GCable objects in an asm.js function | |||
| moritz | there are no debian packages for libuv :( | 16:05 | |
| sorear | you can implement your own GC if you want based on a compact array, but there's no sbrk() | ||
| which is kind of troublesome for an interpreter. have to decide a priori how much memory to reserve | |||
|
16:06
japhb_ joined
|
|||
| nwc10 | moritz: but at one time there were no debian packages for parrot. | 16:06 | |
| (but I see your point) | |||
| jnthn | pmichaud feels quite strongly that we should not bundle stuff in the Moar repo itself. | 16:09 | |
| But that we could have our own copies of stuff in repos to build it | |||
| sorear | git-submodule!!! | 16:12 | |
| bronco_creek | I disappeared into a meeting there for a while. | 16:14 | |
| I am an experienced technical writer/editor. I could edit English docs, as time allows. | 16:15 | ||
| masak is here too late to say "bronco_creek: awesome!" | 16:56 | ||
|
17:01
FROGGS joined
|
|||
| dalek | arVM: 617250c | jonathan++ | src/gc/collect.c: Fix a warning. |
17:15 | |
| arVM: 6ab684e | jonathan++ | src/gc/ (3 files): Cleanup inter-generational roots list. |
|||
| pmichaud | good afternoon, #moarvm | 17:29 | |
|
17:29
nwc10 joined
|
|||
| benabik | o/ pmichaud | 17:29 | |
| dalek | arVM: 07d5eac | jonathan++ | / (6 files): Implement and map nqp::lexprimspec. |
18:00 | |
| arVM: eb23312 | jonathan++ | nqp-cc/nqp-src/NQPHLL.nqp: Uncomment more of NQPHLL. |
|||
|
18:03
Guest1337 joined
18:14
colomon joined
|
|||
| kbenson | Q: regarding the build system of libuv discussion earlier (replace python build system), what's the reason for needing to *build* as opposed to just use libuv as a library? | 18:15 | |
| similar question in my mind, why is APR bundled at all? Is it not installed as a shared lib when built? | |||
| sorear | o/ kbenson | 18:21 | |
| developer friendliness, I guess | |||
| benabik | I think it's preferred that MoarVM be able to build without hunting down dependencies. There was talk of changing the build to use system APR if available and perhaps downloading APR rather than having it in repo. | 18:23 | |
| kbenson | to me it seems a sort of chicken/egg problem, when viewed through the lens of developer friendliness | 18:27 | |
| WRT libuv, if you want to include it in the repo (or download and build on demand) to be friendly to developers, but then that makes you want to change the build system from python to something else, that creates enough extra work to defeat the purpose of being included | 18:28 | ||
| o/ sorear. | |||
| I don't have a lanyard to forget to wear that you can point out today. ;) | 18:29 | ||
| benabik | Looking at libuv, it may make more sense to just keep copies of the generated build system for platforms we care about. | ||
| eternaleye | Also, having moarvm build its dependencies is (unless trivial to disable) actively packaging-hostile | ||
| benabik | I think the long term is to use --with-* and --gen-*. | ||
| eternaleye | In many ways, even just autodetecting installed deps is packaging-hostile | 18:30 | |
|
18:30
Util joined
|
|||
| kbenson | ya, I was thinking that as long as the libraries are stable enough, a one time build for the platform and then using the system version would make sense (but I'm not sure of other benefits that I may not see) | 18:30 | |
| eternaleye | (another package pulled in an optional dep, configure autodetects, and suddenly an undeclared dependency is introduced) | ||
| benabik | OTOH, it's far less friendly to have to specify every required package to configure. Not doing that is why people write configure scripts. | 18:31 | |
| eternaleye | benabik: --{en,dis}able-$feature can turn multiple deps on or off at once. | 18:32 | |
| benabik: --with is mostly "we'll use X, but which X?" | |||
| While --enable is "Do we use X or not?" | 18:33 | ||
| like --with-python=/path/ | |||
| kbenson | or, "we'll use X, but you can't find it and it's $HERE" | 18:34 | |
| eternaleye | Exactly. | ||
| --enable-foo tells it to use foo, and die if it can't find it. --with gives it the information it needs to find a non-standard install of foo. | 18:35 | ||
| kbenson | I'm not aware, does the autogen/configure toolchain work at all on windows (well, I KNOW it does with certain prereqs, but what's the minimum)? | ||
| benabik | This feels extremely academic, given that I see precisely zero optional features in MoarVM. :-/ | ||
| eternaleye | kbenson: Not really, no. CMake can generate MSVC project buildfiles, but uses very different syntax from autotools | 18:36 | |
| benabik: Fair enough | |||
| kbenson | what's msys/mingw get you? | 18:37 | |
|
18:37
rurban joined
|
|||
| eternaleye | kbenson: Never used them, I'm pure linux. | 18:37 | |
| I think they're more along the lines of cross-compiling, though | |||
| benabik | For the required deps, I personally feel like "try to detect system versions and provide --with and --gen for when we can't" is a reasonable thing. But Moar still seems to be at the level of "we got it working, awesome." | 18:38 | |
| kbenson | benabik: I think not (well, the use/don't use portion maybe), I was spurred into asking because it was expressed that it may be desirable to rewrite the build system of libuv to make it easier to include and build (not rely on python) | ||
| benabik | kbenson: Yes, but the conversion had veered a bit from that. | 18:39 | |
| kbenson | I'll give you that this is a bit beyond that original question, but I think getting something decided on how to deal with those dependencies may alleviate the need to rewrite build systems for those that want it | ||
| (I'm gonna backpedal here and try to revert any authoritative style statements I may have said. I dislike reading previous comments of mine where I appear to making statements in an authoritative tone that's not in line with how I feel. I've contributed zero so far besides these words and my attention...) | 18:46 | ||
| benabik | I rather like the --gen-* system that NQP has developed, even if I never use it. And re-writing other people's build systems seems like a waste of our time. | 18:54 | |
| kbenson | benabik++ | 18:55 | |
| benabik | But that mostly means I won't do it. Open Source means not dictating how other people spend their time. That would make it work. :-D | 18:56 | |
|
19:02
vmspb joined
|
|||
| jnthn | The current Moar build stuff probably works *better* on Windows given that's the first thing it supported. :) | 19:12 | |
|
19:15
FROGGS joined
|
|||
| kbenson | jnthn: ya, I understand that, and that's probably a big reason why it uses Perl in the configure script, I imagine. | 19:22 | |
| [Coke] | kbenson: there's also 10 years of existing scripts using perl5 for config. | 19:25 | |
| japhb_ | jnthn, in while_concat_native I get 'Internal error: invalid thread ID in GC work pass' starting at scale 65536 | ||
| jnthn | japhb_: Odd, I got it to run up to a million or so | 19:26 | |
| japhb_ | 32-bitness? | ||
| jnthn | yeah | ||
| FROGGS .oO( a million and one would be odd ) | |||
| kbenson | [Coke]: Yes, but when used for making what may BE a perl5 implementation, there's a bit of a chicken/egg problem | 19:27 | |
| benabik | 65536 is only 16b though. | ||
| kbenson | o/ japhb | 19:28 | |
| lizmat | more like a int vs smallint issue? | 19:30 | |
| int / long | |||
| ? | |||
| jnthn | Not sure yet | 19:32 | |
|
19:42
tgt joined
19:43
japhb_ joined
|
|||
| eternaleye | 65536 is 16-bit unsigned, which would be... odd for an int. | 19:43 | |
| (Or rather, it overflows a 16-bit unsigned) | 19:44 | ||
|
19:50
lizmat joined
19:55
flussence joined
|
|||
| flussence decides to lurk moar | 19:56 | ||
| benabik | arg | ||
| FROGGS | benabik: you need to say to where you want to pass your arg to | 20:06 | |
|
20:37
FROGGS joined
21:11
benabik joined
21:22
cognominal joined
|
|||
| dalek | arVM: daf8b3d | jonathan++ | src/ (2 files): Add a BOOTIO, like nqp-jvm has. Means we'll be able to have a default/base filehandle type to hand. |
21:52 | |
| arVM: 1985085 | jonathan++ | / (16 files): Start cleaning up IO bits. Use BOOTIO, kill the anonfhtype op. Starts getting things closer to being useful for doing the IO bits in HLL::Compiler, etc. |
|||
|
23:03
japhb_ joined
23:05
lizmat joined
23:13
FROGGS joined
23:22
benabik joined
|
|||