Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-01-25

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:18 timotimo ops.c is only 1.9k lines, you have to look in string/ops.c
00:18 timotimo and it seems like there's no function or anything that does the thign
00:19 timotimo just a bunch of functions that have a "can_fit_into_*" variables that it updates as it goes through string data
00:19 timotimo MasterDuke: ^
00:21 timotimo or perhaps what you're looking for is actually the storage type that's specified in the string body?
00:22 * timotimo goes to bed
00:33 pyrimidine joined #moarvm
00:48 MasterDuke timotimo: ah, string/ops.c makes a lot more sense. but yeah, string->body.storage_type might be good enough, trying now
00:49 timotimo depending on what generated the string, you may end up with a storage type that's too wide to store the actual data
00:49 timotimo which isn't bad per se, of course
00:50 MasterDuke too wide?
00:53 timotimo using 32bit per grapheme when we could be using 8bit per grapheme instead
00:55 MasterDuke right
00:57 timotimo good luck!
00:57 timotimo *disappears*
01:15 MasterDuke what's the difference between MVM_STRING_GRAPHEME_ASCII and MVM_STRING_GRAPHEME_8?
01:16 japhb ISTR ASCII in Moar really means *ASCII*, which is to say, high bit 0.
01:16 japhb But I may be misremembering, of course.
01:17 MasterDuke so a string with storage_type MVM_STRING_GRAPHEME_8 could have chars that aren't actually ASCII?
01:26 pyrimidine joined #moarvm
01:40 japhb MasterDuke: Yes, like Latin-1
01:41 diakopter ANSI
01:41 diakopter japhb: you're a codepage
01:42 japhb diakopter: You're a grapheme combiner
01:44 diakopter japhb: you're a non-breaking space
01:44 diakopter get it?? because you're a googler who never takes breaks
01:45 MasterDuke hmm, that's disappointing
01:45 diakopter japhb: I mean, I'm kidding, that's just the stereotype
01:48 pyrimidine joined #moarvm
01:50 ggoebel joined #moarvm
02:09 MasterDuke how do i catch exceptions/errors in moar code?
02:11 pyrimidine joined #moarvm
02:48 ilbot3 joined #moarvm
02:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
03:44 pyrimidine joined #moarvm
04:16 pyrimidine joined #moarvm
04:28 japhb diakopter: I take breaks!  See, I just took a long one.  And I'm not working now, either.  ;-)
04:34 diakopter aha
04:42 pyrimidine joined #moarvm
05:22 samcv this function should clean up the code a lot for UCD generation https://github.com/samcv/UCD/commit/48588cdf1cbe73a22cf6418d213568f1b437e597#diff-9f2ebc507f13fb48cd055870de7efebcR28
05:22 samcv well put all the C code in a snippets folder and make it trivial to select which ones to return back
05:26 samcv the second two arguments are not required, and if just supplying one word will just concat all the files in that folder
05:46 pyrimidine joined #moarvm
05:58 pyrimidi_ joined #moarvm
06:45 brrt joined #moarvm
06:46 brrt good * #moarvm
06:47 samcv o/ brrt
06:48 brrt \o samcv
06:48 brrt what's up
06:48 samcv nm just UCD stuff
06:54 domidumont joined #moarvm
07:00 Geth MoarVM/even-moar-jit: bc50d0fc53 | (Bart Wiegmans)++ | docs/jit/plan.org
07:00 Geth MoarVM/even-moar-jit: Update plan for CALL and ARGLIST compilation
07:00 Geth MoarVM/even-moar-jit:
07:00 Geth MoarVM/even-moar-jit: Needed to implement function calls, but actually rather complex.
07:00 Geth MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/bc50d0fc53
07:00 Geth MoarVM/even-moar-jit: bf3765f580 | (Bart Wiegmans)++ | 3 files
07:00 Geth MoarVM/even-moar-jit: Count number of ARGLIST refs
07:00 Geth MoarVM/even-moar-jit:
07:00 Geth MoarVM/even-moar-jit: Because an ARGLIST node can have more than 3 refs, we need to count them
07:00 Geth MoarVM/even-moar-jit: during tiling so they can be allocated in one step in
07:00 Geth MoarVM/even-moar-jit: determine_live_ranges.
07:00 Geth MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/bf3765f580
07:00 domidumont joined #moarvm
07:01 brrt alright. unicode seems hard tbh
07:06 samcv not as hard as JIT compilation I would think
07:16 brrt nah, that's just something that you have to keep chipping at
07:16 brrt the core process - writing a bunch of bytes - is really simple
07:16 brrt the tricky bit is that these bytes should be correct, and should be reasonably fast
07:17 brrt i should say: should translate to reasonably fast bytecode
07:17 brrt but even then, the process is mostly straightforward as long :-)
07:18 brrt i meant to say, as long as you have a clear idea on what to do
07:36 geekosaur joined #moarvm
08:08 brrt joined #moarvm
08:36 zakharyas joined #moarvm
09:56 samcv what is the MVM op to uppercase a MVM string?
09:58 samcv i need to uppercase the string we get for MVM_unicode_lookup_by_name
09:59 samcv brrt, ?
10:00 brrt ehm, i'll have a look for you
10:00 samcv thanks :)
10:01 brrt MVM_string_uc(MVMThreadContext *tc, MVMString *s); src/strings/ops.c line 827
10:02 brrt OP(uc): src/core/interp.c line 1528
10:05 samcv nice
10:07 samcv and it uppercases the MVM string itself right
10:07 samcv no need to use the return value
10:08 samcv hmm seems it returns a MVMString
10:08 samcv kk.
10:10 timotimo o/
10:10 timotimo MVMString is immutable
10:10 samcv kk
10:12 samcv timotimo, will MVM_string_ascii_encode lose any non ascii chars?
10:12 samcv there's one emoji sequence the flag for some country has a diacritic
10:13 samcv maybe would be best to strip the diacritic eventually
10:13 samcv in the hash table
10:13 timotimo it'll probably complain about out-of-range codepoints?
10:13 timotimo .u dice
10:13 samcv hm
10:13 yoleaux2 No characters found
10:13 samcv well let me try
10:13 timotimo .u die
10:13 yoleaux2 U+2680 DIE FACE-1 [So] (⚀)
10:13 yoleaux2 U+2681 DIE FACE-2 [So] (⚁)
10:13 yoleaux2 U+2682 DIE FACE-3 [So] (⚂)
10:13 timotimo m: say "⚀".encode('ascii')
10:13 camelia rakudo-moar e5ca5c: OUTPUT«Error encoding ASCII string: could not encode codepoint 9856␤  in block <unit> at <tmp> line 1␤␤»
10:14 samcv m: "\c[Åland Islands]".say
10:14 camelia rakudo-moar e5ca5c: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 197␤»
10:14 samcv heh
10:14 samcv m: "Å".ords.say
10:14 camelia rakudo-moar e5ca5c: OUTPUT«(197)␤»
10:14 samcv m: "Å".uniname.say
10:14 camelia rakudo-moar e5ca5c: OUTPUT«LATIN CAPITAL LETTER A WITH RING ABOVE␤»
10:15 samcv the emoji sequences are not fully official which is why they're not all ascii and uppercase like the other ones
10:15 samcv well. they're official, but don't fit the requirements of the UCD
10:16 samcv they're not guarenteed never to change, but i doubt they would
10:21 samcv ok sweet it's working now :)
10:21 timotimo cool
10:21 samcv well maybe not the non ascii chars. but the uppercasing. so now it's all case insensitive
10:22 samcv and now this works: "\c[family: man woman girl boy]"
10:22 timotimo hm, did we reach a conclusion as to whether we'll use base40 for our shift-tables?
10:22 samcv i think we should
10:23 samcv it's 1/3 the space
10:23 timotimo isn't it 2/3?
10:23 samcv less
10:23 timotimo you want to pack them together, too?
10:23 samcv because of the shift level 1 + not storing pointers to every string in the char * whatever[] thing
10:24 samcv what do you mean pack? in one data structure? yes
10:24 timotimo will we linear-scan through the shift-one table then?
10:24 samcv what do you mean by that
10:25 samcv but i think no
10:25 samcv i mean. it's just an array of strings
10:25 timotimo well, right now we can just strcpy shift_one_table[second_codeme] and be done with it
10:25 samcv yeah
10:25 timotimo oh, i'm talking about compressing the table itself
10:25 timotimo we're definitely going to use the table to compress the name data
10:26 samcv oh shift level 1?
10:26 timotimo yup
10:26 samcv well 40 names, so we could do that
10:26 samcv not sure how much we'd save
10:27 timotimo that's what i was wondering about :)
10:27 timotimo how do these sequences work, btw? do we have a big table of strings to lists of codepoints for them? like family: * * * *?
10:27 samcv uh like 480bytes
10:27 samcv well less
10:28 samcv if we have pointers to each one
10:28 timotimo oh, that's not worth much
10:28 samcv but we'd save about 160
10:28 samcv if we didn't have to have pointers we could save 480bytes
10:28 samcv vs 160
10:28 samcv pointers take a lot of space :P
10:28 timotimo they do
10:29 samcv it would be nice if we could compress them
10:29 samcv since they're static data, let's say it all gets loaded into some range of memory, just compress them down to be an offset
10:30 samcv savings would depend on how closely the data is able to be packed together based on available memory contiguity
10:30 jnthn morning, #moarvm
10:30 samcv morning jnthn
10:30 timotimo jnthning, #jnthn
10:30 samcv PR coming your way shortly
10:30 jnthn :)
10:33 jnthn samcv: about Prepend, I guess I was saying I'd expect us to tweak how we generate NFG_QC so that a Prepend is marked as False
10:34 samcv no it is marked as false
10:34 jnthn Oh
10:34 samcv but it comes _before_ the other character
10:34 jnthn Sure
10:34 samcv and we have to save state to make it work
10:34 samcv with Extend we backtrack
10:34 samcv though i guess prepend we could.. forward track?
10:34 samcv still seems less than idea
10:34 samcv ideal i think.
10:35 samcv i had thought about that before. and thought saving state was much cleaner
10:36 timotimo yeah, saving state is probably the right way. otherwise you'd have to have some code to make sure everything's fine when you don't actually have the next character available yet
10:37 samcv and for emoji and stuff we really need it too
10:37 samcv once we see an Emoji_Base we need to check the following and make sure it's a sequence, or same with regional indicators that come in twos or threes
10:40 jnthn Heh, so the sentence in TR 29 about being able to determine should_break based on just the immediately surrounding 2 chars really is a leftover from a simpler time...
10:41 * jnthn feared so from reading it
10:41 timotimo >_<
10:41 samcv heh
10:42 samcv does it still say that jnthn ?
10:42 samcv or was that back in unicode 8.0
10:42 jnthn No, that sentence survived into unicode 9.0's TR 29 too
10:42 samcv where is it?
10:42 jnthn But seemed to me to be contradicted by the rules above it
10:43 samcv oh. uhm
10:43 samcv that is for basic grapheme clusters
10:43 samcv not extended grapheme clusters
10:43 samcv which are fancier
10:43 samcv but we don't want to be underachievers :P
10:43 jnthn heh, sitll there
10:43 jnthn http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries
10:43 samcv i'm on that page
10:44 jnthn "Grapheme cluster boundaries can be easily tested by looking at immediately adjacent characters. They can also be transformed into simple regular expressions."
10:44 samcv immediately adjecent
10:44 samcv extended
10:44 samcv ;)
10:44 jnthn :P
10:45 timotimo weird. NQP_NFA_DEB on this RT by bdfoy causes it to crash inside dentin saying "repeat count (-4) cannot be negative"
10:45 samcv yeah "default Unicode grapheme clusters"
10:45 timotimo how does that even happen %)
10:45 samcv that means the old school ones
10:45 samcv dentin?
10:45 jnthn In Unicode 8 you really could just do it correctly on the surrounding ones even for extended.
10:45 samcv like the part of your teeth?
10:45 jnthn But yeah, fair point, you can read it that way :)
10:45 timotimo dentin is the opposite of indent
10:45 samcv hahaha
10:46 jnthn Still, grumble. :)
10:46 timotimo larry wrote that code, he likes puns a whole lot
10:46 samcv XD
10:46 timotimo i mean, collectively puns are very beloved by the perl6 community, but larry might just be The King Of The Puns
10:47 samcv but uh. dentin means dent + in
10:47 samcv so that part doesn't work. but i see how it's reversed..
10:47 samcv well the origin of the word, in teeth literal translation
10:47 samcv or inside of
10:48 samcv link to RT?
10:48 timotimo indent and dentin are functions the debugging code in the NFA builder and optimizer uses to make pretty shapes in the output
10:48 samcv pretty shapes?
10:48 timotimo https://rt.perl.org/Ticket/Display.html?id=130637
10:48 samcv also explain what NFA is
10:48 timotimo charrange 8 -> -1
10:48 timotimo addedge 8 -> -1 CHARRANGE
10:48 timotimo addstate 9
10:48 timotimo addedge 8 -> -1 CHARRANGE
10:48 timotimo addstate 10
10:48 samcv i have heard abotu it but i stil don't know what it does
10:48 timotimo ...regex_nfa returns 10
10:48 timotimo we use nondeterministic finite automata to decide LTM
10:49 samcv kk
10:49 timotimo deterministic finite automata are really simple state machines that get fed one character at a time and at the end say "yea" or "nay"
10:49 timotimo nondeterministic finite automata are a bit more complex, because they are in a suporposition of states, and at the end they say if any states are yea, or if all states are nay
10:50 samcv nondeterministic finite automata is pretty opaque
10:50 samcv of a word
10:50 timotimo it's what you have to feed into wikipedia to find out what it is ;)
10:50 timotimo the reason why it also says "finite" in there is, of course, because there's also infinite versions of both of these
10:57 jnthn Oh wow, this is a fun/evil bug: http://www.mono-project.com/news/2016/09/12/arm64-icache/
10:57 jnthn brrt: ^^ maybe interest you :)
10:57 brrt oh, i'll tcheck it out
10:57 brrt thanks
10:59 timotimo oooh, nasty
11:01 timotimo ‘So THAT's what it is, thank you! Same issue in PPSSPP, we "solved" it with terrifying amounts of padding.’
11:03 samcv that's interesting
11:08 zakharyas joined #moarvm
11:13 pyrimidine joined #moarvm
11:25 pyrimidine joined #moarvm
11:41 Geth MoarVM: samcv++ created pull request #511: Make getting Uni seq/cp's case insensitive and add seq from NamedSequences.txt
11:41 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/pull/511
11:41 samcv there we go :)
11:41 samcv full spectest pass
11:42 samcv ✔️️
11:56 jnthn samcv: We won't ever get collisions between codepoint and seq by making them case-insensitive?
11:56 samcv no we shouldn't
11:57 samcv and if we do. then that is fine because we check codepoint first
11:57 samcv which are more canonical
11:57 samcv than the emoji ones. but i don't expect the emoji to ever change
11:57 samcv oh i don't know if i put in the comment of the thing
11:58 samcv that i strip the commas
11:58 * samcv checks
11:59 samcv nope. i forget which standard has the commas which is what we follow.
11:59 samcv it was like ISO something probably
12:00 timotimo an ISO standard about unicode sequences? o_O
12:01 samcv no
12:01 samcv not sequpences
12:01 samcv m: say "\c[BOY, GIRL]"
12:01 camelia rakudo-moar 483e4f: OUTPUT«👦👧␤»
12:01 samcv that just is those two codepoints after each other
12:01 timotimo oh!
12:01 samcv neat huh
12:01 * samcv needs to finally write a unicode page for the docs...
12:03 jnthn Reviewed it.
12:03 timotimo docs are rolling-release, our unicode stuff gets pushed to users with every release, so you can do docs stuff whenver you want :)
12:04 samcv jnthn, yeah i had noticed that too, will make that change
12:05 samcv timotimo, :)
12:05 samcv but if the users don't know what they can use, is that not the same thing :P
12:05 timotimo that's a good point
12:05 timotimo you can write the docs whenever you want and merge it as a pull-request when the release happens
12:06 jnthn lunch &
12:06 samcv hah
12:06 timotimo maybe we should at some point start building multiple versions of the docs page. one for the latest star, one for the latest release, one for blead?
12:06 timotimo of course we'd need some good tooling to make that possible
12:06 samcv but yeah i wanted to wait until i had case insensitive working before adding to docs ( at least for emoji seq.) also wanted to add the NamedSequences.txt
12:06 timotimo i'm not volunteering, just wondering if it'd be useful
12:06 samcv so it was uniform
12:06 samcv hmm
12:10 samcv also jnthn some of the unicode emoji names have diacritics
12:11 timotimo AFKBBIAB
12:11 samcv so how does that work for uhm. are those hash keys accessible?
12:11 samcv or do i need to do weird stuff.
12:11 lizmat jnthn: new fail more in HARNESS_TYPE=6:   moar(78463,0x70000dff4000) malloc: *** error for object 0x16: pointer being freed was not allocated
12:11 lizmat *** set a breakpoint in malloc_error_break to debug
12:39 pyrimidine joined #moarvm
12:41 samcv jnthn, updated the PR
12:42 samcv i am only changing case inside the MVM_unicode_string_from_name function then just pass that string onto MVM_unicode_lookup_by_name.
12:43 lizmat jnthn: good news: looks like that new fail is the only type of fail left in HARNESS_TYPE=6
12:43 lizmat jnthn: bad news, it appears to happen about 1 in 3 times :-(
12:44 samcv lizmat, how do i use harness6 by itself?
12:44 lizmat what do you mean: by itself?
12:44 samcv uhm
12:44 samcv prove has its own thing
12:45 lizmat HARNESS_TYPE=6 make spectest
12:45 lizmat that's the thing
12:45 lizmat HARNESS_TYPE=5 is the default
12:45 samcv how do i use the harness6 for things other than doing spectest?
12:46 lizmat not sure...  haven't looked into what "make spectest" does exactly  :-)
12:46 samcv XD
12:46 lizmat not for a while anyway  :-)
12:47 brrt that's the hallmark of good tools :-)
12:47 samcv m-testable t/spectest.data
12:48 samcv err
12:49 samcv this is just like
12:49 samcv a web of things they refer to each other in the Makefile
12:49 jnthn It does bottom out eventually ;)
12:49 samcv one can never be truely sure
12:49 jnthn And once I fiugred out what it was doing it basically made sense :)
12:49 samcv what does it do? "something that makes sense you you figure it out"
12:49 jnthn lizmat: Hm, you get that one in three times? That's...a far better hit rate than I can get on Linux
12:50 jnthn lizmat: nwc10++ got me some ASAN reports; I need to analyze them further
12:51 jnthn lizmat: I may request a shell acocunt at some point to see if osx's malloc_history thingy can tell us something more valuable.
12:51 lizmat ok, will stop testing / reporting  :-)
12:51 jnthn Since it works a bit differently to ASAN etc.
12:51 lizmat 🛑 # the joys of suggestions on the touch bar
12:51 jnthn But yeah, I can't get it to explode as much as 1 in 3 times so....
12:52 jnthn Anyway, will focus on my await refactors for the moment
12:53 jnthn Well, after reviewing samcv++'s PR updates
12:53 lizmat await refactors++  :-)
12:53 samcv i'm awaiting those
13:06 samcv spectest also pass for the latest changes as well
13:07 jnthn Nice
13:15 Geth MoarVM: 2544eb5302 | (Samantha McVey)++ | 4 files
13:15 Geth MoarVM: Make getting Uni seq/cp's case insensitive and add seq from NamedSequences.txt
13:15 Geth MoarVM:
13:15 Geth MoarVM: This makes looking up codepoints or sequences by name case insensitive. We store them
13:15 Geth MoarVM: all in uppercase when generating the Unicode database and then uppercase any requests we
13:15 Geth MoarVM: receive before trying to look them up.
13:15 Geth MoarVM:
13:15 Geth MoarVM: This also adds the sequences from NamedSequences.txt, previously only the Emoji Sequences
13:15 Geth MoarVM: <…commit message has 5 more lines…>
13:15 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2544eb5302
13:15 Geth MoarVM: 50c87ce257 | (Samantha McVey)++ | src/strings/unicode_ops.c
13:15 Geth MoarVM: Avoid changing the case twice for codepoint lookup
13:15 Geth MoarVM:
13:15 Geth MoarVM: This keeps MVM_unicode_lookup_by_name case insensitive, passing the uppercase string
13:16 Geth MoarVM: to MVM_unicode_lookup_by_name. Also fixes a GC issue with the last commit.
13:16 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/50c87ce257
13:16 Geth MoarVM: 4aab50646e | (Jonathan Worthington)++ | 4 files
13:16 Geth MoarVM: Merge pull request #511 from samcv/NamedSequences
13:16 Geth MoarVM:
13:16 Geth MoarVM: Make getting Uni seq/cp's case insensitive and add seq from NamedSequences.txt
13:16 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4aab50646e
13:16 samcv \o/
13:18 * samcv just added a new alias to terminal so she can see which commits were actually merged with MoarVM/inactivate-async-tasks
13:19 samcv gitmlog: aliased to git log $(git merge-base --octopus $(git log --merges --pretty=format:%P)).. --boundary --graph --pretty=oneline --abbrev-commit
13:19 samcv heh
13:24 pyrimidine joined #moarvm
13:32 [Coke] (making \c[] case insensitive) unicode won't ever give us a conflict there?
13:33 * [Coke] hopes that's not a dupe question.
13:33 jnthn hehe, I asked that earlier today ;)
13:33 samcv nope
13:33 [Coke] thanks. :)
13:33 samcv all the canonical won't ever change are uppercase and ascii only. the emoji are much less restrictive
13:33 samcv since they're like a seperate thing (parts of it)
13:34 samcv so we don't have to support those if we want to say we support all of unicode or whatnever
13:34 [Coke] # since they seperate seperate named items ?
13:34 [Coke] (that is a plausible sentence but felt worth checking on it)
13:40 samcv what?
13:40 samcv oh uhm.
13:41 samcv is that refering to: since they're like a seperate thing (parts of it)
13:41 samcv ?
13:42 [Coke] it's a comment in the commit.
13:43 [Coke] https://github.com/MoarVM/MoarVM/blob/4aab50646e6d605b733723687112a52a9b0ca19b/tools/ucd2c.pl#L1110
13:43 samcv oh
13:45 samcv should be 'separate named codepoints which are immediately adjacent to each other' or something like that
13:45 samcv m: "#,".uninames
13:45 camelia rakudo-moar 483e4f: ( no output )
13:45 samcv m: "#,".uninames.say
13:45 camelia rakudo-moar 483e4f: OUTPUT«(NUMBER SIGN COMMA)␤»
13:45 samcv so that would be NUMBER SIGN, COMMA
13:45 samcv for example in this notation
13:46 samcv i wasn't sure how to word it because we allow doing that for sequences or codepoints
13:47 samcv i mean the commas have nothing to do with sequences, just
13:47 samcv they separate the names, for use in denoting codepoints one after each other
13:48 samcv i need to go to bed. night all o/
13:50 jnthn 'night, samcv
14:46 pyrimidine joined #moarvm
15:03 pyrimidine joined #moarvm
15:12 lizmat joined #moarvm
15:22 pyrimidine joined #moarvm
16:04 pyrimidine joined #moarvm
16:26 brrt joined #moarvm
16:27 pyrimidine joined #moarvm
16:34 pyrimidine joined #moarvm
17:13 pyrimidine joined #moarvm
17:34 pyrimidine joined #moarvm
18:15 domidumont joined #moarvm
18:34 pyrimidine joined #moarvm
18:40 cale2 joined #moarvm
18:41 cale2 Hey all
18:42 cale2 I was looking up what makes MoarVM unique from other VMs
18:42 cale2 I see references to 6model object model, but no explanation of what that is or how it is different
18:44 brokenchicken It's Perl 6's object model
18:47 cale2 brokenchicken: And the difference between P6's object model and Java's object model is the meta-objects, sort of like prototypal object systems like JS
18:49 brokenchicken cale2: there are slides: http://jnthn.net/papers/2013-yapceu-moarvm.pdf
19:01 jnthn It does strings at grapheme level, which is unique so far as I'm aware
19:02 jnthn And yeah, the 6model approach to things, including representation poly, is notable.
19:04 jnthn Besides that, there aren't really that many things that MoarVM is doing that nobody else is, but the combination of the things it does (that is, precisely the set that Perl 6 needs) is.
19:04 cale2 It says that MoarVM passes more tests than any other VM but some VMs pass tests that Moar does not
19:04 cale2 Why would that be?
19:05 jnthn I'm curious how true that actually is by now :)
19:05 geekosaur jvm has been around longer, you'd figure it has things fully implemented that are still work in progress
19:05 geekosaur (in moarvm)
19:06 geekosaur that said, the things it does are often not a good fit for perl 6, so the cases when jvm can leverage being more mature are rare
19:07 jnthn I guess there probably somewhere is a Perl 6 spectest fudged on MoarVM and not on JVM but it must be a rarity.
19:10 jnthn MoarVM hasn't really been a "make some futuristic VM doing things nobody else is", though. It was more "do the kind of things that modern VMs do that Perl 6 can benefit from"
19:10 timotimo we just have to put in more unicode tests
19:11 jnthn And along the way "do things that Perl 6 needs really well"
19:11 jnthn (Thus why we have 6model as the VMs native object system, and strings at grapheme level)
19:11 geekosaur true, but it can't be done in "click these two pieces together and they just work" either
19:13 jnthn Yes, things have a habbit of interescting in interesting, and sometimes surprising, ways. :)
19:14 pyrimidine joined #moarvm
19:16 jnthn Thus why loose coupling is a battle constantly worth fighting in VM architecture. :)
19:17 * jnthn was quite relieved today when taking a continuation on one thread and invoking it on another Just Worked.
19:17 jnthn Had always presumed it should work out, but didn't ever try it until today.
19:24 domidumont joined #moarvm
19:34 pyrimidine joined #moarvm
20:14 FROGGS joined #moarvm
20:15 pyrimidine joined #moarvm
20:52 pyrimidine joined #moarvm
21:54 pyrimidine joined #moarvm
22:08 sivoais joined #moarvm
22:11 timotimo samcv: unicode.pod6 doesn't parse :(
22:12 timotimo ah, i see.
22:13 timotimo fixed it
22:15 timotimo c:\projects\rakudo\nqp\moarvm\src\core/frame.h(196) : error C2375: 'MVM_frame_destroy' : redefinition; different linkage
22:15 timotimo c:\projects\rakudo\nqp\moarvm\src\core/frame.h(181) : see declaration of 'MVM_frame_destroy'
22:15 timotimo o_O
22:16 timotimo yeah, there's two of them and one is marked MVM_PUBLIC
22:16 timotimo may have something to do with destory vs destroy?
22:19 Geth MoarVM: 357438a99c | (Timo Paulssen)++ | src/core/frame.h
22:19 Geth MoarVM: remove second declaration of MVM_frame_destroy
22:19 Geth MoarVM:
22:19 Geth MoarVM: seems like msvc (at least the one used on appveyor) didn't
22:19 Geth MoarVM: like this. Perhaps it was a left-over from typo-ing destroy
22:19 Geth MoarVM: as destory a few lines below.
22:19 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/357438a99c
22:38 jnthn samcv: I've given you a MoarVM commit bit, for your convenience. :) Feel free to commit small/uncontroversial things (like typos, warnings removal, build fixes) directly to master; also to merge pull requests from others that you're comfortable reviewing and comfortable are correct/good. For non-trivial changes, please do PRs (as I'm encouraging everyone here to do, me included).
22:38 jnthn (This I guess allows you to work in branches in the MoarVM repo too, which I guess will simplify workflow a bit.)
22:49 zakharyas joined #moarvm
23:10 geekosaur joined #moarvm
23:19 diakopter samcv++
23:19 yoleaux2 13:38Z <brokenchicken> diakopter: 💩  💩  💩
23:19 diakopter brokenchicken: lolz
23:21 samcv thanks jnthn :)
23:23 samcv will make sure not to rm *; git init; git touch 'moarvm'; git add .; git commit; git set remote origin git@github.com:MoarVM/MoarVM.git; git push --force
23:24 samcv heh tho github prolly has settings to stop people from doing that right?
23:24 samcv i'm not sure
23:24 samcv i know at least gitlab won't let you do that to a protected branch, which is master by default
23:25 samcv timotimo, thanks for fixing unicode.pod6
23:26 jnthn :)
23:27 jnthn I've no idea if it's protected
23:27 jnthn Given a bunch of people have checkouts with full history, though... :)
23:28 samcv yeah hah
23:28 samcv like loads
23:30 timotimo sure thing
23:30 MasterDuke what is this line doing, `zbase = zbase * radix;`? https://github.com/MoarVM/MoarVM/blob/master/src/core/coerce.c#L395
23:48 jnthn 'night, '#moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary