timotimo | gist.github.com/timo/f85f49d0e4b1e...e64caeb3cb - anyway, here's what i got for the offset setting and usage in the arg guard tree interpreter thingie. something's wrong, but i don't quite know what. | 01:20 | |
actually, let me change that back to the version that would complain if the two methods disagreed | |||
'k, bedtime. | 01:21 | ||
01:48
ilbot3 joined
02:31
TimToady joined
03:47
japhb joined
03:48
greppable6 joined
04:15
japhb joined
04:51
japhb joined
05:17
japhb joined
06:24
bisectable6 joined,
evalable6 joined,
committable6 joined,
bloatable6 joined,
quotable6 joined,
unicodable6 joined,
coverable6 joined,
greppable6 joined,
benchable6 joined,
statisfiable6 joined
06:38
domidumont joined
06:39
leedo_ joined
07:23
domidumont joined
07:28
geekosaur joined
07:29
domidumont joined
07:48
brrt joined
08:00
domidumont joined,
robertle joined
08:51
ilmari joined
|
|||
jnthn | morning o/ | 08:53 | |
08:55
brrt joined
|
|||
brrt | moarning | 08:55 | |
jnthn | Ah, smarter yesterday me left Friday me a note on what to do next :) | 09:12 | |
samcv | hey jnthn | 09:21 | |
jnthn | o/ samcv | 09:24 | |
How'd we end up with that neg codepoint being accessed, ooc? | |||
We construct all strings ourselves... | |||
samcv | that is a good question | ||
it only dies when you try and print it to the screen | 09:25 | ||
well encode the stringc | |||
jnthn | What's "it"? | ||
Is there an RT I should be looking at? :) | |||
samcv | ok so you decide foā„o as ascii | ||
and it decodes the ascii but ends up with three synthetics that don't exist | |||
where i assume there are 3 utf-8 bytes | |||
jnthn | m: 'foā„o'.encode('utf-8').decode('ascii') | 09:26 | |
camelia | Can not decode a utf-8 buffer as if it were ascii in block <unit> at <tmp> line 1 |
||
jnthn | m: Buf.new('foā„o'.encode('utf-8')).decode('ascii') | ||
camelia | Will not decode invalid ASCII (code point > 127 found) in block <unit> at <tmp> line 1 |
||
samcv | m: with "/tmp/foo2121".IO { .spurt: "foā„o"; with .open(:enc<ascii>) { say .slurp } } | ||
camelia | MoarVM panic: MVM_nfg_get_synthetic_info called with out-of-range synthetic | ||
jnthn | That's what should happen | ||
Oh wow | |||
brrt | (we're only using the jit_entry_label as a position marker in frame.c and exceptions.c, and that can easily be handled with stack-walking, so we can kill the dynamic labels) | ||
samcv | that doesn't show the never error and i changed it to not panic and just throw | ||
with a nicer error message | |||
MVM_nfg_get_synthetic_info call requested a synthetic codepoint that does not exist. | 09:27 | ||
Requested synthetic 30 when only 6 have been created. | |||
^new message | |||
jnthn | Yeah, I think it should oops instead of throw though | ||
And we apparently need to fix our ascii decoder :P | |||
samcv | you want it to panic? | ||
jnthn | Yes | ||
This should *never* happen, if it did then we've (interanlly) constructed a corrupt string | |||
The user can never give us synthetics directly | 09:28 | ||
samcv | well there are issues with the decoder. better to allow the user to work around a bug that exists | ||
than have it be unrecoverable | |||
i know it should never happen but... | |||
the fact is it does happen :P | |||
maybe you can set it back to panic when the bug isn't triggered anymore? | 09:29 | ||
not sure how strongly you feel about panicing | |||
though maybe the fix is really simple idk | |||
jnthn | I suspect it's a one-line patch | 09:31 | |
samcv | ah ok. then feel free to set it back to a panic | ||
jnthn | Well, can make it oops instead since we get a stack trace that way | 09:33 | |
samcv | i never got a stack trace on panic | ||
what did i do wrong | |||
jnthn | panic doesn't stack trace | ||
oops does | |||
samcv | ah ok | ||
jnthn | Both exit | ||
panic is for situations where we are in such a bad state we don't know we'll even survive the stack trace :) | 09:34 | ||
oops is where something really bad has happened, but we expect we can give a stack trace without a SEGV | |||
samcv | makes sense | 09:35 | |
hmm why did i fail all the nativecall tests | 09:36 | ||
maybe my build is weird... hmm | 09:37 | ||
jnthn | I've got a heap of other diffs I'm working on in another branch so will do it later, but if you fancy beating me to it, I think the patch is just to change github.com/MoarVM/MoarVM/blob/mast...scii.c#L69 here to declare a MVMuint8 instead of char | ||
samcv | idk i have it on --debug=3 --optimize=0 --compiler=clang | ||
i'm going to bed very shortly | |||
jnthn | np, I'll do it later today then :) | ||
samcv | was gonna finish a last commit | ||
jnthn | np | 09:38 | |
jnthn is still trying to finish a first commit :) | |||
Geth | MoarVM: a3e986924a | (Samantha McVey)++ | 4 files Fix overflow in uniprop lookups. Closes issue #566 Use MVMint64 instead of MVMGrapheme32 so we don't get an overflow. In ucd2c.pl: fix some syntax errors. I am not sure why they are showing now and not earlier. This was on Perl v5.24.1 |
09:50 | |
MoarVM/spesh-worker: ec38f67c99 | (Jonathan Worthington)++ | src/spesh/candidate.c Form type tuple from args buffer, not guards. |
09:59 | ||
MoarVM/spesh-worker: c53dfcc5aa | (Jonathan Worthington)++ | src/spesh/candidate.c Remove dead variables; update comments. |
10:02 | ||
MoarVM/spesh-worker: 37167b3991 | (Jonathan Worthington)++ | src/spesh/dump.c Remove old arg guards from spesh dumper. |
10:06 | ||
MoarVM: 4ff2f1f918 | (Samantha McVey)++ | src/strings/normalize.c Improvements to segmentation of Emoji w/ GCB=Other Not all Emoji Modifiers have Grapheme_Cluster_Break = E_Base or E_Base_GAZ. In these cases we need to check the Emoji_Modifier_Base property. Correctly segments 25 more Emoji than before (Unicode Emoji v4.0). |
10:09 | ||
samcv | ok. i'm done for tonight :) time to go to bed | ||
night all o/ | |||
Zoffix | night | 10:10 | |
jnthn | 'night, samcv++ | 10:12 | |
samcv | ok added a roast test. now i can really sleep | 10:20 | |
jnthn | :) | 10:22 | |
Geth | MoarVM/spesh-worker: f62474bda8 | (Jonathan Worthington)++ | 5 files Eliminate old arg guards mechanism fully. |
10:24 | |
11:05
brrt joined
11:11
brrt joined
|
|||
Geth | MoarVM/spesh-worker: ae86b1c710 | (Jonathan Worthington)++ | 3 files Make arg specialization take a type tuple. Rather than the args buffer. This will make it easier to migrate to use from the specialization worker thread, and also to produce specializations that are not type-sensitive or only commit to certain types. |
11:16 | |
jnthn | lunch & | 11:17 | |
11:25
brrt joined
|
|||
jnthn back | 12:13 | ||
OK, so...new logging is in, new stats model is in, new guards are in | 12:28 | ||
So the next step is the planner | 12:30 | ||
(The thingy that decides what specializations to build.) | |||
timotimo | say, for baseline spesh we don't really need anything more than just the planner doing the spesh earlier and not having anything happen for args? | 12:31 | |
oh, not quite true | |||
it does callsite-based opts of course | |||
jnthn | Also wvals and static lexicals provide info that we can rely on | 12:33 | |
timotimo | ah, indeed | 12:34 | |
jnthn | Though today I use the term "certain" rather than "baseline" | ||
timotimo | sure | ||
jnthn | Note that if we see that every call is, say, (Int,Int) or so, there's no reason to produce a certain one | ||
timotimo | fair enough, yeah | 12:35 | |
Geth | MoarVM/spesh-worker: dc80d7def6 | (Jonathan Worthington)++ | 5 files Sketch out specialization plan data structure. |
13:05 | |
13:31
AlexDaniel joined
|
|||
Geth | MoarVM/spesh-worker: 3e6890c11e | (Jonathan Worthington)++ | 4 files Add spesh plan memory management bits. |
13:35 | |
[Coke] | spesh question; you make faster code when you notice types don't change, partly by removing type checks; how do you then fall back when the types DO change? | 13:37 | |
timotimo | we emit guard operations every time we assume something | ||
when the guard fails we do a "deopt" | |||
[Coke] | is the guard.. a ... type check? | 13:38 | |
I'm trying to suss how it can be cheaper than the original work. | |||
ilmari | [Coke]: the code following the guard can be specialised for that type without further checking | 13:39 | |
instead of each op having to check/dispatch on the type | |||
[Coke] | ilmari: ah, thanks. | 13:42 | |
jnthn | Right, it's a "check it once, then rip out all further checks" kind of deal | ||
Except we tend to do precise checks too | 13:43 | ||
Rather than "is it some kind of..." | |||
Which are also cheaper (just a pointer comparison rather than an MRO search) | |||
It's not just type checks, though; from that we can also do stuff like ripping out pointless decont ops, or turning decont ops we need into cheaper operations without the virtual calls | 13:44 | ||
[Coke] | jnthn: with the utf8/strict discussion I saw earlier, does that positively influence your million-line-read bench? | ||
jnthn | [Coke]: Didn't do any new measuring, but it's probable you can get Perl 5 to go faster if you know what you're doing. | ||
Rather than taking the typical approach of :encoding(utf-8) or so | 13:45 | ||
So it probably speeds up the Perl 5 case and gives us some further catching up :P | |||
ilmari | :utf8 would be faster, but unsafe | ||
because it doesn't actually decode or check, just flags it as utf8 internally | 13:46 | ||
jnthn | omg | ||
timotimo | hah | ||
that's just mean | |||
ilmari | yeah, it's heavily discouraged | ||
jnthn | But wait, that means that everything you do downstream must have to check "is this OK utf8"? | ||
Or is that amortized? | |||
[Coke] | I just wanted to make sure we weren't missing a chance to force a stricter, slower mode to compare apples. | 13:47 | |
ilmari | it means everything breaks if it's not actually valid | ||
timotimo | i don't think anything checks if "is this valid utf8" | ||
jnthn | Breaks as in...exception? SIGSEGV? | ||
[Coke] | er, *.apples? | ||
ilmari | on a debug build you might get assert failures | ||
jnthn: sigsegvs, bogus results, panics, all bets are off | 13:48 | ||
timotimo | [Coke]: many operations are implemented as a lookup on the REPR of the object and the REPR has a bunch of so called REPRops, which are basically function pointers | ||
13:48
brrt joined
|
|||
jnthn | ilmari: Goodness. o.O | 13:48 | |
No wonder it's discouraged! | |||
timotimo | [Coke]: but if we know the exact type, we also know the REPR and all of its contents, so instead of multiple pointer dereferences and a function call invocation we can be much smarter | ||
ilmari | I believe leont and others are working on a :utf8-strict layer, which actuall checks | ||
jnthn | Yeah, that's probably the one to compare with then | ||
ilmari | but is faster than :encoding(UTF-8) | ||
[Coke] | glad you smart people are working on these bits. :) | ||
ilmari | for now, :encoding(UTF-8) is the right thing to compare to | ||
jnthn | :utf-8 is apples and oranges | ||
timotimo | and some REPRs will do some extra optimization on top of that. for example, Rakudo Scalar can grab its contents with a "dereference this pointer and grab the pointer that lives at this offset" operation, which is extremely cheap (especially when jitted) | 13:49 | |
jnthn | Uh, :utf8 rather | ||
timotimo | jnthn: have you been comparing to :utf8 or :encoding(UTF-8)? | ||
jnthn | timotimo: The latter :) | ||
timotimo | OK, so no cheap win to be had there :) | 13:50 | |
[Coke] | *finger snap* | ||
timotimo | indeed | ||
jnthn | So basically, utf8-strict sounds like it will give us some more serious competition. | ||
But if :encoding(UTF-8) is typical today then the 1.1x result stands as representative of real world use. | 13:51 | ||
And we'll find that .1 :) | |||
timotimo | i hear thunder. i hope it'll really come down soon and cool things off | 13:56 | |
jnthn | We're due some. I'd welcome it. | 13:57 | |
It's managed to get a few degress warmer than was originally forecast today | 14:00 | ||
timotimo | it says something like 32degC max | ||
i'm having trouble cooling down my apartment | |||
moritz | we had a thunderstorm at like 4am this morning :-) | 14:01 | |
jnthn | It's 30 here right now | ||
timotimo | last night i had one window open and put a fan in the way, but then a gigantic insect came in | ||
it was about as long as my index finger i'm sure | |||
looked like a grasshopper, except i think those are more like fingernail sized? so maybe it was a locust?! | |||
jnthn | Hah, we had one of those come in last summer | ||
Long green thing. My wife thought it was a locust. | |||
timotimo | yeah, sounds like that's what i had | 14:02 | |
jnthn | It slept on the curtain rail overnight. I nicknamed it Mr Greeny. Flew away out the window the next morning. | ||
timotimo | i do have a picture of it, but i had the lights off and the flash decided to light only the curtain, not the insect, so it's really dark | ||
let me see if i can "enhance" | |||
looks better | 14:03 | ||
imgur.com/1fl6sEt | |||
jnthn | Hm, looks pretty similar | 14:04 | |
'twas big, but given it just hung out overnight and left, I'd prefer it to mosquitos, which bite me :P | 14:05 | ||
timotimo | i'm unreasonably squeamish when it comes to insects | ||
jnthn | Yeah, can understand it | ||
timotimo | i was very glad when it decided to fly out the window and sit against the blinds, then i closed the window on 'em | ||
jnthn | I'm not that keen, tbh, but manage not to be too bothered | ||
timotimo | i'm scared i might have trapped it there and when i open the window it'll come in and be angry at me | 14:06 | |
uh oh, i crushed it ... i think it's dead | 14:10 | ||
jnthn | oops | ||
Geth | MoarVM/spesh-worker: 5952915f3e | (Jonathan Worthington)++ | 5 files Stub in specialization planning and dumping. No calculations yet; this is just the groundwork. |
14:21 | |
MoarVM/spesh-worker: 371220a983 | (Jonathan Worthington)++ | 3 files Aggregate OSR hits over all callsites. |
14:29 | ||
14:35
brrt joined
|
|||
timotimo | at the moment i get - for a quite long test file - just a single plan and it says "0 specializations will be produced" | 14:45 | |
jnthn | Right, as the commit said, no calculations done yet ;) | 14:52 | |
timotimo | oh | ||
duh :) | |||
jnthn | Also we only ever send one buffer of stats so far | ||
14:56
lizmat joined
|
|||
Geth | MoarVM/spesh-worker: 0cfd3bb8f0 | (Jonathan Worthington)++ | 2 files Implement basic planning by callsite. This just adds in certain specializations; types are not considered at this point. |
15:04 | |
15:04
domidumont joined
|
|||
MoarVM/spesh-worker: 08c31e644b | (Jonathan Worthington)++ | src/spesh/dump.c Explain why certain specializations were produced. |
|||
timotimo | the rain has arrived | 15:05 | |
aaaaand it's gone | 15:06 | ||
jnthn | Not here yet :( | ||
The type analysis comes next, but it's a bit warm and late on a Friday afternoon to figure that out. | 15:07 | ||
I'll take a look at that ASCII decoder fail from earlier though | |||
Am taking a couple of days vacation at the start of next week, also, so will continue with the spesh stuff on Wed when I'm back | 15:08 | ||
(Goes without saying this stuff isn't aimed for the 2017.07 release) | |||
timotimo | that sounds nice | ||
dogbert17 | the ASCII deocder fail was reported by Zoffix as RT #131384 | 15:14 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131384 | ||
dogbert17 wonders what a deocder is | 15:16 | ||
jnthn | Something that looks at a bunch of bytes and works out what unicode codepoints they represent | 15:18 | |
Oh, hah, the typo :P | |||
dogbert17 | :) | ||
Geth | MoarVM: 31ca7fa702 | (Jonathan Worthington)++ | src/strings/ascii.c Fix ASCII streaming decode error handling. We accidentally used a signed type, and so would treat out of range as if they were synthetics, rather than simply giving the out of range error. |
15:35 | |
MoarVM: 4d408e9abf | (Jonathan Worthington)++ | src/strings/nfg.c Make illegal synthetic an oops, not a throw. This partially undoes f621f21191c5c3a3035d3121c042cba4348c18cc, but leaves in place the stack trace. The reasoning is that an invalid synthetic is almost certainly going to be an indication of a serious internal error (potentially corruption); only MoarVM constructs synthetic codepoints, so any time an invalid one shows up it has to be a VM mistake. |
|||
MoarVM: 45b008fb6f | (Jonathan Worthington)++ | src/core/exceptions.c Tweak a comment and oops output. |
|||
16:04
robertle joined
16:09
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Jonathan Worthington 'Tweak a comment and oops output.' | 16:09 | |
travis-ci.org/MoarVM/MoarVM/builds/251204892 github.com/MoarVM/MoarVM/compare/4...b008fb6ff8 | |||
16:09
travis-ci left
16:15
bisectable6 joined
16:50
domidumont joined
17:10
bisectable6 joined
17:18
buggable joined
17:21
bisectable6 joined
17:46
evalable6 joined
19:55
FROGGS joined
|
|||
Geth | MoarVM: 522e005ced | (Samantha McVey)++ | src/strings/normalize.c Actually fix the emoji from commit 4ff2f1f9 There was an error in the location of the previous commit, this moves it to the proper place. |
21:02 | |
samcv | oops looks like i pushed the wrong thing eariel | ||
well there it's fixed | 21:03 | ||
21:15
MasterDuke joined
|
|||
MasterDuke | timotimo, jnthn, et al: might find this useful, a gui for perf results similar to heaptrack: www.kdab.com/hotspot-gui-linux-perf-profiler/ | 21:19 | |
timotimo | doesn't look half bad | 21:20 | |
MasterDuke | just installed it on my desktop, haven't had a chance to try it out yet, but it does look promising | 21:22 | |
21:24
evalable6 joined
21:29
travis-ci joined
|
|||
travis-ci | MoarVM build passed. Samantha McVey 'Actually fix the emoji from commit 4ff2f1f9 | 21:29 | |
travis-ci.org/MoarVM/MoarVM/builds/251309821 github.com/MoarVM/MoarVM/compare/4...2e005ced36 | |||
21:29
travis-ci left
|
|||
jnthn | MasterDuke: Looks nice; will give it a try :) | 22:34 | |
Geth | MoarVM: 06819cce28 | (Samantha McVey)++ | src/strings/normalize.c Use GCB instead of HST to avoid property lookup for Hangul This should result in some speed up and we don't have to use strcmp anymore and we can just compare integers. It doesn't require any more property lookups than any other codepoints going through should_break() now. |
22:35 | |
jnthn | samcv++ # nice! Bet that generates far nicer code too :) | 22:38 | |
samcv | yep | 22:40 | |
jnthn | Do you think the maybe_hangul range checks are still a win? | 22:43 | |
Hm, they maybe are, looking at it | 22:44 | ||
Guess it'd need callgrind to tell us :) | |||
samcv | hmm well. probably not needed maybe. hm | 22:48 | |
heh | |||
22:49
colomon_ joined
|
|||
samcv | this code though github.com/MoarVM/MoarVM/blob/0681...#L338-L339 i-im not sure about the strlen(ccc_str) > 3 part | 22:52 | |
so it returns 0 if there's no string, otherwise returns 0 if the strings length is greater than 3 | 22:53 | ||
because? | |||
about the returning 0 if it's greater than 3 | |||
timotimo | so the segfault inside MVMCallCapture's gc_mark, right? | ||
samcv | the one in my Font::QueryInfo module? | ||
that is where it crashes | |||
timotimo | i've got it open in rr | ||
from the whateverables | |||
i see its data being overwritten in the utf8-c8 encoder, but that's just because it had been freed and alloced in between | 22:54 | ||
we have this "owns_callsite" flag that tells us whether or not it's okay to free the thing | 22:55 | ||
and if it's set, we'll memcpy and everything when we pass the thing around, right? | |||
jnthn | samcv: There are (were?) some values of the CCC property that are not integers | ||
I forget exactly what it is but it's something like Unassigned or some such | |||
The > 3 check is for that :) | |||
samcv | hehehe | 22:56 | |
timotimo | m: say Buf.new(:16<69 2f 32 64 31 33 35 63>).decode("utf8") | ||
camelia | ===SORRY!=== Error while compiling <tmp> Malformed radix number at <tmp>:1 ------> say Buf.new(:16<69ā 2f 32 64 31 33 35 63>).decode("utf8") expecting any of: number in radix notation |
||
timotimo | m: say Buf.new(0x69 ,0x2f, 0x32, 0x64, 0x31, 0x33, 0x35, 0x63>).decode("utf8") | 22:57 | |
camelia | ===SORRY!=== Error while compiling <tmp> Missing required term after infix at <tmp>:1 ------> x2f, 0x32, 0x64, 0x31, 0x33, 0x35, 0x63>ā).decode("utf8") expecting any of: prefix term |
||
timotimo | m: say Buf.new(0x69 ,0x2f, 0x32, 0x64, 0x31, 0x33, 0x35, 0x63).decode("utf8") | ||
camelia | i/2d135c | ||
timotimo | hm, that's probably not a valid string? | ||
samcv | jnthn, looks like Not_Reordered | 22:58 | |
jnthn | samcv: I guess the presence of those is why it's a str property rather than an int property anyway | ||
Ah, right, that's the one :) | |||
It's been more than 2 years :) | |||
timotimo | so how do i go about debugging this? i can set watchpoints to find where it gets calloced (for the string to be put in and also for the callsite to be put in), i can get a breakpoint where the string content is actually written, but how does that help me? :| | ||
hm. maybe i can watchpoint the pointer in the arg proc context to see when the callsite gets assigned | 23:04 | ||
maybe callsites should become GC-managed objects? :\ | |||
samcv | looks like Not_Reordered jnthn | 23:08 | |
oh i said that | 23:09 | ||
heh | |||
was gonna change this but it seems to break things | 23:12 | ||
to int | |||
err wait no maybe that was another section. going to only make this one change and run a full spectest | 23:16 | ||
dogbert17 | timotimo: night time bug hunting ? | ||
timotimo | i think i need to go to bed and maybe try again tomorrow | 23:17 | |
dogbert17 | yeah, is about time for me as well, doing an experiment with samcv's font program | 23:18 | |
dogbert17 wonders how long time this program is supposed to take | 23:19 | ||
samcv | oh yay i got it to work jnthn :) with int based ccc | 23:21 | |
\o/ | |||
dogbert17 en => NanumBarunGothic ? | 23:22 | ||
samcv: your font program seems to write out a gazillion backtraces. Is it supposed to do that? | 23:27 | ||
and there it completed | 23:28 | ||
samcv | backtraces? | ||
how so? | 23:29 | ||
dogbert17 | malformed base-16 number | ||
23:29
evalable6 joined,
bloatable6 joined,
quotable6 joined,
committable6 joined,
benchable6 joined,
coverable6 joined,
bisectable6 joined,
unicodable6 joined,
greppable6 joined
|
|||
samcv | that shouldn't happen | 23:29 | |
23:29
statisfiable6 joined
|
|||
samcv | what system are you on | 23:29 | |
dogbert17 | 32 bit Linux Mint | ||
samcv | dogbert17, can you run 'prove -e perl6' | ||
23:30
committable6 joined
|
|||
dogbert17 | sec | 23:30 | |
test failures | 23:31 | ||
gist.github.com/dogbert17/cc7bd2da...e593d658f0 | 23:32 | ||
it looked like that when running your program as well | |||
timotimo | source => "!!#0H|>^1!|>^1!P0oWQ" - ?!?!? | 23:34 | |
dogbert17 | :) | ||
timotimo | anyway, bedtime. | ||
o/ | |||
dogbert17 | I might possibly have a clue as to what's going on | ||
samcv: does it always crash for you? | 23:35 | ||
samcv | every time | ||
dogbert17 | try this | ||
samcv | ah yes | ||
there's some problem with some freetypes | |||
travis did that too | |||
dogbert17 | MVM_SPESH_DISABLE=1 perl6 ... | 23:36 | |
samcv | dogbert17, edit the sample program | ||
to not get charset | |||
one sec | |||
font-query-all($file, 'charset') | |||
that should do everything but charset | 23:37 | ||
and not show those errors | |||
Geth | MoarVM: 90e5157766 | (Samantha McVey)++ | src/strings/normalize.c Reorder conditional in maybe_hangul() to be more clear This makes it clear at a glance the ranges of the conditionals which cause it to return true. |
23:40 | |
MoarVM: e92ea5a35a | (Samantha McVey)++ | src/strings/normalize.c Speed up ccc by making ccc_relative using integer prop lookup Gets the canonical combining class for a codepoint. Does a shortcut since CCC is stored as a string property, though because they are all sorted numerically it is ok to get the internal integer value as stored instead of the string. Will result in a speedup during normalization. |
|||
dogbert17 | I changed to 'say $_ => font-query-all($_, 'charset') ...' was that what you meant? | 23:41 | |
samcv | dogbert17, i just pushed changes | 23:44 | |
pull the latest changes and then yeah | |||
set it like that | |||
i just fixed a bug in making exceptions | |||
dogbert17 | now the exceptions are gone :) | 23:46 | |
samcv | yay | ||
what version do you have btw? | |||
fc-query --version | |||
dogbert17 | fontconfig version 2.11.0 | 23:47 | |
looks good so far | 23:50 | ||
samcv | wow hmm it's not crashing | 23:51 | |
it crashes if i have it query the charset though | |||
dogbert17 | not if you run it with MVM_SPESH_DISABLE=1 | 23:52 | |
samcv | did you get a segfault when running WITH the charset? | ||
does it throw errors or does it just kill the program? | |||
dogbert17 | no, only lots of what you saw in the gist | ||
samcv | and no crashing? | ||
yeah but the program didn't crash when you ran Query-all-fonts.p6 or whatever? | 23:53 | ||
like. due to the exception i mean | |||
dogbert17 | it crashes if I don't disable SPESH | ||
samcv | ok | ||
dogbert17 | give it a try | ||
samcv | no crashing | 23:54 | |
dogbert17 | :) | ||
23:59
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Samantha McVey 'Speed up ccc by making ccc_relative using integer prop lookup | 23:59 | |
travis-ci.org/MoarVM/MoarVM/builds/251352717 github.com/MoarVM/MoarVM/compare/0...2ea5a35abb | |||
23:59
travis-ci left
|