00:45
dalek joined
02:47
TEttinger joined
05:12
lizmat joined
06:01
rurban_ joined
06:16
ShimmerFairy joined
06:49
zakharyas joined
06:58
FROGGS joined
|
|||
FROGGS | o/ | 07:00 | |
07:16
ely-se joined
07:25
ingy joined
|
|||
ely-se | If I want to run a hello world program using libmoar I guess it's easiest to generate a file containing data and calling MVM_vm_run_file? | 07:33 | |
JimmyZ | ely-se: github.com/rakudo/rakudo/pull/330/files # something like this | 07:35 | |
07:42
camelia joined,
[Coke] joined,
Util joined
07:47
[Coke] joined,
Util joined
|
|||
ely-se | cool | 07:59 | |
08:01
danaj joined
08:05
TEttinger joined
08:08
camelia joined
08:51
brrt joined
|
|||
brrt | good * | 08:51 | |
JimmyZ | \o brrt | 08:53 | |
brrt | o/ JimmyZ | 08:54 | |
dalek | arVM: a136892 | jnthn++ | src/6model/serialization.c: Clean up SerializationReader pointer on failure. Otherwise we might try and mark it if we trigger GC when the SC is still reachable, and then end up looking into freed memory. |
09:24 | |
jnthn | o/ brrt | ||
brrt | \o jnthn | 09:25 | |
ely-se | \o/ ely-se | 09:31 | |
tadzik | \o/ | 09:33 | |
JimmyZ | jnthn: re a136892445, any reason set it NULL without free? | 09:36 | |
jnthn | It's freed on the line below | 09:37 | |
JimmyZ | oh, miss read it .. | 09:40 | |
ely-se | Don't talk to Miss Read. She's scary. | 09:41 | |
09:45
FROGGS_ joined
10:39
brrt joined
|
|||
brrt | i think i've solved my problem | 10:40 | |
or, at least, theorethically | |||
etically | 10:41 | ||
jnthn | brrt++ | ||
What'd you figure out? | |||
brrt | it requires a fixed point algorithm converging on the produced nonterminal sets | ||
using a trie to collect rules/nonterminals that map to the same nonterminal sets | 10:42 | ||
i.e. you start off with all individual nonterminals you can generate, and by forming a trie you collect all rules - and their terminals - that map to the same nonterminal sets | 10:43 | ||
then you generate the nonterminal sets from that. as soon as you stop changing, you must have all rulesets, because you have all nonterminal sets that generate them | 10:44 | ||
i can accept it if that doesn't make much sense now, but i'm... confident it'll work | 10:45 | ||
jnthn | Well,t he fixed point bit sounds viable at least... | 10:48 | |
brrt | :-) | 10:55 | |
when will you be flying to toky? | |||
tokyo | |||
jnthn | Tue | ||
brrt | that's soon | 10:56 | |
jnthn | Aye | ||
brrt | pff.. and the flight will be a day or so, no? | 10:59 | |
jnthn | An hour down to Munich, and then 11ish over to Tokyo | ||
brrt | hmm... that's actually a bit less than i had expected | 11:01 | |
still long, though | |||
jnthn | It's long enough, though I've done worse | 11:02 | |
(Frankfurt to Buenos Aires) | |||
About 14 hours | 11:03 | ||
brrt | wow... | 11:07 | |
11:14
lizmat joined
|
|||
brrt | it works! for now | 11:19 | |
jnthn | \o/ | 11:20 | |
brrt | let's find something where it breaks :-) | 11:21 | |
oh, and it's just for one-child trees, now | |||
11:22
lizmat joined
|
|||
brrt | but at least it deals with cycles correctly | 11:22 | |
timotimo | brrt: building setcodeobj in the jit should be easy, right? i think i can put a "is the REPR correct?" check in between jgb_consume_ins and jgb_emit_primitive and then put it into emit.dasc | 12:00 | |
brrt | wait, what | 12:01 | |
timotimo | and then check_wb and hit_wb | ||
brrt | i think that sounds reasonably sane | ||
timotimo | i have many bails caused by that op in my latest script i'm using to play around with GLR | ||
in order to get away from here at all, i'll have to put on sun screen again (factor 50!) but then i'll have sticky fingers and palms again and the very dry sand-y ways will keep adding thin layers of grime to my arms and legs :( | 12:06 | ||
brrt | it's preferable to sunburn, i'd think :-) | 12:07 | |
timotimo | oh my god, there's sun screen | ||
er | |||
i meant to write | |||
oh my god, there's ice cream | |||
brrt | where are you at, anyway? :-) | 12:08 | |
now if you'd write setcodeobj as an exprlist, that would be awesome :-) | |||
:-P | |||
timotimo | www.ziegeleipark.de/index.html - this is the location, events.ccc.de/camp/2015/wiki/Main_Page - this is the occasion | ||
brrt | cool | 12:09 | |
timotimo | twitter.com/search?f=images&ve...p;src=typd | ||
brrt | are you going on the train? | ||
timotimo | "the train"? there's multiple :) | 12:10 | |
including a self-built one | |||
brrt | cool | 12:11 | |
timotimo | actually, it's rather hot :) | 12:19 | |
brrt | :-) | 12:28 | |
gist.github.com/bdw/f727aa99aece2ff7554d | |||
it fixed ith | |||
ely-se | is there a public API for writing moarvm files from an in-memory representation? | 12:32 | |
or do I have to implement the serialisation myself? | |||
in libmoar | 12:33 | ||
brrt | not sure if public, but, letmesee... | ||
hmm | 12:35 | ||
i'd have to ask jnthn. but my suspicion is that you serialize the MVMCompUnit | 12:36 | ||
but, not 100% sure | |||
it is not the intention you write your own serializer, no | 12:37 | ||
ely-se | ok cool | ||
timotimo | well, our compilers so far have been written in a language that compiles to mvm bytecode, so we have an op for that | 12:38 | |
that'll be a "public" way to get at it | |||
ely-se | I don't mind generating the bytecode myself, though it'd be nice if I don't have to do that for the container. | 12:39 | |
brrt | nqp::serialize is what you'd use for it | ||
i think | 12:40 | ||
nah, i'm wrong | |||
timotimo | masttofile | 12:41 | |
brrt | do you think? | 12:42 | |
timotimo | but the mast compiler isn't public api | ||
ely-se | MVM_mast_to_file is in driver.h | 12:43 | |
brrt | i have my doubts about that | ||
JimmyZ | isn't there masttofile op? | ||
timotimo | MVM_mast_to_file? | 12:44 | |
brrt | yes, you're quite right timotimo, that's the right thing | ||
JimmyZ | OP(masttofile) | ||
timotimo | MVM_mast_to_file isn't MVM_PUBLIC | ||
JimmyZ | it is public :P | ||
ely-se | oh | ||
timotimo | i don't think it'd be terrible to expose more stuff as MVM_PUBLIC | ||
adding new stuff doesn't break ABI compat, right? | 12:45 | ||
JimmyZ | right, and OPs are always public | ||
jnthn | We should be hesitant in what we mark MVM_PUBLIC | 12:46 | |
timotimo | well, the ops are, but you'll have to fire up the interpreter to reach them | 12:47 | |
ely-se | do I need NQP in order to do anything interesting? | ||
jnthn | mast_to_file or mast_to_cu (or whatever that one is called) can become public though | ||
timotimo | yes, mast_to_cu is the name | ||
jnthn | ely-se: You don't *need* it, it's just the only thing with a toolchain to make things convenient. | ||
ely-se | cool | 12:48 | |
jnthn | You can probably even assemble MAST in C code | 12:49 | |
timotimo | kind of like how we build the profiler data structures in C code, too | 12:51 | |
ely-se | Nevermind. I won't use MoarVM. | 13:05 | |
brrt | that's resolute | 13:16 | |
jnthn | Well, to be fair, "want to use MoarVM but not interested in using the NQP toolchain" is probably about the pessimal MoarVM experience. | 13:24 | |
dalek | arVM/even-moar-jit: 7805b37 | brrt++ | tools/ (2 files): Use fixed-point algorithm to generate rulesets Rules combine in rulesets because they are equivalent or the nonterminals they refer to combine. Thus, the key to finding all rulesets is finding all combinations of nonterminals. This is achieved by starting the with each nonterminal and iteratively combining them in a trie. The generated rulesets are then read from the trie. |
13:44 | |
brrt | yeah... perhaps parrot is better for that still, it has at least PIR | 13:45 | |
brrt afk & | |||
JimmyZ | oh new post, brrt++ | 13:51 | |
arnsholt | Yeah, Parrot has PIR. But onb | 14:35 | |
*on the other hand, you'd have to deal with Parrot =) | 14:36 | ||
ShimmerFairy | jnthn: by the way, turns out MSVC does support a tiny bit of C99, judging by the fact that adding -std=c90 to CFLAGS causes everything to explode pretty quickly :P | 14:51 | |
jnthn | ShimmerFairy: Aye | 14:54 | |
ShimmerFairy: But sadly not the bit I'd really like it to :) | |||
ShimmerFairy | jnthn: but it's got C++ style comments! That's good enough! ...right? :) | ||
There is a -Wdeclaration-after-statement option, as an example, so depending on the extent of -W options available for C99-isms, we might be able to manage with them plus -Werror for gcc-and-similar users to ensure almost-C90 code. | 15:02 | ||
16:18
ely-se joined
|
|||
timotimo reads brrt's latest blog post | 17:08 | ||
damn it! i still haven't written anything sensible for the translator tool | 17:09 | ||
17:19
ely-se joined
17:21
_itz_ joined
18:11
lizmat_ joined
|
|||
dalek | arVM/even-moar-jit: 1543514 | brrt++ | tools/tiler-table-generator.pl: Fix tiler table for nodes that don't yield Some rules (e.g. CARG) can only be placed as children of other nodes (ARGLIST) and as such never yield either REG or VOID. It used to be the case that such rules were never added at all, but that is fixed now. As a side affect, table structure has been simplified. |
18:59 | |
jnthn | Sounds nice :) | 19:00 | |
19:09
ely-se joined
|
|||
timotimo | simpl the impl | 19:23 | |
19:32
ely-se left
20:02
zakharyas joined
21:39
TEttinger joined
23:12
raiph joined
|
|||
raiph | "Upload a PDF and we'll give you the 10 most closely related papers according to the topic model we've built on the abstracts of POPL and PLDI." tmpl.weaselhat.com/ | 23:14 | |
timotimo | "upload all your top secret PDFs here!" | 23:20 | |
flussence | feed it scigen output? | 23:58 |