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.