|
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
|
|||