Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 20/672 new/open tix
Set by moderator on 21 May 2008.
00:08 tetragon_ joined
bacek_ hi there 00:38
purl hey, bacek_.
bacek_ purl: want cookie? 00:39
purl bacek_: bugger all, i dunno
jonathan OK, sleep time 00:47
night all
bacek_ jonathan: g'day :) 00:50
dalek r27734 | jkeenan++ | trunk: 00:58
: Applying patch submitted in RT 54610 by Ifejinelo Onyiah eliminating 2 lines
: with trailing whitespace.
diff: www.parrotvm.org/svn/parrot/revision?rev=27734
r27735 | chromatic++ | trunk: 01:15
: [Rakudo] Fixed POD formatting in Range class.
diff: www.parrotvm.org/svn/parrot/revision?rev=27735 01:16
r27736 | chromatic++ | trunk: 01:26
: [src] Fixed C++ compilation (NotFound, RT #54602).
diff: www.parrotvm.org/svn/parrot/revision?rev=27736
01:34 tetragon left, tetragon joined
dalek r27737 | chromatic++ | trunk: 01:34
: [Rakudo] Fixed a typo in r27708 (Moritz Lenz).
diff: www.parrotvm.org/svn/parrot/revision?rev=27737
01:37 paco joined
pmichaud prepares to merge rakoo into trunk. 01:39
Tene yay! 01:43
Tene prepares to read a diff.
dalek r27738 | chromatic++ | trunk:
: [config] Fixed interpflags.pasm generation to handle ORd values (Chris Dolan,
: RT #53548)
diff: www.parrotvm.org/svn/parrot/revision?rev=27738
01:49 Zaba joined
pmichaud well, it may take a big. Lots to merge. 01:50
s/big/bit/
quite a few conflicts :-| 01:52
ah, finally, time for 'make test' 02:22
bacek_ pmichaud: BTW, rt.perl.org/rt3/Ticket/Display.html...txn-409832 02:32
shorten bacek_'s url is at xrl.us/bkuq4
bacek_ there is comment about PMC methods inheritance...
kid51 must sleep 02:36
purl $kid51->sleep(8 * 3600);
pmichaud r27739. hope it works. :-) 02:37
need dinner.
dalek r27739 | pmichaud++ | trunk:
: [rakudo]:
: * Merge rakoo branch back into trunk.
: * Also updates object.pmc to make 'clone' work properly.
diff: www.parrotvm.org/svn/parrot/revision?rev=27739
Tene pmichaud++ 02:46
jonathan++
02:47 jjore joined 03:26 tetragon joined 03:57 Zaba joined 04:14 confound joined 04:19 cotto_home joined 05:35 Zaba joined 05:47 bacek_ joined 05:55 Zaba_ joined 06:07 uniejo joined 06:52 AndyA joined 07:53 iblechbot joined 08:14 masak joined 08:27 ruoso joined
moritz pmichaud++, jonathan++ # no failures in 'make spectest_regression' after rakoo merge 09:00
09:09 donaldh joined 09:11 barney joined 09:27 wknight8111 joined 09:28 Zaba joined
jonathan moritz++ # giving us spectest_regression 09:31
09:32 ejs joined 09:42 ejs joined
barney Looks like Plumhead is broken, PCT changes??? doing binary search 09:54
jonathan airport 10:08
10:28 wknight8111 joined 10:34 davidfetter joined
dalek r27740 | allison++ | pdd25cx: 11:01
: [pdd25cx] Bringing the pdd25cx branch up-to-date with trunk r27739.
diff: www.parrotvm.org/svn/parrot/revision?rev=27740
r27741 | bernhard++ | trunk: 11:08
: [Plumhead PCT]
: '<?' is no longer supported for non-capturing subrules, switching to '<.'
diff: www.parrotvm.org/svn/parrot/revision?rev=27741
barney was late in doing homework, that is reading DEPRECATED.pod 11:10
bacek anyone alive? I have question about "dark magick" of "infix:=" in rakudo. How it actually should work? 11:17
dalek r27742 | bernhard++ | trunk:
: [Plumhead]
: Set up the superglobals $_GET and $_POST for all three variants.
: PHC: Keep the sigil $ in the variable name.
diff: www.parrotvm.org/svn/parrot/revision?rev=27742
cognominal jonathan++ 11:29
pmichaud++
dalek r27743 | bernhard++ | trunk: 11:47
: #31633: [TODO] Allow Languages to be self contained
: Move more cleaning up of languages Makefiles to
: from the root Makefile to languages/Makefile
diff: www.parrotvm.org/svn/parrot/revision?rev=27743
r27744 | bernhard++ | trunk: 11:49
: [Config]
: Generate languages/lazy-k/Makefile
diff: www.parrotvm.org/svn/parrot/revision?rev=27744
pmichaud pong 11:50
11:17 <bacek> anyone alive? I have question about "dark magick" of "infix:=" in rakudo. How it actually should work? 11:51
what did you want to know?
bacek pmichaud, "dark magick" how Mapping should be created from List 12:01
bacek tries to forget 'Hash'.... 12:03
pmichaud here's my current guess: 12:04
(1) infix:= will generate an assign opcode
bacek pmichaud, few days ago you pointed to 'hash' function in RT. And I'm very interesting in how this function should be invoked
pmichaud (2) the assign opcode for Hash containers will call the hash() function on its right operand prior to doing the assignment 12:05
bacek pmichaud, why not create few :multi(List,_), :multi(Mapping,_), etc? 12:06
pmichaud you mean for infix:= ? 12:07
bacek pmichaud, yes
pmichaud well, because I really think that for hll interop that I'd prefer it to be in the assign opcode
also, note that it depends on the type of the container, so it would be :multi(Array,_) :multi(Hash,_) etc. 12:08
bacek next question: how opcodes handled in PGE? E.g. 'copy' is actually syntax sugar for method morph. 12:09
Or I totally wrong in my assumptions?
pmichaud PGE? or PCT? 12:10
bacek PCT
pmichaud (PGE does regexes, PCT is the PIR code generator)
'copy' does more than morph
cognominal the parrot alphabet soup is copious :)
pmichaud and it exists from when we didn't have a 'copy' opcode
most opcodes are handled by creating a PAST::Op node with a :pirop('whatever') attribute 12:11
bacek pmichaud, hmm... So I'm totally wrong...
pmichaud 'copy' replaces a destination PMC with a new value (matching type of the source). It uses morph to do that, yes. 12:12
bacek pmichaud, I still don't understand... 12:13
currently we generates 'copy' opcode. 12:14
It handled in parrot and should invoke morph.
If we will generates 'assign' pirop how we will handle it in rakudo 12:15
?
pmichaud rakudo will generate an assign op instead of copy
'copy' just exists to work around the problems with assign
but since we'll be able to fix assign for container types, we can use assign 12:16
(and that probably makes more sense anyway)
12:18 efunneko joined
efunneko I just updated parrot from SVN and it fails make now - expected? 12:19
bacek pmichaud, sorry... I still don't understand how we can provide implementation of 'assign'...
efunneko make: *** No rule to make target `src/pmc/super.pmc', needed by `src/pmc/super.dump'. Stop.
bacek efunneko, make realclean; perl Configure.pl
efunneko bacek: Thanks 12:20
pmichaud bacek: let's consider a statement like %x = ('a', 1, 'b', 2)
%x is a Hash, the rhs is a List 12:21
when we say "%x is a Hash', what we're really saying is that it's a variable with a "Hash" property set
(just a sec, making breakfast for kids) 12:22
moritz %x just means "%x does Associative"
which means in a perfect world that assignment would call ('a', 1, 'b', 2).Positional 12:23
or it would walk a list of types that can be assigned to %x 12:24
like Hash and Assocciative
bacek Oh my poor brain... It's explosing...
:)
moritz (uhm, s/Positional/Associate/ in my second line)
pmichaud right, what moritz says :-) 12:25
moritz bacek: if a class holds a Foo method it can be automatically used for a coercion to type Foo
dalek r27745 | bernhard++ | trunk: 12:26
: #31633: [TODO] Allow Languages to be self contained
: Move remaining cleanup of languages makefiles
: from root Makefile to languages/Makefile
diff: www.parrotvm.org/svn/parrot/revision?rev=27745
bacek moritz, o... So, if I'll add 'List' method to Mapping it will be magi^W automatically used for coercion? 12:27
moritz, no. swap List and Mapping :)
moritz bacek: I don't know if that's implemented yet, but that's the plan on Perl 6 language level
pmichaud okay, back 12:28
bacek pmichaud, ok :) 12:29
pmichaud since %x has a "Hash" property on it, the assign opcode for Hash will coerce the right-hand operand into something that does the associative role
er, Associative
12:30 slightlyoff joined
moritz what if an assignment would need to coerce from A to C 12:30
pmichaud as in? 12:31
purl rumour has it as in is he eating shrooms before the calls
moritz and A has a method B, and B has a method C
does it do the coercion over B?
12:31 slightlyoff left
moritz or does it simply fail? 12:31
pmichaud I don't know how Perl 6 specs that yet
moritz purl, forget as in
purl moritz: I forgot as in
bacek just want working version of %h = (a=>1, b=>2)... 12:32
pmichaud bacek: well, I should soon have %h = { a=>1, b=>2 } working
moritz bacek: sometimes things aren't as simple as they seem ;)
I guess (a => 1, b => 2) is a list of two Pairs, not four scalars? 12:33
pmichaud moritz: correct.
moritz so the list has to check if all items are pairs
pmichaud ??? 12:34
moritz is an assignment like my %h = (1, 2) allowed?
cognominal I think something like ( a p5=> 1, b p5=> 2 ) is supposed to be four scalars
pmichaud moritz: I believe that's allowed, yes
moritz pmichaud: then these two cases have to be distinguished
pmichaud it means %h = { 1 => 2 };
pmichaud re-checks S02. 12:35
moritz I mean in List.Associative
pmichaud that's why I don't think of it as List.Associative but rather as hash(...)
although List.Associative could simply call hash(...) on itself. 12:36
moritz but that would stop my Blurb %h = (1, 2); from working when Blurb does Associative but not isa Hash?
or is that one of the things you don't worry about yet?
pmichaud mostly don't worry about it yet
moritz ok
pmichaud From S02: There is no such thing as a hash list context. Assignment to a hash produces an ordinary list context. You may assign alternating keys and values just as in Perl 5. You may also assign lists of Pair objects, in which case each pair provides a key and a value. You may, in fact, mix the two forms, as long as the pairs come when a key is expected. If you wish to supply a Pair as a key, you must compose an outer Pair in which the key is the inner 12:39
moritz ah, that makes sense 12:40
pmichaud so basically a hash composer iterates a list, if an element is a Pair, then it uses that for the key+value, if it's not a Pair, then the element is the key and the next element is the value
my %h = ('a', 1, b => 2, 'c', 3, :d(4) ); 12:41
bacek pmichaud, and this is looks like behaviour of 'hash' function
pmichaud bacek: right.
dalek r27746 | bernhard++ | trunk: 12:42
: Layout and alphabetic ordering in
: languages/Makefile.
diff: www.parrotvm.org/svn/parrot/revision?rev=27746
bacek (On the side note: can anyone review my patch from rt.perl.org/rt3/Ticket/Display.html?id=54642)
it is 'map' impl. Not lazy at the moment. 12:43
pmichaud bacek: fwiw, patches for rakudo should probably go to rakudobug@perl.org instead of parrotbug@perl.org :-)
(not a big deal -- I can switch the queue.)
bacek pmichaud, ok 12:45
pmichaud it would probably be better to use an iterator on the list than to count elements 12:46
bacek still tries to remember many acronyms.
pmichaud probably don't need (or want) + mapres = 'list'(mapres) 12:47
(I could be wrong about that.) 12:49
bacek pmichaud, what about { $_, $_*2}? According to S29 we should flatten result 12:50
unless we have @@ context
pmichaud if S29 says we flatten result, then yes
pmichaud checks S29 12:51
bacek The actual return value is a multislice containing one slice per map iteration. In most contexts these slices are flattened into a single list.
pmichaud I think that means it's up to the outer context to do the flattening 12:52
bacek hmm... I understand all words. But probably don't understand phrase
pmichaud I don't think 'map' does it.
bacek pmichaud, ok. It will made life easier.
pmichaud of course, we don't implement slices (or multislices) yet
bacek pmichaud, let's think about bright future :) 12:53
pmichaud from S09: 12:54
Conjecture: since @@x and @x are really the same object, any array can
keep track of its dimensionality, and it only matters how you use it
in contexts that care about the dimensionality:
bacek ho! So I remove flattering from map.
pmichaud right. 12:55
pmichaud likes that word "flattering" to mean "make flat"
bacek pmichaud, and it should be iter = new 'Iterator', self, ... 12:56
English is my third language :)
After Russian and C++ :)
Tene And where's perl in the list? 12:57
12:57 gryphon joined
pmichaud bacek: (iter) yes. 12:58
bacek Tene, perl is little bit hard to pronounce.
pmichaud try Lingua::Perligata
bacek And it is little bit more complex to understand fully
Tene Than C++? 12:59
bacek pmichaud, it is Perl::Lingua::Perligata :)
pmichaud I stand corrected.
bacek Tene, yes (we talking about perl6 :)
Tene Heh. 13:00
moritz I found C++ quite hard to grasp, for example dealing with special casing templates and stuff
bacek pmichaud, shame on me...
moritz, yes. C++ is very hard language to understand and use. 13:01
pmichaud okay, kids are off to school 13:02
bacek pmichaud, my already sleep :) 13:03
pmichaud afk for a bit
bacek BTW, can I use 'nopaste' bot? And how?
DietCoke chromatic++ # applying the patch I slept through! 13:04
nopaste?
purl i heard nopaste was 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
DietCoke go to the first url. Pick parrot from the dropdown. done.
Tene or use tools/dev/nopaste.pl 13:05
DietCoke I had to drop 2 of mine at school on the way in this morning.
bacek 'nopaste' is gone... 13:06
pastebin.org/37746
This is 'map' after pmichaud comments
Debolaz, magick :) 13:07
moritz bacek: you still have 'map' in the TODO list
nopaste "bacek" at 202.7.166.163 pasted "Reworked 'map'" (67 lines) at nopaste.snit.ch/13045 13:08
Debolaz bacek, tab completion :)
bacek moritz, yes. This patch is not commited :)
Debolaz, oops.
dalek r27747 | bernhard++ | trunk: 13:09
: Remove trailing whitespace
diff: www.parrotvm.org/svn/parrot/revision?rev=27747
13:11 uniejo joined
bacek purl, good bot :) 13:14
purl thanks bacek :)
bacek purl, S29? 13:15
purl rumour has it S29 is svn.pugscode.org/pugs/docs/Perl6/Sp...ctions.pod
DietCoke nopaste?
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
bacek purl, PDD19? 13:16
purl bugger all, i dunno, bacek
bacek purl, bad bot...
purl :(
DietCoke It would be helpful if patches to add featurs also removed them from the TODO list. (not required, just helpful)
13:16 ambs joined
bacek DietCoke, as you wish :) 13:17
DietCoke pdd19 is svn.perl.org/parrot/trunk/docs/pdd...19_pir.pod
shorten DietCoke's url is at xrl.us/bkvda
Tene DietCoke: give me a feature to add and I'll make sure to remove it from TODO.
bacek DietCoke, I'm just not 100% sure about patch quality... 13:18
DietCoke basically, anything that makes it easier to get the patch applied. same thing if you're deleting a deprecation, remove it from DEPRECATED.pod, etc.
Tene, you need something to do ? =-)
bacek DietCoke, I know where is pdds. Maybe teach purl about it? 13:19
DietCoke I just did.
pdd19?
purl pdd19 is svn.perl.org/parrot/trunk/docs/pdd...19_pir.pod
bacek purl, PDD19?
purl hmmm... PDD19 is svn.perl.org/parrot/trunk/docs/pdd...19_pir.pod
DietCoke you feed the bot with "foo is bar" statements.
bacek DietCoke, ok. It is 'publicly' available? 13:20
Tene except it doesn't work when you address the bot. 13:22
pmichaud bacek: so, which patch should I review/apply? 13:27
Tene DietCoke: yes, I'm having trouble deciding what to work on. 13:29
pmichaud me too. :-)
bacek pmichaud, rt.perl.org/rt3/Ticket/Display.html...txn-410602 13:31
shorten bacek's url is at xrl.us/bkvdp
bacek pmichaud, I just attached version with iter to initial ticket
pmichaud bacek: got it, looking now. 13:33
(will take a couple of minutes because I also need to rebuild parrot)
do we have any tests for 'map'? 13:34
Tene spectests
So, what's the policy on the pile of different ways to call each function in the spectests? 13:35
dalek r27748 | pmichaud++ | rakoo:
: Remove rakoo branch (merged back into trunk).
diff: www.parrotvm.org/svn/parrot/revision?rev=27748
bacek pmichaud, s/spectest/S29-list/map.t just doesn't compile..
DietCoke tene: if you're bored, the typeids branch needs to be sync'd with trunk. =-)
bacek They require protoregexes support.
pmichaud we may need to add some skip markers
Tene Should the 'map' and 'grep' and 'sort' et al tests all also be testing invocant syntax, for example?
DietCoke (I had one small issue with the merge that would have taken more than 5m for me to figure out.)
pmichaud Tene: good question. I don't have an obvious answer. 13:36
I think we need to test that all of the invocant syntaxes work, but I don't think we need to test every case in every syntax
moritz I'd like to have two files, one mainly checking syntax, one mainly checking semantics
pmichaud I think perhaps one file with two sections 13:37
i.e., check the various syntaxes at the top, then check semantics below
this also helps because any 'skips' would tend to congregate near the top
moritz doesn't trust fudging enough for that 13:38
13:38 vany joined
moritz some of the unicode test doen't even compile when fudged 13:38
pmichaud then we need to fix fudge :-)
moritz because of illegal characters in comments that PCT can't seem to handle at the moment
pmichaud noting, of course, that rakudo requires the --encoding=utf8 option to be able to read unicode source.
moritz so should we stuff that into harness? 13:39
pmichaud (unicode in rakudo is RT#54448) 13:40
(stuff into harness) I don't know yet.
we could certainly have the harness supply --encoding=utf8, but that would slow down testing.
For spectests I don't know if slow testing is too much of an issue yet.
DietCoke bacek: looks like one of your perl6 patches ended up in the parrot queue.
(moving it over.)
moritz pmichaud: I know that unicode is a pending issue, I just wanted to express my mistrust against fudge ;) 13:41
pmichaud moritz: ;-)
bacek DietCoke, yeah... pmichaud already told me correct mail address for rakudo's patches...
pmichaud so far I like fudge a whole lot
moritz which is all in all a very cool tool, but in my experience it's hard to work with
pmichaud really? I've found it to be incredibly easy. 13:42
what do you find difficult about it?
moritz probably just missing practise or bad luck (like the unicode stuff)
somehow I just didn't get those damn tests to pass 13:43
but perhaps I wasn't rigorous enough with fudging
part of it might be the inter-dependencies of the various test 13:44
13:44 iblechbot joined
bacek discovered very strange bug in parrot... 13:45
nopaste "bacek" at 202.7.166.163 pasted "map tests and bug" (16 lines) at nopaste.snit.ch/13046 13:46
13:47 cognominal joined
bacek If comment out 'my @result=...' and uncomment it inside block I got 13:48
too few arguments passed (0) - 1 params expected
13:49 ambs joined
Tene That's... interesting. 13:49
dalek r27749 | bernhard++ | trunk:
: [config]
: Add the pugs targets in languages/makefile
diff: www.parrotvm.org/svn/parrot/revision?rev=27749
DietCoke bacek: where does a trace -4 show you that's happening? 13:50
./parrot -t 4 perl6.pbc foo.pl
13:52 rdice joined
nopaste "bacek" at 202.7.166.163 pasted "map trace" (141 lines) at nopaste.snit.ch/13047 13:54
"pmichaud" at 76.183.97.54 pasted "rakudo has trouble parsing this" (43 lines) at nopaste.snit.ch/13048
pmichaud rakudo is giving me a parse error there -- anyone see anything obvious that I'm overlooking? 13:55
for some reason rakudo wants a semicolon at the end of the first block 13:56
and it appears to have something to do with the =pod
because commenting out or removing the =begin pod...=end pod section causes it to parse properly
moritz could anybody please give me an author account for rakudo.org? I'd like to blog about "make spectest_regression" ;-) 13:57
bacek sorry guys... I have to go to bed... It's midnight here and I have $otherjob on tomorrow
moritz good night bacek ;)
bacek moritz, see ya 13:58
pmichaud moritz: Andy is the person... but I was going to mention spectest_regression in my journal post this morning
however, it might be better if you do it :-)
moritz pmichaud: I don't mind either way - what would you prefer? 13:59
Andy?
purl i guess Andy is the man with the feathered broom or mailto:andy@petdance.com or AIM:petdance or OK cat-xeger is BACK or trying to get Sun Studio 12 installed so I can lint lint lint.
Andy Yes?
moritz Andy: could you give me an author's account for rakudo.org?
Andy you have something to post? 14:00
moritz Andy: presumably, unless pmichaud does it
Andy what is your account that you have there already? I'm assuming you've posted replies on rakudo or perlbuzz
Unless pmichaud does what?
moritz Andy: post about 'make spectest_regression'
Andy If it's a one-time deal, let him do it.
moritz ok 14:01
Andy If you're gonna post regularly, I'll go dig into permissions.
pmichaud moritz: going to be blogging regularly, I hope?
moritz pmichaud: don't know yet
pmichaud okay, I'll do it for this time if you're not sure. What did you want to say about it? I was just going to point out that it is incredibly useful and neat 14:02
if you want to write up some text then I'll post that text
that would be a big help
moritz ok
pmichaud "guest post" :-)
moritz What markup can/should I use? HTML?
pmichaud anything is fine -- I'll clean it up. 14:03
I tend to stick with straight text.
moritz ok
pmichaud bacek: rakudo doesn't seem to recognize { $_ * 2 } as being a closure that takes a parameter 14:04
cognominal pmichaud, are you speaking of parrotblog?
pmichaud cognominal: for this one I'm speaking more of use.perl and rakudo.org
since it's rakudo-specific 14:05
cognominal ho, I forgot this one. I read direcly parrotsketch from my irc log, thx for reminding me 14:06
and jonathan on useperl, I think
pmichaud bacek: and, in this case, it probably / possibly shouldn't take a parameter, since { $_ * 2 } doesn't imply one. 14:09
oh wait, yes it does
pmichaud re-configures his mental model.
pmichaud re-checks S04.
particle moritz: a welcome task, if you don't trust fudge, is writing tests for it 14:10
pmichaud we need to update rakudo to recognize $_ as a parameter in a bare closure.
Tene pmichaud: it already does 14:11
14:11 tedkat joined
Tene > my $f = { $_ * 2 }; say $f.arity 14:11
moritz particle: it's not the implementation I don't trust ;). But I'll keep it on my mental TODO list nonetheless
Tene 1
pmichaud Tene: oh, you're right. 14:12
hrm.
moritz 'make testtest' seems to trigger parse failures in rakudo 14:18
pmichaud aha 14:23
the problem is that the { $_ * 2 } isn't being turned into a closure with C<newclosure>
Tene Can you show me an example of what the PAST should look like? 14:24
pmichaud I think the PAST is correct here -- I'm guessing PCT forgot a newclosure op
moritz pmichaud: perlpunks.de/paste/show/483581fa.7f04.33d # blog post for rakudo.org
oh, I forgot to s{<c>}{<code>}g 14:25
pmichaud no problem
looks great, thanks!
moritz you're welcome
DietCoke wonders why "make -j" kills his OS X box, but "make -j 3" works fine. 14:28
is there a way to see how many simultaneous processes -j with no args will run? 14:29
Tene DietCoke: 'make -j' will not limit the number of simultaneous processes.
so it will use as many as it can.
pmichaud moritz: now published (www.rakudo.org/) 14:33
but, now I have a question 14:36
the existing "make spectest" target only does a limited subset of tests in the spec/ repository as well
the idea being to only run those tests that are "useful"
so, aren't "make spectest" and "make spectest_regression" doing close to the same thing, only with different lists? 14:37
moritz in fact they are
TimToady the difference is what you think should work, and what you wish to work soon. :)
moritz 'make spectest' has a list in config/makefiles/root.in
pmichaud yes, I agree. I'm wondering if we could change --regression-only in the harness to instead take a file argument 14:38
and then the list that is in 'make spectest' could just be a different file
moritz while 'make spectest_regression' has a somewhat different list in t/passing_spec
pmichaud instead of being in the Makefile
moritz sounds sane
pmichaud it's far easier to edit files in t/ than to update the Makefile
moritz right 14:39
14:39 teknomunk joined
TimToady well, there should be at least option for just running everything there... 14:39
moritz as our 3+ more commits showed (that fixed whitespaces in Makefile)
TimToady and in my mind that's "spectest"
pmichaud TimToady: that's fine too
so "make spectest" runs without any file-limiting option
"make spectest-regression" runs the known passing tests
moritz do we even need the third target? 14:40
pmichaud "make spectest-candidates" runs the tests we'd like to have work
TimToady spectest-workonme :)
pmichaud ah
moritz hehe ;)
pmichaud spectest-todo
moritz pmichaud: they are all "todo" ;) 14:41
pmichaud spectest-todosoon
TimToady except the ones that are todone
pmichaud spectest-next
moritz pmichaud: is it OK to use Getopt::Long in t/harness?
pmichaud it's okay by me, as long as we can expect everyone to have it (which I'm pretty sure we can) 14:42
14:42 Theory joined
moritz pmichaud: if so I'd offer to refactor t/harness to include an option like '--whitelist-file' or '--filter-by-file' 14:42
pmichaud --tests-from-file, perhaps? 14:43
but yes, a refactor is what I'd like
(and for it to be "not me" to do it :-)
NotFound --test-list ?
For short.
moritz NotFound: that option is only used in Makefile, so it doesn't have to be short ;)
pmichaud I'm not too picky about the option name at this point :-) 14:44
NotFound moritz: It also does not need to be long ;)
particle prefers we drop the 'spec' in 'spectest' and just call it 'test' 14:47
pmichaud I don't.
NotFound spectest_regression is already in the main branch?
pmichaud "make test" is my minimum standard for submitting changes to rakudo.
moritz NotFound: yes 14:48
particle pmichaud: eventually, that'll be the same as spectest
pmichaud yes, but that "eventually" is a long way from now.
especially if "make spectest" comes to mean "run all spectests"
in particular, I think that "make test" should continue to work even if someone doesn't have svn. 14:49
NotFound pmichaud: agree.
pmichaud I might entertain the notion of "make coretest", though. 14:50
NotFound make sometest ;)
pmichaud and then "make test" will run coretests, as well as spectest-regression as long as svn and/or t/spec are available.
and "make coretest" runs the 00-parrot, 01-sanity, etc. tests 14:51
particle i can dig it
NotFound I hate gnu make, for dropping the nice message: "Don't know how to make love" 14:52
pmichaud I think gnu make was starting to have depression/performance issues from that :-)
particle and we'll have spectest, spectest_regression, spectest_raw, spectest_fudge ; spectest points to one of those latter three
NotFound "No rule to make target love" sucks. 14:53
make spectest_regression pass in a C++ build.
Files=31, Tests=564 14:54
pmichaud also, I have a personal preference for hyphen over underscore, but that's just me 14:55
i.e., "make spectest-fudge" as opposed to "make spectest_fudge"
NotFound We can use camel case... is perl, after all ;)
particle fine with me, one less left-pinky
pmichaud underscores sometimes get lost in text. 14:56
NotFound By the way, will be nice to have a test about C++ reserverd words used as identifiers. 14:57
pmichaud NotFound: that's an excellent idea 14:58
writing one could be a bit tricky.
NotFound pmichaud: but not easy to implement, I think. 14:59
14:59 IllvilJa joined
particle don't we have one? i thought we did 14:59
NotFound particle: If we have, it's not working well.
particle check t/codingstd and t/distro
it's possible it's not enabled, due to many failures 15:00
NotFound Well, this week we have one: me :D
particle however, perhaps it's just an idea that's come up before, but hasn't been done
spectest_regression takes 144s on my unoptimized build 15:07
pmichaud yes, I think/hope protoregexes in PGE will help that 15:08
particle is that next?
pmichaud it's high on the list
particle needs dev tasks
pmichaud right now I'm looking at getting { $_ * 2 } to properly invoke newclosure
DietCoke particle: do they have to be rakudo tasks? 15:09
pmichaud I may need a :blocktype('closure') or :closure flag on PAST::Block
DietCoke (you have at least one ticket assigned to you waiting for your feedback on a patch.) 15:10
particle DietCoke: i already have a list of non-rakudo tasks... yep
DietCoke (as of 2 days ago.)
pmichaud many of the implementations in src/classes/*.pir could use a review
particle DietCoke: currently, (and since last weekend) i get Failed 46/583 test programs. 209/11197 subtests failed. 15:11
so something's funky with my env, modules, or parrot
pmichaud for example, I think that the "increment" and "decrement" methods in Bool.pir should be named differently
particle but rakudo tests work fine, so i suspect it's not parrot
pmichaud it would be good to eliminate the calls to "get_hash" and "get_array" that still exist (e.g., in Tcl) 15:12
particle pmichaud: can we get 'writing classes/methods/builtins in perl 6' done before yapc?
pmichaud yes. If you want to convert Digest::MD5 to be object-based that would be a big help.
in fact 15:13
particle ok, we need tickets for this stuff. this is a good list.
pmichaud oh, never mind. :-)
want me to submit some tickets?
particle that'd be lovely
tickets++
DietCoke if tcl is the only place that uses it, go ahead and break tcl.
particle i forgot about all those things already
tcl uses pct?
for eval, is that right? 15:14
expr, whatever
DietCoke tcl is not explicitly using pct at all.
pmichaud get_hash and get_array are in PGE
particle ah
pmichaud (er, "were")
for Match objects.
DietCoke moritz: i can verify that your new rakudo target works on osx/x86 15:18
pmichaud m4, pheme, and tcl all appear to still be using get_array 15:20
15:20 lichtkind joined
pmichaud get_hash appears to be safe to remove. 15:20
lichtkind pmichaud: your nominated :) 15:21
pmichaud yes, I'll probably do get_hash a bit later.
moritz DietCoke: thanks
pmichaud right now I need lunch, though. Didn't have much dinner last night.
afk for a short while
particle barney is working his way through DEPRECATED.pod 15:22
i don't know if get_array made it in there, though
pmichaud particle: tickets submitted -- I'll send more as I think of them.
particle pmichaud++
pmichaud yes, get_array is in DEPRECATED.pod
particle ok, then he should see it
hrmm: No such attribute '%!properties' 15:30
i wonder where that bug comes from...
that appears in the output of S29-str/length.t 15:31
moritz plain scary - I just did an 'svn diff' and it found nothing, after changing the files for about half an hour... 15:32
then I found out the shell I was using was on a remote machine ;) 15:33
NotFound moritz: send yourself a patch ;) 15:34
moritz NotFound: no, I should just use the right shell ;)
perlpunks.de/paste/show/48359273.5597.2fc # refactor t/harness
this patch refactors t/harness as discussed, and makes 'spectest' test the whole thing 15:35
'spectest-workonme' or whatever we'll call it isn't implemented becasue I don't know what test you want to work on ;)
NotFound That happened to me one time, with a shell and a ftp, creating a file in one and not seeing in the oter. 40 minutes later, I noted they were not in the same machine. 15:36
particle c:\\usr\\local\\parrot\\release\\languages\\perl6>..\\..\\parrot perl6.pbc
my $x = undef;
No such attribute '%!properties'
NotFound Nest thing I do was to put a big /etc/issue message in all machines :D 15:37
moritz my prompt actually includes the hostname in red, and still get confused ;)
NotFound moritz: at work I have the hostname in the prompt... unfortunatelly we have a lot of machines called: samename.city 15:38
15:38 ejs_ joined
NotFound And in the prompt all says: samename 15:38
15:39 davidfetter joined
moritz d'oh, that's bad 15:39
NotFound I just check several times before doing shutdown at work time... and stil... X-) 15:40
moritz alias shutdown="echo don't do this!" ;-)
NotFound Shutdown is nice...was worse one time I pressed the buttom "Power down blade" in the web interface of a different Blade Center X-) 15:43
moritz ;) 15:44
NotFound "System failure"... the system adminsitrator is a part of the system, after all.
Tene alias shutdown='hostname; uptime; echo "are you sure?"' 15:47
confound echo "o rly?" 15:48
NotFound echo "I don't trust you"; exit 15:49
moritz ok, patch sent to p6i 15:50
Tene moritz: the thing that helped a co-worker of mine that had that problem was putting the hostname of each system in a different color 15:55
Eevee creating gnome-terminal profiles that start ssh to different machines and all have different backgrounds is helpful 15:56
NotFound If you have 200 systems, you need a painter eye.
Tene "Wait, is this prompt lilac, or lavendar?" 15:57
moritz Tene: sounds like a good idea. So far it didn't cause any real trouble for me so I didn't find the motivation to find out how to do it ;)
15:59 kj joined
Eevee NotFound: well, that could be a problem yes 15:59
16:02 askie joined 16:15 davidfetter joined
pmichaud moritz: on the spectest_regression Makefile target, what's the purpose of the final "t/spec" argument? 16:18
oh, I see 16:19
moritz pmichaud: the directory to recurse
pmichaud the tests-from-file doesn't specify the leading t/spec
...but if we do tests-from-file, do we recurse?
moritz we recurse always now
pmichaud okay.
so in tests-from-file I could say, e.g., "S12-class" and it would recurse into that directory? 16:20
i.e., into t/spec/S12-class/* ?
moritz no
pmichaud oh.
then I don't understand "recurse".
moritz wait, I think I wasn't very clear 16:21
any directories that are passed in @ARGV are recursed into
but file names in 'tests-from-file' need to be explicit, no wildcards here 16:22
NotFound make ; make clean ; make
make: *** No rule to make target `src/call_list.txt', needed by `src/nci.c'. Stop.
pmichaud is tests-from-file a list of tests to be run, or is it a filter to be applied to the directories given on the command line?
moritz it's a filter 16:23
which is kinda sub-optimal
pmichaud no, that's not too bad. We could in theory treat it as glob patterns
moritz I just never thought of it as anything else than a filter
pmichaud having it as a filter so that we could specify a directory would be cool. :-) 16:24
that's essentially what Parrot's t/harness does
with files from the command line
but this is great for now.
improving the filter can come later :-)
moritz indeed
what I learned yesterday and today is that parrot hacking can be fun, even if I know next to nothing about PIR 16:25
pmichaud indeed
you should blog about that, too :-)
or maybe I'll just include that quote in my post 16:26
NotFound moritz: I have learned just the minimal pir needed to write tiny test programs.
pmichaud moritz++ # patch applied in r27750, thanks! 16:27
moritz NotFound: I'm eagerly awaiting the time when we can write builtins in Perl 6 itself, because then I can help directly with the implemenation
dalek r27750 | pmichaud++ | trunk: 16:28
: [rakudo]:
: * Refactor t/harness a bit to provide a --tests-from-file option
pmichaud we're working on that too
dalek : * Refactor makefile to use --tests-from-file
: * Patch courtesy Moritz Lenz <moritz at casella.verplant.org> moritz++
diff: www.parrotvm.org/svn/parrot/revision?rev=27750
kj hello everybody
purl Hello Dr. Nick!
moritz actually I'm wondering how useful a shared prelude/runtime could be (shared between the different implementations, that is)
Tene kj!
moritz one problem would be the need to use only the common subset of all supported syntaxes 16:29
which would be kinda painful :/
kj hi tene. I saw you're a parrotblogger too now :-)
Tene I guess.
pmichaud ...parrotblog? 16:31
did I miss an article?
particle ooh, kj! hi there.
kj hi particle :-) 16:32
pmichaud: tene's a member of parrotblog contributors
particle kj: some recent changes to pge/pct affect your tutorial
kj no articles... yet ;-)
particle: yes, I think I mailed pmichaud about that; not sure if I did; let me check.
pmichaud (mailed) yes 16:33
I haven't had a chance to reply yet
kj having a real job is bad for spare time...
pmichaud I'm torn between writing email, writing journal posts, and writing code.
particle pmichaud: do the first two
kj pmichaud: no worries. answering my email should be low priority
particle you did quite enough code yesterday to keep me busy reading :) 16:34
pmichaud particle: oh, and we should do our abc update soon, too :-)
particle yes, should do that.
pmichaud but I guess that maybe should wait for the pge / optable refactor
although that won't change much
particle can it wait?
i mean, timeframe-wise
pmichaud can what wait?
kj what kind of abc update is that? (what's the purpose?)
particle kj: first, modify mk_language_shell.pl to include an opp 16:35
pmichaud I want to update abc to match the other language tools, and also build a second tutorial using it as an example.
particle second, and third, what pmichaud said
Tene kj: I get >3 months of PTO at my real job. :)
kj pmichaud: I also mailed you about that (the new tutorial) :-) 16:36
pmichaud kj: oh, that was the mail I received
was there another about the squaak tutorial?
kj yeah I think; lemme check
pmichaud yay, "use v6-alpha;" is officially gone from the synopses 16:37
DietCoke smacks tene. 16:38
Tene DietCoke: we're hiring.
16:39 leo joined
moritz masak++ # making TimToady deprecate v6-alpha 16:39
or was that masak? too many people around to remeber... ;) 16:40
TimToady well, considering that the commit message says who it was... 16:45
16:46 Theory joined
DietCoke you and your crazy actually logging what you're doing... 16:46
TimToady commit messages are my blog :) 16:47
kj pmichaud: can't find the other email. Never mind that for now. If I find it I'll get back to you 16:51
pmichaud okay, great. 16:52
particle considers a svn-commit-log-to-twitter interface 16:53
pmichaud considers slapping particle around the room.
kj particle: you mentioned some changes to pge/pct that affected the squaak tutorial. 16:54
any thing in particular?
16:54 itz joined
particle <?foo> and <.foo> 16:57
kj: mind you, i haven't read the tutorial yet, so i'm not sure exactly what 16:58
kj ok; I already used <. > instead of <? > I think
pmichaud yes, I think that's correct
note that if something was already zero-length it doesn't matter which is used
particle if the tutorial were in a file instead of on the net, i think i'd read it sooner
kj not the shortcut for assigning matches to custom names 16:59
pmichaud i.e., <?before ...> and <.before ...> are effectively the same
kj particle: I could convert to POD...
particle can the tutorial be committed to the repo, so it can be kept up-to-date?
we can post it at parrotcode.org
pmichaud same for <.panic: ...> and <?panic: ...>
kj but I'd like to maintain only one...
(that's hard already)
particle it'd be nice if multiple people could maintain only one 17:00
kj yeah. So shall I convert to pod and add it to docs/pct/tutorial/ ?
pmichaud either there or put it in languages/squaak/docs
with reference to it in docs/
kj ok 17:01
17:01 grim_fandango joined
particle kj++ 17:01
kj I'd like to update squaak anyway as soon as PCT has support for returning stuff
DietCoke I suppose I should try converting tcl to pct and see what breaks. :| 17:03
pmichaud kj: that should be coming very soon now.
I have to think about allison's exception changes a bit, though.
kj cotto mentioned that grokking NQP syntax was rather difficult (while reading the tutorial) 17:05
I'm not really sure what to do about that; it's Perl 6 code after all.
Tene kj: I'd try to get specific examples. 17:09
if $foo { ... }
is pretty standard.
particle crappity. segfault. 17:10
17:10 sjansen joined
kj Tene: yeah, so that doesn't need any explanation. Stuff like $( $<hi> ) would.. but that's already explained inthe tutorial. 17:11
cotto_work would it be helpful if I came up with specific examples? 17:13
pmichaud cotto_work: very helpful.
cotto_work I'll post something to the list by this evening, then 17:14
pmichaud excellent. 17:15
kj ooh. that sounds like a FAQ :-)
nopaste "particle" at 24.19.3.148 pasted "tene: currently non-working lines in pugs' CGI.pm for rakudo" (76 lines) at nopaste.snit.ch/13049 17:24
kj I put the tutorial on the blog in the public domain; would there be a problem if the pod-ified version would be stored in the parrot repos. ? 17:25
moritz if there is, you can simply place the copy in the repo under "the same terms as perl itself" 17:27
Tene particle++
japhb (backlogging) NotFound: Are you still having problems with call_list.txt?
NotFound japhb: yeah.
japhb And it wasn't generated by 'perl Configure.pl'?
NotFound Apparently make clean delete it but make does not recreate. 17:28
kj moritz: should I remove the license section that each Episode has?
japhb NotFound: 'make' doesn't recreate anything created by Configure.pl. It just may not delete all of it.
moritz kj: don't know
NotFound japhb: agree, but it does.
japhb It's always best to run 'perl Configure.pl' after any variant of 'make clean'
NotFound: I'm confused. ENOREFERENT 17:29
NotFound japhb: I misunderstand you. I mean, "make clean" is not usually expected to delete something that plain make can't crate. 17:30
DietCoke only 'make realclean' should do that.
japhb DietCoke: OK ... then I'm not sure what needs to change. 17:31
DietCoke I'm not sure what's broken. What happened?
NotFound make ; make clean; make --> fails.
DietCoke ok, I can test that. =-)
japhb NotFound: yes, I understand that.
NotFound: I meant, I'm not sure what to change to make that true, while still having 'realclean' actually delete it. 17:32
s/true/work/
kj time for dinner. good night
DietCoke ok. doing a realclean, svn up, configure, make, make clean, and make, and will report shortly. 17:33
make those make -j's, but... 17:34
japhb Of build-related files, I see call_list.txt in MANIFEST.configure.generated, MANIFEST.generated, and config/gen/makefiles/root.in
mj41 hi, newbie question, How to develop if trere isn't Apache2::Reload support? 17:35
err, bad channel, sorry :-(
japhb In root.in, it appears in the definition of GEN_SOURCES, which is part of FLUID_FILES_1, which ends up as (one of many) parts of the 'clean' target. So perhaps it should be moved to one of the other 'clean' targets. But which one? 17:38
Hmmm, I'm thinking it may need to be moved from GEN_SOURCES to STICKY_FILES (the latter is removed by realclean)
DietCoke I think whoever just updated our list of call signatures a few commits ago horked the deps. 17:39
japhb DietCoke: Can you try that?
DietCoke as this all used to work. 17:40
japhb DietCoke: That would be me.
DietCoke ah!
japhb I did not know that for Parrot 'make clean' was not supposed to affect the stuff generated by 'perl Configure.pl'
And obviously, this is the sort of thing that 'make test' doesn't catch. :-) 17:41
Since I never use 'make clean', always 'make realclean', because of working on WAY too many projects with completely hopeless 'make clean' targets, I didn't notice anything amiss either.
NotFound Talking about make oddities: how is supposed compilers/imcc/imclexer.c to be regenerated? 17:42
DietCoke perl Configure.pl --maintainer; make
17:42 ambs joined
DietCoke not everyone has lex. this is our compromise. 17:42
ambs dura lex sed lex 17:43
NotFound But ignoring changes in his sources is a suboptimal solution ;)
DietCoke japhb: what revision removed call_list ? 17:44
NotFound: better solutions will be considered. =-)
ah. 27371. 17:45
japhb sorry, was AFK dealing with contractor that just arrived
DietCoke ok. so it's not moved, it's just autogen'd now?
pmichaud enopurl 17:46
japhb DietCoke: yes.
It's generated from pieces, by config::gen::call_list, from config/gen/call_list/*.in
And my next patch will make config/gen/call_list/opengl.in generated, then to be pulled in during the generation of call_list.txt. 17:47
DietCoke OOC, any reason why this is generated by config and not as part of make?
japhb Gen -> Gen -> Gen
DietCoke ah, is that why? to probe at config time for various signature for later inclusion? good enough. 17:48
particle OOC?
DietCoke OOC is out of curiousity
japhb DietCoke: exactly
particle feed the bot :)
DietCoke I did!
particle i know!
DietCoke memristor?
memristor is <reply>I hardly KNOW 'er.
particle DietCoke-- #appropriate direction when you're on a diet 17:49
17:49 purl joined
particle er, now that the bot is here... 17:49
ooc?
purl ooc is probably Out of curiosity. or out of commission or out of control or out of cocaine or out of context
japhb DietCoke: So in any case, can you try just moving the call_list.txt line in config/gen/makefiles/root.in from GEN_SOURCES to STICKY_FILES? 17:50
particle hrmm, should STICKY_FILES be renamed to CONFIG_GENERATED_FILES for clarity? 17:51
japhb particle: +1 on that idea
DietCoke particle: there's a TODO for you. enjoy. =-) 17:52
NotFound It's the name discussion day?
particle what should we rename NotFound for clarity?
:P
japhb ENOTFOUND
NotFound Found
japhb ETOOMANYJOKES 17:53
NotFound METOO
japhb Nice changelog entry, Debian: "* Don't build-depend on packages with a -1 debian revision." 17:54
There's deep wisdom there.
particle wishes for svn -j up 17:55
DietCoke yah, svn is slow on winders. 17:56
japhb SVN doesn't exactly fly anywhere. 17:57
DietCoke (compared to an os x/86 box on the same network.)
japhb I recall clkao ranting about how SVK was (at least in the beginning) significantly faster when he replaced a lot of crappy SVN C code with less sucky Perl code.
ambs EOOPS 17:58
particle pmichaud: ping 18:04
18:11 Ivatar joined
particle aha. it looks like Failure doesn't have a %!properties attribute 18:16
i don't quite understand p6meta.'register'('Undef', 'parent'=>'Any', 'name'=>'Failure') 18:17
in src/classes/Undef.pir
ambs feelks like slaping DietCoke 18:23
DietCoke particle: did you mean to send that to parrotbug? 18:25
particle the cage ticket about makefile? yes.
DietCoke it went to the main list. =-) 18:26
particle oh! 18:27
thanks.
DietCoke np
18:30 gryphon joined
ambs DietCoke, I can't find your 'single *' 18:34
pmichaud particle: pong 18:36
particle 'my $x = undef;' causes problems now 18:37
pmichaud particle: yes, I saw that. Want me to (1) fix it or (2) explain how to fix it?
particle seems Failure is missing %!properties or something
DietCoke ambs: looks like it got edited out. basically most of the second paragraph.
particle 2 would be nice, but i'm far from understanding p6meta i fear 18:38
pmichaud it's not that hard, actually.
particle care to explain p6meta by way of writing a blog post?
DietCoke "you keep saying that word. I don't think it means what you think it means."
pmichaud the line you posted says: "create a protoobject and metaclass for the existing 'Undef' class. Make sure that 'Undef' has all of the methods of 'Any', and call the resulting thing 'Failure')
heh
actually, I'm already about halfway through the post. 18:39
particle fab
pmichaud: can you pass a PREG to register for the first arg? 18:40
pmichaud in other words, that register line is trying to make Parrot's "Undef" objects act as if they were "Failure" in Perl 6
but, as you note, Undef doesn't have a %!properties attribute, so we need a real "Failure" class
thus
pmichaud makes the switch.
particle ok, i wondered about that
so, we need a real Failure class
also, adding ", 'attr'=>'%!properties' " to that register call results in a segfault 18:41
pmichaud right, because we can't add attributes to PMC classes. 18:42
particle SEGFAULT is never right.
error, sure.
nopaste "pmichaud" at 76.183.97.54 pasted "revised Failure" (6 lines) at nopaste.snit.ch/13050
DietCoke wonders if we can get a machine with better horsepower/bandwidth to serve the wikis. :|
particle or a wiki with less horsepower requrements 18:43
pmichaud particle: in the new version we create a class called 'Failure' that has 'Undef' and 'Any' as parent classes 18:44
particle pmichaud: i can see that now
pmichaud since 'Any' has a %!properties hash, we get to inherit that.
particle and that belongs in Undef.pir?
pmichaud yes but
particle or should it be renamed Failure.pir and include other types of Failures too 18:45
pmichaud (1) it really should be ren.... right
(2) change the 'parent'=>'Any' in the last line to be 'parent'=>'Failure'
particle ok
do i need a 'name' option when registering Failure, since the name is the same as the class? 18:46
pmichaud you don't need a name option here
particle p6meta.'register'('Failure', 'parent'=>'Any', 'name'=>'Failure')
p6meta.'register'('Failure', 'parent'=>'Any')
DietCoke Hurm. I wonder if we should move some meta-parrot information out of the repository. 18:47
particle better.
pmichaud we don't register Failure
new_class does that for us.
particle oh, right
DietCoke pmichaud: we don't know the meaning of the class!
pmichaud register is when we want to take an existing class and make it P6-like.
(so what 'new_class' does is create a new class with all of the attributes and things we want, and then register it.) 18:48
DietCoke did c forget to update the release_manager_guide.pod ?
particle (phone) 18:50
pmichaud particle: so, can you make+test+apply the changes for Failure for me?
I'd like to keep writing.
particle yes, will do
japhb DietCoke: what 'meta-parrot information' are your referring to?
Eevee wait, I thought Undef wasn't supposed to be a class 18:54
DietCoke documentation about things that aren't parrot itself. Like "how to cut a release" 18:57
That information is of marginal use in a tarball.
(it's convenient at the moment to have it in the repo, of course.)
dalek r27751 | coke++ | trunk: 18:58
: Remove useless listing of 'svn ls'.
: Add note about updating this file's list of pending releases to remove the one
: you're doing, removing all the ones that have already passed. Since we don't
: have version numbers listed anymore, reformat the pending release section
: slightly.
diff: www.parrotvm.org/svn/parrot/revision?rev=27751
pmichaud correct, Undef is not a class in Perl 6. That's why we're remapping it to "Failure"
japhb DietCoke: Then it should stay in the repository, but be deleted by (one of) the script(s) that packages the release, just as DEVELOPING is deleted.
pmichaud but Parrot may still generate objects that are 'Undef', so the 'register' line tells rakudo to try to map those objects to 'Failure'
particle pmichaud: so in Failure.pir, i new_class Failure, and in Undef.pir, i register Undef, correct? 18:59
pmichaud no, do both in Failure
Eevee aha, okay
particle ah, ok
pmichaud I'd like to get rid of Undef.pir
particle wilco
pmichaud because there is no Undef class in Perl 6
DietCoke smash?
purl i think smash is an Offspring album or Nuno Carvalho. or at mailto:mestre.smash@gmail.com or irc.perl.org's Dr. Nick
Eevee stopgap that's going away once all mention of Undef is removed, then?
pmichaud Eevee: well, I can't remove Undef from Parrot. 19:00
DietCoke japhb: that's an option, but I still don't think it belongs in the repo.
Academic until we get closer to 1.0
pmichaud (meta information) as a general rule, I'm much happier when the meta information is in the same place or storage as the thing it metas 19:01
japhb DietCoke: (honest question): Why would you not want everything related to managing the source tree, including packaging it, to remain in the source tree?
pmichaud I agree it may not need to appear in a tarball.
Eevee ah alright
pmichaud Eevee: since we can't remove Undef from Parrot, we can at least try to make Rakudo handle it smartly when it encounters it
and eventually %!properties may be going away :-) 19:02
well.... I guess not.
but it'll change a bit.
Another good example is Float <=> Num . In Rakudo we have "Num" objects, but Parrot may occasionally throw us a "Float". So we use the register method to try to remap Floats into Nums when we encounter them. 19:03
thus if I ask a Float what kind of object it is, it says "Num". If I do .isa(Num) on a Float object, it returns true. etc. 19:07
particle spectest_regression++ moritz++ 19:08
pmichaud moritz should get a lot of karma from spectest_regression :-)
moritz I did already 19:09
karma moritz
purl moritz has karma of 19
pmichaud new rakudo.org/use.perl.org post: use.perl.org/~pmichaud/journal/36494 19:11
moritz we need a rakudo.org rss bot
dalek r27752 | particle++ | trunk:
: [rakudo] Undef failed to inherit from Failure, so it didn't have a '%!properties' attribute. so 'my $x = undef;' didn't work. fixed by adding a Failure class, and registering parrot's Undef as a subclass of Failure (to inherit Failure's attributes). pmichaud++ for the pointers on the new p6meta syntax
diff: www.parrotvm.org/svn/parrot/revision?rev=27752
Eevee haha, 'Eevee' in there looks ridiculous amongst all the full names 19:12
pmichaud I didn't have your full name handy -- I'll be happyto change it
Eevee alex munroe 19:14
this is a silly handle but it's pervasive to the point that I only really associate my full name with work and people who want my money
moritz lol
Tene Eevee: I prefer 'Tene' to my full name. 19:15
pmichaud Tene: do you prefer it that way in my posts, too?
Tene chromatic also prefers his chosen name.
pmichaud I prefer to refer to people however they prefer to be referred to
Tene pmichaud: sure.
Eevee fair enough
pmichaud so, Eevee, leave it as Eevee, or switch it?
Eevee sure, leave it 19:16
(this is actually the name of a pokemon, which makes it look sillier. but shh don't tell anyone)
pmichaud Tene: want me to switch your reference to "Tene", also?
moritz wouldn't know such things ;)
Tene pmichaud: Sure.
pmichaud I'll parenthesize the name for this week since I referred to you last week as the full name, but from now on I'll use "Tene" 19:17
Tene I don't actually care enough to ask for it, but I'm entertained by making people do trivial work for me. :)
pmichaud names are important things to me
Tene 'Stephen' is my name, but the only people who call me that are my family. 19:18
pmichaud that's one of the reasons it took so long to find a name for "Perl 6 on Parrot" besides "perl6" :-)
Eevee even my sister tends to call me Eevee 19:19
when I say "pervasive"..
19:20 mncharity joined 19:22 davidfetter joined 19:23 Zaba_ joined
DietCoke If it's any consolation, I knew it was a pokemon name before you said that. 19:23
Eevee yes well
I know your name is actually a drink!
which I happen to be drinking
NotFound Eevee: I want your money. 19:24
Eevee gives NotFound 100,000 pokedollars 19:25
NotFound Pika-pika-chuu 19:26
particle your drink is made of my name
NotFound Is include/parrot/io.h supposed to be available for embedding? 19:51
Looks like not, it doesn't even compile. 19:57
DietCoke ? pretty sure it's used in compilation in the regular build. 20:08
NotFound Adding it in the extern tests fails. 20:44
r27752 has deleted trunk/languages/perl6/src/classes/Undef.pir but is already in manifest 20:54
japhb seen chromatic 20:57
purl chromatic was last seen on #parrot 1 day and 18 hours ago, saying: You know, the usual. [May 20 20:05:31 2008]
japhb Hmmm. His "Design Minutes" post seems to be somewhat mangled. There are a lot of single 'C' characters ... I'm guessing people doing C<code> and the blog engine stripping the unrecognized "tag". 20:59
Eevee or the engine ignoring and the browser discarding 21:00
NotFound japhb: chromatic says something yesterday something about blog mangling, not remember exactly what. 21:01
japhb Eevee: not in the source code. It's gone before the browser sees it
NotFound: ah. thanks 21:02
Eevee maybe not then
pmichaud Oops, looks like particle forgot to update MANIFEST.
NotFound Off with his head!
pmichaud should be fixed now in r27752
should be fixed now in r2775*3*
dalek r27753 | pmichaud++ | trunk: 21:03
: [rakudo]:
: * Update MANIFEST from changes introduced in r27752.
diff: www.parrotvm.org/svn/parrot/revision?rev=27753
PerlJam NotFound: we don't do that anymore. We're much more civilized; we inject people with poison or make them inhale deadly gases.
pmichaud PerlJam says that, but all languages eventually become Lisp, and Lisp's fundamental operation (cdr) tends to chop the heads off of things.
or something like that. :-) 21:04
kids are begging me to take them swimming, so bbl
NotFound PerlJam: we liked better to burn people in the main street.
pmichaud burning people tied to trees works. :-) 21:05
(outta here.)
PerlJam Pm: But that's torture! (to the tree)
NotFound PerlJam: the tree is already dead.
jonathan hi all 21:11
jonathan is in Sweden now
moritz hi jonathan ;) 21:14
Tene hi jonathan 21:25
21:26 sjansen joined
bacek hi jonathan 21:26
morning everyone
Tene evening bacek
Infinoid good afternoon 21:28
ambs good night, folks
:)
Infinoid the core of the earth doesn't stand a chance... we have it surrounded
NotFound Core dump. 21:32
purl i heard core dump was not the problem. the three thousand lines later is the problem. or SEVEN LAYER BURRRRRRRRRRRRRRRRRITO
NotFound # Failed test 'svn:keywords' 21:36
languages/perl6/src/classes/Failure.pir
A trailing space, looks like. 21:37
DietCoke momentito
urk. running t/distro/file_metadata.t is quite verbose. 21:39
ah, buggy local manifest. nevermind 21:40
NotFound++ # fixed 21:43
21:43 iblechbot joined
dalek r27754 | coke++ | trunk: 21:44
: [distro]
: Fix svn properties on newly added file.
: It's ok to do this when the file is added. =-)
diff: www.parrotvm.org/svn/parrot/revision?rev=27754
jonathan pmichaud: I did some initial work on a Mutable PMC. 21:58
pmichaud: Will check it in...I'm going to write a bunch of tests for it, start subclassing it for Scalar, Array, Hash... 22:02
Plan to write a bunch of PIR tests to see how it works out, make sure it has the right kinda semantics. 22:03
And do all this in trunk.
Then once I think the semantics are right there, and you've reviewed it, I think at that point we make the branch to actually get Rakudo using it.
wknight8111 What does the Mutable PMC do that the existing PMCs don't? 22:04
NotFound Mutate? 22:05
purl hmmm... Mutate is a better name than negate?
moritz is that the basic type for containers?
jonathan moritz: Yes. 22:06
wknight8111: We're separating out the notion of container and value in Rakudo, so we can implement various stuff that's just hard/messy/impossible to do otherwise.
pmichaud which is what Perl 6 does, too (Synopsis 2) 22:07
jonathan: your plan sounds excellent -- great!
BTW, it is now almost certain that I'll be at YAPC::EU
NotFound Sounds like an action movie: "The attack of the mutating containers"
jonathan pmichaud: Awesome!
purl i heard awesome was not that word
vany good time of a day. it's me about ticket 54520 . It is good when all classes must remember their childs ? 22:09
NotFound vany: sounds bad to me. 22:13
wknight8111 jonathan, thanks for the explanation!
vany NotFound: and how to solve this problem ? 22:14
i have think about two ways : all objects allways check their classes and pasrents when instantiates or when class changed to new - class rebuilds all his childs. 22:15
NotFound vany: going from down to up, I suppose.
vany NotFound: in what moment i Class must decide to check it's parents ?
NotFound vany: not sure, but I think that the ticket is not about adding a new functionality, but a failure in method resolution. 22:18
vany NotFound: Ok. I think some more time about it. 22:20
pmichaud ticket #54520 is really about a problem with the existing method resolution algorithm -- it doesn't do what it's supposed to. 22:40
if i understand pdd15 correctly, adding methods to a superclass after an instance is created is supposed to work. 22:41
vany pmichaud: i already understand this. i try to solve this
22:42 tetragon joined
pmichaud (of course, the problem I give doesn't involve adding methods after class composition or instance creation) 22:42
pdd15 does talk about the case where an attribute gets added to a class after an instance has been created -- in this case a new class is created, but any existing objects continue to refer to the earlier class. 22:43
NotFound pmichaud: that info is not obsoleted? 22:45
particle no, it's not, until all instances of that version of the class are desroyed 22:46
pmichaud in other words, every instance always reflects the attributes of the class that were in existence at the time the instance was created. 22:47
we don't go back and try to adjust instances to include attributes created later. 22:48
jonathan Right. It's just straightforward GC stuff.
An object references the class it was instantiated with.
pmichaud (based on my testing that feature doesn't work yet, but that's what the spec says.)
jonathan If you change the class, you clone it, and then the new class is bound to the namespace entry, looked up with get_class
NotFound /* If we've been instantiated already, not allowed. */ 22:49
if (_class->instantiated) {
real_exception(interp, NULL, INVALID_OPERATION,
"Modifications to classes are not allowed after instantiation.")
}
pmichaud right now in parrot attempting to add an attribute to a class that already has an instance created causes an exception.
but this part of the implementation is not following the pdd15 spec -- i.e., it's still "to do"
NotFound class.pmc, add_attribute
jonathan pmichaud: Right. You need to clone_pmc it, and then you get a clone of the class with the instantiated flag unset, and you modify that.
pmichaud right. I'm not planning to implement it, although P6object will be smart enough to handle such things when it does get implemented :-) 22:50
jonathan If you want to modify an existing class so it affects existing instances, well, I don't know that PDD15 classes allow that.
But you can always subclass it to get what you want. :-)
NotFound pmichaud: given this and other comments in the code, I think that the "to do" is in the spec.
pmichaud NotFound: I don't understand.
jonathan The point of the way the object system is, is that we have an interface and as long as you impelment that you can have a class system that works how you like. 22:51
particle the source should be updated to add a TODO comment there
&| the exception should note that the experted behavior isn't yet implemented
pmichaud particle++ # note the "not yet implemented" 22:52
jonathan particle: Are you saying that PDD15 classes should allow modifications after instantiation, without cloning it and changing the clone instead?
pmichaud jonathan: all particle and I are saying is that the current implementation doesn't follow the spec. 22:53
we're not advocating a change to the spec.
jonathan pmichaud: OK, my understanding of the spec was that modifications aren't allowed after instantiation, without doing a clone.
NotFound pmichaud: maybe I'm wrong, but I thinked that that part of the specification was pending of changes.
pmichaud and the only reason I piped up at all was to try to point out features of the spec to vany
jonathan: from pdd15: If the class has already been instantiated, adding a new attribute triggers 22:54
the creation of a new class, replacing the old class. See L<Classes,
Namespaces, and the Class Registry>.
jonathan Aha.
particle apologizes for messing up metadata and manifest earlier
i'm out of shape :(
jonathan OK, I *thought* Allison and I had a discussion along the lines of, that went away in favor of the clone approach.
Because otherwise add_method somehow has to change the address of the thing invocant...which can't happen. 22:55
particle oh, hey, i thought about creating a make target that creates the MANIFEST file based on the files contained in svn ls
pmichaud jonathan: yes, I wondered about that as well when I was playing with it...
jonathan: so, I think your approach may be the correct one.
jonathan pmichaud: I'm pretty sure that we had a discussion along the lines of, "that way won't work, we have to do it the other way" 22:56
pmichaud jonathan: makes perfect sense to me.
jonathan I suspect what has happened, is the new way was added to the spec, and the old way wasn't removed.
pmichaud I didn't see the new way added to the spec.
jonathan clone_pmc isn't mentioned in there?
pmichaud no.
jonathan Oops.
wknight8111 seen ewilhelm?
purl ewilhelm was last seen on #wxperl 15 hours and 56 minutes ago, saying: hmm, GetPane would be $self?
jonathan Ok, I suspect that musta slipped through the cracks somehow, or one of Allison and I assumed the other would update the PDD. :-( 22:57
In which case, sorry for the confusion I've created.
pmichaud no problem. Again, your approach sounds completely sane to me.
jonathan OK, cool.
pmichaud I'll be happy to prototype the capability in P6object
jonathan note that if we do need to need different things in Perl 6, like the ability to change the class to affect already instantiated objects, then we can do it. 22:58
But we have to subclass the Class and Object PMCs.
NotFound I think I was mixing the behaviour of classes and pmcs.
jonathan The design was done so we can have languages doing their own behaviours like this, but still have them interoperate. :-)
pmichaud: Work I put in with Mutable so far is very preliminary, but feel free to take a look and tell me if it's a million miles of what you intended. But I don't expect it to be correct yet. 23:00
pmichaud I don't believe we need the ability for after-the-fact-changes in attribute to affect already instantiated objects. 23:02
We might need it for methods, but I think that's something that could conceivably be handled in core parrot.
(my response times may be slow for the rest of the evening... paula is tired from chemo today and I have to get dinner for kids and get them to bed.) 23:03
jonathan I am sleeping now too...got meeting tomorrow morning and lecture to deliver in afternoon 23:09
so, night from me
23:11 kid51 joined
dalek r27755 | jonathan++ | trunk: 23:12
: [rakudo] Very preliminary work on starting to get Mutable in place. It compiles, but that's about all. Needs tests, probably lots of fixes and so forth, not to mention cleanups.
diff: www.parrotvm.org/svn/parrot/revision?rev=27755
NotFound It's not clear in the spec if a pmc extending other pmc is supposed to inherit his methods automatically. 23:13
pmichaud NotFound: it is. 23:18
(it is supposed to inherit methods) 23:19
at least, that's how I always viewed it. Perhaps you're looking at a different spec.
wknight8111 Was "ParTcl" renamed to just "Tcl"? 23:20
or, a better question is, what is the Tcl compiler called now?
ewilhelm wknight8111: looking for me? 23:23
wknight8111 I am
ewilhelm what's up?
purl The birds, the sky, and the ceiling.
23:37 particle joined
DietCoke svn admin? 23:37
wknight8111: what about tcl?
partcl::tcl rakudo::perl6 23:38
er, partcl:tcl::rakudo:perl6
dalek r27756 | jkeenan++ | trunk: 23:39
: Implementing particle's request for renaming of STICKY_FILES in RT 54666.
diff: www.parrotvm.org/svn/parrot/revision?rev=27756
wknight8111 I was just wondering what the Tcl implementation is called now 23:48
particle tcl
wknight8111 Is it still called "ParTcl"?
ok
particle yes, partcl
in languages/tcl
wknight8111 okay, i'm trying to update docs/book, and I want to get all the names right!
23:53 bacek_ joined 23:54 bacek_ joined
DietCoke 'partcl', not "ParTcl" 23:59
(plz.)