Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-02-11

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

All times shown according to UTC.

Time Nick Message
00:06 pyrimidine joined #moarvm
01:24 pyrimidine joined #moarvm
01:36 pyrimidine joined #moarvm
02:33 Geth ¦ MoarVM: jeffythedragonslayer++ created pull request #532: VMArray2
02:33 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/532
02:40 MasterDuke huh, i tried changing Parameter's $!flags to an int32, but the heap profile shows the exact same total bytes
02:41 samcv MasterDuke, still storing it in a 64bit int i guess
02:41 samcv that sort of makes sense
02:41 samcv well. sometimes. not really if you store a huge number of them. then you may be unhappy
02:43 MasterDuke well, `perl6 -e 'my int @a[10_000_000]'` shows a higher max resident  than `perl6 -e 'my int32 @a[10_000_000]'`
02:46 MasterDuke so i assume it's actually using something smaller for int32
02:49 samcv constant @array = 'foo', 'bar'; hopefully the compilier will replace @array[0] with 'foo' in the code then?
02:50 samcv hm
02:52 samcv i'm happy with how much faster i've gotten UCD-gen.p6
02:53 samcv down to 5 minutes i think
02:55 MasterDuke do you have it online somewhere?
02:57 samcv yeah
02:57 samcv https://github.com/samcv/UCD
02:57 samcv give me a few min and i'll commit the last of my optimizations
02:57 samcv i would run it with --nonames so it doesn't make the base40 names
02:58 samcv since that will take like 5 minutes to do currently since it's not very optimized
02:59 samcv err it's 5 minutes if you don't generate the names i mean
03:00 MasterDuke btw, is github now using your highlighting?
03:00 samcv yep
03:00 samcv been that way for a few weeks
03:01 samcv still need to sort out some bugs with the code that makes the point index though
03:02 MasterDuke `my $long-pvalue`, it's highlighting `long`
03:02 samcv well generates the point index if else's
03:02 samcv hmm i don't see that on my end
03:02 samcv on which file
03:03 samcv ok it takes 217.0865949 seconds without making the names now :)
03:03 samcv \o/
03:03 samcv hopefully didn't break anything
03:05 MasterDuke UCD-gen.p6
03:06 samcv link
03:08 MasterDuke https://github.com/samcv/UCD/blob/master/UCD-gen.p6#L139
03:09 samcv yeah it's fine in Atom for me. that's weird
03:10 samcv everything is highlighted weird tbh
03:20 samcv MasterDuke, ok just pushed latest verison
03:30 pyrimidine joined #moarvm
03:32 MasterDuke whoops. `MoarVM panic: Internal error: invalid thread ID 1256009152 in GC work pass`
03:32 agentzh joined #moarvm
03:36 pyrimidi_ joined #moarvm
03:45 samcv uh oh
03:45 samcv on my program?
03:50 MasterDuke yeah, while profiling. works fine without
03:52 MasterDuke hm, may still have a stray change in my build, let me clear all that out
04:04 MasterDuke huh, worked now
04:39 samcv need to make the base 40 name thing go faster
04:40 samcv you can do --namesonly if you want only building the names btw
04:40 samcv err --names-only
04:46 samcv argh i broke something. oh well it was already kinda broken before but. less broken
05:03 samcv MasterDuke, oh looks like i used .end instead of tail. hah. no wonder it screwed it up
05:03 MasterDuke close, but no cigar
05:04 MasterDuke and i'm outta here, later...
05:04 samcv byby
05:35 pyrimidine joined #moarvm
05:52 Guest34565 joined #moarvm
07:10 pyrimidine joined #moarvm
07:35 pyrimidine joined #moarvm
08:30 agentzh joined #moarvm
08:36 pyrimidine joined #moarvm
09:37 pyrimidine joined #moarvm
10:33 agentzh joined #moarvm
11:09 patrickz joined #moarvm
11:24 timotimo MasterDuke: p6opaque is still subject to the same aligning rules as C structs, so maybe you put the int32 in front of a pointer and that made it put padding in between?
11:42 FROGGS joined #moarvm
11:49 samcv timotimo, what do you think about unicmp_s having two options for the collation_level on negative one positive
11:50 samcv so you could sort normally except have capitals first or something
11:50 samcv instead of after lowercase
11:50 samcv unicmp_s(a, b, neg_collation, collation, country, language)
11:50 samcv well language comes before country but
11:51 timotimo sounds fine to me, but changing that with bootstrap and everything is a bit annoying :)
11:51 samcv for sure
11:51 timotimo unicmp hasn't been out in a user-facing release yet, right?
11:51 samcv nope
11:52 timotimo mhm
11:52 samcv unless you have some way to do it with one integer that's not insane
11:52 timotimo well, there's an idea
11:53 timotimo i mean here:
11:53 samcv could have 1 and 2 be primary and 4 and 8 be secondary, and 16 and 32 be tertiary
11:53 timotimo we can turn the op binding for unicmp_s into a smarter thing in the QASTOperationsMAST
11:53 samcv but that makes it less easy
11:53 samcv smarter?
11:53 timotimo that introspects whether it has 5 or 6 arguments and inserts a dummy 0 in there
11:53 timotimo yeah, you can put a piece of code in, too
11:53 samcv hm
11:54 timotimo many examples in there
11:54 samcv good thing i introduced the op and gave me more time to play with it and use it
11:54 timotimo :)
11:54 samcv and rereading unicode page, it talks a lot about it being configurable
11:55 timotimo anyway, that way would allow us to only use the one-way unicmp inside nqp and negative-able unicmp in rakudo
11:55 samcv why not use negative-able in both
11:55 samcv i mean no reason not to
11:55 timotimo have to build another stage0
11:56 samcv yeah
11:56 timotimo i claim that stage0s are the main contributor to nqp's repo size
11:56 samcv i mean we can do QAST too
11:56 samcv yeah i will look at that i guess sometime when i have time
11:56 samcv and also gave up on returning differnt values based on where it broke the tie
11:57 samcv and making sure we have a 4th level configurable as well
12:04 samcv i gotta go to bed. night!
12:05 timotimo gnite!
12:05 samcv oh and i also need to set these modes too http://unicode.org/reports/tr10/#Comparison_Variable_Table
12:06 samcv so more to think about lol
12:06 timotimo we'll basically do all the things forever
12:06 samcv lol
12:06 samcv those extra things make it all more complicated lol. so that will be the last thing i do, but making up a way to set it should be good
12:07 samcv i will dream about api implementation
12:07 timotimo that sounds pretty terrible, actually %)
12:37 agentzh joined #moarvm
12:39 * timotimo added stats about each thread's gen2 to the vmhealth readout
12:39 timotimo it's a whole lotta text now
12:44 dogbert17 timotimo: cool, have you noticed anything interesting/suspicious with you new branch?
12:45 * dogbert17 notices that running htmlify.p6 with --parallel almost works now, almost got to the end this time before bugging out
12:46 timotimo nothing interesting so far
12:46 timotimo but i also never tried it on anything serious
12:46 timotimo my test program is a vidya game :)
12:46 dogbert17 cool
12:50 timotimo jnthn: it doesn't seem like you got everything when you pulled perl6-bench; the split_string_regex microbenchmark still has the bug that i fixed on the 8th
12:51 timotimo wednesday, that is
12:55 nine ~
12:55 yoleaux2 10 Feb 2017 05:51Z <llfourn> nine: I'm not 100%. But I've been looking at some of your commits from around lexical use time. It looks like you had to work around something similar with 'use': https://github.com/rakudo/rakudo/commit/85d8b14278f860071e70ec6e53ba699af607897c. That sounds to me like exactly what is happening with require atm, except in INDIRECT_NAME_LOOKUP in operators.pm rahter than .find_symbol in World.
12:55 nine Any hints for debugging "SC not yet resolved; lookup failed"? As I'm working on precomp-singleprocess-resurrection, I'm quite sure it's an object from the main program escaping into the to be precompiled comp unit. So is there wa way to catch that?
12:59 timotimo i'd have to look at the moar sourcecode
12:59 timotimo can you figure out which of the ~four ones it is that explodes in your face?
12:59 timotimo it's five instances
12:59 nine MVM_sc_get_sc_object
13:00 timotimo sounds like you're not loading SCs in the right order?
13:01 nine But how could that be if the only thing the branch changed is running the perl 6 compiler in-process using evalfiles?
13:02 jnthn I think if you can breakpoint it under the debugger you might be able to figure out the handle/description of the SC it's trying to resolve, which may provide a clue
13:06 nine That's...odd dep is 0 and it blows up in the comp unit's dependencies+deserialize. One would think that at that point the first SC would be readily available?
13:07 timotimo it might also be interesting to get a moar bytecode backtrace
13:07 timotimo "call MVM_dump_backtrace(tc)"
13:08 pyrimidi_ joined #moarvm
13:08 jnthn iirc, dependencies+deserialize very early on creates the SC
13:08 jnthn In the code it produces
13:08 jnthn At least, for the precomp case
13:09 timotimo maybe we can see in what SCs we're already deserializing or something?
13:09 jnthn I wonder if there's some unfortunate assumptions going on here
13:09 timotimo like, do we see a piece of the dependency graph projected onto our call stack?
13:10 jnthn I think when we know we're not precomping, then we don't spit out any SC setup/deserialize code because we already have the SC in memory
13:10 nine There are a lot of calls to MVM_sc_get_sc
13:10 timotimo try to breakpoin tonly the panic
13:10 timotimo er, the throw_adhoc
13:11 nine Did so before. Then I thought it would be interesting to be able to look closer at MVM_sc_get_sc itself. But that's just wasting time :)
13:11 timotimo ah
13:12 nine MoarVM's backtrace at MVM_exception_throw_adhoc is even a bit shorter than the one from --ll-exception
13:13 timotimo hmm
13:17 MasterDuke in src/Perl6/Metamodel/BOOTSTRAP.nqp, how would i scalary_attr() a str array? e.g., to turn `List @named_names` into `str @named_names`?
13:18 MasterDuke *heh. scalar_attr()
13:18 nine I clearly see cu->body.scs_to_resolve[0]->sc being NULL there
13:33 nine From MoarVM's perspective there shouldn't be any difference between a calling perl6 --target=mbc and a Perl 6 program running the compiler with :target<mbc> when generating the bytecode file, shouldn't there?
14:01 nine Now look at this! This is a moar dump of a minimal module on nom: https://gist.github.com/niner/0e32037010b7d31bd7443f4fd803162c and a dump of the same module on precomp-singleprocess: https://gist.github.com/niner/6c10d50c641a0d42104d30b5cd99dff5
14:02 nine They should be virtually identical except for maybe the cuids. But they clearly aren't. There are lot's of differences including loads of bytecode diffs in dependencies+deserialize
14:03 MasterDuke heh. `SC_2 : AC32ABF7F7462E14EE588B2D0A6062A1B512D6D1` missing from the second. seems like that might be important
14:05 nine And in the branch, Frame_4 is never called independencies+deserialize and Frame_5 is completely missing.
14:10 nine Ooooh...maybe it thinks it's doing nested compilation. Which is sort of is to be frank. QASTCompilerMAST would in that case for example not write the call to the repo_conflict_resolver which is suspicioulsy absent from the second mbc file
14:12 colomon joined #moarvm
14:23 nine Except that it doesn't
14:29 nine Oh, it's the other part of the condition. The compiler just doesn't know that it's in precompilation mode!
14:33 nine Aah, --target only turns on precomp mode if it's actually passed on a command line evalfiles won't do it for us.
14:41 nine And with that, the precomp files have become virtually identical :) On to the next issue...
14:54 IOninja This one's good to merge now methinks: https://github.com/MoarVM/MoarVM/pull/528
14:54 IOninja works for me
14:55 Geth ¦ MoarVM: nanis++ created pull request #534: Issue #533: MoarVM does not build on `cygwin`.
14:55 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/534
15:06 Geth ¦ MoarVM: 8c2c627ca5 | (A. Sinan Unur)++ | Configure.pl
15:06 Geth ¦ MoarVM: Issue #533: MoarVM does not build on `cygwin`.
15:06 Geth ¦ MoarVM:
15:06 Geth ¦ MoarVM: Remove mention of `cygwin` support from `Configure.pl`.
15:06 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8c2c627ca5
15:06 Geth ¦ MoarVM: 7ff91dbbed | (Jonathan Worthington)++ | Configure.pl
15:06 Geth ¦ MoarVM: Merge pull request #534 from nanis/nanis-nocygwin
15:06 Geth ¦ MoarVM:
15:06 Geth ¦ MoarVM: Issue #533: MoarVM does not build on `cygwin`.
15:06 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7ff91dbbed
15:16 jnthn IOninja: Needs one small tweak; commented on it. But otherwise, yes, looks like we can merge soon :)
15:18 MasterDuke jnthn, IOninja: any idea about my BOOTSTRAP.nqp and scalar_attr() question? i've tried a couple things, but haven't figured it out yet
15:19 * IOninja doesn't know
15:20 jnthn Is that List even correct?
15:20 jnthn I don't think we store those as a high-level List
15:20 jnthn I suspect that being scalar_attr is bogus
15:21 jnthn Or if we do it should just be typed Mu since it holds a low-level thing
15:23 MasterDuke i was a little surprised it worked when i tried that (making them List) a while ago
15:25 jnthn Well, it doens't mean anything when we just bind what we want there anyway :)
15:28 MasterDuke yeah. but it does complain `P6opaque: representation mismatch when storing value (of type NQPArray) to attribute (of type str)` if i make it `str`. not surprising in that case
15:30 jnthn No, 'cus an an array of str is not a str :)
15:32 MasterDuke which is reasonable. but is there a way to say it's supposed to be an array of str?
15:33 jnthn Only looking at what we bind there
15:34 jnthn https://github.com/rakudo/rakudo/blob/nom/src/Perl6/World.nqp#L1888
15:35 jnthn But what is that...
15:35 jnthn https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L4996
15:35 jnthn Seems a boxed Str array
15:35 jnthn Not a native str array
15:36 jnthn So yeah, there's a change to save some boxes there :)
15:36 jnthn *chance
15:38 MasterDuke i also forgot that nqp doesn't support typed arrays
15:38 jnthn Yes and no
15:39 jnthn You can do it
15:39 jnthn With NQP ops
15:39 jnthn nqp::list_s() to create a str array
15:39 jnthn And then nqp::push_s, nqp::atpos_s, nqp::bindpos_s to access it
15:39 MasterDuke ah, right
15:44 timotimo did we use to be better at while_empty than perl5?
15:45 timotimo hm, maybe it really was only the native case
15:45 timotimo i thought our int2str_concat was only shaped downwards like that a long time ago, but it was improved when we got ropes? but now it's getting slower and slower the more work we pile on it
15:54 nine Serialization Error: reference to context outside of SC
15:54 nine Now this ^^^ sounds very much like a leaky roof of the precompiler
15:58 Geth ¦ MoarVM/vmhealth: 60377d1d17 | (Timo Paulssen)++ | 3 files
15:58 Geth ¦ MoarVM/vmhealth: also report page counts and free items in thread's gen2
15:58 Geth ¦ MoarVM/vmhealth: review: https://github.com/MoarVM/MoarVM/commit/60377d1d17
16:00 timotimo wowza, i have a playable framerate in my shooter game when run with valgrind!
16:00 timotimo (though the vmhealth reports make very noticable dents in performance each time)
16:03 timotimo http://imgur.com/a/FJiDY
16:03 timotimo quite bumpy
16:05 timotimo *fascinating*, when i move my mouse, it makes it just slow enough to come to a complete standstill as long as the cursor's moving
16:07 lucasb joined #moarvm
16:07 nine The above "reference to context outside of SC" happens in serialize_closure which makes me believe that it's about my $*ADD-DEPENDENCY = -> $dependency { @dependencies.push: $dependency };
16:07 nine Now how can I have the precompiler communicate dependencies to the caller without leaving any references to objects outside the precompiler in there?
16:09 lucasb good saturday to everybody
16:10 lucasb about the representation renaming pull request, I made a list of the representation names vs. filenames vs. id names
16:10 lucasb https://gist.github.com/anonymous/cb09e405452c8370fd682fc6512dae6b
16:11 lucasb from there, you can spot that the different ones are Null/MVMNull and AsyncTask/MVMAsyncTask
16:11 nine What do you people think about me calling the compilation steps directly, so I can ask the compiler about those dependencies before going into the mbc stage?
16:12 timotimo write it to a file :D
16:13 nine timotimo: or or or maybe to STDOUT?
16:13 timotimo that'd be a possibility
16:13 timotimo STDOUT is a file, too :P
16:14 nine I guess it could run into deadlocks with a full buffer, but that'd probably only hit jnthn ;)
16:14 nine .oO( successfully circlified )
16:14 timotimo knowing his luck, yeah
16:14 timotimo fwiw, our std file handles are being set to async by libuv anyway
16:15 timotimo so it's more probable that data just gets lost :D
16:15 nine For those who weren't tuned in at the time: jnthn running into the buffer issue prompted me to take another look at in-process precompilation in the first place ;)
16:15 timotimo i think we have an op that clears the sc from an object
16:15 timotimo if you pass native strings, it could be possible to detach it properly
16:16 timotimo though it could be that that clearing op properly clears whole object graphs
16:16 timotimo though of course it mustn't go through to, like, Int or something
16:16 timotimo *shrug*
16:17 timotimo *sigh*, the pushme benchmark does something different in rakudo vs nqp and perl5
16:17 nine I'll give the "ask, don't tell" thing a try. Would be nice to be able to use more than just basic strings for communication
16:17 timotimo froggs used to use that op to put whole json-like structures into files, iirc
16:17 timotimo so maybe you can do stuff like that
16:19 lucasb also, the other inconsistent name is MVM_REPR_ID_MVMNativeCall
16:19 lucasb jnthn, IOninja: so, my questions are:
16:19 lucasb should the filenames and ids of representations VMArray, VMException, VMHash, VMIter, VMThread be renamed to remove MVM?
16:19 lucasb should the repr ids of the CThings be renamed to remove the MVM from the name?  (eg. MVM_REPR_ID_MVMCArray -> MVM_REPR_ID_CArray)
16:19 lucasb should those inconsistent names be renamed? (NativeCall,Null,AsyncTask)
16:20 * IOninja doesn't know
16:20 lucasb IOninja: ok :) I just wanted to keep you on the loop
16:20 timotimo oh, that benchmark is fixed in a newer version than jnthn is running on his machine
16:23 lucasb IOninja: BTW, thanks for fixing the empty itemized list thing
16:24 nine Ooh... nqp::getcomp("perl6") will always return the same compiler object. So using that to compile a different module can quite possibly screw up the current compilation.
16:24 timotimo oh
16:25 timotimo right, we put some stuff in the one instance we have
16:25 timotimo like the commandline arguments, right?
16:25 timotimo though i'm not sure the compiler actually holds any state while it's compiling?
16:25 timotimo i mean, apart from stuff on the stack via dynvars and such
16:29 nine I don't know. And it makes me nervous. There's e.g. $!save_ctx
16:29 timotimo ooh
16:30 timotimo jnthn: i think you'll have to regenerate the perl5 results for perl6-bench to become happy, since now you're technically running the new perl6 and nqp benchmarks vs the old perl5 benchmarks, even though only the perl6 portions have changed, and i'm not sure how that changes what the graphs look like
16:31 Geth ¦ MoarVM/master: 12 commits pushed by (A. Sinan Unur)++, (Jonathan Worthington)++
16:31 Geth ¦ MoarVM/master: review: https://github.com/MoarVM/MoarVM/compare/7ff91dbbed...685af60a7b
16:33 jnthn Merged #528; nanis++
16:33 timotimo fantastic
16:33 jnthn timotimo: Hm, will take a look at that a little later on :)
16:34 timotimo that's why it says "perl6-bench version 0029b74, ea2a4d0" at the top of the results
16:35 pyrimidine joined #moarvm
16:39 agentzh joined #moarvm
16:52 TimToady jnthn: so if I get an error like "Missing serialize REPR function for REPR MVMContext (BOOTContext)", is that something that means there's just a missing function, or does it mean I've let some value through to the serializer that should never get there?
17:01 timotimo there are things that we never want to have hit the serialization stage
17:01 timotimo i forgot what Context is all about, though
17:08 TimToady it's about lexical scopes
17:09 TimToady which you'd think is something you want to remember...
17:09 TimToady but maybe the problem is that it's a BOOTContext?
17:09 timotimo is it about closures? because i thought lexical scopes was done with "outer" pointers in static frames
17:10 timotimo i assume searching irclog for "missing serialize" + MVMContext might find you something
17:11 TimToady well, I'll figure it out eventually, but can't really hack today, so I just thought I'd ask to see if it set off any sirens :)
17:11 timotimo that's fair
17:12 TimToady anyway, I think contexts are what you use to navigate all the various PseudoStashes
17:14 TimToady and since some grammars are actual objects that could have attributes, I'm trying to track the current language as an object, not just as a type
17:14 timotimo ah
17:14 TimToady but I suspect something related to that is feeding a $!ctx to the serializer somewhere
17:26 jnthn Sorry, was busy in the kitchen :)
17:27 jnthn MVMContext shows up when we do PseudoStashes or the equivalent
17:27 timotimo good to know
17:27 timotimo is there already a comment for that btw? :)
17:27 jnthn Comment where? :)
17:27 jnthn I suspect we probably can make them serializable
17:28 jnthn But it's at least a warning sign of a change unexpectedly makes us need to do so.
17:39 MasterDuke jnthn: i've been making the stuff here https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L4996 an nqp::list_s(), but don't see any difference in the Parameter total bytes after a heap profile
17:40 MasterDuke so would it be correct to assume i'm doing something wrong i.e., if i was doing it correctly the total bytes would definitely be less?
17:41 jnthn MasterDuke: It won't make a difference to Parameter, itself, because Parameter points to the array, which is a separate object
17:41 jnthn MasterDuke: If you look at summary, however, that should show a decrease
17:42 jnthn And you can use count type="P6Str" or so
17:42 jnthn And should see less boxes
17:42 MasterDuke ahh, thanks
17:47 MasterDuke BOOTStr?
17:54 jnthn Oh, or that, yes :)
17:54 jnthn d'oh
17:54 jnthn Sorry, P6str is the REPR name
17:54 jnthn count repr="P6str"
17:54 jnthn But count type="BOOTStr"
17:55 jnthn :)
17:56 MasterDuke heh, figured it had to be one of the things in the top 15
18:03 lizmat joined #moarvm
18:05 geekosaur joined #moarvm
19:16 lizmat joined #moarvm
19:59 samcv good * everyone
20:43 agentzh joined #moarvm
20:45 Geth ¦ MoarVM: samcv++ created pull request #535: Use utf8 for unicode_db files; Add missing #ifdef for variable initialization
20:45 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/535
20:57 agentzh joined #moarvm
22:44 pyrimidi_ joined #moarvm
22:45 Geth ¦ MoarVM: e197d97077 | (Samantha McVey)++ | src/core/fixedsizealloc.c
22:45 Geth ¦ MoarVM: Add missing #ifdef for variable initialization
22:45 Geth ¦ MoarVM:
22:45 Geth ¦ MoarVM: This variable is unused except when #ifdef is true, so have an #ifdef for
22:45 Geth ¦ MoarVM: the initialization too.
22:45 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e197d97077
22:45 Geth ¦ MoarVM: 26a3c52695 | (Samantha McVey)++ | 3 files
22:45 Geth ¦ MoarVM: Use utf8 for unicode_db files
22:45 Geth ¦ MoarVM:
22:45 Geth ¦ MoarVM: Fixes a compiler warning from having non-UTF-8 encoded text in unicode_db.c
22:45 Geth ¦ MoarVM: Also ensures when we uppercase the Emoji sequence names, letters with diacritics
22:45 Geth ¦ MoarVM: get uppercased properly.
22:45 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/26a3c52695
22:45 Geth ¦ MoarVM: 7a7de2f51a | (Jonathan Worthington)++ | 4 files
22:45 Geth ¦ MoarVM: Merge pull request #535 from samcv/fixes
22:45 Geth ¦ MoarVM:
22:45 Geth ¦ MoarVM: Use utf8 for unicode_db files; Add missing #ifdef for variable initialization
22:45 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7a7de2f51a
22:49 MasterDuke is there a way to tell the type of an nqp::list? i've converted Parameter's @!named_names to an nqp::list_s, but now this https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTCompilerMAST.nqp#L1123 is complaining
22:49 Geth ¦ MoarVM/master: 4 commits pushed by (Jeff Linahan)++, (Jonathan Worthington)++
22:49 Geth ¦ MoarVM/master: 66fdd7168a | renamed MVMArray file and constant to VMArray
22:49 Geth ¦ MoarVM/master: 3024cfba96 | Merge branch 'master' of https://github.com/moarvm/moarvm into VMArray
22:49 Geth ¦ MoarVM/master: bf2d419da1 | renamed header file
22:49 Geth ¦ MoarVM/master: 7bd72321b0 | Merge pull request #532 from jeffythedragonslayer/VMArray2
22:49 Geth ¦ MoarVM/master: review: https://github.com/MoarVM/MoarVM/compare/7a7de2f51a...7bd72321b0
22:50 MasterDuke if i make those two array subscripts atpos_s, it fails test #60 in t/qast/01-qast.t ('declaring and using a param with multiple names works')
22:50 jnthn ah
22:51 MasterDuke it works with just an nqp::list(), but then there's no reduction in BOOTStrs
22:51 jnthn I think we only probably only want this change for the thing we store in serialization, not in the QAST tree
22:51 jnthn Yeah, though this case only shows up in a couple of cases
22:51 jnthn *places
22:52 jnthn I'd look in lower_signature in Rakudo's Actions.nqp
22:52 MasterDuke cool, thanks
22:52 jnthn In the case it spits out a fast-path for when a named parameter has exactly two names
22:52 jnthn And just copy them into a normal array
22:52 jnthn That happens really very few times
22:52 jnthn And it's not going to affect the serialization blob
22:54 MasterDuke so just make it a list_s here? https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L8121
22:56 MasterDuke or you mean in the else that currently just returns 0
22:57 jnthn I presume you already had to change 8119 just above it?
22:57 jnthn Anyway, no, I mean, something my my @copy; @copy[0] := nqp::atpos_s(@names, 0); @copy[1] := nqp::atpos_s(@names, 1); $var.named(@copy); or so
22:58 MasterDuke ah
22:59 pyrimidine joined #moarvm
22:59 MasterDuke hadn't had to change 8119, just changed all the [] to atpos
23:00 MasterDuke well, i've now changed my changes a couples times, so i don't think so, but couldn't swear to it
23:00 jnthn Hm, I@m surprised it didn't have to become nqp::atpos_s(@names, 0) there
23:01 MasterDuke oh sorry, my line #s were off. yes, that became an apos
23:06 jnthn :)
23:20 MasterDuke ok, from 15,335 BOOTStrs to 14,883. now to see how it spectests

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