samcv | nice jnthn i have the aliases working now :-D | 00:10 | |
timotimo, how do i warn the user if they use the unicode 1 names in \c | 00:20 | ||
what mvm command is it? | |||
err function | |||
timotimo | warn, eh? that'd be outputting to stderr | ||
samcv | yeah what MVM function does that? | 00:21 | |
timotimo | not sure we actually have one? you could do the equivalent of nqp::sayfh(nqp::getstderr(), "oh no!") | 00:22 | |
samcv | well what does nqp warn call? | ||
it just prints to stderr? | |||
timotimo | oh, you were actually hoping to throw a proper warning | ||
that's an exception of a special kind being thrown | |||
samcv | well i don't care much about that | ||
well maybe i do. you tell me | 00:23 | ||
timotimo | if you do it via the warn mechanism it'll be silencable via "quietly" | ||
samcv | and what is that in MVM? | ||
timotimo | i don't actually know | 00:24 | |
for most things like that we register a function via the HLL mechanism that we just invoke, if i'm not mistaken | |||
(though that means the op that does it has to be marked invokish, if i'm not mistaken) | 00:25 | ||
samcv | and fprintf(stderr, "") would be bad because you couldn't quiet it right | 00:31 | |
is there a way to check if we are running quietly? | |||
timotimo | "quietly" works by installing an exception handler for warnings that just doesn't print the warning | 00:32 | |
warnings are implemented as resumable exceptions | |||
the default handler prints and resumes, quietly installs one that just resumes | |||
samcv | ah kk | ||
would it be the worst thing ever to just print to stderr? | 00:33 | ||
especially since i don't think anybody is actually using this in practice | |||
though i guess it won't print the line number. eh | 00:34 | ||
but i mean we use it in cursor, so i really think it would be shitty to handle it on the nqp side | 00:35 | ||
timotimo | we can try with the different throw ops we have | ||
samcv | let me know how i would do that and i'll try it out | ||
00:36
pyrimidine joined
|
|||
timotimo | or implement something very similar to the throw_adhoc_* functions, but "just" set a WARN category on the exception? | 00:36 | |
i'm not sure if that handles resumption properly? | |||
exceptions are definitely a weak part of my moar knowledge | |||
samcv | how do i do quietly? | 00:39 | |
yeah no it doesn't resume | |||
===SORRY!=== | |||
LINE FEED (LF) << Unicode 1 names are depreciated. Please use LF or LINE FEED | |||
===SORRY!=== | 00:43 | ||
In lookup of Unicode character by name, Unicode 1 names are depreciated. | |||
"LINE FEED (LF)"ā | |||
Please use LF or LINE FEED | |||
this is not the worst error message i guess | 00:44 | ||
would like it not to kill the program but | |||
timotimo | how do you do that right now? | 00:45 | |
samcv | MVM_exception_throw_adhoc(tc, | 00:47 | |
"In lookup of Unicode character by name, Unicode 1 names are depreciated.\n\"%s\"ā \nPlease use LF or LINE FEED", cname); | |||
timotimo | yeah, that's a regular exception | ||
we'd need a different function that's able to set the category to WARN | |||
samcv | yeah. how 2 warn? or can i not yet? | ||
ah kk | |||
i'm going to try and optimize it so that it takes as little time as possible for non depreciated characters | 00:48 | ||
to do the check | |||
timotimo | sounds like a good idea, i suppose | ||
samcv | yeah | 00:49 | |
timotimo | i can totally imagine a workload where we'd want to create a whole lot of chars from string descriptions | ||
samcv | strcmp is not as fast as i'd like | ||
timotimo | always use strncmp please :) | ||
just a knee-jerk reaction | |||
samcv | we use strcmp for another thing but it is not user input text | 00:50 | |
so yeah strncmp would be good | |||
01:27
pyrimidine joined
|
|||
Geth | arVM: samcv++ created pull request #497: Remove Unicode 1 names and add Unicode Name Aliases |
01:38 | |
samcv | timotimo, github.com/MoarVM/MoarVM/pull/497/...75f6d9R115 if you want to see what i did | 01:40 | |
and PR description explains all the changes to functionality | 01:42 | ||
[Coke] | samcv: it's deprecated, not depreciated. | 02:01 | |
samcv | oops. k | ||
this is nice though, like can do \c[ZWJ] for ZERO WIDTH JOINER and a bunch of other ones | 02:08 | ||
heh | 02:12 | ||
# PADDING CHARACTER and HIGH OCTET PRESET represent | |||
# architectural concepts initially proposed for early | |||
# drafts of ISO/IEC 10646-1. They were never actually | |||
# approved or standardized: hence their designation | |||
# here as the "figment" type. Formal name aliases | |||
# (and corresponding abbreviations) for these code | |||
# points are included here because these names leaked | |||
# out from the draft documents and were published in | |||
# at least one RFC whose names for code points was | |||
# implemented in Perl regex expressions. | |||
sorry for the big paste | |||
so i guess Perl implemented a non-finalized unicode standard in their regex and so those are now listed in the aliases :P | 02:13 | ||
can now do "\c[NBSP]" as well. nice | 02:14 | ||
interestingly because no characters names can change since unicode 2, there are many corrections in the alias names file. so that's really good for us to support them | 02:16 | ||
Corrections for serious problems in the character names # haha | |||
m: say 0xFE18.uniname | 02:23 | ||
camelia | rakudo-moar 8f3476: OUTPUTĀ«PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCETā¤Ā» | ||
samcv | hehehe misspelled! | 02:24 | |
02:48
ilbot3 joined
02:52
pyrimidine joined
03:02
geekosaur joined
|
|||
timotimo | i dont know how to grab urls with this android ssh client | 03:15 | |
heres a q gor ypu | 03:20 | ||
we encode as ascii and then we strlen | |||
but doesnt the size parameter give us that value? | 03:21 | ||
samcv ^ | |||
samcv | uhm the strlen is for the user suppled one | 03:22 | |
oh you mean in the table? | |||
you mean the length of cname right? | |||
timotimo | yes | 03:23 | |
samcv | yeah. it does look like that. | ||
thanks | |||
timotimo | was like tgat before your diff | 03:24 | |
but it jumped out at me | |||
but damn code review on a phone... never again | |||
samcv | yeah it was there so i decided to leave it | ||
timotimo | ill return to a proper computer and check the rest of the code | 03:27 | |
later | |||
04:12
pyrimidine joined
|
|||
timotimo | + for (int i = 0; i < num_unicode_namealias_keypairs; i++) { | 04:16 | |
we have pedantic (or something) turned on, so we'll need to have the "int i" outside of the for loop (at the beginning of the block, before any code lines) | |||
samcv | it compiles fine? | ||
i can still move it if you wish though | 04:17 | ||
timotimo | it doesn't compile on travis, and won't compile on jnthn's machine | ||
samcv | ah | ||
geekosaur | it compiles fine if you are using gcc or some other compile with c++ extensions in c mode | ||
timotimo | (because ancient MSVC somehow became a design choice) | ||
samcv | ah ok will fix then | ||
timotimo | thanks for putting up with that BS :) | ||
i'm going to bed now. i'm already quite late again | 04:40 | ||
samcv | night! | 04:44 | |
timotimo | nity night | ||
05:43
pyrimidine joined
06:27
pyrimidine joined
06:47
pyrimidine joined
07:06
domidumont joined
07:13
domidumont joined
|
|||
Geth | arVM/even-moar-jit: 36f1fe9460 | (Bart Wiegmans)++ | src/jit/linear_scan.c Resolve ordering of synthetic tiles Synthetic tiles do not have a 'proper' order number in the list, which could potentially cause a situation in which a live range was defined and expired prior to its use (causing it to be overwrritten). By doubling the tile index and adding a +1/-1 bias for synthetics we use the additional number space to ensure a correct ordering. |
07:55 | |
07:59
pyrimidine joined
08:04
pyrimidine joined
08:26
zakharyas joined
08:45
pyrimidine joined
08:48
brrt joined
|
|||
brrt | good * #moarvm | 08:48 | |
the commit above solves my headache issue | |||
to be honest, almost amazingly elegantly, too | 08:49 | ||
(if there's no space on the number line, just double it) | 08:54 | ||
08:58
zakharyas joined
|
|||
arnsholt | Classic Cantor hotel solution =) | 09:01 | |
brrt is not aware of cantor hotel solution? | 09:25 | ||
hmm, hang on, cantor is a mathematicion isn't he | |||
arnsholt | Yeah, worked on infinity | 09:29 | |
There are a bunch of problems like this, but the one I always remember is: | |||
brrt | just a question | ||
am i overengineering the JIT? | |||
arnsholt | The Hotel Cantor is a hotel with an infinite number of rooms, all of which are occupied. | ||
Then a tour bus arrives, with an infinite number of new guests. | 09:30 | ||
How do you allocate rooms to both the existing and new guests, so that everyone gets a room? | |||
The solution being to allocate the existing guests from room n to room 2n, and put the new guests in the odd numbered rooms, which arae now free =) | 09:31 | ||
brrt | :-) | ||
cool | |||
arnsholt | As to your question of overengineering: I have no idea, sorry =) | ||
brrt | well, that was the comment i got when i explained this solution to a colleague | 09:32 | |
lizmat | it's always a fine line between delivering incomplete early and never delivering complete | 09:33 | |
afk& | |||
brrt | hmmm, fair point | 09:35 | |
samcv | have you guys gotten Cannot bind attributes in a VMNull type object ? | 09:36 | |
i haven't been paying attention, got it on uh. MVM from yesterday or maybe day before? | |||
checked my server saw those messages | 09:37 | ||
which uses threading and other things | |||
brrt | haven't recently seen thatā¦ no | 09:38 | |
masak | arnsholt: Hilbert's Hotel, actually | 09:40 | |
arnsholt | masak: Oh, right! | 09:46 | |
09:47
pyrimidine joined
|
|||
masak | my main takeaway from that "paradox" is that if you want to treat countable-infinity as a cardinal, then you'll also have to get used to the fact that it doesn't behave exactly like finite ones | 09:49 | |
the whole "proper subset of itself" in particular is new | |||
it's a "paradox" because people go "but... but that's *impossible*". no, it's not. it's consistent. it's cardinality, Jim, but not as we know it | 09:50 | ||
most likely it's to do with the fact that actual infinities don't occur in our everyday lives, at least not so obviously | 10:03 | ||
brrt | :-) | 10:10 | |
the line between proper and over-engineering is a fine oneā¦ | |||
and how do you know on which side of the line you are? | |||
nwc10 | both sides. at the same time. | 10:11 | |
(dear scrollback, some point I'll get to you) | |||
jnthn | It gets worse. Proper engineering takes longer than over-engineering, because a simple but sufficient design is hard. | ||
nwc10 | mmm yes, good insight | ||
not thought of that | |||
jnthn: I locally merged master into your ASAN-whatever-it-was branch | 10:12 | ||
and have spectest6 going again and again in a loop | |||
oh, *interesting* | |||
spectest6 doesn't exit false if it fails | |||
mmm, bugh | |||
anyway, it *had* been going in a loop for 12 hours | |||
but now I can't tell you if it actually failed | |||
because I had assumed that it would stop on failure | 10:13 | ||
jnthn | d'oh | 10:14 | |
nwc10 | yep | 10:15 | |
oh, actually | |||
hangon | |||
it *is* good | |||
because IIRC if ASAN aborts the test *harness* script | |||
then make exits with failure | |||
jnthn | Oh :) | ||
nwc10 | so if it's been looping for 10 hours | ||
jnthn | Wow | ||
nwc10 | it means that there have been neither ASAN failures | ||
nor those other strange "method not found" errors | 10:16 | ||
jnthn | And this was with the branch fix-inline-and-threads? | ||
nwc10 | which I'm starting to wonder if those were "random new thing has arrived in the same memory as a stale pointer" | ||
yes, that branch | |||
with master merged into it | |||
jnthn | OK | ||
Hmmm | |||
I wonder why I was getting occasional SEGV yesterday | |||
nwc10 | ie, that branch seems to fix stuff | ||
OK. mmm. | |||
not seen them | |||
jnthn | My SEGVs looked totally different from anything to do with what the branch fixed | 10:17 | |
Will have to do fresh builds of stuff just in case. | |||
samcv | jnthn, if we run out of synthetic graphemes what happens | 10:20 | |
10:20
pyrimidine joined
|
|||
brrt | jnthn: true, but there are hordes of engineering managers who furiously disagree | 10:20 | |
(re: 'proper' engineering) | |||
jnthn | samcv: All the negative numbers = space for over 2 billion synthetics. Each synthetic allocates a struct to store info about the synthetic. Once you factor in the trie entry and synthetic metadata, there's easily 100 bytes of data stored per synthetic, perhaps more. If we used the full synthetic space that'd be 214 gigabytes of RAM used. | 10:25 | |
I think we're going to run out of memory before the run out of synthetic graphemes. :) | |||
samcv | nice | 10:26 | |
nwc10 | other question - what's the shortest UTF-8 representation of the sequence of code points needed to generate the 2**31 synthetics | ||
which might start with "what's the shortest sequence of NFC codepoints needed to generate 2**31 synthetics?" | 10:27 | ||
samcv | well that many base characters | ||
at least | |||
nwc10 | I can't remmeber how many combining accents are part of NFG | ||
it has to be at least 2**32 code points | |||
samcv | well we can combine 2 different accents | 10:28 | |
nwc10 | yes, but I forget | ||
1) how many base characters | |||
samcv | so let's say it's 1 + 1, 1 + 2, so round to 1+ 1.5 | ||
nwc10 | 2) how many combining code points (I think it's 2000 at most) | ||
samcv | the base chars are enough to be irrelevant | ||
msotly | |||
well i guess they are if you want to check every possible thing | |||
nwc10 | my *guess* to get to 2**31 was you'd need every permuation of base, accent, accent | 10:29 | |
ie 6 billion code points | |||
but I never did the maths properly | |||
and basically any program that you can feed 6 billion code points to - you probably already had a DOS attack there :-) | 10:30 | ||
samcv | jnthn, oh and you missed conversation, but my newest PR it throws and kills the MoarVM and idk if we have a way to continue execution | 10:33 | |
but i have the alias names implemented, and we have a nice error message when anybody use the Unicode 1 names | |||
jnthn | Hm, where did the error handling for that get put? | ||
samcv | since I think we need to do that at least for a little while just in case anybody is using them | ||
jnthn | I think a warning might be best | ||
samcv | just adhoc | 10:34 | |
how 2warn | |||
jnthn | Just have MoarVM throw over not recognized | ||
samcv | tell me and i will do it | ||
jnthn | Put a CATCH inside of the place we do the lookup | ||
Then check if it's one of the bad names and warn | |||
That is, do it at Perl 6 level, not Moar level. | |||
samcv | it will fail to compile | ||
jnthn | What will? | ||
samcv | well i guess maybe not if we do that. but | 10:35 | |
jnthn | Oh, 'cus \c[...] is compile time | ||
samcv | it is | ||
yep | |||
jnthn | Still, at some point we must call down to the OP | ||
samcv | see github.com/MoarVM/MoarVM/pull/497 | ||
jnthn | *op | ||
And we must be able to CATCH that error | |||
Probably the best bet is to just let it die in NQP | 10:36 | ||
And in Perl 6's actions override the action method for \c[...] | |||
samcv | uhm but we call it directly in cursor | ||
jnthn | And handle the error there, and call .worry | ||
samcv | i guess i could write a bunch of things eh | ||
jnthn | In Cursor? | ||
samcv | actions i mean | 10:37 | |
jnthn | Where? | ||
Yes | |||
samcv | github.com/MoarVM/MoarVM/pull/497/...75f6d9R129 | ||
see this | |||
jnthn | And Rakudo already inherits from the actions in NQP | ||
samcv | yep | ||
jnthn | Yes, I'm saying that this code could go inside of the actions | 10:38 | |
samcv | yeah i can do that tomorrow | ||
that works for me i guess. since nobody else is using moarvm | |||
jnthn | But NQP doesn't have a compiler warning mechanism | ||
So I think it'd need to be Rakudo specific | 10:39 | ||
samcv | but rakudo inherits it? | ||
jnthn | Yes | ||
samcv | so how to make it specific? | ||
jnthn | Just a method override | ||
Rakudo's regex actions inherit from the NQP ones. | |||
samcv | ah ok | ||
gotcha | |||
makes sense | |||
11:25
pyrimidine joined
11:41
pyrimidine joined
11:47
pyrimidine joined
13:09
pyrimidine joined
13:41
pyrimidine joined
14:07
pyrimidine joined
14:14
FROGGS joined
14:54
hoelzro joined
14:55
pyrimidine joined
14:57
hoelzro joined
15:09
pyrimidine joined
15:16
njmurphy joined
15:19
pyrimidine joined
15:42
pyrimidine joined
15:56
pyrimidine joined
16:08
pyrimidine joined
|
|||
Geth | arVM: MasterDuke17++ created pull request #498: Convert MVM_malloc+memset to MVM_calloc |
16:17 | |
16:37
pyrimidine joined
|
|||
TimToady | . | 17:00 | |
17:04
pyrimidine joined
17:19
pyrimidine joined
17:25
pyrimidine joined
18:32
pyrimidine joined
18:37
domidumont joined
19:02
pyrimidine joined
19:17
pyrimidine joined
19:44
zakharyas joined
20:05
pyrimidine joined
20:31
zakharyas joined
20:35
Ven joined
21:04
Ven joined
21:32
pyrimidine joined
21:37
Ven joined
22:04
Ven joined
22:09
pyrimidine joined
22:24
Ven joined
22:44
Ven joined
23:04
Ven joined
23:11
pyrimidine joined
23:24
Ven joined
23:27
pyrimidine joined
23:43
Ven joined
23:45
pyrimidine joined
|