github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 19 October 2013.
00:56 benabik joined
BenGoldberg .u playing card 01:36
yoleaux U+1F0A0 PLAYING CARD BACK [So] (????)
U+1F0A1 PLAYING CARD ACE OF SPADES [So] (????)
U+1F0A2 PLAYING CARD TWO OF SPADES [So] (????)
BenGoldberg timotimo: If you ever decide to rewrite your card playing program, it would be cool if you somehow made use of the unicode playing card symbols :) 01:38
TimToady see rosettacode.org/wiki/Deal_cards_for...ell#Perl_6 01:41
benabik Yes and no. Those are not common characters, so the repeated output of empty squares is less than useful. 01:45
BenGoldberg Good Point. The perl6 rosettacode example's output is basiclly a bunch of empty squares. 01:49
(To me, anyway)
TimToady works fine for me, with standard Firefox fonts 01:50
BenGoldberg On the other hand, the playing card suits, ♣♦♄♠ all look ok 01:51
TimToady what's your browser/os?
benabik Chrome/OS X
TimToady well, Google and Apple are just so old-fashioned... 01:52
BenGoldberg Chrome/XP 01:53
TimToady the cards even print fine on my terminal, and that's just, like, Linux
BenGoldberg What's the name of the font your terminal uses? 01:54
And what's the terminal, for that matter? (xterm?)
TimToady Monospace 16
gnome terminal
02:19 camelia joined
lue I can see those cards just fine everywhere. No clue which font it hails from though :) . 02:21
(you can always include a --i-cant-use-unicode-oh-woe-is-me command-line option.)
02:25 camelia joined 07:01 FROGGS joined
nwc10 nqp: say(nqp::null_s()) 08:02
camelia nqp-jvm: OUTPUT«null␤»
..nqp-moarvm: OUTPUTĀ«(signal SEGV)Ā»
..nqp-parrot: OUTPUT«␤»
nwc10 that SEGV is a feature?
masak yeah.
no.
I'm pretty sure that should not segfault.
g'ah, and now I'm tempted to deviate from $dayjob to patch it :/ 08:03
nwc10 oh, sorry
masak not your fault.
nwc10 but no-one seemed to ask the question that I asked.
masak nwc10++
I thought it just as you were writing it.
arnsholt I think segfaults are always bugs (modulo NativeCall) 08:11
masak line 26 of README.markdown doesn't work on a clean moarvm clone.
'perl Configure.pl'
needs to be 'perl Configure.pl --gen-nqp'
diakopter no.. 08:12
masak any objections to me adding the '--gen-nqp' option?
diakopter the segv is a feature until someone implements the nullpmc thing in moarvm
masak 'the nullpmc thing'?
PMCs are a thing we are borrowing from Parrot? :/ :) :( 08:13
JimmyZ github.com/MoarVM/MoarVM/issues/7
masak JimmyZ++
diakopter sorry, I forgot the new name for pmc was repr 08:15
masak diakopter: with respect, the two are not identical.
diakopter how? :) 08:17
masak PMCs are very close to OO classes.
REPRs and HOWs are (respectively) a separation-of-concerns subdivision into id and superego. 08:18
moritz afaict a REPR is a storage manager, and a PMC is an instance 08:19
masak right.
diakopter that doesn't describe any differences
JimmyZ Meta-OO vs OO
masak it does. instances are user-level, storage tends to be behind-the-scenes for most users.
you're supposed to be able to be a spiritually fulfilled Perl 6 user without ever needing to worry about REPRs. 08:20
diakopter as they're used in moar, they're essentially identical to pmcs in parrot 08:21
moritz now I'm confused 08:22
masak diakopter: I still dispute that, but until I've read up on things I'm tentatively ready to believe you.
from further down in the README.markdown, just discovered: 08:23
Note that at present, you need a working Parrot and NQP in order to run the
cross-compiler. In the future, NQP will be self-hosting on MoarVM and that
will not be needed.
hasn't that future point already occurred?
diakopter they both manage custom storage; they both implement a standard set of vtable/ops, and they both have special ops that work with only particular reprs/pmcs
08:23 donaldh joined
diakopter masak: yep the readme is br 08:24
nwc10 masak: as I understood it, "yes" and "no" - yes it can self-host, but the build setup is not yet changed to self host
masak ok.
diakopter it is
nwc10 I'm wrong?
diakopter yes
masak so the README is simply out of date? 08:25
nwc10 good. It's nice to find that the future is already here.
jnthn diakopter: Stop conflating stuff you should know better than to conflate. Representatiosn are orthogonal to type.
masak diakopter: AFAIK, PMCs never could do the compact arrays trick.
diakopter yes, bit-rottenegged
masak jnthn: oh phew.
diakopter I didnt't mention type!'
masak jnthn: I thought I was stupid or something.
jnthn diakopter: Yes, but PMCs imply types.
masak that's what I've been saying. 08:26
jnthn diakopter: That's the difference. :)
diakopter how
jnthn .HOW indeed :)
diakopter how do pmcs imply types
jnthn diakopter: VMArray is a representation. It is used for NQPArray, BOOTArray, Perl 6's Buf/Blob - none of which are related in any way through inheritance/roles/whatever
PMCs can inherit from each other and you can ask typeof on them and you get the PMC's name. 08:27
diakopter okay, but I never used them for that
it's not essential to their form 08:28
jnthn But there's no way to use ResizablePMCArray to directly be the Perl 6 buf8, for example.
So it may not be essential to their form, but it's certainly a problem for their re-use. 08:29
diakopter no, but that's another way to say "parrot doesn't have generics yet" .. the same sort of genericity could be added to rpmca 08:30
(reprs didn't always have that either) 08:31
jnthn No
You're missing the point :/
diakopter You're missing the point ? 08:32
jnthn The way Parrot wanted you to use things like RPMCA and give them methods was to subclass.
Which is a *type* relationship.
diakopter right, "you can have any HLL, just so long as it's C" 08:33
(my point is [I thought] parrot expected you to build your language's type system on top of the more base-level pmcs [as rakudo and all the others did], same as in moar, so saying that's the only way to add "methods" seems wrong) 08:36
arnsholt No, the decoupling of type and storage in 6model means that you build your own type system 08:37
jnthn Right, what arnsholt++ said.
In Parrot, it makes sense to ask if soemthing is-a RPMCA
diakopter decoupling there just means more than one layer
what you're calling "storage" is just another type system at a lower layer 08:38
arnsholt Sort of, but it's an _orthogonal_ type system
diakopter right, but that's no different than on parrot
arnsholt 6model has two dimensions where Parrot only has one 08:39
diakopter it doesn't have to be non-orthogonal on parrot either
jnthn diakopter: That's like saying "C is just like C# because C *could* have had GC!" :P 08:40
diakopter it's not
arnsholt Well, sure. But then you do what NQP/Parrot does, and ignore as much of Parrot's type system as you can and build your own inside sixmodelobject.pmc
masak I'm glad I accidentally caused this conversation. 08:41
diakopter arnsholt: my point is that all the languages on parrot do that, necessarily 08:43
arnsholt In their own way
jnthn diakopter: That's not really true, though. Many languages made PIR subclasses of PMCs, meaning that they accidentally got the methods in ResizablePMCArray whether they wanted them or not. What's more *Rakudo* started out this way too! 08:44
masak diakopter: I guess arnsholt and jnthn's point is that while you *can* say "REPRs are just PMCs", that ignores the ways in which they are *not* like PMC, and these differences are more essential than the similarities. 08:45
I mean, if you squint hard enough, inheritance is like composition, too.
diakopter I explicitly stated (very clearly I thought) the ways they're identical 08:46
masak right.
diakopter and no one contradicted those ways 08:47
masak but (from what I gather) the differences are the interesting things, and they are not just surface differences.
jnthn <diakopter> sorry, I forgot the new name for pmc was repr
masak no-one disputes there are similarities.
diakopter jnthn: you really think I was saying there are NO differences? 08:48
(that's what you're implying)
jnthn diakopter: "the new name for X is Y" tends to imply such a thing. :P
masak now ignores the discussion, as he is singularly un-interested in what diakopter thought he said :)
diakopter that's simply a nasty thing to say 08:49
masak well, the discussion was interesting when it was about the technical things.
FROGGS masak: yeah, it often starts to get boring when the copy+paste session starts
masak FROGGS: veering into the definition of things, eating its own tail.
diakopter jnthn: no, it doesn't imply that. 08:50
jnthn diakopter: Right. Clearly, you communicated comkpletely effectively and nobody found anything to disagree with. 08:51
OH WAIT
jnthn goes back to teaching
diakopter ..in the context of "let's try to give the speaker the benefit of the doubt of having sanity"
if you wanted to point out a difference other than a name, there were a billion other things you could have said 08:52
JimmyZ
.oO(REPR is the PMC container, that's the difference...)
masak JimmyZ: in the simple cases, where "container" is all there is to storage. 08:53
diakopter jnthn: I didn't/don't think I communicated completely effectively. I was trying to explain what I was trying to communicate.
JimmyZ masak: yes, storage 08:54
diakopter masak gets nasty when I try to explain things
"this is what I meant by X" "I don't give a F"
JimmyZ pmc can has method where repr can't 08:55
masak diakopter: sorry, didn't mean to be nasty to you. :) I just don't care about the "what did I really say" discussion.
diakopter: I thought the technical discussion was interesting.
diakopter masak: it's absurd that jnthn actually thought I was saying pmcs are identical to reprs in everything but name... so he shouldn't use that argument to claim that he doesn't understand hyperbole 08:59
masak: so you're saying no one is ever allowed to clarify things they've said? 09:00
masak diakopter: it gets terribly confusing when you say a thing and then 30 minutes later go "I didn't really mean *that*". meanwhile, everyone assumed you meant that, and we had an interesting discussion based on the thing you didn't mean.
when you go back to annul that original meaning, I just disengage, because I liked the conversation that actually happened.
and look, now we're just talking about words, after all. 09:01
masak disengages, hard
diakopter masak: I'm not so stupid that I would believe you were so stupid as to believe I was so stupid as to believe reprs are identical to pmcs in everything but name.... surely you knew I meant somsething by the word "effectively"
09:01 masak left
JimmyZ
.oO(I can't follow you guys ...)
09:02
diakopter maybe masak will return when he wants to be less cruel and unfair 09:04
dalek arVM: ba0bcac | masak++ | README.markdown:
update README.markdown slightly

To say that NQP has been bootstrapped on Moar.
I'm not savvy enough to update the build system and the README more than that. But likely others are.
09:08
FROGGS diakopter: pro hint: if you are more than once in a situation where you try to explain what you meant by saying something, it might point to a problem (on your side) that you sometimes can't properly state what you are thinking/meaning 09:19
ppl get you wrong from time to time, and I don't think that it is all the ppl's fault 09:20
and I hope that I am being not cruel nor unfair atm 09:21
diakopter I wasn't ever disputing or doubting that fact... I was expressing shock that no one gave me the benefit of the doubt of being a sane person when interpreting what I wrote 09:22
FROGGS maybe it would help if you say earlier how exactly you meant to say it? 09:23
just putting it in the right light early and often :o)
diakopter in fact, I did, very clearly and very explicitly. 09:24
I was annoyed that jnthn and most others seemed to not read those lines
(I said those clarifications as the very next things I said, after that original line) 09:25
FROGGS might be, but still you are often (sometimes?) in a situation where you have to explain yourself, not the others
diakopter as I said earlier, I haven't disputed or doubted that fact 09:26
JimmyZ Let's switch the topic, what about gcorch branch? 09:27
FROGGS I would suggest a rhetoric class (that is something I wanna do for at least a decade now)
diakopter I wasn't saying I was *surprised* ppl assumed I was out of my mind and spouting absurdities...
just shocked/hurt 09:28
FROGGS yeah :/
diakopter (stunned)
FROGGS stupified!
:P
diakopter well, and annoyed they ignored my initial clarifications
a rhetoric class. 09:29
I need to take a rhetoric class when people would rather assume I'm out of my mind that the possibility I was using hyperbole? 09:33
*than
seriously? 09:34
FROGGS I suggest it because you have problems saying what you really mean 09:36
diakopter surely you are kidding
FROGGS no
diakopter that is frankly laughable
FROGGS that is what I try to say: if several ppl get your sentences wrong, the odds that several ppl are to blame are not the best 09:37
diakopter I wasn't saying they are TO BLAME [as if they should logically have concluded otherwise]. I was angry they clearly don't think highly enough of me to think that I could have been exaggerating for effect. 09:39
FROGGS diakopter: that is how irc works: one says something, others take these words without taking all-there-is about that person into accoutn 09:40
account*
it is just a text chat, and the person behind the lines is not that present
but, it would be cool if we could switch the topic
it is not #moarvm related and I think we are on a dead end... 09:41
JimmyZ so how is gcorch branch going :P
FROGGS JimmyZ++ # :P
diakopter FROGGS: yes, the person who wants to have the last word gets to claim it's a dead end. wonderful.
FROGGS diakopter: can we do that somewhere else?
JimmyZ talking about economics will be never end 09:42
Different economists has different thinkings about economics 09:43
saying it metaphor
diakopter JimmyZ: yes, and many economists very plainly think that many other economists are quite thoroughly insane. 10:11
13:00 FROGGS joined 13:23 benabik joined 14:14 FROGGS joined 14:33 jnap joined 15:03 benabik joined 15:46 FROGGS joined 15:54 [Coke] left 16:43 colomon joined 18:50 rblackwe joined 19:36 lizmat joined
FROGGS jnthn: what do we do with arrays in the config? gist.github.com/FROGGS/6c57472990e...-c-L70-L77 19:36
strip them? concat them to a single string?
because nqp only can handle strings 19:37
jnthn lemme look
oh wow :) 19:38
Yeah, I think you can strip for now
FROGGS there are two others, userlibs and syslibs 19:39
jnthn oh, hmm
those sound like ones we need...
FROGGS scroll to the bottom
(all the way down)
jnthn yeah
I can imagine us needing those
I see 'em.
FROGGS yeah, problem is, that you either need the like: .join(' -l') 19:40
jnthn Well, it's just --show-config that does the wrong thing, iiuc?
FROGGS or to check that they are there, or what version they have
jnthn We can have them as arrays otherwise?
FROGGS yes
exactly
you can't dump them right now
jnthn oh my, there's a problem everywhere in here too :)
MVM_repr_bind_key_boxed(tc, config, MVM_string_ascii_decode_nt(tc, tc->instance->VMString, "cat"), (MVMObject *)MVM_string_ascii_decode_nt(tc, tc->instance->VMString, "cat")); 19:41
Just casting the MVMObject * doesn't mean you've got something that'll work out... :)
Typically it needs boxing to BOOTStr
FROGGS damn
why does it work then?
jnthn There's a MVM_repr_box_s or so that can help, from reprconv.h
FROGGS k
jnthn Good question ;-)
Lax something or other I guess 19:42
Anyway, maybe put them in as arrays and then make --show-config's loop to dump them do nqp::islist and if it's a list do something sane?
Where sane could be emitting the key several times, once for each value
or key[0]=value, key[1]=value, etc. 19:43
FROGGS hmmmm, I like that
jnthn It's a bit kinder on people parsing the text than suddenly that key again, yes :)
FROGGS awesome, thanks for the guidance! 19:45
jnthn Thanks for working on the current Rakudo on Moar blocker! :) 19:47
FROGGS gist updated: gist.github.com/FROGGS/6c57472990e44a8565d0 19:58
dalek arVM/ext: ba0bcac | masak++ | README.markdown:
update README.markdown slightly

