Camelia, the Perl 6 bug

IRC log for #parrot, 2009-06-25

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 GeJ Good Morning everyone
00:02 Infinoid Whiteknight++ # yapc recaps
00:05 kid51 Where are those recaps?
00:05 kid51 wiki?  list?  blog?
00:07 cotto kid51, L1Recap on Parrot's wiki, although there's also a version on his blog
00:08 Whiteknight cotto: pong
00:08 kid51 https://trac.parrot.org/parrot/wiki/L1Recap
00:08 Whiteknight yeah, the L1 recap was on the blog, I didn't really write any other recaps
00:10 eternaleye joined #parrot
00:11 cotto Whiteknight, how long does it take you to write a typical blog entry?
00:11 Whiteknight cotto: depends, about 20 minutes, more if I have to dig up a lot of links
00:12 cotto I guess you'd get faster at it as you did it more and got in the habit of thinking about what you'd be writing.
00:12 Whiteknight I actually write a lot of posts and save them half-written for later, so I have dozens of entries that only need a few minutes of work to be postable
00:12 cotto ah.  pipelining
00:12 Whiteknight cotto: definitely. I write much faster now then I used to
00:13 dalek parrot: r39759 | whiteknight++ | branches/io_cleanups (16 files):
00:13 dalek parrot: [io_cleanups] back out the changes to Handle. It's the right idea to solve the problem, but wrong implementation
00:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39759/
00:14 Whiteknight yeah, I've written about a dozen YAPC posts already, will slowly let them out all week
00:16 cotto Whiteknight++ for all the writing (and saying ++ out loud)
00:19 Whiteknight Infinoid: At YAPC I was calling you "Infinoid plus plus" (because that's how I usually refer to you online :)
00:20 dalek parrot: r39760 | whiteknight++ | branches/io_cleanups/src/pmc/socket.pmc:
00:20 dalek parrot: [io_cleanups] reapply my fix to socket to plug a memory leak here
00:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39760/
00:21 Infinoid heh, wow
00:21 Infinoid I got mentioned?
00:22 Infinoid (I was referring to your L1 and #ps recaps on-list, btw)
00:25 Whiteknight Infinoid: you have that patch to add pipes again? it's time to apply it
00:26 Whiteknight (I lost my link)
00:26 * Infinoid greps logs for The Patch
00:26 Infinoid http://nopaste.snit.ch/16980
00:28 eternaleye joined #parrot
00:30 Whiteknight that's missing a t/pmc/pipehandle.t file
00:30 Whiteknight codingstd is going to bitch at me about that
00:32 Infinoid yeah, they're both in the same test at the moment
00:33 Infinoid as mentioned before, the test is a work in progress
00:33 Whiteknight okay, i'll performs some surfery
00:33 Whiteknight surgery
00:34 Infinoid I would work on it, but instead I'm unpacking the 23" monitor so I can watch Fearless (2006) on it :)
00:35 cotto WANT
00:35 Infinoid The best part of moving is rediscovering all your fun toys afterwards
00:35 cotto unless it's crt
00:35 Infinoid Nope!
00:35 Infinoid cotto: They're cheap, like $200 on newegg
00:35 cotto no wai
00:35 cotto I'll have to upgrade once I get a job.
00:36 Infinoid cotto: http://www.newegg.com/Product/Pr​oduct.aspx?Item=N82E16824009162
00:37 Whiteknight Infinoid: you're going to love this next commit
00:38 dalek parrot: r39761 | whiteknight++ | branches/io_cleanups (3 files):
00:38 dalek parrot: [io_cleanups] Apply patch from Infinoid++ to add initial implementation of Pipe and PipeHandle PMC types. However, breaks all the packfile tests because we added new PMC types. Need to regenerate the packfiles. Help me Infinoid Kenobi, you're my only hope
00:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39761/
00:38 Infinoid haha
00:40 Infinoid I still have no idea if those work, wish we could test them
00:44 dalek parrot: r39762 | japhb++ | trunk (2 files):
00:44 dalek parrot: [OpenGL] Work around more crazy nVidia fun
00:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39762/
00:45 Whiteknight no idea if what works, pipes?
00:46 Infinoid yeah
00:47 Infinoid the test makes sure you can create them but doesn't try any actual I/O
00:47 Infinoid those tests are commented out because of The (thread) Fail
00:47 cotto seen darbelo
00:47 purl darbelo was last seen on purl 1 days, 2 hours, 59 minutes and 16 seconds ago, saying: <private message>  [Jun 23 21:44:07 2009]
00:48 cotto Hmm.  about 1 days ago
00:48 cotto seen darbelo
00:48 purl darbelo was last seen on purl 1 days, 2 hours, 59 minutes and 32 seconds ago, saying: <private message>  [Jun 23 21:44:07 2009]
00:48 Whiteknight Infinoid; instead of using threads, couldn't we just spawn another instance of Parrot?
00:48 dalek parrot: r39763 | whiteknight++ | branches/io_cleanups/t/pmc (2 files):
00:48 dalek parrot: [io_cleanups] add a pipehandle.t test to shut up the codingstds
00:48 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39763/
00:48 Infinoid Whiteknight: If you can fork in a way that also works on win32, that would suit the test's needs just fine
00:49 Whiteknight not even fork, just create another process. Isn't there a way to just do that?
00:49 Infinoid Ok.  So how do you get the pipe handle to the new process?
00:50 cotto msg darbelo You've been doing a very good job with you GSoC project, but I think that a PCT-based test parser/generator will be much more maintainable than a Perl script.  I'd be glad to get you started with a stub implementation if that'd help get you over the activation energy.
00:50 purl Message for darbelo stored.
00:50 Whiteknight or do we still have to use FileHandle for that?
00:50 Infinoid the pipe() interface creates two file handles in the current process, you can't pass it to your peers (portably) but you can pass it to your children
00:51 Whiteknight I'm thinking we spawn another process, and set the pipe as the stdin and stdout of the child
00:51 Infinoid sure, that's one valid use case of this pipe code
00:51 Infinoid I guess I was trying to test it in a more direct fashion, but that's certainly better than nothing
00:51 cotto allison, ping
00:52 Whiteknight okay, I'm just making sure I'm not crazy
00:52 allison cotto: pong
00:52 cotto allison, is tewk alive?
00:52 allison cotto: I don't know
00:52 Whiteknight okay, I
00:52 Whiteknight 'm going to bed. Goodnight all
00:52 cotto that's worrying
00:53 cotto night, Whiteknight
00:53 Infinoid sleep well
01:12 cotto Hmmm.  Maybe we should call the nqp used to implement PMCs and ops nqp++
01:12 cotto karma nqp
01:12 purl nqp has karma of 1
01:12 cotto nqp++++
01:12 cotto karma nqp++
01:12 purl nqp++ has neutral karma
01:12 cotto karma nqp
01:12 purl nqp has karma of 2
01:13 * cotto uses his newfound knowledge of purl's internal to take over the world
01:18 cotto allison, is there anything wrong with including a header in generated code when it isn't always necessary?
01:18 japhb joined #parrot
01:19 dalek parrot: r39764 | Infinoid++ | branches/io_cleanups/t/native_pbc (5 files):
01:19 dalek parrot: [cage] Regenerate native pbcs.
01:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39764/
01:27 dukeleto joined #parrot
01:31 s1n_yapc joined #parrot
01:36 kid51 joined #parrot
01:54 s1n_yapc left #parrot
02:01 kurahaupo joined #parrot
02:14 flexibeast joined #parrot
02:16 kurahaupo I was pondering "xor" meaning "exactly one". It occurred to me that rather than true/false, a more useful result might be this:
02:16 kurahaupo If zero parameters are true, return the last one; otherwise iIf one parameter is true, return it; otherwise (if two or more parameters are true), return an unthrown "Too Many" exception.
02:16 kurahaupo I think this behaviour would be a better match for human expectations when faced with "honey or jam" type questions.
02:17 kurahaupo But I'm thinking aloud; what do others think?
02:19 cotto braaaiiiiinnnnnnnsssssss
02:19 kurahaupo (This would also solve the associativity problem)
02:19 dukeleto joined #parrot
02:20 kurahaupo cotto: is that an observation, requirement, request or hunger-pang?
02:20 kurahaupo :-)
02:20 cotto 3 and 4
02:20 purl 7
02:21 cotto kurahaupo, what language are you talking about?  Parrot has several internal languages and lots more that run on top of it.
02:22 cotto 983742 and 3283
02:22 purl 987025
02:22 cotto 983742 and 3283 minus 983283
02:23 flexibeast cotto: i presume perl6.
02:23 kurahaupo Erm, yes. Perl6
02:24 flexibeast What's the process to submit typo-type fixes to Parrot docs?
02:24 cotto ok.  In that case you might want to head over to #perl6.  There's some overlap since Rakudo runs on top of Parrot, but that's definitely more of a Perl6-ish question.
02:24 cotto nopaste a diff
02:25 flexibeast i've just finished scanning through the Parrot docs, and found a few.
02:25 cotto tools/dev/nopaste.pl if you have the proper modules
02:25 kurahaupo Sorry, something odd in my chat client; redirected me to #parrot when I (thought I) asked for #perl6
02:25 cotto this if you don't:
02:25 cotto nopaste?
02:25 purl nopaste is, like, at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/
02:25 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
02:25 cotto kurahaupo, np.
02:25 flexibeast Sorry, i should have been clearer: i meant the Parrot book, online.
02:26 cotto that's in svn too, under docs/book
02:26 flexibeast Ah, okay.
02:27 flexibeast Thanks!
02:28 cotto np.  Ask away if you're not familiar with the tools.  Otherwise, nopaste here and I'll be glad to commit your changes.
02:29 cotto Just let me know how you'd like to be credited (full name, irc nick, numerical designation, etc).
02:30 flexibeast Okay, cool.
02:31 cotto msg particle1 I was wrong about hcf being removed.  It was just moved to a dynop.  It's in src/dynoplibs/myops.ops .
02:31 purl Message for particle1 stored.
02:31 cotto msg particle I was wrong about hcf being removed.  It was just moved to a dynop.  It's in src/dynoplibs/myops.ops .
02:31 purl Message for particle stored.
02:46 kid51 msg particle  Please review https://trac.parrot.org/pa​rrot/ticket/786#comment:7
02:46 purl Message for particle stored.
02:49 chromatic joined #parrot
02:50 eternaleye joined #parrot
03:17 magnachef joined #parrot
03:20 magnachef_ joined #parrot
03:21 donaldh joined #parrot
03:22 pmichaud hello, #parrot
03:22 Tene hi pmichaud
03:23 Tene pmichaud: I'm a little bit concerned about metamodel interoperation between HLLs.  Did you plan to require that all objects implement .WHAT and friends, did you have a different plan, or had you not planned that yet?
03:24 Tene Allison wants me to consider implementing a P6object alternative for pynie, is why I'm asking.
03:24 pmichaud I didn't plan it that far ahead (more)
03:25 pmichaud but I'm curious as to why all objects would need to implement .WHAT and friends in the first place
03:25 Tene I'm under the vague impression that some parts of the rakudo internals use methods on objects to access the class.
03:26 pmichaud sure, they do, but that's p6 specific
03:26 pmichaud that doesn't mean it's intended to be the model for Parrot.
03:27 Tene So if I pass around a foreign object, there aren't any parts of rakudo that will assume that, that come to mind to you?
03:27 pmichaud I'm having trouble parsing that.
03:28 pmichaud are you saying "pass a foreign object into Rakudo", or "pass a Rakudo object to a foreign object, or ...?"
03:28 Tene my $x = some_foreign_function(); # Can I do anything with $x that will make rakudo fail?
03:28 pmichaud define "rakudo fail"
03:29 pmichaud I mean, clearly I can do
03:29 pmichaud my $x = some_rakudo_function();   $x.nonexistent_method()   and "rakudo fails"
03:30 Tene I'm not sure, really.  I haven't worked anything specific out yet.
03:31 pmichaud right.
03:31 pmichaud Let me put it this way...
03:31 pmichaud but keep in mind I'm likely to phrase it badly
03:31 pmichaud Rakudo doesn't intend to be the tail that wags Parrot
03:32 Tene On this topic, I did run into something that I'm unsure is a bug or not.  using &foo in a signature doesn't work for code blocks coming from a foreign language.
03:32 pmichaud P6object exists to offer a perl6-like object model features for those non-Rakudo things that want to use it (e.g., PGE, PCT, Parrot libraries), but ultimately Rakudo will have to be aware of non-P6object things in order to do HLL interop properly
03:33 pmichaud it may do them more slowly, however.
03:33 Tene Okay, that's what I hoped/expected. :)
03:33 pmichaud so, in that sense, Rakudo doesn't expect Pynie or any other HLL to be using P6object.  That's entirely up to them.
03:34 pmichaud I'll also note (from reading backscroll) that I'm perfectly fine with renaming P6object into something without "P6" in it -- I just haven't figured out a name.
03:34 Tene I'll just do whatever, then, for Pynie.  Sounds like a good way to find out if anything fails.
03:34 pmichaud I'm not so keen on removing .WHAT, .HOW, etc from it, because those are really the whole point of the metamodel.
03:35 pmichaud i.e., the metamodel exists to provide those methods.
03:36 pmichaud going to the &foo question you just posed...
03:36 tetragon joined #parrot
03:36 pmichaud do you mean that  &foo.signature currently fails?
03:36 Tene I mean that...
03:36 pmichaud I'm not entirely sure how to handle that (more)
03:36 Tene sub foo(&bar) is export { &bar(1) };
03:37 Tene (foo (lambda () ( ... )))
03:37 Tene causes a signature fail
03:37 pmichaud oh, you mean a type-mismatch for bar?
03:37 pmichaud er, &bar
03:37 Tene Yes!
03:37 Tene Type mismatch.
03:37 pmichaud sure, we're aware of that (more)
03:38 pmichaud the answer is that we'll have to make the Callable role a bit smarter in the face of hll interop
03:38 Tene Okay. :)
03:38 pmichaud (Perl 6 requires that any object bound to a &-sigil variable support the Callable role)
03:39 pmichaud so my best guess at this point is that all Parrot subs will eventually be treated as "Callable"
03:39 pmichaud but for the time being, jonathan++ and I are really focusing on just getting the pure p6 semantics correct, rather than trying to resolve hll interop issues at the same time.
03:40 Tene Right, okay.
03:40 Tene That's good enough for me.
03:43 japhb joined #parrot
03:46 japhb joined #parrot
03:52 japhb Tene, pmichaud: Since P6object existed for things like PCT to have a Perl 6-like metamodel, why not call it PCTobject?
03:53 japhb That should quiet the PCT haters ....
03:53 japhb er,
03:53 japhb "P6" haters
03:54 pmichaud I don't want to people to mis-conceive that it's only intended for PCT.
03:54 pmichaud because the next step would then be to try to move it into compilers/pct, which would be incorrect.
03:56 japhb MOPobject?
03:56 pmichaud perhaps.
03:57 cotto ObjectBuilder (although that's awfully Javay)
03:57 * japhb hates to see progress at all delayed by terminology
03:57 pmichaud well, the obvious correct name is "P6object", because it's implementing P6's metamodel
03:58 pmichaud and I deliberately chose "P6" instead of "Perl6" to indicate that it's just a subset of that model
03:58 pmichaud but I understand that others might be put-off-by the "P6", or confused by it.
03:59 japhb Exactly.  I suggested MOPobject based on thinking about Class::MOP
04:00 pmichaud "MOP" presumably stands for "meta object protocol"?
04:01 japhb Too bad Larry hadn't come up with a new, unique name for it, like how C3  seems to work well for everyone.
04:01 japhb nod
04:01 pmichaud well, that's kinda the issue with "MOP".  P6object is only one instance of a metaobject system
04:02 pmichaud there could be other metamodels; each would have their own "metaobject protocol"
04:02 pmichaud maybe "POP"
04:03 pmichaud for  "Prototype object protocol"  or something like that
04:03 pmichaud (downside:  POP already has other meanings)
04:03 pmichaud POM?  Protoobject model?
04:03 pmichaud I dunno.
04:03 japhb I know.  I was kind of going for getting to own the nice name by dint of being first.  But perhaps that's a bit small of me.  :-)
04:08 pmichaud well, I kinda have to be careful of such things in p6 also, because we support multiple object systems there too :-)
04:13 japhb OK, so maybe we need to name this particular MOP with a nice short acronym, like M1.  M1object? MO1object?
04:23 Theory_ joined #parrot
04:32 dalek parrot: r39765 | petdance++ | trunk/include/parrot/stacks.h:
04:32 dalek parrot: made a change to Stack_cleanup_method to match the function pointer in the struct
04:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39765/
04:32 chromatic ... not that we use that code.
04:34 pmichaud do we still use it?
04:34 afk_coke msg cotto kill hcf. It was a joke. Shouldn't be shipping with a stable bird.
04:34 purl Message for cotto stored.
04:34 afk_coke msg cotto (of course we have to deprecate it, but now is a great time for that. =-)
04:34 purl Message for cotto stored.
04:35 japhb I'm being an idiot.  M6object.  M6 == first and last letters of "Mini-perl6" or "Metaobject protocol used by Perl 6" or "Mini version of base metaobject protocol of Perl 6".  Pick your expansion factor.  :-)
04:35 Coke obviously, it should be called NQP6Object.
04:36 cotto Coke, I don't see any reason to bother with it.  It's fun and doesn't have any sort of potential for damage.
04:36 pmichaud sam objection as PCTObject
04:36 pmichaud *same
04:37 Coke cotto: given how many failure report we have gotten about it, I disagree. (I agree with doughera)
04:37 Coke it detracts from getting other stuff done. In fact, I will open the ticket myself since it's my fault.
04:37 cotto It has tests?  That seems unnecessary.  What about ripping the tests out?
04:38 chromatic Then we need workarounds for coverage tests.
04:39 Coke cotto: aside from fun is there any point to the op?
04:39 cotto Which tests fail?  t/dynoplibs/myops.t Works For Me(tm).
04:39 cotto Coke, nope.
04:41 Coke cotto: some platforms the test segfaults.
04:42 Coke "why does this segfault" "oh, it's just hcf. Don't mind us."
04:42 cotto but I take taking myself seriously seriously
04:42 Coke I opened a ticket. You and I cancel each other out. Let's see who else chimes in.
04:42 pmichaud +1 for removing hcf
04:43 * cotto sneakily messages particle, who likes it
04:43 dalek TT #790 created by coke++: remove hcf dynop
04:43 chromatic +1 for removing
04:43 chromatic We could use it as an example in documentation.
04:43 Coke There's a ticket, vote there. =-)
04:43 Coke chromatic: that's not a terrible idea.
04:43 pmichaud +2 for writing an article or documentation that describes how to create dynops
04:43 pmichaud (and can use hcf as a trivial example)
04:43 cotto I'll let whatever happens to hcf happen.
04:44 chromatic "not a terrible idea" hooray, now I can sleep!
04:44 cotto There are other ways to implement -Ofun
04:45 cotto (including the dangerous optimizations that chromatic++ mentioned earlier in the week)
04:46 dalek parrot: r39766 | petdance++ | trunk/src/stacks.c:
04:46 dalek parrot: consting a local var
04:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39766/
04:47 cotto Maybe I'll name the release after it.
04:47 cotto (not really)
04:47 chromatic I like that idea.
04:48 cotto Hispanic Community Fund
04:48 cotto nothing wrong with supporting cultural diversity
04:49 Austin_Hastings joined #parrot
04:51 cotto I think finding a good name for the release is going to end up eating more brain cycles than the actual release process.
04:51 cotto release_manager_guide.pod++
04:53 chromatic That's because you're not yet quite as outrageously creative as I am.
04:53 Austin_Hastings left #parrot
04:56 cotto nope.  I'll probably just call it "1.4".
04:57 cotto maybe 1.4i to make it more imaginative
04:58 Austin joined #parrot
05:10 allison on P6Object and Pynie: a bigger problem than name is that Python object semantics aren't prototype-based
05:11 chromatic They do have metaclasses though.
05:11 allison chromatic: yes, but so does Parrot's default object model
05:12 chromatic Those are both MOPs.
05:15 allison aye
05:15 allison the Class PMC is closer to Python than P6object
05:22 pmichaud ...I'm not sure I understand why this is a problem yet.
05:23 pmichaud actually, I'm sure I don't understand why it's a problem.
05:31 amuck joined #parrot
05:34 preflex joined #parrot
05:41 ilia joined #parrot
05:48 dukeleto joined #parrot
06:11 uniejo joined #parrot
06:39 st joined #parrot
06:47 iblechbot joined #parrot
07:21 donaldh joined #parrot
07:25 viklund joined #parrot
07:49 japhb joined #parrot
07:50 elmex joined #parrot
07:52 st joined #parrot
08:29 mikehh manifest_tests FAIL - #   Failed test 'No need to regenerate MANIFEST.SKIP' - All others PASS - pre/post config, smoke. fulltest at r39766
08:29 mikehh Ubuntu 9.04 i386
08:31 mikehh it took me just over an hour - 1:05 to build, smoke and run fulltest
08:38 particle joined #parrot
08:39 Austin joined #parrot
08:39 Zak joined #parrot
08:41 bacek_ joined #parrot
08:44 snarkyboojum joined #parrot
09:30 bacek_ joined #parrot
09:33 mikehh_ joined #parrot
09:48 bacek_ o hai
10:05 bacek_ OMGWTF
10:05 bacek_ String support Iterators!
10:05 * bacek_ starring at facepalm.jpg
10:11 dalek tracwiki: v24 | Infinoid++ | ParrotQuotes
10:11 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=24&amp;action=diff
10:15 dalek joined #parrot
10:16 Infinoid moritz: http://github.com/Infinoid/dalek-plugin​s/blob/master/modules/local/groklog.pm
10:32 snarkyboojum joined #parrot
10:53 uniejo joined #parrot
11:04 whoppix joined #parrot
11:11 moritz Infinoid++
11:12 iblechbot joined #parrot
11:14 Infinoid moritz: please test it. :)
11:20 donaldh joined #parrot
11:31 dalek parrot: r39767 | bacek++ | branches/tt761_keys_revamp/src/pmc/hash.pmc:
11:31 dalek parrot: [pmc] Hash.slice is acually synonim for get_iter...
11:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39767/
11:31 dalek parrot: r39768 | bacek++ | branches/tt761_keys_revamp​/src/pmc/hashiterator.pmc:
11:31 dalek parrot: [pmc] Implement HashIterator.set_integer_native
11:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39768/
11:31 dalek parrot: r39769 | bacek++ | branches/tt761_keys_revamp/src/pmc/iterator.pmc:
11:31 dalek parrot: [pmc] Drop old code code from Iterator.
11:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39769/
11:38 * bacek_ still want to meet someone with baseball bat in hands...
11:39 * moritz recommends a baseball pit for that
11:39 bacek_ oh... I broke one of main rules in software development - DRY
11:41 bacek_ moritz: In Soviet Russia many people buys baseball bats. But almost noone buys ball.
11:41 jdv79 joined #parrot
11:44 burmas joined #parrot
11:44 masak joined #parrot
11:45 Whiteknight joined #parrot
11:49 iblechbot_ joined #parrot
12:04 moritz seen alester
12:04 purl alester was last seen on #perl 6 years, 63 days, 18 hours, 18 minutes and 28 seconds ago, saying: except that the one kid is locked in the closet and misses it.  [Apr 24 17:41:28 2003]
12:04 moritz seen petdance
12:04 purl petdance was last seen on #parrot 51 days, 9 hours, 43 minutes and 18 seconds ago, saying: Im' looking at splint's handling of memory leaks  [May  5 02:16:55 2009]
12:06 bacek_ seen AndyA
12:06 purl AndyA was last seen on #perl 40 days, 18 hours, 6 minutes and 53 seconds ago, saying: confound: thanks :)  [May 15 17:55:01 2009]
12:07 bacek_ EIMDOINGITWRONG
12:15 moritz no hurry anyway
12:20 AndyA bacek_ do you want me or Andy Lester?
12:21 AndyA Or some other random Andy? :)
12:21 Coke joined #parrot
12:22 magnachef joined #parrot
12:22 bacek_ AndyA: Lester :) And I already realised that "I'm doing it wrong" relying on tab-completion :/
12:23 AndyA Cool - your IRC client has tab completion! :)
12:23 moritz you can throw away those that haven't ;-)
12:23 moritz (at least if you have alternatives)
12:23 bacek_ erm... It's 21st century, isn't it?
12:25 bacek_ bacek@icering:~$ apt-cache search 'irc client'|wc -l
12:25 bacek_ 43
12:25 bacek_ wow...
12:26 magnachef_ joined #parrot
12:26 moritz $ debtags search protocol::irc|wc -l
12:26 moritz 97
12:26 bacek_ moritz: it includes servers, libraries, etc
12:27 moritz bacek_: I know
12:27 moritz $ debtags search protocol::irc|grep -i client|wc -l
12:27 moritz 34
12:27 bacek_ looks about all right
12:28 moritz seems not all packages are properly tagged yet
12:28 bacek_ .oO( May be it's time to check something else than xchat )
12:29 moritz otoh not everybody has the freedom to pick an arbitrary irc client
12:30 bacek_ s/to.*//
12:44 Whiteknight oh wow, my IRC client has tab completion too!
12:44 moritz Whiteknight: you're kidding me, are you?
12:44 Whiteknight not this time, I don't really use tab completion, so I never noticed
12:46 moritz I would spend half of my IRC time mis-spelling nicks without it ;-)
12:47 Whiteknight I'm using chatzilla right now, just because it's easy
12:48 Whiteknight probably not the best of most full-featured client
12:49 moritz I use irssi because it's so handy to have it in a screen session ;-)
12:50 bkuhn joined #parrot
13:17 skids joined #parrot
13:21 snarkyboojum joined #parrot
13:21 cotto joined #parrot
13:22 gryphon joined #parrot
13:38 st joined #parrot
14:02 patch joined #parrot
14:19 amuck_ joined #parrot
14:19 jhorwitz joined #parrot
15:05 * Whiteknight hates .ps files
15:18 Austin joined #parrot
15:18 Austin left #parrot
15:18 Austin joined #parrot
15:20 chromatic joined #parrot
15:20 donaldh joined #parrot
15:28 dalek rakudo: c7ff050 | pmichaud++ | docs/spectest-progress.csv:
15:28 dalek rakudo: spectest-progress.csv update: 405 files, 11548 passing, 4 failing
15:28 dalek rakudo: Failure summary:
15:28 dalek rakudo:     S12-enums/basic.rakudo 27 - short name of the enum without parenthesis is an enum
15:28 dalek rakudo:     S32-num/rand.t aborted 3 test(s)
15:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​7ff050a032c94c2f1e32f31d39d03f803c14a2b
15:38 davidfetter joined #parrot
15:55 Theory joined #parrot
16:11 dalek parrot: r39770 | cotto++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
16:11 dalek parrot: [pmc2c] reverse the order in which direct parents are used
16:11 dalek parrot: This is the way pmc2c used to work, which Lua depends on.
16:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39770/
16:25 dalek parrot: r39771 | pmichaud++ | trunk/src/string/charset/unicode.c:
16:25 dalek parrot: [core]:  modify upcase to work like downcase on unicode strings containing only ASCII characters
16:25 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39771/
16:46 Psyche^ joined #parrot
16:47 st joined #parrot
16:50 dalek parrot: r39772 | NotFound++ | trunk (7 files):
16:50 dalek parrot: [cage] always str_dup and always mem_sys_free imcc state->file, should fix some leaks, TT #35
16:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39772/
17:14 cotto joined #parrot
17:23 sekimura joined #parrot
17:36 darbelo joined #parrot
17:44 bacek_ joined #parrot
17:56 dalek parrot: r39773 | cotto++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
17:56 dalek parrot: [pmc2c] remove some code that doesn't (and can't afaict) get hit during the build
17:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39773/
17:59 cotto lib/Parrot/Pmc2c/Method.pm +52 is classy
17:59 cotto I appreciate the laziness, but eew.
18:00 dalek parrot: r39774 | cotto++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
18:00 dalek parrot: [pmc2c] remove some accidentally committed debugging code
18:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39774/
18:02 kj joined #parrot
18:05 darbelo cotto: ping
18:08 cotto darbelo, pong
18:09 cotto nice to see you around
18:10 darbelo Saw your message about the PCT-based decTest parser.
18:13 darbelo And I agree that it's going to be more maintainable (and shiny!) and still plan to work on it. I just wanted to get some tests in place to see where the work needs to go.
18:13 Coke seen tewk?
18:13 purl tewk was last seen on #parrot 12 days, 17 hours, 8 minutes and 5 seconds ago, saying: ]\'''''''''''''''''''''''''''''''y'y']'6y']]']]]  [Jun 13 01:00:55 2009]
18:13 Coke seen tewk before that?
18:13 Coke useless bot
18:13 purl Obsolete flesh creature
18:13 cotto ok.  it wasn't clear that the perl script was just an exploratory prototype.
18:14 cotto Coke, I asked allison and she hasn't heard from him recently.
18:14 cotto darbelo, as such it's fine, but be sure not to spend too much effort on it.
18:17 darbelo The only further effort I have planned for that script is to "svn rm" it.
18:17 allison cotto: There's always a change that my messages or his replies are all getting trapped in spam filters.
18:17 allison chance
18:18 dalek TT #35 closed by coke++: ./parrot with no args leaks memory
18:19 cotto darbelo++ then.  Perl can do such things, but we've got better tools.
18:19 cotto It's not over until it's over.
18:21 silug joined #parrot
18:21 darbelo On an unrelated note, I might have to start exposing the status on DecNumContext, so that exception handlers can clear it.
18:23 Tene Coke: need tewk?  I could drive over to his house and leave a threatening note on the door...
18:24 Coke tene; nope. just the presense of darbelo reminded me.
18:24 Coke Tene: is http://rt.perl.org/rt3/Tic​ket/Display.html?id=61088 closable? (I thought that the REPL worked now?)
18:24 darbelo tewk is the other GSoCer?
18:24 cotto Tene, it couldn't hurt at this point, depending on the tone of the note. ;)
18:25 cotto darbelo, yes for Parrot
18:25 moritz Coke: the Rakudo repl doesn't print any results, so I don#t think it can be closed
18:25 Coke does his patch look sane?
18:26 Coke seems a reasonable request.
18:30 darbelo Doesn't melange offer some sort of message-sending-thing? That would mitigate the chances of a spam filter eating your messages.
18:31 uniejo joined #parrot
18:32 chromatic joined #parrot
18:42 Coke chromatic; hio.
18:44 Coke pmichaud: I will attempt to merge our p6 notes and mail them out tonight for c to post later.
18:45 Tene Coke: No, it's not.
18:46 Tene Coke: The REPL still behaves as it always has.  You're thinking of the issue with EOF not terminating the REPL, I suspect.
18:46 Tene Coke: that issue is fixed.
18:46 Whiteknight darbelo: yes, Tewk was the other GSoCer
18:47 chromatic howdy
18:47 purl salut, chromatic.
18:47 chromatic BIENVENIDO
18:48 Whiteknight hello chromatic
18:49 chromatic Having said that, now I want food.
18:50 Coke Tene: can we apply that guy's patch?
18:50 Tene lemme read it
18:51 Whiteknight Tene: you live close to Tewk?
18:51 Coke seems like printing the return value is desirable.
18:51 athomason joined #parrot
18:51 Coke (even tclsh's repl works that way. =-)
18:51 Tene Whiteknight: I do.  I used to live less than a mile from him.
18:52 Whiteknight Tene: Go tell him that I said OMGWTF?
18:52 Tene Coke: I'd change the last pair of prints to a say, personally, but it looks sane to me, except for the whitespace changes
18:52 Tene Whiteknight: eh?
18:52 Whiteknight I was so excited about his project!
18:53 Tene Whiteknight: I'm missing some context.  I haven' tbeen following GSOC stuff.
18:54 Andy joined #parrot
18:54 Whiteknight Tene: Tewk is supposed to be doing an LLVM JIT for Parrot as his project, but he disappeared and hasn't done anything for it I don't think
18:54 Tene ah
18:55 dalek tracwiki: v73 | whiteknight++ | WikiStart
18:55 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=73&amp;action=diff
18:55 dalek tracwiki: v74 | whiteknight++ | WikiStart
18:55 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=74&amp;action=diff
18:56 PerlJam Whiteknight: or maybe he's secluded himself to hack it out and be done with it
18:56 PerlJam (obviously I'm wearing my optimist hat today)
18:56 Whiteknight PerlJam: possible, let's all be optimists
18:57 Coke ... that'll never work.
18:57 * PerlJam pulls a rabbit out of Coke's hat
18:58 * Whiteknight pulls a hat out of PerlJam's rabbit
18:58 Coke Nothing up my sleeve....
18:58 Whiteknight and nothing in your rabbit!
18:58 dalek tracwiki: v1 | whiteknight++ | BigProjectIdeas
18:58 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Big​ProjectIdeas?version=1&amp;action=diff
19:03 Whiteknight allison: ping
19:05 allison Whiteknight: gnip
19:05 Whiteknight allison: Do we want all the API functions in src/pmc.c renamed to Parrot_pmc_*?
19:05 Whiteknight or, the larger question is, what functions exactly get this rename treatment?
19:05 allison Whiteknight: yes
19:05 allison Whiteknight: everything
19:05 purl everything is probably a string unless it is a valid num or boolean or everything, everything, everything, everything
19:05 dalek tracwiki: v2 | whiteknight++ | BigProjectIdeas
19:05 dalek tracwiki: created some scaffolding and some basic "sizes" that we can use to separate projects into like-sized groups
19:05 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Big​ProjectIdeas?version=2&amp;action=diff
19:06 allison Whiteknight: but, on a sane deprecation cycle
19:06 Whiteknight allison: okay. I thought a deprecation notice for this has already gone in?
19:06 allison Whiteknight: there's already an entry for it in DEPRECATED.pod
19:06 Whiteknight right, so you're just saying to spread out the changes to make less of a headache?
19:06 allison Whiteknight: but, we still should exercise sanity in ripping out old code from under people
19:06 allison Whiteknight: exactly
19:07 Whiteknight Okay. Do we have a list of what X is in all cases for Parrot_X_*, is it just the name of the file where the function exists?
19:07 allison Whiteknight: and, part of the process is deciding what is part of the public API, and what's purely private
19:07 chromatic X is the name of the subsystem.
19:07 Whiteknight and while we're renaming things [slowly], should we start moving files into subfolders?
19:08 Whiteknight chromatic: which begs the question, what are the names of all the subsystems?
19:08 allison Whiteknight: we don't have a list of all subsystem names, it's generally 3 or fewer characters
19:08 * chromatic thwaps Whiteknight with the OED.
19:08 Whiteknight These are the kinds of projects that I want to feed to new users, so I'm just trying to nail down the specifics
19:08 allison Whiteknight: so not necessarily the same as the file name
19:08 chromatic Let's start on the functions already in subsystem directories.
19:08 allison Whiteknight: and, yes, we do want to move the large C files in src into subdirectories
19:09 allison splitting them out into separate files
19:09 NotFound I think RT #60172 may have been solved with yesterday's imcc fixes.
19:09 Whiteknight Okay, I think that's all the information I need for now. Thanks!
19:09 mvuets joined #parrot
19:09 allison Whiteknight: and, again, changes in file structure are more disruptive, so need more caution
19:10 allison Whiteknight: if you start a wiki page, I can help review/revise it with subsystem names, etc
19:10 Whiteknight right. I'm hoping new users will submit patches that we can review and apply at a reasonable time
19:10 chromatic Well volunteered!
19:10 Whiteknight I will start a wiki page, good idea
19:12 dalek tracwiki: v75 | whiteknight++ | WikiStart
19:12 dalek tracwiki: create a page to talk about the ongoing work to rename and evaluate important API functions
19:13 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=75&amp;action=diff
19:14 NotFound Talking about renaming, I'll like to rename str_dup to mem_sys_strdup or something like that, and move it to memory.h
19:14 chromatic +1
19:14 purl 1
19:15 Whiteknight +1
19:15 purl 1
19:15 Whiteknight purl--
19:15 purl Whiteknight: huh?
19:16 NotFound Need a deprecation cycle for that?
19:19 pmichaud Coke: (p6 notes) sounds awesome, thanks.
19:23 bacek_ joined #parrot
19:26 dalek tracwiki: v1 | whiteknight++ | APIFuncRenaming
19:26 dalek tracwiki: creating some initial lists of things that can be removed/renamed
19:26 dalek tracwiki: https://trac.parrot.org/parrot/wiki/API​FuncRenaming?version=1&amp;action=diff
19:27 cotto Whiteknight, you spell that < purl-- >
19:27 cotto Try practicing it a few times so you get the hang of it. ;)
19:27 Whiteknight < purl-- >
19:27 Whiteknight :)
19:30 rakudohudson joined #parrot
19:32 dalek rakudo: e0a9d86 | pmichaud++ | perl6.pir:
19:32 dalek rakudo: Allow operator definitions in settings (resolves RT #66826).
19:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​0a9d869bc47e9bb914e6852b46025b710184386
19:32 dalek rakudo: c6b283f | pmichaud++ | :
19:32 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
19:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​6b283f44abaa998229cbb63089cdb0dc68625d0
19:33 Coke Whiteknight: s/pt/thr/
19:33 Coke (we already know they're /parrot/ threads)
19:34 Coke also s/pi/int/
19:34 Whiteknight Coke: okay, that's fine. Those functions are all named pt_* right now, so I figured renaming them Parrot_pt_* would be a path of least resistance
19:35 Coke I also wish to rename things like ParrotInterpreter to Interpreter, fyi. =-)
19:36 NotFound Coke: I disagree. That may cause name conflicts for embedders.
19:36 burmas left #parrot
19:37 Coke NotFound: I think you'll find that the PI stuff is now called Parrot_ParrotInterpeter.
19:38 NotFound Ah, fine in that case.
19:38 Whiteknight Coke: add it to the task list
19:39 Coke Whiteknight: I'm just explaining my desire to you. I have no wish to get in the middle of an argument about renaming things. that way lies angst.
19:39 Whiteknight Coke: no argument. Idea sounds sane. Add to list
19:42 Whiteknight me Thor say add! Me Thor no like not add!
19:49 Whiteknight I wonder if the threading files should just be part of the Parrot_cx_* system?
19:49 Whiteknight I mean, it is concurrency
19:50 Coke +.02
19:50 purl 0.02
19:50 dalek tracwiki: v2 | whiteknight++ | APIFuncRenaming
19:50 dalek tracwiki: add two changes from Coke++
19:50 dalek tracwiki: https://trac.parrot.org/parrot/wiki/API​FuncRenaming?version=2&amp;action=diff
19:50 Whiteknight Purl
19:50 purl Whiteknight?
19:50 Coke purl
19:50 purl Coke?
19:50 Whiteknight Purl: 1/0
19:50 purl o/` everyone knows it as NaN, see? o/`
19:51 Coke purl 2**50
19:51 purl 1.12589990684262e+15
19:51 Coke purl 2**150
19:51 purl 1.42724769270596e+45
19:51 Coke purl 2**150**150
19:51 purl Coke: huh?
19:51 Coke purl 2**100000000
19:51 purl Coke: what?
19:51 Coke purl 2**1000000
19:51 purl Coke: excuse me?
19:51 Coke purl 2**100000
19:51 purl Coke: i'm not following you...
19:51 Coke purl 2**10000
19:51 purl it has been said that 2**10000 is 3011 digits long in base 10.
19:51 Coke purl 2**1000
19:51 purl 1.07150860718627e+301
19:51 Coke you're no fun, purl.
19:51 purl Coke: excuse me?
19:55 dalek rakudo: 62094c1 | moritz++ |  (2 files):
19:55 dalek rakudo: implement (eager) series operator
19:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​2094c10e9ab4b946937a83c93de1d87747a59a2
19:55 dalek rakudo: d03148d | moritz++ | t/spectest.data:
19:55 dalek rakudo: test series operator
19:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​03148d57c5ff3e1e4b69c47afa30fb9acde4ebf
19:57 bobke joined #parrot
19:58 dalek parrot: r39775 | NotFound++ | trunk (12 files):
19:58 dalek parrot: [core] add new function mem_sys_strdup to memory.h and replace several usages of str_dup with it
19:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39775/
19:58 Coke NotFound++
20:00 mvuets left #parrot
20:04 * Coke ponders some kind of cap and trade bugfix program whereby he patches rakudo and gets tcl patches in return.
20:04 Whiteknight why not just spend the effort patching TCL?
20:05 Coke Whiteknight: because I am not equally skilled at all tasks.
20:05 Whiteknight so TCL needs different types of patches then Rakudo needs?
20:06 Coke Whiteknight: Tcl.
20:06 Whiteknight whatever it is
20:06 Whiteknight tlc
20:06 Whiteknight tlC
20:06 Whiteknight tCl
20:06 Coke Whiteknight: converting Tcl to use PCT is a big lift for me. It would probably be easier to add lazy ranges to RAKUDO.
20:07 Whiteknight I dont even know what would be required to make that switch, I was never able to dig into it deeply enough
20:08 Coke Whiteknight: neither do I. =-)
20:09 Whiteknight okay, i'm heading home now. Later
20:09 Coke http://www.sdtimes.com/link/33566
20:10 dalek parrot: r39776 | NotFound++ | trunk/compilers/imcc (5 files):
20:10 dalek parrot: [imcc] replace str_dup with mem_sys_strdup in lexer and parser
20:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39776/
20:11 chromatic joined #parrot
20:20 clunker9_ joined #parrot
20:26 patch left #parrot
20:27 chromatic joined #parrot
20:27 Coke hello, goodbye.
20:28 chromatic Re: pt, pt I thought stood for pthread, not Parrot Thread.
20:29 Coke that's far less objectionable, though it makes me wonder about other threading models.
20:29 chromatic Presuming they're interfaces to pthreads, they make sense to me.
20:30 chromatic That's what I've always assumed when I glanced at them anyway.
20:30 NotFound Using pthreads is just an implementation detail, isn't it?
20:30 bacek_ good morning...
20:30 purl And good moroning to you, bacek_.
20:31 Austin I have a naming question unrelated to the current conversation: "phylum" or "mop" ?
20:31 kid51 joined #parrot
20:33 Austin Guten Morgen, bacek.
20:33 bacek_ Доброе утро, Austin
20:34 Austin Hmm.. was that unicode?
20:34 bacek_ Austin: yes.
20:34 Austin Apparently not supported out of the box by Hydra
20:34 bacek_ Hydra?
20:34 purl well, Hydra is ayrnieu's favorite animal or at http://hydra.globalse.org/ or a collaborative, multi-user, concurrent text editor for OS X and Rendezvous or at version 1.0.1 or being implemented in jedit (java!) at http://marc.theaimsgroup.com/?l=jedit​-users&amp;m=105036058211166&amp;w=2 or known as SubEthaEdit until I rename it after download or GA Tech's old primary server or an operating system from about 1976
20:36 Austin HydraIRC, some kind of FOSS IRC client for windows.
20:36 Austin People were mocking me for using Pidgin, so I'm trying some other stuff.
20:37 Austin This one's a little too bleading edge, I think.
20:37 bacek_ It's... weird. Do not support unicode in 21st century is TEH FAIL
20:37 chromatic Maybe it's written in Ruby.
20:37 moritz maybe it's just a wrongly configured character encoding
20:37 Austin It's not that bad. Nobody uses Unicode but freaks and furriners.
20:37 dalek parrot: r39777 | jkeenan++ | trunk/MANIFEST.SKIP:
20:37 dalek parrot: Someone forgot to update this.
20:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39777/
20:37 Austin I'm wondering if it's a font thing.
20:39 kid51 Austin: At my $job, Pidgin is quite popular for AIM on Linux.
20:39 Austin Whoa. Can't copy from output window. HydraIRC--
20:41 Austin chromatic: Is there any kind of pre-spec for L1?
20:42 chromatic The ops themselves?  Not yet.
20:42 Austin The modules?
20:42 purl Modules.  Modules are the best thing to ever happen to Perl.  Without modules, Perl would be like Python or good for just discussion
20:43 chromatic I don't know what "modules" means in this context.
20:43 Austin Whatever is bigger than ops.
20:43 chromatic cotto's experimented with using NQP to write PMCs.
20:43 chromatic pmichaud suggested using that to drive what L1 ops we need.
20:44 Austin Okay. Maybe he's got some results...
20:46 skids Whiteknight++ for going gangbusters on his blog and the wiki.  tonight's reading list is now full. :-)
20:46 Coke I am unclear how rewriting C in NQP helps L1.
20:46 Coke sorry, not C, ``C''.
20:47 chromatic We translate the NQP by hand into the corresponding L1 ops.
20:47 chromatic We use that to identify the behavior L1 must support.
20:49 Austin Coke: Consider the difference between some function in PickAny.pmc and its corresponding .c file. There's this enormous header inserted by PMC 2 C.
20:49 Coke and that's easier than just looking at the C?
20:49 Coke Austin: yes.
20:49 Coke rewriting the pmc in nqp doesn't address the generated C at all, does it?
20:49 Austin Coke: So then think about what that header does. I looked at one, and went "Gee, half this stuff should be constant and outside the function, and the other half should be generated on demand."
20:50 Coke Or are you rewriting the /generated C/ in nqp, not the pmc ``c'' ?
20:50 Austin (Of course, there's probably stuff I just don't get.)
20:50 chromatic Just the PMC C.
20:50 Austin So imagine if you were to replace "call a PMC.method" with "there's an object that is a member of the PMCmethod class, run it's invoke vtable"
20:51 Austin s/it's/its/
20:51 Austin You effectively partition the "PMCs" we currently have into larger data structures with finer-grained ops
20:52 Coke Austin: That reads like a non-sequitor to me.
20:52 Coke and doesn't help me understand the point of translating the C through NQP before getting to L1.
20:53 chromatic How do you propose identifying what L1 must do otherwise?
20:53 Austin chromatic: Just read the C?
20:53 Coke by analyzing the PMC?
20:53 Coke "We need to invent a new language." "ok, let's translate our english into german first!"
20:53 Austin But, @Coke, I think that rewriting it helps you identify what conceptual things you are doing.
20:53 chromatic Sure.
20:54 chromatic And how do you propose having two separate backends, C and L1, if you don't have an intermediate source form/
20:54 Coke chromatic: I'm not proposing anything. I'm trying to understand your crazy.
20:54 chromatic There's a queue.
20:54 Austin http://nopaste.com/p/a615swk85
20:54 chromatic We need to see if NQP can serve as the PMC language.
20:54 Austin Coke, this is the filehandle::open C code.
20:55 chromatic We need to understand the operations L1 must support to handle PMC behavior.
20:55 chromatic It's nice to understand them at a semantic level C doesn't always support.
20:55 chromatic In other words, what the code means, not how the processor should execute it.
20:55 Austin There's a bunch of C, but it's not clear what the purpose is of the various bits. "Rewriting" them (translating them) would help identify why they were being run.
20:56 Coke Austin: rewriting as a means to understanding them instead of understanding them before rewriting them seems backwards to me.
20:56 chromatic Ever use UML?
20:57 Coke chromatic: not if I can help it.
20:57 Austin Yeah.
20:57 chromatic Ever use Moose?
20:58 Coke chromatic: not for anything more than a toy.
20:58 chromatic Ever use SQL?
20:58 Coke (mainly because I don't need to be solving those kinds of problems in perl.)
20:58 Austin The Feynman algorithm doesn't work for me very often...
20:58 Coke chromatic: yes.
20:58 chromatic Okay.
20:59 chromatic Imagine understanding a SQL query in terms of how you look up rows in an index, seek the appropriate place on disk, perform the appropriate groupings, and return.
20:59 Coke I get your point that NQP is a higher level than C.
20:59 chromatic Now imagine porting that SQL query to a different database by looking only at the mechanics of how it does what it does.
21:00 Coke If someone is reading the C to understand it by thinking in terms of direct memory access, that also seems crazy to me.
21:00 chromatic Welcome to C.
21:00 Austin Yah
21:00 Austin That's mostly how I do it.
21:02 Coke chromatic: do you have a particular function in some PMC for which this journey through NQP is especially helpful?
21:03 chromatic Helpful for what though?
21:03 chromatic I don't understand your questions.
21:03 Coke you assert it's helpful to first translate the PMC (C) into NQP ?
21:03 Coke (before getting anywhere near l1)
21:04 chromatic Yes.
21:04 Coke Ok. is there some bit of code for which you think this is especially instructive?
21:04 chromatic We want to know if we *can* translate the PMC (C) into NQP.
21:04 chromatic If we can do it for Hash, Integer, and something else (I forget which), we can probably do it for everything.
21:05 Coke ... which brings me back to why it's helpful in the first place. Nevermind.
21:06 chromatic Because we don't want to write them in C anymore and we have to write them in something and we have to know what that something is before we stop writing them in C.
21:06 Coke but NQP is not that something, yes?
21:07 chromatic We can't know that until we try it.
21:07 Coke or, more pedantically, your two somethings in that sentence aren't necessarily the same thing.
21:07 Coke or are they. Are you saying NQP is L1?
21:07 chromatic No.  NQP is a language.  L1 is a set of ops.
21:08 Austin What's the backstory on the L1 name?
21:08 Coke so is the plan to write them in NQP, compile them down to bytecode, and see what parrot ops are in the resulting PBC?
21:09 chromatic The plan is to see 1) if NQP is suitable and 2) what kind of ops we'd have to emit to make them work if NQP is suitable
21:09 chromatic L1 ops, that is.
21:09 chromatic Austin, L stands for Level (in my mind).
21:10 Austin So what's L0?
21:10 Austin C?
21:10 purl C is for cookie, and it's good enough for you. or chromatic
21:10 chromatic Your processor.
21:10 Whiteknight joined #parrot
21:10 Austin Okeh
21:10 Austin Howdy, WK
21:11 Coke chromatic: suitable in what sense? what kind of opcodes are you going to check for, if you're starting with NQP? Is it just a thought experiment, or will you be checking actual existing parrot opcodes for a sample?
21:11 chromatic Suitable in the sense that the syntax of NQP and the semantics it supports is sufficient to represent all of the operations those PMCs currently perform.
21:11 NotFound I have now a parrot installed in /usr/local and another in /home/julian/insparrot and both run fine the nqp test in TT #785
21:11 chromatic I don't believe existing Parrot opcodes are sufficient.
21:12 amuck_ joined #parrot
21:12 NotFound In a linux i386 system
21:12 dalek tracwiki: v3 | Austin_Hastings++ | BigProjectIdeas
21:12 dalek tracwiki: Added table, L1 entry.
21:12 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Big​ProjectIdeas?version=3&amp;action=diff
21:12 Coke ... I am confused how you will know if NQP is sufficient if you are not going to be compiling it.
21:13 chromatic If there are operations we can't translate from C to NQP because NQP cannot represent them, we know NQP is not sufficient.
21:14 bacek_ "Bare" NQP is not sufficient.
21:14 bacek_ We need at least "SUPER" and "strong typing"
21:14 Austin C'mon. IT's turing complete.
21:15 chromatic We don't need strong typing.
21:15 chromatic C barely has typing anyway.
21:15 bacek_ "my INTVAL $res"?
21:16 dalek tracwiki: v1 | Austin_Hastings++ | LevelOne
21:16 dalek tracwiki: Created L1 overall page
21:16 dalek tracwiki: https://trac.parrot.org/parrot/wiki​/LevelOne?version=1&amp;action=diff
21:16 Austin Chromatic: Why does filehandle::open create a return continuation inside the C code?
21:16 Coke chromatic: that doesn't really help clarify your intent for me.
21:17 chromatic I don't know how to be any clearer.
21:17 chromatic I really don't know what's confusing you.
21:17 chromatic Austin, I don't know; I can't think of a reason why it should.
21:17 Austin It's part of the boilerplate.
21:17 bacek_ Coke: let me try.
21:17 Coke chromatic: pretty much your entire plan except for the beginning and the end.
21:17 Whiteknight hello Austin
21:17 Coke bacek_: please don't bother. =-)
21:17 chromatic To me, you're asking "Why are you trying to see if what you want to do is possible?"
21:18 chromatic To which my answer is "How else are you going to see if what you're trying to do is possible?"
21:18 bacek_ Currently pmc2c doesn't parse "C bodies". It's just bunch of regexes.
21:18 Austin Chromatic: I think maybe the expectation is that some methods will need to call PIR, so pmc2c just makes one.
21:18 Coke chromatic: but what you're trying to do is <over here>, and the goal of <implement l1> is over there.
21:18 bacek_ We have to semantically parse them for emitting something different than C
21:19 chromatic Sure, but if they call PIR they have to do so through a C function which knows how to call PIR.
21:19 bacek_ So, instead of writing parser for pseudo-C-in-PMC we'll try to use NQP.
21:19 Whiteknight I've been thinking a lot about the necessary NQP syntax, and I think it's very possible to add what we want in a Perlish way
21:19 bacek_ And emit C from NQP.
21:20 Coke bacek_: that's a new bit of information. (that the NQP will be emitting C)
21:20 bacek_ After it we can check what kind of L1ops we need.
21:20 Coke but if the NQP is emitting /c/, I again don't see the line between there and L1.
21:20 skids This I was around for: eventually NQP emits L1 instead of C
21:21 Coke (but it's definitely closer than writing NQP that we're not going to compile but just check for some kind of mental validity.)
21:21 chromatic We're not going to compile YET.
21:21 bacek_ "With the syntax requirements set, we can then modify the NQP parser to output normal C for now, and eventually redo the backend to output L1 instead."
21:21 Coke but if the NQP is emitting the same C that we're already emitting... that again raises the question "why go to NQP - you already have C".
21:21 bacek_ We have no idea about those C bodies.
21:21 chromatic Because we're trying to ELIMINATE C.
21:22 chromatic That is the point of the exercise.
21:22 chromatic Along the way, we get to eliminate the fragile Perl 5 parser too.
21:22 Coke chromatic: bacek_'s send "with the require..." is a key bit of missing information in our previous conversation.
21:22 bacek_ It's not parser...
21:22 chromatic It's a parser, just not a good one.
21:22 skids I think part of the problem with all this is that you pretty much have to spend all day backlogging just to pick up on details like that.
21:23 chromatic Or read the description on the Wiki.
21:23 Coke url?
21:23 bacek_ o c'mon... It parses only structure of pmc.
21:23 bacek_ https://trac.parrot.org/parrot/wiki/L1Recap
21:24 bacek_ (parser) pmcc already parse pmcs better than pmc2c.
21:24 skids Right but you have to have been around when the wiki page got dalek'd, or see an announce about it, or you don't know it exists.
21:24 chromatic Sure, but you have to use the verb "to parse" to describe it.
21:24 bacek_ I'll probably use "to jam" or "to squash"...
21:25 bacek_ Or "to munge"
21:25 skids transliterate?
21:25 bacek_ Definitely not "to parse"...
21:25 chromatic I dunno, you're cutting a line awfully thin there.
21:26 dalek parrot: r39778 | whiteknight++ | branches/io_cleanups (6 files):
21:26 dalek parrot: [io_cleanups] rename PARROT_NET_DEVEL to PARROT_NETWORKING_SUPPORT as per TT #534. Remove some unnecessary instances of it, preparing a major overhaul in how it is used
21:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39778/
21:26 Whiteknight It's worth thinking that L1 is the abstraction layer we should have had in the first place, instead of PASM. PASM doesn't do what we need it to do in order to make Parrot fast, so we need a new abstraction layer
21:26 Whiteknight a better, faster, more well-thought-out layer
21:27 bacek_ "There is no such problem that can't be solved by additional layer of abstraction" :)
21:27 skids "thought out" Including realtime hints/guidelines?  (pester)
21:27 Whiteknight Right now we have this: HLL->PIR->PBC. What we want is HLL->L1.
21:28 Coke Whiteknight: "where's the bytecode" ?
21:28 Whiteknight L1 is the bytecode
21:28 Coke but it's not PBC?
21:28 Whiteknight not PBC as we currently know it
21:28 Whiteknight but no, PBC is not a good form for direct execution
21:28 purl okay, Whiteknight.
21:29 Coke which concerns me, since a lot of effort has gone in to the bytecode definition, tools for examining, dumping, debugging...
21:29 chromatic Those are sunk costs.
21:29 Coke sunk costs/
21:29 Whiteknight Coke: We can still have PBC as a concise storage format for L1, and all that same work will be usable for L1 as well
21:29 dalek parrot: r39779 | bacek++ | branches/tt761_keys_revamp/src/pmc/string.pmc:
21:29 Coke sunk costs?
21:29 dalek parrot: [pmc] Avoid boxing in String's (get|set)_(integer|string)_keyed by
21:29 dalek parrot: implementing "_int" version of those functions and delegating from
21:29 dalek parrot: original.
21:29 purl NO perigrin is THE ORIGINAL!
21:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39779/
21:29 dalek parrot: r39780 | bacek++ | branches/tt761_keys_revamp/src/pmc (3 files):
21:29 dalek parrot: [pmc] Implement StringIterator.
21:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39780/
21:30 * skids drivetime
21:30 Whiteknight yeah, I have to go drivetime too
21:30 PerlJam So ... how come you guys didn't think up L1 sooner?!?  ;-)
21:30 Whiteknight PerlJam: We had to make the mistake of PASM first
21:30 PerlJam indeed.
21:30 Whiteknight plus, I'm still a Parrot n00b :)
21:31 chromatic Sunk costs means that we'll never get that time or those resources back, and making decisions based primarily on the desire not to see that wasted is an economic fallacy.
21:32 Coke chromatic: I was more concerned about changing our bytecode format irrevocably for our end users.
21:32 Whiteknight exactly, we don't all still use Fortran because so many people spend so much time on the compiler
21:32 Coke not that I think realistically that we have any yet.
21:32 Whiteknight Coke: that's not a worthwhile concern at this point since our bytecode is currently not cross-platform compatible or cross-version compatible
21:32 Whiteknight the whole thing needs a redesign anyway, may as well be a big one
21:33 dalek parrot: r39781 | bacek++ | branches/tt761_keys_revamp/t/native_pbc (4 files):
21:33 dalek parrot: Rebuild native PBCs...
21:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39781/
21:33 dalek rakudo: 7187b9f | moritz++ | docs/ChangeLog:
21:33 dalek rakudo: [docs] update ChangeLog
21:33 * bacek_ reading Whiteknight's message and compare it to own commit...
21:33 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​187b9f2c33b2eb1ee131fe241963fd8197f49a1
21:33 dalek rakudo: 9e9c3cc | moritz++ | src/setting/Operators.pm:
21:33 dalek rakudo: oops, forgot to add Operators.pm
21:33 dalek rakudo: Now also with some initial implementation of infix:<eqv>
21:33 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​e9c3cc6825745c3f28a0e06dbf4123772a7ba4e
21:37 dalek tracwiki: v2 | Austin_Hastings++ | LevelOne
21:37 dalek tracwiki: https://trac.parrot.org/parrot/wiki​/LevelOne?version=2&amp;action=diff
21:38 Whiteknight Coke: If you look at VMs like SquirrelFish and TraceMonkey, they're setting some amazing performance standards because they picked a proper level of IL abstraction, and they're able to make use of all sorts of cutting edge dynamic language optimization techniques because of it
21:38 Whiteknight proper PIC, trace-based JIT, context threading, etc
21:40 amuck__ joined #parrot
21:40 Coke Whiteknight: any particular reason not to drop parrot in favor of them, then?
21:40 PerlJam squirrelfish sounds just like parrot from what I just read about it.
21:40 Coke can't beat 'em, join 'em, etc?
21:40 Whiteknight Coke: They tend to be highly specialized and tuned towards JavaScript
21:41 Whiteknight I doubt SquirrelFish or TraceMonkey could easily be made to work with Perl6 or TCL for instance
21:41 Austin WhiteKnight: But P6 is using prototype based OO, which is what JS uses. It's destiny.
21:41 PerlJam Whiteknight: that's a challenge you should make to some squirrelfish experts :)
21:41 Austin Yeah.
21:42 Austin WhiteKnight, are you willing to take a pie in the face if they can run P6 faster 12 months from now?
21:42 Whiteknight Austin: No, I don't have much doubt that they could right now
21:42 Austin LOLOLOL
21:42 Coke Whiteknight: the problem with porting tcl to ANY vm other than the one it ships with is performance. I would bet you that tcl targetting SF is at least comparable with a tcl targetting parrot, performance wise.
21:42 Whiteknight far more effort has gone into optimizing modern JS engines then has ever gone into Parrot
21:43 Whiteknight that doesn't mean we can't optimize, there are plenty of opportunities for that coming up, but right now that hasn't been our priority
21:43 PerlJam Whiteknight: preaching to the choir :)
21:46 * Whiteknight has to disappear now
21:46 Whiteknight later
21:51 bacek_ OrderedHash makes me mad...
21:51 bacek_ Hash.push_pmc??? OMGWHAT???
22:06 Tene bacek_: what are you doing with the PMCs, btw?  I remember reading earlier...
22:07 bacek_ Tene: I'm trying to deuglify Keys...
22:21 dalek rakudo: 6c43f93 | moritz++ | src/setting/Operators.pm:
22:21 dalek rakudo: make eqv rely on infx:<===> more
22:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​c43f93dc9b0bd16f705d7e6b22b741539e3fd6a
22:32 dalek parrot: r39782 | chromatic++ | trunk/src/pmc/stringhandle.pmc:
22:32 dalek parrot: [PMC] Fixed an unused return value compiler warning about the Parrot_io_open()
22:32 dalek parrot: call in StringHandle's open() method.
22:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39782/
22:34 rg joined #parrot
22:38 dalek parrot: r39783 | chromatic++ | trunk/compilers/imcc/reg_alloc.c:
22:38 dalek parrot: [IMCC] Fixed some signedness mismatch warnings in the register allocator.  No
22:38 dalek parrot: functional changes, unless you count the possibility of additional correctness
22:38 dalek parrot: in excessively unlikely possibilities a functional change.
22:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39783/
22:47 cotto joined #parrot
22:49 cotto apparently PIT has free wireless, which I'll be using for the next several hours.
22:49 cotto happy!
22:51 chromatic The airport?  Really?  Nice.
22:51 chromatic PDX does too, which is super happy.
22:52 cotto It's a good thing too, because I got here too late to check in to my flight, so I'm taking one at 0430 tomorrow.
22:52 dalek parrot: r39784 | chromatic++ | trunk/t/compilers/imcc/syn/regressions.t:
22:52 dalek parrot: [t] Added IMCC syntax error regression test for RT #60172, a segfault in an
22:52 dalek parrot: IMCC syntax error.
22:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39784/
22:52 cotto now if only I had something to hack on...
22:52 chromatic I'm sure we could find a way for you to couch surf somewhere around here if you don't want to enjoy a lovely airport for the next 10 hours.
22:54 cotto I appreciate the offer, but it's no big deal.  I couldn't take the bus back because the earliest one arrives here at 0512 and a taxi is out of my budget.
22:55 chromatic Good point.  Sucks.
22:55 cotto That's entirely a function of my attitude.  atm, I'm looking forward to some good dedicated hacking time.
22:57 kurahaupo joined #parrot
23:00 snarkyboojum joined #parrot
23:01 bacek_ joined #parrot
23:03 dalek TT #688 closed by chromatic++: Fakecutable creation by pbc_to_exe is critically slow for large PBC files.
23:03 dalek TT #730 closed by chromatic++: [bug]  IMCC chokes on unicode strings as method call names
23:14 Limbic_Region joined #parrot
23:15 chromatic joined #parrot
23:16 patspam joined #parrot
23:18 tetragon joined #parrot
23:24 magnachef joined #parrot
23:29 jevin joined #parrot
23:30 skids joined #parrot
23:36 cotto bacek_, is there any reason generate_body_part for PAST::Stmts puts curly braces around its output?
23:36 bacek_ cotto: erm... Probably no
23:38 cotto ok.  I'll take it out and see what happens.  it'll get a little messy with this next commit, but it'll also be the last step of generating class_init.
23:38 cotto next is cleanup, passing existing tests and writing some new ones.
23:39 bacek_ good-good.
23:40 bacek_ We need more tests for parsing failures, etc.
23:42 cotto yeah.  Some of the work will also involve more aggressive sanity checking.  pmc2c sucks in that regard.
23:43 bacek_ indeed
23:50 dalek parrot: r39785 | cotto++ | branches/pmc_pct/compilers/pmcc/src (6 files):
23:50 dalek parrot: [pmcc] finish code to emit class_init, now for cleanup
23:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39785/
23:56 cotto Either Rick Astley's coming back or the restaurant I'm in is getting rickrolled.
23:57 cotto I do feel good that he'll never tell a lie and hurt me.
23:57 bacek_ :)
23:57 bacek_ time to $dayjob...
23:57 bacek_ See you
23:59 cotto bye
23:59 cotto I may get one of those for myself soon.

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

Parrot | source cross referenced