|
00:33
jnap joined
00:57
vendethiel joined
01:48
colomon joined
01:59
camelia joined
02:01
xiaomiao joined
02:08
xiaomiao joined
02:20
vendethiel-- joined
04:22
cognominal joined,
japhb_ joined,
TimToady joined,
ggoebel111116 joined
06:14
lizmat joined
07:01
ingy joined
07:03
FROGGS joined
|
|||
| FROGGS | o/ | 07:06 | |
| tadzik | o/ | 07:07 | |
|
07:11
zakharyas joined
|
|||
| sergot | o/ | 07:15 | |
| timotimo | ohai | 08:08 | |
|
08:21
brrt joined
|
|||
| brrt | \o | 08:21 | |
|
08:22
donaldh joined
|
|||
| jnthn | o/ | 08:31 | |
| nwc10 | \o | 08:32 | |
| timotimo | o | 08:33 | |
| nwc10 | jnthn: t/spec/S32-list/roll.t is still pavement pizza | ||
| jnthn | nwc10: Was that the one with the spesh_slots failure? | 08:34 | |
| nwc10 | I think so | ||
| paste.scsys.co.uk/404629 | |||
| offhand can't remember if that's a different backtrace | |||
| t/spec/S32-list/pick.rakudo.moar now passes | 08:35 | ||
| jnthn | Nope, same one. | ||
| nwc10 | I thought that those two had been failing in the same way | ||
| jnthn | Darn. That means my attempted fix for it dodn't work. | ||
| nwc10 | I can't promise you that I'm awake | ||
| jnthn | *didn't | ||
|
08:40
dalek joined
|
|||
| dalek | arVM/moar-jit: 4ca7c7c | (Bart Wiegmans)++ | / (13 files): Split the C parts of the JIT This gives us three 'parts': graph construction, graph compilation, and logging / bytecode dumps. |
09:33 | |
| brrt | dalek works again | ||
| jnthn | zo/ | ||
| uh, \o/ | |||
| brrt | i'm wondering if splitting the 'emit' parts into architecture-specific directories is worth the trouble | 09:34 | |
| jnthn | Not until we have more than one arch, I guess ;) | 09:35 | |
| brrt | no, but i mean, split the 'emit' part into stuff like arithmetic, entry / exit, branches, comparison, etc | 09:36 | |
| which would necessarily be in a directory rather than in files because each architecture would have different ones | 09:38 | ||
| jnthn | oh | ||
| But that causes build pain, I thought, as they need to be one .dasc file? | 09:39 | ||
| brrt | build pain is my tradeoff too | 09:40 | |
| jnthn | interp.c works out as a big file, mostly 'cus you can search quite easily for op names in it. | ||
| I suspect one big file here will also have that property.. | |||
| brrt | fair enough | ||
| hmm.. you're right, you can't link dasc files | 09:41 | ||
| they construct different 'action lists' | |||
| you may be able to .include them, but i wonder if it's worth the trouble | 09:43 | ||
| jnthn | Probably not | 09:45 | |
| brrt | that settles that, then :-) | 09:48 | |
| bbal | 09:57 | ||
|
09:57
brrt left
10:03
tadzik joined
|
|||
| nwc10 | jnthn: if I disable the fixed size allocator, t/spec/integration/advent2010-day11.t also fails: paste.scsys.co.uk/404678 | 10:24 | |
| sergot | I have a question, how can I obtain the memory address that is stored inside the MVMObject(OpaquePointer in this case)? | 11:10 | |
| like here: MoarVM/src/6model/reprs/CPointer.c:28: dest_body->ptr = src_body->ptr; | |||
| jnthn | Don't think we expose that at all so far. | 11:14 | |
| Well, and you have to know it's a CPointer REPR to do it. | |||
| Wait, do you mean at a C level? | 11:15 | ||
| 'cus I meant we don't have an nqp::nativewhere op... | |||
| FROGGS | in C | 11:17 | |
| jnthn | Oh, then you just check REPR(obj)->ID is the right thing, and then cast :) | ||
| FROGGS | not like this? | 11:20 | |
| body = (MVMCPointerBody *)REPR(obj)->box_funcs.get_boxed_ref(tc, STABLE(obj), obj, OBJECT_BODY(obj), MVM_REPR_ID_MVMCPointer) | |||
| oh, perhaps not | |||
| it has no box_funcs | |||
| so it really is just a cast, when the ->ID fits... nice! | 11:21 | ||
| sergot: so I think: if (REPR(obj)->ID == MVM_REPR_ID_MVMCPointer) cpointer_body = (MVMCPointerBody *)OBJECT_BODY(obj) | 11:22 | ||
| and then you can use cpointer_body->ptr | |||
| sergot | FROGGS++ jnthn++ thanks, I'll give it a try | 11:23 | |
|
11:27
vendethiel joined
11:30
brrt joined
|
|||
| brrt | \o #moarvm | 11:30 | |
| wingolog pointed me to: www.cs.umb.edu/~offner/files/flow_graph.pdf | |||
| may be fun for us | |||
| FROGGS | hi brrt | ||
| brrt | hi froggs :-) | ||
| FROGGS | I think I fell in love with the native call implementation in moar btw :o) | 11:31 | |
| arnsholt++ | |||
| brrt | what is it that makes you like it so much? :-) | 11:32 | |
| FROGGS | it is very readable, and I think it makes it easy to extend way more than I though would be possible | ||
| brrt has to check it out, then | 11:33 | ||
| FROGGS | like compared to what you can do by hand in P5's XS | ||
| brrt: the memory-to-P6-class unpacking caught my eye for example | 11:34 | ||
| jnthn | Curiously, the moar nativecall code was a fairly direct port of the Parrot code, with a ton of cleanups made possible 'cus Moar actually knows 6model natively. | 11:36 | |
| Well, "Parrot code" as in "code in the NQP repo largely built by arnsholt" :) | |||
| FROGGS | I guess everything looks better when you got rid of Parrot's 'ops' language | 11:39 | |
| jnthn | PIR? :) | 11:40 | |
| brrt | winxed was doable..... | 11:41 | |
| FROGGS | jnthn: no, like in nqp_bigint.ops | ||
| jnthn | In Moar I found a neat way to sidestep the issue: don't have an assembly language :) | ||
| FROGGS | the C like stuff | ||
| jnthn | FROGGS: oh, right :) | ||
| FROGGS | which will the be translated to C | ||
| jnthn | Yeah, we code-gen fairly little in Moar too | ||
| FROGGS | I like PIR though :o) | 11:42 | |
| jnthn | src/core/oplist generating op meta-data being the obvious example. | ||
| brrt | ot: 'the ict team manages nearly 500 workstations and 120 (virtual) servers' | 11:44 | |
| 120 servers for 500 people! | |||
| FROGGS | brrt: we have almost as many here for 500ppl | 11:45 | |
| jnthn | Well, or they could be providing services to the outside world too? :) | ||
| brrt | unlikely, this is about a corporate it team :-) | 11:47 | |
| how do you manage so many servers then, how do you get to that? | |||
| jnthn | "Virtual" is probably the key | 11:49 | |
| brrt | i suppose they do a server-per-application type of setup | ||
| jnthn | And lots of automation. | ||
| FROGGS | it is often server-per-application, but also a few servers are needed per office | 11:51 | |
| and when you have like >10 offices... | |||
| then you already have >30 servers | |||
| brrt | hmm, i suppose so | ||
| why servers per office? | |||
| brrt sometimes feels he doesn't understand IT at all | |||
| FROGGS | 1x active directory (slave), 1x file and printing, 1x software package distribution | 11:52 | |
| brrt | jnthn: what are your thoughts on using size_t? | ||
| hmmm | |||
| jnthn | brrt: No objections to it | 11:53 | |
| brrt | ok, great :-) | ||
| i like using it because it is always correct for sizes | |||
| jnthn | Well, presuming you're using it as sizes of stuff you pass to malloc, realloc, calloc, etc. | ||
| brrt | mmap, in this case :-) | ||
|
11:54
LLamaRider joined
|
|||
| jnthn | or that :) | 11:55 | |
| FROGGS | jnthn: ops shall be added before sp_*, right? what about osrpoint? | 11:58 | |
| jnthn | osrpoint is a normal op | 11:59 | |
| So add after that | |||
| But before sp_ | |||
| FROGGS | thanks :o) | ||
|
12:19
jnap joined
|
|||
| timotimo | osrpoint ops are thrown out by the specializer when they would be relevant to jit etc, right? | 12:37 | |
| jnthn | ? | ||
| They're always removed from specialized code | |||
| By the time we get to JITting, their role is done | 12:38 | ||
| timotimo | right | 12:41 | |
|
12:41
vendethiel joined
13:04
brrt joined
|
|||
| brrt | hmm, new commits trigger bugs | 13:21 | |
| oh, wait | 13:22 | ||
| i know what is wrong | |||
| jnthn | Insufficient cowbell? | 13:27 | |
| brrt | cowbell? :-) | 13:28 | |
| no, i changed passing the current frame to passing the cu because it's more useful | |||
| jnthn | knowyourmeme.com/memes/needs-more-cowbell | 13:29 | |
| brrt | :-) | 13:33 | |
|
13:47
btyler joined
13:51
woolfy joined
14:06
vendethiel joined
|
|||
| sergot | How can I get the value of a MVMObject (which is int32 in p6)? | 14:06 | |
| or just the value, Str, Rat, whatever | 14:08 | ||
| In C :) | 14:09 | ||
| FROGGS | you can ask for its storage spec, this tells you what it can store | ||
| and how many bits it can store for sized ints | 14:10 | ||
| look at MoarVM/src/core/coerce.c:274 | |||
| sergot | FROGGS++ thanks | 14:11 | |
| FROGGS | ss.bits will tell you the bits, when you know it is an integer or numeric thingy | 14:12 | |
|
14:17
carlin joined
|
|||
| FROGGS | sergot: also, spec.is_unsigned is interesting for your | 14:23 | |
| you* | |||
| sergot | ok, thanks FROGGS++ | 14:28 | |
| dalek | arVM/moar-jit: ad5044c | (Bart Wiegmans)++ | src/ (13 files): Create MVMJitCode structure This is a single structure that contains the function pointer as well as the size of the fragment, the number of locals, and the 'magic bytecode' which is now constant. |
14:38 | |
| arVM/moar-jit: 420671c | (Bart Wiegmans)++ | src/jit/emit_ (3 files): Use special register for CU CU is actually used more often than the frame pointer or the envionment (because the latter is often a lookup 'higher up' in the frame hierarchy). So it makes more sense to store it directly rather than look it up through 2834d7c | (Bart Wiegmans)++ | src/jit/log.c: Dump JIT code in separate files We use the CUID as well as the name of the static frame to determine the name of the file. |
|||
| brrt | dalek didn't die, did it? | ||
| nwc10 | not this time | 14:40 | |
| brrt | :-) | 14:41 | |
| brrt thinks its becoming time for dinner | 14:58 | ||
| jnthn | Will it be sugary? :P | 15:02 | |
| brrt | hmmm... macaroni, salami, cheese, tomatoes | 15:03 | |
| so starchy, not so much sugay | |||
| oh wait | |||
| melon after | |||
| hey, can i ask for a bit of advice, unrelated to actual programming? | 15:04 | ||
| jnthn | Sure | 15:06 | |
.oO( hope it's not a cooking question :) ) |
|||
.oO( "yes, deep-frying the melon sounds great!" ) |
15:07 | ||
| brrt | lol | ||
| are you scottish? | |||
| jnthn | No | ||
| brrt | i'm pondering whether i should continue for my masters degree, or not | ||
| moritz has studied 9 months in Scotland | |||
| jnthn | Born near to Birmingham, to English parents. Grew up in Yorkshire. :) | ||
| brrt | full blooded english then :-) | 15:08 | |
| moritz | did you mean "full bloody english?" :-) | ||
| jnthn | moritz: That's what we call breakfast :P | 15:09 | |
| brrt | lol | ||
| moritz | brrt: I'm sure nobody can give you advise on that without much more context | ||
| (but I'm afk soon anyway; will backlog) | 15:10 | ||
| jnthn | brrt: What are your motivators for continuing, and what are the reasons not to? | ||
| jnthn vaguely knows this sort of pondering, since he was encouraged a decent bit by his uni to stay on for a PhD program :) | 15:12 | ||
| brrt | good question :-) | 15:14 | |
| ehm..... | |||
| i'm not sure yet myself :-$ | |||
| i think... the most obvious demotivating factor is that i'm afraid i won't do anything with it | |||
| moritz - many people give advice with quite a bit less context :-) | 15:15 | ||
| i.e. with my studying | |||
| i mean here i am, having fun hacking on a jit compiler | |||
| it's kind of likely that after getting a masters degree in biology my best bet at employment will still be IT | 15:16 | ||
| the most important motivating factor is that i'd like to do work that has some net positive impact, and i suspect that will be easier / more doable with a longer education | 15:17 | ||
| (another demotivating factor is that i frankly have no more money left, but in the netherlands, such things can often be arranged) | |||
| jnthn | Personally, I'd not dwell hugely on the "not do anything with it" thing. So far as finding work goes, a degree vs a masters degree probably won't make a huge difference (having a degree vs not having one at all does, but beyond there it's often not a huge factor). | 15:20 | |
| Unless the goal is within research/academia, of course. | 15:21 | ||
| But if that was a clear goal then I suspect you'd not be asking whether you'd do anything with it, since it's probably critical path if staying in the academic world for the long haul is a goal :) | 15:22 | ||
| I realized when I was pondering the PhD that career wise it wasn't going to matter hugely for me. So the question was more about whether I wanted to spend 3-4 years of my life on that journey. | 15:23 | ||
| Which I guess is how I see these things: getting a first degree is fairly critical-path career wise since it's used as a filter for various interesting jobs. Beyond there, it's probably more about the journey than the qualification at the end of it all. | 15:24 | ||
| brrt | hmm, i see | 15:26 | |
| i should note, though, that a bachelors' degree at university level is - somewhat justifiably - not seen as 'academic' or sufficient in the netherlands | 15:27 | ||
| but, i'll be making dinner now for real ;-) | |||
| jnthn | Hmm, OK :) | ||
| brrt | thanks | ||
|
15:27
brrt left
16:01
FROGGS joined
16:40
brrt joined
17:00
brrt left
17:20
vendethiel joined
17:21
jnap left
17:28
jnap joined
18:05
brrt joined
|
|||
| brrt thinks that the amd x64 documentation is really better than the intel documentation | 18:13 | ||
| rurban | yes | 18:15 | |
|
18:15
lizmat joined
|
|||
| brrt | one time in the future, i want to implement linking for moarvm jit | 18:49 | |
| i.e., serialize the blob, and during deserialization, lookup all the stuff we are calling | |||
| FROGGS | jnthn: how is your mood today? | 19:12 | |
| do mind more grey hair? /o\ | |||
| I'd like to apply this: gist.github.com/FROGGS/a027fecd527c2871b2b6 | |||
| which would make an OpaquePointer gistify to this: | 19:13 | ||
| OpaquePointer<0x7f9e8db8fda0> | |||
| OpaquePointer<NULL> | |||
| and it would let you create a new one like OpaquePointer.new( $old-pointer + 4 ) | |||
| and then could have your .cast-to method there, or perhaps we could call it .coerce | 19:14 | ||
| this would be a powerful setup me thinks | |||
| jnthn | lemme look (between stirring my curry :)) | 19:15 | |
| FROGGS | hehe, yeah | ||
| man, sometimes I wish I could just walk by and taste your curry :o) | 19:16 | ||
| brrt | nqp-m: sub cur(str $a) { sub ry(str $b) { nqp::say($a ~ $b); }; }; cur("foo")("bar"); | 19:19 | |
| camelia | nqp-moarvm: OUTPUTĀ«foobarā¤Ā» | ||
| brrt | curry :-) | ||
| FROGGS | more awesome would be OpaquePointer<0x7f9e8db8fda0>(reachable) and OpaquePointer<0x7f9e8db8fda0>(out out bounds), but that's up to a distant future :o) | ||
| yeah, I wanna have that now too :/ | |||
| brrt | hmm.... | 19:20 | |
| FROGGS | stupid germans do not have curry usually | ||
| brrt | really? | ||
| germans do have curry ketchup :-) | |||
| FROGGS | well, not that often compared to guys from the island at least | ||
| eeks | |||
| sort of | |||
| brrt | sauerkraut with a sausage on a bun with curry ketchup is a recognized dish in some parts of the netherlands :-) | 19:21 | |
| what would you mean with 'reachable'? does-not-throw-a-segfault? | 19:22 | ||
| brrt wonders if he can find - on x64 - how to determine if something is accessible | 19:23 | ||
| FROGGS | yes, that it is 'ours' | 19:24 | |
| brrt | nobody in stackoverflow land seems to know how | 19:25 | |
| but there /must/ be some kind of interrupt , and we ought to be able to catch it | |||
| FROGGS | yeah, I thought it might be hard to get that information | 19:26 | |
| brrt | signal catching is what people usually do | ||
| but - iirc - that has thread problems | 19:27 | ||
| FROGGS | yeah, all ppl say it is impossible... okay, idea scratched :o) | 19:29 | |
| brrt | all ppl don't typically have a dynamic assembler in their toolkit | 19:30 | |
| :-) | |||
| what was i doing? | 19:32 | ||
| oh yes, return value handling | |||
| FROGGS | hehe | 19:35 | |
| sorry for the distraction :P | |||
| jnthn | FROGGS: curry is ready... \o/ will review after I nom :) | 19:38 | |
| FROGGS | happy nomming :o) | ||
| brrt has much need for a 'nqp-m-debug' type of script | 19:48 | ||
| :-) | |||
| .... pointers aren't typically returned in floating point registers, are they? | 20:00 | ||
| FROGGS | that's not what I would expect at least | 20:01 | |
| brrt | well, they aren't :-) | 20:02 | |
| i should've added a smiley | |||
| jnthn | mmm...that's the nicest thing I've cooked in a while :) | 20:04 | |
| FROGGS: I'm a tiny bit uneasy about treating a pointer as just a kind of boxed integer... :) | 20:07 | ||
| FROGGS | good, that will make your mind open for new things :P | ||
| jnthn | But I guess that's kinda what it is :) | ||
| FROGGS | we do that kind of cast in many places | ||
| nqp::where for example | 20:08 | ||
| dalek | arVM/moar-jit: 366e0f8 | (Bart Wiegmans)++ | src/jit/ (7 files): Merge return-value handling into c-call |
||
| FROGGS | sad that our nativecast does not handle Str yet, otherwise I would substr(1,...) by moving the pointer | ||
| brrt shares the uneasiness, but mostly because of sign-and-conversion errors | 20:09 | ||
| i.e. pointers tend to be handled much more rigidly than integers in c | |||
| FROGGS | jnthn: do you have suggestions about how to make nativecast available once it is done? should it be a method on OpaquePointer? | ||
| brrt | i'm off to watch belgium-usa | 20:10 | |
| :-) see you tomorrow! | |||
| jnthn | brrt: ooh, who are you rooting for? :) | ||
| brrt | belgium :-) | ||
| jnthn | :) | ||
| Go Europeans :) | 20:11 | ||
| brrt | not the underdog here, i think | ||
| but still | |||
| good night :-) | |||
| jnthn | Hope it's better than the Switzerland - Argentina game :) | ||
| FROGGS | brrt: see you! | ||
| jnthn | o/ | ||
|
20:11
brrt left
|
|||
| jnthn | FROGGS: No, I think it's gonna have to be a sub | 20:12 | |
| FROGGS | okay | ||
| jnthn | FROGGS: 'cus you want to be able to do it to your own pointer types too | ||
| FROGGS | yeah, probably | ||
| I mean, it could be both to provide some sugary way of casting that pointer... | 20:13 | ||
| btw, that pointer fiddling and manual casting would help with the problems [Sno] pointed at a while back | |||
| that one lib returned a list of structures, so we could walk that list now | 20:14 | ||
| (it returned the pointer to the first) | |||
| jnthn | ah, true | ||
| FROGGS | but... we'd perhaps need a way to query the sizeof a Perl 6 class as it looks like in C land to do that perhaps | 20:15 | |
| okay, I'll prepare the commit in a bit and also the NativeCall PR | 20:16 | ||
| dinner first though | |||
| dalek | arVM: 6b458f7 | (Tobias Leich)++ | src/6model/reprs/CPointer.c: allow pointer math using CPointer repr This means that NativeCall's OpaquePointer type can be gistified as OpaquePointer<0x7f9e8db8fda0>, which will be helpful for debugging when making bindings to C libraries. This also allows us to do basic pointer arithmethic so that we can iterate over the bytes of a CStr by incrementing the memory address. |
20:43 | |
| timotimo | yay for pointer arithmetic ... | 21:23 | |
| FROGGS | yes, that's pretty awesome in a way... | 21:31 | |
| timotimo: wait for nativecast | |||
| it is worth mentioning next monday | |||
| timotimo | that'll be nice to have indeed | 21:32 | |
| FROGGS | only sized ints/nums are missing AFAIK | ||
| and after that we will probably try to make function pointers work | 21:33 | ||
| we'll see if we really need them for openssl | |||
| timotimo | ah, we're doing this for sergots gsoc among other things? | 21:37 | |
| FROGGS | yes, that's the main motivation | ||
|
22:20
donaldh joined
22:46
lizmat joined
|
|||
| jnthn | sleep & | 22:46 | |
| FROGGS | sleep well | 22:48 | |
| lizmat is home and goes to bed as well | 22:50 | ||
| FROGGS | gnight lizmat | ||
|
23:10
jnap1 joined
|
|||