Camelia, the Perl 6 bug

IRC log for #parrot, 2011-06-14

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 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 whiteknight the difference is the interface. Rosella/Test is more inspired by xUnit than Test::More
00:01 bubaflub whiteknight: great.
00:01 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
00:02 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
00:02 whiteknight it's missing a lot of methods because I haven't implemented them yet
00:02 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.
00:02 whiteknight but they are easy enough to add
00:02 whiteknight bubaflub: okay, that's good. Mockobjects have ups and downs
00:03 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
00:03 whiteknight let me update
00:03 NotFound_b OS package?
00:05 bubaflub sorry, the real problem is: Unable to open filehandle from path 'rosella/winxed.winxed'
00:05 whiteknight bubaflub: oh, that's different
00:05 whiteknight ...and weird
00:06 lucian left #parrot
00:07 bubaflub whiteknight: hmmm, i have latest plumage as well.
00:07 whiteknight okay, I figured it out
00:07 whiteknight I'll push a fix in a second
00:08 bubaflub whiteknight: ok, thanks a bunch.
00:09 whiteknight bubaflub: Okay, pushed. do a "plumage update rosella" and "plumage install rosella"
00:09 bubaflub whiteknight: that looks like that did it.  thanks.
00:09 whiteknight the distutils library automatically creates directories that don't exist, but my wrapper library doesn't always
00:09 whiteknight so I need to add that functionality eventually
00:10 bubaflub whiteknight: ah, now another problem.  rosella/harness.winxed:301: Variable 'is_test' is not defined near is_test
00:10 bubaflub exit status: 256
00:10 whiteknight hah
00:10 whiteknight I've done a lot of refactoring lately, and obviously haven't tried installing it
00:10 bubaflub whiteknight: sorry to hassle you like this.
00:10 whiteknight no, it's good!
00:12 contingencyplan left #parrot
00:13 whiteknight it's a little embarrasing that things are so broken on the day somebody wants to use it
00:14 contingencyplan joined #parrot
00:14 whiteknight it's also embarrassing to spell that word wrong
00:14 kid51_at_dinner is now known as kid51
00:14 bubaflub so many repeated consonants
00:15 NotFound_b I ned a spel chekin.
00:18 whiteknight okay, fix coming up in a second
00:21 whiteknight okay, try it again
00:24 whiteknight 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 whiteknight Eval can do that, if it overrides get_pointer
00:25 NotFound_b whiteknight: Ah, true, ddn't thinked about that,
00:29 bubaflub whiteknight: that worked.  going to work on my harness now
00:29 whiteknight bubaflub: awesome. It shouldn't take more than 5 minutes.
00:29 whiteknight I'll start the timer.....NOW
00:29 bubaflub \me scrambles
00:30 * bubaflub uses wrong slash
00:40 bubaflub 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
00:40 bubaflub whiteknight: ok.
00:40 whiteknight "NQP", "Winxed" and "PIR" are built-in
00:41 whiteknight other compilers can be registered too
00:44 bubaflub whiteknight: hmm, i'm getting a Null PMC access in get_pmc_keyed()
00:44 bubaflub current instr.: 'parrot;Rosella;Harness;Tes​tRun;Factory;add_test_dirs' pc 3004 (rosella/harness.pir:1346) (rosella/harness.winxed:711)
00:44 bubaflub i'm trying to do: $testfactory.add_test_dirs("Winxed", "t/integer/init", :recurse(0));
00:45 whiteknight how are you creating your $testfactory?
00:46 whiteknight the example in my blog was old. You need to use Rosella::construct(Rosella:​:Harness::TestRun::Factory)
00:46 whiteknight not Rosella::build
00:46 whiteknight http://whiteknight.github.com/​Rosella/libraries/harness.html
00:46 whiteknight (these examples are fresh)
00:49 RobertLJ joined #parrot
00:51 bubaflub whiteknight: ok
00:51 RobertLJ_ left #parrot
00:53 benabik I've managed to make NQP fall into an infinite loop.  I feel proud.
00:53 whiteknight benabik: oh, nice
00:54 benabik NQP makes a nice canary for PAST bugs.
00:54 cotto_work Infinite loops are the gift that keeps on giving.
00:54 kid51 At commit ca4c2817fe569, we're now PASSing again with an all g++ build.
00:55 whiteknight kid51: thanks for the report
00:55 whiteknight and sorry about the breakage. mea culpa
00:55 bubaflub whiteknight: https://gist.github.com/1024111 is my harness and the related error.  any pointers would be helpful
00:56 whiteknight Rosella::Harness::TestRunFactory -> Rosella::Harness::TestRun::Factory
00:56 whiteknight that blog example is older than I realize
00:56 whiteknight I should either update it, or stop passing around that link
00:57 bubaflub whiteknight: great!  i've now got Passed 0 tests in 0 files (1 test runs)
00:57 whiteknight Acheivement Unlocked
00:58 whiteknight are there no test files in that directory?
00:58 bubaflub hmmm, there is 01-init.winxed
00:59 whiteknight oh, it's looking for .t files
00:59 whiteknight not .winxed files
00:59 bubaflub ah, ok
00:59 bubaflub i can change it
00:59 whiteknight you can specify the file name directly if you want that
00:59 bubaflub whiteknight: eh, no biggie
00:59 bubaflub whiteknight: great, now it works.  i mean, i basically stole https://github.com/Whiteknight/Rosel​la/blob/master/t/winxed_test/Basic.t
00:59 whiteknight factory.add_test_files adds individual files
01:00 whiteknight bubaflub: that's fine, it's a start
01:01 whiteknight 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:02 whiteknight so if you have questions, just ask
01:03 bubaflub whiteknight: great.  thanks for all your help.  i'll probably keep things super simple right now.
01:05 NotFound_b whiteknight: overriding get_pointer in Eval don't break any test.
01:05 kid51 afk
01:07 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:08 * benabik needs to check that the bootstrap bootstraps properly more often.  :-(
01:11 theory left #parrot
01:13 whiteknight NotFound_b: awesome. That's what I wanted to hear
01:14 whiteknight bubaflub: sure. Test that creating an integer doesn't throw an exception, and prove that the result isa Integer
01:14 bubaflub whiteknight: great.
01:14 whiteknight self.assert.instance_of(class GMP::Integer, foo);
01:14 whiteknight or whatever you name things
01:15 woosley joined #parrot
01:15 NotFound_b whiteknight: I'll recheck and commit tomorrow, now I'm tired. 'night.
01:15 whiteknight NotFound++
01:15 NotFound_b left #parrot
01:16 benabik New routine: make, bootstrap, make bootstrap, make, test.
01:18 whiteknight sounds involving
01:19 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
01:19 whiteknight you don't want things to fail before you have a chance to build anything with it
01:20 whiteknight anyway, it's time for me to go to bed
01:20 whiteknight goodnight
01:20 benabik 12 commits incoming...  I want to push what I have before grabbing pmichaud++'s PCT changes.
01:20 lichtkind good night and thanks again
01:20 whiteknight left #parrot
01:21 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:22 lichtkind left #parrot
01:23 cotto ~~
01:25 benabik Does NQP-rx have constants?
01:35 pmichaud what kind of constants?
01:36 pmichaud 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.
01:36 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
01:37 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?
01:37 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
01:37 dukeleto bubaflub: what are you running into?
01:37 bubaflub dukeleto: gotta figure out how to do it first
01:37 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.
01:37 bubaflub dukeleto: just wanted to verify try/catch syntax in Winxed.
01:38 bubaflub dukeleto: i am likely to be eaten by a grue
01:38 pmichaud swapping out CCLASS for values will likely cause breakage some day.
01:40 bubaflub dukeleto: i'll take a look to see if there are any Winxed examples and submit a pull request
01:42 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?
01:43 benabik pmichaud: Next couple of days is fine.  It works as is, for now at least.
01:45 dukeleto benabik: where is your cish tutorial again?
01:45 benabik dukeleto: https://github.com/benabik/cish
01:45 benabik aloha, cish?
01:45 aloha benabik: Dunno.
01:45 benabik aloha: cish is https://github.com/benabik/cish
01:45 aloha benabik: Okay.
01:45 dukeleto benabik++
01:47 pmichaud cish looks cool.  patches welcome?
01:47 benabik pmichaud: Yes.  That's why I put it in github.
01:49 benabik 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
01:49 pmichaud so far I've only seen a couple of items that could be made a little more exact
01:49 * benabik should probably add a note to that effect to the doc itself.
01:49 benabik pmichaud: It was also written in a very rushed week while I should have been working on the actual project for the class.  :-D
01:51 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 pmichaud ...where's the other half?  ;-)
01:52 benabik pmichaud: EXPR, which is bottom up instead of top down.
01:52 pmichaud ah, I didn't see that section
01:53 pmichaud The "Con" section lists "limits of recursive descent", but EXPR is the non-recursive-descent part of the system.  :)
01:54 benabik pmichaud: It's a fairly small con, but my prof especially didn't like recursive descent at all.
01:54 cotto kid51: ping
01:54 pmichaud did your prof like python?  ;-)
01:55 benabik I don't think that really came up.
01:56 pmichaud anyway, I totally understand having to not ruffle a prof's feathers.  :)
01:56 pmichaud recursive descent is really bad for expressions and the like... which is why Perl 6 doesn't use recursive descent for that :)
01:56 pmichaud (and NQP for the same reason :)
01:57 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?
01:58 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
01:58 pmichaud for something like perl 6, which has 25+ precedence levels... that can get expensive quick.
01:59 benabik Not to mention confusing.
02:00 sorear "is tighter" and "is looser" make parsing Perl 6 with recursive descent interesting anyway
02:01 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:02 kid51 make test PASS darwin/ppc at ca4c2817fe5
02:04 kid51 cotto: pong
02:04 cotto kid51: did you know you can append ".diff" to pull request urls to get the diff?
02:04 kid51 No.
02:05 cotto It's handy.  I'm trying to find where it's documented, but github-- keeps misredirecting me away from their support site.
02:06 cotto 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!
02:06 kid51 I see it now.  That's much more to my liking.
02:06 kid51 Viva plain-text diffs!
02:07 cotto I guess they took down their support site and broke any urls pointing at it.
02:09 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?
02:09 cotto yup
02:10 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.
02:11 kid51 If that +.diff is well publicized, then that's acceptable.
02:11 kid51 (and provided it continues to work on github, documented or not)
02:11 cotto dukeleto: ping
02:12 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 ...
02:12 cotto dukeleto: do you know how official the ability to add ".diff" to a github url is?
02:12 kid51 .... so I ignore them, and ignore any git pull requests in them as well.
02:13 kid51 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
02:13 cotto github doesn't do everything well.
02:13 dukeleto kid51: you can manage your email setting on github, under your accounts "notification center"
02:15 kid51 too much effort.  I don't have all day to spend on github.  I have a $dayjob.
02:16 kid51 One more feature ... and github will morph into emacs!
02:16 cotto I'm not finding it in their blog.
02:20 kid51 What does "canonicalize the path" mean?
02:20 kid51 (... as in http://trac.parrot.org/parrot/ticket/1282)
02:23 soh_cah_toa kid51: to conform to well-established standards
02:23 soh_cah_toa kid51: though, in the context of that ticket, i think he probably meant something else ;)
02:26 cotto kid51: in that ticket it seems to mean always use the platform-specific slashes
02:28 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
02:28 benabik bubaflub: Probably not.  dalek's been quiet.
02:28 cotto bubaflub: let me get my umbrella
02:28 bubaflub *phew*
02:28 soh_cah_toa yeah, dalek is busted
02:32 kid51 aloha, seen dalek?
02:32 aloha kid51: dalek was last seen in #perl6 3 hours 54 mins ago saying "rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1727d604be".
02:39 bubaflub msg dukeleto blogged: http://www.parrot.org/content/parrot-​gmp-generated-code-strings-and-tests
02:39 aloha OK. I'll deliver the message.
02:39 dalek website: bubaflub++ | Parrot-GMP: Generated Code, Strings, and Tests
02:39 dalek website: http://www.parrot.org/content/parrot-​gmp-generated-code-strings-and-tests
02:39 bubaflub haha, and dalek is back
02:49 benabik pmichaud: What can I test PAST::Stmt with?  NQP master?
02:55 dalek TT #2025 closed by jkeenan++: tools/dev/ops_not_tested.pl: Program no longer runs: libraries missing
02:55 dalek TT #2025: http://trac.parrot.org/parrot/ticket/2025
02:59 kid51 left #parrot
03:00 soh_cah_toa cotto: ping
03:01 cotto soh_cah_toa: ping
03:01 cotto er, pong
03:01 RobertLJ left #parrot
03:01 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:02 cotto looking now
03:02 soh_cah_toa unfortunately, there's no inline comments
03:02 cotto lta
03:02 soh_cah_toa include/parrot/context.h line 458
03:03 cotto It's an accessor for the interp's pc.
03:04 cotto I'm not sure why it's used like that in the fast core
03:05 soh_cah_toa yeah, i know
03:07 soh_cah_toa do you think i should remove it? runops_debugger_core() doesn't use it either
03:09 cotto It seems to be an optimization for the fast core.
03:09 soh_cah_toa ok
03:10 cotto I'd update it like the slow runcore does.
03:11 soh_cah_toa i see. ok
03:13 soh_cah_toa 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:15 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
03:19 soh_cah_toa 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:20 cotto probably not
03:21 soh_cah_toa possible deprecation maybe?
03:22 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:23 cotto 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. ;)
03:24 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
03:24 soh_cah_toa right
03:24 cotto exactly
03:25 soh_cah_toa agh...why is it that every time i do something in file "a", something completely unrelated in file "b" breaks!?
03:27 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:28 cotto ship it
03:28 benabik Needless to say, IMCC is not amused.
03:28 soh_cah_toa pushed
03:28 cotto dukeleto: ping
03:35 dukeleto cotto: pong
03:36 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:37 dukeleto cotto: ok, sounds reasonable
03:38 cotto Is either sizeof(P) > sizeof(I) or sizeof(P) < sizeof(I) a likely configuration?
03:39 dukeleto don't really know
03:40 cotto I'm looking through MS' documentation and am in awe at how many data types windows has.
03:44 cotto Ah.  On 64-bit windows 32-bit ints are native but pointers are 64-bit.
03:45 cotto 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.
03:45 cotto It'd be possible but not very performant.
03:46 cotto It's not possible.
03:46 * cotto waits
03:48 sorear 64 bit ints and 32 bit pointers makes a lot of sense on highly data-oriented systems
03:49 sorear 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:50 cotto sorear++
03:50 cotto I was about to ask for your thoughts.
03:51 sorear it's funny, I just came home a few minutes ago :)
03:52 theory joined #parrot
03:52 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.
03:52 sorear a lot of systems have pointers that have a useful size smaller than the integer
03:52 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?
03:53 sorear but almost all user code stores pointers in int-sized memory for simplicity's sake
03:53 sorear all current x86_64 chips have 48-bit pointers
03:53 sorear but I've never code store them in less than 8 bytes
03:59 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)
04:00 cotto soh_cah_toa: it depends on what the underlying platforms support
04:00 soh_cah_toa ah, yes
04:01 sorear why would you want to cast any data type to a pointer?
04:01 sorear "sizeof(P) >= everything" is true on almost no platforms
04:02 sorear 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
04:02 soh_cah_toa not that that's a feature or anything
04:02 sorear er.  that's not make sense
04:03 soh_cah_toa in case that ever happenedd
04:03 soh_cah_toa it wouldn't cause a type mismatch
04:03 soh_cah_toa oh wait...
04:04 soh_cah_toa no, string representation would have nothing to do w/ type size
04:05 soh_cah_toa they're stored as ascii, not integer values
04:05 soh_cah_toa so yeah, that'd be totally weird
04:10 soh_cah_toa 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:12 cotto soh_cah_toa: no.  It'll try to use appropriately-sized types.
04:12 theory left #parrot
04:13 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.
04:13 sorear I==N is a Bad Idea
04:14 cotto sorear: care to elaborate?
04:14 * sorear is on a system where N=8, I=4
04:14 soh_cah_toa isn't it usually N > I?
04:16 soh_cah_toa otherwise, the precision of floating points would be limited to whatever the size of ints are
04:16 soh_cah_toa unless it was N=8 and I=8 which would be a waste of space
04:17 sorear N=4 is considered a joke in most numerics circles, with narrow exceptions for real-time graphics
04:17 soh_cah_toa yeah
04:17 sorear when was the last time you saw a serious C programmer use "float"?
04:18 sorear most (although not quite all) processors have separate register sets for the FPU and the integer unit
04:19 sorear if we combine I and N registers, we're potentially significantly increasing the load on the JIT
04:19 sorear since it will have to decide what registers to store where
04:19 cotto Is there any reason not to say that N registers are always 8 bytes?
04:20 sorear cotto: futureproofing
04:21 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
04:22 sorear 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
04:22 soh_cah_toa mathematical devs, that is
04:23 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"
04:23 sorear but I don't think being prescriptive and saying "it will use IEEE 754" is necessarily a good idea
04:24 soh_cah_toa why not?
04:24 sorear IIRC, Java 1.0 mandated exact IEEE 754 behavior
04:25 sorear as part of the whole "predictability - write once run anywhere" thing
04:25 sorear but it was just too slow on a lot of people's computers, so they had to backpedal on that one
04:25 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.
04:26 sorear cotto: is there any reason to prescribe a size?
04:26 sorear (not helping matters: Sun is/was also a CPU maker and they made Java use SPARC semantics, not x86 semantics, for FP)
04:28 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?
04:29 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.
04:29 cotto sorear: the m0 spec says what's allowable in the header
04:29 pmichaud aloha?
04:30 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.
04:30 aloha pmichaud: OK. I'll deliver the message.
04:30 cotto aloha, aloha?
04:30 aloha cotto: aloha is simple Bot::BasicBot::Pluggable hosted on https://github.com/bacek/aloha
04:30 pmichaud there.
04:30 pmichaud aloha understands "msg" but not tell.  Hmmph.
04:30 pmichaud explain why aloha is a stupid bod.
04:30 aloha positive: nothing; negative: nothing; overall: 0.
04:30 pmichaud *bot
04:31 pmichaud (it speaks when not wanted and doesn't speak when wanted.  Bad Bot!  No Bot-Cookie!)
04:31 cotto still better than purl
04:31 pmichaud definitely better than purl
04:32 sorear aloha: dwim
04:32 sorear the traditional thing to do would be to give m0asm arithmetic abilities
04:32 pmichaud enough hacking for today .. bbt
04:32 cotto sorear: what do you mean?
04:33 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 benabik aloha: yes, yes, I know I have a message, I was right here.
04:34 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
04:34 mikehh Ubuntu 11.04 i386 (g++)
04:35 * 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?
04:36 cotto soh_cah_toa: M0 strings will be objects, though C-like strings will be supported to a limited extent.
04:37 soh_cah_toa so whatever the size of pmc's are will be the size of strings. ok
04:37 cotto yup
04:37 sorear soh_cah_toa: last I heard, M0 does not have "S" registers at all
04:37 soh_cah_toa really?
04:37 cotto sorear: it does.  They're the same as P.
04:37 soh_cah_toa oh, duhh....that's why sizeof(P) == sizeof(P)
04:37 sorear strings are going to become PMCs
04:38 soh_cah_toa sizeof(P) == sizeof(S) i mean
04:38 benabik soh_cah_toa: Those equalities are apparently equal.  :-D
04:38 soh_cah_toa ha!
04:38 cotto sizeof(P) != sizeof(P)
04:39 soh_cah_toa does not compute
04:39 sorear NO
04:39 soh_cah_toa error error error
04:39 sorear I will NOT tolerate NaN byte PMC*
04:39 cotto I guess we know how the robots are now.
04:39 cotto *who
04:39 sorear That is UNACCEPTABLE
04:39 soh_cah_toa i'm the only one that passed the turing test
04:39 benabik I forgot to study for it.
04:40 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.
04:41 soh_cah_toa ok, it is officially "i can't possibly write anymore code" time
04:41 soh_cah_toa i'll see you all tomorrow
04:41 soh_cah_toa left #parrot
04:59 benabik Funny thing.  If you make a POST::Op with the arguments in the right order, it doesn't DTRT.
05:00 benabik Errr...  wrong order.
05:00 benabik Once I'm sure I've squashed this bug, I'm heading to bed.
05:05 benabik 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:08 cotto benabik: same here
05:09 JimmyZ joined #parrot
05:09 sorear it seems github has changed how the pushes are formatted
05:10 cotto goody
05:10 benabik boo
05:11 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
05:12 dukeleto no bueno
05:12 benabik sorear: commit log?
05:13 benabik 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:14 sorear benabik: git clone git://github.com/github/github-services.git
05:14 sorear benabik: could you go push the "Test Hook" button for your repo?
05:14 benabik sorear: For my parrot fork?
05:15 sorear yes
05:15 benabik sorear: I don't have it connected to my fork.  :-/
05:15 sorear ok
05:15 sorear opbots names
05:19 JimmyZ some times github commit log message doesn't have a link
05:20 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 dalek-poller: 303ac6a | sorear++ | push.psgi:
05:20 dalek dalek-poller: Drop commit packets with >15 commits, with a warning to the offender
05:20 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/303ac6a6cc
05:20 dalek dalek-poller: b72de5a | sorear++ | push.psgi:
05:20 benabik And now I should really sleep.
05:20 dalek dalek-poller: Improve message after heuristic merge detection
05:20 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/b72de5a86a
05:20 dalek dalek-poller: 39e7ab0 | sorear++ | push.psgi:
05:20 dalek dalek-poller: Fix UTF8 handling in push mode.
05:20 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/39e7ab0826
05:20 benabik G'night, #parrot
05:20 sorear \o/
05:20 cotto 'night benabik
05:21 benabik sorear++
05:21 cotto sorear++
05:22 cotto sorear: what was the fix?  Those commits are old.
05:22 dalek dalek-poller: 710078d | sorear++ | poll:
05:22 dalek dalek-poller: Disable tpfwiki tracking due to spam
05:22 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/710078dded
05:22 dalek dalek-poller: 46fdf61 | sorear++ | push.psgi:
05:22 dalek dalek-poller: Make github pushes work again
05:22 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/46fdf611ea
05:23 cotto ah
05:23 sorear cotto: that was testing
05:39 hudnix left #parrot
06:08 fperrad joined #parrot
06:14 he joined #parrot
06:37 cosimo left #parrot
06:56 mj41 joined #parrot
07:06 JimmyZ left #parrot
07:48 woosley left #parrot
08:00 athomason left #parrot
08:01 athomason joined #parrot
08:17 athomason left #parrot
08:18 athomason joined #parrot
09:28 contingencyplan left #parrot
09:32 SHODAN joined #parrot
09:40 contingencyplan joined #parrot
09:41 UltraDM joined #parrot
09:52 contingencyplan left #parrot
10:32 RobertLJ joined #parrot
11:24 ambs joined #parrot
11:34 ambs left #parrot
11:48 SHODAN left #parrot
11:59 SHODAN joined #parrot
12:33 fperrad left #parrot
12:36 whiteknight joined #parrot
12:38 whiteknight good morning, #parrot
12:40 JimmyZ joined #parrot
12:42 fperrad joined #parrot
12:42 Shozan joined #parrot
12:46 SHODAN left #parrot
12:46 Shozan is now known as SHODAN
12:54 * Coke yawns.
12:54 Coke sleepy
12:57 bluescreen joined #parrot
13:02 bubaflub good morning whiteknight
13:02 mtk joined #parrot
13:03 whiteknight hello bubaflub. How is the testing and coding going for you this morning?
13:03 mtk left #parrot
13:04 bubaflub whiteknight: well, i'm still getting some strange errors
13:04 bubaflub whiteknight: it's much closer now though
13:05 whiteknight what kinds of errors?
13:05 whiteknight like, errors with rosella, or errors in your lib?
13:06 bubaflub whiteknight: errors with my lib.  i'll gist some of it real quick for ya.
13:06 whiteknight okay, awesome
13:06 bubaflub whiteknight: though the harness in nqp runs just great.
13:06 whiteknight awesome. glad to hear that
13:07 whiteknight I think it can all probably get easier still, I just haven't come up with a good interface for it
13:07 mtk joined #parrot
13:08 mtk left #parrot
13:08 bubaflub whiteknight: https://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 mtk joined #parrot
13:08 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:10 whiteknight yeah, I don't think I wrote any docs for try/catch yet
13:10 whiteknight I should probably get to that
13:10 hudnix joined #parrot
13:11 whiteknight Instead of using try/catch, use self.assert.throws_nothing(function () { ... })
13:11 whiteknight put your test inside of the inner function
13:12 whiteknight that will catch any exceptions and give you better, more detailed error information for debugging
13:13 whiteknight you can take out the self.assert.fail stuff, and all the try/catch blocks
13:13 whiteknight Also, you could take that out entirely. The library will automatically fail a test if there is an unhandled exception
13:18 bubaflub whiteknight: ok, i'll nuke the try catch stuff
13:19 bubaflub whiteknight: also the harness is automatically trying to get my VIM .swp file
13:19 whiteknight what?
13:20 whiteknight that's weird, it should only be picking up .t files
13:20 bubaflub whiteknight: List of files with premature exits:
13:20 bubaflub t/integer/init/.01-init.t.swp
13:20 bubaflub whiteknight: also my tests are failing because: # get_string() not implemented in class 'GMP;Integer'
13:20 whiteknight ah, funky
13:21 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?
13:21 whiteknight first step is finding out where it's trying to convert to string. Second step is to say "don't do that"
13:23 bubaflub whiteknight: looks like it's calling from 'instance_of'
13:24 whiteknight can you post the backtrace?
13:25 whiteknight ah nevermind. The args are backwards. Should be "self.assert.instance_of(x, class 'Integer'); "
13:26 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"
13:26 whiteknight https://github.com/Whiteknight/Rosella​/blob/master/src/test/Asserter.winxed    <---- that's the list of all assertions, for your reference
13:40 RobertLJ left #parrot
13:40 RobertLJ joined #parrot
13:44 bubaflub whiteknight: nice!  finally got everything to pass.  thanks for all your help.
13:44 whiteknight awesome, no problem
13:44 whiteknight sorry it was so hard to get here
13:44 dalek parrot-gmp: 3634f83 | bubaflub++ | t/integer/init/01-init.t:
13:44 dalek parrot-gmp: fix init test with whiteknight++'s help
13:44 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/3634f83b44
13:45 bubaflub whiteknight: not a problem.  that should be all i need in terms of setup.
13:45 bubaflub hey, dalek is back.
13:47 whiteknight oh awesome
13:47 whiteknight dalek++
13:48 whiteknight (whoever brought dalek back)++
13:50 moritz sorear++
13:51 whiteknight it was sorear++?
13:51 whiteknight then, sorear++ !!
13:54 atrodo sorear++
14:02 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 #parrot
14:23 RobertLJ left #parrot
14:23 dalek TT #2136 created by whiteknight++: libffi not detected when configured with clang
14:23 dalek TT #2136: http://trac.parrot.org/parrot/ticket/2136
14:24 RobertLJ joined #parrot
14:25 lucian joined #parrot
14:26 lucian good day
14:27 NotFound whiteknight: look if the pir directory exists.
14:29 whiteknight NotFound: no, it doesn't exist by default. I already created it manually and was able to build
14:30 NotFound How can I tell git to commit an empry dir?
14:30 mtk left #parrot
14:30 atrodo Last I checked, you can't
14:30 lucian NotFound: can't. git only tracks file contents
14:30 moritz NotFound: add a .gitignore to it
14:30 mtk joined #parrot
14:31 moritz and git add -f pir/.gitignore
14:31 lucian git tracks contents, hg tracks files, bzr tracks everything
14:31 NotFound moritz: nice trick
14:32 whiteknight yes, that's what I do with Rosella. I have .ignore files in empty directories
14:33 lucian moritz: i'm sure git purists would scoff at that
14:33 moritz lucian: I don't care
14:33 lucian moritz: i figured :)
14:33 moritz lucian: if generated files go into it, you can even put a * into the .gitignore file
14:33 NotFound Done
14:33 moritz lucian: and then have another benefit from it
14:34 dalek website: rohit_nsit08++ | CorellaScript : talking in PIR .
14:34 dalek website: http://www.parrot.org/conten​t/corellascript-talking-pir-.
14:34 atrodo moritz++ That's a good idea.  Never considered that
14:34 lucian moritz: yes, sounds useful
14:45 lucian bah, again with the odd errors
15:02 benabik Morning, #parrot
15:13 cotto ~~
15:14 rohit_nsit08 joined #parrot
15:20 alester joined #parrot
15:26 lucian left #parrot
15:26 UltraDM left #parrot
15:30 rohit_nsit08 left #parrot
15:38 lucian joined #parrot
15:39 lucian how can i pinpoint a "too many positional arguments" error?
15:41 whiteknight ouch, good question
15:42 lucian whiteknight: apparently, i can't
15:43 lucian i'm struggling with Rosella.Test.TestContext
15:43 lucian is there an example of its usage?
15:43 whiteknight what are you trying to do with it?
15:44 whiteknight TestContext is basically just persistant data storage between tests
15:44 lucian i need state between test cases
15:44 whiteknight it's basically a hash. self.context["foo"] = bar
15:44 whiteknight what troubles are you having?
15:44 lucian ah, ok. so i can set it in one test, then read it in another?
15:44 whiteknight exactly
15:44 lucian i thought i had to subclass it
15:45 whiteknight you can subclass it if you need more than what it offers
15:45 whiteknight but you can use it as-is if you're just storing values by name
15:45 whiteknight and you can pre-populate the context with data before running tests
15:45 lucian whiteknight: how? do i need to duplicate Test.test for that?
15:46 lucian or just provide a hash as the second argument to test() ?
15:46 whiteknight Rosella.Test.test takes a number of optional named parameters
15:46 whiteknight If you pass in an object named "context" to test(), that value will be used as self.context
15:46 lucian ok
15:46 whiteknight by default, context is null, I create a new empty TestContext object
15:47 whiteknight but you can create your own TestContext and fill it with stuff, or use a different type of object entirely
15:47 whiteknight it's file-local, of course
15:47 lucian yeah, that part i figured
15:48 lucian for the compiler, i'm building a boot() function that boostraps the object system
15:48 whiteknight right
15:48 lucian but since that function uses set_global, i can only call it once
15:49 lucian but i need to be able to check those globals against something, so boot() also returns a hash with globals
15:49 lucian perhaps i'm doing this wrong
15:51 lucian whiteknight: yes, i guess i am doing it wrong. perhaps boot should just return the env, and set_global should happen elsewhere
15:52 whiteknight that's probably a good choice
15:53 lucian namespacing is still bothering me, i don't quite understand what i should be doing
15:53 lucian 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 #parrot
15:59 SHODAN left #parrot
15:59 * lucian_ has switched networks
16:00 Coke perltidy++
16:02 theory joined #parrot
16:03 lucian left #parrot
16:07 * lucian_ strongly dislikes winxed's using
16:08 benabik Random Q:  Is there a way to introspect PBCs/classes?
16:12 lucian_ whiteknight: i waved away the state, much better now. thanks
16:12 * lucian_ strongly dislikes state too
16:12 JimmyZ_ joined #parrot
16:14 whiteknight benabik: classes, mostly. not PBCs so much
16:14 whiteknight benabik: what do you need to look at?
16:14 whiteknight benabik: In the Parrot repo, look at src/pmc/class.pmc. Anything marked "METHOD" is a method you can call from PIR
16:15 whiteknight 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.
16:15 benabik whiteknight: Idle speculation, mostly.
16:15 sorear benabik: like, winxed low level, or more like perlesque?
16:17 JimmyZ left #parrot
16:17 JimmyZ_ is now known as JimmyZ
16:19 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
16:19 cotto_work ~~
16:20 lucian_ benabik: interesting idea. targeting M0 would be similar, too
16:20 benabik lucian_: Yes, an M1 system language is a good idea.
16:21 benabik Possibly even more useful than what I've been pondering so far.  Hm.
16:22 lucian_ i tend to see that as a better legacy path than PIR
16:22 benabik M0 isn't exactly legacy right now.
16:22 lucian_ no, i mean moving from legacy parrot to M0
16:22 cotto_work heh
16:22 benabik Although my PAST-C is somewhat coming out of the realization that I need a more expansive test suite for PAST.
16:22 cotto_work M0 isn't even fully defined right now.
16:23 benabik When I can completely break a type of variable and only notice when I bootstrap twice, that's a problem.
16:26 mikehh left #parrot
16:26 lucian_ allison: ping
16:44 mikehh joined #parrot
16:56 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:57 whiteknight no, Parrot is too huge to be rewriting much of it in assembly language
16:57 whiteknight good luck finding the coders with the motivation or the tuits for that kind of brain-numbing project
16:57 cotto_work whiteknight: shoot me if I ever suggest that.
16:58 cotto_work Writing CPS fibonacci in M0 will be quite enough.
16:59 lucian_ whiteknight: i had this silly thought of compiling parrot's C bits to M0, along with everything else
17:00 benabik Fill in the blank:  M1C should be implemented in ___
17:02 cotto_work lucian_: the only problem with that is that we'd have to *correctly* parse C.
17:03 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
17:03 cotto_work benabik: yes and no.
17:03 lucian_ but it's still silly
17:04 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?
17:04 cotto_work macro and type support is very limited
17:04 cotto_work benabik: boom
17:04 benabik BOOM!  \o/
17:04 benabik Boom and doom.
17:04 lucian_ cotto_work: so opsc could grow a M0 backend
17:05 lucian_ 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?
17:05 cotto_work lucian_: there's a lot more to Parrot's C guts than just ops.
17:06 lucian_ i know
17:06 benabik Isn't a lot of it going to stay C and just get called from M0?
17:06 cotto_work It is a good time to start thinking about what the default M1 will look like.
17:06 whiteknight benabik: depends what you mean by "a lot of it"
17:07 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
17:07 cotto_work benabik: yes but only as a transitional measure.\
17:07 whiteknight like, calling a C method from PIR, or calling a PIR routine from C
17:07 whiteknight so we need to rewrite enough of Parrot core to either minimize those instances or eliminate them completely
17:07 lucian joined #parrot
17:07 whiteknight of course, extensions will still want that ability, but they can pay the call-in/call-out price
17:08 whiteknight so it might not make sense to eliminate all instances from parrot entirely
17:08 whiteknight we still want to get rid of a lot
17:08 cotto_work Calling from M0 into C won't hurt anything if we know we won't need to spawn an inner runloop.
17:08 whiteknight right. M0->C is not nearly as expensive as the other way around
17:08 benabik I would think most of the "backend" would stay C.  GC, for one.
17:08 alester Trac still hates me. :-(
17:08 whiteknight benabik: yes, GC probably will stay in C
17:08 whiteknight PCC too
17:09 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.
17:09 alester Can someone who can log into the wiki please make an edit for me? http://trac.parrot.org/par​rot/wiki/git-svn-tutorial
17:09 whiteknight calling conventions
17:09 whiteknight cotto_work: maybe
17:09 whiteknight cotto_work: I think the first thing would need to be built-in PMCs, especially Object
17:09 whiteknight that's where most context switches happen
17:09 whiteknight calling vtable overrides on Object
17:09 benabik M0 does exceptions, right?
17:10 cotto_work whiteknight: the first system should be the easiest.  PMCs have a lot of complexity.
17:10 cotto_work We want to start with a simpler subsystem to shake out bugs before we start on the hard parts.
17:11 cotto_work alester: what's your trac username?
17:11 alester petdance
17:11 alester Yes, I've removed my cookies.
17:11 JimmyZ left #parrot
17:12 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 #parrot
17:12 cotto_work lucian: that's a possibility
17:12 alester cotto_work: I have ALWAYS had problems logging in to Trac.
17:12 cotto_work alester: what prolems?
17:12 alester Not being able to log in.
17:12 whiteknight cotto_work: the first system should be one where we clearly understand the design, and for which we have a garbageload of tests
17:12 alester It thinks I've logged in, but hasn't.
17:12 whiteknight I/O is not one of those things that has a great foundation right now
17:13 whiteknight it's gotten better, but it's still not gorgeous
17:13 whiteknight strings might be better
17:13 alester It might be a problem with going through a proxy.
17:13 cotto_work whiteknight: that's reasonable
17:13 cotto_work alester: that's likely
17:14 cotto_work proxies are not your friend
17:14 lucian whiteknight: strings using ICU?
17:17 benabik Apparently altering NQP based on changes in the original PIR is harder than converting it in the first place.  @.@
17:23 mj41 left #parrot
17:33 lucian_ joined #parrot
17:37 lucian left #parrot
17:41 ambs joined #parrot
17:49 dodathome joined #parrot
17:49 dodathome left #parrot
18:01 davidfetter joined #parrot
18:03 ligne left #parrot
18:15 lucian joined #parrot
18:19 lucian_ left #parrot
18:22 lucian_ joined #parrot
18:25 lucian left #parrot
18:33 contingencyplan joined #parrot
18:39 bluescreen left #parrot
18:39 bluescreen joined #parrot
18:51 dalek parrot: 9e33eb7 | NotFound++ | src/pmc/eval.pmc:
18:51 dalek parrot: override vtable get_pointer in Eval PMC to get the underlying packfile.
18:51 dalek parrot: review: https://github.com/parrot/parrot/commit/9e33eb7767
19:07 NotFound What is supposed to be the purpose of testing the registring of an unitialized Parrot string?
19:07 kid51 joined #parrot
19:08 NotFound t/src/extend.t line 81
19:09 NotFound 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
19:09 mikehh Kubuntu 11.04 amd64 (g++ --optimize)
19:14 dalek parrot: d8be11f | NotFound++ | t/src/extend.t:
19:14 dalek parrot: there is no point in testing the registering/unergistering of an uninitialized String pointer, just gives random crashes
19:14 dalek parrot: review: https://github.com/parrot/parrot/commit/d8be11fba5
19:15 dukeleto blarg
19:15 dukeleto NotFound: my grant requires increasing test coverage. We should either have tests for the code, or delete the code
19:15 ambs left #parrot
19:15 NotFound dukeleto: What code? Checking random addresses?
19:16 dukeleto NotFound: those tests always pass on my machine
19:16 dukeleto NotFound: i am trying to make the test coverage of t/src/extend.t 95%
19:16 NotFound dukeleto: it randomly crashes on mines.
19:16 dukeleto NotFound: well, we should fix the test, not delete it
19:16 dukeleto NotFound: or remove the dumb functions
19:16 NotFound dukeleto: fine, but do it with an initialized string.
19:17 dukeleto NotFound: kind of hard to improve, when you delete my test ;)
19:17 NotFound After testing Parrot_new_string, for example.
19:18 mikehh I haven't had any problems with the test
19:18 mikehh NotFound: but yes I agree
19:18 NotFound dukeleto: I thought about fixing it, but then realized that doesn't seem appropiate to use a created string before testing creating strings.
19:19 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 dukeleto NotFound: can you re-add that test and make it work on an initialized string? Pretty please?
19:19 NotFound dukeleto: I disagree. Wrong tests are worse tnan none.
19:20 dukeleto NotFound: wrong tests can be improved. No tests can't.
19:20 ambs joined #parrot
19:20 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.
19:21 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
19:21 NotFound dukeleto: I was just fixing an annoying problem, not trying to upset you. I'll look at it.
19:22 dukeleto mikehh: well, my test verified that those functions didn't coredump on my machine, which is meaningful
19:22 mikehh dukeleto: :-}
19:22 dukeleto mikehh: evidently, they *do* coredump on NotFound++'s machine, which told us something! No tests would have told us nothing.
19:22 whiteknight test++
19:22 dukeleto mikehh: it is an iterative process
19:22 NotFound dukeleto: If I just looked at thing that run fine in my machines, parrot will be in a far worse state.
19:23 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
19:23 mikehh about tests in general, that is
19:24 whiteknight what dukeleto's grant is really exposing is the low quality of functions in extend.c and embed.c
19:24 whiteknight and extend_vtable.c
19:24 dukeleto these tests are actually bringing up lots of good discussion that is improving the design of the embed/extend subsystems
19:24 dukeleto 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
19:24 dukeleto whiteknight: yes
19:24 whiteknight we now have better knowledge about what we have, and what needs to improve there. We were blissfully unaware before
19:24 whiteknight hence some of my cleanup work in recent days, although that was premature too
19:25 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 dukeleto If we delete the code and the tests next week, I don't care.
19:25 dukeleto But I *would* like to finish my grant to I can move on to hacking on more interesting stuff.
19:25 NotFound dukeleto: relax, I told you I'm looking at it.
19:26 * dukeleto relaxes
19:27 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
19:28 whiteknight what are the numbers looking like now?
19:29 soh_cah_toa joined #parrot
19:30 soh_cah_toa ~~
19:31 dalek parrot: c8bc036 | NotFound++ | t/src/extend.t:
19:31 dalek parrot: test Parrot_(un)register_string
19:31 dalek parrot: review: https://github.com/parrot/parrot/commit/c8bc036a15
19:32 RobertLJ left #parrot
19:38 cotto left #parrot
19:47 whiteknight left #parrot
19:53 elmex_ joined #parrot
19:56 elmex left #parrot
19:56 elmex_ is now known as elmex
20:04 dalek website: benabik++ | GSoC 4: Unsteady Ground
20:04 dalek website: http://www.parrot.org/cont​ent/gsoc-4-unsteady-ground
20:05 NotFound mikehh: BTW, I usually build with -O3, that may explain why I had that crashes and you don't.
20:08 mikehh NotFound: probably, I must try that sometime
20:09 mikehh actually I must try that when I build perl5 as well
20:18 * tcurtis is glad to have Internet access again after returning home to find the cable and Internet down.
20:21 tcurtis aloha, seen darbelo
20:21 aloha tcurtis: darbelo was last seen in #parrot 17 days 23 hours ago joining the channel.
20:21 tcurtis aloha, darbelo?
20:21 aloha tcurtis: Search me, bub.
20:25 tcurtis dukeleto: ping
20:29 cotto_work #ps in rsn
20:29 cotto_work dukeleto: ping
20:46 bluescreen left #parrot
20:47 bluescreen joined #parrot
20:50 particle left #parrot
20:59 mj41 joined #parrot
21:01 theory left #parrot
21:01 lucian joined #parrot
21:03 particle joined #parrot
21:04 lucian_ left #parrot
21:14 fperrad left #parrot
21:20 bluescreen left #parrot
21:22 dalek website: tcurtis++ | GSoC: LALR Parsing: School's out for summer.
21:23 dalek website: http://www.parrot.org/content/gso​c-lalr-parsing-schools-out-summer.
21:25 davidfetter o/` school's out forever! o/`
21:26 tadzik oh, don't tempt me :)
21:27 alester left #parrot
21:28 davidfetter tadzik, to play your alice cooper tracks?
21:28 kid51 left #parrot
21:28 tadzik davidfetter: if only :)
21:29 tadzik 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:30 davidfetter the pain you're feeling now will be over in <1 week
21:30 plobsing joined #parrot
21:30 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 :)
21:30 tadzik no, I tend to get over it and study
21:31 tadzik first one comes the day after tomorrow
21:31 tadzik there is a chance 50% of the trouble will be off ;)
21:31 mikehh tadzik: then you REALLY, really get the pain of GSoC
21:31 tadzik mikehh: in what sense?
21:32 mikehh tadzik: not serious :-}
21:32 tadzik I'm not sure :) I have a gap in my schedule for the exam session
21:33 tadzik and it's often "hmm, exam tomorrow, exam the next day, exam on thursday... oh, I can hack something up"
21:33 tadzik (see Sunday :))
21:35 ambs left #parrot
21:36 mikehh ha - than someone has to mark the exam papers
21:39 mikehh 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 #parrot
21:41 PurityControl joined #parrot
21:43 perlite left #parrot
21:43 perlite_ is now known as perlite
21:44 tadzik but the ETA is one hour after the exam :>
21:45 mikehh oh - forgot to report
21:45 mikehh All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-269-gc8bc036
21:45 mikehh Kubuntu 11.04 amd64 (gcc --optimize)
21:46 mikehh tadzik: better not get it too early, but you have another exam after that?
21:46 Patterner left #parrot
21:46 PurityControl is now known as Patterner
21:46 tadzik mikehh: on monday
21:46 tadzik not too bad
21:47 tadzik I should manage to slack off _and_ study :)
21:47 mikehh tadzik: just load your study material first
21:47 tadzik int eresting;
21:48 mikehh some of it should be in mobi format :-}
22:15 mj41 left #parrot
22:41 kid51 joined #parrot
22:45 mtk left #parrot
22:49 dalek nqp: 8bc12e5 | jonathan++ | src/ (3 files):
22:49 dalek nqp: Enrich type checking a bit to support some more ways of doing type checks.
22:49 dalek nqp: review: https://github.com/perl6/nqp/commit/8bc12e5f65
23:00 whiteknight joined #parrot
23:10 dalek parrot: 6e4dc98 | NotFound++ | src/embed/ (2 files):
23:10 dalek parrot: avoid 'might be clobbered' warnings
23:10 dalek parrot: review: https://github.com/parrot/parrot/commit/6e4dc98d63
23:13 dmalcolm joined #parrot
23:14 whiteknight good evening, #parrot
23:16 whiteknight benabik: ping
23:16 whiteknight seen bacek
23:16 aloha bacek was last seen in #parrot 12 days 12 hours ago joining the channel.
23:17 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
23:17 whiteknight when was your last meeting with him?
23:18 benabik whiteknight: Week and a half?
23:20 tcurtis whiteknight: ping
23:25 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
23:25 whiteknight tcurtis: pong
23:27 whiteknight benabik: let's having a meeting soon then. Is now good, or sometime tonight or tomorrow?
23:28 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
23:28 whiteknight whenever works for you
23:29 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?
23:30 whiteknight seen darbelo?
23:30 aloha darbelo was last seen in #parrot 18 days 2 hours ago joining the channel.
23:30 whiteknight blah
23:30 whiteknight 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?
23:30 kid51 http://pmthium.com/2011/06/14/rakudo-no​m-reaches-milestone-no-more-pir-files/
23:31 kid51 Implications for Parrot?  Discuss.
23:34 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.
23:35 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
23:36 kid51 soh_cah_toa: I'll have to refer you to our colleagues who understand that much better than I do.
23:37 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?
23:38 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?
23:39 whiteknight tcurtis: now good? let's go to #parrotsketch
23:40 soh_cah_toa benabik: ok
23:41 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:42 tcurtis Since they only need to change the implementation of the nqp:: ops and such.
23:42 soh_cah_toa i can understand that
23:42 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 #parrot
23:44 whiteknight and anything we can do to minimize PIR use is good for Parrot
23:45 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:46 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
23:46 mikehh s/moe/more/
23:46 whiteknight the faster we can jettison that, the faster we can replace it with something better
23:46 soh_cah_toa true
23:46 whiteknight or make more changes to that language to make it better
23:47 mikehh I think we should generate pasm (or equivalent) directly NOT by hand though
23:48 mikehh so we would not need the syntactic sugar of PIR
23:49 whiteknight mikehh: that would be a dream-come-true for me
23:49 kid51 jnthn__: I don't necessarily disagree.
23:49 whiteknight the syntactic sugar of PIR is a big part of the problem
23:50 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
23:50 soh_cah_toa the "syntactic sugar" of pir, that is
23:50 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 #parrot
23:50 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
23:51 whiteknight 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
23:51 kid51 I could very easily imagine someone coming up to me at YAPC and saying ...
23:52 kid51 "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
23:52 jnthn__ kid51: Note that Rakudo still *generates* PIR.
23:52 jnthn__ kid51: We just don't develop directly in it.
23:53 soh_cah_toa ahh...i see now
23:53 soh_cah_toa well, then that's good
23:53 mikehh kid51: parrot is a register based VM for dynamic languages
23:53 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 #parrot
23:54 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 #parrot
23:54 hudnix joined #parrot
23:55 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?
23:55 mikehh we should have code generators to generate the low level code
23:55 kid51 Can you/we say how parrot compares to other things commonly described as virtual machines (JVM, CLR, Mono)?
23:56 mikehh kid51 thats the various I, N, S and P registers
23:57 mikehh kid51: they are nearly all stack based NOT register based
23:57 soh_cah_toa yeah, and definitely explain what that means
23:57 soh_cah_toa i think that's important
23:58 soh_cah_toa 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
23:58 soh_cah_toa well, a combination of both
23:59 TonyC left #parrot
23:59 nopaste left #parrot

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

Parrot | source cross referenced