|
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
|
|||