|
Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 18/672 new/open tix | logged in irclog.perlgeek.de/parrot/today Set by moderator on 24 May 2008. |
|||
| tetragon | japhb: Triangle still spins with the newer patch | 00:04 | |
|
00:05
cognominal joined
|
|||
| japhb | tetragon: good! | 00:13 | |
| I have at least one more spin to do for Win32, but again I hope that won't negatively affect any other platform. | 00:14 | ||
| meanwhile, I'm ruminating on some examples that make broader use of the API, now that I can. | |||
| dalek | r27897 | particle++ | trunk: | 00:16 | |
| : [rakudo] [perl #54988] [PATCH] enhance t/harness (again) | |||
| : ~ adds ability call fudge on a per-file basis via --configfudge option | |||
| : ~ fudging (the default) can be disabled with an eol comment matching /\\s+#\\s*pure$/ in t/*.data files | |||
| : ~ enables this behavior for the 'localtest' make target | |||
| : Courtesy Moritz Lenz (moritz++) with minor modifications | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27897 | |||
| particle is amazed at how many spectests run without fudge... committing list soon | 00:26 | ||
|
00:31
Eevee joined
|
|||
| bacek_ | morning... | 00:36 | |
|
00:39
kid51 joined
|
|||
| dalek | r27898 | particle++ | trunk: | 00:42 | |
| : [rakudo] enable per-file fudging in spectest_regression make target | |||
| : ~ thanks to moritz++ for the per-file fudging, we can disable fudge for spectests that are passing without it | |||
| : ~ of 43 passing test files (774 subtests) in spectest_regression, 23 files (225 subtests) pass without fudging! | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27898 | |||
| pmichaud | 23? wow. | ||
| particle | yeah. wow. | ||
| purl | yeah. wow is the only way to describe it. | ||
| bacek_ | pmichaud: it all my fault... But you pick wrong version of 'map'... | 00:45 | |
| pmichaud | feel free to send me an updated patch | ||
| bacek_ | is there any easy way to delete attachement from ticket? | ||
| pmichaud | you can send me the patch directly -- no need to make a new ticket | 00:46 | |
|
00:47
gmansi joined
|
|||
| nopaste | "bacek_" at 211.29.157.151 pasted "List.map for pmichaud" (48 lines) at nopaste.snit.ch/13097 | 00:50 | |
| bacek_ | pmichaud: oops.. | ||
| Wrong merge | |||
| no.. merge is correct, but I think I should use self.'iterator'() now | 00:52 | ||
| pmichaud | oh, I can fix that. | ||
| bacek_ | pmichaud: diff on nopaste :) | 00:53 | |
| this version works with any number of args. | 00:54 | ||
| pmichaud | if elem goto push_elem | 00:55 | |
| looks wrong. | |||
| bacek_ | pmichaud: this is inspired by S29-list/map_empty_list.t | 00:56 | |
| pmichaud | yes, but suppose that elem is Bool::False, '', or 0 | ||
| converting those to undef seems wrong. | |||
| bacek_ | pmichaud: how I should check result in this case? | 00:57 | |
| pmichaud | I don't think you have to check the result at all. | ||
| If the elem is in the list, it should be sent as an argument. | |||
| bacek_ | pmichaud: just a sec. I''l try | 00:58 | |
| pmichaud | in none of the cases in map_empty_list.t is @array empty (afaict) | 00:59 | |
| dalek | r27899 | jkeenan++ | searchdocs: | 01:01 | |
| : Per suggestion by chromatic, switch to qr// from /o in one regex, thereby | |||
| : enabling consolidation of tests into single file. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27899 | |||
| bacek_ | pmichaud: I was wrong... | 01:02 | |
| dalek | r27900 | jkeenan++ | searchdocs: | ||
| : Simplify name of test file; regenerate MANIFEST. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27900 | |||
| bacek_ | It for '(1..2).map({$^a+$^b+$^c)' | ||
| but it works without this 'if elem..' | |||
| pmichaud | correct, because in that case the "unless iter ..." will have taken care of it. | 01:03 | |
| I wonder if we can actually use 'splice' here :-) | |||
| probably not worth trying. | |||
| at least, not yet. | |||
| bacek_ | pmichaud: some times I'm too paranoid :) | ||
| pmichaud | although, implementing push, pop, etc. in terms of splice has some definite advantages. | 01:04 | |
| bacek_ | pmichaud: which? | ||
| purl | which is, like, more recommended IO::File or FileHandle | ||
| pmichaud | splice of multiple elements can be much faster than multiple pushes of a single element | ||
| bacek_ | pmichaud: ok. got the point. | 01:05 | |
| bacek_ voting for implementation of 'colon syntax' in rakudo :) | 01:07 | ||
| pmichaud | hmmm? | ||
| bacek_ | it will make more tests passing | ||
| pmichaud | don't we have colon syntax already? | ||
| bacek_ | pmichaud: 'adverbial closure' | ||
| pmichaud | oh, adverbial closures | ||
| that actually shouldn't be too difficult to create. | 01:08 | ||
| bacek_ | I tried to grok STD.pm... Failed/ | ||
| I'm failed. | |||
| STD.pm? | |||
| purl | STD.pm is svn.pugscode.org/pugs/src/perl6/STD.pm | ||
| dalek | r27901 | jkeenan++ | searchdocs: | 01:09 | |
| : Eliminate commented-out code. Specify exact number of tests in plan. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27901 | |||
| bacek_ | 'token adverbs' referenced only in EXPR. | ||
| As '$here.expect_term()'. | 01:10 | ||
| nopaste | "pmichaud" at 76.183.97.54 pasted "Revised 'map' for List (for bacek)" (41 lines) at nopaste.snit.ch/13098 | ||
| "pmichaud" at 76.183.97.54 pasted "Revised #2 'map' for List (for bacek)" (40 lines) at nopaste.snit.ch/13099 | 01:11 | ||
| bacek_ | pmichaud: why you creates Failure? | ||
| pmichaud | Perl 6 doesn't have an Undef type | 01:12 | |
| (Parrot does, and we used it a fair bit before we had Failure, so there's still a lot of leftover Undefs.) | |||
| bacek_ | Your version failing on is ~(1,2,3,4).map({ $^a + $^b }), "3 7", "map() works with 2-ary functions" | 01:13 | |
| MMD function __add not found for types (102, 102) | |||
| it works with Undef... | |||
| pmichaud | stupid mmd add | 01:14 | |
| bacek_ | pmichaud: agreed :) | ||
| mmd-- | |||
| afk for 5 minutes | 01:15 | ||
| pmichaud | okay, I'll commit with Undef. Any other changes? | ||
| okay, I'll be back in 15 | |||
| bacek_ | pmichaud: not yet. I''l going to add 'sub push' and probably List:zip | 01:21 | |
| kid51 | I have a question about config/gen/makefiles/root.in. There are many statements like this: $(PERL) t/harness $(EXTRA_TEST_ARGS) $(PARROT_ARGS) | 01:27 | |
| I see where $EXTRA_TEST_ARGS is defined -- but I can't determine where $PARROT_ARGS is defined. | 01:28 | ||
| Anyone know? Thanks. | |||
| Infinoid | I don't see it being defined anywhere, either. | 01:34 | |
| maybe it's there to allow the user to intervene? (just a guess) | |||
| pmichaud | I believe it comes from the user's shell environment | 01:42 | |
| dalek | r27902 | jkeenan++ | trunk: | 01:45 | |
| : Add copyright, svn ID tag and coda. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27902 | |||
| bacek_ | pmichaud: it there any place where 'lazy lists' described? | 01:46 | |
| is it just 'smart iterator with closure for unshifting element'? | |||
| dalek | r27903 | jkeenan++ | trunk: | 01:50 | |
| : Set svn keywords and eol-style attributes. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27903 | |||
| pmichaud | bacek_: more than that | ||
| purl | more than that is improper. | ||
| pmichaud | purl, forget more than that | ||
| purl | pmichaud: I forgot more than that | ||
| pmichaud | for example, the range 1..200 doesn't actually create 200 elements | 01:51 | |
| dalek | r27904 | jkeenan++ | trunk: | ||
| : Commit of t/run_code_tests was premature; deleting. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27904 | |||
| bacek_ | pmichaud: yes. Closure will create new element on 'shift' | ||
| 'closure for shifting' | |||
| pmichaud | and if you have my @a = (1..200, 3, @b); then @a isn't actually flat until we try to access the elements | ||
| bacek_ | this is 'lazy flattening', yes? | 01:52 | |
| pmichaud | yes | ||
| but more than just shift can cause flattening | 01:53 | ||
| bacek_ | so we actually have to lazines: for creating elements and for flattening lists | ||
| pmichaud | I don't know if they're two different types... just two different aspects of the same thing perhaps | ||
| bacek_ | keyed_pmc_* should matherialize list | ||
| pmichaud | right | ||
| it's something I've generally saved until later in implementation | 01:54 | ||
| (see ROADMAP) | |||
| bacek_ | deep inside :) | ||
| hmm. Looks like 'multi sub' already implemented | 01:55 | ||
| dalek | r27905 | jkeenan++ | codetests: | 01:59 | |
| : Creating codetests in svn.perl.org/parrot//branches | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27905 | |||
| r27906 | jkeenan++ | codetests-27904: | |||
| : Tagging trunk at r27904 so that the codetests can later be synched to it. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27906 | |||
| r27907 | jkeenan++ | codetests: | 02:04 | ||
| : First draft of program intended to be essence of 'make codetests' (RT 54992). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27907 | |||
|
02:06
japhb joined
|
|||
| dalek | r27908 | jkeenan++ | codetests: | 02:22 | |
| : Create 'codetest' target and add to make's help list. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27908 | |||
| pmichaud | hmmm, I think I just got list assignment working in rakudo. | 02:23 | |
| at least, enough to get my @a = 1; to dtrt | 02:24 | ||
| purl message jonathan we might not need mutables after all. | |||
| purl | Message for jonathan stored. | ||
| bacek_ | jonathan will be disappointed :) | 02:33 | |
| pmichaud | well, we're going to eventually want something like mutables, if only for speed. | ||
| bacek_ | "make it, make it correct, make it fast" :) | 02:34 | |
| btw, I'm going to implement first cut of lazy list. Will it be useful? | 02:35 | ||
| pmichaud | you might want to wait until after the list assignment changes | ||
| bacek_ | pmichaud: how long it will take? | 02:36 | |
| pmichaud | a couple of days. Feel free to prototype some stuff, though. | ||
| bacek_ | pmichaud: ok. | ||
| pmichaud | basically I'm saying I might wait on any submitted patch, or that you may find that what you do now won't work in a week or so. | 02:37 | |
| but the experience of writing it would be helpfu. | |||
| helpful. | |||
| purl | Drop your pants and prepare for boarding. | ||
| pmichaud | purl, forget helpful. | ||
| purl | pmichaud: I forgot helpful | ||
| bacek_ | :)))) | ||
| purl: good bot :) | 02:38 | ||
| purl | :) | ||
| bacek_ | pmichaud: any chances to fix pod_comment in grammar.pg? | 02:39 | |
| pmichaud | yes, it's on my to-do list. | ||
| I guess that's blocking a few spectests. | |||
| bacek_ | as well as 'adverbial closure'... Does adverbs require 'real' EXPR rule? | 02:42 | |
| pmichaud | no, not at all | ||
| adverbial closures are in colonpair, I think | |||
| yes, adverbial closures are handled by the <postcircumfix> option within token colonpair | 02:43 | ||
| then it's just a matter of getting adverbial closures to be recognized in parameter lists | |||
| bacek_ | pmichaud: digging in it | 02:45 | |
| it works (probably incorrectly) with space after colon | 02:47 | ||
| > say ~(1,2,3,4).map: { $^a + $^b } | |||
| 3 7 | |||
| pmichaud | that's not an adverbial closure then | 02:48 | |
| that's calling the map method with a closure as the first argument. | |||
| bacek_ | pmichaud: ok | 02:49 | |
| pmichaud: is there any way to trace paring process? | 02:50 | ||
| parsing | |||
| similar to '%yydebug' | |||
| pmichaud | I'm not familiar with %yydebug, unfortunately. | 02:51 | |
| bacek_ | it just prints current stack of tokens (and few more info) | 02:52 | |
| pmichaud | oh, I could probably come up with a way to do that. | ||
| (not quickly, though.) | |||
| bacek_ | it will be very helpful for debugging grammars. | 02:53 | |
| S02? | 02:54 | ||
| purl | S02 is probably dev.perl.org/perl6/doc/design/syn/S02.html | ||
| dalek | r27909 | tene++ | trunk: | 03:45 | |
| : [cardinal] | |||
| : * to_s() for all classes | |||
| : * clean up get_string() | |||
| : * each() for hashes | |||
| : * minor grammar fix | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27909 | |||
| Tene | I'm impressed with how much of ruby I've been able to easily get working. PCT is really cool. | ||
| Gah. | 03:47 | ||
| Ruby supports calling a nullary function just by naming it. It's syntactically identical to a variable. | 03:48 | ||
| Ew. | |||
| Ruby *also* has no declarations. | |||
| So now I need to move the symbol-table-building from the 'variable' method to the 'assignment' method and replace it with a nullary function lookup instead in the 'variable' call. | 03:49 | ||
| If it's not already in the symtable. | |||
| Debolaz | Tene: And you just discovered this? :) | 03:51 | |
| Tene | Debolaz: I've never made a claim to knowing ruby. | ||
| Debolaz | The variable vs method weirdness of ruby is one of the things that really turns me off about ruby. | ||
| Debolaz just wants consistency. :( | 03:52 | ||
|
04:08
tetragon joined
|
|||
| pmichaud | aiiiiie | 04:18 | |
| bacek_ | pmichaud: what? | ||
| pmichaud | I just saw that a bunch of files in src/classes/*.pir were updated and thought "now who made a bunch of changes to rakudo?!?" | ||
| Debolaz | Yay, krita finally works on win32. No more need for photoshop \\o/ | 04:19 | |
| pmichaud | took me a while to notice that they're in languages/cardinal/ | ||
| bacek_ | pmichaud: :) | ||
| Tene | Heh. | 04:20 | |
| dalek | r27910 | pmichaud++ | trunk: | 04:42 | |
| : [rakudo]: | |||
| : * Refactor the !keyword_* methods out of Object.pir and into | |||
| : src/builtins/guts.pir (as subs). If these really need to | |||
| : be methods, we should probably make them methods of a | |||
| : separate metaclass or of Class or something like that. | |||
| : * All tests and spectest_regression pass, so hopefully I didn't | |||
| : break anything. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27910 | |||
| r27911 | chromatic++ | trunk: | 05:33 | ||
| : [PMC] Removed an unnecessary string_copy from Class PMC when building attribute | |||
| : index. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27911 | |||
| r27912 | pmichaud++ | trunk: | 06:05 | ||
| : [rakudo]: | |||
| : * "make localtest" needs 'all' and 't/spec' as dependencies. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27912 | |||
|
06:07
uniejo joined
|
|||
| dalek | r27913 | pmichaud++ | trunk: | 06:07 | |
| : [rakudo]: | |||
| : * Clean up List '.pairs' method to return Perl6Pairs instead of the | |||
| : outdated Pair PMC. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27913 | |||
|
06:08
AndyA joined
|
|||
| bacek_ | summon pmichaud | 06:25 | |
| dalek | r27914 | chromatic++ | trunk: | ||
| : [OO] Added cache for fully-qualified object attribute access, to make it less | |||
| : expensive to look up object attributes. This speeds up the Rakudo-building | |||
| : benchmark by 7.02%, and might enable further optimizations. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27914 | |||
| pmichaud | pong | ||
| bacek_ | pmichaud: you forgot 'map' :) | 06:26 | |
| pmichaud | oh, I misunderstood something earlier. | 06:27 | |
| you're right, I still need to fix map. | |||
| dalek | r27915 | pmichaud++ | trunk: | ||
| : [rakudo]: | |||
| : * Remove no-longer-used perl6bool.pmc and perl6undef.pmc . | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27915 | 06:28 | ||
| japhb | How do you specify that a PIR sub param should be read/write (or equivalently, in/out)? | ||
| pmichaud | PMC params are always in/out | ||
| japhb | pmichaud: I assumed so, but it's not working for me | ||
| pmichaud | int and num are never in/out | ||
| string depends on what is done to it. :-) | 06:29 | ||
| japhb | nopaste? | ||
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl | ||
| bacek_ | pmichaud: dark magick! :) | 06:30 | |
| nopaste | "japhb" at 76.191.190.8 pasted "PMC param not r/w?" (36 lines) at nopaste.snit.ch/13100 | 06:35 | |
| japhb | That's freehanded, but it's correct in essence | ||
| pmichaud | oh | 06:36 | |
| argv = .... changes the register referenc | |||
| *e | 06:37 | ||
| japhb | So I replaced the container, rather than overwriting its contents? | ||
| pmichaud | i.e., if you do argv = foo() you aren't changing the PMC that argv originally referenced, you're changing the PMC register to reference whatever value comes back from foo() | ||
| correct. | |||
| japhb | bah | ||
| pmichaud | try $P0 = foo(); copy argv, $P0 | ||
| japhb | OK, what's the right way to spell it if I want to overwrite contents? | ||
| hmmm, OK | 06:38 | ||
| pmichaud | which says to replace the contents of argv with the PMC given in $P0 | ||
| japhb | is there sugar for that sequence? | ||
| pmichaud | no. | ||
| 'copy' itself is a relatively new opcode | |||
| japhb | I can see why it's not default though -- the default behavior of the assign is the fast path | 06:39 | |
| It does seem to mean that for the copy case, I have to create a GC'ed temp that I immediately throw away | |||
| pmichaud | well, also because with $P0 = you're really replacing the content of the register, and not of the thing the register points to. | ||
| yes, copy is somewhat inefficient that way. But there's not really a way to tell the function to do its work directly in the target. | 06:40 | ||
| japhb | Right. That's what I was hoping to find when I first asked the question. I have use cases that I know will deal with aggregates large enough that the extra copy will suck. | 06:41 | |
| japhb wants '.param pmc foo :rw' I guess | |||
| pmichaud | well, that still doesn't solve the problem. :-) | ||
| japhb | Or something like that | ||
| pmichaud | because the register is :rw already :-) | ||
| japhb nods and smiles | 06:42 | ||
| pmichaud | what you really want is something like "is ref" | ||
| japhb | yes, exactly. | ||
| tired brain not following each thought to correct completion. :-) | |||
| dalek | r27916 | pmichaud++ | trunk: | 06:43 | |
| : [rakudo]: | |||
| : * Update List .map implementation to respect arity. (bacek++) | |||
| : * Patch courtesy Vasily Chekalkin <bacek@bacek.com> | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27916 | |||
| pmichaud | karma bacek | ||
| purl | bacek has karma of 18 | ||
| bacek_ | pmichaud: not so much :) | 06:44 | |
| diakopter | bacek++++ | ||
| bacek_ | diits too much :) | ||
| diakopter | karma bacek | ||
| purl | bacek has karma of 19 | ||
| bacek_ | oops.. wrong completion | ||
| pmichaud | what's really amusing is that on #perl6, rakudo_svn gives bacek one karma and me three. :-P | 06:46 | |
|
06:47
ejs joined
|
|||
| japhb | pmichaud: The #perl6 svn bots were explicitly designed to encourage more detailed commit messages, weren't they? Hence, a point of karma per line .... | 06:48 | |
| pmichaud | works for me! I tend to do verbose commits. :-) | 06:49 | |
| bacek_ printing 'CLA'... I want more karma too! :) | 06:51 | ||
| japhb | That reminds me, I need to bug the metacommitters again tomorrow, now that chromatic has given me the standard warnings and agreed to be my mentor .... | 06:55 | |
| If a have a PIR sub foo() in namespace ['Foo'], called from a sub bar() in namespace ['Bar'], how can foo() determine the namespace of the caller? | 07:01 | ||
| pmichaud | probably using interpinfo somehow. | ||
| japhb greps source tree looking for likely hits | 07:03 | ||
| bacek_ | t/spec/S29-array/delete........................... Failed 4/18 subtests | 07:09 | |
| On MacOSX Leopard. | |||
| pmichaud | yes, known failure. | ||
| bacek_ | pmichaud: ok | ||
| pmichaud: your hope was wrong? :) | |||
| t/spec/S29-num/int................................ Failed 5/58 subtests | 07:10 | ||
| pmichaud | groups.google.com/group/perl.perl6....2383597eb# | ||
| shorten | pmichaud's url is at xrl.us/bk7nh | ||
| pmichaud | I'm not getting the S29-num/int failures, though. | 07:11 | |
| bacek_ | S29? | 07:12 | |
| purl | S29 is probably svn.pugscode.org/pugs/docs/Perl6/Sp...ctions.pod | ||
| bacek_ | Deleted elements at | ||
| the end of an Array shorten the length of the Array | |||
| pmichaud: your version is correct | |||
| bacek_ doing svn up/realclean/make for catchin int.t failure | 07:13 | ||
| not ok 11 - int(-0.999) is -0 | 07:18 | ||
| I've got '0'... | 07:19 | ||
| pmichaud | I think it was discussed on #perl6 that -0 was really 0 in ints | 07:20 | |
| anyway, it's worth a ticket or a message to perl6-compiler | |||
| $ ./parrot perl6.pbc | 07:21 | ||
| > my @a = 1; say @a.perl; | |||
| [1] | |||
| > # works! | |||
| > | |||
| bacek_ | pmichaud: Ho! | ||
| ship it! :) | |||
| pmichaud | still a couple of things to fix. | 07:22 | |
| bacek_ | pmichaud: can you show result of @a.push([])? | 07:23 | |
| pmichaud | I don't have [] implemented yet. | ||
| bacek_ | and @a.WHAT() :) | ||
| pmichaud | > my @a = 1; say @a.WHAT; | ||
| Array | |||
| (I'm working on [] right now.) | |||
| bacek_ | pmichaud++! | ||
|
07:38
AndyA joined
|
|||
| pmichaud | > my @a; @a.push([]); say @a.perl; | 07:40 | |
| [[]] | |||
| bacek_ | pmichaud: wow! | 07:43 | |
| japhb | pmichaud: found out how to get namespace of caller: '$P0 = getinterp; $P1 = $P0["namespace"; 1]' | 07:45 | |
| It took me a while to figure out that interpinfo isn't what you want, it's the interpreter itself that you get that info from. | |||
| moritz | pmichaud: I'd emit that as [[,],] like pugs does, it's easier to parse for a human | 07:46 | |
| pmichaud | running spectest_regression now. | 07:47 | |
| bacek_ | pmichaud: can you please patch Test.pm? It uses 'eq' in 'is'. Better to use ($got cmp $expected) == 0; | 07:49 | |
| pmichaud | cmp is sometimes broken. | ||
| bacek_ | but (0 eq -0) is false | ||
| this causes failures in S29-num/int.t | 07:50 | ||
| pmichaud | try changing it and let me know if spectest_regression passes :-) | ||
| bacek_ | pmichaud: in progress | ||
|
07:51
ejs joined
|
|||
| bacek_ | pmichaud: it failing... | 07:52 | |
| @a cmp @b doesn't work.. | |||
| pmichaud | probably haven't implemented @a cmp @b yet. | ||
| bacek_ | mmd-- | 07:53 | |
| why program aborted in mmd when operator not found? | 07:54 | ||
| pmichaud | because "cmp" doesn't know how to compare two Arrays | 07:55 | |
| bacek_ | t/spec/S29-array/delete.t (Wstat: 0 Tests: 18 Failed: 4) | ||
| Failed tests: 5-6, 11-12 | |||
| Files=43, Tests=774, 80 wallclock secs ( 0.17 usr 0.13 sys + 75.43 cusr 3.63 csys = 79.36 CPU) | |||
| pmichaud | Parrot's MMD opcodes aren't always very smart. | ||
|
08:06
AndyA joined
|
|||
| dalek | r27917 | pmichaud++ | trunk: | 08:07 | |
| : [rakudo]: | |||
| : * First pass at implementing Array types. | |||
| : * my @a = 1; now works properly. | |||
| : * Also understands [] versus (), mostly. | |||
| : * Still some list context issues to be addressed in parameters. | 08:08 | ||
| : * Resolves RT#52276. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27917 | |||
| pmichaud | now sleep, then breakfast, then Hash and hash composers. | ||
| japhb | pmichaud++ | ||
| moritz | is ther a svn commit-hook that m/(resolves|closes) (RT)?#\\d{5}/ automatically closes a ticket? | 08:10 | |
| bacek_ | pmichaud: my $test = ($got eq $expected) || (($got cmp $expected) == 0); | 08:16 | |
| this is version from Test.pm that actually works | |||
| pmichaud++ # for r27917 | |||
|
08:34
AndyA joined
|
|||
| nopaste | "masak" at 130.243.202.176 pasted "This program used to work, doesn't anymore" (11 lines) at nopaste.snit.ch/13102 | 09:05 | |
| "bacek" at 211.29.157.151 pasted "New version of List.map for pmichaud (with Arrayref support)" (49 lines) at nopaste.snit.ch/13103 | |||
|
09:05
masak joined
|
|||
| masak | maybe it's a known regression | 09:05 | |
| but I thought I'd tell you | |||
| bacek_ | masak: make clean; make | ||
| masak | will do | ||
| bacek_ | masak: will help | 09:06 | |
| masak | glad to hear it | ||
| why is this needed sometimes? | |||
| moritz | without the 'make clean' the basic tests bail out | ||
| bacek_ | see everyone in couple of hours. Time to go home | ||
| masak | see you | ||
| bacek_ | masak: internal refactoring. | ||
| moritz | masak: probably a missing dependency in Makefile | ||
| purl | internal refactoring is pretty significant, even if it's backwards compatible. | ||
| masak | make now tells me "make: *** No rule to make target `src/call_list.txt', needed by `src/nci.c'. Stop." | 09:07 | |
| at least before it built :P | 09:08 | ||
| bacek_ | make veryclean; perl COnfigure.PL; make | ||
| moritz | make realclean | ||
| purl | make realclean is sometimes need in parrot to work against missing dependencies | ||
| japhb | masak: Until my patch is accepted, you need make realclean instead of make clean | ||
| masak | ah | ||
| japhb | As soon as my patch is committed, that bogosity will go away | ||
| moritz | masak: 'make clean' in the rakudo dir would have been enough (in this case) | ||
| masak | moritz: you're telling me this now :) | 09:09 | |
| I'm running on battery here :P | |||
|
09:11
AndyA joined
09:16
ank joined
|
|||
| nopaste | "masak" at 130.243.202.176 pasted "Nope, still error" (16 lines) at nopaste.snit.ch/13104 | 09:17 | |
| masak | I have made realclean in the parrot dir | ||
| and perl6 in the rakudo dir | |||
| it's another error now, mind you | |||
|
09:17
ejs joined
09:44
Zaba_ joined
|
|||
| japhb | masak: what error? | 10:04 | |
| purl | japhb: Directory not empty | ||
| moritz | japhb: see the nopaste | ||
| japhb | ah. | 10:05 | |
| That one's outside my area of expertise. :-) | |||
|
10:17
TonyC joined,
nopaste joined
|
|||
| bacek | its a typo in src/classes/IO.pir | 10:45 | |
| but masak already left.. | |||
| moritz | bacek: send patch ;-) | 10:46 | |
| bacek | moritz, already... But its very stupid typo... | ||
| s/I0/IO/... | 10:48 | ||
|
10:51
Zaba joined
11:14
rdice joined
11:19
UltraDM joined
|
|||
| bacek | karma bacek | 11:20 | |
| purl | bacek has karma of 19 | ||
| bacek promise sign CLA on reach karma 100 :) | |||
| moritz signed and sent off CLA on tuesday | 11:21 | ||
|
11:30
braceta joined
|
|||
| bacek | karma moritz | 11:41 | |
| purl | moritz has karma of 34 | ||
| bacek | moritz, it's too early, isn't it? :) | 11:42 | |
| O! | |||
| summon pmichaud | |||
| moritz | bacek: the karma >= 100 rule either doesn't apply for me, or includes #perl6 karma | ||
| pmichaud | pong | ||
| bacek | pmichaud, there is small typo in src/classes/IO.pir | 11:43 | |
| I0 instead of IO | |||
| (good to have font with crossed 0) | |||
| pmichaud | my font has dotted 0 | ||
| bacek | line 23 and #55032 | 11:44 | |
| pmichaud, maybe it's jonathan :) | |||
| pmichaud | no, I'm pretty sure it was me. | ||
| bacek | and I revorked map once again | ||
| pmichaud, Yes! Its all your fault! :) | 11:45 | ||
| dalek | r27918 | pmichaud++ | trunk: | ||
| : [rakudo]: | |||
| : * Fix typo in IO.pir (RT#55032, bacek++). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27918 | |||
| bacek | nopaste.snit.ch/13103 reworked map with handling arrayref properly | 11:46 | |
| thanks for commit | |||
| pmichaud | map shouldn't have to do anything special for arrayref, I don't think | 11:47 | |
| bacek | S29-list/map_empty_list.t | ||
| arrayref pushed as-is. List is flatten | |||
| pmichaud | right, there's a problem with () in function calls at the moment. | 11:48 | |
| i.e., if we try to fix map this way, we'll have to do it for grep and all of the others too | 11:49 | ||
| bacek | pmichaud, oh. | ||
| maybe fix push? | |||
| pmichaud | yes, push is broken. | ||
| bacek | I'll check it | ||
| pmichaud | push @array, (); should probably leave @array unchanged. | 11:50 | |
| (at the moment I don't think it does) | |||
| bacek | and I'll check it too | 11:51 | |
| pmichaud, you right. I'll change push instead of map | 11:52 | ||
| and sub 'list' too. Looks like it should just create List and call list.'push'() | 11:53 | ||
| push(args) | |||
| bacek running spectest_regression | 11:58 | ||
| pmichaud | no, sub 'list' is the thing that does the flattening. | 12:09 | |
| nopaste | "bacek" at 202.7.166.180 pasted "Refactored List.push and 'list' for pmichaud" (80 lines) at nopaste.snit.ch/13108 | ||
| pmichaud | backwards. :-) | 12:10 | |
| bacek | pmichaud, :) | ||
| pmichaud | List.push should call 'list' | ||
| bacek | what the difference? | ||
| purl | i heard the difference was irrelevant at the stage where language acquisition is not a conscious decision. | ||
| pmichaud | the difference is that there are other functions that call 'list' to do the flattening. It makes more sense for 'list' to do it. | 12:11 | |
| bacek | it is not visible from 'outside'. List will be flat | ||
| pmichaud | I don't see why 'push' should be responsible for flattening. | 12:12 | |
| as opposed to 'unshift' or some other function. | |||
| but it makes sense for 'list' to be the flatterer | |||
| (because that's what 'list' does -- it imposes list context on its arguments.) | 12:13 | ||
| bacek | pmichaud, then we need some common function for flattening list | ||
|
12:13
bacek left,
bacek joined
|
|||
| bacek | like '!list(@target, args)' | 12:14 | |
| to avoid useless copying of created list | |||
| maybe '!pushflat' is better name | 12:15 | ||
| pmichaud, ? | 12:18 | ||
| purl | i think pmichaud, is there an NQP test suitable for profiling? | ||
| pmichaud | 'list' is the common function for flattening a list. | 12:19 | |
|
12:19
Zaba_ joined
|
|||
| bacek | pmichaud, but it creates new list. | 12:20 | |
| so, using it in 'push' is sub-optimal | |||
| pmichaud | it's likely not going to matter when we do lazy lists anyway | ||
| bacek | flattening is not lazy :) | 12:21 | |
| pmichaud | it can be | ||
| moritz | bacek: premature optimization is the root of all evil ;) | ||
| bacek | moritz, Donald? You? I can't believe! | 12:22 | |
| pmichaud, hmm... | |||
| moritz | bacek: then don't. I'm used to ignorancy ;) | ||
| nopaste | "pmichaud" at 76.183.97.54 pasted "my version of 'push'" (6 lines) at nopaste.snit.ch/13109 | ||
| pmichaud | oops | 12:23 | |
| nopaste | "pmichaud" at 76.183.97.54 pasted "my version of 'push' #2" (6 lines) at nopaste.snit.ch/13110 | ||
| moritz | why does it return self.elems? | 12:24 | |
| ah wait, probably specced this way ;) | |||
| bacek | pmichaud, this approach will not work in 'map { 1 }, @list' | ||
| pmichaud | why not? | 12:25 | |
| bacek | because 'mapres' is not array (in common case) | ||
| pmichaud | that's not a problem. *args* is an array. | ||
| (always) | |||
| (because of :slurpy) | |||
| bacek | but mapres is not! :) | 12:26 | |
| wait a sec | |||
| i'm too stupid at this period of day. | 12:27 | ||
| pmichaud | > my @a = <a b c d>; say (map { 1 }, @a).perl; | ||
| [1, 1, 1, 1] | |||
| looks like it works to me. :-) | |||
| bacek | pmichaud, you right | ||
| pmichaud | but it does need flattening. | ||
| so.... | |||
| maybe I'll put flattening into the .list method | 12:29 | ||
| bacek | pmichaud, it's aready there AFAIU | 12:30 | |
| pmichaud | .list method, not list sub | ||
| bacek | so, factor common flattening into private sub :) | 12:32 | |
| pmichaud | I think I may just implement laziness. :-) | 12:33 | |
| bacek rekon Munchkin's "Take me, take me" card :) | 12:34 | ||
| pmichaud, I already start working on lay list :) | |||
| lazy | |||
|
12:35
Whiteknight joined
12:37
Whiteknight joined
12:45
tetragon joined
12:54
AndyA joined
|
|||
| pmichaud ponders making List into a PMC | 13:01 | ||
| moritz | why? performance? | 13:02 | |
| pmichaud | yes | ||
| moritz | did you benchmark/profile it? | ||
| pmichaud | well, in some ways it's also cleaner as PMC (in C) than in PIR. | 13:03 | |
|
13:06
gryphon joined
|
|||
| moritz | pmichaud: nopaste.snit.ch/13111 | 13:09 | |
| pmichaud | I was also wondering if that should be :pure instead of #pure | 13:10 | |
| moritz | pmichaud: that was broken by introducing the #pure flag | ||
| pmichaud | or even :fudge and :!fudge | ||
| moritz | shouldn't be too hard to change | ||
| pmichaud | as long as we have a colon syntax for flags, we might as well use it :-) | ||
| moritz | I thought # is far more unlikly in a file name than : and whitespaces | 13:11 | |
| pmichaud | yes, but I doubt a file would have a leading colon. At any rate, we know that spectest files will never have colons. | ||
| it was just a thought. :-) | 13:12 | ||
| moritz | unless we test for executability with weird filenames | ||
| pmichaud | I'd still expect that test to be in a file with a normal filename :-) | ||
| moritz | ok, you're probably right | 13:13 | |
| btw we have plenty of new spectests passing | |||
| pmichaud | I bet, since my @a = 1; is working. | ||
|
13:13
rdice joined
|
|||
| moritz | plenty being 6 ;-) | 13:14 | |
| pmichaud | I should have hash composers working soon also. | ||
|
13:19
iblechbot joined
13:25
AndyA joined
13:32
ejs_ joined
13:33
Juerd joined,
jonathan joined
13:34
dalek joined,
nopaste joined
13:35
leo joined,
wolverian joined
13:36
AndyA joined
13:38
PerlJam joined,
pmichaud joined
13:47
AndyA joined
13:58
AndyA joined
14:03
Whiteknight joined
|
|||
| dalek | r27919 | Whiteknight++ | gsoc_pdd09: | 14:07 | |
| : [gsoc_pdd09] merging from trunk r27918 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27919 | |||
|
14:10
jhorwitz joined
14:15
Zaba joined
14:22
IllvilJa joined
14:24
masak joined
14:25
Theory joined
|
|||
| masak | bacek: I saw you found the cause of my bug -- thx | 14:27 | |
| bacek++ | |||
| dalek | r27920 | Whiteknight++ | gsoc_pdd09: | 14:48 | |
| : [gsoc_pdd09] updating GC datastructures. Borrowed some from the current GC_GMS | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27920 | |||
| NotFound | DietCoke: Looks like you've losed your patience with hcf ;) | 15:02 | |
| DietCoke | japhb, what is your RT id? | 15:06 | |
| (have you gone through the steps in metacommitter.pod?) | 15:07 | ||
| (easier to parse for a human) I respectfully disagree. | |||
| (easier to parse) that's [[,]] (with commas, anyway) vs. [[]] | 15:10 | ||
| was probably [[,],] ; I find that confusing. | 15:20 | ||
|
15:20
AndyA joined
|
|||
| NotFound | DietCoke: have you looked at #55012? Is the issue we talked about yesterday. | 15:21 | |
|
15:31
AndyA joined
|
|||
| DietCoke | NotFound: looks good. replied, claimed the ticket, asked for comments, set a deadline. | 15:32 | |
| NotFound | DietCoke: about hcf, will be a solution to replace the 0 adrres dereferecing by an abort? It will preserve the educational value (if any). | 15:35 | |
| particle | i propose we keep hcf and remove the tests | 15:40 | |
| DietCoke | What is the purpose of keeping the op? | ||
| If it's merely a teaching tool (it serves NO useful functional purpose), then we can do that in documentation. | |||
| particle | afaik we're the only vm or hardware chip with that instruction | ||
| like bxand | 15:41 | ||
| it's a unique, silly part of parrot | |||
| DietCoke | also useless. | 15:42 | |
| NotFound | You mean, like some directors put an error on purpose in his films, just to distract the bug catchers ;) | ||
| The problem is that our bug catchers are the testers. | 15:43 | ||
| DietCoke | I certainly agree the tests must go. | ||
| we have concensus there. | |||
| we can debate the opcode itself. | |||
| szbalint | 5 | 15:44 | |
| err nm | |||
| particle | no problem, szbalint, i forgot all about 5 :) | ||
| NotFound | 5? | ||
| purl | 5 is right out | ||
| szbalint | purl: 5 is what you get when you forgot to specify /win in front of it | 15:45 | |
| purl | szbalint: no idea | ||
| particle has many failing rakudo tests today | |||
| szbalint | purl: 5 is the number you get when you forgot to specify /win in front of it | 15:46 | |
| purl | ...but 5 is right out... | ||
| szbalint | purl: 5 is also the number you get when you forgot to specify /win in front of it | ||
| purl | okay, szbalint. | ||
| pmichaud | iwbni "make localtest" could accept the t/spec/ in front of test names | 15:47 | |
| that way I could simply copy/paste the summary results of "make spectest_regression" into localtest.data | 15:48 | ||
| particle | pmichaud: i'm 3s behind you :) | ||
| i was just about to write the same thing | |||
| DietCoke woots at his latest blog entry. | 15:49 | ||
| particle | DietCoke: congrats on the 50% goal | ||
| pmichaud | particle: did you see that i got my @a = 1; to work? :-) | 15:50 | |
| DietCoke | pmichaud++ | ||
| pmichaud | hash composers are coming next, as soon as I refactor a few more List/Array things | 15:51 | |
| particle | pmichaud: i saw it here, and tried spectest_regression and got a bunch of failures | ||
| pmichaud | you may need to do a top-level update and rebuild | 15:52 | |
| particle | i took the failed test names and stuck them in localtest.data | ||
| then got errors during make localtest | |||
| just as you were writing the above | |||
| i did rebuild parrot, but not make clean | |||
| pmichaud | the makefile is substantially different. | 15:53 | |
| particle | the parrot makefile? | 15:55 | |
| pmichaud | rakudo's | ||
| particle | ok, i did make Makefile | ||
| anyway, i'll rebuild, after i commit this patch to t/harness for leading t/spec/ in localtest | 15:56 | ||
| dalek | r27921 | particle++ | trunk: | 15:58 | |
| : [rakudo] allow leading 't/spec/' path in filenames specified in test list data files | |||
| particle | there. rebuilding now | ||
| dalek | diff: www.parrotvm.org/svn/parrot/revision?rev=27921 | ||
|
16:07
Zaba_ joined
16:10
Theory joined
|
|||
| pmichaud | particle: any luck yet? | 16:20 | |
| I'm going to commit my current set of (fairly significant) changes now, even though it causes spectest_regression to fail two tests. | 16:21 | ||
| particle | i'm running spectest_regression now | ||
| pmichaud | one failure I think is due to an error in the test itself. | ||
| particle | go ahead and commit, i don't have any local mods atm | ||
| pmichaud | I haven't had a chance to look at the second, but I need lunch. | ||
| dalek | r27922 | pmichaud++ | trunk: | 16:24 | |
| : [rakudo]: | |||
| : More major refactorings to Array and List. This moves many of the | |||
| : array methods out of List and into Array (per S29). It also | |||
| : causes a couple of spectest_regression tests to fail; I think | |||
| : it's due to errors in the tests and I'm seeking clarification. | |||
| : But I didn't want to hold off on the commit, so that others can | |||
| : be testing also. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27922 | |||
| NotFound | What is the reason to have -Wno-unused in the gcc default flags? | 16:25 | |
|
16:52
sjansen joined
|
|||
| moritz | I don't know, but the unused warnings only work if the build is optimized | 16:53 | |
| so maybe there should be no warnings during an optimized build that aren't there otherwise | 16:54 | ||
|
16:54
jjore joined
|
|||
| particle | pmichaud: realclean & rebuild seems to have cleared up my test failures | 16:58 | |
| moritz | should 'make testtest' work? | 17:04 | |
| NotFound | Well, it's not very important, I can enable the desired ones with -Wunused-specific | 17:06 | |
| particle | moritz: testtest has known failures | 17:07 | |
| moritz | particle: ok, thanks | ||
| particle | it was intended to get pugs' Test.pm working, but i think we've backed away from that goal | 17:08 | |
| might make sense to remove testtest and 02-test | |||
| moritz | aye | ||
| Whiteknight | what does the hcf opcode do anyway? | 17:16 | |
| particle | en.wikipedia.org/wiki/Halt_and_Catch_Fire | ||
| Whiteknight | okay, thanks | 17:17 | |
| cizra | Deja Vu -- I was just reading about HCF | 17:18 | |
| Hm, wait, that's not deja vu | 17:19 | ||
| pmichaud | S29? | 17:22 | |
| purl | i guess S29 is svn.pugscode.org/pugs/docs/Perl6/Sp...ctions.pod | ||
| moritz | > my @a = (4, 5, 3, 2, 5, 1); say sort @a | 17:26 | |
| (one empty line of output) | |||
| pmichaud | yes, about to look at that. I'm writing up a message about List.kv to p6c now. | ||
| moritz | S29 lists only Array.kv | 17:27 | |
| pmichaud | yes, but t/S29-array/kv.t shows it being used on a List. | 17:28 | |
| message sent. | |||
| purl | Sorry, I've never seen sent before. | ||
|
17:37
Sartak left
|
|||
| DietCoke | message purl purl, you're a dolt. | 17:48 | |
| purl | Message for purl stored. | ||
| DietCoke | seen chromatic? | 17:50 | |
| purl | chromatic was last seen on #parrot 1 day and 17 hours ago, saying: It'll be a PMC. [May 27 17:24:52 2008] | ||
| DietCoke | summon chroamtic | ||
| summon chromatic | |||
| DietCoke wonders if that really does anything. =-) | |||
| Whiteknight | probably not, but it would be nice | 17:51 | |
| DietCoke | I would be perfectly happy to get an email when that happens. | ||
| NotFound | We can create the opcode da. | ||
| chromatic | *poof* what do you need? | ||
| NotFound | Do Anything. | ||
| DietCoke | ... make tcl go 300 times faster. | ||
| Infinoid | ...before lunchtime | 17:52 | |
| dalek | r27923 | particle++ | trunk: | ||
| : [rakudo] tell update_passing_test_data utility to ignore end-of-line comments in test data files | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27923 | |||
| particle | oops, forgot moritz++ | ||
| pmichaud | (make localtest)++ | 17:53 | |
| particle++ moritz++ # very handy | |||
| particle | yay. i need to blog about it, but i gotta remember my rakudo.org pw | ||
| eh, i'll just use.perl it | |||
| pmichaud | I have so much to blog about today. :-( | ||
| particle wonders if mk_language_shell.pl takes names with [] in them | 17:54 | ||
| pmichaud | I wouldn't bet on it. | ||
| Whiteknight | you dont like blogging? I love blogging. gives me a chance to collect my thoughts and get them straight | ||
| NotFound | That freature must be in mk_esotheric_language. | 17:55 | |
| dalek | r27924 | pmichaud++ | trunk: | ||
| : [rakudo]: | |||
| : * Fix sort() to look for a block argument (moritz++) | |||
| particle | i'd like to call my tiny turing-complete language pearl[sic] | ||
| dalek | : * Resolves one more spectest_regression item. | ||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27924 | |||
| pmichaud | I like to blog, but I usually have too much to write about. | ||
| NotFound | particle: that proves my point. | ||
| Whiteknight | pmichaud, when that happens to me, i open a new blog! | ||
| pmichaud | oh, speaking of which.... | ||
| DietCoke | please don't make a directory with brackets in it in the repo. | 17:56 | |
| pmichaud | www.pmichaud.com/sandbox/post3.txt # soliciting comments for improvement before posting | ||
| particle | coke: i won't | ||
| NotFound | Next step will be to add a whitespace implementation called " " | ||
| pmichaud | it should obviously be called ttcl anyway :-) | 17:57 | |
| DietCoke | rotfl. | ||
| poor partcl. It's soooo slow. :| | |||
| pmichaud | rakudo is catching up to it :-) | ||
| DietCoke | in terms of... functionality? | 17:58 | |
| only took you 7 years! =-) | |||
| I hope to find a week or three to refactor the heck out of it. :| | 17:59 | ||
| pmichaud: your article looks strangely familiar. | |||
| did you already post a sample of it for us to read? | |||
| pmichaud | in terms of .... slowness. :-) | 18:00 | |
| NotFound | Are the macro TO_UNICODE and the to_unicode functions in charset supposed to be used for something? Actually, they are unused. | ||
| DietCoke | AH! | ||
| pmichaud: well in that case you've caught up quick! I had to write all that slowness in special! =-) | |||
| pmichaud | I did post3.txt to the channel once before, and got feedback from DietCoke I think | ||
| DietCoke | (last I checked i was... what, hundreds or thousands of time slower than tcl in realworld examples. | ||
| pmichaud | but hadn't heard from anyone else. I'm curious if the post will make any sense to a use.perl or parrotblog reader | 18:01 | |
| NotFound | DietCoke: fix the real world. | ||
| Whiteknight | it's making good sense to me | ||
| pmichaud | when Paula read it, she wanted to know why this was important/useful | ||
| PerlJam | pm: It's making sense to me, though I have a couple of random questions I think | ||
| DietCoke | It was one of the more coherent things I've read from rakudo development, if that helps. =-) | ||
| I would like you to use '' instead of "" where you can, but that's just my OCD. | 18:02 | ||
|
18:02
ejs joined
|
|||
| PerlJam | pm: What's the purpose of this article? | 18:03 | |
| pmichaud | just to say "hey, here's a new P6Object library and a bit about how it works" | ||
| also maybe to explain a bit about how protoobjects and metaclasses work in perl 6 | 18:04 | ||
| DietCoke | pmichaud: does implementing your own object system instead of using parrots kill your ability to use MMD? | ||
| pmichaud | also particle asked how it worked, so we decided a blog post would be more appropriate than me simply telling him. | ||
| DietCoke: no, the object system is actually layered pretty cleanly on top of parrots | 18:05 | ||
| purl | okay, pmichaud. | ||
| PerlJam | pm: One of the things that always seems underexplained is the linkage between classes named "Dog" and the "Dog" namespace for instance. (Though I don't know that there's more you can say about it :) | ||
| DietCoke | but if you say "my parent is Foo", but parrot thinks your parent is "Perl6Object", how do you get MMD to work there? | ||
| pmichaud | well, if you say "my parent is Foo" then there has to be a Foo somewhere. :-) | 18:06 | |
| DietCoke | (even if you do have an actual parrot class of Foo; if MMD is based on parrot's child/parent relationships..." | ||
| I'm not saying you have to answer that in this article, but it's something that could probably stand another blog post. =-) | |||
| pmichaud | especially since I just did that in the Array stuff I just added to Rakudo :-) | ||
| PerlJam | pm: in your example p6meta.'new_class'('Dog', 'attr'=>'legs tail'), what are the rules for parsing the attr parameter? | ||
| pmichaud | pj: separated by spaces | 18:07 | |
| PerlJam | but not tabs? | ||
| pmichaud | correct. | ||
| PerlJam | and 'legs tail' is just as good as 'legs tail' ? | ||
| pmichaud | yes. | ||
| PerlJam | and that string is fully unicode? | 18:08 | |
| pmichaud | yes. | ||
| and if you need an attribute with a space in it, then you send 'attr' an array instead of a string. | |||
| (the string is just a shortcut to avoid having to create arrays all over the place) | 18:09 | ||
| DietCoke: to answer your earlier question -- if you create a class with one parrot name but aliased to a different P6object name, then yes, MMD currently has to continue to use the Parrot names. But it does work. | 18:10 | ||
| and we'll undoubtedly find some way to easily map a P6object name into its Parrot name. | |||
|
18:11
braceta joined
|
|||
| DietCoke | pmichaud: my point there is not the specific names, but the search up through the object hierarchy. | 18:11 | |
| s/object/class/ | 18:12 | ||
| pmichaud | well, for "my parent is Foo", one of two situations will occur | ||
| either Foo is already a subclass of Perl6Object, in which case MMD will know that 'Foo' takes priority over 'Perl6Object' | 18:13 | ||
| otherwise 'Foo' is not a subclass of Perl6Object, but it will be listed first in the list of parent classes (and so 'Foo' would again take priority over anything else) | |||
| PerlJam | I haven't kept up too well with recent changes, so I think I don't understand get_hll_global exactly. What's its relationship with .HLL ? | 18:14 | |
| pmichaud | get_hll_global grabs things relative to the HLL namespace root | ||
| as opposed to get_global, which grabs things relative to the current namespace | |||
| and get_root_global, which grabs things relative to the root of all namespaces | |||
| PerlJam | so, if you don't define a HLL root namespace ... ? | 18:15 | |
| pmichaud | then your'e in parrot's HLL root. | ||
| i.e., ['parrot'] from the root namespace | |||
| DietCoke | pmichaud: I will nopaste something show my confusion. | 18:16 | |
| pmichaud | yes, this does mean that P6object will have to evolve to be aware of the hll of its callers. | ||
| DietCoke | let me rephrase slightly first. | 18:17 | |
| if you say, in class Bar, "My parent is foo" using the P6O system.... what is your parrot parent? | 18:18 | ||
| is it P6O or foo? | |||
| NotFound | All test pass with the TO_UNICODE stuff deleted. | ||
| pmichaud | depends on foo | ||
| if foo is a subclass of P6O, then bar has one parent (foo) | |||
| if foo is not a subclass of P6O, then bar has two parents (foo and P6o) | |||
| DietCoke | ok. my confusion is resolved. | 18:19 | |
| I thought it was -always- just p6o. | |||
| pmichaud | nope. | ||
| parent really does mean "make foo my parent" | |||
| it even goes so far as to simulate the same with PMCs | |||
| for example, if I register RPA with a parent of "List", then all of List's methods get installed into the RPA class | 18:20 | ||
| DietCoke | hurm. -that- sounds tricky as far as MMD goes. | ||
| pmichaud | I obviously can't make List a parent of RPA (because it's a PMC class), but everything else in P6o will work to make it look as though RPA is really a List. Even to the point of having the '.isa' method report true for RPA.'isa'(List) | 18:21 | |
| DietCoke | or are you actually re-parenting at the parrot level there too? | ||
| pmichaud | correct, that won't work with MMD | ||
| DietCoke | ok. | ||
| AHA! | |||
| pmichaud | :-) | ||
| PerlJam | pm: you have a | ||
| DietCoke | ^_^ | ||
| pmichaud | that's really intended simply for whenever a language happens to get hold of a Parrot native object and wants to do something reasonable with it. | ||
| PerlJam | pm: you have a 'Hash' that should be 'MyHash' towards the end of the doc | ||
| pm: and "subclss" probably wants an "a" :) | 18:22 | ||
| pmichaud | found the missing 'a' | ||
| which Hash should be MyHash ? | |||
| PerlJam | | event_id | | ||
| oops | |||
| myhashproto = get_hll_global 'Hash' # n'est pas? | |||
| pmichaud | you're correct. | 18:23 | |
| in actual code I don't even do that, since 'new_class' and 'register' always return the protoobject :-) | |||
| PerlJam | ah, that's good to know. I was just thinking "I wonder if there's an easier way" | 18:24 | |
| pmichaud | I thought about putting that into the text also but couldn't find a clean place to do it. | ||
| and in general it's more important to know where to find the protoobject. | |||
| PerlJam | anyway, very clear. I feel like I could put some of this into practice (if I weren't working a horrid php app right now) | 18:25 | |
| My only critique would be "needs a better ending" :) | 18:26 | ||
| Whiteknight | ditto that | ||
| pmichaud | I got tired at the end. | 18:27 | |
| PerlJam | oh, one of the things that makes me uncomfortable is the idea that p6meta.'new_class'('NQP::Grammar::Actions') -> $P0 = get_hll_global ['NQP';'Grammar'], 'Actions' | 18:29 | |
| but, as you say, in practice you just use the return value anyway | 18:30 | ||
| pmichaud | it also works if the first argument to new_class is an array | ||
| $P0 = split '::', 'NQP::Grammar::Actions' | |||
| p6meta.'new_class'($P0) | |||
| it's just that we often have a colon separate string, and continually writing those 'split's gets old pretty quick. | 18:31 | ||
| eventually even the resulting class will be ['NQP';'Grammar';'Actions'] and not ['NQP::Grammar::Actions'] | 18:32 | ||
| just haven't made that switch yet. | |||
| particle | hrmm | ||
| pmichaud | (which is also why I don't talk about that in the article) | ||
| okay, I'll put a cleaner conclusion on it and post it. | 18:34 | ||
| thanks everyone for the comments | |||
| PerlJam | pm: maybe you could put a small, complete example at the end. | ||
| pmichaud | sure, that works. | 18:35 | |
| dalek | r27925 | pmichaud++ | trunk: | 18:38 | |
| : [rakudo]: | |||
| : * Clean up .perl for Pair objects, pair composer. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27925 | |||
|
18:40
Andy left,
Andy joined
18:50
Casan joined
18:59
Theory joined
|
|||
| dalek | r27926 | pmichaud++ | trunk: | 19:02 | |
| : [rakudo]: | |||
| : * Move .keys, .kv, .pairs, .values back into List class (TimToady++). | |||
| : * All spectest_regression tests pass again. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27926 | |||
|
19:18
barney joined
19:24
AndyA joined
|
|||
| DietCoke stares at spinclad. | 19:56 | ||
| confound | no idea | 20:03 | |
| japhb | DietCoke: yes, I've done my part of metacommitter.pod -- for simplicity I created a 'japhb' persona for both Parrot's SVN and RT. | 20:07 | |
| (might as well use what everyone knows me as) | |||
| DietCoke | momentito. | 20:09 | |
| japhb | thanks. | ||
| DietCoke | just to verify, please login and tell me what it says in the "logged in as". =-) | ||
| (to rt) | 20:10 | ||
| (upper RHS) | |||
|
20:11
Zaba joined
|
|||
| japhb | hold | 20:11 | |
| *chuckle* -- I just tried to cut and paste between the browser on my desktop and the IRC on my laptop. | 20:12 | ||
| It says "Logged in as japhb" | |||
| DietCoke | ok. try to update CREDITS or something. ^_^ | 20:13 | |
| we haven't seen vsoni in ages. | |||
| japhb | vsoni? | 20:14 | |
| purl | vsoni is new to parrot and would like to start contributing | ||
| DietCoke | he predates you by several years. | ||
| japhb | Well, on this project. :-) | ||
| DietCoke | Just saw his name on the list I just added you to. | ||
|
20:15
braceta joined
|
|||
| NotFound | Pod syntax check fails in: languages/perl6/src/classes/Array.pir | 20:15 | |
| pmichaud | okay, I'll fix it. | 20:16 | |
| I'm about to commit a fairly significant change. | |||
| NotFound | pmichaud: I can wait ;) | ||
| japhb pulls a clean svn co, since I'll need it for the metadata commits anyway. | 20:17 | ||
| NotFound | Someone familiarized with Configure.pl can take a look ar #55050 ? | ||
| DietCoke | familiar is such a strong word. | 20:20 | |
| NotFound | I was doubting to say "lover" | ||
| DietCoke | NotFound: it seems vaguely reasonble to me. | 20:21 | |
| NotFound | Is very helpful to me to get out of my way all those warnings. | 20:23 | |
| dalek | r27927 | japhb++ | trunk: | 20:24 | |
| : CREDITS: Add Geoff Broadwell's IRC/SVN/RT nick | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27927 | |||
| r27928 | pmichaud++ | trunk: | |||
| : [rakudo]: | |||
| : * Add first version of Hash, hashes, and the hash() composer. | |||
| : * my %a = (a=>1, b=>2); now works. | |||
| : * Still need to create {...} hash composer (but use parens in the | |||
| : meantime). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27928 | |||
| japhb | OK, commit went through -- I had to think of something *useful* to do to my CREDITS entry. :-) | 20:25 | |
| ... and I see the commit in git-svn | |||
| W00t! | |||
| Thank you DietCoke++ and chromatic++ and everyone else that helped me find the hoops to jump through | |||
| :-) | 20:26 | ||
| pmichaud | welcome aboard, japhb! | 20:27 | |
| DietCoke | jpahb? | 20:28 | |
| japhb? | |||
| purl | well, japhb is Geoffrey Broadwell, mailto:geoff@broadwell.org | ||
| dalek | r27929 | pmichaud++ | trunk: | 20:33 | |
| : [rakudo]: | |||
| : * Change increment and decrement methods to be named 'succ' and 'pred'. | |||
| : * Resolves RT#54654. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27929 | |||
| japhb | Thanks, pmichaud | 20:37 | |
| OK, got to run | |||
| pmichaud | okay, time for a break. | 20:42 | |
| DietCoke | continue! | ||
| oh wait. | 20:43 | ||
| particle | maybe you mean .yield | ||
| pmichaud tosses an exception at DietCoke. | |||
| DietCoke ponders the best way to play with a ground up rewrite of tcl, and guesses branch (as opposed to new language/ or new repository) is probably the best way for now. | 20:44 | ||
| particle | branch sounds best | 20:46 | |
|
21:03
particl1 joined
21:04
particle1 joined
21:24
mire joined
|
|||
| dalek | r27930 | pmichaud++ | pge: | 21:39 | |
| : Remove branch so I can start over with a fresh trunk. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27930 | |||
|
21:49
smashz joined
|
|||
| smash | hello everyone | 21:49 | |
| pmichaud | hello smash! | 21:50 | |
| smash | hey pm | 21:52 | |
| so, anyone submitted any presentations for yapc::europe ? | |||
| (i'm trying to submit mine now) | |||
| pmichaud | (submitted, yes.) | ||
| smash | pmichaud: parrot related ? | ||
| pmichaud | one on PCT, one on Rakudo. | 21:53 | |
| smash | nice nice | ||
| i'm submitting mine now, an introduction to parrot | 21:54 | ||
| that's all i got time for | |||
| nothing fancy :-) | |||
| i'm also making a presentation about parrot next week in the Portuguese Perl Workshop | 21:56 | ||
| davidfetter | legal! | 22:03 | |
| onde? | |||
| smash | Universidade do Minho, YAPC in portugal venue | ||
|
22:04
Theory joined
22:07
Limbic_Region joined
|
|||
| davidfetter spoke there, too :) | 22:09 | ||
| smash | hehe.. cool | ||
| smash talk proposal submitted! | |||
| davidfetter | heh | ||
| smash | i called it "Beautiful Parrot" inspired by this year YAPC::EU conference theme | 22:10 | |
| pmichaud | heh | 22:15 | |
| very nice title | 22:16 | ||
|
22:16
cognominal joined
22:17
Theory_ joined
|
|||
| dalek | r27931 | pmichaud++ | trunk: | 22:19 | |
| : [rakudo]: | |||
| : * Cleaned up Mapping and Hash code a bit more. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27931 | |||
| smash | pmichaud: you can find my abstract here: nrc.homelinux.org/parrot/beautiful_parrot.pdf if you're curious in taking a glimpse ;-) | 22:24 | |
| pmichaud | here are mine: www.pmichaud.com/sandbox/talk-1.txt | 22:29 | |
| cognominal | jpn | 22:30 | |
| jonathan is sleeping in the same room as me. Conference tyo | 22:31 | ||
| time tomorrow | |||
|
22:32
ejs joined
|
|||
| smash | pmichaud: hehe, you stole almost half of my talk (about PCT) :-D | 22:32 | |
| pmichaud: nice nice, road map to a complete perl6 | |||
|
22:39
AndyA joined
23:11
teknomunk joined
23:16
rdice joined
23:21
Maddingue joined
|
|||
| smash | ahh.. was able to submit another talk proposal | 23:44 | |
|
23:50
bacek_ joined
|
|||
| bacek_ | morning | 23:51 | |