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