Camelia, the Perl 6 bug

IRC log for #parrot, 2008-05-29

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced