Camelia, the Perl 6 bug

IRC log for #parrot, 2011-02-08

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#8094) fulltest) at 3_0_0-497-g4c0e404 - Ubuntu 10.10 i386 (g++-4.5)
00:10 dukeleto ~~
00:10 mikehh bacek_at_work: got a bunch of codetest failures in generational_gc branch, you want me to fix (except mabe c++ comments)
00:10 cotto_work hi dukeleto
00:15 dukeleto cotto_work: wazzup
00:17 dukeleto we have a release tomorrow, eh?
00:17 cotto_work a week from tomorrow
00:18 dukeleto ah, that makes more sense
00:18 cotto_work you must be living in the future
00:18 * dukeleto is from THE FUTURE
00:18 * dukeleto also FIGHTS FOR THE USERS
00:18 * dukeleto just got back from the new Tron movie
00:19 dalek nqp-rx/nom: 6e82a8e | jonathan++ | / (4 files):
00:19 dalek nqp-rx/nom: First cut at role summation, so a class can do multiple roles (and if this works then probably so does roles doing roles). Took a couple of liberties since NQP doesn't have roles with anything other than $?CLASS being generic. Can beat my brane up with the harder case when doing Rakudo's meta-objects.
00:19 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/6e82a8e93e
00:19 Tene dukeleto: I very much enjoyed it.  You too?
00:19 dukeleto Tene: indeed. It has many subtle jokes
00:20 TimToady no spoilers!
00:20 cotto_work +1
00:20 Tene I never actually saw the original, fwiw.
00:20 dukeleto Tene: i don't remember it, if that is worth anything :)
00:21 cotto_work The original was novel mostly for the way it was filmed, iirc.  It didn't seem that special to me, not remembering having seen it growing up.
00:23 * dukeleto saw the 3D version
00:23 dukeleto 2D isn't enough D
00:29 dalek nqp-rx/nom: 2b9c270 | jonathan++ | t/nqp/56-role.t:
00:29 dalek nqp-rx/nom: Some basic tests for roles, especially $?CLASS genericity.
00:29 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/2b9c270a5b
00:33 dalek nqp-rx/nom: 67623b5 | jonathan++ | t/nqp/56-role.t:
00:33 dalek nqp-rx/nom: Few more tests.
00:33 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/67623b549a
00:33 kid51 is now known as kid51_at_dinner
00:34 cotto_work I'm holding out for the 4D version.
00:39 dukeleto cotto_work: how is your lorito spec'ing ?
00:40 dukeleto Ok, who *actually* understands parser derivatives ?
00:41 dukeleto TimToady: is there a Zen koan for understanding all the different types of parsers and how they compare and contrast?
00:42 TimToady Yes, there's a koan for that, but no one knows it.
00:43 dukeleto TimToady: i figured
00:44 dukeleto TimToady: the palimpset that it was written on now contains the source code to Windows 3.1 in Braille, probably.
00:44 TimToady the Braille was probably printed with an Uzi, in fact
00:45 * dukeleto laughed so hard he hurt himself
00:46 kid51_at_dinner is now known as kid51
00:47 kid51 (dinner not ready yet)
00:48 arnsholt dukeleto: Jeffrey Kegler on blogs.perl.org has written a fair amount about different kinds of parsers
00:48 arnsholt (If you haven't already read his posts)
00:49 dukeleto arnsholt: i'm not sure, the name sounds familiar
00:50 arnsholt He's the author of Parse::Marpa on CPAN, a sophisticated Earley parser module
00:50 arnsholt Parses many kinds of CFG in linear time, apparently
00:51 arnsholt He's also written a bit about how Perl 5 is parsed, and why he doesn't like yacc
00:52 dukeleto arnsholt: ah yes, i have been reading his stuff, but haven't looked at the code
00:56 whiteknight dukeleto: I understand the theory of parser derivatives
00:56 whiteknight never put one together in practice
00:59 lucian_ left #parrot
01:00 dukeleto whiteknight: i guess i should just read the original paper i have laying around somewhere
01:01 whiteknight it's a.....complicated read
01:11 kid51 is now known as kid51_at_dinner_mor
01:16 dmalcolm left #parrot
01:54 adu joined #parrot
02:03 dalek parrotsharp: 3337dab | Whiteknight++ | README.markdown:
02:03 dalek parrotsharp: add a README
02:03 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/3337dabef9
02:04 bacek_at_work mikehh, go for it.
02:14 kid51_at_dinner_mor is now known as kid51
02:18 jsut_ joined #parrot
02:23 jsut left #parrot
02:31 * kid51 looks at perl 5 newsgroups for first time in several months
02:40 bacek_at_work kid51, (mmd in pmc2c) Pretty much everything which much "mmd" in Pmc2c isn't used anymore.
02:41 bacek_at_work Parser.pm line 296.
02:41 bacek_at_work (Start from this)
02:41 kid51 k
02:41 cotto ~~
02:44 dalek parrotsharp: 68517e4 | Whiteknight++ | / (8 files):
02:44 dalek parrotsharp: Parrot_PMC is now an abstract type. Add in stubs for Interpreter, Null, and Exception PMC types
02:44 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/68517e40c9
02:44 dalek parrotsharp: cf4fd2e | Whiteknight++ | / (3 files):
02:44 dalek parrotsharp: remove a few more concrete references to Parrot_PMC
02:44 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/cf4fd2e5d1
02:44 dalek parrotsharp: 4428817 | Whiteknight++ | src/Pmc/PackFile.cs:
02:44 dalek parrotsharp: Add in a stub for PackFile
02:44 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/44288174cc
02:46 whiteknight left #parrot
02:46 dalek parrot: db4035b | jkeenan++ | / (5 files):
02:46 dalek parrot: Move all subroutines from lib/Parrot/Pmc2c/MethodEmitter.pm to
02:46 dalek parrot: lib/Parrot/Pmc2c/Method.pm, per TT #2000.
02:46 dalek parrot: review: https://github.com/parrot/parrot/commit/db4035b91c
02:46 dalek parrot: 58925b9 | jkeenan++ | / (5 files):
02:46 dalek parrot: Merge branch 'tt2000_methodemitter'
02:46 dalek parrot: review: https://github.com/parrot/parrot/commit/58925b9577
02:52 cotto dukeleto, ping
03:11 kid51 left #parrot
03:18 dalek parrot/generational_gc: b0fb755 | bacek++ | src/pmc/class.pmc:
03:18 dalek parrot/generational_gc: Write-barriering Class PMC
03:18 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/b0fb755bf6
03:24 benabik_away is now known as benabik
03:29 benabik dukeleto: ping
03:32 dukeleto benabik: pong
03:32 benabik dukeleto: Wouldn't say I'm an expert on parser derivatives, but I've been reading up on them.
03:33 benabik dukeleto: I understand them enough to try to implement them, but haven't yet...  I'm sure lack of knowledge will appear quickly when I try.
03:36 dukeleto benabik: what are thinking of using?
03:37 benabik dukeleto: I was actually pondering writing it in NQP...
03:38 * benabik had a dream of Perl 6 rules compiling to derivatives...
03:38 sorear What are derivatives good for?
03:38 dalek parrot/generational_gc: 80f2597 | mikehh++ | src/gc/gc_gms.c:
03:38 dalek parrot/generational_gc: fix c coda, update copyright, remove trailing whitespace and remove svn $Id
03:38 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/80f25972b4
03:39 dalek parrot/generational_gc: f5b275d | mikehh++ | src/gc/gc_gms.c:
03:39 dalek parrot/generational_gc: fix incorrect indenting in preprocessor directives
03:39 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/f5b275d7d5
03:39 dalek parrot/generational_gc: d1447d5 | mikehh++ | src/gc/gc_gms.c:
03:39 plobsing joined #parrot
03:39 dalek parrot/generational_gc: fix codetest failure - c parens
03:39 dalek parrot/generational_gc:
03:39 dalek parrot/generational_gc: parentheses should not have space immediately after the opening
03:39 dalek parrot/generational_gc:  parenthesis  nor immediately before the closing parenthesis
03:39 dalek parrot/generational_gc:
03:39 dalek parrot/generational_gc: (are the parens in POBJ2GEN correct - line 128 differs from 129/130)
03:39 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/d1447d51e2
03:39 dalek parrot/generational_gc: 0f755c0 | mikehh++ | src/pmc.c:
03:39 dalek parrot/generational_gc: fix codetest failure - c parens
03:39 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/0f755c023b
03:39 dukeleto sorear: http://matt.might.net/articl​es/parsing-with-derivatives/
03:40 benabik dukeleto: Someone brought a copy of "Yacc is Dead" to my compiler class before the holidays and it's been rattling around since.
03:40 benabik *rattling around in my head
03:41 mikehh bacek_at_work: just a start - need some sleep, will work on more later
03:44 bacek_at_work mikehh, ok
03:46 dukeleto sorear: they are a new structure that seems to have lots of CS people arguing
03:46 cotto fsvo "new"
03:46 sorear sounds theoretically very interesting
03:47 dukeleto cotto: touche. 1964 is "new" in terms of math, but not so much in CS ;)
03:47 sorear is it likely to interest people who just want to get a p6rules implementation going faster?
03:48 benabik With appropriate memorization and laziness, they're apparently rather efficient.  Although I've been pondering how tough it'll be to include zero-width assertions..
03:48 dukeleto sorear: it is supposedly a much more flexible parsing tool, that can be easily modified. That is what they say, anyway
03:48 dukeleto sorear: perhaps, I don't know the details of p6rules
03:48 cotto It'd be most interesting to see what pmichaud has to say about that.
03:51 dukeleto benabik: you might want to send some of your ideas to parrot-dev and/or perl6-compiler and you may get some free help
03:52 benabik dukeleto: I need to find the tuits to even start.  If I can finish my compiler project, I'll have time but I'm running behind, not ahead on that one.
03:52 dukeleto benabik: concentrate on your project first, but just write down your ideas and keep track of them
03:52 sorear my practical interest in exotic parsing technology comes from frustration with the speed on all current Perl 6 parsers
03:52 dukeleto benabik: github is your friend ;)
03:53 sorear although this seems to be a red herring at this point
03:53 cotto aloha, clock?
03:53 aloha cotto: LAX: Mon, 19:53 PST / CHI: Mon, 21:53 CST / NYC: Mon, 22:53 EST / UTC: Tue, 03:53 UTC / LON: Tue, 03:53 GMT / BER: Tue, 04:53 CET / TOK: Tue, 12:53 JST / SYD: Tue, 14:53 EST
03:55 benabik dukeleto: My idea so far is "translate scala to NQP".  :-D  Not sure I need a git repo to keep that one.
03:56 * dukeleto needs a git repo for everything
03:57 bacek_at_work dukeleto, https://github.com/bacek/everything - feel free to commit everything :)
03:58 cotto bacek++
03:58 bacek_at_work spam in TT#985
03:58 cotto not for long
03:59 cotto nuked
03:59 cotto thanks for reporting
04:00 cotto There's been an upsurge recently, but we're in the fortunate place were "upsurge" means "3 spam posts in the last week".
04:00 benabik I do have 64 git repos hanging around my $HOME.
04:00 cotto Maybe we should ask for bank account numbers before we give out wiki edit bits.
04:01 cotto benabik, there should be an achievement for that
04:01 benabik I'm honestly surprised it's not higher.  I've been using git for >4 years judging by my commits in git.git
04:02 benabik Must have nuked some along the way.
04:08 cotto allison, ping
04:17 ryan left #parrot
04:25 cotto atrodo, ping
04:25 dukeleto benabik: there ya go https://github.com/bacek/everything
04:27 bacek_at_work dukeleto, https://github.com/bacek/everything/commit​/c1f2115bd69e52d0ed829da021c84106d2221210 :)
04:28 cotto It was only a matter of time.
04:37 benabik is now known as benabik_away
04:56 dukeleto GCI Stats: http://google-opensource.blogspot.com/201​1/02/google-code-in-final-statistics.html
05:03 dukeleto 75
05:04 dukeleto that was my keyboard falling on the ground, in case anybody was wondering :)
05:06 cotto how orderly
05:22 simcop2387_ joined #parrot
05:24 simcop2387 left #parrot
05:24 simcop2387_ is now known as simcop2387
05:29 adu hi all
05:29 sorear Hello adu.
05:29 dukeleto adu: howdy
05:30 adu the parser is going well
05:30 dukeleto adu: which parser?
05:31 adu hackage.haskell.org/package/language-go
05:31 dukeleto ah, the go parser
05:32 adu anyways, now that I have a parser, I can start worrying about runtime, and I would like to use Parrot as the runtime
05:32 dukeleto adu: sweeeet
05:32 dukeleto adu: let us know how we can help
05:32 adu now Go is supposed to be compiled to binary, but there's no reason why it can't be bytecode/pbc
05:33 dukeleto adu: parrot has something called "fakecutables" which is just bytecode embedding into a native OS binary
05:33 dukeleto s/embedding/embedded/
05:33 adu well, the parser is still iffy, it only parses like 10% of the standard go library
05:34 adu dukeleto: wow, I didn't know that
05:34 adu that would make for wonderful distribution ideas
05:34 adu hmm
05:36 adu well, I totally forgot about parrot in the last year or so, what should I target? PIR? PASM? PBC?
05:37 dukeleto adu: target PIR, for now
05:37 dukeleto adu: from PIR, you can get PBC
05:37 dukeleto adu: we are making it easier to get from PIR to PBC now, but it is still reasonable
05:38 dukeleto adu: you can do parrot -o foo.pbc foo.pir
05:38 adu ok
05:39 dukeleto adu: what language are you writing the stuff that will emit PIR? haskell?
05:40 adu yes
05:40 adu i just found http://hackage.haskell.org/packages/archive​/HsParrot/0.0.2/doc/html/Language-PIR.html
05:42 adu dukeleto: I might just emit text
05:46 adu dukeleto: do you like Go?
05:55 dukeleto adu: i am interested to learn more about it, but i am not very familiar with it
05:56 plobsing adu: that hackage parrot library looks a little dated. low-numbered registers aren't assigned by convention anymore
05:56 cotto I wonder if audreyt had something to do with it.
05:56 dukeleto plobsing: that looks like it will take care of a bunch of stuff for you, but like plobsing++ said, might need a little love
05:56 adu ok, I'll try text then
05:58 adu dukeleto: Go is basically C + lambdas + type inference + light threads + I/O + type-switch
06:00 plobsing don't forget multi-return. I loves me some multi-return.
06:00 adu lol
06:01 adu yes, I only listed about half of Go's features, of course
06:02 rurban_ joined #parrot
06:02 adu but anyways, the primary Go implementation (not gccgo) uses a very nonstandard customized ABI specific to Go's requirements
06:03 adu as such, it doesn't work with C code (unless you do some marshalling)
06:04 adu to make matters worse, that marshaling can't be done in either C or Go, but it can be done in assembly
06:05 adu anyways, one of the reasons why I'm doing this is to have better manipulexity of Go code
06:05 rurban left #parrot
06:05 rurban_ is now known as rurban
06:06 dukeleto <2 hours for OSCON proposals, in case anybody was wondering
06:06 dukeleto cotto: submitting any OSCON talks?
06:07 cotto dukeleto, I hadn't planned on it.
06:10 adu I wonder if they would let me talk about how much I love Go
06:19 dukeleto cotto: are you planning on going to any confs this year? Perhaps we can meet up and have a little hackathon at LinuxFest NW ?
06:19 dukeleto cotto: i think i will submit some talks to that. It is pretty close to you, right?
06:20 * cotto checks
06:22 cotto it's a little closer than Portland
06:23 bacek_at_work cotto, I would like to put (do nothing for now) PARROT_GC_WRITE_BARRIER macro into master.
06:23 bacek_at_work Just to prepare for future merge of gen_gc.
06:23 cotto bacek_at_work, how would that make the merge easier?
06:23 bacek_at_work cotto, we have to update HLLs to use them...
06:23 bacek_at_work Not sure is it covered by deprecation policy or not.
06:24 cotto bacek_at_work, it's not a deprecation issue because we're not removing functionality.
06:24 bacek_at_work we are changing it.
06:24 bacek_at_work but I hope rakudo, partcl and lua will be happy to get faster parrot :)
06:25 cotto It's hard to deprecate not having a thing.
06:25 cotto but I see your point
06:26 cotto We can put it in now and say that not having them in place is deprecated, I guess.
06:26 [hudnix] joined #parrot
06:26 bacek_at_work and wait until after 3.3?
06:26 cotto yeah, unfortunately
06:27 hudnix left #parrot
06:27 bacek_at_work otoh, it's only 3 places in rakudo to use this macro (3 so far)
06:27 cotto dukeleto, is there anything special about LinuxFest NW?  It looks like a pretty generic event.
06:29 jsut joined #parrot
06:30 cotto bacek_at_work, I do like that we can add a noop macro for the transition.  What code will require it?
06:30 bacek_at_work which poke into PMC from vtables not marked with :write.
06:30 bacek_at_work Usually it's .invoke
06:31 bacek_at_work Check Sub PMC in gen_gc branch
06:31 cotto so that should be reasonably easy to detect by looking at code
06:31 bacek_at_work mm
06:31 bacek_at_work not always
06:32 bacek_at_work but something like SET_ATTR is main suspect.
06:32 bacek_at_work or "cache"
06:32 cotto I wish those macros weren't so clunky.  It's very tempting to poke directly.
06:32 dalek parrot/generational_gc: c476e3e | bacek++ | src/pmc/sub.pmc:
06:32 dalek parrot/generational_gc: Use canonical SELF instead of _self in Sub PMC
06:32 bacek_at_work Sometimes.
06:32 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/c476e3e78b
06:33 dukeleto cotto: i hear it is a very good conf, that is about it. more grassroots and less corporate, is the vibe i get
06:33 cotto dukeleto, I get that feeling from the site.
06:33 fperrad joined #parrot
06:33 sorear Is it possible to instrument the generational GC to blow up if people change pointers without declaring a barrier?
06:33 dukeleto cotto: everyone i talk to seems to have a great time there. I've never been, so I want to fix that.
06:33 dukeleto sorear: that might be a nice feature
06:34 jsut_ left #parrot
06:35 cotto dukeleto, good enough for me
06:36 cosimo left #parrot
06:38 cotto dukeleto, do you know anyone in the area?
06:39 dukeleto cotto: i know a few people in Seattle, none in bellingham
06:40 dukeleto cotto: you count, right? ;)
06:40 cotto Redmond, but yes.
06:41 cotto I'm realizing that I need to start blocking off my schedule for conference season.
06:43 dukeleto cotto: indeed.
06:44 dukeleto cotto: i have some friend near Redmond that I need to visit. I will definitely let you know when I am in your neck of the woods
06:44 dukeleto cotto: this might help you a bit https://www.socialtext.net/perl5/index.cgi?events
06:45 bacek_at_work sorear, I've got self-validation functionality in debug builds
06:45 bacek_at_work sorear, helped me a lot
06:45 cotto dukeleto, http://www.funnycatpix.com/_pic​s/relevant_to_my_interests1.jpg
06:47 cotto dukeleto, I had no idea so many perl events were going on.
06:49 dukeleto cotto: yeah, me neither
06:49 dukeleto also, the Perl Ecosystem Group can provide travel support to people that want to give Perl talks at non-Perl confs
06:50 dukeleto and Parrot is in the Perl ecosystem, at least in my book
06:50 * dukeleto goes for his 3rd and final OSCON talk proposal
06:57 mtk left #parrot
06:59 bacek_at_work sigh... Lua is crashing badly on gen_gc...
06:59 cotto dukeleto, privmsg ping
07:04 mtk joined #parrot
07:09 dukeleto bacek_at_work: have you tried logarithms?
07:23 bacek_at_work dukeleto, erm... what?
07:24 dalek winxed: r801 | NotFound++ | trunk/winxedst1.winxed:
07:24 dalek winxed: fix: ClassSpecifier failed to check dowarnings, Issue16, plobsing++
07:24 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=801
07:50 shockwave left #parrot
07:53 cotto OSCON talk submitted after a brief near-death experience
07:53 shockwave joined #parrot
07:54 moritz huh, what happened to you?
07:54 moritz hope you're allright
07:54 cotto the proposal, not me
07:55 cotto chrome doesn't handle the back button as nicely as firefox
08:00 adu Chrome is weird
08:01 adu when it's busy I type into the URL bar, and it totally forgets what I said
08:04 theory left #parrot
08:16 lucian joined #parrot
08:23 lucian left #parrot
08:24 shockwave left #parrot
09:22 dukeleto bacek_at_work: http://xkcd.com/451/
09:38 adu left #parrot
09:52 contingencyplan left #parrot
10:51 dalek parrot: 905dd32 | bacek++ | / (3 files):
10:51 dalek parrot: Get rid of PObj_is_special_FLAG. They are all special now.
10:51 dalek parrot: review: https://github.com/parrot/parrot/commit/905dd32113
10:51 dalek parrot: 22250ca | bacek++ | include/parrot/pobj.h:
10:51 dalek parrot: Add need_write_barrier_flag and standard flags setters
10:51 dalek parrot: review: https://github.com/parrot/parrot/commit/22250caf44
10:51 dalek parrot: 56eae14 | bacek++ | include/parrot/gc_api.h:
10:51 dalek parrot: Add GC_WRITE_BARRIER macro.
10:51 dalek parrot: review: https://github.com/parrot/parrot/commit/56eae14b7d
11:34 dalek parrot/generational_gc: e8cb426 | mikehh++ | t/op/gc.t:
11:34 dalek parrot/generational_gc: remove trailing whitespace and update copyright
11:34 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/e8cb42655e
11:34 dalek parrot/generational_gc: 24478fd | mikehh++ | include/parrot/pobj.h:
11:34 dalek parrot/generational_gc: remove trailing comma - trailing commas in enums are not legal C89, and update copyright
11:34 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/24478fdaf5
11:34 dalek parrot/generational_gc: 536df45 | mikehh++ | src/pointer_array.c:
11:34 dalek parrot/generational_gc: fix c function documentation and update copyright
11:34 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/536df453cc
11:34 dalek parrot/generational_gc: c30c825 | mikehh++ | src/gc/gc_gms.c:
11:34 dalek parrot/generational_gc: add c function documentation (probably needs to be reviewed)
11:34 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/c30c825d52
11:35 mikehh bacek: just ASSERT_ARGS (and c++ comments) left
11:44 sECuRE_ left #parrot
11:44 sECuRE joined #parrot
12:16 dalek parrot/generational_gc: b5991e3 | mikehh++ | src/pointer_array.c:
12:16 dalek parrot/generational_gc: fix ASSERT_ARGS (copy/paste?)
12:16 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/b5991e3d50
12:16 dalek parrot/generational_gc: bc26f9b | mikehh++ | src/gc/gc_gms.c:
12:16 dalek parrot/generational_gc: add missing ASSERT_ARGS
12:16 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/bc26f9bf03
12:16 dalek parrot/generational_gc: 52889c7 | mikehh++ | src/call/context.c:
12:16 dalek parrot/generational_gc: add missing ASSERT_ARGS
12:16 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/52889c7f21
12:16 dalek parrot/generational_gc: 117c0c1 | mikehh++ | src/gc/fixed_allocator.c:
12:16 dalek parrot/generational_gc: fix ASSERT_ARGS (copy/paste?)
12:16 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/117c0c1cda
12:20 mikehh bacek_at_work: bacek: codetest now passes (except for c++ comments) on generational_gc branch
12:21 mikehh bacek_at_work: bacek: you might need to run make headerizer
12:26 * mikehh needs a break - bbl
12:52 bluescreen joined #parrot
13:00 mtk left #parrot
13:06 mtk joined #parrot
13:25 mtk left #parrot
13:30 mtk joined #parrot
13:41 dip can I branch 11.2?
13:41 dip whoops sorry wrong channel
13:42 dip left #parrot
13:42 dip joined #parrot
13:44 whiteknight joined #parrot
13:48 benabik_away left #parrot
13:48 benabik_away joined #parrot
13:58 woosley joined #parrot
14:02 rurban_ joined #parrot
14:05 rurban left #parrot
14:05 rurban_ is now known as rurban
14:11 plobsing left #parrot
14:20 whiteknight good morning, #parrot
14:35 lucian joined #parrot
14:38 plobsing joined #parrot
14:55 cognominal left #parrot
15:27 plobsing left #parrot
15:27 benabik_away is now known as benabik
15:27 benabik Morning! o/
15:32 whiteknight good morning benabik
15:50 dmalcolm joined #parrot
16:07 contingencyplan joined #parrot
16:10 benabik Had a problem building gen_gc, fixed it and put a patch in a new TT (#2001).  Hopefully that was the right place to put it.
16:11 dukeleto ~~
16:12 cotto_work ~~
16:12 dukeleto cotto_work: beat ya ;)
16:13 plobsing joined #parrot
16:13 cotto_work close timing though
16:14 atrodo cotto_work> pong
16:16 Psyche^ joined #parrot
16:17 Patterner left #parrot
16:17 Psyche^ is now known as Patterner
16:19 dalek TT #2001 created by benabik++: generational_gc: Add missing ASSERT_ARGS macros
16:19 dalek TT #2001: http://trac.parrot.org/parrot/ticket/2001
16:22 dukeleto 2001: A Trac Odyssey
16:26 dalek parrot/generational_gc: a767871 | dukeleto++ | src/gc/ (2 files):
16:26 dalek parrot/generational_gc: Add missing asserts, benabik++
16:26 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/a767871143
16:26 benabik Of course, gen_gc still doesn't pass make test for me, but that made it pass make.  :-D
16:27 dukeleto benabik: thanks for the patch
16:28 benabik dukeleto: I just saw something wrong that I understood for once. :-)
16:29 dukeleto benabik: yes, it is a good feeling :)
16:34 lucian allison: you asked me once what i think parrot's niche could be
16:36 * dukeleto gets popcorn
16:37 dalek TT #2001 closed by dukeleto++: generational_gc: Add missing ASSERT_ARGS macros
16:37 dalek TT #2001: http://trac.parrot.org/parrot/ticket/2001
16:37 dalek TT #1999 closed by dukeleto++: Parrot_PMC_get_pmc : Does it work correctly?
16:37 dalek TT #1999: http://trac.parrot.org/parrot/ticket/1999
16:37 allison lucian: hi
16:37 lucian right, hi :)
16:37 * lucian forgets to salute on irc all the time
16:38 allison lucian: so, what're your thoughts?
16:38 lucian allison: after trying to define minipynie, i realised that it should be the simplest possible vm to which all (popular) dynamic languages can be compiled directly
16:38 lucian you can't compile python/ruby to the jvm directly, without interpretation
16:39 lucian and you most certainly can't do that on llvm
16:39 lucian if interpretation exists at the vm-level only, many interesting things can happen (some of them having to do with performance)
16:42 allison lucian: that was the original goal, though ideas have drifted a bit since then
16:43 allison lucian: at the core, it still is an incredibly simple multi-language vm
16:43 lucian i see. right now it's not really simple and some languages end up being interpreted
16:44 allison yes, the current tendency toward running an interpreter on top of an interpreter has disadvantages
16:44 allison they tell me they couldn't do it any other way
16:44 allison I haven't looked into the implementations, so can't really say
16:45 lucian if it really couldn't be done any other way, i think it's a problem with parrot
16:45 allison lucian: but, I would be interested to see minipynie done that way
16:45 lucian i'd like to see pynie done that way
16:45 allison lucian: yes, it would argue a problem in parrot, but I'm not sure if it means that parrot is "too limited" or "to complex"
16:45 lucian there's really no point in targeting parrot if interpretation is needed. might as well target jvm/.net
16:46 allison lucian: that is, I'm not sure if we need to strip stuff out of parrot, or add to it
16:46 allison lucian: maybe a little of both
16:46 lucian well, the compilation&execution pipeline is obvious
16:46 allison lucian: yes, I agree (on jvm/.net making more sense if you have to write your own runtime anyway)
16:47 lucian personally, i think it's missing a skinable system languae
16:47 lucian language
16:47 lucian and a way to easily configure types, to derive HLL ones, but that ties into the system language
16:48 lucian a very small parrot-specific subset of any language will have semantics similar to winxed
16:48 NotFound Skinable language? Never heard that concept.
16:48 lucian NotFound: me neither, i just made it up, really
16:48 lucian think of it like lisp reader macros
16:48 NotFound Ah, good.
16:48 dalek parrot: 310adea | dukeleto++ | config/ (2 files):
16:48 dalek parrot: Merge branch 'tt1331-osx-conf-fix'
16:49 dalek parrot: review: https://github.com/parrot/parrot/commit/310adea9c4
16:49 NotFound Winxed semantic is mostly PIR semantic.
16:49 lucian NotFound: something like a pythonic alternative syntax for winxed (or whatever other blessed system language)
16:49 lucian yes, and that's good for winxed's purposes
16:50 lucian but language writers might prefer to write in a language similar to what they're implementing, rather than winxed
16:51 NotFound I can understand that, given that I designed winxed in order to have a language similar to what I like ;)
16:51 lucian so this mythical minipynie could be winxed with a modified parser, and would be used for writing the bits of pynie that can't be written in pure python3
16:51 plobsing lucian: how is providing a means of "alternative syntax" different from providing a default compiler backend starting with an AST?
16:51 lucian plobsing: well, it's roughly the same thing
16:52 lucian but i'm talking about the language you implement your types in
16:52 lucian so you don't have to write any PIR at all
16:52 whiteknight yeah, if we have a good compiler-builder library that takes an AST and converts down to PBC, we can put multiple language frontends onto it
16:52 lucian the compiler for the full language (in this case, python3) could be written in pure python, to be run on CPython at first
16:52 NotFound lucian: not a bad idea, it may workable to break more cleanly the winxed workflow in order to have a pluggable... syntax skin?
16:53 plobsing lucian: sort of like what rakudo does with nqp?
16:53 lucian but the python core types need to be implemented in something more akin to PIR
16:53 lucian plobsing: yes, similar
16:53 lucian it's a good idea
16:53 lucian but obviously only for implementing perl or similar
16:53 tadzik so it's actually ignoring everything PCT gives?
16:53 lucian tadzik: yes, which is sad
16:54 dalek TT #1331 closed by dukeleto++: Mac OS 10.5 configuration fix
16:54 dalek TT #1331: http://trac.parrot.org/parrot/ticket/1331
16:54 lucian i'm not convinced this is a good idea at all, btw
16:54 plobsing lucian: it is possible to generate PAST without using NQP.
16:55 lucian plobsing: but not from outside parrot, right?
16:55 plobsing if we had something like RMI (shudder), it would be possible even then.
16:56 NotFound IMO generating pir is far more easier.
16:56 * lucian shudders as well
16:58 benabik You could, in theory, make a JSON/YAML/* loader for PAST.
16:58 benabik Not sure if that's worth the effort.
16:58 plobsing in general, such things are a PITA, but it would allow bootstrapping from the language you want to be programming in from the get-go. with decent proxy-objects, it could even look exactly like a fully hosted bootstrapping solution. The question you've got to ask is: "is working in a non-pythonic language more or less distasteful than RMI/COM/CORBA/etc?"
16:58 cognominal joined #parrot
16:59 NotFound Note that I bootstrapped winxed from C++, which is a lot "foreign" than for example bootstraping a python compiler from cpython.
17:00 NotFound End even with that distance, I sometimes confused stage 0 code and stage 1 code %-)
17:01 plobsing yes. please stop doing that. I keep seeing features in commit messages that aren't implemented in st2 yet.
17:01 NotFound So I think a bootstrap from a familiar language is lot more tasteful.
17:02 theory joined #parrot
17:02 NotFound plobsing: What? Features commited to stage 0 are backports form stage 1
17:04 * Coke tries not to think about partcl while he's supposed to be focusing on coldfusion & sql & various dayjobby things.
17:06 NotFound plobsing: BTW, I'm thinking on a crazy idea: it wll be possible in a ometa based language to have a sort of macro feature that takes code as argument and do some processing with it during compiling?
17:06 jsut_ joined #parrot
17:07 plobsing NotFound: that is explicitly one of the objectives. alessandro has an example of lexically scoped syntax extension somewhere or other (he adds 'say' to Java IIRC)
17:07 NotFound I'm thinking about being to do something like that: derivative(sin(x) ) --> gives cos(x)
17:07 NotFound With "derivative" able to work with a lot of float expressions.
17:07 vmspb joined #parrot
17:07 plobsing NotFound: would that be a symbolic or numeric solution?
17:08 NotFound plobsing: generating the same code as the symbolic expansion.
17:08 plobsing are you going to implement a whole symbolics package on Parrot yourself? port one? implement a language in which one is already defined?
17:08 plobsing symbolic math is HARD
17:09 NotFound plobsing: not, but buliding the support to ba able to make that work.
17:09 NotFound That is, built in the language to support to write the "derivative" package and use it.
17:09 plobsing derivative( x <= 0 ? 0 : 1 ) => dirac delta?
17:11 NotFound Well, maybe the derivative example is too complex as a first example. Better think about something like C++ templates.
17:11 jsut left #parrot
17:11 lucian benabik: that's not a bad idea
17:13 plobsing PCT makes sense under the assumption that compiler backends are sufficiently complex that we should avoid reinventing the wheel. I think if the backend *has* to be that complicated, Parrot has a problem.
17:17 extreme left #parrot
17:19 whiteknight plobsing: okay, so what does the alternative look like?
17:19 lucian plobsing: i mostly agree. i don't think support for writing backends hurts, but i believe the focus should be on helping to implement core types
17:20 lucian this is especially important for existing mature languages, where you can write the compiler in that language (or reuse an existing compiler, much of the time)
17:21 plobsing what I'm coming to realize is that Parrot should be optimized for ease of compiler targetting, to make simple bootstrapping backends feasible (if it isn't already). I'm not sure what specific actions that entails.
17:22 NotFound plobsing: winxed is the proof that it's already feasible.
17:22 plobsing NotFound: yes, but could it be easier?
17:22 plobsing and how can we make that easier?
17:23 lucian NotFound: i think it was already known to be feasible, most languages already compile that way
17:23 NotFound plobsing: I think the answers to that will come from the process of doing more languages that way.
17:23 lucian but winxed doesn't need core types beyond what parrot provides
17:25 NotFound lucian: winxed is designed that way by deliberate decision, not because of parrot limitations.
17:26 lucian NotFound: i know, but that doesn't make it easier for python
17:26 lucian and it's great design for a parrot system language
17:27 whiteknight lucian: let's turn the discussion around a little bit. What do we need to provide to make it as easy as possible for you to start working on the compiler of your dreams?
17:27 whiteknight What do *you* need
17:28 whiteknight lucian: because I think we all want a Python compiler on Parrot, and I think that being able to write that compiler in Python or something Python-like would make many Python coders happy
17:28 NotFound Or a python subset.
17:29 lucian whiteknight: the compiler itself can be written in python and run on CPython
17:29 lucian it just generates code (of some sort)
17:30 lucian but in order for anything to work, we need objects and a few other types
17:30 lucian i mean a few other types inheriting from object
17:30 tadzik what do we need for language interoperability?
17:30 lucian and that would have to be implemented in PIR or winxed
17:30 lucian tadzik: inherit from parrot's types
17:30 tadzik fair enough
17:31 lucian at some point, languages can define how their objects can be exported to other languages in terms of native parrot types
17:31 lucian a sort of FFI, but less foreign
17:31 NotFound Feel free to ask any feature for winxed you may need, BTW. No promises, but I'll try my best.
17:32 lucian NotFound: you said it can be used to implement HLL types, right?
17:32 whiteknight lucian: Okay, I'm just trying to get this process straightened out in my head. You're going to have a Python compiler, written in Python and running on CPython. It will output PIR or PAST, or something like that?
17:32 lucian whiteknight: yep
17:32 plobsing lucian: what stops you from writing definitions for your core types in python and compiling these to <language-that-runs-on-parrot-already>?
17:32 NotFound lucian: yes, but is an experiment with a few test, will benefit from real world usages.
17:32 lucian plobsing: in terms of what would i write these core types?
17:32 whiteknight lucian: so why not write your core types in Python too, and just output them as PIR/PBC during the build?
17:33 lucian python has no primitives lower level than objects, dicts, lists and tuples
17:34 lucian whiteknight: plobsing: i don't really know how i can do that
17:35 lucian maybe a mock 'parrot' module that the compiler can recognise and do special-case generation? but that also defines a subset of python
17:35 plobsing in terms of runtime, you need to start from somewhere. that somewhere isn't pythonish yet on parrot. that should be fine. implement close approximations to the python core types until you can close your loop of turtles.
17:35 lucian and makes the compiler more compicated
17:35 NotFound lucian: maybe in a later phase, when having a working compiler with some extension for parrot native usages.
17:36 lucian plobsing: i don't see how that would work, in detail
17:37 lucian at least i don't see how it would work without writing PIR *somewhere*
17:37 lucian that PIR would be close to unmaintainable by python developers not familiar with parrot
17:38 plobsing a python on parrot system would be close to unmaintainable by python developers not familiar with parrot
17:38 NotFound And for parrot devlopers not familiar with python, too.
17:38 plobsing regardless of PIR involvement
17:38 lucian i guess
17:38 * lucian has to go, anyway
17:39 plobsing lucian: can you not compile python down to PIR with slightly different semantics for the base bootstrapping stage and implement your pythonish base classes then?
17:40 whiteknight There probably isn't going to be any getting around writing the lowest-level stuff in something that isn't python
17:40 whiteknight even if you're "writing it" as part of large text literals in Python source
17:41 Coke Yah, I'm not sure that avoiding writing things "in parrot" when targetting parrot is a valid base assumption.
17:41 Coke (clearly it can be minimized, but at some point, you're using the VM you're using.)
17:43 whiteknight The question really is, what would the hypothetical python compiler use at that lowest level? PIR? NQP? Winxed?
17:43 whiteknight I suspect Winxed may be the least unpalatable
17:43 whiteknight I don't think Parrot can really provide something with the features/scope like NQP but with pythonish syntax
17:44 whiteknight such a thing could be provided, but I don't think it can be a core goal of ours to do it
17:45 NotFound The advantage of winxed is the easy handling of parrot native int, float and string registers.
17:45 whiteknight yes, that's a key feature
17:47 NotFound And its advantage in respect to Close is that winxed exists ;)
17:48 whiteknight I had really high hopes for Close
17:48 whiteknight I liked what I was seeing of it
17:49 whiteknight too bad Austin got too busy to keep up with it
17:49 NotFound Close was a good idea, but if no one has worked on it...
17:49 cotto_work It's only dead if nobody wants to resurrect it.
17:50 whiteknight Kakapo is pretty much broken beyond salvaging at this point
17:50 whiteknight and I know Kakapo was basically the supporting library that Austin was using to build Close
17:51 whiteknight PLA's test suite is broken because Kakapo's test features are too broken at this point to save
17:51 whiteknight I really do need to get back to fixing PLA at some point
17:52 tadzik Close seems awesome
17:52 NotFound We may need a plumage option to skip test or to install ignoring bad test result, BTW.
17:52 whiteknight yeah, that might be a good thing, but I still do want to fix PLA's tests so I know if it works so I can make a release
17:53 whiteknight I may have to start working on that tonight, now that I am thinking about it
17:54 tadzik whiteknight: are you aware what's the state of Close?
17:54 pain-sama joined #parrot
17:55 pain-sama hello :)
17:55 tadzik hello pain-sama
17:55 plobsing tadzik: it is perpetually almost there
17:55 pain-sama hi :)
17:55 cotto_work seen chromatic
17:55 aloha chromatic was last seen in #parrot 6 days 20 hours ago leaving the channel.
17:55 pain-sama I am wondering if it is possible to make a programming (scripting) language using Parrot ?
17:56 plobsing pain-sama: do you have one in mind?
17:56 pain-sama yeah :)
17:56 pain-sama but I'm newby xD
17:57 Coke is it a port of an existing one, or a brand new one?
17:57 pain-sama it's very similar to JS :)
17:57 Coke (pain-sama)
17:57 pain-sama new one :)
17:57 Coke Ok. there are already efforts in various states for JS itself, and something winxed, which is JS-sort-of-if-you-squint.
17:58 plobsing pain-sama: what are the differences? is it identical in object model to JS?
17:58 Coke So yes, definitely possible.
17:58 pain-sama my language will be oriented to game development :D
17:59 vmspb left #parrot
18:00 pain-sama so, can I benefit from parrot in my project ?
18:00 whiteknight pain-sama: yes, we have Winxed which is similar to JS in some ways, and there is a JavaScript port called "Jasper" in development
18:00 whiteknight pain-sama: probably
18:01 pain-sama can you please tell me how to get started ?
18:01 pain-sama i love doing things my self, as long as I can do it xD
18:01 pain-sama so I want to make my own programming language, ever for joy :)
18:02 pain-sama even*
18:02 pain-sama that's because of my new keyboard :D
18:03 NotFound pain-sama: if your language is very similar to javascript a way is to borrow from winxed.
18:03 whiteknight pain-sama: okay, we have a few different example compilers you can look at. We also have a tutorial around here for using NQP to write a compiler
18:03 pain-sama what is  NQP ?
18:04 benabik It's like Perl, but Not Quite.
18:04 pain-sama NotFound that might help xD any link to the project's page ?
18:04 pain-sama ah :)
18:04 pain-sama where can I find the tuto ?
18:04 NotFound pain-sama: http://winxed.org/
18:04 pain-sama thanks :D
18:06 pain-sama be right back :)
18:10 ilbot2 joined #parrot
18:10 Topic for #parrot is now Parrot 3.0.0 Released | http://parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Test imcc_interfaces and annotations-tree branches
18:17 lateau joined #parrot
18:28 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#8274) fulltest) at 3_0_0-504-g310adea - Ubuntu 10.10 i386 (g++-4.5)
18:32 zby_home joined #parrot
18:33 NotFound Proof of concept winxed c++ backend able to compile a helloworld program, big progress X-)
18:35 vmspb joined #parrot
18:39 nopaste "NotFound" at 192.168.1.3 pasted "Bare mininal proof of concept winxed C++ backend" (61 lines) at http://nopaste.snit.ch/30890
18:43 cotto_work NotFound: that's exciting
18:44 NotFound The idea, not the implementation ;)
18:44 nwellnhof joined #parrot
18:46 plobsing NotFound: what's the plan with that? check in the generated C++ and not have to maintain a winxed parser/compiler in C++ for st0?
18:46 NotFound In order to be useful it needs at least an obect system able to mimic String, Integer, FileHandle and *Array* PMCs.
18:47 NotFound plobsing: yes, that will be the goal.
18:47 plobsing All Array PMCs? What types does st1 use? which ones could be stripped out for a bare-bones bootstrap?
18:47 dalek parrot: 942932e | nwellnhof++ | NEWS:
18:47 dalek parrot: Update NEWS
18:47 dalek parrot: review: https://github.com/parrot/parrot/commit/942932e671
18:48 NotFound Just the resizable ones, maybe, and Boolean surely is not used.
18:49 NotFound Oh, and I forgot to mentiont Hash
18:49 plobsing can the STL types approximate those?
18:49 NotFound I think so.
18:52 NotFound With string and String limited to one encoding, that is.
18:54 plobsing do you need more than one encoding for bootstrap?
18:56 NotFound I thnk not, but haven't checked that yet.
19:11 dukeleto The next time you can't think of a good name for something, go here: http://www.classnamer.com
19:12 NotFound ScriptableMessageTester That's good!
19:13 dukeleto that thing is hilarious. We might need editor bindings for that site...
19:13 nwellnhof BasicGirlfriendVisitor, lol
19:13 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#8281) fulltest) at 3_0_0-504-g310adea - Ubuntu 10.10 i386 (g++-4.5 with --optimize)
19:14 NotFound nwellnhof: at least is Basic, not Advanced
19:15 plobsing SecureGirlfriendImpl
19:15 pain-sama left #parrot
19:16 Andy joined #parrot
19:16 cotto_work We need at least one ScriptableLolcatDispatcher, stat.
19:16 * dukeleto gets to work
19:25 whiteknight LegacyCharacterWindow
19:29 whiteknight SimpleGirlfriendTokenizer
19:32 whiteknight That's it. There goes the rest of my work day.
19:33 NotFound For consistency, the site name should be: SimpleClassNamer
19:33 whiteknight AbstractClassNamer
19:37 whiteknight FlexibleFileFactoryFactory
19:38 bacek Good morning, humans
19:39 bacek whiteknight, you lied in your latest post about Parrot's GC :)
19:39 mikehh WhatonEarthWouldYouEverWantaSimpleClassNameFor
19:39 jan left #parrot
19:40 dukeleto BuffaloBuffaloBuffaloFactoryFactory
19:40 dukeleto this is getting out of hand
19:40 mikehh hiho bacek
19:40 bacek aloha, mikehh
19:40 bacek thanks for fixing codetest in gen_gc
19:40 whiteknight bacek: what did I lie about?
19:41 mikehh will keep checkin'
19:41 bacek whiteknight, you described GC MS, not GC MS2.
19:41 whiteknight I "dramatically oversimplified", but not lied
19:41 bacek MS2 maintain list of objects and don't iterate over slabs
19:41 whiteknight yes, you're right. I should note that change
19:42 bacek And gray objects aren't explicitly coloured. We just create new list of life objects during mark.
19:43 bacek gc_ms2.c, around line 1026
19:45 jan joined #parrot
19:45 bacek Almost same algo as "TriColour M&S" on http://trac.parrot.org/parrot/wiki/GCMassacre
19:45 whiteknight I'll mention those specifics in the next post
19:45 whiteknight thanks for pointing them out
19:46 bacek You welcome :)
19:50 cotto_work #is in 39
19:51 Coke ingles sketch?
19:51 plobsing left #parrot
19:52 cotto_work Coke: yup.  I'm unilaterally changing the name.
19:53 lateau left #parrot
19:58 bluescreen left #parrot
20:00 mikehh rakudo (cad076f) - builds on parrot (3_0_0-504-g310adea) - make test, make spectest_smolder[(#8290), roast (b3ef08d)] PASS - Ubuntu 10.10 i386 (gcc-4.5 with --optimize)
20:00 mikehh 27,634 ok, 0 failed, 610 todo, 1,847 skipped and 0 unexpectedly succeeded
20:00 bluescreen joined #parrot
20:11 kid51 joined #parrot
20:15 mikehh #ps in 15
20:15 dmalcolm_ joined #parrot
20:16 dalek parrot: 1c71188 | Whiteknight++ | / (3 files):
20:16 dalek parrot: Merge branch 'whiteknight/callcontext_reset'
20:16 dalek parrot: review: https://github.com/parrot/parrot/commit/1c711886ba
20:17 dmalcolm left #parrot
20:22 whiteknight cotto_work: parrot-instrument is working?
20:22 cotto_work closer to working
20:22 whiteknight ah, okay
20:23 tadzik what's gson-instrument?
20:24 dukeleto tadzik: gsoc-instrument ?
20:25 dukeleto tadzik: it allows you to inspectigate parrot while it is running, and generate statistics about who is doing what and what is talking to who
20:25 dukeleto tadzik: if that makes sense :)
20:25 tadzik nice
20:30 mikehh #ps time
20:30 benabik mikehh: Lurkers welcome?
20:31 mikehh benabik: sure, you can comment too -> #parrotsketch
20:32 mikehh it is after all a developer meeting
20:36 dukeleto benabik: COME ON DOWN!
20:36 * dukeleto plays The Price Is Right music in #parrotsketch
20:37 NotFound No one comment the improved eye candy in example fly? Sigh...
20:37 dalek winxed: r802 | NotFound++ | trunk/winxedst1.winxed:
20:37 dalek winxed: a better fix for Issue16, plobsing++
20:37 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=802
20:48 dalek Heuristic branch merge: pushed 60 commits to parrot/whiteknight/imcc_compreg_pmc by Whiteknight
21:13 Kovensky left #parrot
21:17 plobsing joined #parrot
21:20 nwellnhof whiteknight: which of your imcc branches has that GC related bug and how can i reproduce it?
21:21 whiteknight nwellnhof: whiteknight/imcc_compreg_pmc. I was getting it during ops2c in the normal build. I just did a branch merge from master and haven't tried it yet
21:21 whiteknight the build failed for me after the merge, but I can't debug into it until I get home
21:22 nwellnhof whiteknight: i'll see if i can reproduce it
21:22 whiteknight nwellnhof: I would really appreciate it. I think the merge was pretty clean
21:22 whiteknight I'll be working on it as soon as I get home too (about 1.5 hours)
21:24 whiteknight I'm packing up and heading home now, I'll be back on later
21:24 whiteknight left #parrot
21:26 nwellnhof whiteknight: imcc_compreg_pmc builds fine out of the box here. but i got a segfault in miniparrot after forcing the GC threshold to 128K.
21:27 nwellnhof lowering the threshold is usually the best was to reproduce GC related issues.
21:27 cotto_work nwellnhof: he took off.  You might want to msg him in case he doesn't check irclog.
21:28 kid51 left #parrot
21:29 nwellnhof but that segfault seems to be related to TT #1990.
21:30 bluescreen left #parrot
21:31 lucian NotFound: do you have any docs on how to use winxed for HLLs?
21:32 NotFound lucian: sorry, no. Let me check if have a example at hand...
21:33 plobsing left #parrot
21:38 plobsing joined #parrot
21:39 NotFound The one I had is bitrotten, let me fix it.
21:46 mikehh NotFound: winxed looks fine to me, fly seems much smoother
21:46 NotFound mikehh: good
21:46 NotFound The improved eye candy may help, too.
21:53 mikehh forgot to report that winxed builds and tests ok - on parrot 3_0_0-504-g310adea - Ubuntu 10.10 i386 (gcc-4.5 with --optimize)
21:54 wknight-phone joined #parrot
21:55 NotFound lucian: example added in r803. Looks a bit odd than it should right now, will improve it in some days.
21:55 dalek winxed: r803 | NotFound++ | trunk/examples/hlltest.winxed:
21:55 dalek winxed: add an example of the namespace modifier 'HLL'
21:55 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=803
21:55 lucian NotFound: thanks
21:56 NotFound Maybe using 'String' for the example was not a good idea, needs some tricks to gets messages printed.
21:57 lucian NotFound: hmm, i get the idea anyway
21:59 NotFound Using a namespace modifier is the way to avoid adding specific syntax.
21:59 lucian NotFound: it's not bad, really
22:00 bacek_at_work ~~
22:01 lucian NotFound: i don't get the newstring function
22:02 nwellnhof aloha msg whiteknight: the segfaults in imcc_compreg_pmc are related to TT #1990. the gc_dynamic_threshold merge triggers them very early. i can build parrot with some Parrot_block_GC_marks in the right places but that's very hackish.
22:02 rurban_ joined #parrot
22:02 aloha nwellnhof: OK. I'll deliver the message.
22:03 NotFound lucian: the MyString content is a String PMC. If we try to create it from a string inside the HLL, we'll get a MyString.
22:03 NotFound Maybe is not needed now, I wrote that in the first steps of the experiment.
22:04 lucian_ joined #parrot
22:05 rurban left #parrot
22:05 rurban_ is now known as rurban
22:05 lucian_ NotFound: got disconnected
22:05 lucian_ NotFound: is there no super in winxed?
22:05 NotFound ucian: the MyString content is a String PMC. If we try to create it from a string inside the HLL, we'll get a MyString.
22:06 wknight-phone nwellnhof, thanks
22:06 wknight-phone hackish is fine
22:06 plobsing lucian_: there is no 'super' built in to parrot. it is a known failing of the object system
22:06 lucian_ plobsing: i see
22:06 plobsing it is possible to cook one up yourself. kakapo does just that.
22:07 lucian_ plobsing: i'd very much like others to do that work for me. like NotFound :)
22:07 NotFound lucian_: I have the plan to borrow from the C++ way to call base class methods, but haven't worked on that yet.
22:07 * lucian_ is really a parrot noob
22:07 lucian left #parrot
22:08 wknight-phone ill look at #1990
22:09 lucian_ NotFound: you could have a super() function
22:09 NotFound plobsing: note that the 'super' semantic is not obvious in multiple inheritance.
22:10 lucian_ it couldn't be as general as python's since it has an explicit self, but it should work
22:10 plobsing NotFound: agreed
22:11 plobsing Ωη gets by through limiting to single inheritance and refering to parent class statically by name
22:12 lucian_ NotFound: this may sound old, but you may want to look into what python does
22:13 NotFound In C++ the usual way is typedef the parent class as 'super' or 'base', or something like that.
22:13 jsut joined #parrot
22:13 NotFound If you want that sugar, that is.
22:14 plobsing super implementation depends highly on the object model in question. Parrot should be getting out of the business of enforcing object model (we have a poor track record there).
22:14 NotFound lucian_: I don't have enough python knowledge to be able to borrow from it.
22:14 plobsing lucian_: it's just C3 IIRC (correct?)
22:14 lucian_ plobsing: yeah, pretty much
22:15 lucian_ the nice bit is that objects methods have an explicit self
22:15 lucian_ so there's super(ClassName, self).method(bla)
22:15 NotFound What I'm thinking about is something like Parent.method() or self.Parent.method()
22:15 lucian_ which binds ClassName.method's self to the current self
22:16 lucian_ you just have to be careful about binding self
22:16 plobsing lucian_: that's more general than 'super' though. call it 'cast_call' or something.
22:16 NotFound The latter is more verbose, but avois possible ambiguities.
22:17 lucian_ in python you can use super more generally , too
22:17 NotFound My personal problem with 'super' is that I like better terminology of base and deriver rather than super and sub classes.
22:17 nwellnhof wknight-phone: it seems that it's enough to block GC completely during Parrot_load_bytecode.
22:17 lucian_ NotFound: sure, i was just debating that a function might be better than a language feature
22:18 lucian_ so in winxed, parent(ClassName).method(bla)
22:18 jsut_ left #parrot
22:19 plobsing lucian_: that makes python's assumptions about how class objects work, and is not how parrot's object system currently works
22:19 lucian_ plobsing: using a function? it can do whatever parrot's object system likes
22:20 NotFound lucian_: I don't think that may work without special purpose semantic for that pseudo-function.
22:20 lucian_ NotFound: hmm. is there a language-level way to bind self?
22:20 plobsing lucian_: self is exposed in winxed. it just happens to be an implicit parameter
22:20 lucian_ plobsing: i know. but can you bind it to something else in a particular function?
22:21 jnthn Any method can be called as a sub in Parrot just fine, passing whtever you like as the invocant. Just pass it as the first arg.
22:21 plobsing it is just a register
22:21 lucian_ like CoffeeScript's => vs ->
22:21 lucian_ plobsing: i see
22:21 jnthn So provided you have a way to look up the method in the base class, you can always call it.
22:22 NotFound lucian_: AFAIKS there is no way to get that dispatch automatically, you need to find the method in the class and invoke it explicitly.
22:22 plobsing jnthn: yes, but using a syntax which parses as method invocation on the class object is not the right way to do that
22:23 zby_home left #parrot
22:23 lucian_ NotFound: right. so parent() would have to find the method, bind self to the right thing and return the closure
22:23 jnthn plobsing: I was talking about how to achieve the desired dispatch at a Parrot level, not now the langauge syntax would look.
22:23 jnthn s/now/how/
22:23 lucian_ btw, i think it'd be just fine if parrot used C3, since pretty much every language uses it
22:24 jnthn The real answer though is that Parrot shouldn't enforce a definition of class, or just not provide a class implementation at all.
22:24 NotFound lucian_: mmmm... maybe is doable, I'll think about that.
22:25 luben jnthn, I have tried the new nqp, nice work, but it seems that I could nor have both nqp and parrot-nqp installed alogside
22:26 jnthn luben: moritz++ mentioned that also...I didn't work out why yet.
22:26 jnthn luben: It's certainly not intentional. :)
22:26 luben jnthn, ok, no problem. just to mention
22:27 jnthn Thanks for doing so. I'll try and work out what's up soon.
22:27 jnthn I suspect they may try to install different versions of the same thing to the same place or some such.
22:28 NotFound A way to do that migth be to provide a class that dispatch the method, and create such object in the parent function, but that way we get the problem of VTABLE_invoke overrides
22:29 NotFound Or maybe not, I must do some experiments.
22:29 wknight-phone left #parrot
22:32 davidfetter joined #parrot
22:40 lucian_ left #parrot
22:41 fperrad left #parrot
22:41 woosley left #parrot
22:49 dalek parrot: c6fa8b7 | mikehh++ | src/embed/api.c:
22:49 dalek parrot: fix codetest failures - add c function docs and ASSERT_ARGS
22:49 dalek parrot: review: https://github.com/parrot/parrot/commit/c6fa8b7327
22:52 dalek parrot/generational_gc: 310adea | dukeleto++ | config/ (2 files):
22:52 dalek parrot/generational_gc: Merge branch 'tt1331-osx-conf-fix'
22:52 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/310adea9c4
22:52 dalek parrot/generational_gc: 942932e | nwellnhof++ | NEWS:
22:52 dalek parrot/generational_gc: Update NEWS
22:52 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/942932e671
22:52 dalek parrot/generational_gc: 1c71188 | Whiteknight++ | / (3 files):
22:52 dalek parrot/generational_gc: Merge branch 'whiteknight/callcontext_reset'
22:52 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/1c711886ba
22:52 dalek parrot/generational_gc: e7cb4a1 | bacek++ | / (26 files):
22:52 dalek parrot/generational_gc: Merge branch 'master' into generational_gc
22:52 dalek parrot/generational_gc:
22:52 dalek parrot/generational_gc: Conflicts:
22:52 dalek parrot/generational_gc: include/parrot/pobj.h
22:52 dalek parrot/generational_gc: lib/Parrot/Pmc2c/MethodEmitter.pm
22:52 dalek parrot/generational_gc: lib/Parrot/Pmc2c/PMCEmitter.pm
22:52 dalek parrot/generational_gc: src/pointer_array.c
22:52 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/e7cb4a193d
23:00 plobsing left #parrot
23:07 plobsing joined #parrot
23:10 NotFound I've found a trick that may work with a change in the way of dispatching methods in winxxed.
23:10 NotFound But I don't think is a good way, needs to call functions and crate auxiliar objects on each invocation.
23:15 NotFound Mmm, no, it will not work, method cache gets on the way.
23:17 whiteknight joined #parrot
23:19 nwellnhof whiteknight: i merged master into imcc_compreg_pmc locally. is it ok to push the merge and my fix?
23:19 plobsing left #parrot
23:19 whiteknight nwellnhof: yessir
23:20 whiteknight how fixed is it, no more GC-related segfaults?
23:21 nwellnhof whiteknight: i didn't get any
23:21 whiteknight awesome
23:25 dalek parrot/generational_gc: c3dd671 | bacek++ | lib/Parrot/Pmc2c/PMC/default.pm:
23:25 dalek parrot/generational_gc: Bring Pmc2c::default from master. Fix rotest failure
23:25 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/c3dd6715ca
23:27 mikehh whiteknight: I fixed a couple of codetest failures from your commit, but you might want to check the documentation for  Parrot_api_reset_call_signature in src/embed/api.c
23:30 dalek parrot/whiteknight/imcc_compreg_pmc: 73c0355 | nwellnhof++ | src/packfile/api.c:
23:30 dalek parrot/whiteknight/imcc_compreg_pmc: Block GC during Parrot_load_bytecode
23:30 dalek parrot/whiteknight/imcc_compreg_pmc:
23:30 dalek parrot/whiteknight/imcc_compreg_pmc: Related to TT #1990
23:30 dalek parrot/whiteknight/imcc_compreg_pmc: review: https://github.com/parrot/parrot/commit/73c0355d32
23:30 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#8320) fulltest) at 3_0_0-509-gc6fa8b7 - Ubuntu 10.10 i386 (g++-4.5)
23:31 nwellnhof whiteknight: i see that you merged master already
23:32 dalek parrot/whiteknight/imcc_compreg_pmc: 327839f | nwellnhof++ | src/packfile/api.c:
23:32 dalek parrot/whiteknight/imcc_compreg_pmc: Fix TT number
23:32 dalek parrot/whiteknight/imcc_compreg_pmc: review: https://github.com/parrot/parrot/commit/327839f6aa
23:38 nopaste "nwellnhof" at 192.168.1.3 pasted "make test output of whiteknight/imcc_compreg_pmc" (57 lines) at http://nopaste.snit.ch/30912
23:39 nwellnhof i guess that's expected
23:40 lucian joined #parrot
23:41 plobsing joined #parrot
23:44 cosimo joined #parrot
23:47 lucian left #parrot
23:49 Andy left #parrot

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

Parrot | source cross referenced