| TimToady would like to point out that nowhere in the design docs equates 'int' with C's 'long' type | 00:08 | ||
|
00:09
vendethiel joined
|
|||
| TimToady | according to S02:772 'int' might well be 'long long' on some machines | 00:13 | |
| synopsebot | Link: design.perl6.org/S02.html#line_772 | ||
|
01:58
vendethiel joined
02:47
vendethiel joined
02:49
ilbot3 joined
03:24
vendethiel joined
03:51
vendethiel joined
04:29
vendethiel joined
05:16
vendethiel joined
06:08
vendethiel joined
06:13
sivoais joined
06:42
FROGGS[mobile] joined
|
|||
| FROGGS[mobile] | even more a reason that NativeCall should export types that are called long etc | 06:43 | |
|
06:48
vendethiel joined
07:15
rurban joined
07:30
vendethiel joined
07:41
brrt joined
07:47
FROGGS joined
|
|||
| brrt | as far as i can tell, libuv's sendfile - which is what we use for the nqp::copy op, can accept arguments larger than 2g very well, it just doesn't send more than 2g in one go | 07:49 | |
| FROGGS | that's what I guessed also, that the 2G are just the first chunk | 07:53 | |
| brrt | so all that's needed is to write a loop around 2g chunks | 07:54 | |
| FROGGS | their documentation is worse than ours | 07:56 | |
| brrt | yeah | 07:58 | |
| i'd say that was harsh, but, it's true | |||
| FROGGS | heh, they want(ed?) to drop sendfile :o) - github.com/joyent/node/issues/3854 | 07:59 | |
| brrt | what | ||
| ... | 08:00 | ||
| we can perfectly well write MVM_sendfile | |||
| but it'd be missing the point of using libuv i guess | |||
| FROGGS | aye | ||
| nwc10 | is their only API to file metadata using stat buffers? | ||
| FROGGS | I think so | 08:01 | |
| nwc10 | then :-( if you're windows | ||
| in that, if you're faking up stat propery on windows, you have to put effort into faking device and inode | |||
| which then immediately gets thrown away if all someone wanted to know is "is this a directory?" or "how long is the file?" | 08:02 | ||
| brrt | that... | 08:03 | |
| is very true | |||
| dunno if they're accepting of patches | 08:04 | ||
| nwc10 | (1) I wouldn't know what would make a better subset of APIs | 08:05 | |
| FROGGS | why shouldn't they accept patches? | ||
| nwc10 | (2) I'm not using Windows (and have never ever ever developed for it) | ||
| brrt | they probably are | ||
| nwc10 - general lack of knowledge of windows api's is a weak spot of the OSS community | 08:06 | ||
| myself included | |||
| xiaomiao | wouldn't call it a weak spot | 08:12 | |
| brrt | it is if you need your code to run everywhere | 08:13 | |
| xiaomiao | my code runs on all relevant platforms | ||
| I don't see how windows gets involved there | |||
| :) | |||
| brrt | well, thats because you're choosing what you find relevant and what not | 08:14 | |
| xiaomiao | I played with the Win8 demo | ||
| it's kinda ... interesting ... demo | |||
| but it's so rough that I wouldn't want to do QA for it | |||
| brrt | win8 or win10? | 08:15 | |
| xiaomiao | 8 | ||
| plus the 8.1 'update' | |||
| so very beta ... | |||
| like, the shutdown button / dropdown menu is broken, and wrong | |||
| how does that even happen. | 08:16 | ||
| brrt | i found 8.1 quite acceptable actually | 08:18 | |
| you can ignore the whole metro thingy | |||
| also, it natively runs word/excel, which is a benefit | |||
| xiaomiao | too slow | ||
| and too buggy | |||
| but, kinda ... nice showroom demo | 08:19 | ||
| "shutdown" hibernates ... that kind of buggy | |||
| and the incoherent mess of icons, text, icons+text ... any localized version is total mindbender and horrible to figure out | |||
| brrt | i ran it in a virtualbox | 08:30 | |
| the best way to run anything imho | |||
| anyway, that's really offtopic; moarvm supports windows whether you or i like it or not | 08:31 | ||
| :-) | |||
| and we're also likely to keep using libuv for the forseeable future | |||
| FROGGS | ohh ye | 08:32 | |
| s | |||
|
08:39
vendethiel joined
08:45
Ven joined
|
|||
| brrt | ok, it's a known issue | 08:48 | |
|
09:09
zakharyas joined
|
|||
| jnthn | Well, given we're using sendfile to implement copy, if we need a Windows-specific solution there we just use CopyFile to do the whole thing :) | 09:15 | |
|
09:25
Ven joined
|
|||
| brrt | this is true | 09:29 | |
| frankly, that's actually a pretty good idea | 09:30 | ||
| we do lots of stuff windows-specific | 09:32 | ||
| nwc10 | "we run on both kinds of OS, Linux *and* Windows"? | 09:33 | |
| (well, maybe "POSIX and Windows") | |||
| brrt | mac, linux, and windows | ||
| nwc10 | then again, what does libuv run on? | ||
| brrt | well... i guess those | ||
| perhaps also bsd | |||
| nwc10 | Mac is a FreeBSD fork atop a mach microkernel (and then diverged) so it's pretty POSIX | ||
| brrt | but pretty lame POSIX imho | ||
| almost-but-not-quite good implementations of many things, and good-but-different implementations of many others | 09:34 | ||
| nwc10 | I've not actually hit enough of these to know where the pain is | 09:35 | |
| jnthn | nwc10: And...what's the marketshare of non-POSIX, non-Windows OS users that are likely to want to run Perl 6? :) | ||
| nwc10 | but I'm still annoyed that they thought that dtruss was an adequate replacement for ktrace | ||
| jnthn: well, possibly someone will say that they want to run it on iOS and on Android | 09:36 | ||
| brrt | which are... | ||
| :-P | |||
| nwc10 | Android libc is an utter joke | ||
| brrt | fair enough | ||
| but that's not my problem | |||
| as in | |||
| nwc10 | (mind you, it didn't need to be anything other than that, because it's not the default runtime) | ||
| jnthn | So, crapply implemented POSIX? :) | ||
| nwc10 | worse | ||
| brrt | libc is very much beyond the scope of moarvm | ||
| nwc10 | I'm pretty sure it's not C89 conformant | 09:37 | |
| (at least) the local functions exist as stubs which print to stderr that they aren't impleneted | |||
| what use is that? | |||
| jnthn | wtf! | ||
| nwc10 | if they didn't exist, probing code would detect this easily | ||
| yes, there's some other wtf | |||
| like the dynamic linker (certianly used to) only care about the shared object leafname | 09:38 | ||
| none of this matters if you're using it for what it was intended | |||
| anyway, "I want to run a programming language in my phone" is not IMO (and not H here) worth it if that's *All* that it is | 09:39 | ||
| "I want to write apps on my phone, and upload them to the app store" is what is needed | |||
| otherwise it's really a "nice to have", and that's not a priority | 09:40 | ||
| brrt | it's geek cred | 09:43 | |
| but ehm.. couldn't a moar-on-android just ship another libc | |||
| (python does run on android, fwiw) | 09:44 | ||
| nwc10 | or target the JVM-a-like on it? | 09:45 | |
| brrt | that's a pretty good idea | 09:46 | |
|
10:08
rurban joined
|
|||
| FROGGS | jnthn: I need to distinguish int from int64 in moar somehow :/ | 10:15 | |
| so, we needs to extend MVMP6intREPRData | 10:16 | ||
| jnthn | Uh | ||
| FROGGS | :o) | 10:17 | |
| jnthn | We should probably look for a better solution to whatever problem you're trying to solve. | ||
| Such as, exporting clong, cint, etc. types from NativeCall... | 10:18 | ||
| FROGGS | the problem I try to solve is basically to expose a C long type to Perl 6, that has either 32bits or 64bits | ||
| same for long long I guess | 10:19 | ||
| m: my native long is repr('P6int') is Int is nativesize(32) { } | |||
| camelia | ( no output ) | ||
| jnthn | Sure, so what determines what the size will be? | 10:20 | |
| FROGGS | I'm not sure... we could run probes when we build/install nativecall and fallback to waht the vm suggests | 10:22 | |
| jnthn | Well, if you want to do the second we need to have a mechanism for doing that | 10:25 | |
| I think at one point we pondered using negative values of nativesize as a cheat for conveying these things :) | 10:26 | ||
| That might have been arnsholt++'s idea... | |||
| FROGGS | jnthn: we already check for certain things when building moar, it is just about putting more information into the generated config.c | ||
| hmmm | |||
| jnthn | FROGGS: No, it's more conveying to the REPR that you want a "C long" | ||
| The REPR is written in C so it can just do sizeof(long) :P | 10:27 | ||
| FROGGS | the question is just at what time it does a sizeof() :o) | ||
| jnthn | That'd be at the time the VM is compiled. | ||
| Which only gets you in trouble if the library you're loading was compiled with a different idea of C type sizes than the VM itself. | 10:28 | ||
| FROGGS | I guess that is something you can hardly solve | 10:29 | |
| jnthn | That'd strike me as a rather odd setup. | ||
| nwc10 | I believe your C runtime would already have crashed by then | ||
| arnsholt | Yeah | ||
| In that case you're gonna have a bad time no matter what | |||
| jnthn | nwc10: I was gonna say, it sounds painful :) | ||
| arnsholt | (And yes, negative bitwidths was my bad idea =) | 10:30 | |
| jnthn | OK, so that probably gives us a solution | ||
| arnsholt: It feels horrible, but it's hard to find specific negatives with this option... :P | |||
| arnsholt | Well, your idea was better | ||
| Add another field to the compose protocol =) | |||
| jnthn | Ah | 10:31 | |
| That is perhaps cleaner :) | |||
| arnsholt | Yup | 10:32 | |
| Just need to check in the REPR that we don't get passed both at the same time | |||
| jnthn | aye | 10:34 | |
| And something in Perl 6 to get the info into the REPR | |||
| arnsholt | The "you are C int" information you mean? | ||
| FROGGS | is nativetype() ? | 10:36 | |
| arnsholt | Something like that was my plan, yeah | 10:37 | |
| FROGGS | is nativetype('int'), is nativetype('longlong') | ||
| or, is nativesize('int') | |||
| arnsholt | An additional method in the HOW, and a trait. Just like we set bitwidths | ||
| FROGGS | we can happily take a number or a string there I guess | ||
| arnsholt | My plan is string in Perl 6, and number in the REPR | 10:40 | |
| The HOW can do the mapping | |||
| jnthn | Works for me | ||
| FROGGS | awesome | ||
| jnthn | Use nqp::const::C_TYPE_INT stuff for the integers. | ||
| FROGGS | k | ||
| arnsholt | Oh, yeah | ||
| I would've just hardcoded them, but consts are definitely a good idea | 10:41 | ||
| FROGGS | consts are way better then magic numbers :o) | ||
| moritz | magic constants! | ||
| FROGGS | shh! | ||
| :P | |||
|
10:58
Ven joined
|
|||
| lizmat | good *, #moarvm | 11:00 | |
| jnthn: looking at isreadable/iswritable/isexecutable | |||
| the odd one out is isexecutable, which does its own thing on Win32 using the extension | |||
| wouldn't it make sense to have them all use nqp::stat as well | 11:01 | ||
| and in the case of Win32, return "unknown" ? | |||
| jnthn wonders what Perl 5's "is it executable" does on Windows... | 11:03 | ||
| Is it -x? | |||
| lizmat | yes | ||
| jnthn | Hm | 11:04 | |
| It comes back with 1 if I point it at an exe file | |||
| haha | |||
| echo omg > wtf.exe | |||
| lizmat | ? | ||
| jnthn | perl -e "print -x 'wtf.exe'" | ||
| 1 | 11:05 | ||
|
11:05
vendethiel joined
|
|||
| jnthn | :) | 11:05 | |
| lizmat | which is similar to what's being done in MoarVM atm | ||
| jnthn | Yeah | ||
| That might be the best you can do on Windows. | |||
| But we could do that cheat behind nqp::stat also. | 11:06 | ||
| So we don't have to choose between it and keeping isexecutable | |||
| lizmat | ok, fair enough | ||
| jnthn | I'm inclined to retain the behavior | ||
| lizmat | ok | ||
| jnthn | It's technically dubious, but practically useful. | ||
| lizmat | but shall I refactor to eradicate nqp::isreadable / nqp::iswritable / nqp::isexecutable ? | 11:07 | |
| the alternative would be that I add nqp::lisreadable / liswritable / lisexectiable | |||
| *whatever | |||
| jnthn | Yeah, I'd rather decrease the number of ops here than increase them, when there's an obvious generic interface to this stuff. | 11:08 | |
| It's just duplicate functionality. | |||
| lizmat | so what was the reason to do it this way in the first place ? | ||
| jnthn | I've no idea :) | 11:09 | |
| lizmat | ok, otoh, rwx on a symlink pretty much seem unchangable | ||
| hmmm.... | |||
| let me ponder on this some more :-) | 11:11 | ||
| FROGGS | lizmat: on windows there is an environment variable that has a list of file extensions that are considered executable | 11:47 | |
| that's how it works there | |||
| lizmat | PATHEXT, yeah | ||
|
11:58
xiaomiao joined
12:14
ggoebel111111114 joined
12:24
vendethiel joined
12:39
dalek joined
12:55
Ven joined
13:11
vendethiel joined
|
|||
| brrt | blog.noctua-software.com/c-tricks.html <- some of these are quite nice | 13:15 | |
|
13:56
vendethiel joined,
Ven joined
14:01
rurban joined
14:21
kjs_ joined
15:04
xiaomiao joined
15:10
xiaomiao joined
15:11
Ven joined
|
|||
| dalek | arVM/longish: 7d111ae | FROGGS++ | src/6model/reprs/P6int.h: add constants for C data types |
16:20 | |
|
16:28
vendethiel joined
16:29
FROGGS[mobile] joined
|
|||
| dalek | arVM/longish: 1c4087d | FROGGS++ | src/6model/reprs/P6int.h: add C type long (that's why we do it after all) |
16:32 | |
|
16:55
vendethiel joined
17:04
Ven joined
18:03
kjs_ joined
18:14
vendethiel joined
18:23
flussence joined
19:01
FROGGS joined
|
|||
| FROGGS | MVMP6int: Unsupported int size (-4bit) | 19:02 | |
| at src/gen/m-Metamodel.nqp:2889 (blib/Perl6/Metamodel.moarvm:compose:104) | |||
| so far, so good | |||
| timotimo | that's really not much | 19:04 | |
| FROGGS | it is supposed to be not much | 19:06 | |
| you know, ssd hard disk space is not that cheap | 19:07 | ||
| that approach seems to be too easy to actually work | 19:15 | ||
| though, too easy often also means 'much reliable' | |||
| dalek | arVM/longer: 79b9b38 | FROGGS++ | src/6model/reprs/P6 (4 files): support C type sized P6ints and P6nums We can now ask the P6int repr to give us a an int, that is as wide as a long in C on the current platform. This should solve the issues with NativeCall on 32 bit machines. arnsholt++ and jnthn++ for the solution. |
19:25 | |
| nwc10 | FROGGS: how do I test that? | 19:27 | |
| FROGGS | MoarVM+nqp+rakudo+zavolaj with 'longer' branch | 19:28 | |
| though, I am preparing the zavolaj branch right now | |||
| nwc10 | oh, OK, mmm, I might not get as far as zavolaj | ||
| FROGGS | I'll also test it on x86 linux in a moment | ||
| timotimo | btw, can we somehow get single precision floats to work? | 19:43 | |
| FROGGS | what's wrongs? | 19:44 | |
| -s | |||
| TimToady | that'd presumably just be num32 on the P6 side | 19:51 | |
| FROGGS | nwc10: CArray does not yet play nicely with long | 19:52 | |
| TimToady: aye | |||
| timotimo: what is wrong with floats? | |||
| TimToady | and obviously 'short double' on the C side :) | 19:53 | |
| timotimo | dunno, aren't our reals always double precision? | 19:54 | |
| FROGGS | timotimo: if you chose 'num', you get the biggest numeric type for your platform, whatever that is | 19:55 | |
| timotimo | and how do i get a half big numeric type? | ||
| FROGGS | timotimo: half big as what? | 19:56 | |
| timotimo | as a double :) | 19:57 | |
| FROGGS | timotimo: use num32 | ||
| a double is num64 | |||
| timotimo | oh | ||
| duh | |||
| i didn't think of that. though it's very obvious | |||
| FROGGS | there is no num16 though :o) | ||
| timotimo | but when we calculate stuff with num32, we'll always be converting to regular num internally? | 19:58 | |
| FROGGS | I would have guessed that you might better know than me :o) | 20:00 | |
| timotimo | right | 20:01 | |
| TimToady | unless you have a pragma like 'use native num32' or so, according to spec | 20:02 | |
| but I think the current implementation doesn't actually follow the 'wide temps' policy | |||
| timotimo | fair enough | 20:03 | |
|
20:07
kjs_ joined
|
|||
| FROGGS | hups, I confused bits and bytes | 20:11 | |
| ... and with that NativeCall passes on x86_64 again | 20:14 | ||
| dalek | arVM/longer: 78890ef | FROGGS++ | src/6model/reprs/P6 (2 files): unconfuse bits and bytes |
20:15 | |
| FROGGS | NativeCall passes on x86 \o/ | 20:16 | |
| TimToady | though on some machines you have long double, num80 or so | ||
| FROGGS | TimToady: it is prepared for that... | 20:19 | |
| my native longdouble is repr("P6num") is Num is nativesize('longdouble') { } | 20:20 | ||
| one can do that | |||
| 'char' and 'short' and so on works too | |||
| when the branches are merged I'd even like to go that far as to disallow 'int' in NativeCall | 20:21 | ||
| same for 'num' | |||
| TimToady | seems sane | 20:24 | |
| FROGGS | nwc10: the 'longer' branches in the for repositories are ready now | 20:26 | |
| retupmoca | FROGGS: if 'int' is disallowed, will there be a new type I can use to represent a C 'int64_t' ? | ||
| timotimo | int64 exists already | 20:27 | |
| FROGGS | retupmoca: there is 'int64' | ||
| retupmoca | oh, ok | ||
| didn't know that | |||
| FROGGS | only 'int' means: the biggest integer type there is on your system... which does not really map to what C thinks (or thought) | ||
| (and num) | |||
| so, C's int is int32, C's long is long, ... | 20:28 | ||
| retupmoca | makes sense | ||
| FROGGS | retupmoca: the NativeCall readme has a nice table for that | ||
| I'd like to export like like char and short, though, then you cannot have subs with these names in your namespace anymore | 20:29 | ||
| jnthn / arnsholt: please review the 'longer' branches in moar+nqp+rakudo+nativecall... it passes all tests on 32 and 64bit on linux | 20:32 | ||
| TimToady | well, int is biggest integer "that runs at full speed" | 20:34 | |
| so even if your C can emulate int128, that runs slower than int64 on a 64-bit machine | |||
| c-char and c-short would work as a systematic prefix, I suppose | 20:36 | ||
| could even have c-long-long | |||
| FROGGS | ahh yes, makes sense (int speed) | ||
| TimToady | with hyphens for spaces | ||
| we could kinda reserve the c- space for C types | 20:37 | ||
| or we could even go with c:long-long | |||
| std: c:long-long | |||
| camelia | std f9b7f55: OUTPUTĀ«===SORRY!===ā¤Undeclared routine:⤠'c:long-long' used at line 1ā¤Check failedā¤FAILED 00:00 134mā¤Ā» | ||
| FROGGS | hmmm, if you port a bigger C lib this might be not that fun to type all the time | ||
| TimToady | std: C:long-long | 20:38 | |
| camelia | std f9b7f55: OUTPUTĀ«===SORRY!===ā¤Undeclared name:⤠'C:long-long' used at line 1ā¤Check failedā¤FAILED 00:00 134mā¤Ā» | ||
| TimToady | if you don't mind the uppercase | ||
| FROGGS | looks nice though | ||
| I'd prefer the uppercase, yes | |||
| I like to spell language names correctly :o) | |||
| TimToady | m: constant C:int = int64; say C:int | 20:39 | |
| camelia | rakudo-moar fec233: OUTPUTĀ«===SORRY!=== Error while compiling /tmp/d3OziuSFEBā¤Variable '&C' is not declaredā¤at /tmp/d3OziuSFEB:1ā¤------> constant C:int = int64; say āC:intā¤Ā» | ||
| TimToady | rakudo needs to be taught better about extended names | ||
| FROGGS | std: constant C:int = int64; say C:int | ||
| camelia | std f9b7f55: OUTPUTĀ«===SORRY!===ā¤Undeclared name:⤠'C:int' used at line 1ā¤Check failedā¤FAILED 00:00 135mā¤Ā» | ||
| FROGGS | you first :P | ||
| TimToady | apparently so does STD :) | ||
| but differently | |||
| eep, someone removed the color | 20:40 | ||
| yuck | |||
| FROGGS | :/ | ||
| TimToady | I guess it's a channel setting | 20:42 | |
| flussence | that'd be mode +c, iirc... | 20:43 | |
| FROGGS | yeah, I see colors in privmsg | ||
| nwc10 | FROGGS: well, all "ok ..." on x86_64 with an ASAN build of MoarVM, but ASAN isn't valgrind, so wont' spot issues with "other" people's code | 20:59 | |
| but, "it did work" with something far more paranoid than usual | |||
| I need to go to bed | 21:00 | ||
| FROGGS | me too :o) | ||
| thanks for testing, and gnight :o) | |||
| nwc10 | the small "auf" likes to wake up early | ||
| not *that* early, but still early enough that I didn't want to be | |||
| er, don't. | 21:01 | ||
| whatever. zzzz | |||
| FROGGS | we'll get up at 6:30 to get to the zoo early :o/ | ||
| nwc10: sleep well | |||
|
21:04
kjs_ joined
22:01
rurban joined
|
|||
| jnthn | FROGGS: I think I'd have preferred a different trait at Rakudo level. | 22:02 | |
| FROGGS: Introspecting type name feels...smelly. | |||
| "is cnativetype('long')" or so | 22:04 | ||
|
22:04
FROGGS_ joined
|
|||
| jnthn | FROGGS_: Otherwise, I'm happy enogh with it. | 22:10 | |
| enough, even. | |||
| japhb | BTW, to whoever mentioned 16-bit floating point: It's a thing. It's called 'half' on the compilers that support it, IIRC. | 22:14 | |
| TimToady | short float! | ||
| japhb | It's used for HDR rendering and other graphics tasks. | ||
| TimToady | don't some GPUs speak it natively | ||
| ? | |||
| japhb | TimToady: Yes, exactly. | 22:15 | |
| So if you want to send or receive a pile of data from those cards without a crazy amount of conversion .... | |||
| jnthn | "Unrecognized revision specifier 'food-31-g2d7eddb'"...dammit, I really shouldn't use my real dev checkouts of repos for demos in class... | 22:21 | |
| Merging native-ref in Moar. It should break nothing for mainline NQP/Rakudo. | 22:25 | ||
| And there's no reason for it to be a branch any more :) | |||
| Moar needs to learn to optimize them better, but I'm happy the API will live on. | |||
| timotimo | i haven't yet gotten to know what exactly about them is optimizable | 22:28 | |
| not having to take a reference when a simple native value "copy" would suffice, perhaps? | |||
| dalek | Heuristic branch merge: pushed 35 commits to MoarVM by jnthn | ||
| jnthn | timotimo: Yeah | ||
| timotimo: Well, the interesting case to make work is that | |||
| class Foo { has int $.x is rw } | 22:29 | ||
| $a-foo.x = 42; | |||
| When it inlines the accessor method, we'd like it to eliminate taking a ref at all | |||
| And basically just emit a bindattr | |||
| Which in turn lowers to a pointer thingummy | |||
| timotimo | right, so we would want to remember where a reference was taken from and when we know the reference isn't used afterwards any more, we'll just bindattr instead of going through the reference | 22:30 | |
| jnthn | yeah | ||
| timotimo | i'd like to have something mildly similar for boxing/unboxing | 22:31 | |
| jnthn | I'd been pondering handling them in the same kinda way | ||
| timotimo | where we remember, that some value is just a box for a register that's (hopefully) still alive | ||
| jnthn | Both really want doing post-inline. | ||
| TimToady | does our current JIT have any sort of peephole optimization? | 22:32 | |
| timotimo | yes, very much so | ||
| jnthn | Lots of ops get turned into simpler one, though a lot of it is possible because of non-local analyses. | 22:33 | |
| TimToady | if it's non-local, it's not a peephole optimizer | ||
| jnthn | so I'm not sure you'd class all of 'em as true peephole. | ||
| TimToady | but I really mean after it gets turned into linear assembly/machine code | 22:34 | |
| jnthn | Ah | ||
| Then no, not much there... | |||
| TimToady | seems there are some infelicities at that level | ||
| jnthn | Though real reg alloc would help us out a lot. | ||
| And probably those two want tackling around the same time. | |||
| It all needs care as you need to keep the callframe in decent enough shape for deopt. | 22:35 | ||
| TimToady | not suggesting any schedule change, just trying to keep a feel for where we are | ||
| jnthn | Well, if we're really lucky we might get brrt++ for another summer to focus on producing better code :) | ||
| timotimo | say, jnthn, are we already running over code again after an inline has happened? | 22:37 | |
| TimToady hopes the big announcement makes it more likely that TPF gets admitted as an org | |||
| jnthn | timotimo: Not to do the same things we did as we go inlining | ||
| timotimo: But yes, we do things like dead code elimination after inlining, for example. | 22:38 | ||
| timotimo: We need to be careful not to do too many passes...or we make it harder for the optimizations to actually pay off. | |||
| TimToady: Hopefully, yes | 22:39 | ||
| timotimo | understood | 22:41 | |
| well, once the spesh graph is already completely in the cache, we could as well go over it a second time :P | 22:42 | ||
| jnthn | Just 'cus it's in cache doesn't mean it's free :P The way spesh allocates does mean all the stuff ends up bunched together in memory for cache happiness, though :) | 22:43 | |
| timotimo | yup, i thought of that | ||
| jnthn | Grrr...airline didn't feed me quite enough so now I have midnight munchies :) | ||
| Maybe I should go take a beer snack. :) | 22:44 | ||
| Which can only be eaten with a beer. Hard life. | |||
| The post-merge Moar seems to build NQP and Rakudo fine :) | 22:45 | ||
| So, should be all good. | |||
| jnthn wanders off for the evening | 22:47 | ||
| timotimo | sweet | ||
| jnthn | Will be distracted most of tomorrow, but may get some patch or two in during the evening :) | ||
| o/ | |||
| timotimo | neato | ||
|
23:14
vendethiel joined
|
|||