|
Parrot 1.3.0 "Andean Swift" released | parrot.org Set by moderator on 23 June 2009. |
|||
| GeJ | Good Morning everyone | 00:02 | |
| Infinoid | Whiteknight++ # yapc recaps | ||
| kid51 | Where are those recaps? | 00:05 | |
| wiki? list? blog? | |||
| cotto | kid51, L1Recap on Parrot's wiki, although there's also a version on his blog | 00:07 | |
| Whiteknight | cotto: pong | 00:08 | |
| kid51 | trac.parrot.org/parrot/wiki/L1Recap | ||
| Whiteknight | yeah, the L1 recap was on the blog, I didn't really write any other recaps | ||
|
00:10
eternaleye joined
|
|||
| 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 | ||
| 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 | ||
| cotto | ah. pipelining | ||
| Whiteknight | cotto: definitely. I write much faster now then I used to | ||
| dalek | rrot: r39759 | whiteknight++ | branches/io_cleanups (16 files): [io_cleanups] back out the changes to Handle. It's the right idea to solve the problem, but wrong implementation |
00:13 | |
| Whiteknight | yeah, I've written about a dozen YAPC posts already, will slowly let them out all week | 00:14 | |
| cotto | Whiteknight++ for all the writing (and saying ++ out loud) | 00:16 | |
| Whiteknight | Infinoid: At YAPC I was calling you "Infinoid plus plus" (because that's how I usually refer to you online :) | 00:19 | |
| dalek | rrot: r39760 | whiteknight++ | branches/io_cleanups/src/pmc/socket.pmc: [io_cleanups] reapply my fix to socket to plug a memory leak here |
00:20 | |
| Infinoid | heh, wow | 00:21 | |
| I got mentioned? | |||
| (I was referring to your L1 and #ps recaps on-list, btw) | 00:22 | ||
| Whiteknight | Infinoid: you have that patch to add pipes again? it's time to apply it | 00:25 | |
| (I lost my link) | 00:26 | ||
| Infinoid greps logs for The Patch | |||
| nopaste.snit.ch/16980 | |||
|
00:28
eternaleye joined
|
|||
| Whiteknight | that's missing a t/pmc/pipehandle.t file | 00:30 | |
| codingstd is going to bitch at me about that | |||
| Infinoid | yeah, they're both in the same test at the moment | 00:32 | |
| as mentioned before, the test is a work in progress | 00:33 | ||
| Whiteknight | okay, i'll performs some surfery | ||
| surgery | |||
| Infinoid | I would work on it, but instead I'm unpacking the 23" monitor so I can watch Fearless (2006) on it :) | 00:34 | |
| cotto | WANT | 00:35 | |
| Infinoid | The best part of moving is rediscovering all your fun toys afterwards | ||
| cotto | unless it's crt | ||
| Infinoid | Nope! | ||
| cotto: They're cheap, like $200 on newegg | |||
| cotto | no wai | ||
| I'll have to upgrade once I get a job. | |||
| Infinoid | cotto: www.newegg.com/Product/Product.aspx...6824009162 | 00:36 | |
| Whiteknight | Infinoid: you're going to love this next commit | 00:37 | |
| dalek | rrot: r39761 | whiteknight++ | branches/io_cleanups (3 files): [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 | |
| Infinoid | haha | ||
| I still have no idea if those work, wish we could test them | 00:40 | ||
| dalek | rrot: r39762 | japhb++ | trunk (2 files): [OpenGL] Work around more crazy nVidia fun |
00:44 | |
| Whiteknight | no idea if what works, pipes? | ||
| Infinoid | yeah | 00:46 | |
| the test makes sure you can create them but doesn't try any actual I/O | 00:47 | ||
| those tests are commented out because of The (thread) Fail | |||
| cotto | seen darbelo | ||
| 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] | ||
| cotto | Hmm. about 1 days ago | 00:48 | |
| seen darbelo | |||
| 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] | ||
| Whiteknight | Infinoid; instead of using threads, couldn't we just spawn another instance of Parrot? | ||
| dalek | rrot: r39763 | whiteknight++ | branches/io_cleanups/t/pmc (2 files): [io_cleanups] add a pipehandle.t test to shut up the codingstds |
||
| Infinoid | Whiteknight: If you can fork in a way that also works on win32, that would suit the test's needs just fine | ||
| 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? | ||
| 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. | ||
| Whiteknight | or do we still have to use FileHandle for that? | ||
| 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 | ||
| 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 | ||
| I guess I was trying to test it in a more direct fashion, but that's certainly better than nothing | |||
| cotto | allison, ping | ||
| Whiteknight | okay, I'm just making sure I'm not crazy | 00:52 | |
| allison | cotto: pong | ||
| cotto | allison, is tewk alive? | ||
| allison | cotto: I don't know | ||
| Whiteknight | okay, I | ||
| 'm going to bed. Goodnight all | |||
| cotto | that's worrying | ||
| night, Whiteknight | 00:53 | ||
| Infinoid | sleep well | ||
| cotto | Hmmm. Maybe we should call the nqp used to implement PMCs and ops nqp++ | 01:12 | |
| karma nqp | |||
| purl | nqp has karma of 1 | ||
| cotto | nqp++++ | ||
| karma nqp++ | |||
| purl | nqp++ has neutral karma | ||
| cotto | karma nqp | ||
| purl | nqp has karma of 2 | ||
| cotto uses his newfound knowledge of purl's internal to take over the world | 01:13 | ||
| allison, is there anything wrong with including a header in generated code when it isn't always necessary? | 01:18 | ||
|
01:18
japhb joined
|
|||
| dalek | rrot: r39764 | Infinoid++ | branches/io_cleanups/t/native_pbc (5 files): [cage] Regenerate native pbcs. |
01:19 | |
|
01:27
dukeleto joined
01:31
s1n_yapc joined
01:36
kid51 joined
01:54
s1n_yapc left
02:01
kurahaupo joined
02:14
flexibeast joined
|
|||
| 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 | |
| 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. | |||
| I think this behaviour would be a better match for human expectations when faced with "honey or jam" type questions. | |||
| But I'm thinking aloud; what do others think? | 02:17 | ||
| cotto | braaaiiiiinnnnnnnsssssss | 02:19 | |
| kurahaupo | (This would also solve the associativity problem) | ||
|
02:19
dukeleto joined
|
|||
| kurahaupo | cotto: is that an observation, requirement, request or hunger-pang? | 02:20 | |
| :-) | |||
| cotto | 3 and 4 | ||
| purl | 7 | ||
| cotto | kurahaupo, what language are you talking about? Parrot has several internal languages and lots more that run on top of it. | 02:21 | |
| 983742 and 3283 | 02:22 | ||
| purl | 987025 | ||
| cotto | 983742 and 3283 minus 983283 | ||
| flexibeast | cotto: i presume perl6. | 02:23 | |
| kurahaupo | Erm, yes. Perl6 | ||
| 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. | ||
| nopaste a diff | |||
| 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 | ||
| kurahaupo | Sorry, something odd in my chat client; redirected me to #parrot when I (thought I) asked for #perl6 | ||
| cotto | this if you don't: | ||
| nopaste? | |||
| purl | nopaste is, like, at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ | ||
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| cotto | kurahaupo, np. | ||
| flexibeast | Sorry, i should have been clearer: i meant the Parrot book, online. | ||
| cotto | that's in svn too, under docs/book | 02:26 | |
| flexibeast | Ah, okay. | ||
| Thanks! | 02:27 | ||
| 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:28 | |
| Just let me know how you'd like to be credited (full name, irc nick, numerical designation, etc). | 02:29 | ||
| flexibeast | Okay, cool. | 02:30 | |
| 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. | ||
| cotto | msg particle I was wrong about hcf being removed. It was just moved to a dynop. It's in src/dynoplibs/myops.ops . | ||
| purl | Message for particle stored. | ||
| kid51 | msg particle Please review trac.parrot.org/parrot/ticket/786#comment:7 | 02:46 | |
| purl | Message for particle stored. | ||
|
02:49
chromatic joined
02:50
eternaleye joined
03:17
magnachef joined
03:20
magnachef_ joined
03:21
donaldh joined
|
|||
| pmichaud | hello, #parrot | 03:22 | |
| Tene | hi pmichaud | ||
| 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:23 | ||
| 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) | ||
| 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. | ||
| pmichaud | sure, they do, but that's p6 specific | 03:26 | |
| that doesn't mean it's intended to be the model for Parrot. | |||
| 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. | ||
| 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? | ||
| pmichaud | define "rakudo fail" | ||
| I mean, clearly I can do | 03:29 | ||
| my $x = some_rakudo_function(); $x.nonexistent_method() and "rakudo fails" | |||
| Tene | I'm not sure, really. I haven't worked anything specific out yet. | 03:30 | |
| pmichaud | right. | 03:31 | |
| Let me put it this way... | |||
| but keep in mind I'm likely to phrase it badly | |||
| Rakudo doesn't intend to be the tail that wags Parrot | |||
| 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 | ||
| it may do them more slowly, however. | 03:33 | ||
| Tene | Okay, that's what I hoped/expected. :) | ||
| pmichaud | so, in that sense, Rakudo doesn't expect Pynie or any other HLL to be using P6object. That's entirely up to them. | ||
| 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. | ||
| pmichaud | I'm not so keen on removing .WHAT, .HOW, etc from it, because those are really the whole point of the metamodel. | ||
| i.e., the metamodel exists to provide those methods. | 03:35 | ||
| going to the &foo question you just posed... | 03:36 | ||
|
03:36
tetragon joined
|
|||
| pmichaud | do you mean that &foo.signature currently fails? | 03:36 | |
| Tene | I mean that... | ||
| pmichaud | I'm not entirely sure how to handle that (more) | ||
| Tene | sub foo(&bar) is export { &bar(1) }; | ||
| (foo (lambda () ( ... ))) | 03:37 | ||
| causes a signature fail | |||
| pmichaud | oh, you mean a type-mismatch for bar? | ||
| er, &bar | |||
| Tene | Yes! | ||
| Type mismatch. | |||
| pmichaud | sure, we're aware of that (more) | ||
| 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. :) | ||
| pmichaud | (Perl 6 requires that any object bound to a &-sigil variable support the Callable role) | ||
| so my best guess at this point is that all Parrot subs will eventually be treated as "Callable" | 03:39 | ||
| 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. | |||
| Tene | Right, okay. | 03:40 | |
| That's good enough for me. | |||
|
03:43
japhb joined
03:46
japhb joined
|
|||
| japhb | Tene, pmichaud: Since P6object existed for things like PCT to have a Perl 6-like metamodel, why not call it PCTobject? | 03:52 | |
| That should quiet the PCT haters .... | 03:53 | ||
| er, | |||
| "P6" haters | |||
| pmichaud | I don't want to people to mis-conceive that it's only intended for PCT. | 03:54 | |
| because the next step would then be to try to move it into compilers/pct, which would be incorrect. | |||
| japhb | MOPobject? | 03:56 | |
| pmichaud | perhaps. | ||
| cotto | ObjectBuilder (although that's awfully Javay) | 03:57 | |
| japhb hates to see progress at all delayed by terminology | |||
| pmichaud | well, the obvious correct name is "P6object", because it's implementing P6's metamodel | ||
| and I deliberately chose "P6" instead of "Perl6" to indicate that it's just a subset of that model | 03:58 | ||
| but I understand that others might be put-off-by the "P6", or confused by it. | |||
| japhb | Exactly. I suggested MOPobject based on thinking about Class::MOP | 03:59 | |
| pmichaud | "MOP" presumably stands for "meta object protocol"? | 04:00 | |
| 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 | |
| nod | |||
| pmichaud | well, that's kinda the issue with "MOP". P6object is only one instance of a metaobject system | ||
| there could be other metamodels; each would have their own "metaobject protocol" | 04:02 | ||
| maybe "POP" | |||
| for "Prototype object protocol" or something like that | 04:03 | ||
| (downside: POP already has other meanings) | |||
| POM? Protoobject model? | |||
| I dunno. | |||
| 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. :-) | ||
| pmichaud | well, I kinda have to be careful of such things in p6 also, because we support multiple object systems there too :-) | 04:08 | |
| japhb | OK, so maybe we need to name this particular MOP with a nice short acronym, like M1. M1object? MO1object? | 04:13 | |
|
04:23
Theory_ joined
|
|||
| dalek | rrot: r39765 | petdance++ | trunk/include/parrot/stacks.h: made a change to Stack_cleanup_method to match the function pointer in the struct |
04:32 | |
| chromatic | ... not that we use that code. | ||
| 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. | ||
| purl | Message for cotto stored. | ||
| afk_coke | msg cotto (of course we have to deprecate it, but now is a great time for that. =-) | ||
| purl | Message for cotto stored. | ||
| 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. | ||
| 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 | ||
| *same | |||
| Coke | cotto: given how many failure report we have gotten about it, I disagree. (I agree with doughera) | 04:37 | |
| it detracts from getting other stuff done. In fact, I will open the ticket myself since it's my fault. | |||
| cotto | It has tests? That seems unnecessary. What about ripping the tests out? | ||
| chromatic | Then we need workarounds for coverage tests. | 04:38 | |
| 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). | ||
| Coke, nope. | |||
| Coke | cotto: some platforms the test segfaults. | 04:41 | |
| "why does this segfault" "oh, it's just hcf. Don't mind us." | 04:42 | ||
| cotto | but I take taking myself seriously seriously | ||
| Coke | I opened a ticket. You and I cancel each other out. Let's see who else chimes in. | ||
| pmichaud | +1 for removing hcf | ||
| cotto sneakily messages particle, who likes it | 04:43 | ||
| dalek | TT #790 created by coke++: remove hcf dynop | ||
| chromatic | +1 for removing | ||
| We could use it as an example in documentation. | |||
| Coke | There's a ticket, vote there. =-) | ||
| chromatic: that's not a terrible idea. | |||
| pmichaud | +2 for writing an article or documentation that describes how to create dynops | ||
| (and can use hcf as a trivial example) | |||
| cotto | I'll let whatever happens to hcf happen. | ||
| chromatic | "not a terrible idea" hooray, now I can sleep! | 04:44 | |
| cotto | There are other ways to implement -Ofun | ||
| (including the dangerous optimizations that chromatic++ mentioned earlier in the week) | 04:45 | ||
| dalek | rrot: r39766 | petdance++ | trunk/src/stacks.c: consting a local var |
04:46 | |
| cotto | Maybe I'll name the release after it. | 04:47 | |
| (not really) | |||
| chromatic | I like that idea. | ||
| cotto | Hispanic Community Fund | 04:48 | |
| nothing wrong with supporting cultural diversity | |||
|
04:49
Austin_Hastings joined
|
|||
| 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 | |
| release_manager_guide.pod++ | |||
| chromatic | That's because you're not yet quite as outrageously creative as I am. | 04:53 | |
|
04:53
Austin_Hastings left
|
|||
| cotto | nope. I'll probably just call it "1.4". | 04:56 | |
| maybe 1.4i to make it more imaginative | 04:57 | ||
|
04:58
Austin joined
|
|||
| allison | on P6Object and Pynie: a bigger problem than name is that Python object semantics aren't prototype-based | 05:10 | |
| chromatic | They do have metaclasses though. | 05:11 | |
| allison | chromatic: yes, but so does Parrot's default object model | ||
| chromatic | Those are both MOPs. | 05:12 | |
| allison | aye | 05:15 | |
| the Class PMC is closer to Python than P6object | |||
| pmichaud | ...I'm not sure I understand why this is a problem yet. | 05:22 | |
| actually, I'm sure I don't understand why it's a problem. | 05:23 | ||
|
05:31
amuck joined
05:34
preflex joined
05:41
ilia joined
05:48
dukeleto joined
06:11
uniejo joined
06:39
st joined
06:47
iblechbot joined
07:21
donaldh joined
07:25
viklund joined
07:49
japhb joined
07:50
elmex joined
07:52
st joined
|
|||
| mikehh | manifest_tests FAIL - # Failed test 'No need to regenerate MANIFEST.SKIP' - All others PASS - pre/post config, smoke. fulltest at r39766 | 08:29 | |
| Ubuntu 9.04 i386 | |||
| it took me just over an hour - 1:05 to build, smoke and run fulltest | 08:31 | ||
|
08:38
particle joined
08:39
Austin joined,
Zak joined
08:41
bacek_ joined
08:44
snarkyboojum joined
09:30
bacek_ joined
09:33
mikehh_ joined
|
|||
| bacek_ | o hai | 09:48 | |
| OMGWTF | 10:05 | ||
| String support Iterators! | |||
| bacek_ starring at facepalm.jpg | |||
| dalek | tracwiki: v24 | Infinoid++ | ParrotQuotes | 10:11 | |
| tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff | |||
|
10:15
dalek joined
|
|||
| Infinoid | moritz: github.com/Infinoid/dalek-plugins/b...groklog.pm | 10:16 | |
|
10:32
snarkyboojum joined
10:53
uniejo joined
11:04
whoppix joined
|
|||
| moritz | Infinoid++ | 11:11 | |
|
11:12
iblechbot joined
|
|||
| Infinoid | moritz: please test it. :) | 11:14 | |
|
11:20
donaldh joined
|
|||
| dalek | rrot: r39767 | bacek++ | branches/tt761_keys_revamp/src/pmc/hash.pmc: [pmc] Hash.slice is acually synonim for get_iter... |
11:31 | |
| rrot: r39768 | bacek++ | branches/tt761_keys_revamp/src/pmc/hashiterator.pmc: [pmc] Implement HashIterator.set_integer_native |
|||
| rrot: r39769 | bacek++ | branches/tt761_keys_revamp/src/pmc/iterator.pmc: [pmc] Drop old code code from Iterator. |
|||
| bacek_ still want to meet someone with baseball bat in hands... | 11:38 | ||
| moritz recommends a baseball pit for that | 11:39 | ||
| bacek_ | oh... I broke one of main rules in software development - DRY | ||
| moritz: In Soviet Russia many people buys baseball bats. But almost noone buys ball. | 11:41 | ||
|
11:41
jdv79 joined
11:44
burmas joined,
masak joined
11:45
Whiteknight joined
11:49
iblechbot_ joined
|
|||
| 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] | ||
| moritz | seen petdance | ||
| 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] | ||
| 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] | ||
| bacek_ | EIMDOINGITWRONG | 12:07 | |
| moritz | no hurry anyway | 12:15 | |
| AndyA | bacek_ do you want me or Andy Lester? | 12:20 | |
| Or some other random Andy? :) | 12:21 | ||
|
12:21
Coke joined
12:22
magnachef joined
|
|||
| bacek_ | AndyA: Lester :) And I already realised that "I'm doing it wrong" relying on tab-completion :/ | 12:22 | |
| AndyA | Cool - your IRC client has tab completion! :) | 12:23 | |
| moritz | you can throw away those that haven't ;-) | ||
| (at least if you have alternatives) | |||
| bacek_ | erm... It's 21st century, isn't it? | ||
| bacek@icering:~$ apt-cache search 'irc client'|wc -l | 12:25 | ||
| 43 | |||
| wow... | |||
|
12:26
magnachef_ joined
|
|||
| moritz | $ debtags search protocol::irc|wc -l | 12:26 | |
| 97 | |||
| bacek_ | moritz: it includes servers, libraries, etc | ||
| moritz | bacek_: I know | 12:27 | |
| $ debtags search protocol::irc|grep -i client|wc -l | |||
| 34 | |||
| bacek_ | looks about all right | ||
| moritz | seems not all packages are properly tagged yet | 12:28 | |
| bacek_ | .oO( May be it's time to check something else than xchat ) |
||
| moritz | otoh not everybody has the freedom to pick an arbitrary irc client | 12:29 | |
| bacek_ | s/to.*// | 12:30 | |
| Whiteknight | oh wow, my IRC client has tab completion too! | 12:44 | |
| moritz | Whiteknight: you're kidding me, are you? | ||
| Whiteknight | not this time, I don't really use tab completion, so I never noticed | ||
| moritz | I would spend half of my IRC time mis-spelling nicks without it ;-) | 12:46 | |
| Whiteknight | I'm using chatzilla right now, just because it's easy | 12:47 | |
| probably not the best of most full-featured client | 12:48 | ||
| moritz | I use irssi because it's so handy to have it in a screen session ;-) | 12:49 | |
|
12:50
bkuhn joined
13:17
skids joined
13:21
snarkyboojum joined,
cotto joined
13:22
gryphon joined
13:38
st joined
14:02
patch joined
14:19
amuck_ joined,
jhorwitz joined
|
|||
| Whiteknight hates .ps files | 15:05 | ||
|
15:18
Austin joined,
Austin left,
Austin joined
15:20
chromatic joined,
donaldh joined
|
|||
| dalek | kudo: c7ff050 | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 405 files, 11548 passing, 4 failing S12-enums/basic.rakudo 27 - short name of the enum without parenthesis is an enum S32-num/rand.t aborted 3 test(s) |
15:28 | |
|
15:38
davidfetter joined
15:55
Theory joined
|
|||
| dalek | rrot: r39770 | cotto++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm: [pmc2c] reverse the order in which direct parents are used |
16:11 | |
| rrot: r39771 | pmichaud++ | trunk/src/string/charset/unicode.c: [core]: modify upcase to work like downcase on unicode strings containing only ASCII characters |
16:25 | ||
|
16:46
Psyche^ joined
16:47
st joined
|
|||
| dalek | rrot: r39772 | NotFound++ | trunk (7 files): [cage] always str_dup and always mem_sys_free imcc state->file, should fix some leaks, TT #35 |
16:50 | |
|
17:14
cotto joined
17:23
sekimura joined
17:36
darbelo joined
17:44
bacek_ joined
|
|||
| dalek | rrot: r39773 | cotto++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm: [pmc2c] remove some code that doesn't (and can't afaict) get hit during the build |
17:56 | |
| cotto | lib/Parrot/Pmc2c/Method.pm +52 is classy | 17:59 | |
| I appreciate the laziness, but eew. | |||
| dalek | rrot: r39774 | cotto++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm: [pmc2c] remove some accidentally committed debugging code |
18:00 | |
|
18:02
kj joined
|
|||
| darbelo | cotto: ping | 18:05 | |
| cotto | darbelo, pong | 18:08 | |
| nice to see you around | 18:09 | ||
| darbelo | Saw your message about the PCT-based decTest parser. | 18:10 | |
| 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? | ||
| 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] | ||
| Coke | seen tewk before that? | ||
| useless bot | |||
| purl | Obsolete flesh creature | ||
| cotto | ok. it wasn't clear that the perl script was just an exploratory prototype. | ||
| Coke, I asked allison and she hasn't heard from him recently. | 18:14 | ||
| darbelo, as such it's fine, but be sure not to spend too much effort on it. | |||
| 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. | ||
| chance | |||
| dalek | TT #35 closed by coke++: ./parrot with no args leaks memory | 18:18 | |
| cotto | darbelo++ then. Perl can do such things, but we've got better tools. | 18:19 | |
| It's not over until it's over. | |||
|
18:21
silug joined
|
|||
| darbelo | On an unrelated note, I might have to start exposing the status on DecNumContext, so that exception handlers can clear it. | 18:21 | |
| Tene | Coke: need tewk? I could drive over to his house and leave a threatening note on the door... | 18:23 | |
| Coke | tene; nope. just the presense of darbelo reminded me. | 18:24 | |
| Tene: is rt.perl.org/rt3/Ticket/Display.html?id=61088 closable? (I thought that the REPL worked now?) | |||
| darbelo | tewk is the other GSoCer? | ||
| cotto | Tene, it couldn't hurt at this point, depending on the tone of the note. ;) | ||
| 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 | ||
| Coke | does his patch look sane? | ||
| seems a reasonable request. | 18:26 | ||
| darbelo | Doesn't melange offer some sort of message-sending-thing? That would mitigate the chances of a spam filter eating your messages. | 18:30 | |
|
18:31
uniejo joined
18:32
chromatic joined
|
|||
| Coke | chromatic; hio. | 18:42 | |
| pmichaud: I will attempt to merge our p6 notes and mail them out tonight for c to post later. | 18:44 | ||
| Tene | Coke: No, it's not. | 18:45 | |
| 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 | ||
| Coke: that issue is fixed. | |||
| Whiteknight | darbelo: yes, Tewk was the other GSoCer | ||
| chromatic | howdy | 18:47 | |
| purl | salut, chromatic. | ||
| chromatic | BIENVENIDO | ||
| Whiteknight | hello chromatic | 18:48 | |
| chromatic | Having said that, now I want food. | 18:49 | |
| Coke | Tene: can we apply that guy's patch? | 18:50 | |
| Tene | lemme read it | ||
| Whiteknight | Tene: you live close to Tewk? | 18:51 | |
| Coke | seems like printing the return value is desirable. | ||
|
18:51
athomason joined
|
|||
| Coke | (even tclsh's repl works that way. =-) | 18:51 | |
| Tene | Whiteknight: I do. I used to live less than a mile from him. | ||
| 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 | ||
| Whiteknight: eh? | |||
| Whiteknight | I was so excited about his project! | ||
| Tene | Whiteknight: I'm missing some context. I haven' tbeen following GSOC stuff. | 18:53 | |
|
18:54
Andy joined
|
|||
| 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 | ||
| dalek | tracwiki: v73 | whiteknight++ | WikiStart | 18:55 | |
| tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff | |||
| tracwiki: v74 | whiteknight++ | WikiStart | |||
| tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff | |||
| PerlJam | Whiteknight: or maybe he's secluded himself to hack it out and be done with it | 18:56 | |
| (obviously I'm wearing my optimist hat today) | |||
| Whiteknight | PerlJam: possible, let's all be optimists | ||
| Coke | ... that'll never work. | 18:57 | |
| PerlJam pulls a rabbit out of Coke's hat | |||
| Whiteknight pulls a hat out of PerlJam's rabbit | 18:58 | ||
| Coke | Nothing up my sleeve.... | ||
| Whiteknight | and nothing in your rabbit! | ||
| dalek | tracwiki: v1 | whiteknight++ | BigProjectIdeas | ||
| tracwiki: trac.parrot.org/parrot/wiki/BigPro...ction=diff | |||
| Whiteknight | allison: ping | 19:03 | |
| allison | Whiteknight: gnip | 19:05 | |
| Whiteknight | allison: Do we want all the API functions in src/pmc.c renamed to Parrot_pmc_*? | ||
| or, the larger question is, what functions exactly get this rename treatment? | |||
| allison | Whiteknight: yes | ||
| Whiteknight: everything | |||
| purl | everything is probably a string unless it is a valid num or boolean or everything, everything, everything, everything | ||
| dalek | tracwiki: v2 | whiteknight++ | BigProjectIdeas | ||
| tracwiki: created some scaffolding and some basic "sizes" that we can use to separate projects into like-sized groups | |||
| tracwiki: trac.parrot.org/parrot/wiki/BigPro...ction=diff | |||
| allison | Whiteknight: but, on a sane deprecation cycle | 19:06 | |
| Whiteknight | allison: okay. I thought a deprecation notice for this has already gone in? | ||
| allison | Whiteknight: there's already an entry for it in DEPRECATED.pod | ||
| Whiteknight | right, so you're just saying to spread out the changes to make less of a headache? | ||
| allison | Whiteknight: but, we still should exercise sanity in ripping out old code from under people | ||
| Whiteknight: exactly | |||
| 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 | ||
| chromatic | X is the name of the subsystem. | ||
| Whiteknight | and while we're renaming things [slowly], should we start moving files into subfolders? | ||
| 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 | ||
| chromatic thwaps Whiteknight with the OED. | |||
| 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 | ||
| allison | Whiteknight: so not necessarily the same as the file name | ||
| chromatic | Let's start on the functions already in subsystem directories. | ||
| allison | Whiteknight: and, yes, we do want to move the large C files in src into subdirectories | ||
| splitting them out into separate files | 19:09 | ||
| NotFound | I think RT #60172 may have been solved with yesterday's imcc fixes. | ||
| Whiteknight | Okay, I think that's all the information I need for now. Thanks! | ||
|
19:09
mvuets joined
|
|||
| allison | Whiteknight: and, again, changes in file structure are more disruptive, so need more caution | 19:09 | |
| 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 | ||
| chromatic | Well volunteered! | ||
| Whiteknight | I will start a wiki page, good idea | ||
| dalek | tracwiki: v75 | whiteknight++ | WikiStart | 19:12 | |
| tracwiki: create a page to talk about the ongoing work to rename and evaluate important API functions | |||
| tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff | 19:13 | ||
| 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 | ||
| purl | 1 | ||
| Whiteknight | +1 | 19:15 | |
| purl | 1 | ||
| Whiteknight | purl-- | ||
| purl | Whiteknight: huh? | ||
| NotFound | Need a deprecation cycle for that? | 19:16 | |
| pmichaud | Coke: (p6 notes) sounds awesome, thanks. | 19:19 | |
|
19:23
bacek_ joined
|
|||
| dalek | tracwiki: v1 | whiteknight++ | APIFuncRenaming | 19:26 | |
| tracwiki: creating some initial lists of things that can be removed/renamed | |||
| tracwiki: trac.parrot.org/parrot/wiki/APIFun...ction=diff | |||
| cotto | Whiteknight, you spell that < purl-- > | 19:27 | |
| Try practicing it a few times so you get the hang of it. ;) | |||
| Whiteknight | < purl-- > | ||
| :) | |||
|
19:30
rakudohudson joined
|
|||
| dalek | kudo: e0a9d86 | pmichaud++ | perl6.pir: Allow operator definitions in settings (resolves RT #66826). |
19:32 | |
| kudo: c6b283f | pmichaud++ | : Merge branch 'master' of git@github.com:rakudo/rakudo |
|||
| Coke | Whiteknight: s/pt/thr/ | 19:33 | |
| (we already know they're /parrot/ threads) | |||
| 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 | ||
| Coke | I also wish to rename things like ParrotInterpreter to Interpreter, fyi. =-) | 19:35 | |
| NotFound | Coke: I disagree. That may cause name conflicts for embedders. | 19:36 | |
|
19:36
burmas left
|
|||
| Coke | NotFound: I think you'll find that the PI stuff is now called Parrot_ParrotInterpeter. | 19:37 | |
| NotFound | Ah, fine in that case. | 19:38 | |
| Whiteknight | Coke: add it to the task list | ||
| 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 | ||
| me Thor say add! Me Thor no like not add! | 19:42 | ||
| I wonder if the threading files should just be part of the Parrot_cx_* system? | 19:49 | ||
| I mean, it is concurrency | |||
| Coke | +.02 | 19:50 | |
| purl | 0.02 | ||
| dalek | tracwiki: v2 | whiteknight++ | APIFuncRenaming | ||
| tracwiki: add two changes from Coke++ | |||
| tracwiki: trac.parrot.org/parrot/wiki/APIFun...ction=diff | |||
| Whiteknight | Purl | ||
| purl | Whiteknight? | ||
| Coke | purl | ||
| purl | Coke? | ||
| Whiteknight | Purl: 1/0 | ||
| purl | o/` everyone knows it as NaN, see? o/` | ||
| Coke | purl 2**50 | 19:51 | |
| purl | 1.12589990684262e+15 | ||
| Coke | purl 2**150 | ||
| purl | 1.42724769270596e+45 | ||
| Coke | purl 2**150**150 | ||
| purl | Coke: huh? | ||
| Coke | purl 2**100000000 | ||
| purl | Coke: what? | ||
| Coke | purl 2**1000000 | ||
| purl | Coke: excuse me? | ||
| Coke | purl 2**100000 | ||
| purl | Coke: i'm not following you... | ||
| Coke | purl 2**10000 | ||
| purl | it has been said that 2**10000 is 3011 digits long in base 10. | ||
| Coke | purl 2**1000 | ||
| purl | 1.07150860718627e+301 | ||
| Coke | you're no fun, purl. | ||
| purl | Coke: excuse me? | ||
| dalek | kudo: 62094c1 | moritz++ | (2 files): implement (eager) series operator |
19:55 | |
| kudo: d03148d | moritz++ | t/spectest.data: test series operator |
|||
|
19:57
bobke joined
|
|||
| dalek | rrot: r39775 | NotFound++ | trunk (12 files): [core] add new function mem_sys_strdup to memory.h and replace several usages of str_dup with it |
19:58 | |
| Coke | NotFound++ | ||
|
20:00
mvuets left
|
|||
| 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? | ||
| Coke | Whiteknight: because I am not equally skilled at all tasks. | 20:05 | |
| Whiteknight | so TCL needs different types of patches then Rakudo needs? | ||
| Coke | Whiteknight: Tcl. | 20:06 | |
| Whiteknight | whatever it is | ||
| tlc | |||
| tlC | |||
| tCl | |||
| Coke | Whiteknight: converting Tcl to use PCT is a big lift for me. It would probably be easier to add lazy ranges to RAKUDO. | ||
| Whiteknight | I dont even know what would be required to make that switch, I was never able to dig into it deeply enough | 20:07 | |
| Coke | Whiteknight: neither do I. =-) | 20:08 | |
| Whiteknight | okay, i'm heading home now. Later | 20:09 | |
| Coke | www.sdtimes.com/link/33566 | ||
| dalek | rrot: r39776 | NotFound++ | trunk/compilers/imcc (5 files): [imcc] replace str_dup with mem_sys_strdup in lexer and parser |
20:10 | |
|
20:11
chromatic joined
20:20
clunker9_ joined
20:26
patch left
20:27
chromatic joined
|
|||
| Coke | hello, goodbye. | 20:27 | |
| chromatic | Re: pt, pt I thought stood for pthread, not Parrot Thread. | 20:28 | |
| 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. | ||
| 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? | ||
| bacek_ | good morning... | ||
| purl | And good moroning to you, bacek_. | ||
| Austin | I have a naming question unrelated to the current conversation: "phylum" or "mop" ? | 20:31 | |
|
20:31
kid51 joined
|
|||
| Austin | Guten Morgen, bacek. | 20:33 | |
| bacek_ | ŠŠ¾Š±Ńое ŃŃŃŠ¾, Austin | ||
| Austin | Hmm.. was that unicode? | 20:34 | |
| bacek_ | Austin: yes. | ||
| Austin | Apparently not supported out of the box by Hydra | ||
| bacek_ | Hydra? | ||
| purl | well, Hydra is ayrnieu's favorite animal or at 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 marc.theaimsgroup.com/?l=jedit-user...66&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 | ||
| Austin | HydraIRC, some kind of FOSS IRC client for windows. | 20:36 | |
| People were mocking me for using Pidgin, so I'm trying some other stuff. | |||
| 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 | ||
| chromatic | Maybe it's written in Ruby. | ||
| moritz | maybe it's just a wrongly configured character encoding | ||
| Austin | It's not that bad. Nobody uses Unicode but freaks and furriners. | ||
| dalek | rrot: r39777 | jkeenan++ | trunk/MANIFEST.SKIP: Someone forgot to update this. |
||
| Austin | I'm wondering if it's a font thing. | ||
| kid51 | Austin: At my $job, Pidgin is quite popular for AIM on Linux. | 20:39 | |
| Austin | Whoa. Can't copy from output window. HydraIRC-- | ||
| chromatic: Is there any kind of pre-spec for L1? | 20:41 | ||
| chromatic | The ops themselves? Not yet. | 20:42 | |
| Austin | The modules? | ||
| purl | Modules. Modules are the best thing to ever happen to Perl. Without modules, Perl would be like Python or good for just discussion | ||
| chromatic | I don't know what "modules" means in this context. | 20:43 | |
| Austin | Whatever is bigger than ops. | ||
| chromatic | cotto's experimented with using NQP to write PMCs. | ||
| pmichaud suggested using that to drive what L1 ops we need. | |||
| Austin | Okay. Maybe he's got some results... | 20:44 | |
| 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. | ||
| sorry, not C, ``C''. | |||
| chromatic | We translate the NQP by hand into the corresponding L1 ops. | 20:47 | |
| We use that to identify the behavior L1 must support. | |||
| 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? | ||
| Austin: yes. | |||
| rewriting the pmc in nqp doesn't address the generated C at all, does it? | |||
| 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." | ||
| 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.) | ||
| chromatic | Just the PMC C. | ||
| 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" | ||
| s/it's/its/ | 20:51 | ||
| You effectively partition the "PMCs" we currently have into larger data structures with finer-grained ops | |||
| Coke | Austin: That reads like a non-sequitor to me. | 20:52 | |
| and doesn't help me understand the point of translating the C through NQP before getting to L1. | |||
| chromatic | How do you propose identifying what L1 must do otherwise? | 20:53 | |
| Austin | chromatic: Just read the C? | ||
| Coke | by analyzing the PMC? | ||
| "We need to invent a new language." "ok, let's translate our english into german first!" | |||
| Austin | But, @Coke, I think that rewriting it helps you identify what conceptual things you are doing. | ||
| chromatic | Sure. | ||
| 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. | ||
| chromatic | There's a queue. | ||
| Austin | nopaste.com/p/a615swk85 | ||
| chromatic | We need to see if NQP can serve as the PMC language. | ||
| Austin | Coke, this is the filehandle::open C code. | ||
| chromatic | We need to understand the operations L1 must support to handle PMC behavior. | 20:55 | |
| It's nice to understand them at a semantic level C doesn't always support. | |||
| In other words, what the code means, not how the processor should execute it. | |||
| 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. | ||
| 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? | ||
| Coke | chromatic: not if I can help it. | 20:57 | |
| Austin | Yeah. | ||
| chromatic | Ever use Moose? | ||
| Coke | chromatic: not for anything more than a toy. | 20:58 | |
| chromatic | Ever use SQL? | ||
| Coke | (mainly because I don't need to be solving those kinds of problems in perl.) | ||
| Austin | The Feynman algorithm doesn't work for me very often... | ||
| Coke | chromatic: yes. | ||
| chromatic | Okay. | ||
| 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. | ||
| chromatic | Now imagine porting that SQL query to a different database by looking only at the mechanics of how it does what it does. | ||
| 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. | ||
| Austin | Yah | ||
| That's mostly how I do it. | |||
| Coke | chromatic: do you have a particular function in some PMC for which this journey through NQP is especially helpful? | 21:02 | |
| chromatic | Helpful for what though? | 21:03 | |
| I don't understand your questions. | |||
| Coke | you assert it's helpful to first translate the PMC (C) into NQP ? | ||
| (before getting anywhere near l1) | |||
| chromatic | Yes. | 21:04 | |
| Coke | Ok. is there some bit of code for which you think this is especially instructive? | ||
| chromatic | We want to know if we *can* translate the PMC (C) into NQP. | ||
| If we can do it for Hash, Integer, and something else (I forget which), we can probably do it for everything. | |||
| Coke | ... which brings me back to why it's helpful in the first place. Nevermind. | 21:05 | |
| 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? | ||
| 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. | ||
| or are they. Are you saying NQP is L1? | |||
| chromatic | No. NQP is a language. L1 is a set of ops. | ||
| 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? | ||
| 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 | |
| L1 ops, that is. | |||
| Austin, L stands for Level (in my mind). | |||
| Austin | So what's L0? | 21:10 | |
| C? | |||
| purl | C is for cookie, and it's good enough for you. or chromatic | ||
| chromatic | Your processor. | ||
|
21:10
Whiteknight joined
|
|||
| Austin | Okeh | 21:10 | |
| Howdy, WK | |||
| 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. | ||
| 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 | ||
| chromatic | I don't believe existing Parrot opcodes are sufficient. | ||
|
21:12
amuck_ joined
|
|||
| NotFound | In a linux i386 system | 21:12 | |
| dalek | tracwiki: v3 | Austin_Hastings++ | BigProjectIdeas | ||
| tracwiki: Added table, L1 entry. | |||
| tracwiki: trac.parrot.org/parrot/wiki/BigPro...ction=diff | |||
| Coke | ... I am confused how you will know if NQP is sufficient if you are not going to be compiling it. | ||
| 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:13 | |
| bacek_ | "Bare" NQP is not sufficient. | 21:14 | |
| We need at least "SUPER" and "strong typing" | |||
| Austin | C'mon. IT's turing complete. | ||
| chromatic | We don't need strong typing. | 21:15 | |
| C barely has typing anyway. | |||
| bacek_ | "my INTVAL $res"? | ||
| dalek | tracwiki: v1 | Austin_Hastings++ | LevelOne | 21:16 | |
| tracwiki: Created L1 overall page | |||
| tracwiki: trac.parrot.org/parrot/wiki/LevelO...ction=diff | |||
| Austin | Chromatic: Why does filehandle::open create a return continuation inside the C code? | ||
| Coke | chromatic: that doesn't really help clarify your intent for me. | ||
| chromatic | I don't know how to be any clearer. | 21:17 | |
| I really don't know what's confusing you. | |||
| Austin, I don't know; I can't think of a reason why it should. | |||
| Austin | It's part of the boilerplate. | ||
| bacek_ | Coke: let me try. | ||
| Coke | chromatic: pretty much your entire plan except for the beginning and the end. | ||
| Whiteknight | hello Austin | ||
| Coke | bacek_: please don't bother. =-) | ||
| chromatic | To me, you're asking "Why are you trying to see if what you want to do is possible?" | ||
| 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. | ||
| Austin | Chromatic: I think maybe the expectation is that some methods will need to call PIR, so pmc2c just makes one. | ||
| Coke | chromatic: but what you're trying to do is <over here>, and the goal of <implement l1> is over there. | ||
| bacek_ | We have to semantically parse them for emitting something different than C | ||
| 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. | ||
| 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 | ||
| bacek_ | And emit C from NQP. | ||
| 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. | ||
| Coke | but if the NQP is emitting /c/, I again don't see the line between there and L1. | ||
| skids | This I was around for: eventually NQP emits L1 instead of C | ||
| 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. | ||
| 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." | ||
| 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". | ||
| bacek_ | We have no idea about those C bodies. | ||
| chromatic | Because we're trying to ELIMINATE C. | ||
| That is the point of the exercise. | 21:22 | ||
| Along the way, we get to eliminate the fragile Perl 5 parser too. | |||
| Coke | chromatic: bacek_'s send "with the require..." is a key bit of missing information in our previous conversation. | ||
| bacek_ | It's not parser... | ||
| chromatic | It's a parser, just not a good one. | ||
| 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. | ||
| chromatic | Or read the description on the Wiki. | 21:23 | |
| Coke | url? | ||
| bacek_ | o c'mon... It parses only structure of pmc. | ||
| trac.parrot.org/parrot/wiki/L1Recap | |||
| (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. | ||
| chromatic | Sure, but you have to use the verb "to parse" to describe it. | ||
| bacek_ | I'll probably use "to jam" or "to squash"... | ||
| Or "to munge" | 21:25 | ||
| skids | transliterate? | ||
| bacek_ | Definitely not "to parse"... | ||
| chromatic | I dunno, you're cutting a line awfully thin there. | ||
| dalek | rrot: r39778 | whiteknight++ | branches/io_cleanups (6 files): [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 | |
| 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 | ||
| a better, faster, more well-thought-out layer | |||
| 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) | ||
| Whiteknight | Right now we have this: HLL->PIR->PBC. What we want is HLL->L1. | ||
| Coke | Whiteknight: "where's the bytecode" ? | 21:28 | |
| Whiteknight | L1 is the bytecode | ||
| Coke | but it's not PBC? | ||
| Whiteknight | not PBC as we currently know it | ||
| but no, PBC is not a good form for direct execution | |||
| purl | okay, Whiteknight. | ||
| 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. | ||
| Coke | sunk costs/ | ||
| 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 | ||
| dalek | rrot: r39779 | bacek++ | branches/tt761_keys_revamp/src/pmc/string.pmc: [pmc] Avoid boxing in String's (get|set)_(integer|string)_keyed by original. |
||
| Coke | sunk costs? | ||
| purl | NO perigrin is THE ORIGINAL! | ||
| rrot: r39780 | bacek++ | branches/tt761_keys_revamp/src/pmc (3 files): [pmc] Implement StringIterator. |
|||
| skids drivetime | 21:30 | ||
| Whiteknight | yeah, I have to go drivetime too | ||
| PerlJam | So ... how come you guys didn't think up L1 sooner?!? ;-) | ||
| Whiteknight | PerlJam: We had to make the mistake of PASM first | ||
| PerlJam | indeed. | ||
| Whiteknight | plus, I'm still a Parrot n00b :) | ||
| 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:31 | |
| 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 | ||
| Coke | not that I think realistically that we have any yet. | ||
| Whiteknight | Coke: that's not a worthwhile concern at this point since our bytecode is currently not cross-platform compatible or cross-version compatible | ||
| the whole thing needs a redesign anyway, may as well be a big one | |||
| dalek | rrot: r39781 | bacek++ | branches/tt761_keys_revamp/t/native_pbc (4 files): Rebuild native PBCs... |
21:33 | |
| kudo: 7187b9f | moritz++ | docs/ChangeLog: [docs] update ChangeLog |
|||
| bacek_ reading Whiteknight's message and compare it to own commit... | |||
| kudo: 9e9c3cc | moritz++ | src/setting/Operators.pm: oops, forgot to add Operators.pm |
|||
| tracwiki: v2 | Austin_Hastings++ | LevelOne | 21:37 | ||
| tracwiki: trac.parrot.org/parrot/wiki/LevelO...ction=diff | |||
| 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 | |
| proper PIC, trace-based JIT, context threading, etc | |||
|
21:40
amuck__ joined
|
|||
| 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. | ||
| Coke | can't beat 'em, join 'em, etc? | ||
| Whiteknight | Coke: They tend to be highly specialized and tuned towards JavaScript | ||
| 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. | ||
| PerlJam | Whiteknight: that's a challenge you should make to some squirrelfish experts :) | ||
| Austin | Yeah. | ||
| 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 | ||
| Austin | LOLOLOL | ||
| 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. | ||
| Whiteknight | far more effort has gone into optimizing modern JS engines then has ever gone into Parrot | ||
| 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 :) | ||
| Whiteknight has to disappear now | 21:46 | ||
| later | |||
| bacek_ | OrderedHash makes me mad... | 21:51 | |
| Hash.push_pmc??? OMGWHAT??? | |||
| Tene | bacek_: what are you doing with the PMCs, btw? I remember reading earlier... | 22:06 | |
| bacek_ | Tene: I'm trying to deuglify Keys... | 22:07 | |
| dalek | kudo: 6c43f93 | moritz++ | src/setting/Operators.pm: make eqv rely on infx:<===> more |
22:21 | |
| rrot: r39782 | chromatic++ | trunk/src/pmc/stringhandle.pmc: [PMC] Fixed an unused return value compiler warning about the Parrot_io_open() |
22:32 | ||
|
22:34
rg joined
|
|||
| dalek | rrot: r39783 | chromatic++ | trunk/compilers/imcc/reg_alloc.c: [IMCC] Fixed some signedness mismatch warnings in the register allocator. No in excessively unlikely possibilities a functional change. |
22:38 | |
|
22:47
cotto joined
|
|||
| cotto | apparently PIT has free wireless, which I'll be using for the next several hours. | 22:49 | |
| happy! | |||
| chromatic | The airport? Really? Nice. | 22:51 | |
| PDX does too, which is super happy. | |||
| 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 | rrot: r39784 | chromatic++ | trunk/t/compilers/imcc/syn/regressions.t: [t] Added IMCC syntax error regression test for RT #60172, a segfault in an |
||
| cotto | now if only I had something to hack on... | ||
| 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. | ||
| 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:54 | |
| 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
23:00
snarkyboojum joined
23:01
bacek_ joined
|
|||
| dalek | TT #688 closed by chromatic++: Fakecutable creation by pbc_to_exe is critically slow for large PBC files. | 23:03 | |
| TT #730 closed by chromatic++: [bug] IMCC chokes on unicode strings as method call names | |||
|
23:14
Limbic_Region joined
23:15
chromatic joined
23:16
patspam joined
23:18
tetragon joined
23:24
magnachef joined
23:29
jevin joined
23:30
skids joined
|
|||
| 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 | ||
| 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 | |
| next is cleanup, passing existing tests and writing some new ones. | |||
| bacek_ | good-good. | 23:39 | |
| We need more tests for parsing failures, etc. | 23:40 | ||
| cotto | yeah. Some of the work will also involve more aggressive sanity checking. pmc2c sucks in that regard. | 23:42 | |
| bacek_ | indeed | 23:43 | |
| dalek | rrot: r39785 | cotto++ | branches/pmc_pct/compilers/pmcc/src (6 files): [pmcc] finish code to emit class_init, now for cleanup |
23:50 | |
| cotto | Either Rick Astley's coming back or the restaurant I'm in is getting rickrolled. | 23:56 | |
| I do feel good that he'll never tell a lie and hurt me. | 23:57 | ||
| bacek_ | :) | ||
| time to $dayjob... | |||
| See you | |||
| cotto | bye | 23:59 | |
| I may get one of those for myself soon. | |||