|
www.parrotcode.org | Last Release: 0.7.0 "Severe Macaw" Set by moderator on 3 September 2008. |
|||
|
00:06
Zaba_ joined,
bacek joined
00:09
AndyA joined
00:15
japhb joined
00:31
Theory joined
01:03
Whiteknight joined
02:04
Theory joined
02:12
particle1 joined
|
|||
| kid51 must sleep | 02:37 | ||
| purl | $kid51->sleep(8 * 3600); | ||
| s1n | anyone know what get_pmc_keyed refers to (i.e. unimplemented method maybe?) | 02:40 | |
|
03:13
Whiteknight joined
03:15
Ademan joined
03:24
tetragon joined
04:25
tetragon joined
|
|||
| pmichaud | get_pmc_keyed is a vtable method | 04:33 | |
| it's used for looking up entries (e.g. in a hash or array) | 04:34 | ||
| PerlJam | good morrow. | 05:01 | |
| pmichaud | good morning | 05:09 | |
| PerlJam is staying up with a coughing child. | 05:13 | ||
| pmichaud | sorry to hear that | 05:15 | |
| I've had a few nights like that :-| | |||
| PerlJam | So, what's new in the world? | 05:17 | |
|
05:17
tetragon joined
|
|||
| pmichaud | not a whole lot, other than news already reported :-) | 05:17 | |
| PerlJam | I'm still waiting to hear from TAMUCC. The position must stay open until 9/11, so I guess they can't officially hire me until 9/12 | 05:19 | |
| pmichaud | sounds like business as usual :-) | 05:20 | |
| is Cyndi excited? | 05:23 | ||
| PerlJam | I think I have some small insight into what it's like to be retired. I keep wandering around looking for stuff to do. I try to do parrot/rakudo things but kids/wife make that difficult. So far I've mowed my sister-in-law's grass, made lots of meals,and generally puttered around their house. | ||
| Cyndi is very excited (and happy) | |||
| pmichaud | well, your insight into retirement somewhat matches mine :-) | ||
| PerlJam | yeah, but you nominally get to hack on rakudo as your "day job" :) | 05:25 | |
| pmichaud | well, between disability, kids, and travel there haven't been many "days" for my "job" :-) | 05:26 | |
| (this last week there were some, but I'm apparently still recuperating from this summer :-) | |||
| PerlJam | I've rediscovered that I'm not "normal". I've been helping Cyndi's sister with her algebra homework (she's going back to school to become a teacher) and apparently I remember how to do it better than her engineer husband. Everyone has been marveling at my ability to do algebra and I've been boggling that everyone is marveling. | 05:29 | |
| pmichaud | shall I send Matthew? he does algebra pretty well also :-) | 05:30 | |
| PerlJam | heh | ||
|
05:31
chromatic joined
|
|||
| PerlJam | greetings chromatic | 05:31 | |
| chromatic | Greetz. | ||
| pmichaud, did you see my response to RT #58578? | 05:32 | ||
| pmichaud | not yet | ||
| I'm looking into something else | |||
| chromatic | Good; I think I have a simpler solution. (But I blame Rakudo still, not Parrot.) | 05:33 | |
| pmichaud | I'm pretty sure it needs to be max >= min | 05:36 | |
| the core of the difficulty is that there isn't really a way to find out the depth of the outer stack to know when to stop | 05:37 | ||
| so we keep incrementing until we get an exception | |||
| although I suspect we don't need to do $P0 = getinterp at each iteration. | 05:38 | ||
| nopaste | "chromatic" at 63.105.17.30 pasted "Another Attempt (Less Confusing)" (21 lines) at nopaste.snit.ch/13959 | ||
| pmichaud | I wanted to have the ability to specify a range of depths to search | 05:39 | |
| thus the min/max approach | |||
| chromatic | This still uses min/max, but it doesn't increment depth and decrement max every time through. | 05:40 | |
| pmichaud | except depth needs to be offset by one from min-max | 05:41 | |
| I want min and max to be relative to the caller, not to !OUTER | |||
| i.e., a min of 1 would be !OUTER's caller's caller | 05:42 | ||
| chromatic | but depth starts at min and goes up to max | 05:43 | |
| pmichaud | depth starts at min + 1 | ||
| and goes to max + 1 | |||
| chromatic | Right, min + 1 | ||
| I don't understand why you decrement max every iteration though. | |||
| pmichaud | I think I was tired when I wrote that code. :-) | 05:44 | |
| chromatic | I can change it so it goes to max + 1 and test; doing that now. | ||
| I kept getting the impression it walked out of the range and the exit condition was never true. | 05:46 | ||
| PerlJam | seems like the way it is will never go from min+1 to max+1, but rather from min+1 to int((max+min)/2) | ||
| pmichaud | in the original source? no, because it's comparing max to min | 05:47 | |
| not to depth | |||
| and min doesn't change | |||
| PerlJam | oh, right. | ||
| chromatic | No crash with my latest change. | 05:48 | |
| pmichaud | interesting. I'm surprised it makes a difference. | ||
| PerlJam | perhaps there's an obscure bug in parrot's inc/dec ;) | 05:49 | |
| chromatic | My backtrace was over 10,000 call frames deep. | ||
| Sorry, 100,000. | |||
| pmichaud | I don't quite understand what was generating the call frames. | ||
| nopaste | "chromatic" at 63.105.17.30 pasted "Yet Another Rakudo Seggie Patch" (26 lines) at nopaste.snit.ch/13960 | 05:50 | |
| chromatic | Exception handler invocations at first, until it exhausted Parrot contexts, and then recursive context marking. | ||
| pmichaud | "exception handler invocations"? from...? | 05:52 | |
| chromatic | No caller depth exceptions. | 05:53 | |
| pmichaud | but weren't they being popped at the done: label? | ||
| or do you mean "No caller depth" exceptions? | 05:54 | ||
| chromatic | Yes. | ||
| i mean the exceptions, not the handlers | |||
| pmichaud | so, when the caller didn't have an :outer, it would generate an exception | 05:55 | |
| chromatic | I believe so. | 05:56 | |
| pmichaud | ...and the exception never gets gc'ed? | ||
| or... | |||
| I'm really confused. | |||
| chromatic | The exception handler causes another exception to be thrown, which causes another exception to be thrown, which... | 05:57 | |
| pmichaud | which exception handler? | ||
| that's the part I'm confused about. | |||
| chromatic | I'm not sure. It's really hard to tell. | 05:58 | |
| pmichaud | I would've thought that the push_eh on line 91 would be the exception handler for the "No caller depth" exception. | ||
| chromatic | If I could reproduce it in a few lines of PIR, I could tell you for sure. | ||
| PerlJam | chromatic++ for plumbing the depths of confusion anyway. :) | ||
| pmichaud | at any rate, I _really_ don't understand why changing the indices makes any difference. :-) | 06:00 | |
| and that scares me a bit. | 06:01 | ||
| chromatic | Me too. | ||
| pmichaud | feel free to apply the patch, though | 06:03 | |
| I do prefer your approach to iterating depth | 06:04 | ||
| chromatic | Let's see how many passes we get this way. | ||
|
06:16
chromatic joined
|
|||
| dalek | r30772 | chromatic++ | trunk: | 06:17 | |
| : [Rakudo] Improved caller lookup algorithm in !OUTER; it's slightly more clear | |||
| : this way. It also appears to clean up RT #58578 (reported by Moritz Lenz). | |||
| : Neither Patrick nor I trust it completely though. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30772 | |||
| nopaste | "PerlJam" at 24.243.121.169 pasted "Is there an easier way?" (41 lines) at nopaste.snit.ch/13961 | ||
| PerlJam | pm: see the paste. | ||
| pmichaud | looking | ||
| PerlJam | I just implemented the optional exprs in loop(;;) | 06:18 | |
| pmichaud | I think it ought to be simply if $<e1> | ||
| instead of if $<e1>[0] ne '' | 06:19 | ||
| PerlJam | just trying to be more explicit there (and remind my self that thingy? is an array) | ||
| pmichaud | I feel that explicitly testing strings here is not the right way to go | 06:20 | |
| for one, $<e1>[0] will stringify its AST | |||
| PerlJam | hmm | ||
| pmichaud | because any match object stringifies as the stringification of its result object | 06:21 | |
|
06:21
tewk joined
|
|||
| PerlJam | okay, so I guess I should change the if $<eee> test too (and I'm pretty sure the original implementation did not compare agains the empty string) | 06:23 | |
| pmichaud | I would do | ||
| my $block := $($<block>); | |||
| er, actually | |||
| PerlJam | but, what I was really wondering was if there was a better/easier way to generate the empty statements | ||
| pmichaud | start over | ||
| my $past := $($<block>); | |||
| PerlJam | (or even the always true) | ||
| pmichaud | if $<e3> { | 06:24 | |
| $past := PAST::Stmts.new( $past, $($<e3>[0]) ); | |||
| } | |||
| my $cond := $<e2> ?? $($<e2>[0]) !! PAST::Val.new( :value(1) ); | 06:25 | ||
| PerlJam | aha! NQP groks ternary. I had though it didn't for some reason. | ||
| pmichaud | $past := PAST::Op.new( $cond, $past, :pasttype('while') ); | ||
| if $<e1> { $past := PAST::Stmts.new( $($<e1>[0]), $past ); } | 06:26 | ||
| make $past; | |||
| we added ternary to NQP a few months ago... originally it didn't. | |||
| anyway, we only add the $<e3> and $<e1> nodes if they're non-null. | 06:27 | ||
| the other way to make sure we matched something other than empty string is to use $<e1>[0].chars | 06:28 | ||
| I _think_ .chars has been implemented on match objects | 06:29 | ||
| yes, it has. | |||
| PerlJam | well, I'll play with rearranging things a bit. That'll at least help me get back into the feel of rakudo again. | 06:33 | |
| pmichaud | okay. | ||
| PerlJam | does NQP understand the modifier form of if/unless while/until, etc. ? | 06:38 | |
| pmichaud | no. | ||
|
06:40
uniejo joined
06:43
tetragon joined
|
|||
| moritz | pmichaud, chromatic: now that test dies after 562 for me | 06:43 | |
| pmichaud | yes, I didn't think it should have that big an impact. | ||
| I'll have to look at it in the morning though. About to submit a patch for testing and then time for sleep | 06:44 | ||
| chromatic | moritz, do you get an error in can() ? | ||
| moritz | I'll try to skip that to see if it's the individual test, or more of a complexity problem | ||
| chromatic: no, segfault | |||
| pmichaud | also, for that test I'd prefer that it read the rx_* files and process the skip markers from there | 06:45 | |
| chromatic | Hm. Let me back out a PGE patch and see if that changes things. | ||
| moritz | would you want skip markers for all Perl 6 implementations in the rx_* files? | 06:46 | |
| chromatic | Sorry, PCT. | ||
| pmichaud | moritz: they're already there | ||
| at least for pge and pugs | |||
| nopaste | "chromatic" at 63.105.17.30 pasted "Fiddled with this in PCT Debugging It as Well" (15 lines) at nopaste.snit.ch/13962 | ||
| pmichaud | chromatic: shouldn't any locally-set exception handler automatically be popped when leaving the current sub ? | 06:47 | |
| chromatic | I can never remember what's the new system and what's the old system. | 06:48 | |
| Some PCT code has the generated pop_eh, and some doesn't. | |||
| pmichaud | I agree it doesn't hurt to have the pop_eh there. | ||
|
06:51
masak joined
|
|||
| chromatic | No problem for me with the test under gdb either way. | 06:52 | |
| dalek | r30773 | pmichaud++ | failthrow: | 07:03 | |
| : Create a new branch for testing Failure objects and exceptions. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30773 | 07:04 | ||
| cotto_home | chromatic, can #58040 be closed? It looks like you committed a fix but never closed the ticket. | 07:11 | |
|
07:16
tetragon joined
|
|||
| chromatic | Doing it now; thanks for the reminder. | 07:17 | |
| PerlJam | pm: still awake? Want to look over my loop_statement refactor? | ||
|
07:18
viklund joined
|
|||
| nopaste | "PerlJam" at 24.243.121.169 pasted "loop_statement refactor with optional expressions for those that can read diff output" (62 lines) at nopaste.snit.ch/13963 | 07:20 | |
| cotto_home | does merging tickets cause rt to explode or was that a coincidence? | 07:21 | |
| moritz tests that | |||
| purl | tests that are failing? | ||
| moritz | purl, forget tests that | 07:22 | |
| purl | moritz: I forgot tests that | ||
| PerlJam | Is there a more useful visualization of the results of "make spectest" ? | ||
| moritz | PerlJam: make spectest_regression instead | ||
| that runs everything that should work right now | 07:23 | ||
| (if that help you) | |||
| cotto_home | and it's back | ||
| PerlJam | moritz: aye, thanks. But now my question is "Is there a more useful visualization of make spectest_regression?" :) | ||
| moritz | PerlJam: not that I know of | 07:24 | |
| PerlJam: what would you like to have visualized? it should be boring ;) | |||
| dalek | r30774 | julianalbo++ | trunk: | ||
| : rename example xlib.pir to Xlib.pir (first step to make it available from rakudo | |||
| chromatic | pmichaud has a visualization he uses to create his CSV numbers, but I forget what that is. | ||
| dalek | diff: www.parrotvm.org/svn/parrot/revision?rev=30774 | ||
| r30775 | pmichaud++ | failthrow: | |||
| : [rakudo]: First-cut version of Failure objects that contain | |||
| PerlJam adds such a thing to his list of potential projects | |||
| dalek | : unthrown exceptions. Still needs a little work, but exists | ||
| : in a branch because it causes a lot of spectest_regression | |||
| : failures. | |||
| purl | : failures are mainly due to: | ||
| dalek | diff: www.parrotvm.org/svn/parrot/revision?rev=30775 | ||
| moritz | chromatic, PerlJam: that's tools/test_summary.pl | 07:25 | |
| PerlJam | moritz: But when it's not boring, not only should it be exciting, but ueberhelpful if it can :) | ||
| moritz, chromatic: thanks for that too. | |||
| moritz | PerlJam: you mean like a HTML matrix? | 07:26 | |
| pmichaud | I'd like to see the progress graphs also show the size of the spectest suite in a light gray | ||
| chromatic | purl, forget : failures | ||
| purl | failures are wierd; dying on a call that works in the 00 file. | ||
| dalek | r30776 | julianalbo++ | trunk: | ||
| : rename example xlib.pir to Xlib.pir - forgot to update MANIFEST | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30776 | |||
| PerlJam | moritz: something like that would be nice. | ||
| moritz | PerlJam: patches to the test harness are welcome (hint, hint ;) | ||
| PerlJam | moritz: if it itches enough, I'll scratch it. | 07:27 | |
| pmichaud | (and the size of the spectest suite is in the csv file) | ||
| anyway, sleep time here | |||
| bbiaw | |||
| if people want to play with spectest_regression in the 'failthrow' branch that could be interesting and helpful | 07:28 | ||
| chromatic | cotto_home, if you find other open tickets where the last note is me applying a patch, feel free to assign them to me and resolve, or just resolve. | ||
| pmichaud | (i.e., run "make spectest_regression", and then look at the test file(s) that are reporting "use of uninitialized value" and figure out if it's true or not) | ||
| in particular, I'm wondering if | 07:29 | ||
| is($foo, undef, '$foo is undef'); | |||
| should throw an exception if $foo is uninitialized :-) | |||
| chromatic | Is that a rhetorical question? | 07:30 | |
| moritz | pmichaud: on the Perl 6 level? | ||
| pmichaud | moritz: yes. | ||
| moritz: in the test suite. | |||
| moritz | pmichaud: if we have warnings, and a kind of 'use warnings FATAL => ':all'' in place, yes | 07:31 | |
|
07:31
cosimo joined
|
|||
| pmichaud | there are a lot of is($foo, undef, '$foo is undef'); in the spectest suite, and I'm wondering if we need to change those tests or if that's a valid mechanism for testing for undefness | 07:31 | |
| moritz | (but tests like that are really wrong anyway) | ||
| yes, they should be !$stuff.defined | |||
| ok !$foo.defined, ... | |||
| pmichaud | okay. I need to get .defined defined in Object then | 07:32 | |
| dalek | r30777 | julianalbo++ | trunk: | ||
| : rename namespace xlib to Xlib in xlib example (second step to make it available from rakudo) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30777 | |||
| moritz | pmichaud: yes, please | ||
| pmichaud | but it'll have to be tomorrow... too tired to reliably do it tonight | ||
| and it scares me how many times I'm repeating words. "What the meaning of C<is> is" "I have to get C<defined> defined" "I'm fixing C<Failure> failures" | 07:33 | ||
| dalek | r30778 | duff++ | trunk: | ||
| : Make the expressions in a loop statement optional and refactor loop_statement | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30778 | |||
| PerlJam | pm: that's what you get for being wiki wiki :) | ||
| chromatic | .defined should be easy to add, right? | ||
| Just check against Undef? | |||
| pmichaud | there is no Undef :-) | ||
| chromatic | Even easier. | 07:34 | |
| purl | i guess even easier is to serve different CSS documents | ||
| pmichaud | and it's a bit tricky because we also want the vtable methods to dtrt | ||
| so, we need a vtable method that delegates to the .defined method | |||
| chromatic | Okay. If it's more than four lines I might sleep myself instead. | ||
| pmichaud | and then .true and get_boolean need to be properly defined in terms of .defined | ||
| it's more than four lines. | 07:35 | ||
| might be as few as eight, but definitely more than four. :-) | |||
| moritz | ;) | ||
| sleep well | |||
| pmichaud | and it's intricate enough that I'd rather do it when I'm thinking clearly so I don't do bad code like the stuff we found earlier :-| | ||
| PerlJam | pm: before you go ... what's needed to make next/last/redo work? | 07:36 | |
| or, where would I look for more info? | |||
| pmichaud | they have to be added into PCT so that the various loop constructs can trap those control exceptions and dtrt | ||
| moritz | I think we should have control exception in PCT | ||
| pmichaud | and for that we also need things like "next LABEL" which means the loop and block constructs need to be able to recognize the control exceptions that have their label | 07:37 | |
| (and the control exceptions need labels) | |||
| we already have control exceptions in PCT -- that's how 'return' works | |||
| we just need to add the cases for next/last/redo etc. | 07:38 | ||
| moritz envisions a :catches<name1 name2> syntax, so for example a while block would be set up to catch <<last redo next @labels>> | |||
| pmichaud | something like that might work. More likely is :label('FOO') and just catch all of the control types | 07:39 | |
| moritz | but it shouldn't catch return | 07:40 | |
| so not "all" | |||
| pmichaud | it'll end up catching it and rethrowing it because it's not one of the recognized control exceptions | ||
| afaik Parrot doesn't give me a way to say "only catch these types of exceptions" | 07:41 | ||
| at some point it's supposed to allow us to mark exceptions as handled or unhandled, but I don't know if that's implemented yet. | |||
| anyway, sleep | 07:42 | ||
| purl | i think anyway, sleep is necessary before I cough up lej's lungs some more | ||
| PerlJam | purl: forget anyway, sleep | 07:43 | |
| purl | PerlJam: I forgot anyway, sleep | ||
| chromatic | pmichaud, if you backlog, I think you set a type for the exception handler | 07:47 | |
| though the syntax for that I don't remember | |||
| dalek | r30779 | julianalbo++ | trunk: | 07:54 | |
| : Fix another MANIFEST mistake | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30779 | |||
| r30780 | julianalbo++ | trunk: | 08:00 | ||
| : add nqp and perl6 to nci Xlib examples | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30780 | |||
| cotto_home | is Allison the only one who can grant edit bits for parrot.org? | 08:02 | |
| moritz | NotFound: is xlibtest.p6 supposed to be a Perl 6 file that can be run by rakudo? | 08:04 | |
| NotFound: if so, I'd clean it up a bit (for example it uses perl 5 style POD) | |||
| dalek | r30781 | julianalbo++ | trunk: | 08:22 | |
| : commented out pod in xlibtest.p6 example | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30781 | |||
| rurban@cpan.org | parrot_installation: | 08:34 | ||
| link: www.perlfoundation.org/parrot/index...stallation | |||
| moritz | NotFound: in Perl 6, the POD is delimited by =begin pod ... =end pod | 08:35 | |
|
08:43
barney joined
08:59
iblechbot joined
09:01
Ademan joined
09:37
kid51 joined
|
|||
| dalek | r30782 | kjs++ | trunk: | 09:40 | |
| : [pirc/new] implement some instruction selection and improve grammar a bit. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30782 | |||
|
09:58
kj joined
10:20
Whiteknight joined
10:26
tetragon joined
|
|||
| dalek | r30783 | julianalbo++ | trunk: | 10:32 | |
| : avoid usage of deprecated opcodes in example Xlib.pir | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30783 | |||
| r30784 | julianalbo++ | trunk: | 10:46 | ||
| : Xlib example: use current screen in RootWindow instead of assuming 0 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30784 | |||
|
10:51
kj joined
11:04
barney joined
11:17
Whiteknight joined
11:22
bacek joined
11:43
bacek joined
11:55
Debolaz joined
12:00
aconran joined
|
|||
| dalek | r30785 | pmichaud++ | trunk: | 12:35 | |
| : [rakudo]: spectest-progress.csv update: 157 files, 3129 passing tests | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30785 | |||
|
12:41
Zaba joined
|
|||
| dalek | r30786 | coke++ | trunk: | 13:24 | |
| : [cage] fix trailing whitespace causing smolder failures. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30786 | |||
|
13:27
paco joined
13:44
cognominal joined
|
|||
| NotFound | moritz: thanks for the info, but I was not at home. | 13:45 | |
| dalek | r30787 | julianalbo++ | trunk: | 13:57 | |
| : use perl6 pod delimiters in xlibtest.p6 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30787 | |||
| moritz | pmichaud: I have some local changes to the suite pending here, which I can't commit until you install the .defined method in global | 14:03 | |
| NotFound | moritz: there is more cleaning required other than the pod and the lack of use v6; ? | 14:06 | |
| moritz | NotFound: yes | ||
| use UnquotedModuleName; | |||
| and rakudo supports =, so no need to use := all the way | |||
| if you want I can do some cleaning | 14:07 | ||
| NotFound | Will be nice, I'm not fluent in perl6. | ||
| moritz | allright | 14:09 | |
| NotFound | Someone is taking care of writing a mysql module? | ||
| moritz | not that I'm aware of | ||
| NotFound | I've do some testing this morning, and seems doable, at least for simple queries. | 14:10 | |
| moritz | cool | ||
| NotFound | I will write some simple code and let people test it. | 14:11 | |
| dalek | r30788 | moritz++ | trunk: | 14:13 | |
| : clean xlibtest.p6 a bit | |||
| : * use UnquoteModuleName | |||
| : * assignment instead of binding | |||
| : * more consistent whitespaces | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30788 | |||
| NotFound | moritz: good, thanks. | 14:17 | |
|
14:31
Zaba_ joined
14:33
jan joined
|
|||
| dalek | r30789 | allison++ | pdd27mmd: | 14:35 | |
| : [pdd27mmd] Fixing a test failing from deprecated opcodes, and begin the | |||
| : conversion to create a new destination by default. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30789 | |||
|
14:35
gryphon joined
15:06
Zaba joined
15:18
Debolaz joined
15:20
radhios joined
15:21
Theory joined
15:39
ron joined
|
|||
| ron | I created a page on parrot.org with URL www.parrot.org/wiki/some-testing-status-tools to fill in for a broken link referring to Parrot Test Status tools on the dev page. | 15:40 | |
| Anyone willing to take a look and see if it fits the content needs of that link? | 15:41 | ||
| moritz notices that the "wiki" link in the navigation points to the perlfoundation.org wiki | 15:42 | ||
|
15:45
gryphon joined
|
|||
| particle1 | moritz: yes, it's still todo to move that to parrot.org | 15:50 | |
| ron | I don't have an edit bit to fix the link. Should I ask for one, or is someone else interested in fixing the link, or is other content appropriate to fill in there? | 15:51 | |
| NotFound | purl: paste? | ||
| purl | paste is probably (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste | ||
| moritz | ron: ask for an edit bit | ||
| ron | thx | ||
| nopaste | "NotFound" at 213.96.228.50 pasted "Testing mysql access from pir with nci" (78 lines) at nopaste.snit.ch/13965 | 15:52 | |
| NotFound | Someone want to test? | 15:53 | |
| moritz | NotFound: it says mysqlclient library not found | ||
| I have a /usr/lib/libmysqlclient.so.15.0.0 | |||
| NotFound | moritz: Do you have a link /usr/lib/libmysqlclient.so to it? | 15:54 | |
| moritz | no | ||
| NotFound | This is a problem. | 15:55 | |
| moritz | ./parrot mysql.pir | ||
| mysql client version: 5.0.32 | |||
| src/string.c:2106: failed assertion 's' | |||
| Backtrace - Obtained 17 stack frames (max trace depth is 32). | |||
| (after I added the link) | 15:56 | ||
| NotFound | You can try to put the full path in the loadlib call, but I don't know if works that way. | ||
| moritz | it's good to be root ;) | ||
| NotFound | Oooops... forgot that doesn't work without my null string patch. | ||
| jonathan | purl 2 girls, 1 paste | 15:57 | |
| purl | jonathan: sorry... | ||
| jonathan | ... | ||
| jonathan was genuinely curious.... | |||
| NotFound | moritz: look at RT#58438 | ||
| moritz | jonathan: RT #58602 is extra for you ;) | ||
| jonathan | Oh, that'll be resolved once I get the new dispatcher in place. | 15:59 | |
| Perl6MultiSub actually handles this - there are PIR tests. | |||
| moritz | NotFound: do I have to re-configure | ||
| jonathan: thought so | |||
| NotFound | moritz: to apply that patch? No. | ||
| moritz | NotFound: now it segfaults instead :/ | 16:00 | |
| NotFound | moritz: use connection data and query valid, error check is minimal. | 16:01 | |
| A query that returns at least 1 row with 1 column. | |||
| moritz | ok, will do | 16:02 | |
| what's the order of arguments? | |||
| host, database, password, user? | |||
| NotFound | It only prints first column, anyway. | ||
| moritz | or host, user, password, database? | ||
| NotFound | host, user, password, database | 16:03 | |
| moritz | thanks | ||
| Fetched 92426 rows. | |||
| NotFound++ | |||
| NotFound | Uou! | ||
| moritz | (that was a part of the IRC log database ;) | ||
| NotFound | Not a bad test, I do it with just two rows. | 16:04 | |
| Well, that demonstrates that a simple module able to do queries is doable in short time :) | 16:05 | ||
| moritz | ...assuming that the null thingy patch is applied | ||
| NotFound | moritz: I'm surprised nobody commented it. | 16:06 | |
| particle1 | update log set line = 'notfound++' where line like '%mysql access from pir with nci' | ||
| NotFound | I will commit anyway, don't see any reason to wait. | ||
| moritz | I can comment with "very impressive", if that helps you ;) | 16:08 | |
| dalek | r30790 | julianalbo++ | trunk: | 16:10 | |
| : translate NULL STRING in nci t args to NULL C strings, RT#58438 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30790 | |||
| NotFound | After my tests with Xlib and mysql I can only say: NCI is great! | 16:11 | |
| moritz | indeed | ||
| tewk++ I guess ;) | |||
| NotFound | Compared with writting C glue for a Perl5 module, is orders of magnitude easier. | 16:12 | |
| moritz | somebody should blog about this. | 16:13 | |
| particle | NotFound isn't using tewk's ncigen yet | ||
| although HE REALLY SHOULD | |||
| NotFound | particle: ENOTENOUGHDOC | 16:14 | |
| particle | since then it'd be another nail in the coffin of the old static nci implementation | ||
| NotFound: could you mail tewk and p2 about it? | |||
| if you don't, i will | |||
| NotFound | My initial question is: there is some module using it? | 16:15 | |
| particle | tewk had some example code... don't know if it's committed | 16:16 | |
| lemme see | |||
| NotFound | Real module, will be better. | ||
| Xlib is not exactly a simple test case. | 16:17 | ||
| particle | i have a diff from trunk to gsoc_nci_001 | 16:36 | |
| i'm looking through it for pod and other docs | |||
| NotFound: compilers/ncigen/t/ has some examples | 16:41 | ||
| you need only to look at the test library to see how to use ncigen | 16:42 | ||
| NotFound | particle: I'm unable to understand uncommented complex perl code in less that one life ;) | 16:49 | |
| particle | try: parrot compilers/ncigen/c99.pbc --target=parse <your_h_file> | 16:53 | |
| NotFound | $ ./parrot compilers/ncigen/c99.pbc --target=parse /usr/include/X11/Xlib.h | 16:55 | |
| Failed to parse source | |||
| Same with several other files. | 16:56 | ||
| particle | try compilers\\ncigen\\t\\spi.h | 16:57 | |
| NotFound | Don't have that file. | 16:58 | |
| particle | rats, it's gone in trunk | 16:59 | |
| nopaste | "NotFound" at 213.96.228.50 pasted "Testing mysql access from pir with nci 2.0" (120 lines) at nopaste.snit.ch/13966 | 17:08 | |
| NotFound | More error checked and show more than one column. | 17:09 | |
| moritz | seems to work fine here | 17:10 | |
| with 7 columns | 17:11 | ||
| 83796: '-775441', '#perl6', '2005-03-12', 'autrijus', '1110648540', 'yeah. be glad it is not an arrow parameterized on polymorphic existential endofunctors inside a ST thread under STM.', '0' | |||
.oO(...) |
|||
| particle | O_o | 17:12 | |
| moritz | 159748896 exported in real 1m14.105s | ||
| NotFound | Good :) | ||
| moritz | bytes, that is | ||
| NotFound | The speed will probably not be great, I figured now that I build the struct data in each row. | 17:14 | |
| moritz | 159748896 / 1024 / 1024 | ||
| purl | 152.348419189453 | ||
| moritz is more impressed that 150MB were exported without error | 17:15 | ||
| measuring speed of things that are not optimized isn't very interesting | |||
| (I still do that sometimes ;) | 17:16 | ||
| NotFound | Is a better test of parrot and nci stability that way, building and discarding a lot of objects. | ||
| particle | optimizing things you haven't measured the speed of isn't very productive | ||
| NotFound | So, the idea that a simple mysql module is doable has been reconfirmed :) | 17:17 | |
| moritz | mysqldump takes 35s for the same table | 17:18 | |
| so it's not that bad ;) | |||
| particle | 74/35 | ||
| purl | 2.11428571428571 | ||
| NotFound | moritz: I know of a guy that optimized for speed a loop until key pressed. | 17:19 | |
| particle | 211% slower | ||
| moritz | NotFound: there's no limit for creativity | 17:20 | |
| NotFound | Let me avoid the pessimization for a nicer comparaison. | ||
| particle | s/creativ/stupid/ | ||
| moritz | particle: not 211% slower. It takes 211% of the time, so it's only 111% slower | ||
| particle | oops, finger slipped. yep! | 17:21 | |
| NotFound | There was an example to instruct another guy, but a fantastically bad choosen example. | ||
| nopaste | "NotFound" at 213.96.228.50 pasted "Testing mysql access from pir with nci - unpessimized version" (121 lines) at nopaste.snit.ch/13967 | 17:23 | |
| moritz | down to 1m9s | 17:26 | |
| Tene | I get an assertion failure with that pir. | 17:27 | |
| NotFound | Not bad | ||
| Tene | src/string.c:2106: failed assertion 's' | ||
| NotFound | Tene: svn up | ||
| moritz | (and rebuild ;) | ||
| Tene | 'kay | ||
| NotFound | See RT#58438 for details. | 17:28 | |
| moritz | running with -G makes it even faster: 1m6s (and uses only about 1.2GB ram ;) | ||
| Tene | NotFound: now I get a segfault. Is that better? | 17:29 | |
| NotFound | moritz: it's using the mysql function to retrieve all data in a shoot, no wonder it eats a lot of memory. | ||
| moritz | Tene: did you adapt the connection parameters? | 17:30 | |
| Tene | Nope. | ||
| moritz | NotFound: yes, I figured... | ||
| NotFound | Tene: please -t and tell me where dies. | ||
| Tene | moritz: what params should I set to what? | ||
| moritz | Tene: the connection params to the DB in the pir source | 17:31 | |
| Tene: search for real_connect | |||
| Tene | moritz: what should I set them to? I don't know where this db is. | ||
| moritz | Tene: you can use any mysql db that you have access to | ||
| Tene | ah | ||
| moritz | then search for select, and edit that line to use a useful table name | 17:32 | |
| nopaste | "tene" at 166.70.38.237 pasted "parrot trace for notfound" (1 line) at nopaste.snit.ch/13968 | ||
| "tene" at 166.70.38.237 pasted "parrot trace with stderr for notfound" (1 line) at nopaste.snit.ch/13969 | |||
| moritz | I too get a segfault if I use a wrong password | 17:33 | |
| Tene | Okay. | ||
| NotFound | A table with all columns CHAR, better. | 17:34 | |
| Or VARCHAR, or whatever. | |||
| moritz | int works fine here | ||
| NotFound | Tene: Don't see trace in your paste. Did you use parrot -t ? | 17:36 | |
| moritz | NotFound: nopaste.snit.ch/13970 | 17:37 | |
| NotFound | I see... I'm using the NULL MYSQL result of the connect instead of the initial to get the error message. | 17:41 | |
| Tene | NotFound: look at the second paste. | 17:43 | |
| NotFound: I forgot to redirect stderr for the first. | |||
| NotFound | Tene: is the same, look at the "(1 line)" | 17:44 | |
| Tene | ... huh | ||
| Weird. | |||
| pmichaud | j | 17:45 | |
| Tene | k | 17:47 | |
| nopaste | "NotFound" at 213.96.228.50 pasted "Testing mysql access from pir with nci - fixed segfault?" (123 lines) at nopaste.snit.ch/13971 | ||
| Tene | Yeah, fixed. | ||
| NotFound | pmichaud: I've been able to make Xlib.pir usable from rakudo :) | 17:48 | |
| pmichaud | NotFound: yay! | ||
| NotFound | Look at examples/nci/xlibtest.p6 | ||
| dalek | r30791 | allison++ | pdd27mmd: | 17:49 | |
| : [pdd27mmd] Arguments to multis may be null, in which case pass it along and let | |||
| : the multi decide what to do with it (throw an exception, ignore it...). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30791 | |||
|
17:50
barney joined
|
|||
| dalek | r30792 | allison++ | pdd27mmd: | 18:03 | |
| : [pdd27mmd] Remove deprecated n_* opcode from test. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30792 | |||
| r30793 | pmichaud++ | trunk: | 18:13 | ||
| : [rakudo]: Update svn:ignore to ignore auto-generated 'Test.pir' | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30793 | |||
|
18:15
Ademan joined
18:18
martin joined
|
|||
| dalek | r30794 | allison++ | pdd27mmd: | 18:19 | |
| : [pdd27mmd] Removing more cases of defaulting to modifying/morphing the | |||
| : destination PMC. | 18:20 | ||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30794 | |||
| r30795 | pmichaud++ | failthrow: | 18:34 | ||
| : [rakudo]: Change use of Failure objects to merely warn instead of die. | |||
| : This causes spectest_regression to pass again, but with warnings | |||
| : about places where undefs are being used in value contexts (and we | |||
| : can start updating tests or Failure behavior as appropriate). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30795 | 18:35 | ||
|
18:37
Ron joined
|
|||
| particle | www.infoworld.com/article/08/08/28/...ons_1.html | 18:40 | |
| cotto_work | if someone's bored, the patch in #32087 can be committed and the ticket closed | 18:41 | |
| the number of tests needs to be incremented to 14, but the patch is fine otherwise | 18:43 | ||
| PerlJam | particle: that seems more like and advertisement for france than anything else. | 18:45 | |
| cotto_work | france++ | 18:48 | |
| pmichaud | I don't even remember the last time I was in france. 2001, probably. | 18:50 | |
| dalek | r30796 | allison++ | pdd27mmd: | 18:52 | |
| : [pdd27mmd] Fix the call to 'is_equal' so it isn't comparing the second argument | |||
| : to itself. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30796 | |||
| paco | NotFound: si la implemtacion con nci tarda 74 segs y la nativa son 35 segs, no seria un 50 % mas lenta? 35 es casi la mitad de 74 | 18:53 | |
| NotFound | paco: wrong channel or wrong LANG X-) | ||
| paco | sorry | ||
|
18:55
martin joined
|
|||
| dalek | r30797 | pmichaud++ | trunk: | 19:00 | |
| : [rakudo]: Merge failthrow branch back into trunk. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30797 | |||
| r30798 | pmichaud++ | failthrow: | |||
| : Remove obsolete branch. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30798 | |||
| PerlJam | obsolete? Wasn't it created just a few hours ago? | 19:01 | |
| moritz | PerlJam: and already merged ;) | ||
| pmichaud | I just wanted somewhere to stick the commit until I could make sure I had spectest_regression running | ||
| branches are cheap. :-) | |||
| dalek | r30799 | pmichaud++ | trunk: | 19:34 | |
| : [rakudo]: Initial implementation of .defined for Object. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=30799 | |||
|
19:43
Zaba_ joined
20:18
peepsalot joined
20:29
sjansen joined
20:39
silug joined
|
|||
| NotFound | How can I know the size of an Array PMC in rakudo? | 20:49 | |
| pmichaud | .elems ? | 20:51 | |
| NotFound | Method 'elems' not found for invocant of class 'FixedStringArray' | ||
| pmichaud | oh, is that @*ARGS ? | 20:52 | |
| NotFound | No, is a test of a pir module. | ||
| pmichaud | Rakudo doesn't have an equivalent of FixedStringArray. However, you could try simply evaluating it in numeric context -- i.e., +@array | ||
| NotFound | get_number() not implemented in class 'FixedStringArray' | 20:54 | |
| pmichaud | what is creating the FixedStringArray? | ||
| NotFound | Theres is an integer context? | ||
| pmichaud | Perl doesn't really have an integer context, no. | ||
| NotFound | pmichaud: is returned from a method call. | ||
| pmichaud | NotFound: from a Parrot builtin type, or from something else? | 20:55 | |
| NotFound | From a pir module. The value returned is a FixedStringArray. | ||
| pmichaud | well, this is an example of cross-hll types, then. :-) | 20:56 | |
| I don't have a quick answer, other than FixedStringArray should probably provide a get_number vtable entry. Most of the other Parrot array types do. | |||
| NotFound | I'll try with resizable one. | 20:57 | |
| Tene | Should FixedStringArray have a .elems()? | 21:03 | |
|
21:12
iblechbot_ joined
21:14
Ademan joined
|
|||
| nopaste | "NotFound" at 213.96.228.50 pasted "First attempt of Mysql module usage from perl6" (25 lines) at nopaste.snit.ch/13972 | 21:21 | |
| NotFound | Is this valid perl6? | 21:22 | |
| It works if I add a get_number vtable function to FixedStringArray. | 21:23 | ||
| particle | notfound: does "my Mysql $mysql .= new();" work? | 21:40 | |
| jonathan | my Mysql $db .= new(); # reads so nicely :-) | ||
| particle | is $row not already a number in "my $elems = +$row;" ? | ||
| ah, $row is an array, i suspect | 21:41 | ||
| jonathan | I doubt my Mysql $db .= new(); will actually work, though. | ||
| NotFound | particle: yes, is an array. | ||
| jonathan | Because it's calling the new() sub in a namespace. | ||
| NotFound | What must be provided to make that work? | ||
| A 'new' sub in the class namespace? | 21:42 | ||
| jonathan | NotFound: I believe, register it with p6meta, which will make a proto. | ||
| particle | yeah, that'll do it | ||
| NotFound | I'm now making a Mysql::Row class, to simplify. | 21:43 | |
| jonathan is very happy to see this starting to work :-) | |||
| particle | that inner while loop can be replaced with a map statement (or many other things) | ||
| jonathan | Will certainly do some more Rakudo stuff in the next couple of weeks than I have in this last week. | 21:44 | |
| NotFound | particle: I left that for you rakudo guys. | ||
| particle | and $row := $r.fetch_row... don't need the colon | ||
| NotFound | I'm just trying to make Mysql to work. | ||
| particle | yes, it's ugly perl 6, but it is valid perl 6 :) | 21:45 | |
| NotFound | The +$row is a valid thing, then? | ||
| particle | yes, but $row.elems is probably more clear | 21:46 | |
| NotFound | Are you sure pmc arrays have that method? | ||
| particle | if you use RPA it will | ||
| NotFound | RPA? | 21:47 | |
| purl | hmmm... RPA is parrot's generic array, you can call push, pop, shift, unshift etc on it. | ||
| particle | ResizablePMCArray | 21:48 | |
| rather than FixedStringArray | |||
| Tene | But should FSA have .elems? | 21:50 | |
| NotFound | I don't see that method in resizablepmcarray.pmc nor in fixedpmcarray.pmc | 21:51 | |
| particle | perl 6 should wrap RPAs as Perl6Arrays | 21:56 | |
| and Perl6Array has .elems | |||
| but RPA does have .elements which it inherits from FPA | 21:57 | ||
| but i hope that's not exposed to perl 6, because it's not valid perl 6 | |||
| PerlJam | Better would be to DBDI to work :) | 21:58 | |
| NotFound | The Mysql $mysql .= new(); gives: Method 'ACCEPTS' not found for invocant of class 'Mysql' | 22:00 | |
| PerlJam | speaking of which ... is anyone working on dbdi? | ||
| NotFound | dbdi? | ||
| PerlJam | ask google, it'll tell you everything you need to know. | 22:01 | |
|
22:26
bacek joined
23:03
tetragon joined
23:56
TiMBuS joined
|
|||