|
github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today Set by moderator on 21 August 2013. |
|||
|
00:33
BenGoldberg joined
01:26
FROGGS_ joined
|
|||
| JimmyZ | Good morning | 02:50 | |
|
04:24
grondilu joined
|
|||
| dalek | arVM: 907d08d | (Gerhard R)++ | build/ (2 files): Re-introduce quiet builds and NOISY make option. Hopefully more portable now. |
05:20 | |
|
05:51
ggoebel2 joined
|
|||
| dalek | arVM: 7fb4143 | (Gerhard R)++ | build/ (2 files): Only suppress stderr in quiet build mode |
06:10 | |
| arVM/readline: 19eea1b | jimmy++ | 3rdparty/linenoise/linenoise. (2 files): keep it as the original one |
06:15 | ||
|
06:25
JimmyZ_ joined
06:33
yoleaux joined
07:58
crab2313 joined
|
|||
| jnthn | Short backlog is short :) | 08:27 | |
| JimmyZ_ | :P | 08:29 | |
| timotimo | please use types like uint8_t/int8_t instead of "short". it's more portable! | 08:55 | |
| jnthn | Only to compilers that support it :P | 08:59 | |
| There's MVMint8 etc also :) | 09:00 | ||
| Which is what should be consistently used in stuff we "own" | |||
| moritz | jnthn: I think timotimo meant "uint8_t backlog is uint8_t" :-) | 09:04 | |
| jnthn | wait, short isn't 8-bit either :P | ||
| oh! | 09:05 | ||
| duh :) | |||
| jnthn drinks the coffee faster | |||
|
09:07
donaldh joined
|
|||
| nwc10 | opinion, so please ignore. I think that the code would be clearer to newcomers if it uses the C99 standard names, such as uint_8_t (etc), and probes for and defines them if the system isn't C99 enough. Which is a bit cheeky, but a "think of 10 years hence" compromise | 09:16 | |
| er, uint8_t. I cna't type | |||
|
10:07
not_gerd joined
|
|||
| not_gerd | o/ | 10:08 | |
| personally, I'd just stick code.google.com/p/msinttypes/ in platform/win32 and assume everything else comes with stdint.h/inttypes.h | 10:09 | ||
| dalek | arVM/dll: cd79a93 | (Gerhard R)++ | / (3 files): Start logic for shared libs as well as various cleanups |
10:11 | |
| not_gerd | I'd like to introduce 2 macros MVM_PUBLIC and MVM_PRIVATE that control which symbols get exported when creating a shared lib | 10:12 | |
| I'd also like to annotate all our files which #define MVM_SOURCE | 10:14 | ||
| this would switch between dllimport/dllexport and allow us to hide declarations from library users | 10:15 | ||
| thoughts? | 10:16 | ||
| jnthn | What's the semantics of something *not* marked public or private? | ||
| not_gerd | see gcc.gnu.org/wiki/Visibility?action=...amp;rev=14 | 10:17 | |
| not exported on MSVC, exported on linux etc | |||
|
10:17
JimmyZ_ joined
|
|||
| not_gerd | ideally, everything should be annotated | 10:17 | |
| (everything extern, that is) | |||
| either it's part of our API, or its not | 10:18 | ||
| jnthn | *nod* | ||
| I'm fine with doing that. It's a good discipline to get it in earlier rather than later. | |||
| Please also put a document about this in docs/ | 10:19 | ||
| Saying what they are for, that `static` things don't need marking, etc. | |||
| not_gerd | what about annotating sources with MVM_SOURCE? | ||
| the other common approach would be passing something like -DMVM_DLL_BUILD when creating object files intended for the shared lib | 10:20 | ||
| jnthn | It feels a bit boiler-platey... | 10:21 | |
| not_gerd | alternatively, we should split up moarvm.h | 10:22 | |
| lib users probably don't want to pull in all our crap by default (apr/libuv, libatomic_ops,...) | |||
| JimmyZ_ | +1 to split moarvm.h | ||
| jnthn | No, true. moarvm.h wasn't intended to be an "I'm embedding stuff" header file. | 10:27 | |
| dalek | arVM/dll: d01c00b | (Gerhard R)++ | src/moarvm.h: Add MVM_PUBLIC/MVM_PRIVATE with dummy condition for now |
10:42 | |
| JimmyZ | jnthn: Any objection to merge linenoise branch? | 11:52 | |
| not_gerd | we need to decide if we really want to automatically link against readline if available | 12:04 | |
| GNU Readline is GPL, not LGPL | |||
| jnthn | That's only a problem for distribution, I guess? | 12:05 | |
| not_gerd | jnthn: correct | ||
| binary packages linked against readline would have to be GPL | |||
| (which is no problem as Artistic2 allows re-licensing) | |||
| jnthn | JimmyZ: I'm happy iff linenoise code is off in a separate repo... I can create a fork under the MoarVM account if you want that. | ||
| JimmyZ | jnthn: please fork | ||
| not_gerd | jnthn: github.com/MoarVM/MoarVM/blob/read...re.pl#L480 | 12:06 | |
| JimmyZ | or don't link readline unless --with-realine | 12:07 | |
| not_gerd: it will be a good idea change to with-readline? | 12:08 | ||
| ;) | |||
|
12:11
jnap joined
|
|||
| jnthn | JimmyZ: Fork from...? | 12:12 | |
| JimmyZ | jnthn: github.com/antirez/linenoise | 12:13 | |
| jnthn | JimmyZ: github.com/MoarVM/linenoise | 12:14 | |
| JimmyZ | jnthn: thanks | ||
| jnthn | You (and everyone with MoarVM team) shuld have access | ||
| JimmyZ | yes ,I see 12 watches | 12:15 | |
| :P | |||
| jnthn | At least we know what time it is, then :P | 12:16 | |
| tadzik | that made me think of an alternative to Irish Bar Watch. A Hacker's Would always display a datetime of a latest commit. If the watch is getting late, you should commit more :) | ||
| dalek | arVM/readline: 569b23f | (Gerhard R)++ | build/ (2 files): Add /nologo to nmake invocation |
13:06 | |
| MoarVM/readline: 7bd2129 | (Gerhard R)++ | / (3 files): | |||
| MoarVM/readline: Take byte order from Perl's %Config. | |||
| diakopter | bah | ||
|
13:07
dalek joined
|
|||
| timotimo | oh my | 13:07 | |
| dalek | arVM/dll: 9d2e819 | (Gerhard R)++ | build/config.h.in: Do NOT put MVM_SHARED into config.h We want to support both static and dynamic libs with the same headers. |
13:21 | |
| nwc10 | not_gerd: I like that plan. Work on the assumption that every other (sane) platform has those headers, and only put more effort in if one turns up which does not | 13:24 | |
| not_gerd | nwc10: it would be trivial to add 3rdparty/msinttypes and wire it up in build/setup.pm | 13:26 | |
| nwc10 | which makes it sound like a good plan | 13:27 | |
| not_gerd | jnthn: any thoughts on that (replacing MVMint with standard types)? | 13:35 | |
|
13:37
gshank joined
|
|||
| jnthn | Mostly that my muscle memory will have me typing the wrong ones for a while :P | 13:37 | |
| But that's not a good reason not to do it. | 13:38 | ||
| What are the floating point ones called, though? | 13:39 | ||
| The *nice* thing about how we have things today is that the convention is MVM[what Perl 6 calls the type]. | |||
| Which is probably the best argument for keeping things as they are. | |||
| not_gerd | jnthn: there are no standard floating point types | 13:40 | |
| if float/double are not 32/64, you're out of luck anyway | |||
| jnthn | True... | ||
| That means we end up with a different convention for writing int and floating point types... Joy. | |||
| not_gerd | there's float_t and double_t if you want fast floating point types as least as precise as float/double | ||
| but no fixed types | 13:41 | ||
| nwc10 | these days I think that you will be hard pressed to find a platform where double is not a 64 bit IEEE float | ||
| but someone will find you one, just to be annoying | |||
| not_gerd | we *could* keep the MVM* names as alias for the standard types | 13:43 | |
|
13:44
jnap joined
|
|||
| JimmyZ | github.com/MoarVM/MoarVM/tree/readlineintfh | 13:44 | |
| needs some helps to merg it | |||
| merge | |||
| an updated linenoise github.com/MoarVM/linenoise | 13:45 | ||
| i.e: create submodule :) | 13:47 | ||
| and not_gerd++ # NOISY | 13:48 | ||
| dalek | arVM/dll: febefc7 | (Gerhard R)++ | src/moarvm.h: Simplify MVM_PUBLIC/MVM_PRIVATE logic. If we go ahead with this factoring, MVM_BUILD_SHARED and MVM_SHARED need to be passed as compiler flags. The former will be added by Configure.pl, the latter must be specified by library users. Note that not supplying MVM_SHARED when using the dynamic lib should work in principle, but comes with a performance penalty on Win32. |
13:50 | |
| arVM/readlineintfh: 15c2b0f | (Gerhard R)++ | build/auto.pm: Auto-detect readline |
13:52 | ||
| arVM/readlineintfh: 6de9acd | (Gerhard R)++ | / (4 files): Wire up MVM_HAS_READLINE and --no-readline |
|||
| arVM/readlineintfh: d62a540 | (Gerhard R)++ | Configure.pl: Clarified implications of not using --no-readline |
|||
| arVM/readlineintfh: 47654ba | (Gerhard R)++ | / (12 files): added readlineint_fh op |
|||
| not_gerd | someone needs to go through all headers and add MVM_PUBLIC/MVM_PRIVATE annotations | 13:53 | |
| that someone also needs to gifure out what our API actually is ;) | 13:54 | ||
| *figure | |||
| JimmyZ | not_gerd: could you help me to add submodule linenoise and merge to master? | ||
| not_gerd | JimmyZ: based on readlineintfh? | 13:56 | |
| JimmyZ | not_gerd: yes | ||
| jnthn | Do we want it as a submodule, or just clone it into a subdirectory? | 13:57 | |
| I guess submodule lets us track the revision better... | |||
| JimmyZ | yeah | ||
| not_gerd | anyone knows if there's a difference in what URL (git: vs http:) I use for adding the submodule? | 13:59 | |
| tadzik | yes, there is | ||
| people behind restrictive firewalls may have troubles with git | 14:00 | ||
| JimmyZ | not_gerd: git needs password | ||
| tadzik | git: | ||
| no, it does not | |||
| JimmyZ | oh | ||
| tadzik | http, on the other hand, is slower | ||
| JimmyZ | oh ,git:// | ||
| not_gerd | so, https it is... | ||
| JimmyZ | I thought git@ :P | 14:01 | |
| tadzik | that's ssh :) | 14:02 | |
| not_gerd | JimmyZ: readlineintfh is already up to date | 14:06 | |
| or did we get the go-ahead for merging readlineintfh into master? | |||
| JimmyZ | not_gerd: I can't follow you ... | 14:07 | |
| not_gerd | JimmyZ: is readlineintfh ready to be merged? | 14:08 | |
| JimmyZ | not_gerd: yes | ||
| not_gerd | it does contain my readline auto-detection | ||
| JimmyZ | not_gerd: yes | ||
| not_gerd makes a test build | 14:09 | ||
| moritz | jnthn: star's "make install" fails with "error:imcc:loadlib directive could not find library `perl6_group' in file 'modules/rakudo-debugger/perl6-debug.pir' line 1 | 14:18 | |
| " | |||
| jnthn | moritz: Have you got latest version? I fixed that last night... | ||
| moritz | jnthn: iirc you fixed the usage of perl6_group in the Makefile | 14:19 | |
| jnthn | Yes... | ||
| moritz | jnthn: but this is from generated .pir code | ||
| jnthn | Oh, does star's make install not do that? | ||
| moritz | perl6-debug.pir | ||
| JimmyZ | not_gerd: btw, please remove example.c in linenoise | ||
| jnthn | How does star build it? | ||
| JimmyZ | not_gerd: otherwise it'll be linked | ||
| not_gerd | JimmyZ: will do | 14:20 | |
| JimmyZ | not_gerd: thanks | ||
| not_gerd | the Makefile should be removed as well | 14:21 | |
| JimmyZ | not_gerd: yes | ||
| not_gerd | k | ||
| moritz | jnthn: oh, it has it's own makefile rule, which still contains perl6_group. So I can fix it myself :-) | ||
| diakopter | jnthn: is it intended that the new repr bless not be able to call HLL code? | 14:22 | |
| jnthn | diakopter: ? | ||
| diakopter | TimToady's commit | ||
| jnthn | bless is just a method | ||
| diakopter | I thought it was saying there'd be a new repr op | ||
| jnthn | No | ||
| diakopter | that confused me | 14:23 | |
| jnthn | It needs to invoke the correct BUILD methods, for one :) | 14:24 | |
| not_gerd | incoming | ||
| dalek | arVM: 15c2b0f | (Gerhard R)++ | build/auto.pm: Auto-detect readline |
14:25 | |
| arVM: 6de9acd | (Gerhard R)++ | / (4 files): Wire up MVM_HAS_READLINE and --no-readline |
|||
| arVM: d62a540 | (Gerhard R)++ | Configure.pl: Clarified implications of not using --no-readline |
|||
| arVM: 47654ba | (Gerhard R)++ | / (12 files): added readlineint_fh op |
|||
| arVM: 5ab4714 | (Gerhard R)++ | / (2 files): Add linenoise as submodule Change defaults of GNU Readline usage from auto-detection to on-demand |
|||
| JimmyZ | oh my dalek | ||
| you should sleep 1s each post | 14:26 | ||
| oh, redis is using jemalloc | 14:28 | ||
|
14:36
benabik joined
|
|||
| diakopter | I wish no gpl were the default | 14:37 | |
| not_gerd | diakopter: that would be even easier because we could get rid of the auto-detection | 14:39 | |
| it's a question of -Oend-user vs -Opackager/embedder | |||
| diakopter | imho, the primary use case *by far* will be the Rakudo::Star package installed from CPAN that auto-builds/installs MoarVM/NQP and installs them into the p5 lib tree | 14:40 | |
| JimmyZ | so +1 to get rid of the auto-detection, and I'm sorry to request it ;) | ||
| not_gerd | if it's consensus, I can do it | 14:41 | |
| I'll refuse to add it back in, though ;) | 14:42 | ||
| diakopter | contrary to what others believe, I still assert that nearly all initial Perl 6 users will still come from die-hard p5 users | ||
| JimmyZ | anyone see people.freebsd.org/~jasone/jemalloc...malloc.pdf ? | ||
| diakopter | I don't understand why that would get rid of the auto-detection | ||
| JimmyZ: yes | |||
| there are bunches of papers on it and related since then | |||
| not_gerd | diakopter: we don't need auto-detection if we only trigger on explicit --with-readline | ||
| if someone adds that flag, he'd better have that lib | 14:43 | ||
| JimmyZ | he should know what means to add that flag :) | ||
| not_gerd | we *could* double-check that we can include readline/readline.h | 14:44 | |
| but personally I believe a compilation failure with 'could not include...' is good enough as far as usability goes | 14:45 | ||
| JimmyZ | we didn't include readline.h ,just declare readline() and link to readline.lib | ||
| diakopter | oh | 14:46 | |
| not_gerd | any reason *why* we do not include readline/readline.h? | ||
| diakopter | the gpl thing | ||
| oh, you mean #include | |||
| duh | |||
| not_gerd | so we can build without having the -devel package installed? | ||
| benabik | deadline is GPL, not LGPL? | 14:47 | |
| JimmyZ | not_gerd: I think because we only need readline() | ||
| benabik | *readline | ||
| not_gerd | benabik: yes, somewhat famously so | ||
| benabik | That's... mildly ridiculous. | ||
| JimmyZ | not_gerd: we can build if there is a readline.a | ||
| or readline.lib | |||
| I think | 14:48 | ||
| benabik | So that's why I have libedit instead. | ||
| not_gerd | benabik: it's consistent if you believe non-free software is evil | ||
| benabik | By default. I think I replaced it with readline. | ||
| diakopter | calling non-free software evil is like saying companies shouldn't sell any products | 14:49 | |
| JimmyZ | I'm not sure whether we can link to readline.so or not | 14:50 | |
| benabik | not_gerd: I can understand RMS's / GNU's stance on these matters and still think it's ridiculous to not use the LGPL for libraries. | ||
| not_gerd | diakopter: it's logically sound to see non-free software as vendor lock-in that should be illegal | ||
| of course it would change the marketplace | |||
| no change for programmers working in-house | |||
| diakopter | illegal!??! | 14:51 | |
| benabik | JimmyZ: The exception for linking is the primary difference between LGPL and GPL. | ||
| not_gerd | diakopter: it's a distortion of free markets | 14:52 | |
| diakopter | selling things should be illegal? | ||
| JimmyZ | benabik: yes | ||
| not_gerd | I can't pay the programmer of my choice to work on software I 'own' | ||
| benabik | Heh. GNU's "you shouldn't use the LGPL" page explicitly calls out readline. | ||
| not_gerd | the state can make such things illegal | ||
| (not that I'm arguing for that, mind you;)) | |||
| diakopter | the state should outlaw selling? | ||
| not_gerd | I'm just saying that the GNU mindset *is* consistent | 14:53 | |
| diakopter: just selling software without right to modification | |||
| JimmyZ | anyway, we have linenoise , link to readline or not, is the business company thing, out of area | ||
| my area | |||
| not_gerd | diakopter: the point is moot, anyway | 14:55 | |
| I don't see anything like that happening in my lifetime | |||
| probably never | |||
| JimmyZ | me neither | 14:56 | |
| diakopter | not_gerd: who says that should be illegal? is their argument "people are too stupid to read the contract where it says they can't modify the software, and so will be disappointed later, so we should outlaw certain types of contracts" | ||
| if someone wants software without restriction, just make it yourself | |||
| not_gerd | diakopter: the final goal would be getting rid of non-free software completely (except for art/entertainment) | 14:57 | |
| jnthn | diakopter: There's plenty of consumer protection law that essentially boils down to that. At lesat, in Europe. :) | ||
| diakopter | it's a distortion of free markets to make certain contracts illegal | ||
| not_gerd | if my livelihood depends on a piece of software, I should be allowed to pay whoever I want to fix it | ||
| that's the basic idea behind GNU worded in a more consumer-centric way | |||
| diakopter | not_gerd: the state is not responsible for anyone's livelihood | ||
| not_gerd | not_gerd: the state is responsible for setting the boundaries of the market | 14:58 | |
| note to self: don't send notes to self | 14:59 | ||
| diakopter | jnthn: I sincerely doubt that consumer protection laws boil down to that | ||
| not_gerd | I know, car analogies and all that: there's been research about making motors black boxes that only the vendor can replace as a whole | 15:01 | |
| if you think about software like that, it's natural to demand to be able to use the mechanic of your choice | |||
| diakopter | "livelihood depends on" - there's an important distinction here | ||
| not_gerd | diakopter: I believe RMS made an explicit exception for art and entertainment | 15:02 | |
| diakopter | if you depend on redistributing someone else's property that you are licensing the use of... then you are dependent on the software's owner | ||
| but if you depend on simply USING the software in-house, you can modify it however you want | |||
| yes, you can pay someone to fix it | |||
| just don't redistribute it | |||
| it's not yours.. you are *licensed* to use it because that's all you agreed to | 15:03 | ||
| not_gerd | diakopter: I can't pay anyone except the person who holds the source code | 15:04 | |
| as I said, vendor lock-in | |||
| of course there are middle grounds | |||
| diakopter | I thought we were talking about gpl software | ||
| that's open-soure | |||
| *open-source | |||
| not_gerd: why wouldn't you hold the source code? | 15:05 | ||
| decompilers exist | 15:06 | ||
| they work | |||
| not_gerd | so go ahead and decompile MS Office to fix some bug ;) | ||
| anyway, these are all philosophical mind games | 15:07 | ||
| diakopter | so you think software compiled entirely to hardware should be illegal? | ||
| er, not *you* I guess you said | |||
| not_gerd | diakopter: me? or RMS? | ||
| diakopter | there's a huge difference between RMS et al. claiming that companies SHOULDN'T sell non-open-source software and claiming it should be CRIMINALIZED | 15:08 | |
| I've never heard of those people actually paying lobbyists to try to get it criminalized | 15:09 | ||
| "people who try to sell non-open-source software should be put in jail" | 15:10 | ||
| illegal bits | |||
| "distributing machine code without source code should be illegal" | |||
| distributing chips without layout drawings should be illegal? | 15:11 | ||
| selling hardware without complete manufacturing specs should be illegal? | |||
| that's the insane direct conclusion. | 15:12 | ||
| not_gerd | diakopter: the difference is that the chip vendor cannot change it's software once it's converted to hardware | ||
| diakopter | how does that make it different? | ||
| say it's an FPGA | |||
| not_gerd | it's all about not having to go to the vendor when trying to fix stuff | 15:13 | |
| if the vendor can't fix stuff himself, it's more of a gray area | |||
| diakopter | but that's the essential part of it you pointed out | ||
| no, but we're talking about "copying" | |||
| but they can fix stuff by releasing a new version | 15:14 | ||
| same with software | |||
|
15:14
colomon joined
|
|||
| not_gerd | but in case of hardware, you'd need manufacturing devices, in case of software only a compiler | 15:14 | |
| diakopter | doesn't matter that the manufacturing device is free | 15:15 | |
| not_gerd | one of the lock-ins is more artificial than the other | ||
| of course, 3d printers may change the game yet again | |||
| I'd be curious to see what RMS has to say on that issue | |||
| it sets hardware on the same fooring as software | |||
| *footing or flooring | 15:16 | ||
| diakopter | I don't think there will ever be 20nm 3d printers .. of less complexity/expense than 20nm chip plants | ||
| ok, within my lifetime anyway | |||
| JimmyZ | what? from GPL to 3D printer? | 15:17 | |
| not_gerd | ;) | ||
| diakopter: see also www.linuxtoday.com/infrastructure/1...200505NWLF # RMS on free hardware | |||
| diakopter | my point is that you can rebuild your car from toyota with sufficient technology, just like you can decompile MS Offie with suffiient technology | ||
| JimmyZ | you're out of topic ;) | 15:18 | |
| not_gerd | diakopter: sure, but hardware is protected by patents | ||
| software by patents and copyright both | |||
| diakopter | only for reselling | 15:19 | |
|
15:19
crab2313 joined
|
|||
| diakopter | you can remake whatever you want in your basement | 15:20 | |
| JimmyZ | So there will be free hardware by the 3D printer coming? | 15:22 | |
| not_gerd | if the FSF is consistent, they should argue for that | ||
| diakopter | so.. by RMS' argument in that article, he's okay with selling MS Office compiled to microcode, because it's difficult to copy | ||
| JimmyZ | we should create FHF | ||
| not_gerd | I don't think so | 15:23 | |
| making copy protection illegal for application software would be consistent with GNU philosophy | 15:24 | ||
| getting rid of 'artificial' vendor lock-in is the whole point | |||
| diakopter | he's saying he's okay with people not distributing HDL chip designs when selling chips | 15:25 | |
| so here's my MS Office chip, and you don't get the HDL designs | |||
| not_gerd | but MS office could work without being printed to a chip | ||
| thus artificial | |||
| diakopter | intel processors can work without being printed to a chiop | ||
| people write chip simulators every day | 15:26 | ||
| not_gerd | but if you buy an intel chip, you'r not being 'artificially' prevented from fixing bugs with it | ||
| if there ever were a 3d-printable intel chip, the sure | 15:27 | ||
| diakopter | why not? if you had the high level designs, you could simulate it | ||
| so you're being prevented from fixing it just because you don't have the design in a language you can grok | |||
| not_gerd | but simulating it doesn't help the end-user that is prevented from doing his work by a bug in the chip design | ||
| he never will be able to fix that bug hinself | 15:28 | ||
| *himself | |||
| anyway, I don't know how to express this any more clearly | |||
| diakopter | but again, that's because he doesn't have the chip manufacturing plant | ||
| I'm not seeking clarity; I'm clearly demonstrating the absurdity of their arguments | 15:29 | ||
| not_gerd | I don't find the end-user/consumer protection angle ridiculous, som we might have to agree to disagree ;) | 15:30 | |
| it just bugs me when people claim that the idea behind GNU is totally ridiculous | |||
| RMS might be, but I think the free software ideals are logically sound | 15:31 | ||
| diakopter | no one claims that intel selling their high level designs and access to their manufacturing plants with their chips wouldn't decrease lock-in | ||
| it's not ridiculous in that sense | 15:33 | ||
| not_gerd | the question is, could an arbitrary end user start manufacturing chips (or pay someone a reasonable amount to do so) if intel made its design public | ||
| the answer is no, so the FSF doesn't care about it | |||
| diakopter | right, so selling MS Office compiled to microcode is okay, by that argument. | 15:34 | |
| not_gerd | no, because it add artificial barriers | ||
| *adds | |||
| diakopter | er, selling a *new product* that couldn't already run on a general purpose microprocessor | ||
| TimToady | "I get no respect: I went to the fights, and a hockey game broke out." --Rodney Dangerfield | ||
| not_gerd | ;) | 15:35 | |
| diakopter | it doesn't add artificial barriers if the software isn't already for sale in an emulator, like a general purpose cpu | 15:36 | |
| TimToady is tired of licensing discussions in general | |||
| not_gerd | anyway, perhaps more on topic: I should change the defaults for --no-readline / --with-readline ? | ||
| diakopter | I retract my knee-jerk opinion on that :) | 15:37 | |
| JimmyZ | not_gerd: +1 to --with-readline | ||
| diakopter | (people aren't going to be redistributing moarvm/perl6 starting with the default build from cpan) | 15:38 | |
| (until they are) | |||
| not_gerd needs to go buy turtle food | 15:39 | ||
| diakopter needs to go earn turtle food | |||
| jnthn | .oO( The turtle food got all the way down ) |
||
| TimToady | that's a lot of food | ||
| diakopter | turtles are good food | 15:40 | |
| oh, he meant food *for* turtles | |||
| JimmyZ | ... | 15:41 | |
| jnthn | diakopter: I...assumed so :P | ||
| diakopter | commutivity& | ||
| JimmyZ | so anyone vote for --no-readline / --with-readline | 15:42 | |
| ? | |||
| jnthn | --use-readline maybe makes sense? | 15:43 | |
| JimmyZ | yes | ||
| TimToady only designs languages, not *real* interfaces... | 15:44 | ||
| JimmyZ | .tell not_gerd please change the defaults to linenoise unless --use-readline ;) | 15:47 | |
| yoleaux | JimmyZ: I'll pass your message to not_gerd. | ||
| jnthn | fwiw, I'm happy enough if we auto-detect by default, and --use-readline[=1] means "always try to use it" and --use-readline=0 means "certainly don't try to use it" | 15:49 | |
| JimmyZ | happy drinking :P | 15:50 | |
| or --use-readline means "always try to use it" and nothing means "certainly don't try to use it" | 15:52 | ||
|
15:53
woolfy left
|
|||
| JimmyZ | .tell not_gerd please see backlog | 15:54 | |
| yoleaux | JimmyZ: I'll pass your message to not_gerd. | ||
|
15:55
benabik joined
15:58
benabik_ joined
16:16
woolfy joined,
woolfy left
|
|||
| JimmyZ | Good night | 16:29 | |
|
17:29
BenGoldberg joined
|
|||
| BenGoldberg | So, how long until we can play with MoarVM with an IRC evalbot? | 17:46 | |
| diakopter | :) | 17:47 | |
|
17:48
jnap joined
17:54
not_gerd joined
|
|||
| not_gerd | so, on to the next controversial subject: header re-organization | 17:57 | |
| yoleaux | 15:47Z <JimmyZ> not_gerd: please change the defaults to linenoise unless --use-readline ;) | ||
| 15:54Z <JimmyZ> not_gerd: please see backlog | |||
| not_gerd | [x] done | 17:58 | |
| I'm thinking something along these lines: gist.github.com/gerdr/990ebfa6ef040b31b5bb | |||
| jnthn | BenGoldberg: Probably when NQP runs nicely on it :) | 18:01 | |
| BenGoldberg | So, not until it self-hosts? | 18:02 | |
| Err, self-hosts NQP? | |||
| diakopter | not_gerd: something will generate the public header file? | 18:03 | |
| not_gerd | diakopter: could be done, sure | 18:04 | |
| diakopter | just need to detect that marker and backslash-line-endings | 18:05 | |
| (and follow includes, I guess) | |||
| jnthn | BenGoldberg: Right | ||
| BenGoldberg: Well, self hosts NQP better than crashing before it even reaches the parser :) | 18:06 | ||
| Which is the current state of the self-host :) | |||
| not_gerd | diakopter: but the API documentation needs to be kept manually anyway | 18:07 | |
| (hey, why not auto-generate that as well ;)) | |||
| as long as the actual .c file includes all headers that have declarations, we should get a warning if we ever get out of sync | 18:08 | ||
|
18:13
lizmat joined
18:20
woolfy joined
18:26
jnap joined
|
|||
| not_gerd | MacOS, my nemesis | 18:37 | |
| I don't think linking readline as `-framework readline` works | 18:38 | ||
| dalek | arVM: 8f3607a | (Gerhard R)++ | / (2 files): Allow different flags for linking system and user libs |
18:53 | |
|
18:57
donaldh joined
|
|||
| jnthn | not_gerd: The noisy thing seems to have an issue on Solairs; if you have a moment, please could you take a look at Andy Dougherty's mail on perl6-compiler? | 19:27 | |
| You can probably make more sense of it than me :) | |||
| not_gerd | jnthn: looking | 19:28 | |
| sent mail via google groups | 19:40 | ||
| might be a good idea if I join that group | 19:41 | ||
| dalek | arVM: 8928bcb | (Gerhard R)++ | build/setup.pm: Add space after -o to make Solaris happy |
19:48 | |
| arVM/dll: 5c9d2e7 | (Gerhard R)++ | build/setup.pm: Add space after -o to make Solaris happy |
19:49 | ||
| not_gerd | good night o/ | 19:57 | |
|
19:58
not_gerd left
|
|||
| jnthn | Oops. Build busted on Windows. :( | 20:21 | |
| compiling src\\io\\fileops.obj | |||
| NMAKE : fatal error U1077: 'cl' : return code '0x2' | |||
| Stop. | |||
| ...where's the darn error... :/ | 20:22 | ||
| jnthn gets it with NOISY=1 | |||
| ah, I had to grab the submodule. We may want to automate that... | 20:24 | ||
| diakopter | yah | ||
|
20:35
lizmat joined
20:51
woolfy joined
20:55
lizmat joined
|
|||
| dalek | arVM: 266a334 | jnthn++ | src/ (3 files): The first clarg should be the program name. |
21:12 | |
| jnthn | my $x := '-e'; | 21:15 | |
| if nqp::substr($x, 0, 2) eq '--' { say('oops'); | |||
| } | |||
| ...says oops :( | 21:16 | ||
| diakopter | jnthn: we've mentioned that on the channel here a whole lotta times | 21:23 | |
|
21:23
woolfy left
|
|||
| diakopter | jnthn: I don't see why you'd need to root prog_string in that patch | 21:24 | |
| jnthn | diakopter: um, me either... :) | 21:27 | |
| diakopter: Yes, I'm debugging now | |||
| ->graphs in the result of the substring operation is 1, not 2 | |||
| diakopter | uh oh | ||
| jnthn | So the string equality check bails out immediately. | ||
| diakopter | but... with success!? | ||
| seems like NUM_GRAPHS needs to be compared in eq | 21:28 | ||
| if it's not already | |||
| jnthn | oh, wait... | 21:30 | |
| NUM_GRAPHS must be doing more than I think... | |||
| yeah | 21:31 | ||
| OK, so it doesn't bail out there after all | 21:32 | ||
| We go on into MVM_string_equal_at(tc, a, b, 0) | |||
| And make it into MVM_string_substrings_equal_nocheck | |||
| diakopter hopes what I said the other day holds true (algorithmically sound but slight impl error(s)) | 21:34 | ||
| jnthn | return result ? result - 1 : 1; | 21:35 | |
| result ends up being 2 | |||
| What does teh 2 mean? | |||
| diakopter | result was 3? | ||
| oh, result | 21:36 | ||
| heh | |||
| jnthn | no, result is 2 | ||
| Meaning we return 1 | |||
| diakopter | trying to remember | ||
| i'll look at the code | |||
| result == 1 means didn't match | 21:38 | ||
| jnthn | ok, and 2 means did match, but they shouldn't have matched | ||
| diakopter | at line 113 2 means matched | ||
| ... but at 227... | 21:39 | ||
| not sure yet | |||
| masak: jnthn's debugging my solution to that leaf compare problem thing you mentioned | 21:41 | ||
| jnthn | s/debugging/struggling to debug/ | ||
| diakopter | .. maybe i should do it.... | 21:42 | |
| I was hoping it would fix itself by some other means :) | |||
| jnthn | descend_sized does return?! | ||
| diakopter | yah setting result should be the last thing needed | 21:43 | |
| rest of state is on the c stack | |||
| jnthn | So here's the bit that confuses me | 21:44 | |
| if (memcmp(st->member, c->string->body.member + c->string_idx, \\ | |||
| wehave * sizeof(size))) { \\ | |||
| *result = 1; \\ | |||
| return; \\ | |||
| } \\ | |||
| That is, if they compare the same, set the result to 1 | 21:45 | ||
| and return | |||
| If that doesn't happen we reach the end of compare_descend and do | |||
| *result = 2; | |||
| diakopter | memcmp returns 0 if they compare the same | ||
| jnthn | oh, yes | ||
| duh :) | |||
| diakopter | however | ||
| it might not should be returning | |||
| jnthn: oh, I see the problem | 21:48 | ||
| er, no I don't | 21:49 | ||
| jnthn: the only thing I can think of at this second is that this is wrong somehow: "st->needed -= tocompare" | 21:51 | ||
| jnthn | What's slightly odd is the MVM_STRING_TYPE_ROPE path is never taken in compare_descend even though we clearly have a rope... | ||
| diakopter | whehhhh | ||
| that can't be right | 21:52 | ||
| jnthn: wait | |||
| why do you think we have a rope | |||
| i thought we were flattening everything everywhere | 21:53 | ||
| jnthn | No | ||
| I think we have a rope because substr returns one :) | |||
| diakopter | right, I just thought we were flattening everything everywhere | ||
| jnthn | Also because one of the input strings has num_strands = 1, and flags = 2. | ||
| diakopter | k | 21:54 | |
| jnthn | No, I think we discussed doing that, but aren't actually doing it. | ||
| diakopter | oh hm | ||
| jnthn | Feel free to put that in place, though. | 22:00 | |
| well, I did it here and it helps... | 22:09 | ||
| diakopter | :S | 22:10 | |
| dalek | arVM: 0fcc23d | jnthn++ | src/strings/ops.c: Always flatten ropes for now; avoids bugs. |
||
| diakopter | probably to diagnose it, I'd replace memcmp with something that printf a bunch of stuff | 22:11 | |
| dalek | arVM: 52d8110 | jnthn++ | nqp-cc/nqp-src/NQP.nqp: Remove classname stage; was copy-paste from JVM. |
22:12 | |
| jnthn | Well, that gets us to the next segfault. | 22:15 | |
| diakopter | \\\\\\\\\\\\\\o/////// | ||
| jnthn | Which doesn't seem to be GC related | ||
| diakopter | <- grew some arms | ||
| jnthn | oh, I see... | 22:18 | |
| diakopter | now what :) | 22:19 | |
| jnthn | Arg handling fail in bootstrap | 22:22 | |
| *bootstrap.c | |||
| diakopter | o_O | ||
| but.. bootstrap is before everything | 22:23 | ||
| oh, probably new_type | |||
| jnthn | new_type | ||
| Used at the start of parse | |||
| diakopter | \\o/ | ||
| jnthn | We get further now | ||
| To an NYI opcode | |||
| diakopter | \\o/ for guessing correctly | ||
| which one | |||
| FROGGS | O.o | ||
| jnthn | scobjcount | ||
| diakopter | wee-uhd | 22:24 | |
| dalek | arVM: 014ee8d | jnthn++ | src/6model/bootstrap.c: Missing check_arity calls. Needed because that triggers flattening. |
22:25 | |
| jnthn | It's used in NQP::World. | ||
| dalek | arVM: 3b82437 | jnthn++ | nqp-cc/t/moar/clargs.t: Sync clargs test with progname reality. |
22:26 | |
| jnthn | wtf, adding MVM_string_flatten(tc, result); in join breaks tests... | 22:27 | |
| uh, no...hmm | |||
| Removing it leaves them busted | |||
| wtf. | |||
| ah, we hit various missing SC ops | 22:31 | ||
|
22:32
grondilu joined
|
|||
| diakopter | jnthn: oh, I've doe a bunch alread y | 22:32 | |
| locally | |||
| go to sleep they'll be done when you wake up :) | 22:33 | ||
| jnthn | oh, ok | ||
| grondilu doesn't have linenoise: | |||
| src/io/fileops.c:13:23: fatal error: linenoise.h: No such file or directory | |||
| jnthn | That will get nqp.moarvm further :) | ||
| diakopter | or at least lots of progress :) | ||
| jnthn | lemme push the one I did | ||
| dalek | arVM: 026f778 | jnthn++ | src/core/interp.c: Implement scobjcount op. |
22:34 | |
| jnthn | Next one it hits is scsetobj. The signature in oplist looks wrong actually... | ||
| 0x02 scsetobj w(obj) r(obj) r(int64) | |||
| It's called as | |||
| nqp::scsetobj($!sc, $idx, $obj); | |||
| diakopter | heh ok | ||
| jnthn | So should be r(obj) r(int64) r(obj) | ||
| scsetcode is similarly | |||
| diakopter | one of them returns one of hte args needlessly.. is that intended? | 22:35 | |
| ("yay for chaining/fluency"?) | |||
| jnthn | "one of them"? | ||
| diakopter | one of the nyi op's sigs | ||
| (as impl in the jvm) | |||
| jnthn | yeah, it shoudln't needlessly do that... | 22:36 | |
| Oh, on the JVM they always needlessly do that as it's a stack machine | |||
| diakopter | ok | ||
| jnthn | In MoarVM we don't need to | ||
| diakopter | I feel like I've learned this before :) | ||
| jnthn | We have the "use this arg as the result" flag (which you probably even implemented way back :)) | ||
| So QASTOperationsMAST may need tweaking | 22:37 | ||
| diakopter | *blinks* | ||
| jnthn | after these changes | ||
| diakopter | ah, ok | ||
| jnthn | OK, well, there's another little bit of progress, anyways... | 22:40 | |
| diakopter | jnthn++ :D | ||
| btw when it was looping in interactive(), it memory leaked and asploded quickly | |||
| TimToady | &[<]++ | 22:41 | |
| diakopter doesn't recognize that idioma | |||
| TimToady | I'm giving karma to &[<] | ||
| which stands for progress | 22:42 | ||
| 1 < 2 < 3 < 4... | |||
| diakopter | so how do you reverse the direction of a [ ] | 22:43 | |
| TimToady | which direction are you referring to? | ||
| flussence | r: say [R<] 4,3,2,1 | ||
| FROGGS | [R<] ? | ||
| dalek | arVM: cb09baa | (Gerhard R)++ | build/ (2 files): Makefile bikeshedding - in particular don't hide compiler output |
22:44 | |
| arVM: b09b271 | (Gerhard R)++ | src/core/validation.c: Add missing initializer for local variable. I'm assuming zero-initialization is correct here. |
|||
| FROGGS | ENOCAMELIA | ||
| flussence | whoops, wrong channel. | ||
| jnthn | 'night, #moarvm | 22:49 | |
| diakopter | o/ | ||
| TimToady | yes, we do | 22:50 | |
| along with the details of channel hopping :) | 22:58 | ||