|
github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today Set by moderator on 27 September 2013. |
|||
| JimmyZ | TimToady: I got new ext name: .mbs Moar Byte[code] Stream | 01:34 | |
| Moar bytes sequence | |||
|
01:35
benabik joined
01:40
FROGGS_ joined
02:12
colomon joined
|
|||
| dalek | arVM/moar: a04674a | jimmy++ | / (96 files): s/moarvm/moar/ for most places. |
02:20 | |
| JimmyZ | .tell jnthn Please review github.com/MoarVM/MoarVM/commit/a04674a71c, thanks :P | 02:22 | |
| yoleaux | JimmyZ: I'll pass your message to jnthn. | ||
| TimToady | JimmyZ: this all started with me hating the term "bytecode" | 02:42 | |
| JimmyZ | oh | 02:47 | |
| Moar ByteStream | 02:48 | ||
| TimToady | it's the "byte" part I most dislike | ||
| JimmyZ | Moar Binary Stream | 02:53 | |
| TimToady | there are many kinds of binary streams that have nothing to do with machine code... | 02:54 | |
| so it's a bit generic | |||
| JimmyZ | well, chinese people don't like BS, the some special chinese culture | 02:55 | |
|
02:57
foo_bar_baz joined
03:33
japhb joined
03:51
japhb joined
06:59
patspam joined
|
|||
| ingy is post-moartem | 07:13 | ||
| FROGGS_ | TimToady: what about .mar - Moarvm ARchive | 07:24 | |
| dalek | arVM/ext: c2efaad | (Gerhard R)++ | / (18 files): Start implementing DLL support Symbols are still stubbed. |
09:26 | |
| arVM/ext: 0551ac5 | (Gerhard R)++ | / (6 files): Implement DLL symbols |
|||
| arVM/ext: d6227fc | (Gerhard R)++ | src/ (3 files): Improve naming |
|||
| MoarVM/ext: 60c7254 | (Gerhard R)++ | / (14 files): | |||
|
09:28
not_gerd joined
|
|||
| not_gerd | o/ | 09:28 | |
| FROGGS | hi not_gerd | 09:32 | |
| not_gerd | plans for this weekend: 3rd (4th? - hopefully last) refactor of ctypes | 09:35 | |
| after that, extension ops | |||
| jnthn | JimmyZ: looks fine to me, didn't try building it yet | 09:37 | |
| yoleaux | 02:22Z <JimmyZ> jnthn: Please review github.com/MoarVM/MoarVM/commit/a04674a71c, thanks :P | ||
| not_gerd | jnthn: question about REPR naming conventions: | 09:44 | |
| why do we have MVMString on Moar but VMString on JVM? | |||
| and what should DLLSym be called - DLLSym, VMDLLSym or MVMDLLSym | 09:45 | ||
|
09:46
grondilu joined
|
|||
| jnthn | Where do you find VMString, ooc? | 09:47 | |
| On JVM it's just the String type | 09:48 | ||
| not_gerd | s/VMString/VMArray/, then | 09:49 | |
| jnthn | Yeah, but it's called VMArray on moar too | ||
| At least, that's the user-facing name it's registered under. | |||
| In general, those registered with a prefix of MVM are specific to MoarVM | 09:50 | ||
| That is, you can't expect another backend to provide them | |||
| not_gerd | should the MVM_REPR_ID_* be made to match the names? | ||
| that'S where my confusion came from | |||
| jnthn | Yeah, those can match the name it's registered under too | 09:54 | |
| Only thing that I think we have inconsistent is prefixing anything exposed in a .h file with MVM so we only nab one prefix. | |||
| not_gerd | makes sense MVMVM is a mouthful | 09:55 | |
| jnthn | Aye :) | ||
| not_gerd | we could change the prefix to Moar and do the explicit double prefix for internal types - MoarMoarString ;) | 09:56 | |
| jnthn | :P | 09:57 | |
| not_gerd | jnthn: github.com/MoarVM/MoarVM/issues/59 | 10:12 | |
| jnthn | yeah, just read it in email | ||
| that captures my thoughts on it nicely | |||
| dalek | arVM: d995b33 | jimmy++ | / (96 files): s/moarvm/moar/ for most places. |
10:14 | |
| jnthn | hm, wtf... Just did a selftest, building with latest NQP, and got a bunch of failures... | 10:17 | |
| JimmyZ | nqp-cc]# make | 10:19 | |
| /usr/local/bin/nqp --target=pir --setting=NULL --stable-sc --output=NQPCOREMoar.setting.pir nqp-src/NQPCORE.setting | |||
| Confused at line 621, near "IO Methods" | |||
| jnthn | That just means too old nqp | ||
| not_gerd got a clean selftest with nqp 2013.09-50-gc6320d3 | 10:20 | ||
| before thes/moarvm/moar/, that is | |||
| jnthn | Yeah, I got 2013.09-117-g959d4c6 here | 10:22 | |
| not_gerd | btw, selftest now creates a non-ignored nqp-cc/tmp file | 10:24 | |
| jnthn | I guess there are things going on to do with recent grammar changes as part of the cursless work | ||
| ah, just needed to sync latest NQP changes | 10:30 | ||
| dalek | arVM: a3baf8c | jnthn++ | nqp-cc/t/nqp/ (6 files): Sync test files from t/nqp repo. |
10:48 | |
| arVM: 3f1c266 | jnthn++ | nqp-cc/nqp-src/ (4 files): Sync with latest NQP. |
|||
| arVM: f53577b | jnthn++ | nqp-cc/tools/build/NQP_REVISION: Bump NQP_REVISION to latest. |
|||
| arVM: 036b8f4 | jnthn++ | nqp-cc/t/nqp/8 (2 files): Add 2 new t/nqp tests from main NQP repo. One passes right off, the other needs work. |
|||
| jnthn | JimmyZ: Things work fine here after the rename | 10:54 | |
| JimmyZ | great | ||
| jnthn: Do we want travis-ci? | 10:58 | ||
| moritz | parrot's experience with travis CI was that it was full of noise and false positives | 10:59 | |
| maybe it improved since then | |||
| JimmyZ | it's easy to be improved | 11:01 | |
| i.e: only be noticed here when build status only changed or only failed | 11:02 | ||
| jnthn | JimmyZ: Not yet; maybe after we have a top-level test target figured out | 11:12 | |
| JimmyZ | ok :-) | 11:14 | |
| not_gerd | I could add a test target that builds nqp-cc and runs selftest | 11:16 | |
| however, I suspect sson-ish the logic would need to be turned inside-out | |||
| jnthn | Right :) | ||
| not_gerd | (ie NQP triggering MOarVM build) | ||
| jnthn | So it'd be throwaway :) | ||
| And we've enough non-throwaway things to do ;) | |||
| not_gerd | *soon-ish | ||
| jnthn | arrgh | 11:23 | |
| I found the cause of the "MVMHash representation requires MVMString keys" issue | 11:24 | ||
| It was as silly as I'd expected | |||
| dalek | arVM: 0911768 | jnthn++ | src/6model/serialization.c: Use correct type object for serialize result. |
11:25 | |
| not_gerd | git agrees - that was bad and even gave it an appropriate sha | 11:26 | |
| JimmyZ | hehe | 11:27 | |
| jnthn | :D | 11:28 | |
| dalek | arVM: b03f381 | jnthn++ | src/core/bytecode.c: Avoid reading uninitialized memory. Could happen if we did error reporting early enough in bytecode reads. |
11:30 | |
| arVM/pointers: 66dc88f | (Gerhard R)++ | src/6model/reprs/MVMDLLSym.c: Make DLLSym unbox to int |
|||
| arVM/pointers: a466609 | (Gerhard R)++ | / (7 files): Implement UnsafePtr |
|||
| arVM/pointers: db4f314 | (Gerhard R)++ | / (7 files): Implement MemBlob |
|||
|
11:33
colomon joined
|
|||
| jnthn | yays | 11:39 | |
| C:\\consulting\\MoarVM\\nqp-cc>..\\moar.exe nqp.moarvm --target=mbc --output=x.moarvm -e "say(42)" | |||
| C:\\consulting\\MoarVM\\nqp-cc>..\\moar.exe x.moarvm | |||
| 42 | |||
| FROGGS | jnthn++ # fixing the sillyness :o) | ||
| cool!! | 11:40 | ||
| dalek | arVM: c35115b | jnthn++ | src/mast/driver.c: Don't pretend bytecode is ASCII. Otherwise it *will* be corrupted. :-) With this, --target=mbc will now write a bytecode file that will run standalone. |
||
| JimmyZ | .oO(moar is executing an moarvm...) |
||
| FROGGS | seems like an successful-starting weekend | ||
| for example my wife's shop is now capable of handling paypal payments since an hour! | 11:41 | ||
| jnthn | yay :) | 11:42 | |
| FROGGS | took quite some time to understand what needs to be done :o) | ||
| (Dancer++ btw) | |||
| jnthn | FROGGS: Gee, been a while since I did PayPal integration :) | 11:43 | |
| FROGGS | yeah, I usually avoid doing webstuff these days... but I can't say no to my wife :o) | ||
| jnthn | ;) | ||
| FROGGS | and the shop is le awesome, took just about ten evenings so far | 11:44 | |
| (from zero to paypal) | |||
| jnthn | Cool | ||
| FROGGS | but let's build moarvm now :o) | 11:46 | |
| grondilu | FROGGS: no prestashop? | ||
| FROGGS | grondilu: no, selfhacked | 11:47 | |
| grondilu | with client database and all?? | 11:48 | |
| FROGGS | no, no client db | 11:49 | |
| we just take the info from paypal | 11:50 | ||
| (I don't expect more than five orders a day) | 11:51 | ||
| grondilu | well, considering prestashop is written in PHP, I understand why you may have prefered cook your own solution. Maybe someday someone will release a full open-source e-commerce solution in Perl 6. | 11:52 | |
| FROGGS | grondilu: well, I guess the reason was that I didn't think about looking for another shop at all | 11:53 | |
| jnthn | bbiab | 11:54 | |
| diakopter | :-) | 12:16 | |
| dalek | arVM/ext: d995b33 | jimmy++ | / (96 files): s/moarvm/moar/ for most places. |
13:27 | |
| MoarVM/ext: a3baf8c | jnthn++ | nqp-cc/t/nqp/ (6 files): | |||
|
13:28
dalek joined
|
|||
| not_gerd | bye, #moarvm | 13:43 | |
| FROGGS | jnthn: t/nqp/19 just fails because it tests for a CREDIT file, which is in a different path in the moarvm repo | ||
| not_gerd | .oO( or should that be #moar now? ) |
||
| FROGGS | *g* | 13:44 | |
|
13:44
not_gerd left
13:57
_ilbot joined
|
|||
| moderator | github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today | ||
| FROGGS | about `make install`: moar + all dynamically linked libs need to land in --prefix, right? | 14:02 | |
|
14:13
benabik joined
|
|||
| jnthn | Probably in a bin/ under prefix, yeah | 14:17 | |
| FROGGS | yeah, right | ||
| jnthn | .oO( is that the sarcastic "yeah, right"? :P ) |
14:18 | |
| FROGGS | that makes me fear about rpath under Mac/BSD's >.< | ||
| jnthn: no, just a lazy sleepily one | 14:19 | ||
| jnthn | hm | ||
| I've no idea how those work :P | |||
| FROGGS | nobody has *g* | ||
| jnthn | I just know that Mac seems to be super super special when it comes to linking ;) | ||
| FROGGS | the good thing is that I have all these platforms here... prepared with git and make-toolchains | 14:20 | |
| jnthn | \\o/ | ||
| FROGGS | wow, do we build all 3rd-party libs statically? | 14:31 | |
| that means we won't have problems at all | |||
| jnthn | ;-) | 14:34 | |
| sysadmins may have problems with *us*, but yes, we can skip having that class of problems for now :) | |||
| dalek | arVM: 6604ed7 | jnthn++ | nqp-cc/ (4 files): Eliminate .class/:jvm hacks. Bumps NQP_REVISION to get an NQP with :moar options in QAST::VM. |
14:44 | |
| benabik | Oh, my GC segfault in selftest went away. So that's good. | 14:47 | |
| jnthn | No, that just means it's a heisenbug :( | ||
| diakopter | benabik: I thought it was on my gcorch branch | ||
| benabik | diakopter: Nope, master. | ||
| Well, it was segfaulting reliably until I pulled latest. | 14:48 | ||
| TimToady | .oO(a gcorched earth policy) |
||
| diakopter | I gcoff in your general direction | ||
| TimToady 's garbage starts to accumulate | 14:49 | ||
| benabik | When did camelia learn nqp-moar and does this mean she'll be on this channel soon? | 14:52 | |
| dalek | arVM/make_install: 1f105f2 | (Tobias Leich)++ | / (2 files): added make install target |
14:53 | |
| diakopter | "my list of things that suck would not be complete without mentioning Perl's garbage collection, which by the way, sucks" - mjd just now | ||
| benabik | Refcounting with M&S for circular refs? Not the worst thing ever (in concept, no comment on implementation) | 14:55 | |
| diakopter | [paraphrased] "Moose is kindof a wash....... except for Roles; Roles are awesome" | ||
| benabik | Is mid giving a talk somewhere? | 14:56 | |
| s/i/j/ | |||
| diakopter | yes, pghpw.org/ppw2013/talk/5097 | ||
| benabik | One of these days I should go to PPW. It's close enough to be reasonable. (Far enough to be a pain.) | 14:57 | |
| diakopter | you can make it by tomorrow | ||
| JimmyZ | when I saw '<title>PostgreSQL: The world's most advanced open source database</title>' in postgresql.org, I was thinking about '<title>MoarVM: The world's most advanced open source Virtual Machine</title>' | 14:58 | |
| diakopter | .. it's far from that :P | 14:59 | |
| benabik | There's not a lot of good OSS VMs. | ||
| diakopter | general purpose? mono is extremely good. | 15:00 | |
| benabik | I might be able to make PPW by the end of the day if I left now. I think there would be a few objections to that. | ||
| diakopter | but mono's problem is the tens of thousands of open bug reports | ||
| JimmyZ | mono has no NFG | ||
| jnthn | Nor has Moar yet :P | ||
| JimmyZ | hehe | ||
| jnthn | Though we probably still get strings less wrong already :) | 15:01 | |
| JimmyZ | we have an NFG branch | ||
| jnthn | Yeah. And we don't have a screwed up "UTF-16 16-bit thingies are characters, right?" model. | ||
| benabik | I suppose I shouldn't forget mono, as it runs a couple of my favorite games. :-D | 15:02 | |
| grondilu wonders what is an "advanced" virtual machine. Seems very subjective to him. | |||
| timotimo | diakopter: when did mono get "extremely good"? | 15:08 | |
| diakopter: i mostly hear "OMG MONO SUX!!!kkk" out in the wild, but i have no idea if the people who say that can be trusted on that | |||
| ingy | morning o/ | 15:09 | |
| benabik | Given its wide use in Unity, mono seems Good Enough(tm). | 15:10 | |
| ingy | timotimo: have you been using mono? | ||
| TimToady | you seem to assuming that Unity is Good Enough(tm) :P | ||
| *to be, or not to be | |||
| timotimo | i have not | 15:11 | |
| ingy | Unity is good enough reason to use Gnome3 :D | ||
| benabik | Well Unity is good enough to run CW3 and KSP, so it's good enough for me. :-) | ||
| TimToady | there is that | ||
| timotimo | i'm pretty sure benabik wasn't refering to the unity thing canonical made | ||
| ingy | oh sorry | ||
| TimToady was referring to the canonical thing | 15:12 | ||
| ingy | anyway timotimo I need some help using nyaml with mono | ||
| nyaml is a c# impl | |||
| timotimo | i was considering learning c# to get into game development (but not unity or anything like that) | 15:13 | |
| ingy | but I don't know anything about how you compile or run csharp | ||
| benabik double clicks on the game. That seems to work. | |||
| (For running C# anyway) | |||
| ingy | benabik: what do you mean? | 15:14 | |
| diakopter | ingy: think C++, but readable | ||
| FROGGS | jnthn: `make install` currently only installs moar, the binary... do we need something else? | ||
| benabik | ingy: Several of my games are written in C#. Running them seems easy enough. | ||
| jnthn | FROGGS: nafaik | ||
| FROGGS | jnthn: seems to work on linux+windows | 15:15 | |
| otwfm :P | |||
| timotimo | benabik: can i look at some sauce? | ||
| diakopter | -_- | ||
| benabik | timotimo: Retail games, sorry. :-/ | ||
| timotimo | oh | 15:16 | |
| that's fair ;) | |||
| benabik | Although there are source-available plugins for KSP. Including one that's a scripting language... | ||
| jnthn | FROGGS: Looks fine, feel free to merge | 15:18 | |
| ingy | echo 'Console.WriteLine ("hello");' | csharp | ||
| ^^ I got that to work | |||
| diakopter | ingy: yep it has a faked-up repl thingy | ||
| ingy | but I'd like to install the nyaml "module" and run some one liners on it | 15:19 | |
| diakopter: you used mono at all? | |||
| diakopter | yes | ||
| ingy | oh sweet | ||
| I'll bug you then | |||
| dalek | arVM: ee94a4d | (Tobias Leich)++ | / (2 files): added make install target |
||
| diakopter | I'll debug you then | ||
| ingy | after my bike training ride | ||
| bbi3h | 15:20 | ||
| & | |||
| TimToady | .oO(ingy is training bikes?) |
||
| FROGGS | yeah, train it some respect! | 15:21 | |
| jnthn | Probably safer than biking trains... | ||
|
15:25
arnsholt joined
|
|||
| jnthn | FROGGS: hmm...if I --prefix=install it ignores it | 15:46 | |
| FROGGS: and always puts it directly in ./bin | 15:47 | ||
| FROGGS | hmmm | 15:49 | |
| ahh, I know why | |||
| dalek | arVM: 64fd905 | (Tobias Leich)++ | Configure.pl: actually take --prefix into acount |
15:52 | |
| JimmyZ | hmm, look like install: before all: Makefile will make `make` always install | ||
| FROGGS | ohh | 15:53 | |
| JimmyZ | s/Makefile/in Makefile | ||
| / | |||
| jnthn | d'oh, yes... | ||
| FROGGS | I didn't know that the first rule is takes by default... I thought 'all' was magical | 15:54 | |
| JimmyZ | I tought 'inst all' is the magical, hah | ||
| *thought | |||
| dalek | arVM: 83a2a67 | (Tobias Leich)++ | build/Makefile.in: let "all" be the default rule, JimmyZ++ |
15:55 | |
| diakopter | jnthn: can roles "does" other roles? | ||
| jnthn | diakopter: yeah | 15:57 | |
| FROGGS | ahh, I am missing all the fun when I lurk here exclusively | ||
| jnthn | diakopter: Though it's just a "oh btw I do this other role" until you actually have a class somewhere | ||
| diakopter | stevan is putting abstract classes in p5-mop just so they can be named as nouns instead of behaviors | 15:59 | |
| jnthn: see what I mean? | 16:01 | ||
| jnthn | kinda-ish.. | 16:02 | |
| Though I very rarely use abstract classes in languages that provide them. | |||
| Not sure they pull their weight. | 16:03 | ||
| diakopter | yeah it definitely adds unneeded complexity to p5-mop, imho | ||
| jnthn | Well, if it's being facotred anything like 6model it shouldn't be core. | ||
| It's just another meta-object. | |||
| Oh, I guess maybe you want to parse "abstract" before class | 16:04 | ||
| diakopter | jnthn: since roles and classes share the same namespace, what practically prevents them from being unified things but with two keywords | 16:05 | |
| tadzik | benabik: wow, games. What kind of games? | ||
| dalek | arVM: 355b4e0 | jnthn++ | src/ (2 files): Add a --libpath option; currently unused. Will control where loadbytecode will look. Needed for NQP bootstrap. |
16:14 | |
| arVM: 7ea058a | jnthn++ | src/core/loadbytecode.c: First pass at handling libpath. Improvements, especially to platform handling, welcome. |
|||
| jnthn | diakopter: Probably not much... :) | ||
| diakopter: Aside from you may want inheritance-y semantics. | |||
|
16:15
ssutch joined
|
|||
| jnthn | If anybody feels strongly enough about the above two patches to redo them, I won't object so long the outcome is less wrong. :) | 16:17 | |
| FROGGS | ahh, this libpath maps to @*INC? | 16:27 | |
| jnthn | Well, NQP doesn't have that, but kinda-ish, yeah :) | 16:29 | |
| It's "just enough" that I should be able to get the stage0, stage1 etc loaded correctly | 16:30 | ||
| FROGGS | cool | ||
| TimToady | diakopter: in P6, roles are immutable, and classes are not. You might say that classes are role containers :) | 16:37 | |
| keeping abstractions immutable will contribute to optimizability at some point | 16:39 | ||
| when everything is mutable, nothing much is statically analyzable | 16:40 | ||
| we got rid of tie for the same reason | |||
| dalek | arVM: 4d45b76 | (Tobias Leich)++ | build/Makefile.in: make prefix/bin/moar executable |
16:55 | |
| FROGGS | echo "to do" | 16:56 | |
| to do | |||
| :o) | |||
| dalek | arVM: b674414 | jnthn++ | src/mast/driver.c: Prevent GC messing up bytecode -> file. |
17:28 | |
| arVM: 067a66e | jnthn++ | src/core/loadbytecode.c: Only use libpath prepended file if it exists. |
|||
| arVM: 1ed29ab | jnthn++ | nqp-cc/nqp-src/ModuleLoader.pm: ModuleLoader tweaks in support of bootstrap. |
|||
|
18:04
benabik joined
18:24
camelia joined
|
|||
| FROGGS | nqp-m: say("hello #moarvm!") | 18:25 | |
| moritz | the first execution is always slow | ||
| camelia | nqp-moarvm: OUTPUTĀ«hello #moarvm!ā¤Ā» | ||
| FROGGS | \\o/ | ||
| jnthn | Even in another channel? :) | ||
| moritz | don't take this to mean anything | ||
| yes | |||
| FROGGS | nqp-m: say("hello #moarvm! again") | ||
| jnthn | ok :) | ||
| camelia | nqp-moarvm: OUTPUTĀ«hello #moarvm! againā¤Ā» | ||
| FROGGS | awesome | ||
| moritz | jnthn: seems to be per camelia process, not per channel or implementation | ||
| jnthn | ah, ok | 18:26 | |
| FROGGS | well, doesn't really matter, right? | ||
| jnthn | moritz++ # camelia on #moarvm | ||
| FROGGS | moritz++ # yesh! | ||
| moritz | diakopter++ asked for it :-) | ||
| diakopter | well, and then retracted the request :) | 18:32 | |
| oh, to be in this channel... | 18:44 | ||
| erm, .shutup | 18:45 | ||
| TimToady | you mean $.shutup? | 18:59 | |
| we're not sure what's in $_ :) | |||
| FROGGS | well, there is a /topic | 19:00 | |
| jnthn | .oO( see the /topic ) |
||
| diakopter | hm, what's $. | ||
| FROGGS | a public attr? | ||
| dalek | arVM: d097476 | jnthn++ | / (8 files): settypehll and settypehllrole ops |
19:11 | |
| arVM: e75385d | jnthn++ | nqp-cc/nqp-src/NQP.nqp: Fix a typo. |
|||
| diakopter | less is maor | 19:13 | |
| jnthn | my $param_kind := self.type_to_register_kind($var.returns // NQPMu); | 19:18 | |
| um, type objects are always undefined :) | |||
| FROGGS | heh | ||
| dalek | arVM: 14e67ac | jnthn++ | nqp-cc/src/QASTCompilerMAST.nqp: Fix natively typed parameter's compilation. |
19:31 | |
| FROGGS | nqp-m: say(nqp::cwd()) | 19:42 | |
| camelia | nqp-moarvm: OUTPUTĀ«At Frame 0, Instruction 38, op 'shell' has invalid number (1) of operands; needs 4.⤠at nqp-src/QASTMoar.nqp:7955 (./QASTMoar.moarvm:assemble_and_load:15)⤠from nqp-src/NQPHLL.nqp:914 (./NQPHLLMoar.moarvm:mbc:70)⤠from nqp-src/NQPHLL.nqp:1322 (./NQPHLLMā¦Ā» | ||
| FROGGS | nqp: say(nqp::cwd()) | ||
| camelia | nqp: OUTPUTĀ«/home/p6evalā¤Ā» | ||
| dalek | arVM: 9f46b63 | jnthn++ | / (7 files): Add and map isint/isnum/isstr ops. |
19:43 | |
| diakopter | FROGGS: that error happens when jnthn bumps the nqp revision level | 19:46 | |
| I'm not sure how to make the evalbot recognize it | 19:47 | ||
| FROGGS | ahh | 19:48 | |
| add a cronjob that rebuilds it if say(1) dies | 19:49 | ||
| diakopter | heh. | 19:50 | |
| FROGGS | :o) | ||
| diakopter | I suspect that a git fetch is missing somewhere in the Configure.pl | ||
| TimToady | we should just teach make to handle git dependencies :D | 19:51 | |
| jnthn | Bootstrapping progress: first 4 files build so far, explode on the 5th | 19:53 | |
| TimToady | half done already, eh? | 19:54 | |
| diakopter | wat. | ||
| well, they build, but doesn't mean they work | 19:55 | ||
| TimToady | SMOD | ||
| ooh, selftest fails file-ops and decode | 19:56 | ||
| decode says No registered operation handler for 'encode' | 19:57 | ||
| file-ops sez: Failed to stat file: no such file or directory at t/nqp/19-file-ops.t:14 (<ephemeral file>:frame_name_0:4294967295) | 19:58 | ||
| diakopter | TimToady: see scrollback about fileops | 19:59 | |
| jnthn | TimToady: Yeah, not Moar regression, just that I sync'd latest t/nqp from the main NQP repo today | ||
| diakopter | encode should work | ||
| jnthn | We didn't have an 82-decoe before. | ||
| diakopter | oh | ||
|
19:59
japhb_ joined
|
|||
| TimToady | okay, just so's it's knone | 19:59 | |
| jnthn | It's a new test file since we last sync'd | ||
| yeah, matches what I have here. Thanks. :) | 20:00 | ||
| Darn. :( | |||
|
20:00
foo_bar_baz joined
|
|||
| jnthn | Building QRegex works under the VS debugger, but blows up from command line | 20:00 | |
| diakopter | when I've seen that happen, it's because it's double-closing stdout | ||
| so I put a horrible hack in a while ago to prevent closing it at all | 20:01 | ||
.oO( need to fix that.... ) |
|||
| (but maybe the hack got subverted) | 20:02 | ||
| jnthn | Not sure where that'd be going on... | ||
| diakopter | gc_free | ||
| for some reason VS doesn't trap/fail on the double-close, but the shell does | 20:04 | ||
| FROGGS | :o( | ||
| jnthn | diakopter: Currently gc_free of MVMOSHandle does...nothing. | ||
| diakopter | haha; sum1 buheleted | ||
|
20:04
colomon joined
|
|||
| jnthn | bah, heisenbug indeed. If I --stagestats it, it works... | 20:05 | |
| timotimo | haha, great >_< | ||
| jnthn | Typically, it doesn't segv under VS when I add that too... | 20:07 | |
| diakopter | okay make it output to stdout something other than stagestats... :) | ||
| (to confirm that it's just writing to stdout that makes it work) | |||
| jnthn | no, it's not about that, it seems... | 20:12 | |
| NQPHLL also explodes, and --stagestats don't fix that. | |||
| will vs get this one... | |||
| yes, it does get this one. | 20:13 | ||
| diakopter | what are the stagestats, btw :) | 20:15 | |
| jnthn | --stagestats gives timing info on each compilation stage | 20:16 | |
| oh hmm, this is a jolly bad idea... | |||
| diakopter | no, I mean what *are* the stagestats, not *what* are the stagestats | ||
| jnthn | 6.1s parse for QRegex, but this is an unopt build which makes quite a diference. | 20:18 | |
| diakopter | what's parrot for parse QRegex | 20:19 | |
| ingy | *what* *are* *you* *talking* *about* *?* | ||
| jnthn | diakopter: no idea without going and tweaking the makefile | ||
| diakopter | oh | ||
| jnthn | Well, found at least one bug... | 20:22 | |
| Sadly, not the only one. | 20:23 | ||
| FROGGS | :/ | ||
| dalek | arVM: 5265856 | jnthn++ | src/6model/serialization.c: Fill out static code ref setup during deserialize. |
||
| arVM: 5ea138c | jnthn++ | src/6model/serialization. (2 files): Don't hold a pointer to memory that gets realloc'd Otherwise, we can end up looking at an old version of it. |
|||
| jnthn | But again --stagestats masks it | 20:24 | |
| diakopter | writer->root.sc->body->root_stables[writer->stables_list_pos] | 20:27 | |
| jnthn | longer, but righter :) | ||
| diakopter: btw, the stagestats output goes to stderr, not stdout... | 20:28 | ||
| diakopter | oh, heh. | 20:32 | |
| jnthn | OK, so if you --prefix your MoarVM to install into, say, C:\\MoarVM\\install, then in the moarboot branch of NQP you do perl ConfigureMoar.pl --prefix=C:\\MoarVM\\install | 20:33 | |
| That is, prefix of NQP should match the one you gave to MoarVM's Configure | |||
| If anybody fancies building and/or removing the --stagestats and seeing if they can get any intresting explosions that help track down the issues, that'd be grat. | |||
| *great | |||
| FROGGS re-builds | 20:34 | ||
| jnthn | note, you don't need an up-to-date nqp-cc | 20:35 | |
| diakopter | yay. | ||
| so the .moarvm are going in the repo? | |||
| jnthn | In the NQP one as stage0, aye | ||
| Just like the PIR and JAR do. | 20:36 | ||
| FROGGS | --output=src/stage1/QRegex.moarvm src/stage1/gen/QRegex.nqp | ||
| Stage start: 0.000005Stage start : 0.000 | |||
| make: *** [src/stage1/QRegex.moarvm] Speicherzugriffsfehler (Speicherauszug erstellt) | |||
| running with gdb now | |||
| jnthn | Damn, those are long words :P | ||
| Speicherzugriffsfehler :D | |||
| a riffs fehler sounds like a guitarist screwed up... | 20:37 | ||
| tadzik | hahah | ||
| FROGGS | jnthn: gist.github.com/FROGGS/7fe668092e7d08a387d3 | ||
| zugriff == access | |||
| jnthn | FROGGS: Is that an optimized Moar rather than a debugging one? | 20:38 | |
| oh, wait...symbols are there | |||
| FROGGS | it is an optimized... I'll run again | ||
| jnthn | well, some of them... | 20:39 | |
| yeah | |||
| FROGGS | Stage mbc: 0.016081Stage mbc : 0.016 | 20:40 | |
| moar: 3rdparty/libuv/src/unix/loop.c:150: uv__loop_delete: Assertion `!((((*(&(loop)->active_reqs))[0]) == (&(loop)->active_reqs)) == 0)' failed. | |||
| diakopter | I've seen that before in VS | 20:41 | |
| FROGGS | jnthn: updated the gist | ||
| diakopter | it's not a libuv bug | ||
| it's due to us misusing it | |||
| FROGGS | "Datei oder Verzeichnis nicht gefunden" means "file or directory not found" | ||
| jnthn | huh, but that's failing right at the end now... | 20:42 | |
| FROGGS | the unoptimized build got further, yes | 20:43 | |
| jnthn | FROGGS: What if you remove the --stagestats ? | ||
| FROGGS | [Inferior 1 (process 26166) exited normally] | ||
| jnthn | argh | 20:44 | |
| Maybe try the next file (NQPHLL)? | |||
| FROGGS | jnthn: updated gist | 20:47 | |
| err, that was with --stagestats, hold on | |||
| jnthn: succeeded | 20:48 | ||
| jnthn | argh! | ||
|
20:49
colomon joined
|
|||
| diakopter | I giggle in your general direction at your amusing travails | 20:49 | |
| [which are all but certainly my fault] :D | |||
| jnthn | diakopter: Don't suppose you've got an ASAN setup handy? | 20:52 | |
| diakopter | ish | ||
| well, you have one now that I created you an account on host07 | |||
| jnthn | diakopter: oh? | 20:53 | |
| How'd I get there? | |||
| diakopter | privmsg | ||
| jnthn | thanks :) | 20:56 | |
|
20:57
lue joined
|
|||
| lue | After checking out the nqp/moarboot branch and trying to compile it, I got these results with the command run by the Makefile and then the same command, removing --stagestats from the command: gist.github.com/lue/6845909 | 20:58 | |
| Basically, I get a failed assertion with stagestats and no error without, which is somewhat opposite jnthn's results from what I understand (no segfault with stagestats, segfault without) | 20:59 | ||
| diakopter | yeah I'd guess that we're not doing a good job preventing more than one main loop from being created or something like that | ||
| or closing it at the wrong time | |||
| jnthn | ok, asan blows on QRegex \\o/ | 21:01 | |
| diakopter | erm. | 21:02 | |
| jnthn | Now just need to work out the symbolize thing :) | 21:03 | |
| timotimo | i think there are a few tests in order | ||
| jnthn | oh wtf, when I redirected the stderr output it was ok! | 21:04 | |
| timotimo | m) | 21:05 | |
| diakopter | jnthn: toldya | ||
| jnthn | yeah but on Linux :) | 21:06 | |
| ok, I think I might be able to read the raw asan output anyway | |||
| diakopter | oh, I didn't doubt the problem was cross-platform | ||
| jnthn | hm | ||
| diakopter | jnthn: well, you can save the output to a file then cat it to asan_symbolize | 21:07 | |
| stderr redirect by copy/paste. :) | |||
| jnthn | Hmm | ||
| yeah | |||
| it doesn't seem so keen to fail when I remove the --stagestats | |||
| But it did find something in MVM_load_bytecode that may be legit | 21:08 | ||
| MVM_HASH_BIND(tc, tc->instance->loaded_compunits, filename, loaded_name); | |||
| There's nothing to keep filename from being collected. | |||
| oh, maybe there is... | |||
| diakopter | the hash thing makes a copy I think | ||
| jnthn | Nope, and it ain't marked | 21:09 | |
| I mean, it stashes it so it *can* mark it | |||
| But doesn't. | |||
| diakopter | ah | ||
| but filename isn't collectable | 21:10 | ||
| it's char * | |||
| erm | |||
| maybe it is. I forget. | |||
| jnthn | MVMString *filename; | ||
| diakopter | okay :) | ||
|
21:15
donaldh joined
|
|||
| dalek | arVM: ec01059 | jnthn++ | src/gc/roots.c: Make sure loaded filename strings are marked. |
21:19 | |
| jnthn | Doesn't fix my SEGV, sadly | 21:20 | |
| FROGGS | jnthn: I've read that calling uv_loop_delete() with opened filehandles is not the best idea and results in the error message I get | 21:23 | |
| and we are calling getstdstream which opens a tty but never closes it afaik | 21:24 | ||
| jnthn: you don't get an error msg at all on windows, right? | 21:26 | ||
| jnthn | no, just segv, but it's not happening at exit time... | 21:27 | |
| FROGGS | ahh, yes | ||
| jnthn | diakopter: Hm, that fix didn't make ASAN happier... | 21:34 | |
| FROGGS | hmmm, it doesnt segfault on my windows at all :/ | 21:38 | |
| hmmm, it fails without --stagestats in my debugger on windows | 21:49 | ||
| roots.c 253 if (flag_map[flag] & MVM_CALLSITE_ARG_NAMED) { | 21:50 | ||
| jnthn | hm...what's flag_map look like? | 21:51 | |
| FROGGS | "Unhandled exception at 0x000000013FE56341 in moar.exe: 0xC0000005: Access violation reading location 0x0000000000000000." | 21:53 | |
| it is NULL | |||
| jnthn | What about frame->params? | ||
| Also, what's on the stack? | |||
| FROGGS | -\t\tparams\t{callsite=0x00000000036fb710 {arg_flags=0x00000000036fb750 "\\x1A\\x1(««««««««««««««««îþîþîþîþîþîþ" arg_count=...} ...}\tMVMArgProcContext | 21:54 | |
| what do you mean by "on the stack" ? | |||
| the call stak? | |||
| stack* | |||
| >\tmoar.exe!scan_registers(MVMThreadContext * tc, MVMGCWorklist * worklist, MVMFrame * frame) Line 253\tC | 21:55 | ||
| jnthn | call stack | ||
| Yeah, if you follow down you should see some GC frames? | |||
| FROGGS | gist.github.com/FROGGS/a6b254aaef4dc4115d63 | 21:56 | |
| jnthn | k | ||
| hmm | |||
| oh... | 21:57 | ||
| if (frame->params.args | |||
| I bet that should be | |||
| if (frame->params.arg_flags | |||
| FROGGS++!! | 21:59 | ||
| FROGGS | \\o/ | ||
| jnthn | It just built here without the --stagestats and without a segv | ||
| dalek | arVM: 0991c57 | jnthn++ | src/gc/roots.c: Correct check for if we need to process flattening FROGGS++ for debugging. |
22:00 | |
| jnthn | oh, I did forget something about the install... | 22:01 | |
| We need the MAST libs installing too | 22:02 | ||
| FROGGS | ahh, true | ||
| under lib I suppose? | |||
| jnthn | yeah | ||
| lib/MAST/ | |||
| FROGGS | k | ||
| jnthn | You want to or shall I? :) | ||
| FROGGS | dunno | 22:03 | |
| jnthn | is $(MKPATH) recursive, do you know? | ||
| FROGGS | it is | 22:04 | |
| jnthn | cool | ||
| Then I should have a patch :) | |||
|
22:04
colomon joined
|
|||
| FROGGS | now I had the right Makefile.in open too... I'm a bit slow at | 22:05 | |
| atm* | |||
| dalek | arVM: 03b551e | jnthn++ | build/Makefile.in: Install MAST ops and nodes libraries. |
22:27 | |
| FROGGS tries an optimized build | 22:29 | ||
| :o( | 22:30 | ||
| jnthn | ? | 22:31 | |
| FROGGS | ahh, that fails in uv_fs_stat, like earlier | ||
| jnthn | yeah, asan also picked that up | ||
| It's from MVM_file_exists, which in turn is called from loadbytecode.c | 22:32 | ||
| FROGGS | we don't need an MVM_ASSIGN_REF there at line 41? | 22:34 | |
| if (!MVM_file_exists(tc, result)) | |||
| result = orig; <---- here | |||
| jnthn | no, 'cus we're not storing it into an object | ||
| FROGGS .oO( marked by '<---- here' ) | 22:35 | ||
| k | |||
| dalek | arVM: 3ae2c86 | jnthn++ | nqp-cc/nqp-src/NQP.nqp: Fix a fossil. |
22:37 | |
| timotimo | how much closer are we to the bootstrap now that froggs has debugged the thing? | ||
| FROGGS | hmmm, it calls exists for src/vm/moar/stage0/./src/stage1/NQPCORE.setting.moarvm | 22:39 | |
| jnthn | Well, it means we're onto the next files | ||
| yeah | |||
| Which shouldn't exist :) | |||
| FROGGS | but the file is called NQPCOREMoar.setting.moarvm (with "Moar" in it) | ||
| jnthn | That's ok | ||
| FROGGS | okay | ||
| jnthn | For now, at least | 22:40 | |
| FROGGS | should I rebuild the cc for some reason? | ||
| nqp-cc* | |||
| I guess not | 22:41 | ||
| dalek | arVM: a7326ad | jnthn++ | nqp-cc/src/QASTCompilerMAST.nqp: Better error reporting. |
22:49 | |
| arVM: 1ed57e8 | jnthn++ | nqp-cc/nqp-src/NQP.nqp: Further fixes to make BEGIN blocks work/compile. |
|||
| FROGGS | ahh | 22:50 | |
| jnthn: so you are building a better to-be-stage0 ? | |||
| jnthn | yeah, I have one locally | 22:51 | |
| Just not quite in a position to push it yet | |||
| FROGGS | yeah, that was what I was thinking | 22:52 | |
| is* | |||
| builds successfully here so far | 23:11 | ||
| jnthn | Just done a big push | 23:12 | |
| FROGGS | ohh, another big one :o) | ||
| jnthn | Yeah | 23:13 | |
| We make it through building stage1 now | |||
| The output doesn't work | |||
| But that woulda been too good to be true :) | |||
| FROGGS | yeah, we would miss all the fun :o) | 23:14 | |
| builds here | 23:16 | ||
| unoptimized: | |||
| real\t2m55.204s | |||
| user\t2m46.588s | |||
| diakopter | is that good? | 23:18 | |
| FROGGS | optimized: | 23:19 | |
| real\t1m37.124s | |||
| user\t1m28.960s | |||
| jnthn | The fact that NQP on MoarVM can compile the NQP sources is *good* yes :) | ||
| FROGGS | diakopter: no idea, we only can compare when it is done I think | ||
| timotimo | wow that is a big time win | ||
| FROGGS | the timings are of course crap I'd say, because I have a Windows 7 vm running... | 23:20 | |
| jnthn | Time for a stout, methinks :) | 23:22 | |
| This went a bunch faster than the equivalent work for JVM :) | |||
| FROGGS | yeah | ||
| I have no beer here... but if I had one I would have already fell asleep | 23:23 | ||
| well, there would be something horrible wrong if it went slower than the JVM work | 23:24 | ||
| jnthn | Well, I could easily see that happening | 23:25 | |
| I mean, the files we've just used MoarVM to compile are much bigger than t/nqp | 23:26 | ||
| It's possible we'd have started hitting various bugs. | |||
| And so had to do many VM fixes | |||
| diakopter | how fast was it compared to on parrot? ;) | 23:27 | |
| FROGGS | :o) | ||
| jnthn | heh :) | ||
| Well, that was the original, so... :) | |||
| anyway, heading afk... | |||
| Will see if I have any tuits tomorrow to debug stage1 | |||
| diakopter | jnthn++ :D | 23:28 | |
| jnthn | I think we're looking reasonably good to land MoarVM support in this month's NQP release. :) | ||
| 'night o/ | |||
| diakopter | others++ | ||
| FROGGS | gnight jnthn | 23:29 | |
|
23:40
colomon joined
|
|||
| diakopter | FROGGS: how did ./moar become 16MB | 23:57 | |
| FROGGS | O.o | ||
| it is just 2.4 on linux | 23:58 | ||
| and 3.6 on my windows 7 | |||
| TimToady | 4meg here on a 64-bit | 23:59 | |
| (linux mint) | |||