pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~330 days 'til Xmas
Set by mncharity on 25 January 2009.
pugs_svn r25048 | lwall++ | [STD, S05] converge spec and parse of character classes 00:08
Amateurbr BEGIN failed--compilation aborted at ./ilbot2.pl line 4. 00:09
how to fix it?
[particle] Amateurbr: /join #perl 00:11
ask there.
Amateurbr I'm talking about irclog perl script
ilbot 00:12
moritz.faui2k3.org/en/ilbot
[particle] try: cpan Config::File
Amateurbr cool 00:17
unfortunately, I'm not the root :~~
Amateurbr script discarded 00:18
[particle] www.perlmonks.org/?node_id=303958 00:20
Amateurbr too hard for me, anyway thank you 00:36
s1n pmichaud: concerning rakudo on git, have you looked into git-svn? 00:44
pugs_svn r25049 | lwall++ | [S29] expand on use of * in orderings
r25049 | lwall++ | sort, min, and max shouldn't have an optional positional before a slurpy
r25049 | lwall++ | junctional functions take *@array, not a single @array parameter
r25049 | lwall++ | hence the corresponding methods are not exported
frew pugs: sub l ($a) { my StrLen $len = StrLen.new($a); return $len }; say l(1) 01:11
p6eval pugs: OUTPUT«*** No such subroutine: "&StrLen"␤ at /tmp/T5HiXZi0kH line 1, column 26-45␤» 01:12
frew rakudo: sub l ($a) { my StrLen $len = StrLen.new($a); return $len }; say l(1) 01:12
p6eval rakudo 36042: OUTPUT«Scope not found for PAST::Var '$len' in l␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
frew rakudo: sub l (Int $a) { my StrLen $len = StrLen.new($a); return $len }; say l(1) 01:18
p6eval rakudo 36042: OUTPUT«Scope not found for PAST::Var '$len' in l␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
frew blaaarg! 01:35
What does Unable to set lvalue on PAST::Val node mean? 01:36
[particle] a past val is a constant, usually. 01:43
you really shouldn't be trying to do 3 = ...
frew yeah 01:50
It's a test in substr
substr($str, 4, 5) = "frew"
pugs_svn r25050 | frew++ | [t] Added tests for substr(Int, StrPos) and substr(Int, StrLen) 02:06
frew Does anyone here know if "[opp] @list" is just a shortcut for [email@hidden.address] {$^a opp $^b}" ? 02:27
in which case it really only needs to be tested once 02:28
nevermind 02:30
I see that it's already tested 02:31
pugs: (1,3,2).delete(2) 02:33
p6eval pugs: RESULT«2»
frew pugs: (1,3,2).delete(1)
p6eval pugs: RESULT«3»
frew pugs: delete((1,3,2), 1) 02:33
p6eval pugs: RESULT«3»
frew pugs: ~delete((1,3,2), 1) 02:35
p6eval pugs: RESULT«"3"»
frew pugs: @foo = (1,3,2); delete(@foo, 1).say; @foo.say; 02:36
p6eval pugs: OUTPUT«*** ␤ Unexpected " ="␤ expecting "::"␤ Variable "@foo" requires predeclaration or explicit package name␤ at /tmp/iiHewKFDGV line 1, column 5␤»
frew pugs: my @foo = (1,3,2); delete(@foo, 1).say; @foo.say;
p6eval pugs: OUTPUT«3␤12␤»
frew pugs: my @foo = (1,3,2); delete(@foo, 1).say; @foo.join(',').say; 02:37
p6eval pugs: OUTPUT«3␤1,,2␤»
pugs_svn r25051 | frew++ | Added tests for delete as a function with and without named arguments 02:44
frew pugs: elems(1,2,3,4) 02:48
p6eval pugs: OUTPUT«*** No compatible multi variant found: "&elems"␤ at /tmp/9RCzkBLrbj line 1, column 1 - line 2, column 1␤»
frew pugs: elems((1,2,3,4)) 02:48
p6eval pugs: RESULT«4» 02:48
TimToady frew: it's not an exact equivalent, since [op] pays attention to associativity to decide whether to do things right-to-left or left-to-right 02:50
frew ok 02:51
well, either way there's already a test for it
speaking of, I was wondering if there was a reduce that you can use when the order doesn't matter
like with * and + but not / or ~ 02:52
TimToady it doesn't matter for * only in theory
frew ??
TimToady computer numbers are not real numbers
frew oh
right.
that's true
justatheory * 02:53
frew well that would still be cool
justatheory * * * * * * * *
frew what if the computer could pick up on that and act appropriately?
SamB TimToady: this is why they told you in school not to use floating point ;-P
frew like for [+] (@huge_list) it could actually do @huge_list.sort.reduce({...})
pugs_svn r25052 | frew++ | [t] added named argument test for elems 02:55
frew also: I really wish vim were better at parsing perl
frew I tried the perl6.vim that's in the pugs repo, but the pod still makes the whole file look commented out a lot 02:56
avar literal: fix it
pugs_svn r25053 | frew++ | [t] Added named argument tests for keys and values 03:02
frew std: frew(:bar($baz)) 03:12
p6eval std 25053: OUTPUT«Unknown routines:␤ frew called at 1 ␤00:05 86m␤»
frew std: kv(:array(@foo))
p6eval std 25053: OUTPUT«00:05 86m␤»
frew std: kv(:array @foo)
p6eval std 25053: OUTPUT«############# PARSE FAILED #############␤Unable to parse argument list; couldn't find final ')' at /tmp/RUsttf2buJ line 1:␤------> kv(:array @foo)␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ terminator␤00:05 85m␤»
frew std: kv(array => @foo) 03:13
p6eval std 25053: OUTPUT«00:05 86m␤»
pugs_svn r25054 | frew++ | [t] added named arguments to the kv test 03:18
pugs_svn r25055 | frew++ | [t] added named args and functional tests to pairs 03:32
s1n TimToady: ping 03:50
s1n rakudo my $t = "junk"; say $t :d; 03:56
s1n rakudo: my $t = "junk"; say $t :d; 03:59
p6eval rakudo 36042: OUTPUT«Statement not terminated properly at line 1, near ":d;"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
s1n rakudo: my $t = "junk"; say "hmm" if $t :d;
p6eval rakudo 36042: OUTPUT«Statement not terminated properly at line 1, near ":d;"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
s1n can someone explain to me the current state of adverbs in rakudo 04:14
and also, (TimToady maybe) i'm looking for an explanation of what methods such as :by act as 04:15
TimToady :by is not a method 04:44
it's just a named argument
s1n to what? Range's constructor?
TimToady to the function known as infix:<..> 04:45
which happens to construct a Range object, yes 04:46
s1n okay
what is a circumfix method/noun?
TimToady all of the prefix/infix/circumfix thingies are macros that map to functions 04:47
a circumfix is just a macro that looks for its delimiters on both ends 04:48
s1n i figured it had something to do with positioning
TimToady and leaves the parser in the state of expecting an infix
s1n so if i get a parse error that backtraces to a circumfix statement, it's reasonable to assume it's treating it as a circumfix method? 04:49
TimToady a prefix, in contrast, leaves it in the state of expecting more noun
if it says it couldn't find the closing delimiter, it just means it got confused somewhere in the middle
s1n hmm ok, not sure that makes perfect sense to me
TimToady the green/red transition of STD tells you where it got confused
s1n rakudo: 1..10 :by(3) 04:50
p6eval rakudo 36042: OUTPUT«Statement not terminated properly at line 1, near ":by(3)"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
TimToady which is a problem if you're colorblind :)
rakudo doesn't do :by yet
s1n right
i'm trying to understand why and how this sort of thing works :)
what is the green/red transition of STD? 04:51
TimToady std: $foo $bar 04:51
p6eval std 25055: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/ruqSphfN3f line 1:␤------> $foo $bar␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤00:05 86m␤»
SamB s1n: it's a special feature designed to confuse the color-blind
TimToady do you see the green and red there?
just after the arrow? 04:52
s1n gaim's coloring feature doesnt appear to work
i see a box with "001B" or "0018" in small font
s/gaim/pidgin/
TimToady ansi colors
well, if you cd src/perl6; make; tryfile foo 04:53
where foo contains $foo $bar
you'll see the error in real life
s1n i'll keep that in mind
TimToady: do you know if rakudo supports named parameters though? 04:54
TimToady to some extent it does
I'm not an expert on it though
biab & # picking up kid from karate
SamB s1n: it's not gaim 04:55
it's that these bots are sending ANSI escapes and not mIRC colors
someone told me the reason for this was that I had not implemented the mIRC color support in the botss, but then told me that I shouldn't use that here anyway 04:56
s1n i just learned to ignore it and assume it was something pidgin didn't support
SamB nothing supports it, as far as I know 04:57
s1n then why have it?
SamB it's just passed through from CLI programs, I guess
s1n seems like it should be converted for the bots
SamB to clarify, terminals support it
s1n not very useful for a bot though 04:58
SamB some people didn't like the idea of having that happen in this channel for some reason
s1n the colors work? that's bad why? 04:59
SamB well, then they would see colors
some people have strong feelings about colors on IRC, dunno why! 05:00
well, I mean, you don't want people using them like teenaged girls might ...
s1n well, pidgin allows me to force a format 05:02
rakudo_svn r36044 | petdance++ | consting and localizing 07:00
moritz_ rakudo: class A { has $.x; method s { $.x.say } }; my $a = any(A.new(:x(2)), A.new(:x(3)); $a.s 07:40
moritz_ frew++ # adding many tests 08:16
Matt-W Quiet in here today 11:42
moritz_ freenode has (or had) a large hiccup 11:43
masak I'm here.
just not working on anything p6y right now. 11:44
moritz_ that's why p6eval isn't in here, I assume it's on a netspliit
Matt-W aah
moritz_ and it has lost its connection a few times already today 11:45
Matt-W networks 11:46
who'd touch them, eh?
oh wait, that's what I do for a living...
masak en.wikipedia.org/wiki/Hype_cycle 11:58
I didn't know this was more wide-spread than the Haskell and Perl 6 worlds :)
Matt-W I looked at the u4x TODO
masak Matt-W: great! 11:58
Matt-W it's quite a long list isn't it
masak Matt-W: yes. no need to deny that.
there's a lot of work ahead. 11:59
Matt-W hmm why is that a cycle
it doesn't cycle
masak Matt-W: not for one single thing, perhaps.
it sort of cycles in that it comes back to populatiry
s/tiry/rity/
Matt-W mmm 12:00
what we also need for u4x is some guidance on formats
I hope that we can rely on the thing that processes the Pod to provide the inherited methods...
masak Matt-W: just so you know: my current plan for u4x is to prepare one thing from each category, and document that.
then we can sit down and discuss format requirements. 12:01
Matt-W that might be a good way to do it
masak I hope so.
Matt-W have a concrete thing sitting there telling us what we need to be able to do
masak aye.
masak at this stage, what I'd most appreciate is if people made the TODO as comprehensive as possible. 12:02
anything goes. I'll review commits that people make.
it's comparatively easy to find things that need to be added and add them.
masak gist.github.com/53317 # an adequate way to do heredocs while waiting for the real thing 12:27
rakudo_svn r36053 | cotto++ | [pmc] update *IntegerArray to use ATTRs 12:30
pmurias ruoso: hi 12:51
ruoso hi pmurias
pmurias ruoso: how will be workaround int not having .infix<+> etc.? 12:55
ruoso pmurias, where is infix<+> used as a method now? 12:56
pmurias .postcircumfix:<++> is used by s1p_array_interator 12:57
ruoso right...
pmurias, the idea of the iterator being private to the list that generated it is important because of that... 12:58
we can cheat there without any problem
since that iterator is only going to be used for that specific array implementation 12:59
in fact...
pmurias adding a non-spec method to a native class is a particularly bad way to cheat because it's hard to hide it 13:00
pmurias ruoso: the s1p_array_iterator is a generic one 13:01
as it uses the specced interface of any Array 13:02
ruoso pmurias, it's not really non-spec 13:03
multi method inifx:«<=»(int $other) is export 13:04
in int
postfix:<++> I agree to be a problem 13:07
but we might represent that in terms of infix:<+> instead 13:08
pmurias & 13:14
masak I found a bug. 13:22
rakudo: class A { has $.b; }; while shift [A.new( :b(0) )] -> $a { say $a.b; $a.clone( :b($a.b + 1) ); say $a.b; last; }
but p6eval isn't here. right. 13:23
masak perl6: class A { has $.b; }; while shift [A.new( :b(0) )] -> $a { say $a.b; $a.clone( :b($a.b + 1) ); say $a.b; last; } 13:53
p6eval elf 25059: OUTPUT«Useless use of reference constructor in void context at (eval 126) line 14.␤Undefined subroutine &Main::ARRAY called at (eval 126) line 8.␤ at ./elf_h line 4333␤»
..pugs: OUTPUT«*** Cannot 'shift' scalar␤ at Prelude.pm line 736, column 48-75␤»
..rakudo 36054: OUTPUT«0␤1␤»
masak Rakudo destroys the original object in this particular case.
Druid++ for exposing this bug.
ayrnieu pugs: sub List::rand { @_[rand +@_] }; <1 2 3>.rand 14:00
p6eval pugs: RESULT«\"1"»
ayrnieu rakudo: sub List::rand { @_[rand +@_] }; <1 2 3>.rand
p6eval rakudo 36054: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 71 (EVAL_17:43)␤»
masak rakudo: sub a { @_ } a 14:04
p6eval rakudo 36054: OUTPUT«Statement not terminated properly at line 1, near "a"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
masak rakudo: sub a { @_ }; a
p6eval rakudo 36054: RESULT«[]» 14:05
masak rakudo: sub a { @_[+@_] }; a
p6eval rakudo 36054: RESULT«undef»
masak rakudo: sub a { @_[+@_] }; <1 2 3>.a
p6eval rakudo 36054: OUTPUT«Method 'a' not found for invocant of class 'List'␤current instr.: 'parrot;P6metaclass;dispatch' pc 287 (src/classes/ClassHOW.pir:145)␤»
masak rakudo: sub List::a { @_[+@_] }; <1 2 3>.a 14:06
p6eval rakudo 36054: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 71 (EVAL_17:43)␤»
masak submits rakudobug
rakudo: sub List::a {}; <1 2 3>.a 14:07
p6eval rakudo 36054: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 71 (EVAL_16:40)␤»
masak hey, wait. 'sub'? 14:08
rakudo: method List::a {}; <1 2 3>.a
p6eval rakudo 36054: OUTPUT«Method 'a' not found for invocant of class 'List'␤current instr.: 'parrot;P6metaclass;dispatch' pc 287 (src/classes/ClassHOW.pir:145)␤»
pmichaud std: say 'hello'; class Foo; say 'oops'; 14:17
p6eval std 25059: OUTPUT«00:05 82m␤»
masak pmichaud: good day. 14:20
[perl #62828] reminds me of the bad old #58392 days. I look forward to the explanation for that one; .clone behaves well in all other circumstances, but not that one. 14:22
literal paste.nix.is 14:32
code highlighting courtesy of perl6.vim
line numbers don't work with highlighting yet, though 14:33
masak literal: awesome.
pmichaud #62828 just looks like some clone weirdness to me -- nothing fundamentally broken. 14:36
I'm not even sure that we have named parameters working in 'clone' yet.
masak still shouldn't screw up the original. 14:37
pmichaud (by "nothing fundamentally broken" I mean that it's not a deep bug require huge fixes)
masak oh, good.
pmichaud (which would be different from #58392)
ruoso literal, wouldn't you like to support STD-based highlight?
literal sure 14:39
masak moritz_++ # Match.perl 15:33
pmichaud actually, I suspect that Test.pm will become our first prelude component. :-) 15:53
masak combining November and u4x in some way would be awesome, I think. 15:56
literal what's u4x?
masak literal: it's a documentation project. 15:57
literal: use.perl.org/~masak/journal/38279 15:58
rakudo_svn r36055 | pmichaud++ | [rakudo]: spectest-progress.csv update: 295 files, 6546 passing, 0 failing 16:00
literal I see
TimToady mtnviewmark: just added missing before/after chain ops 18:10
mtnviewmark ah - in S03 and STD.pm?
TimToady in STD
they're already in S03 18:11
mtnviewmark thanks for the heads up
they are?
okay
TimToady under Generic comparisons or some such
also note new metaoperator on $a -cmp $b
mtnviewmark I see, like generic eqv 18:12
okay
will have to fit these in somewhere...
:-)
mtnviewmark hmm.. now eqv is different 18:13
no generic equal?
or is that eqv?
TimToady that's what eqv is
cmp == 0
mtnviewmark okay so, before, eqv, after
are the generic versions of <, ==, >
TimToady yes
but generic <= is spelled !after 18:14
mtnviewmark good - don't have room for beforeoreqv 18:14
PerlJam wait ... $a -cmp $b is the same as $b cmp $a ? 18:15
TimToady same as -($b cmp $a) modulo Order enum typing 18:16
er, no what you said
didn't see the reversal
PerlJam (I probably should have used $a and $b differently there :) 18:17
TimToady but you can pass infix:<-cmp> as a function, for instance
without generating a new closure
PerlJam That's neat I guess (though with my limited thought on the subject it looks like a solution in want of a problem) 18:18
TimToady shower & 18:23
rakudo_svn r36058 | particle++ | [rakudo] make Inf/NaN support portable 18:30
r36058 | particle++ | +58 tests with msvc
rakudo_svn r36059 | moritz++ | [rakudo] add a few more passing tests to t/spectest.data. 18:40
r36059 | moritz++ | Restore alphabetical ordering.
masak they're slightly wasted on me, because I log out daily -- but thanks. :) 19:11
masak 哈哈 19:11
diakopter oh, 19:12
TimToady that should keep us going till the next major outage 19:15
which, given how last night went, might be soon...
masak moritz_: how can I tell RT "I care a lot about this bug"? 19:16
moritz_ masak: blog about it *g* 19:17
masak 哈哈
moritz_: no, but ISTR that you had a list on RT with such bugs.
or were those bugs that you owned?
moritz_ first, you can click on "Basics" and change the severity 19:18
masak ah. good idea.
moritz_ then you can take them (and they'll be displayed on the overview page when you#re logged in)
masak what does it mean, socially, to take them? 19:19
moritz_ that you will try to resolve it
masak thought so.
I would if I thought that was the fastest way to get them fixed. :P 19:20
[particle] aw, crud, i forget the field to add your email addr to 19:24
oskie hm, is perl6 (any variant) usable at the moment? 19:26
[particle] yes
for my definition of usable
try rakudo.
oskie ah, ok, thanks (you answered my question even before i asked it :) 19:27
moritz_ rakudo: say "Hi, this is Rakudo, and I'm usable from IRC"
p6eval rakudo 36059: OUTPUT«Hi, this is Rakudo, and I'm usable from IRC␤» 19:28
masak oskie: I'm doing a wiki application in Rakudo. and a board game. and various smaller tools.
finanalyst moritz_: still examining caller.t. Last section of code has function 'chain'. Cant find description of chain
masak I'd call it very usable.
oskie masak: nice!
masak oskie: however... :)
oh, you'll find out for yourself.
moritz_ finanalyst: it's declared in that test file 19:29
sub chain { B.try_it_caller_B(@_)
}
masak oskie: use.perl.org/~masak/journal/38184
oskie debian has a 0.4.13 version of parrot, i suspect that's quite old (seeing that the dev ver is 0.9.0) 19:30
masak oskie: yes, use svn. 19:30
moritz_ don't even think about using 0.4.anything
finanalyst thanx. been looking at the file and missed it
masak moritz_: I'm half-stuck implementing pack/unpack in Rakudo. do you think prototyping it in your guerilla Prelude project would be a good idea?
oskie masak: heh... 7 bugs in 1 hour.. sounds like me trying to compile some basic java code with the gnu java compiler (gcj) some years ago 19:31
moritz_ masak: sure.
masak oskie: those were closed bugs, however.
oskie: it's been a while since I could _find_ 7 bugs in an hour. :) 19:32
oskie: oh. nvm. yes, 7 bugs.
oskie: but that's about a month ago, so now it'd be more like 2 or 3. :)
oskie masak: hah ok, good enough :) 19:33
masak yes, most of the time.
oskie: if you're interested in runnable code, do check out github.com/viklund/november github.com/masak/druid github.com/eric256/perl6-examples perlgeek.de/blog-en/perl-5-to-6/ 19:35
finanalyst moritz_: some more questions on caller.t 19:36
why should is ~a_sub() on line 12 return 'foo'?
regarding :undo, should this be moved to a fudge directive #?pugs undo 19:37
also line 12 of caller.t
moritz_ yes
uhm, I think that's wrong (return "foo") 19:38
masak finanalyst++ # doing test work
finanalyst trying, but not yet successfully
moritz_ the caller of b_sub is a_sub, so a_sub should return 'a_sub'
finanalyst that's what i thought
so where does "foo" come from? 19:39
moritz_ finanalyst: perhaps a renamed test function
masak (copy/paste)-- 19:40
moritz_ I'm wondering about line 18 also 19:41
finanalyst i thought that would work because it is line 18
moritz_ if caller reports the line of the calling *block*, then it works, but the previous test is wrong
but if it reports the line of the calling *sub*, then there is no such thing 19:42
so turning it into sub call_line { caller.line }; is call_line(), 18, 'caller.line works'; should do the trick
finanalyst but what about line 41 19:43
viz. chain({ caller().line }, "29", "caller line"); 19:44
moritz_ that's a bit trickier, I fear :/ 19:46
chain calls try_it_caller, which calls try_it 19:47
and try_it executes a block, which contains caller().line
so try_it_caller is the caller that caller() refers to
and try_it_caller is on line 29 19:48
so that's right, if you ask me
finanalyst mmm. and you told me caller.t was a good place to start on the test reviews :)
moritz_ I thought so, because it was about builtins (which are generally easier), and because it's easy to find the spec 19:50
finanalyst still its a good learning experience.
moritz_ glad to hear that ;) 19:51
masak rakudo: grammar G { regex TOP { foo } }; "foo" ~~ /<G::TOP>/; say $/.WHAT; G.parse("foo"); say $/.WHAT 19:54
p6eval rakudo 36059: OUTPUT«Match␤G␤»
masak sometimes I understand why it's called WHAT.
moritz_ shouldn't it be called WTF?
masak that'd be even more apt, yes.
I might make that my first Perl 6 Acme module.
moritz_ finanalyst: what I forgot to mention... since Rakudo doesn't implement caller() yet, there's no reason to try to fudge that file for rakudo 20:00
[particle] how much of t/ remains outside t/spec/ thee days? 20:01
5k tests? 10k tests?
moritz_ 4k to 5k 20:02
[particle] sweet!
we're ~75% converted?
moritz_ sial.org/pbot/34738
masak moritz_++
moritz_ don't forget simon**
erm, simon++ 20:03
[particle] wow
moritz_ and apart from t/regex/p6regex/p6regex.t none of the remaining files has more than 100 tests in it
[particle] was p6regex.t stolen from pge? 20:04
moritz_ yes
[particle] ok, so we know those pass, anyway :)
moritz_ and probably rx.t is a much better replacement
[particle] yep
moritz_ so I think I'll delete p6regex.t
pugs_svn r25064 | moritz++ | [t] a small script that tells you how many tests are in which parts of the 20:05
r25064 | moritz++ | test suite
[particle] have you run t/examples via rakudo? 20:06
oskie masak: thanks for the links... the perl 5 to 6 one was particularly useful! 20:07
moritz_ [particle]: the main part of that was 99-problems, which I mostly ported to spec/integration/99*
masak oskie: moritz_++ again, then :)
moritz_ blushes 20:08
[particle] ah, i didn't realize it's in spec/integration 20:09
i did notice spec/integration takes longer now, though :)
moritz_ I copied most of those files that actually contained tests (and not just stubs) 20:10
and merged them, ten each into one file
ruoso HellO! 20:11
masak ruoso: oh hai
pugs_svn r25065 | lwall++ | [README] no longer need TRE; now use YAML::Syck 20:14
oskie why do you still have $a,@b,%c when you can do $a,$b,$c assuming you initialize them to the correct type? 20:18
diakopter ruoso: howdy
ruoso diakopter, hi 20:19
diakopter, were you able to run mildew? 20:20
[particle] <1 2 3>.a is a method call, not a sub call 20:25
of course it shouldn't give null pmc access 20:26
but it shouldn't work, should it?
ruoso as long as the list doesn't provide a "a" method, it should fial 20:27
moritz_ not unless there was 'class List is also { method a { ... } }' before ;-)
ruoso moritz_, with the "use MONKEY_PATCHING;" before that ;)
moritz_ ruoso: I know, but Rakudo doesn't to pragmas yet, so I ignore that bit 20:28
diakopter ruoso: well, no. 20:29
ruoso diakopter, because it failed? or because you didn't try?
diakopter ruoso: Bareword found where operator expected at ../../src/perl6/STD.pm line 4, near "$LANG is" 20:30
`make all`
ruoso do you have perl 5.10?
diakopter yeah
ruoso you need to run make in ../../src/perl6 20:31
it is trying to run the Perl 6 code, and you need STD.pmc to be built
diakopter oh ok 20:32
I was actually doing that now too.
diakopter preparing to, anyway. installing Moose. 20:39
finanalyst moritz_: not quite sure what you mean, not fudge for rakudo. Since rakudo doesnt impliment caller(), shouldnt the whole file be skipped? 20:47
Also, for completeness, pugs requires eg., caller().sub but how to code this for implementation independence, but leave in code for pugs? 20:48
[particle] finanalyst: only files with a reasonable expectation of passing in rakudo are fudged
"fudge no file before its time"
moritz_ finanalyst: that's exactly what I meant - it won't run, so don't even try 20:49
Tene_ What is caller() ?
moritz_ Tene_: information about the caller of a sub
Tene_ What information?
moritz_ finanalyst: caller() seems fine
Tene_: line number, file, name... much like in Perl 5
Tene_ I think we could implement that in rakudo pretty soon with the bytecode annotations. 20:50
moritz_ finanalyst: since caller is a function, calling it as caller() is valid Perl 6, and can be left as is
Tene_: that would be great (especially if we finally got line numbers in run-time errors), but I think pmichaud++ needed to do some PGE rework first 20:51
Tene_ yeah
[particle] yep, need pge work to get line info, pge currently tracks only pos
finanalyst do you want caller.t moved to t/spec/S06-advanced_subroutine_features ?
moritz_ finanalyst: yes 20:52
diakopter ruoso: mildew can't find smop's .dll... I suppose I should install it someplace windows can find it... 20:53
ruoso diakopter, or use the windows equivalent for LD_LIBRARY_PATH
if there is such thing
diakopter tmp/Rf4Prebpgm:8: undefined reference to `_SMOP__S1P__Capturize' 20:54
and more 20:55
:( unfortunately I don't know how to get more verbosity or investigate/diagnose deeper. 20:56
so I'm grateful for any suggestions. :)
ruoso hmm 20:57
is it when running? or when compiling?
diakopter perl mildew -Cso -o prelude/Prelude.mildew.so prelude/Prelude.pm
/cygdrive/c/Users/mwilson/AppData/Local/Temp/ccmEaQCp.o: In function `init': 20:58
/tmp/Rf4Prebpgm:8: undefined reference to `_SMOP__S1P__Capturize'
ruoso ok, that's when compiling
diakopter it needs to know where some .h are?
ruoso hm.. well... undefined reference is usually a message of the linker, not the compiler 20:59
diakopter yeah, after 3 sets of those types of errors, this: collect2: ld returned 1 exit status
ruoso is there a way for you to check if smop.dll contains that symbol? 21:00
maybe the linker is being called incorrectly
diakopter yeah I can look at smop.dll's exports 21:02
smop.dll exports SMOP__S1P__Capturize 21:04
but not the one with leading _
sounds like yet another windows library building oddity. 21:05
ruoso yeah...
ruoso commute &
diakopter on yours, does it have which or both
ruoso diakopter, I'll take a look at it when I get homew
masak use.perl.org/~masak/journal/38353 21:07
oskie I found a typo in perlcabal.org/~azawawi/html/spec/S0...on.t.html, who can fix?
masak oskie: what's the typo? 21:07
oskie statementlist statement statement_modexpr statement_expr EXPR termish noun term term__S_393identifier identifier ident isstatementlist statement statement_modexpr statement_expr EXPR termish noun term term__S_393identifier args args_func_args (statementlist statement statement_modexpr statement_expr EXPR termish noun term term__S_393identifier args args_func_args semiarglist arglist EXPR EXPR termish PRE PRE_prepost PRE_prefix prefix pr 21:08
oops
stupid windoze clipboard... is(+Order::Decrease, 1, 'Order::Increase numifies to 1'); <- should read 'Order::Decrease numifies to 1'); 21:09
masak aye, I see it.
fixing.
moritz_ oskie: the source is in t/spec/S03-operators/comparison.t - do you want a commit bit?
oskie: then you can fix such things on your own
oskie moritz_: hehe, ah, there it is. sure, i can fix it! 21:10
pugs_svn r25066 | masak++ | [comparison.t] typo spotted by oskie++
moritz_ heh, masak was faster ;-)
masak blows gun pipes
oskie moritz_: strange, i don't have t/spec (from daily snapshot) 21:11
masak oskie: Pugs repository?
oskie i should probably check out the code directly
masak oskie: you should.
oskie: in Rakudo, you'll get the latest t/spec tests by running 'make spectest' in the perl6 dir. 21:12
[particle] 'make testable' will get the latest t/spec
make spectest will do that, and run the tests
masak [particle]: thanks. 21:13
oskie ah, that's useful 21:18
masak oskie: all this is because the spectests really reside in the Pugs repository, which can also be svn-checked-out through 'svn co svn.pugscode.org/pugs' 21:19
oskie masak: ah, ok 21:21
jnthn masak: whiner! :-P 21:22
masak admittedly.
pugs_svn r25067 | putter++ | [elfparse] Now works with STD r25030 (dropped need for the r25041 patch). Also added :foo('bar') - colonpair with parens.
masak please, please, please fix! :/
I'm suffering from the beginnings of Perl 6 withdrawal here. 21:23
finanalyst particle: still not clear on fudge/nofudge. Saying that no need to fudge, do you mean dont include #?rakudo: todo directives?
moritz_ finanalyst: that's right
jnthn masak: I'll bet the clone bug is to do with Perl6Scalar doing not-exactly-what-you-expect on clone...
masak jnthn: I'm glad you have an inkling on that one. Druid is sad because of it. 21:24
moritz_ and sad druids are dangerous ;-) 21:25
masak moritz_: especially the kind wielding large blocks of stone.
jnthn masak: Ah. On the paris one - I kinda knew full well that | on a hash didn't work... 21:26
I think the |@a one made it in because someone specifically needed that and it's not quite done the right way.
masak ok.
jnthn pm and I discussed how to do it right on a bus in San Francisco. Now I just need to remember what we said...
masak best of luck. 21:27
pugs_svn r25068 | finanalyst++ | [t] moved builtins/caller.t to spec/
jnthn masak: I'm a tad drowsy today, after late night yesterday (;-)) and flight today...will try and look tomorrow. 21:28
moritz_ finanalyst++
masak jnthn: no prob.
jnthn Was good to see you yesterday - thanks for coming down! :-)
masak jnthn: thank _you_ for inviting me. :) 21:29
pugs_svn r25069 | finanalyst++ | [t/spec] slight edits to S06-advanced_subroutine_features/caller.t
jnthn Erm. www.pmichaud.com/perl6/rakudo-tests...-01-27.png
Where did all the new spectests come from?!
masak whoa. 21:30
jnthn somebody++ if it's for real. 21:31
moritz_ jnthn: pmichaud, you, Tene, [particle], masak, me... 21:32
finanalyst moritz_: pls review t/spec/S06-advanced_subroutine_features/caller.t
Tene_ What about me?
masak didn't do nuttin'
moritz_ jnthn: I estimated it's an average of more than 70 per day since may 2008 - I should blog about it
finanalyst: sure thing, I review (nearly) all commits to the test suite 21:33
jnthn moritz_: I was more noticing on that latest graph, that the grey jumped up by a _load_ of late.
Like, last day or two.
finanalyst i still dont think line 13 is right. Should be "a_sub", not "foo"
moritz_ finanalyst: right
finanalyst ok, will change
jnthn I've added more tests, but mostly ones that pass and exercise new but un[der]?tested features I'm putting in. 21:34
moritz_ finanalyst: the syntax is '#?pugs 2 todo "reason"', with no colon after the 'pugs' part
jnthn: ah that - I'm quite sure it's bogus
jnthn moritz_: Ah.
moritz_ oh wait
I did move 1.5k regex tests
(Unicode props mostly) 21:35
jnthn That'd do it! ;-)
Or were they new ones?
moritz_ no
they lived in t/regex/from_perl6/rules/properties.t (or similar) 21:36
jnthn Ah, OK.
Now we just need someone with PGE-foo to make 'em pass. ;-)
pugs_svn r25070 | moritz++ | [t] remove p6regex.t, spec/S05-mass/rx.t is much better and more up-to-date
pugs_svn r25071 | finanalyst++ | [t/spec] slight edits to S06-advanced_subroutine_features/caller.t 21:37
finanalyst moritz_: you said syntax #?pugs ... no colon. But t/spec/README line 38 specifies an optional colon. 21:39
Is colon now not correct? 21:40
[particle] moritz_: +70 passing/day? 21:41
masak rakudo: grammar G { regex TOP { ^ <token>* $ }; regex token { <foo>|<bar> }; regex foo { foo }; regex bar { bar} }; "foofoobarfoo" ~~ /<G::TOP>/; say $/<token>.WHAT 21:47
p6eval rakudo 36065: OUTPUT«Failure␤»
masak what should I do to get at the list of tokens inside $/ ?
moritz_ finanalyst: oh, I've never used it with colon, maybe it also works that way... sorry for the false alarm
[particle]: on average, yes 21:48
I'll just blog about it, with a chart and all
jnthn rakudo: grammar G { regex TOP { ^ <token>* $ }; regex token { <foo>|<bar> }; regex foo { foo }; regex bar { bar} }; "foofoobarfoo" ~~ /<G::TOP>/; say $/.WHAT; say ?$/; 21:50
p6eval rakudo 36065: OUTPUT«Match␤1␤»
jnthn rakudo: grammar G { regex TOP { ^ <token>* $ }; regex token { <foo>|<bar> }; regex foo { foo }; regex bar { bar} }; "foofoobarfoo" ~~ /<G::TOP>/; say $/<TOP><token>.WHAT 21:51
p6eval rakudo 36065: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'␤current instr.: 'postcircumfix:{ }' pc 3556 (src/classes/Associative.pir:77)␤»
moritz_ jnthn: $/<G::TOP> is more intersting
jnthn rakudo: grammar G { regex TOP { ^ <token>* $ }; regex token { <foo>|<bar> }; regex foo { foo }; regex bar { bar} }; "foofoobarfoo" ~~ /<G::TOP>/; say $/<G::TOP> 21:52
p6eval rakudo 36065: OUTPUT«foofoobarfoo␤»
jnthn aha
jnthn rakudo: grammar G { regex TOP { ^ <token>* $ }; regex token { <foo>|<bar> }; regex foo { foo }; regex bar { bar} }; "foofoobarfoo" ~~ /<G::TOP>/; .say for @($/<G::TOP><token>) 21:52
p6eval rakudo 36065: OUTPUT«Method 'say' not found for invocant of class 'G'␤current instr.: 'parrot;P6metaclass;dispatch' pc 287 (src/classes/ClassHOW.pir:145)␤»
masak rakudo: grammar G { regex TOP { ^ <token>* $ }; regex token { <foo>|<bar> }; regex foo { foo }; regex bar { bar} }; "foofoobarfoo" ~~ /<G::TOP>/; say +$/<G::TOP><token>
p6eval rakudo 36065: OUTPUT«4␤»
masak moritz_++ # thanks
moritz_ [particle]: sorry, mis-remebered. 23 per day, 700 per month 21:57
jnthn That sounds more realistic!
[particle] wow. 700/mo
masak still very good, though. 21:58
jnthn But still, quite an achievement.
[particle] yep
jnthn hopes we can keep it up 21:59
masak based on the current look of the spectest graph, if we _do_ keep it up, we'll run out of spectests in late May. 22:04
jnthn masak: You're assuming that there won't be any new spectests. 22:05
moritz_ masak: ... which is why I struggle so badly to get new people involved with testing
masak jnthn: yes. or rather, not enough.
jnthn masak: For parametric roles, there were few existing tests to draw on. 22:06
So I had to write a bunch of new one.
So that work mostly ended up with new spectests rather than getting existing ones passing.
moritz_ jnthn: that's sadly a fair assumption. The number or really new tests (not moved tests) isn't all that big. Your parameterized roles stuff is a notable exception of that rule
masak jnthn: still, did you write 70 a day?
jnthn Junction auto-threading was a similar case.
moritz_ jnthn: speaking of which... do you know if we have any tests for threading over the invocant? 22:07
jnthn I doubt I wrote 70 a day. Maybe one day...
masak on _average_ :)
jnthn moritz_: as in, $a.foo when $a is a junction?
moritz_ jnthn: that's what I mean, yes
jnthn moritz_: Gah. I'm still not 100% clear on what the spec is.
moritz_ jnthn: TimToady says "autothread over any method not defined in Junction" 22:08
jnthn masak: Of course not. The point was just that, while sometimes making something new work results in an un-fudge, some of the time I end up adding more tests.
moritz_ jnthn: it works, I tested it with an rakudo: one-line
jnthn moritz_: It works? Wow.
moritz_ one-liner, that is
rakudo: class A { method b { say (1..10).pick } }; (A.new, A.new, A.new).b 22:09
p6eval rakudo 36065: OUTPUT«Method 'b' not found for invocant of class 'List'␤current instr.: 'parrot;P6metaclass;dispatch' pc 287 (src/classes/ClassHOW.pir:145)␤»
moritz_ rakudo: class A { method b { say (1..10).pick } }; any(A.new, A.new, A.new).b
p6eval rakudo 36065: OUTPUT«Could not locate a method 'b' to invoke on class 'Junction'.␤current instr.: 'die' pc 16767 (src/builtins/control.pir:204)␤»
masak jnthn: point taken. such additions will postpone the 'late May' date, but not by very much. the spectests will eventually run out.
moritz_ uhm.
masak rakudobug?
moritz_ jnthn: seems I was temporarily insane when I thought it worked
masak: if you please ;-)
jnthn moritz_: OK, it was either you or me. ;-)
masak submits
jnthn moritz_: I *think* that once we are putting the correct invocant type into the signature, it *should* just fall out of what we already have... 22:10
Since methods inside Junction will match on the invocant type...and the rest won't and will just trigger the auto-threader. 22:11
The lack of invocant type checking is a bug anyway. Just not worked out the Right Way to fix it yet.
pugs_svn r25072 | masak++ | [u4x/TODO] added term 'autothreading' 22:12
masak rakudo: grammar Tokenizer { regex TOP { ^ <token>* $ }; regex token { <foo> | <bar> }; regex foo { foo }; regex bar { bar } }; "foobar" ~~ /<Tokenizer::TOP>/ or die "AOUCH"; $/ := $<Tokenizer::TOP>; .say for $<tokens> 22:16
p6eval rakudo 36065: OUTPUT«Use of uninitialized value␤␤»
masak what am I doing wrong? I want a list of tokens, i.e. "foo\nbar\n"
moritz_ try @( $<tokens> ) 22:17
masak nope, no luck.
$<tokens> is actually undefined.
Failure.
PerlJam there is no "tokens" that I can see.
just "token"
moritz_ ah, $<token>
masak PerlJam: thank you.
masak is blind and shouldn't code 22:18
PerlJam It's just a brain-eye disconnect that happens sometimes
masak rakudo: grammar Tokenizer { regex TOP { ^ <token>* $ }; regex token { <foo> | <bar> }; regex foo { foo }; regex bar { bar } }; "foobar" ~~ /<Tokenizer::TOP>/ or die "AOUCH"; $/ := $<Tokenizer::TOP>; .say for $<token>
p6eval rakudo 36066: OUTPUT«Method 'say' not found for invocant of class 'Tokenizer'␤current instr.: 'parrot;P6metaclass;dispatch' pc 287 (src/classes/ClassHOW.pir:145)␤»
masak WTF?
did I call .say on a Tokenizer?
moritz_ masak: the things in $<token>[0] are also Match objects... 22:19
masak but hardly Tokenizer objects, right?
moritz_ masak: which by a bug you reported early are reported as of class Tokenizer, wrongl so
PerlJam surely that's the same ... right
masak it feels like the same bug, yes.
PerlJam G.parse makes $/ a G instead of a Match
moritz_ rakudo: ("a" ~~ /a/).say 22:20
p6eval rakudo 36066: OUTPUT«a␤»
masak ok, heading home to sleep. 22:26
Rakudo has too many bugs right now, if y'ask me. :/
'cetere censeo...' 22:27
moritz_ si tacuisses, philosophus... 22:27
moritz_ perlgeek.de/blog-en/perl-6/rakudo-rocks.html 22:39
PerlJam neat 22:40
moritz_ I wanted to add something about how Rakudo is at least as good as git and Obama together, but I forgot it, and safe it for another post 22:41
PerlJam I don't recall rakudo saying "Yes We Can" nor do I recall it being a force of "Change" :) 22:43
moritz_ I didn't say it did the same, just that it's at least as good ;-)