To say that NQP has been bootstrapped on Moar.
I'm not savvy enough to update the build system and the README more than that. But likely others are.
20:04
arVM/ext: fb187a0 | jonathan++ | README.markdown:
Merge branch 'master' into ext
jnthn oh heh, didn't realize there was only that to sync wit the branch :) 20:05
dalek arVM/config: c532d6d | (Tobias Leich)++ | Configure.pl:
write arrays as "key[i]=value" elements to config.c
20:06
arVM/config: feab7d2 | (Tobias Leich)++ | nqp-cc/src/QASTOperationsMAST.nqp:
map nqp::backendconfig in nqp-cc
jnthn That MVMObject *array; at the top lof the gist looks unused?
diakopter suggests a macro for readability (even though it's generated)
dalek arVM/config: a78b6f1 | (Tobias Leich)++ | / (3 files):
rip out --cflags and --libs

Since we have nqp::backendconfig and therefore can let nqp do the hard work.
20:07
FROGGS jnthn: yeah, a left-over
jnthn I guess we're not gonna ask for this thing repeatedly so it's probably not worth caching it... 20:08
dalek arVM/config: 6ff2edd | (Tobias Leich)++ | build/config.c.in:
strip left-over pointer, pointed out by jnthn++
20:09
jnthn diakopter: yeah, it would make it readabler...will leave it up to FROGGS+ :)
*++
diakopter
.oO( /me needs to be readabler.. )
20:10
20:12 dalek joined
FROGGS MVM_HASH_BIND_CSTRING ? 20:13
there already is MVM_HASH_BIND(tc, hash, name, entry)
where entry is a register
jnthn Oh, I'd just do a #define at the top of the config.h
uh, .c
So we can do add_config_entry(tc, config, "key", "value"); 20:14
Or similar.
Or given it's file-local, just add_entry :)
20:14 jnap joined
FROGGS k 20:14
jnthn or add(...) :D
FROGGS *g*
diakopter or a(...)
FROGGS haha
diakopter <WINK>
jnthn argh :P
FROGGS diakopter: I wanted to say the same right now :P
argh() 20:15
good idea, jnthn++
diakopter (note the #define a() in bytecodedump.c) lolol
FROGGS and a "// :P" at ever line's end
that is way better 20:24
dalek arVM/config: 8b93c47 | (Tobias Leich)++ | / (2 files):
make config.c way more readable, jnthn++
20:28
jnthn diakopter++ suggested it, I just suggested names :P
FROGGS ohh
diakopter++ 20:29
overlooked the /action
dalek arVM/ext: aa87a4b | jonathan++ | src/mast/compiler.c:
Preparations for writing out extops section.
20:35
diakopter jnthn++ oooooo
diakopter tries to remember some caveat from the design conversation with jnthn/gerd 20:36
er, jnthn/benebik/gerd
er, jnthn/benabik/gerd
jnthn: btw I tried building moarvm with vs2013 rtm... seems identical,ish 20:37
also ran a profile
man-or-boy with input 18 spends 50% of time in the gc
the frame cache seems very oddly under-utilized too 20:38
jnthn Oh, I think I understand part of what's going on there
Or at least, know a potential improvement. 20:39
(on the frame cache under-util...not sure about the gc)
diakopter it was very highly utilized when I first put it in
jnthn Yeah, but that was when we had un-thread-safe and somewhat broken closure handling... :( 20:40
diakopter oh
jnthn I suspect my killing of prior_invocation (which created many worse problems) might have given us the poor frame cache utilization... 20:41
d'oh, I seem to have managed to make it a pain to emit the extops table... 20:43
jnthn goes to tweak CompUnit a little...
20:49 lue joined 21:20 ssutch joined
dalek arVM/ext: 85056c4 | jonathan++ | / (3 files):
Build a list of extop names.

Saves the bytecode assembler having to reverse-engineer it from the hash.
21:21
arVM/ext: 30c7a84 | jonathan++ | src/mast/compiler.c:
Write out extops table to bytecode file.
jnthn Bytecode validation error at offset 866, instruction 140: 21:22
extension op 'p6init' not registered
\\o/
That means the extop name is making it into the generated bytecode. And presumably the sig too
So now we "just" need to start building/emitting the load instruction for an extops library :) 21:23
FROGGS that sounds nice! :o) 21:24
diakopter jnthn++ awesome 21:25
diakopter hopes gerd is doing well <ping> :) 21:26
jnthn too :)
At this rate, we'll be in a position to start attacking CORE.setting before the month is out... :) 21:27
I wonder how many thousands of lines longer it is than when I started taking it on for the JVM port... 21:28
diakopter heh.
I think lizmat++ added a bunch? 21:29
jnthn yes :)
diakopter thinks it would be more approachable if CORE.setting could load from other files too
jnthn Well, I guess at least this time it starts froma potable state
diakopter (to break it up)
jnthn um, portable 21:30
diakopter potable indeed!
jnthn
.oO( Potability! There's something I can drink to! )
diakopter nice talk title "How to make your projects more potable"
21:46 lizmat joined 21:48 colomon joined 22:16 FROGGS joined 22:33 ssutch joined 22:54 benabik joined 23:04 FROGGS joined 23:45 FROGGS joined