Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today
Set by moderator on 17 May 2011.
whiteknight bubaflub: Rosella/Test and Rosella/Harness are TAP producers and TAP consumers, so in that sense it's similar to Test::More from P5 00:01
the difference is the interface. Rosella/Test is more inspired by xUnit than Test::More
bubaflub whiteknight: great.
whiteknight although, Rosella/Test provides a Builder class which should be almost identical to Test::More. The rest of the library is a wrapper around that
lucian whiteknight: which, considering popularity, is an advantage 00:02
whiteknight so once you have a Builder, you can do builder.is(), builder.ok(), etc
it's missing a lot of methods because I haven't implemented them yet
bubaflub whiteknight: ok, and for testing the GMP Integer library it should be very straightforward. i shouldn't have to do any mock objects or things like that.
whiteknight but they are easy enough to add
bubaflub: okay, that's good. Mockobjects have ups and downs
bubaflub whiteknight: my plumage is complaining about not finding an OS package for winxed. but i have the latest Winxed installed - any ideas? 00:03
whiteknight oh, that's probably bad metadata, now that winxed is in parrot repo
let me update
NotFound_b OS package?
bubaflub sorry, the real problem is: Unable to open filehandle from path 'rosella/winxed.winxed' 00:05
whiteknight bubaflub: oh, that's different
...and weird
00:06 lucian left
bubaflub whiteknight: hmmm, i have latest plumage as well. 00:07
whiteknight okay, I figured it out
I'll push a fix in a second
bubaflub whiteknight: ok, thanks a bunch. 00:08
whiteknight bubaflub: Okay, pushed. do a "plumage update rosella" and "plumage install rosella" 00:09
bubaflub whiteknight: that looks like that did it. thanks.
whiteknight the distutils library automatically creates directories that don't exist, but my wrapper library doesn't always
so I need to add that functionality eventually
bubaflub whiteknight: ah, now another problem. rosella/harness.winxed:301: Variable 'is_test' is not defined near is_test 00:10
exit status: 256
whiteknight hah
I've done a lot of refactoring lately, and obviously haven't tried installing it
bubaflub whiteknight: sorry to hassle you like this.
whiteknight no, it's good!
00:12 contingencyplan left
whiteknight it's a little embarrasing that things are so broken on the day somebody wants to use it 00:13
00:14 contingencyplan joined
whiteknight it's also embarrassing to spell that word wrong 00:14
00:14 kid51_at_dinner is now known as kid51
bubaflub so many repeated consonants 00:14
NotFound_b I ned a spel chekin. 00:15
whiteknight okay, fix coming up in a second 00:18
okay, try it again 00:21
NotFound_b: Parrot_pf_get_packfile_main_sub doesn't just take a PackFile PMC. It takes any PMC where get_pointer returns a PackFile* 00:24
Eval can do that, if it overrides get_pointer
NotFound_b whiteknight: Ah, true, ddn't thinked about that, 00:25
bubaflub whiteknight: that worked. going to work on my harness now 00:29
whiteknight bubaflub: awesome. It shouldn't take more than 5 minutes.
I'll start the timer.....NOW
bubaflub \\me scrambles
bubaflub uses wrong slash 00:30
whiteknight: what does the first argument in add_test_dirs do? 00:40
whiteknight bubaflub: it's the type of compiler to use for the test
bubaflub whiteknight: ok.
whiteknight "NQP", "Winxed" and "PIR" are built-in
other compilers can be registered too 00:41
bubaflub whiteknight: hmm, i'm getting a Null PMC access in get_pmc_keyed() 00:44
current instr.: 'parrot;Rosella;Harness;TestRun;Factory;add_test_dirs' pc 3004 (rosella/harness.pir:1346) (rosella/harness.winxed:711)
i'm trying to do: $testfactory.add_test_dirs("Winxed", "t/integer/init", :recurse(0));
whiteknight how are you creating your $testfactory? 00:45
the example in my blog was old. You need to use Rosella::construct(Rosella::Harness::TestRun::Factory) 00:46
not Rosella::build
whiteknight.github.com/Rosella/libr...rness.html
(these examples are fresh)
00:49 RobertLJ joined
bubaflub whiteknight: ok 00:51
00:51 RobertLJ_ left
benabik I've managed to make NQP fall into an infinite loop. I feel proud. 00:53
whiteknight benabik: oh, nice
benabik NQP makes a nice canary for PAST bugs. 00:54
cotto_work Infinite loops are the gift that keeps on giving.
kid51 At commit ca4c2817fe569, we're now PASSing again with an all g++ build.
whiteknight kid51: thanks for the report 00:55
and sorry about the breakage. mea culpa
bubaflub whiteknight: gist.github.com/1024111 is my harness and the related error. any pointers would be helpful
whiteknight Rosella::Harness::TestRunFactory -> Rosella::Harness::TestRun::Factory 00:56
that blog example is older than I realize
I should either update it, or stop passing around that link
bubaflub whiteknight: great! i've now got Passed 0 tests in 0 files (1 test runs) 00:57
whiteknight Acheivement Unlocked
are there no test files in that directory? 00:58
bubaflub hmmm, there is 01-init.winxed
whiteknight oh, it's looking for .t files 00:59
not .winxed files
bubaflub ah, ok
i can change it
whiteknight you can specify the file name directly if you want that
bubaflub whiteknight: eh, no biggie
whiteknight: great, now it works. i mean, i basically stole github.com/Whiteknight/Rosella/blo...st/Basic.t
whiteknight factory.add_test_files adds individual files
bubaflub: that's fine, it's a start 01:00
there are lots of pre-defined assertions you can use, you can write your own, and there are other capabilities too. Anything you want is probably supported 01:01
so if you have questions, just ask 01:02
bubaflub whiteknight: great. thanks for all your help. i'll probably keep things super simple right now. 01:03
NotFound_b whiteknight: overriding get_pointer in Eval don't break any test. 01:05
kid51 afk
bubaflub whiteknight: one quick question - how can i test init-ing a GMP Integer? just have a function that makes one and makes sure it doesn't die? 01:07
benabik needs to check that the bootstrap bootstraps properly more often. :-( 01:08
01:11 theory left
whiteknight NotFound_b: awesome. That's what I wanted to hear 01:13
bubaflub: sure. Test that creating an integer doesn't throw an exception, and prove that the result isa Integer 01:14
bubaflub whiteknight: great.
whiteknight self.assert.instance_of(class GMP::Integer, foo);
or whatever you name things
01:15 woosley joined
NotFound_b whiteknight: I'll recheck and commit tomorrow, now I'm tired. 'night. 01:15
whiteknight NotFound++
01:15 NotFound_b left
benabik New routine: make, bootstrap, make bootstrap, make, test. 01:16
whiteknight sounds involving 01:18
benabik whiteknight: I had some problems with the bootstrap not compiling itself properly... Have to do some more detailed tests before pushing from now on. 01:19
whiteknight yeah, when doing bootstrapping stuff, detailed testing is key
you don't want things to fail before you have a chance to build anything with it
anyway, it's time for me to go to bed 01:20
goodnight
benabik 12 commits incoming... I want to push what I have before grabbing pmichaud++'s PCT changes.
lichtkind good night and thanks again
01:20 whiteknight left
benabik ... Unless dalek's feeling pouty. Come to think of it, I didn't see it announce those changes I want to port in the first place... 01:21
01:22 lichtkind left
cotto ~~ 01:23
benabik Does NQP-rx have constants? 01:25
pmichaud what kind of constants? 01:35
do you want the constants (that aren't) or the variables (that won't) ? ;-) :-) 01:36
bubaflub arrrrrg, the winxed docs have a blank space for Error Handling and Exceptions.
pmichaud I just added pir::const:: to nqp and nom this past week, I can likely add it to nqp-rx if you're looking for a way to get at the pasm constants
benabik pmichaud: I'm looking at a way to duplicate the constants that you just added to PAST::Compiler. :-D 01:37
dukeleto bubaflub: patches welcome?
sorear bubaflub: the person who tried to write that was eaten by a sanity-devouring monster from beyond the stars and we never got eir patch
dukeleto bubaflub: what are you running into?
bubaflub dukeleto: gotta figure out how to do it first
benabik pmichaud: Although access to PASM constants might be handy as I've had to swap out a couple of CCLASS constants for their values.
bubaflub dukeleto: just wanted to verify try/catch syntax in Winxed.
dukeleto: i am likely to be eaten by a grue 01:38
pmichaud swapping out CCLASS for values will likely cause breakage some day.
bubaflub dukeleto: i'll take a look to see if there are any Winxed examples and submit a pull request 01:40
benabik pmichaud: That is, in fact, my concern. 01:42
pmichaud are you blocking on the constants, or can I put it on my "in the next couple of days" list?
benabik pmichaud: Next couple of days is fine. It works as is, for now at least. 01:43
dukeleto benabik: where is your cish tutorial again? 01:45
benabik dukeleto: github.com/benabik/cish
aloha, cish?
aloha benabik: Dunno.
benabik aloha: cish is github.com/benabik/cish
aloha benabik: Okay.
dukeleto benabik++
pmichaud cish looks cool. patches welcome? 01:47
benabik pmichaud: Yes. That's why I put it in github.
pmichaud: As a note, it was originally written as an introduction to PCT for a compiler class, so it assumes a decent amount of knowledge and isn't quite written as a tutorial. 01:49
pmichaud it still looks quite good and useful
so far I've only seen a couple of items that could be made a little more exact
benabik should probably add a note to that effect to the doc itself.
pmichaud: It was also written in a very rushed week while I should have been working on the actual project for the class. :-D
pmichaud "his defines the grammar, which is actually a class. In NQP, grammars are classes and rules are methods. If this sounds like this will be a recursive decent parser, you're half right. (Wait for the other half.)" 01:51
...where's the other half? ;-)
benabik pmichaud: EXPR, which is bottom up instead of top down. 01:52
pmichaud ah, I didn't see that section
The "Con" section lists "limits of recursive descent", but EXPR is the non-recursive-descent part of the system. :) 01:53
benabik pmichaud: It's a fairly small con, but my prof especially didn't like recursive descent at all. 01:54
cotto kid51: ping
pmichaud did your prof like python? ;-)
benabik I don't think that really came up. 01:55
pmichaud anyway, I totally understand having to not ruffle a prof's feathers. :) 01:56
recursive descent is really bad for expressions and the like... which is why Perl 6 doesn't use recursive descent for that :)
(and NQP for the same reason :)
benabik It also makes finding errors more difficult... Misspelling rules causes errors at runtime instead of compile, which can often be irritating. 01:57
sorear why is it bad for expressions?
benabik sorear: because lazy programmers like writing things like `expr := expr '+' expr`. 01:58
pmichaud sorear: because you often end up running up and down many levels of recursive precedence to get between high-precedence terms and much lower-precedence operators
for something like perl 6, which has 25+ precedence levels... that can get expensive quick.
benabik Not to mention confusing. 01:59
sorear "is tighter" and "is looser" make parsing Perl 6 with recursive descent interesting anyway 02:00
pmichaud I think audreyt ultimately concluded that it wasn't feasible to add custom precedence levels using recdescent (although she tried for a while) 02:01
kid51 make test PASS darwin/ppc at ca4c2817fe5 02:02
cotto: pong 02:04
cotto kid51: did you know you can append ".diff" to pull request urls to get the diff?
kid51 No.
cotto It's handy. I'm trying to find where it's documented, but github-- keeps misredirecting me away from their support site. 02:05
It does seem to be an officially supported feature. 02:06
kid51 Well, it's certainly not documented where it would be truly useful to have it!
I see it now. That's much more to my liking.
Viva plain-text diffs!
cotto I guess they took down their support site and broke any urls pointing at it. 02:07
kid51 And it works well with 'wget'. Mucho mejor. 02:09
cotto kid51: how far does that go to address your concerns about allowing github as a primary means of sharing patches?
yup
kid51 I'm still suspicious of what you mean by 'primary' 02:10
cotto I mean that attaching a patch and linking to a pull request are equally acceptable.
kid51 If that +.diff is well publicized, then that's acceptable. 02:11
(and provided it continues to work on github, documented or not)
cotto dukeleto: ping
dukeleto cotto: pong 02:12
kid51 But one thing: I find git comments on commits annoying, particularly when they arrive in my email and I can't figure out their context ...
cotto dukeleto: do you know how official the ability to add ".diff" to a github url is?
kid51 .... so I ignore them, and ignore any git pull requests in them as well.
But that's different from citing a link to a pull request.diff inside a Trac ticket. 02:13
dukeleto cotto: pretty sure they talk about it in some of their blog posts
cotto github doesn't do everything well.
dukeleto kid51: you can manage your email setting on github, under your accounts "notification center"
kid51 too much effort. I don't have all day to spend on github. I have a $dayjob. 02:15
One more feature ... and github will morph into emacs! 02:16
cotto I'm not finding it in their blog.
kid51 What does "canonicalize the path" mean? 02:20
(... as in trac.parrot.org/parrot/ticket/1282)
soh_cah_toa kid51: to conform to well-established standards 02:23
kid51: though, in the context of that ticket, i think he probably meant something else ;)
cotto kid51: in that ticket it seems to mean always use the platform-specific slashes 02:26
bubaflub incoming 02:28
kid51 However, what I'm finding thru internet searches is that using the platform's preferred slashes is necessary but not sufficient to define canonical status
benabik bubaflub: Probably not. dalek's been quiet.
cotto bubaflub: let me get my umbrella
bubaflub *phew*
soh_cah_toa yeah, dalek is busted
kid51 aloha, seen dalek? 02:32
aloha kid51: dalek was last seen in #perl6 3 hours 54 mins ago saying "rakudo/nom: review: github.com/rakudo/rakudo/commit/1727d604be".
bubaflub msg dukeleto blogged: www.parrot.org/content/parrot-gmp-g...-and-tests 02:39
aloha OK. I'll deliver the message.
dalek website: bubaflub++ | Parrot-GMP: Generated Code, Strings, and Tests
website: www.parrot.org/content/parrot-gmp-g...-and-tests
bubaflub haha, and dalek is back
benabik pmichaud: What can I test PAST::Stmt with? NQP master? 02:49
dalek TT #2025 closed by jkeenan++: tools/dev/ops_not_tested.pl: Program no longer runs: libraries missing 02:55
TT #2025: trac.parrot.org/parrot/ticket/2025
02:59 kid51 left
soh_cah_toa cotto: ping 03:00
cotto soh_cah_toa: ping 03:01
er, pong
03:01 RobertLJ left
soh_cah_toa could you explain what Parrot_pcc_set_pc() does? the code i copied from runops_fast_core() comments that it disables the pc. if i want to break at the pc, shouldn't i remove this call? 03:01
cotto looking now 03:02
soh_cah_toa unfortunately, there's no inline comments
cotto lta
soh_cah_toa include/parrot/context.h line 458
cotto It's an accessor for the interp's pc. 03:03
I'm not sure why it's used like that in the fast core 03:04
soh_cah_toa yeah, i know 03:05
do you think i should remove it? runops_debugger_core() doesn't use it either 03:07
cotto It seems to be an optimization for the fast core. 03:09
soh_cah_toa ok
cotto I'd update it like the slow runcore does. 03:10
soh_cah_toa i see. ok 03:11
btw, do you think i should add bounds checking to the runcore? would this slow things down? also, is bounds checking really necessary in general? i mean, how is it possible to access code outside the code segment? 03:13
cotto soh_cah_toa: it was useful when Parrot was more experimental. I don't think it'll help or hurt you, so there's no reason to add the extra code. 03:15
soh_cah_toa ok
if that's the case, do we even really need a slow core? if all it does is perform tracing and bounds checking and we already have runops_trace_core() for the former, does it still serve any practical purpose? 03:19
cotto probably not 03:20
soh_cah_toa possible deprecation maybe? 03:21
cotto soh_cah_toa: probably not worthwhile. If we're not running it, it's a total burden of maybe 50 lines of code. 03:22
removing it shouldn't have any meaningful effect on performance 03:23
soh_cah_toa true. though it's never a good idea to leave rotten food around the house. and by food i mean code. ;)
cotto it's very unlikely to break, so bitrot isn't much of a concern 03:24
soh_cah_toa there are other things of importance first
right
cotto exactly
soh_cah_toa agh...why is it that every time i do something in file "a", something completely unrelated in file "b" breaks!? 03:25
benabik Huh. How'd I manage to do that? NQP is now outputting `store_dynamic_lex $P100, "$*VAR"` instead of `store_dynamic_lex "$*VAR", $P100`. 03:27
cotto ship it 03:28
benabik Needless to say, IMCC is not amused.
soh_cah_toa pushed
cotto dukeleto: ping
dukeleto cotto: pong 03:35
cotto dukeleto: I'm thinking about how M0 could support both 32- and 64-bit INSP values without getting us into a nasty combinatorial testing explosion. If sizeof(I) == sizeof(N) and sizeof(S) == sizeof(P), that gives us 4 combinations that need testing. 03:36
dukeleto cotto: ok, sounds reasonable 03:37
cotto Is either sizeof(P) > sizeof(I) or sizeof(P) < sizeof(I) a likely configuration? 03:38
dukeleto don't really know 03:39
cotto I'm looking through MS' documentation and am in awe at how many data types windows has. 03:40
Ah. On 64-bit windows 32-bit ints are native but pointers are 64-bit. 03:44
64-bit ints and 32-bit pointers doesn't seem to make much sense 03:45
benabik The moment you say it can never happen, someone will find a system where it does.
cotto It'd be possible but not very performant.
It's not possible. 03:46
cotto waits
sorear 64 bit ints and 32 bit pointers makes a lot of sense on highly data-oriented systems 03:48
the "64" in N64 refers to the int size, though it didn't even come close to 4GB of memory, so it had no use for wider pointers 03:49
cotto sorear++ 03:50
I was about to ask for your thoughts.
sorear it's funny, I just came home a few minutes ago :) 03:51
03:52 theory joined
sorear well. "sizeof(P)" is open to interpretation 03:52
cotto If someone wants to have an N64 port of M0, we would do well to enable it.
sorear a lot of systems have pointers that have a useful size smaller than the integer
soh_cah_toa i've never seen different sized pointers/ints before. to me, this seems like a bad thing since they cannot be cast to either type. is there an actual advantage to differing sizes?
sorear but almost all user code stores pointers in int-sized memory for simplicity's sake 03:53
all current x86_64 chips have 48-bit pointers
but I've never code store them in less than 8 bytes
soh_cah_toa to me, it would make sense to have sizeof(P) >= everything so any data type could be cast as a pointer to a PMC. though the only real useful type would be integers. i have no case study or research to refer to but it just feels right to at least have sizeof(P) == sizeof(I) 03:59
cotto soh_cah_toa: it depends on what the underlying platforms support 04:00
soh_cah_toa ah, yes
sorear why would you want to cast any data type to a pointer? 04:01
"sizeof(P) >= everything" is true on almost no platforms
x86_64 has 128 bit "long double"s (and even longer vector types, but Parrot is unlikely to use those ever) 04:02
soh_cah_toa so you could say string str = "0xabc"; pointer = str without error
not that that's a feature or anything
sorear er. that's not make sense
soh_cah_toa in case that ever happenedd 04:03
it wouldn't cause a type mismatch
oh wait...
no, string representation would have nothing to do w/ type size 04:04
they're stored as ascii, not integer values 04:05
so yeah, that'd be totally weird
so let me see if i understand this...regardless of the size that the platform uses for different types, m0 will always use the same size for its types? 04:10
cotto soh_cah_toa: no. It'll try to use appropriately-sized types. 04:12
04:12 theory left
soh_cah_toa so it will vary from system to system? using whatever size the system uses? 04:13
benabik I==N and S==P seems to make sense though. S&P are pointer size and we should be able to have a float the size of an int.
sorear I==N is a Bad Idea
cotto sorear: care to elaborate? 04:14
sorear is on a system where N=8, I=4
soh_cah_toa isn't it usually N > I?
otherwise, the precision of floating points would be limited to whatever the size of ints are 04:16
unless it was N=8 and I=8 which would be a waste of space
sorear N=4 is considered a joke in most numerics circles, with narrow exceptions for real-time graphics 04:17
soh_cah_toa yeah
sorear when was the last time you saw a serious C programmer use "float"?
most (although not quite all) processors have separate register sets for the FPU and the integer unit 04:18
if we combine I and N registers, we're potentially significantly increasing the load on the JIT 04:19
since it will have to decide what registers to store where
cotto Is there any reason not to say that N registers are always 8 bytes?
sorear cotto: futureproofing 04:20
soh_cah_toa 8 bytes is what most programmers expect as well 04:21
sorear I have no way of predicting what FP will be like in 10 years
maybe the decimal folks will take over the world and CPUs will naturally work with 16-byte decimal FP with "legacy" 8-byte IEEE 754 double precision in software 04:22
soh_cah_toa i'd imagine that anything less than 8 bytes would turn away a lot of potential developers interested in pct
mathematical devs, that is
cotto soh_cah_toa: they seem to be well-represented within Parrot's dev community 04:23
sorear I'm totally fine with "the N register is guaranteed to support precision equal to at least 15 decimal digits"
but I don't think being prescriptive and saying "it will use IEEE 754" is necessarily a good idea
soh_cah_toa why not? 04:24
sorear IIRC, Java 1.0 mandated exact IEEE 754 behavior
as part of the whole "predictability - write once run anywhere" thing 04:25
but it was just too slow on a lot of people's computers, so they had to backpedal on that one
cotto Given that there aren't any 16-byte data types in M0 atm, I'm leaning toward saying that N will be 8 bytes for the time being.
sorear cotto: is there any reason to prescribe a size? 04:26
(not helping matters: Sun is/was also a CPU maker and they made Java use SPARC semantics, not x86 semantics, for FP)
cotto sorear: the M0 spec wouldn't be very helpful if it didn't say how much space the various registers take up. 04:28
soh_cah_toa i agree. isn't that a necessity?
sorear cotto: I thought that kind of information was stored in the M0 header, not the M0 spec 04:29
pmichaud aloha: tell benabik nqp-rx (7be0b48) now uses PAST::Stmt too, if you prefer to test with that.
cotto sorear: the m0 spec says what's allowable in the header
pmichaud aloha?
benabik pmichaud: As long as I have something to test against, I'm not too picky. :-D 04:30
pmichaud aloha: msg benabik nqp-rx (7be0b48) now uses PAST::Stmt too, if you prefer to test with that.
aloha pmichaud: OK. I'll deliver the message.
cotto aloha, aloha?
aloha cotto: aloha is simple Bot::BasicBot::Pluggable hosted on github.com/bacek/aloha
pmichaud there.
aloha understands "msg" but not tell. Hmmph.
explain why aloha is a stupid bod.
aloha positive: nothing; negative: nothing; overall: 0.
pmichaud *bot
(it speaks when not wanted and doesn't speak when wanted. Bad Bot! No Bot-Cookie!) 04:31
cotto still better than purl
pmichaud definitely better than purl
sorear aloha: dwim 04:32
the traditional thing to do would be to give m0asm arithmetic abilities
pmichaud enough hacking for today .. bbt
cotto sorear: what do you mean?
benabik Narrowed down my store_dynamic_lex problem to a bootstrap commit... And then discovered it would trigger if I did make, bootstrap, make, bootstrap, make. *sigh* Bootstrapping makes debugging irritating. 04:33
aloha: yes, yes, I know I have a message, I was right here.
sorear cotto: nothing, I confused myself 04:34
mikehh All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-265-g44d7ba9
Ubuntu 11.04 i386 (g++)
benabik should probably sleep 04:35
soh_cah_toa what about strings? i never thought about data size for strings other than 1 char = 1 byte so n char string = n bytes. is there actually a definite size for strings or are they variable?
cotto soh_cah_toa: M0 strings will be objects, though C-like strings will be supported to a limited extent. 04:36
soh_cah_toa so whatever the size of pmc's are will be the size of strings. ok 04:37
cotto yup
sorear soh_cah_toa: last I heard, M0 does not have "S" registers at all
soh_cah_toa really?
cotto sorear: it does. They're the same as P.
soh_cah_toa oh, duhh....that's why sizeof(P) == sizeof(P)
sorear strings are going to become PMCs
soh_cah_toa sizeof(P) == sizeof(S) i mean 04:38
benabik soh_cah_toa: Those equalities are apparently equal. :-D
soh_cah_toa ha!
cotto sizeof(P) != sizeof(P)
soh_cah_toa does not compute 04:39
sorear NO
soh_cah_toa error error error
sorear I will NOT tolerate NaN byte PMC*
cotto I guess we know how the robots are now.
*who
sorear That is UNACCEPTABLE
soh_cah_toa i'm the only one that passed the turing test
benabik I forgot to study for it.
sorear cotto: you staged a turing test and didn't invite bacek? 04:40
cotto sorear: there's no question about whether he's a robot.
soh_cah_toa ok, it is officially "i can't possibly write anymore code" time 04:41
i'll see you all tomorrow
04:41 soh_cah_toa left
benabik Funny thing. If you make a POST::Op with the arguments in the right order, it doesn't DTRT. 04:59
Errr... wrong order. 05:00
Once I'm sure I've squashed this bug, I'm heading to bed.
I'm thinking dalek has lost his connection to github. It was announcing parrot.org changes, but I just pushed a few more commits and... nothing. 05:05
cotto benabik: same here 05:08
05:09 JimmyZ joined
sorear it seems github has changed how the pushes are formatted 05:09
cotto goody 05:10
benabik boo
cotto nice of them to not post anything about it on their blog 05:11
sorear looking at the commit log, it seems "rick" completely rewrote the hook system over the weekend
dukeleto no bueno 05:12
benabik sorear: commit log?
One would think they'd have some kind of release management with tests to make sure they don't break people's code without warning. Maybe some kind of depreciation policy or something. 05:13
sorear benabik: git clone git://github.com/github/github-services.git 05:14
benabik: could you go push the "Test Hook" button for your repo?
benabik sorear: For my parrot fork?
sorear yes 05:15
benabik sorear: I don't have it connected to my fork. :-/
sorear ok
opbots names
JimmyZ some times github commit log message doesn't have a link 05:19
benabik Wheee... parrot/parrot/nqp_pct is now less broken (although the bootstrap still has the error, I'll fix that soon). And benabik/parrot/nqp_pct has the beginnings of PAST::Stmt. 05:20
dalek lek-poller: 303ac6a | sorear++ | push.psgi:
Drop commit packets with >15 commits, with a warning to the offender
lek-poller: b72de5a | sorear++ | push.psgi:
Improve message after heuristic merge detection
benabik And now I should really sleep.
lek-poller: 39e7ab0 | sorear++ | push.psgi:
Fix UTF8 handling in push mode.
benabik G'night, #parrot
sorear \\o/
cotto 'night benabik
benabik sorear++ 05:21
cotto sorear++
sorear: what was the fix? Those commits are old. 05:22
dalek lek-poller: 710078d | sorear++ | poll:
Disable tpfwiki tracking due to spam
lek-poller: 46fdf61 | sorear++ | push.psgi:
Make github pushes work again
cotto ah 05:23
sorear cotto: that was testing
05:39 hudnix left 06:08 fperrad joined 06:14 he joined 06:37 cosimo left 06:56 mj41 joined 07:06 JimmyZ left 07:48 woosley left 08:00 athomason left 08:01 athomason joined 08:17 athomason left 08:18 athomason joined 09:28 contingencyplan left 09:32 SHODAN joined 09:40 contingencyplan joined 09:41 UltraDM joined 09:52 contingencyplan left 10:32 RobertLJ joined 11:24 ambs joined 11:34 ambs left 11:48 SHODAN left 11:59 SHODAN joined 12:33 fperrad left 12:36 whiteknight joined
whiteknight good morning, #parrot 12:38
12:40 JimmyZ joined 12:42 fperrad joined, Shozan joined 12:46 SHODAN left, Shozan is now known as SHODAN
Coke yawns. 12:54
sleepy
12:57 bluescreen joined
bubaflub good morning whiteknight 13:02
13:02 mtk joined
whiteknight hello bubaflub. How is the testing and coding going for you this morning? 13:03
13:03 mtk left
bubaflub whiteknight: well, i'm still getting some strange errors 13:04
whiteknight: it's much closer now though
whiteknight what kinds of errors? 13:05
like, errors with rosella, or errors in your lib?
bubaflub whiteknight: errors with my lib. i'll gist some of it real quick for ya. 13:06
whiteknight okay, awesome
bubaflub whiteknight: though the harness in nqp runs just great.
whiteknight awesome. glad to hear that
I think it can all probably get easier still, I just haven't come up with a good interface for it 13:07
13:07 mtk joined 13:08 mtk left
bubaflub whiteknight: gist.github.com/1024854 - the basic.winxed works fine but the test fails - it tries to create a GMP.Integer but fails then goes to the catch block. 13:08
13:08 mtk joined
bubaflub whiteknight: also, i was surprised that there were no rosella docs on try / catch, but i found some code in the rosella code base. i'll send you a pull request for basic docs in a bit. 13:08
whiteknight yeah, I don't think I wrote any docs for try/catch yet 13:10
I should probably get to that
13:10 hudnix joined
whiteknight Instead of using try/catch, use self.assert.throws_nothing(function () { ... }) 13:11
put your test inside of the inner function
that will catch any exceptions and give you better, more detailed error information for debugging 13:12
you can take out the self.assert.fail stuff, and all the try/catch blocks 13:13
Also, you could take that out entirely. The library will automatically fail a test if there is an unhandled exception
bubaflub whiteknight: ok, i'll nuke the try catch stuff 13:18
whiteknight: also the harness is automatically trying to get my VIM .swp file 13:19
whiteknight what?
that's weird, it should only be picking up .t files 13:20
bubaflub whiteknight: List of files with premature exits:
t/integer/init/.01-init.t.swp
whiteknight: also my tests are failing because: # get_string() not implemented in class 'GMP;Integer'
whiteknight ah, funky
bubaflub whiteknight: i haven't done a get_string method, and it would be easy to implement it, but i wonder why it's still trying to call it as a string 13:21
whiteknight what's the backtrace on that?
first step is finding out where it's trying to convert to string. Second step is to say "don't do that"
bubaflub whiteknight: looks like it's calling from 'instance_of' 13:23
whiteknight can you post the backtrace? 13:24
ah nevermind. The args are backwards. Should be "self.assert.instance_of(x, class 'Integer'); " 13:25
bubaflub whiteknight: hahaha, ok 13:26
whiteknight You may also want to change that to "self.assert.instance_of(x, class GMP.Integer); " to make sure it doesn't get confused with the built-in type "Integer"
github.com/Whiteknight/Rosella/blo...ter.winxed <---- that's the list of all assertions, for your reference
13:40 RobertLJ left, RobertLJ joined
bubaflub whiteknight: nice! finally got everything to pass. thanks for all your help. 13:44
whiteknight awesome, no problem
sorry it was so hard to get here
dalek rrot-gmp: 3634f83 | bubaflub++ | t/integer/init/01-init.t:
fix init test with whiteknight++'s help
bubaflub whiteknight: not a problem. that should be all i need in terms of setup. 13:45
hey, dalek is back.
whiteknight oh awesome 13:47
dalek++
(whoever brought dalek back)++ 13:48
moritz sorear++ 13:50
whiteknight it was sorear++? 13:51
then, sorear++ !!
atrodo sorear++ 13:54
whiteknight msg NotFound tried to build WinxedGtk, fail. Tried "make" and "winxed setup.winxed build". Both can't find pir/WinxedGtk.pir 14:02
aloha OK. I'll deliver the message.
14:09 he left 14:23 RobertLJ left
dalek TT #2136 created by whiteknight++: libffi not detected when configured with clang 14:23
TT #2136: trac.parrot.org/parrot/ticket/2136
14:24 RobertLJ joined 14:25 lucian joined
lucian good day 14:26
NotFound whiteknight: look if the pir directory exists. 14:27
whiteknight NotFound: no, it doesn't exist by default. I already created it manually and was able to build 14:29
NotFound How can I tell git to commit an empry dir? 14:30
14:30 mtk left
atrodo Last I checked, you can't 14:30
lucian NotFound: can't. git only tracks file contents
moritz NotFound: add a .gitignore to it
14:30 mtk joined
moritz and git add -f pir/.gitignore 14:31
lucian git tracks contents, hg tracks files, bzr tracks everything
NotFound moritz: nice trick
whiteknight yes, that's what I do with Rosella. I have .ignore files in empty directories 14:32
lucian moritz: i'm sure git purists would scoff at that 14:33
moritz lucian: I don't care
lucian moritz: i figured :)
moritz lucian: if generated files go into it, you can even put a * into the .gitignore file
NotFound Done
moritz lucian: and then have another benefit from it
dalek website: rohit_nsit08++ | CorellaScript : talking in PIR . 14:34
website: www.parrot.org/content/corellascrip...king-pir-.
atrodo moritz++ That's a good idea. Never considered that
lucian moritz: yes, sounds useful
bah, again with the odd errors 14:45
benabik Morning, #parrot 15:02
cotto ~~ 15:13
15:14 rohit_nsit08 joined 15:20 alester joined 15:26 lucian left, UltraDM left 15:30 rohit_nsit08 left 15:38 lucian joined
lucian how can i pinpoint a "too many positional arguments" error? 15:39
whiteknight ouch, good question 15:41
lucian whiteknight: apparently, i can't 15:42
i'm struggling with Rosella.Test.TestContext 15:43
is there an example of its usage?
whiteknight what are you trying to do with it?
TestContext is basically just persistant data storage between tests 15:44
lucian i need state between test cases
whiteknight it's basically a hash. self.context["foo"] = bar
what troubles are you having?
lucian ah, ok. so i can set it in one test, then read it in another?
whiteknight exactly
lucian i thought i had to subclass it
whiteknight you can subclass it if you need more than what it offers 15:45
but you can use it as-is if you're just storing values by name
and you can pre-populate the context with data before running tests
lucian whiteknight: how? do i need to duplicate Test.test for that?
or just provide a hash as the second argument to test() ? 15:46
whiteknight Rosella.Test.test takes a number of optional named parameters
If you pass in an object named "context" to test(), that value will be used as self.context
lucian ok
whiteknight by default, context is null, I create a new empty TestContext object
but you can create your own TestContext and fill it with stuff, or use a different type of object entirely 15:47
it's file-local, of course
lucian yeah, that part i figured
for the compiler, i'm building a boot() function that boostraps the object system 15:48
whiteknight right
lucian but since that function uses set_global, i can only call it once
but i need to be able to check those globals against something, so boot() also returns a hash with globals 15:49
perhaps i'm doing this wrong
whiteknight: yes, i guess i am doing it wrong. perhaps boot should just return the env, and set_global should happen elsewhere 15:51
whiteknight that's probably a good choice 15:52
lucian namespacing is still bothering me, i don't quite understand what i should be doing 15:53
but i'll just stick to globals only for now, and try to get the compiler to use the object system
15:59 lucian_ joined, SHODAN left
lucian_ has switched networks 15:59
Coke perltidy++ 16:00
16:02 theory joined 16:03 lucian left
lucian_ strongly dislikes winxed's using 16:07
benabik Random Q: Is there a way to introspect PBCs/classes? 16:08
lucian_ whiteknight: i waved away the state, much better now. thanks 16:12
lucian_ strongly dislikes state too
16:12 JimmyZ_ joined
whiteknight benabik: classes, mostly. not PBCs so much 16:14
benabik: what do you need to look at?
benabik: In the Parrot repo, look at src/pmc/class.pmc. Anything marked "METHOD" is a method you can call from PIR
also, there's an "inspect" op, which takes a name and returns a value 16:15
benabik whiteknight: I've been pondering how I would do a low level language on PAST. Wondering how much type-checking I could do.
whiteknight: Idle speculation, mostly.
sorear benabik: like, winxed low level, or more like perlesque?
16:17 JimmyZ left, JimmyZ_ is now known as JimmyZ
benabik sorear: Winxed, but on top of PAST. It's mostly just random musings while waiting for tests to finish running. :-D 16:19
lucian_ thinks set_global/get_global don't work
cotto_work ~~
lucian_ benabik: interesting idea. targeting M0 would be similar, too 16:20
benabik lucian_: Yes, an M1 system language is a good idea.
Possibly even more useful than what I've been pondering so far. Hm. 16:21
lucian_ i tend to see that as a better legacy path than PIR 16:22
benabik M0 isn't exactly legacy right now.
lucian_ no, i mean moving from legacy parrot to M0
cotto_work heh
benabik Although my PAST-C is somewhat coming out of the realization that I need a more expansive test suite for PAST.
cotto_work M0 isn't even fully defined right now.
benabik When I can completely break a type of variable and only notice when I bootstrap twice, that's a problem. 16:23
16:26 mikehh left
lucian_ allison: ping 16:26
16:44 mikehh joined
cotto_work An M1 system language would be an excellent idea. I'm not entirely sure moving Parrot guts to an M0 overlay will be possible without one. 16:56
whiteknight no, Parrot is too huge to be rewriting much of it in assembly language 16:57
good luck finding the coders with the motivation or the tuits for that kind of brain-numbing project
cotto_work whiteknight: shoot me if I ever suggest that.
Writing CPS fibonacci in M0 will be quite enough. 16:58
lucian_ whiteknight: i had this silly thought of compiling parrot's C bits to M0, along with everything else 16:59
benabik Fill in the blank: M1C should be implemented in ___ 17:00
cotto_work lucian_: the only problem with that is that we'd have to *correctly* parse C. 17:02
benabik Don't we already parse a lot of C in opsc? 17:03
lucian_ cotto_work: that wouldn't be much of a problem. my idea was to retarget an existing C compiler
cotto_work benabik: yes and no.
lucian_ but it's still silly
cotto_work benabik: it parses a subset of C limited to what's reasonably easy to parse. 17:04
benabik cotto_work: And if an op uses something outside of that subset?
cotto_work macro and type support is very limited
benabik: boom
benabik BOOM! \\o/
Boom and doom.
lucian_ cotto_work: so opsc could grow a M0 backend
but there's still a lot of fiddly wok in interfacing with the C bits 17:05
benabik Do PMCs get parsed similarly, or are they more direct C?
cotto_work lucian_: there's a lot more to Parrot's C guts than just ops.
lucian_ i know 17:06
benabik Isn't a lot of it going to stay C and just get called from M0?
cotto_work It is a good time to start thinking about what the default M1 will look like.
whiteknight benabik: depends what you mean by "a lot of it"
benabik whiteknight: Fair enough, I suppose. 17:07
whiteknight benabik: every time we cross the barrier between C and PIR, we pay a steep performance penalty
cotto_work benabik: yes but only as a transitional measure.\\
whiteknight like, calling a C method from PIR, or calling a PIR routine from C
so we need to rewrite enough of Parrot core to either minimize those instances or eliminate them completely
17:07 lucian joined
whiteknight of course, extensions will still want that ability, but they can pay the call-in/call-out price 17:07
so it might not make sense to eliminate all instances from parrot entirely 17:08
we still want to get rid of a lot
cotto_work Calling from M0 into C won't hurt anything if we know we won't need to spawn an inner runloop.
whiteknight right. M0->C is not nearly as expensive as the other way around
benabik I would think most of the "backend" would stay C. GC, for one.
alester Trac still hates me. :-(
whiteknight benabik: yes, GC probably will stay in C
PCC too
benabik PCC? 17:09
cotto_work I/O was suggested as a good first subsystem to move once we have M0 in libparrot and know what the plan looks like.
alester Can someone who can log into the wiki please make an edit for me? trac.parrot.org/parrot/wiki/git-svn-tutorial
whiteknight calling conventions
cotto_work: maybe
cotto_work: I think the first thing would need to be built-in PMCs, especially Object
that's where most context switches happen
calling vtable overrides on Object
benabik M0 does exceptions, right?
cotto_work whiteknight: the first system should be the easiest. PMCs have a lot of complexity. 17:10
We want to start with a simpler subsystem to shake out bugs before we start on the hard parts.
alester: what's your trac username? 17:11
alester petdance
Yes, I've removed my cookies.
17:11 JimmyZ left
lucian cotto_work: how about a PIR implementation? 17:12
cotto_work alester: I don't see anything wrong with that account.
17:12 lucian_ left
cotto_work lucian: that's a possibility 17:12
alester cotto_work: I have ALWAYS had problems logging in to Trac.
cotto_work alester: what prolems?
alester Not being able to log in.
whiteknight cotto_work: the first system should be one where we clearly understand the design, and for which we have a garbageload of tests
alester It thinks I've logged in, but hasn't.
whiteknight I/O is not one of those things that has a great foundation right now
it's gotten better, but it's still not gorgeous 17:13
strings might be better
alester It might be a problem with going through a proxy.
cotto_work whiteknight: that's reasonable
alester: that's likely
proxies are not your friend 17:14
lucian whiteknight: strings using ICU?
benabik Apparently altering NQP based on changes in the original PIR is harder than converting it in the first place. @.@ 17:17
17:23 mj41 left 17:33 lucian_ joined 17:37 lucian left 17:41 ambs joined 17:49 dodathome joined, dodathome left 18:01 davidfetter joined 18:03 ligne left 18:15 lucian joined 18:19 lucian_ left 18:22 lucian_ joined 18:25 lucian left 18:33 contingencyplan joined 18:39 bluescreen left, bluescreen joined
dalek rrot: 9e33eb7 | NotFound++ | src/pmc/eval.pmc:
override vtable get_pointer in Eval PMC to get the underlying packfile.
18:51
NotFound What is supposed to be the purpose of testing the registring of an unitialized Parrot string? 19:07
19:07 kid51 joined
NotFound t/src/extend.t line 81 19:08
Registering 19:09
mikehh All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-266-gfb77d3c
Kubuntu 11.04 amd64 (g++ --optimize)
dalek rrot: d8be11f | NotFound++ | t/src/extend.t:
there is no point in testing the registering/unergistering of an uninitialized String pointer, just gives random crashes
19:14
dukeleto blarg 19:15
NotFound: my grant requires increasing test coverage. We should either have tests for the code, or delete the code
19:15 ambs left
NotFound dukeleto: What code? Checking random addresses? 19:15
dukeleto NotFound: those tests always pass on my machine 19:16
NotFound: i am trying to make the test coverage of t/src/extend.t 95%
NotFound dukeleto: it randomly crashes on mines.
dukeleto NotFound: well, we should fix the test, not delete it
NotFound: or remove the dumb functions
NotFound dukeleto: fine, but do it with an initialized string.
dukeleto NotFound: kind of hard to improve, when you delete my test ;) 19:17
NotFound After testing Parrot_new_string, for example.
mikehh I haven't had any problems with the test 19:18
NotFound: but yes I agree
NotFound dukeleto: I thought about fixing it, but then realized that doesn't seem appropiate to use a created string before testing creating strings.
dukeleto NotFound: meh. Our extend/embed subsystems leave much to desired. I know some of my tests aren't great, but some tests are better than no tests. 19:19
NotFound: can you re-add that test and make it work on an initialized string? Pretty please?
NotFound dukeleto: I disagree. Wrong tests are worse tnan none.
dukeleto NotFound: wrong tests can be improved. No tests can't. 19:20
19:20 ambs joined
dukeleto NotFound: i am not trying to set any behavior in stone. I just want to finish my grant. 19:20
NotFound dukeleto: lack of test can be improved by writing tests.
dukeleto NotFound: yes! I did write some. And then you deleted it. 19:21
mikehh dukeleto: it's good to have tests, but they must be meaningful
NotFound dukeleto: I was just fixing an annoying problem, not trying to upset you. I'll look at it.
dukeleto mikehh: well, my test verified that those functions didn't coredump on my machine, which is meaningful 19:22
mikehh dukeleto: :-}
dukeleto mikehh: evidently, they *do* coredump on NotFound++'s machine, which told us something! No tests would have told us nothing.
whiteknight test++
dukeleto mikehh: it is an iterative process
NotFound dukeleto: If I just looked at thing that run fine in my machines, parrot will be in a far worse state.
dukeleto I know some of the extend/embed tests really suck. But they are the best I could do with the tuits I had. Patches Welcome. 19:23
mikehh dukeleto: sure, and it is something I want to bring up in #ps
about tests in general, that is
whiteknight what dukeleto's grant is really exposing is the low quality of functions in extend.c and embed.c 19:24
and extend_vtable.c
dukeleto these tests are actually bringing up lots of good discussion that is improving the design of the embed/extend subsystems
If I wasn't making tests fail on random platforms with my crazy tests, the embed/extend subsystems would currentlty be as crufty as they always have been
whiteknight: yes
whiteknight we now have better knowledge about what we have, and what needs to improve there. We were blissfully unaware before
hence some of my cleanup work in recent days, although that was premature too
dukeleto Please don't shoot the messenger. Our extend/embed subsystems have some really crappy code. I am only trying to give them some tests. 19:25
If we delete the code and the tests next week, I don't care.
But I *would* like to finish my grant to I can move on to hacking on more interesting stuff.
NotFound dukeleto: relax, I told you I'm looking at it.
dukeleto relaxes 19:26
whiteknight NotFound can sooth the savage beast 19:27
dukeleto got really close to finish his grant, but then the rug got moved under him and test coverage went down, which caused some of the non-relaxation
whiteknight what are the numbers looking like now? 19:28
19:29 soh_cah_toa joined
soh_cah_toa ~~ 19:30
dalek rrot: c8bc036 | NotFound++ | t/src/extend.t:
test Parrot_(un)register_string
19:31
19:32 RobertLJ left 19:38 cotto left 19:47 whiteknight left 19:53 elmex_ joined 19:56 elmex left, elmex_ is now known as elmex
dalek website: benabik++ | GSoC 4: Unsteady Ground 20:04
website: www.parrot.org/content/gsoc-4-unsteady-ground
NotFound mikehh: BTW, I usually build with -O3, that may explain why I had that crashes and you don't. 20:05
mikehh NotFound: probably, I must try that sometime 20:08
actually I must try that when I build perl5 as well 20:09
tcurtis is glad to have Internet access again after returning home to find the cable and Internet down. 20:18
aloha, seen darbelo 20:21
aloha tcurtis: darbelo was last seen in #parrot 17 days 23 hours ago joining the channel.
tcurtis aloha, darbelo?
aloha tcurtis: Search me, bub.
tcurtis dukeleto: ping 20:25
cotto_work #ps in rsn 20:29
dukeleto: ping
20:46 bluescreen left 20:47 bluescreen joined 20:50 particle left 20:59 mj41 joined 21:01 theory left, lucian joined 21:03 particle joined 21:04 lucian_ left 21:14 fperrad left 21:20 bluescreen left
dalek website: tcurtis++ | GSoC: LALR Parsing: School's out for summer. 21:22
website: www.parrot.org/content/gsoc-lalr-pa...ut-summer. 21:23
davidfetter o/` school's out forever! o/` 21:25
tadzik oh, don't tempt me :) 21:26
21:27 alester left
davidfetter tadzik, to play your alice cooper tracks? 21:28
21:28 kid51 left
tadzik davidfetter: if only :) 21:28
I have two exams left. This may sound weird, but the possibility of just putting them off to pass on september sometimes seems quite reasonable 21:29
davidfetter the pain you're feeling now will be over in <1 week 21:30
21:30 plobsing joined
davidfetter put it off, and you may feel it for years :P 21:30
tadzik unless I will have to take a second attempt next week :)
no, I tend to get over it and study
first one comes the day after tomorrow 21:31
there is a chance 50% of the trouble will be off ;)
mikehh tadzik: then you REALLY, really get the pain of GSoC
tadzik mikehh: in what sense?
mikehh tadzik: not serious :-} 21:32
tadzik I'm not sure :) I have a gap in my schedule for the exam session
and it's often "hmm, exam tomorrow, exam the next day, exam on thursday... oh, I can hack something up" 21:33
(see Sunday :))
21:35 ambs left
mikehh ha - than someone has to mark the exam papers 21:36
I once was lecturing to a group of about 200+ students and stupidly set mostly essay questions, and then my assistants dropped out so I had something like 200 exam scripts to mark 21:39
tadzik moreover, my Kindle is already in Koln, Germany. If it arrives tomorrow, before the exam, the exam will most probably get screwed
21:40 perlite_ joined 21:41 PurityControl joined 21:43 perlite left, perlite_ is now known as perlite
tadzik but the ETA is one hour after the exam :> 21:44
mikehh oh - forgot to report 21:45
All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-269-gc8bc036
Kubuntu 11.04 amd64 (gcc --optimize)
tadzik: better not get it too early, but you have another exam after that? 21:46
21:46 Patterner left, PurityControl is now known as Patterner
tadzik mikehh: on monday 21:46
not too bad
I should manage to slack off _and_ study :) 21:47
mikehh tadzik: just load your study material first
tadzik int eresting;
mikehh some of it should be in mobi format :-} 21:48
22:15 mj41 left 22:41 kid51 joined 22:45 mtk left
dalek p: 8bc12e5 | jonathan++ | src/ (3 files):
Enrich type checking a bit to support some more ways of doing type checks.
22:49
23:00 whiteknight joined
dalek rrot: 6e4dc98 | NotFound++ | src/embed/ (2 files):
avoid 'might be clobbered' warnings
23:10
23:13 dmalcolm joined
whiteknight good evening, #parrot 23:14
benabik: ping 23:16
seen bacek
aloha bacek was last seen in #parrot 12 days 12 hours ago joining the channel.
benabik whiteknight: pong 23:17
whiteknight benabik: if bacek is missing, I'll play mentor for a while so you can keep up with the proces
when was your last meeting with him?
benabik whiteknight: Week and a half? 23:18
tcurtis whiteknight: ping 23:20
cotto_work whiteknight: I want to change #ps times so you, dukeleto and kid51 can be there reliably. What kind of time would work for you? 23:25
whiteknight cotto_work: any time besides when it is right now. an hour earlier or an hour later would be fine. Bigger changes work just as well too
tcurtis: pong
benabik: let's having a meeting soon then. Is now good, or sometime tonight or tomorrow? 23:27
benabik whiteknight: Have people here right now, tomorrow would work better. :-) 23:28
whiteknight benabik: that's fine. I just don't want you to be unmentored
whenever works for you
tcurtis whiteknight: do you have darbelo's email? I haven't seen him in a while. 23:29
whiteknight tcurtis: I can look it up. When was the last time you saw him?
seen darbelo? 23:30
aloha darbelo was last seen in #parrot 18 days 2 hours ago joining the channel.
whiteknight blah
tcurtis: okay, so I'll play mentor for you too, until Darbelo comes around again. When was your last meeting and when is the next time that's good for you?
kid51 pmthium.com/2011/06/14/rakudo-nom-r...pir-files/
Implications for Parrot? Discuss. 23:31
mikehh if any of you GSoC people have any questions regarding codeing standards or testing I will be happy to help there 23:34
cotto_work The fewer people that care about PIR the better.
soh_cah_toa kid51: interesting. i wish it mentioned why the switch. is there something that our object system lacks? 23:35
kid51 I would welcome posts from cotto and whiteknight on that topic, whether as response on pmichaud's blog or on parrot-dev
soh_cah_toa: I'll have to refer you to our colleagues who understand that much better than I do. 23:36
tcurtis whiteknight: it looks our last meeting was on the 24th. I'm really good with any time other than Saturday (that being only a problem for this week) now that classes are over. 23:37
whiteknight tcurtis: is tonight good?
benabik soh_cah_toa: I think they a) dislike writing/maintaining PIR (and I can't blame them) and b) want NQP to be cross-platform (Parrot, CLR and JVM) 23:38
tcurtis whiteknight: sure. Any time preference?
whiteknight tcurtis: now good? let's go to #parrotsketch 23:39
soh_cah_toa benabik: ok 23:40
tcurtis soh_cah_toa: I suspect another reason is that removing the use of pir:: and Q:PIR also makes it easier to react to changes in Parrot even ignoring the cross-platform possibilities. 23:41
Since they only need to change the implementation of the nqp:: ops and such. 23:42
soh_cah_toa i can understand that
jnthn__ kid51: I'd hope that Parrot folks will mostly see it as a positive. A compiler targetting Parrot improving is good news for Parrot. 6model turning out to work well when applied to a bigger challenge than NQP is good news for Parrot, in that various Parrot folks are interested in Parrot adopting it.
23:43 lucian left
whiteknight and anything we can do to minimize PIR use is good for Parrot 23:44
soh_cah_toa whiteknight: how come? you mean you'd rather see pir used just as an intermediate representation as opposed to a general purupose langauge for parrot development? 23:45
mikehh what I would like to see is nqp (the new one) in parrot just like nqp-rx and move moe towards that ASAP 23:46
whiteknight soh_cah_toa: I would rather not see PIR used at all. It's a garbageheap of a language
mikehh s/moe/more/
whiteknight the faster we can jettison that, the faster we can replace it with something better
soh_cah_toa true
whiteknight or make more changes to that language to make it better
mikehh I think we should generate pasm (or equivalent) directly NOT by hand though 23:47
so we would not need the syntactic sugar of PIR 23:48
whiteknight mikehh: that would be a dream-come-true for me 23:49
kid51 jnthn__: I don't necessarily disagree.
whiteknight the syntactic sugar of PIR is a big part of the problem
kid51 But because several of us are speaking on Parrot-ish topics at YAPC::NA in two weeks, we need to lay out our vision of where Parrot is going with respect to Rakudo. 23:50
soh_cah_toa and now that we have a winxed snapshot in master, we don't really need it
the "syntactic sugar" of pir, that is
mikehh a lot of it was just bolted on to make it easier to write by hand, which we should not need
23:50 hudnix left
soh_cah_toa exactly 23:50
whiteknight soh_cah_toa: right. If everybody avoided PIR and used Winxed or NQP, we would be better off
because then we could change PIR, and only need to update two things, not hundreds and thousands of lines of user code 23:51
soh_cah_toa i can definitely see that in parrot's near future
kid51 I could very easily imagine someone coming up to me at YAPC and saying ...
"I hear Rakudo's moving away from PIR. Where does that leave Parrot? What is Parrot if not PIR?" 23:52
mikehh there's a bunch of GCI projects - rewrite PIR tests in winxed or the new nqp
jnthn__ kid51: Note that Rakudo still *generates* PIR.
kid51: We just don't develop directly in it.
soh_cah_toa ahh...i see now 23:53
well, then that's good
mikehh kid51: parrot is a register based VM for dynamic languages
kid51 jnthn__: Interesting. What I'm driving at is that we have this written up in a form that enables us to answer questions like the one I just posed.
23:54 particle1 joined
kid51 And we don't do a good job of that now. 23:54
mikehh PIR is a version of pasm with syntactic sugar so that we can hand wiite code - we do NOT need that
23:54 particle left, hudnix joined
soh_cah_toa kid51: that'd be nice. it took me quite a while to see all the different things you refer to when you say the word "parrot" 23:55
kid51 mikehh: "register based VM for dynamic languages": That's been a mantra for a long time. Can you point to where the "register-based-ness" of Parrot is located within the source code?
mikehh we should have code generators to generate the low level code
kid51 Can you/we say how parrot compares to other things commonly described as virtual machines (JVM, CLR, Mono)?
mikehh kid51 thats the various I, N, S and P registers 23:56
kid51: they are nearly all stack based NOT register based 23:57
soh_cah_toa yeah, and definitely explain what that means
i think that's important
and what that means for calling conventions 23:58
mikehh most modern machines ar register based - I can't think of a pure stack based computer these days
soh_cah_toa well, a combination of both
23:59 TonyC left, nopaste left