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.
00:23 vixey left
pugs_svn r25073 | lwall++ | [STD] cut reduce meta tokens in half, memory usage 40% smaller 00:24
TimToady std: say "howdy"
p6eval std 25072: OUTPUT«00:07 92m␤» 00:25
00:26 hanekom__ left
TimToady std: say "howdy" 00:29
p6eval std 25073: OUTPUT«00:07 92m␤»
00:30 Exodist left 00:31 pbuetow left
pugs_svn r25074 | hinrik++ | [util/perl6.vim] remove some duplicate code, give Q strings less matching priority than identifiers/functions/ops so that the 'q' in '$foo eq $bar' will not be considered the start of a q$$ string 00:31
TimToady I've basically had to stop using perl6.vim on STD.pm, just too slow 00:33
literal I recently turned a few slow things off by default, have you tried it recently?
TimToady My system's perl6.vim is a symlink into the repo :/
so I'm always using the latest 00:34
pugs_svn r25075 | hinrik++ | [util/perl6.vim] and update the timestamp
literal yes, but you said you stopped, was that before or after the aforementioned change? :P
TimToady I stopped about half an hour ago 00:35
literal heh, I see
TimToady it seems to be reparsing everything from the top, maybe
I wonder if there's a way to just reparse the current function
literal there is a way, I just haven't gotten around to doing that... 00:36
TimToady assume /^{/ is a potential resync point
or /^}/
literal yeah, I only have hooks for ^= pod stuff now 00:37
TimToady course, that doesn't help in the middle of a class
or lines starting with sub, method, token, etc 00:38
ignoring leading ws
anyway, a lag of several seconds is what I get here, and it makes it a bit hard to edit 00:39
pugs_svn r25076 | hinrik++ | [util/perl6.vim] add a few missing keywords 00:50
r25077 | lwall++ | [STD] assignop should rely on :assign, not on non-Bool 00:57
frew std: foo( :bar($baz)) 01:07
p6eval std 25077: OUTPUT«Unknown routines:␤ foo called at 1 ␤00:04 63m␤»
frew std: join( :bar($baz))
p6eval std 25077: OUTPUT«00:04 63m␤»
frew std: join(bar: $baz)
p6eval std 25077: OUTPUT«Unknown routines:␤ bar called at 1 ␤00:05 72m␤»
frew Hey I am having some weird issues with a test 01:11
I can't seem to get it to skip a test
TimToady as in fudge? 01:12
frew uh, maybe?
as in #?rakudo skip 'foo'
TimToady a single test or a block?
frew I tried both
TimToady nopaste it?
frew good idea 01:13
one sec
rafb.net/p/0YOvhN13.html 01:14
TimToady looking
skipped blocks have to be flush on the margin 01:16
iirc
[particle] true dat.
frew ahh! 01:17
thanks
is there any reason some blocks have semicolons after them/
TimToady if not the last thing on the line
frew ah, k 01:18
also: do any of you use vim and have problems with entire tests looking commented out because of the pod?
p6paste "frew" at 127.0.0.1 pasted "pop.t" (90 lines) at paste.nix.is/4 01:19
literal better paste :)
if you like highlighting, that is
frew ah, cool
I'll take that as a no. 01:21
pugs_svn r25078 | frew++ | [t] named argument test for pop 01:22
literal frew: maybe you are using the Perl 5 vim syntax file
you need this: svn.pugscode.org/pugs/util/perl6.vim
frew yeah
I got that
literal at the moment it's a bit slow and doesn't highlight regexes/grammars, but otherwise it's useful
frew and I put it in ~/.vim/ftplugin/ 01:23
literal it should be in ~/.vim/syntax
frew but it seems to not highlight anything
oh
my bad
literal and you'll have to do ":set ft=perl6" if the file you're editing doesn't contain a vim modeline declaring the filetype 01:24
frew oooh!
it works!
thank you!
well, I'll just add the modeline
it's in like, half of them 01:25
literal yeah
pugs_svn r25079 | frew++ | [t] named arg test for push 01:31
frew literal: that is kinda slow. is that just because perl6 is complicated or what/ 01:33
literal that, and vim's syntax highlighting engine is very limited 01:36
so I had to use lookahead/lookbehind a lot in the regexes 01:37
frew ahh
gotcha
because of matching and stuff?
literal and all these weird operators :P 01:38
pugs_svn r25080 | frew++ | [t] named arg tests for shift
frew haha
yeah, I took a peak at it and I like how you were like, "A MILLION KEYWORDS!" 01:39
TimToady std: $a <<=== $b
p6eval std 25079: OUTPUT«############# PARSE FAILED #############␤Can't make assignment of sequencer operator at /tmp/MiOjiXWklg line 1:␤------> $a <<=== $b␤00:04 62m␤»
01:40 DemoFreak left
literal frew: that comment was there before I started changing it, actually :P 01:40
one of the few things I left unchanged
TimToady std: $a ==>>= $b 01:41
p6eval std 25080: OUTPUT«00:05 84m␤» 01:42
TimToady oops
frew nice
pugs_svn r25081 | lwall++ | [STD] catch ==>>=
TimToady std: $a ==>>= $b 01:43
p6eval std 25080: OUTPUT«00:05 84m␤»
TimToady waits
std: $a ==>>= $b 01:45
p6eval std 25081: OUTPUT«00:05 84m␤»
TimToady hmm 01:46
std: $a ==>>= $b 01:47
p6eval std 25081: OUTPUT«00:05 84m␤»
TimToady guess it needs to rebuild its lexer cache...it fails here anyway 01:48
frew TimToady: so I just realized who you are
TimToady I'm still trying to figure that out
frew thanks for being awesome!
haha, aren't we all?
TimToady thanks for the encouragement
frew haha, no problem
I have a question for you about a syntax choice 01:49
you guys do this for named args: foo( bar => $baz)
or foo( :bar(baz))
have you even considered foo(bar: $baz)?
TimToady that means somethign else
frew I know that's a total ripoff of javascript/ruby2
yeah, I figured that would be the case 01:50
TimToady that means bar.foo($baz)
frew wait....
TimToady because : on the first arg means it's an invocant
frew ooooh
so foo(:bar($baz)) != foo(bar => $baz)?
TimToady std: print $*OUT: "howdy"
p6eval std 25081: OUTPUT«00:06 73m␤»
TimToady those are the same 01:51
frew so foo(bar: $baz) = bar.foo($baz) ?
TimToady usually seen as 01:52
foo bar: $baz
without the parens
frew ahh
01:52 sri_kraih joined
TimToady it's the p5 indirect object syntax, only not nearly so ambiguous 01:52
frew so that's like the syntax in perl5 kinda
got it
TimToady we use it in sigs too: method foo ($self: $a, $b) {...} 01:53
frew Yeah, I noticed
but that's not quite the same is it?
I take it back, I guess it is 01:54
TimToady well, has a different effect in a sig, but still means "this thing on the left is the invocant"
frew So do we need to put ($self: ...) in all of our object methods?
TimToady nope
literal so this is valid? method $self.foo ($a, $b) { ... }
frew ah, great
TimToady no 01:55
just method foo ($a,$b) is fine
the invocant is optional in the sig
literal yeah
TimToady just if you want to name it
literal just wondering how close the analogy to indirect object syntax went
frew ok, and one other question that I haven't seen in any of my readings 01:56
what about threading stuff?
I read that perl6 is better than perl5 threading
but is it as good as weird functional lanuages at threading etc?
TimToady well, it's designed to have almost no global state, which helps
literal frew: seen this? svn.pugscode.org/pugs/docs/Perl6/Sp...rrency.pod
TimToady and plenty of primitives that allow lightweight threading 01:57
you're basically spawning threads when you do foo() ==> bar()
and contextual variables are intended to be more thread friendly than p5's local
frew cool 01:58
does it have features like clojure?
my Larry Wall fan girl friend asked me to ask that, so I can't tell you what that means :_) 01:59
literal "Concurrent programming through software transactional memory, an agent system, and a dynamic var system"
says Wikipedia
frew just to disambiguate, my friend isn't a girl or my girlfriend, but acting (like I am) like a fangirl :-) 02:01
literal our hopes; dashed
TimToady it's okay to be a fanboy too :)
frew yeah, but it's funnier to say fangirl
literal btw, I'd like to echo frew's earlier sentiment 02:03
TimToady there is a plan to support STM, but remains to be seen how well that works out
literal TimToady: thanks for being awesome!
TimToady thanks for the encouragement
std: $a ==>>= $b 02:04
p6eval std 25081: OUTPUT«############# PARSE FAILED #############␤Can't make assignment out of sequencer operator at /tmp/7MLDzOEmtj line 1:␤------> $a ==>>= $b␤00:04 62m␤»
TimToady that's more like it
literal TimToady: you said tchrist is working on the next Programming Perl version? any idea how that's going? 02:05
frew literal: any idea why vim sometimes accidentally highlights large swaths of code as if they are strings?
TimToady he was working on a new Perl 5 version, I think
no idea how it's going
literal frew: does it appear to be random, and goes back to normal by scrolling back and forth? 02:06
s/by/when/
if it's not random then I'd like to hear what code caused it 02:07
if it's some grammar/regex stuff then that's because that hasn't been finished yet
frew literal: yeah 02:08
literal: it's not just perl though, it happens with javascript at work
and often with folds?
I think its a vim bug
but it's REALLY hard to pin down
02:10 s1n left
literal I suspect it only happens when the syntax syncing in vim is set so that it only highlights the code you're currently looking at, or that is, all the way back to the start of some region 02:10
frew hm 02:11
literal and it either can't find any starting point within the limit specified (usually 100 lines)
frew so the only real solution to that is small files
literal or "syn sync fromstart"
which makes it highlight the whole file when opening it 02:12
frew should I put that in my .vimrc?
hmm
that shouldn't be so bad at work
my work computer is like, awesome
literal Perl 5's syntax file does that, and it only causes a slight delay when the file is a few thousand lines
frew ok, I just did :syn sync fromstart 02:13
literal perl6.vim does it too because I haven't registered the required syntax syncing hooks (i.e. "when you look back and see this pattern, what follows is a subroutine")
frew and then did :e t/spec/S29-array/splice.t
and it's still busted
literal but it's slower simply because Perl 6 is more complicated than Perl 5
frew ok 02:14
02:14 araujo left
frew so the reason it didn't work just now is because perl6.vim is basically just not done 02:14
literal splice.t looks fine to me
did you forget to set the filetype? 02:15
frew I added # vim: syn=perl6 to the end
and if I go to the bottom of the file and reload it it looks all stringy
literal that's not right
frew (you *must* load the file with the cursor at the bottom)
literal should be: # vim: ft=perl6 02:16
frew ok, done, but it still has the issue
literal yeah, it happens when the cursor is at the bottom 02:17
don't know why
it shouldn't happen since vim highlights the whole file upon opening it
frew well, I'll try that syn sync fromstart at work 02:18
literal you shouldn't have to try it for Perl 6, it's already in the syntax file :P 02:19
frew haha
is there a >> << for blocks?
literal what do you mean?
frew like instead of @foo >>+<< @bar 02:20
literal feed operators?
ah
frew hyper(@foo, @bar, { $^a + $^b})
literal you could define your own operator and put it in >> <<
frew that's kindav a drag
what if I want to iterate over two arrays at once? 02:21
note: that is not the same question
TimToady for @foo Z @bar { $^a + $^b } 02:22
frew interesting 02:23
so that's what zip does?
literal it weaves them together, just like your zipper does :P
02:24 s1n joined
TimToady perl6: for 1,2,3 Z 4,5,6 { say $^a + $^b } 02:25
p6eval rakudo 36073: OUTPUT«5␤7␤9␤»
..pugs: OUTPUT«4␤2␤»
..elf 25081: OUTPUT«Undefined subroutine &GLOBAL::infix_Z called at (eval 120) line 3.␤ at ./elf_h line 4333␤»
TimToady looks like rakudo has it right 02:26
perl6: map &infix:<+>, (1,2,3 Z 4,5,6) 02:27
p6eval pugs: RESULT«(4.0, 2.0)»
..elf 25081: OUTPUT«/home/evalenv/pugs/misc/STD_red/match.rb:141:in `block in to_dump0': undefined method `to_dump0' for true:TrueClass (NoMethodError)␤ from /home/evalenv/pugs/misc/STD_red/match.rb:140:in `each'␤ from /home/evalenv/pugs/misc/STD_red/match.rb:140:in `map'␤ from
../home/evalenv/pugs/mi...
..rakudo 36073: OUTPUT«Statement not terminated properly at line 1, near ":<+>, (1,2"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
TimToady perl6: map &infix:<+>, zip(1,2,3; 4,5,6) 02:28
p6eval pugs: RESULT«(6.0,)»
..elf 25081: OUTPUT«/home/evalenv/pugs/misc/STD_red/match.rb:141:in `block in to_dump0': undefined method `to_dump0' for true:TrueClass (NoMethodError)␤ from /home/evalenv/pugs/misc/STD_red/match.rb:140:in `each'␤ from /home/evalenv/pugs/misc/STD_red/match.rb:140:in `map'␤ from
../home/evalenv/pugs/mi...
..rakudo 36073: OUTPUT«Statement not terminated properly at line 1, near ":<+>, zip("␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
frew it looks like pugs is doing something (at least to me) unexpected for thsi for 1,2,3 Z 3,2,1 { say $^a ~ $^b; } 02:30
I get '1 32 2\n3 1Item' 02:31
TimToady perl6: for (1,2,3) Z (4,5,6) { say $^a + $^b } 02:33
p6eval rakudo 36073: OUTPUT«5␤7␤9␤»
..pugs: OUTPUT«4␤2␤»
..elf 25081: OUTPUT«Undefined subroutine &GLOBAL::infix_Z called at (eval 120) line 3.␤ at ./elf_h line 4333␤»
frew so I should start using rakudo for my playing. 02:34
it's not as nice
TimToady pugs: for zip(1,2,3; 4,5,6) { say $_ }
p6eval pugs: OUTPUT«123456␤»
TimToady pugs: rakudo: zip(1,2,3; 4,5,6) { say $_ } 02:35
p6eval pugs: OUTPUT«*** ␤ Unexpected "{"␤ expecting operator␤ at /tmp/0mSHro2tcp line 1, column 27␤»
TimToady rakudo: for zip(1,2,3; 4,5,6) { say $_ }
frew you forgot the for
p6eval rakudo 36073: OUTPUT«Statement not terminated properly at line 1, near "(1,2,3; 4,"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
TimToady perl6: say 1,2,3 Z 4,5,6 02:36
p6eval pugs: OUTPUT«123␤»
..rakudo 36073: OUTPUT«142536␤»
..elf 25081: OUTPUT«Undefined subroutine &GLOBAL::infix_Z called at (eval 120) line 3.␤ at ./elf_h line 4333␤»
TimToady perl6: say (1,2,3 Z 4,5,6)
p6eval pugs: OUTPUT«1 42 53 6␤» 02:37
..rakudo 36073: OUTPUT«142536␤»
..elf 25081: OUTPUT«Undefined subroutine &GLOBAL::infix_Z called at (eval 120) line 3.␤ at ./elf_h line 4333␤»
TimToady pugs has precedence and extra-[] problems there
frew my rakudo is invariably failing splice.t 02:38
I'll stop using pugs 02:39
02:39 gravity joined
frew weird. 02:40
it's saying splice isn't a sub 02:41
TimToady it was aiming at the design from several years ago, and has suffered some "design rot" since then
frew yeah
rakudo: splice(1,2,3; 1,2) 02:42
p6eval rakudo 36073: OUTPUT«Statement not terminated properly at line 1, near "(1,2,3; 1,"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
frew rakudo: my @f = 1,2,3; splice(@f, 1,2)
p6eval rakudo 36073: OUTPUT«Could not find non-existent sub splice␤current instr.: '_block14' pc 116 (EVAL_17:53)␤»
frew does perl6 allow "monkey patching" and is it scoped in any way? 02:45
02:47 japhb left
TimToady heh 02:50
look at S12 and scan for MONKEY_PATCHING 02:51
gravity grins 02:53
frew nice
what if I have a module that monkey patches Scalar and adds some method and then you do it in another module with the same method name? 02:55
TimToady there are reasons we try to discourage magical action at a distance in the design of Perl 6 :) 02:57
and the requirement to put "use MONKEY_PATCHING" at the front of your file is just one of the ways we discourage the practice 02:58
nevertheless, every now and then you want a tactical Swiss Army nuke...
just keep your uranium at a distance from my uranium... 02:59
frew TimToady: yeah, but my question is: what if you write modules, and you uranium it up, but I don't want your uranium. Will using your module give me radiation? 03:01
TimToady MONKEY_PATCHING is really easy to grep for 03:03
frew so you are saying yes
but that is an ok alternative
because scoped monkey patching would be weird at the very least
TimToady basically, MONKEY_PATCHING should be considered part of the public interface of a module 03:04
frew and the main reason monkey patching is good (imho) in ruby is because it's missing macros
ok, that makes sense
and typically if a module has monkey patching it's whole purpose is monkey patching
TimToady it's a bad solution to the wrong problem :)
frew hahahaha
well, the perfect example is andand
which perl6 and groovy have out of the box 03:05
but nonetheless could be taken care of with macros
$foo.?bar
TimToady our goal is to give everyone all the tools they need, and then discourage them from using the tools by also giving them the primitives they need :)
frew haha 03:06
yeah
I noticed today that perl5 doesn't have capitalize
which is ok, but it would be nice to have
TimToady well, it has ucfirst...
frew (SOMEONE STORED EVERYTHING IN THE DB AS ALL CAPS)
TimToady probably andy 03:07
frew TimToady: yeah, but 1
this: join(' ', map { ucfirst } split(/\s+/, lc($words)));
is kinda hairy
I'm sure it was andy. 03:08
TimToady s/(\S+)/\U\l$1/g or some such
'course, we got rid of \u and \l in p6... 03:09
pugs_svn r25082 | azawawi++ | [S:H:P6] Moved rsc folder as S::H::P6::files (less namespace collision)
r25082 | azawawi++ | [S:H:P6] Updated to STD r25081 and perl6.vim r25076
r25082 | azawawi++ | [S:H:P6] sent version 0.037 to CPAN
frew but you have capitalize...
03:10 alester joined
frew that looks like it did exactly the opposite 03:11
yeah, actually s/(\S+)/\u\L$1/g 03:12
03:12 gravity left 03:13 gravity joined
frew that only works for one word... 03:14
TimToady not with /g 03:15
frew indeed 03:17
03:18 edenc left, edenc joined 03:27 PZt joined
pugs_svn r25083 | azawawi++ | [S:H:P6] less CPAN namespace collisions 03:28
03:28 rabbits77 joined 03:29 ChrisDavaz left 03:32 rabbits77 left
pugs_svn r25084 | frew++ | [t] added named args to unshift test 03:32
frew I am going to blindly commit my changes for splice.t. The test fails as is so I can't say I broke it. 03:34
pugs_svn r25085 | azawawi++ | [S:H:P6] more cleanups 03:35
03:36 rabbits77_ joined
pugs_svn r25086 | lwall++ | [pop.t] fix syntax error 03:36
03:36 rabbits77_ left
pugs_svn r25087 | azawawi++ | [S:H:P6] less CPAN namespace collisions with respect to resources completed 03:39
r25088 | frew++ | [t] added named arg test for splice.t 03:40
r25089 | azawawi++ | [S:H:P6] Fixed namespace collision issues that was introduced in 0.037 03:47
03:51 Limbic_Region left, rabbits77 joined 03:52 rabbits77 left 04:16 justatheory left 04:17 mtnviewmark joined 04:19 Cyrus joined 04:20 alester left
s1n what is the line number anchor format on perlcabal? 04:21
04:27 ayrnieu joined
pugs_svn r25090 | putter++ | [elfparse] IRx1_FromAST_create tweak. Added regression baseline for 'rx_on_re tests as parsed by STD_blue'. /\N/. More std.pm unpodding. 04:28
r25090 | putter++ | [elf] IRx1_FromAST_create tweak. Lightly dust README.
r25091 | hinrik++ | [util/perl6.vim] simpler solution to the eq/q problem which doesn't have side effects: look for a word boundary 04:33
05:04 gravity left 05:08 ejs joined 05:12 meppl joined 05:25 araujo joined 05:42 ejs left 05:53 stephenlb left 05:56 xuser joined 06:11 ChrisDavaz joined 06:29 eternaleye_ joined 06:37 masak joined
masak @tell moritz_ re perlgeek.de/blog-en/perl-6/rakudo-rocks.html -- very cool, kudos. slight typo: s/Mai/May/ 06:39
lambdabot? 06:40
I like being portrayed as being quite enthusiastic despite writing about a lot of nasty bugs. that captures the doubleness of writing stuff on top of Rakudo. 06:42
06:46 ashizawa joined
mtnviewmark so - am I right in thinking that rakudo is now trying to figure a way to boot strap into STD.pm? 06:51
masak that's always been the long term goal, I think. 06:52
mtnviewmark wow - that is one awfully cool graph in that article!
[particle] the way is fairly clear, and pmichaud is funded to make it happen.
mtnviewmark it would depend on keeping STD.pm down to some reasonable, hard coded subset of the language? 06:53
or is it - get the first one working... then it is all generational from there
[particle] rakudo will eventually parse STD.pm 06:55
after protoregexes and LTM are implemented for PGE
07:02 vixey joined
moritz_ good morning 07:17
07:17 mtnviewmark left
masak moritz_: godmorgon! 07:18
07:19 ChrisDavaz left
moritz_ masak: that sounds a bit like the language of Mordor ;-) 07:20
masak moritz_: well, it's very dark and inhospitable in Sweden at this time of year...
moritz_ ;-) 07:21
masak moritz_: but it looks worse than it sounds. both the 'd' and the 'g' are elided in actual spoken Swedish, so "go'morron", effectively.
moritz_ so you call people morrons? ;-) 07:22
masak yes, and to their face.
moritz_ isn't very nice today
07:22 japhb joined
masak moritz_: s'ok. :) Swedish is a germanic language, after all. 07:23
moritz_ I've heard people say that in German even a proposed marriage sounds threatening ;-) 07:24
masak 哈哈 07:25
I've heard some very beautifully spoken German, as well.
TIMTOWTPI 07:26
07:35 PZt left 07:38 dh_ left 07:39 dh_ joined
moritz_ literal++ # fixing a long-standing issue with perl6.vim and ternary operator 07:41
07:46 mtve joined 08:00 duke_leto joined 08:03 duke_leto left 08:04 hanekomu_ joined 08:07 ilogger2 joined 08:18 iblechbot joined 08:19 Casan joined 08:20 xinming joined
Matt-W masak: I've sung some very beautiful German 08:21
masak yes. I've heard beautiful German sung. 08:22
Matt-W It wasn't easy, but that had a lot to do with the music that went with it 08:25
08:32 barney joined 08:46 DemoFreak joined
masak rakudo: class A { submethod BUILD { say "OH HAI {self}" } }; A.new 09:00
p6eval rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)␤»
Matt-W so we don't support BUILD yet? 09:01
masak not in that way, at least.
masak looks forward to BUILD 09:02
Matt-W I'm unclear on exactly what BUILD is supposed to do
masak Matt-W: oh, it's called by .new
Matt-W so is it where you'd go if you wanted to have the parameters to .new interpreted differently? 09:03
moritz_ yes, I think so 09:04
masak probably, yes.
Matt-W good, because there are sure to be many times when the default behaviour is unsuitable 09:05
masak actually, I'm suffering a bit from a knowledge deficit in the area of object construction in Perl 6.
I don't even understand why the keys in .new params are barewords.
moritz_ masak: because the => operator quotes barewords on the left 09:06
masak moritz_: ok. so the following should actually be allowed? 09:07
Matt-W they're just named arguments
masak rakudo: class A {}; A.new( "test:key" => "value" )
p6eval rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)␤»
masak rakudo: say "test"
p6eval rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)␤» 09:08
Matt-W umm
masak someone's destroyed Rakudo again.
Matt-W I think rakudo's ill
It wasn't me! I haven't got commit access!
masak Matt-W: that's what they all say.
Matt-W Well in my case it's true
I've only got access to Pugs
moritz_ rakudo: sub a(:$x, :$y) { say "$x $y" }; a("y" => 2, "x" => 3) 09:10
p6eval rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)␤»
moritz_ rakudo: sub a(:$x, :$y) { say "$x $y" }; a(y => 2, x => 3)
p6eval rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)␤»
moritz_ rebuilding parrot on the server now... 09:11
masak bisects
moritz_ masak: to answer your question - anything that counts as named arguments works, so for example A.new(:a($x)) also works 09:12
masak moritz_: a'ight.
moritz_ masak: I'm not sure if quoting the LHS of => makes it a positional pair instead
masak I hope .new is not special cased in that way.
moritz_ it is not. 09:13
09:16 duke_leto joined, duke_leto left
moritz_ rakudo: sub a(:$x, :$y) { say "$x $y" }; a(y => 2, x => 3) 09:22
p6eval rakudo 36085: OUTPUT«3 2␤»
moritz_ rakudo: sub a(:$x, :$y) { say "$x $y" }; a("y" => 2, "x" => 3)
p6eval rakudo 36085: OUTPUT«y 2 x 3␤»
moritz_ ok, quoting the key makes it a positinal argument
masak: so you can't write A.new("b" => ...) and have it DWIM 09:23
masak that puzzles me a lot.
moritz_ why?
masak that means that there's something more than autoquoting going on.
moritz_ yes, it's synactic magic
masak ...so I'm rightfully confused. 09:24
moritz_ but it's not all that bad, because you attributes are always identifiers
09:24 drbean joined
moritz_ just like :a<x> is a named arg, and (:a<x>) is a positional one 09:24
Matt-W that's going to have to be written very clearly on the documentation for parameter passing 09:29
moritz_ Matt-W: it is already, IMHO 09:30
masak let's just repeat that clarity in u4x, then.
moritz_ the most important point is, "the distinction between named and positional arguments only depends on syntax, not on type" 09:31
Matt-W mmm 09:32
reading about objects
it seems if you want to have different parameter handling in your constructor, you provide a custom new()
so overriding BUILD is probably not necessary most of the time
moritz_ it always depends on what you actually want to achieve :-) 09:33
Matt-W true, true 09:34
masak moritz_: so you're saying there are times when you want to override new and times when you want to override BUILD?
Matt-W the synopsis says overriding new is for converting positional parameters to named parameters to give to bless 09:35
masak Matt-W: oh.
I see. I don't grok yet, but hopefully I will when I've done it a few times.
moritz_ masak: yes 09:36
Matt-W also seems like the place for lots of other constructory magic actually
the kinds of thing you might want to do with a C++ constructor
moritz_ masak: when you want to change params, overriding new() is the way to go. If you just want to do additional stuff, writing a BUILD submethod is sufficient
masak moritz_: how did you fix thet Perl6MultiSub error? I'm still getting it locally with the latest Rakudo. 09:38
moritz_: ah. good explanation. I grok.
moritz_ masak: realclean did it 09:39
masak oh!
masak forgot this one time
09:40 finanalyst1 joined 09:44 finanalyst1 is now known as finanalyst 09:45 finanalyst1 joined 10:01 rob joined, rob is now known as Guest97700 10:04 ejs joined
pugs_svn r25092 | finanalyst++ | [t] moved unicode.t to spec/ 10:05
r25093 | finanalyst++ | [t/spec] S02-builtin_data_types unicode.t from t/ No changes seemed to be needed. 10:08
10:09 braceta joined
finanalyst moritz_: moved unicode.t It was the last test in builtins/strings. Should the strings directory be removed? 10:10
from t/
10:30 cai joined 10:46 Guest97700 left, rob joined 10:47 rob is now known as Guest50922 11:04 hanekomu_ joined 11:05 DemoFreak left 11:14 ChrisDavaz joined
jnthn morning all 11:25
11:27 finanalyst left
jnthn reads backscroll and starts the day with a make realclean 11:28
11:28 ruoso joined
ruoso Hello! 11:30
masak jnthn: dobru rano. 11:31
jnthn :-)
masak: hej hej ;-)
jnthn knows just one Swedish greeting 11:32
masak jnthn: 'hejsan', 'hallå', 'tjena', 'goddag'... 11:33
jnthn :-) 11:36
masak but mostly we go around saying things like this: www.smouse.force9.co.uk/monty.htm
jnthn LOL! 11:44
:-)
Wi n􏿽xF8t trei a h􏿽xF8liday in Sweden this yer?
;-)
masak yup
jnthn Maybe I trei again in summer. ;-)
masak See the løveli lakes... The wonderful telephøne system 11:45
jnthn Drink the cheap beer... 11:46
Oh, wait...
masak d'oh!
ayrnieu in the Czech Republic, beer is cheaper than water. 11:47
unrelated: en.wikipedia.org/wiki/List_of_count...per_capita
masak not entirely unrelated, I'd guess :)
jnthn ayrnieu: Also, the beer is *good*. 11:49
jnthn has enjoyed much Starobrno.
Hah...over 1.5 litres a day in the Czech Republic! 11:51
11:58 kisu_ joined 12:04 kisu__ joined
masak std: ** 12:11
p6eval std 25093: OUTPUT«00:04 61m␤»
masak what's (**).WHAT ?
Whatever?
moritz_ masak: it's HyperWhatever or something similar 12:14
masak moritz_: not according to use.perl.org/~chromatic/journal/38256 , it seems 12:15
moritz_ masak: read S09, not chromatic's blog :-) 12:16
masak :)
std: HyperWhatever 12:17
p6eval std 25093: OUTPUT«Unknown routines:␤ HyperWhatever called at 1 ␤00:04 61m␤»
moritz_ It is also possible to specify that an array has an arbitrary number of dimensions, using a "hyperwhatever" (**) at the end of the dimensional specification
uhm, but it seems they also create just closures
masak moritz_: that doesn't say anything about the .WHAT
12:18 kisu_ left
moritz_ masak: well, if it constructs a closure, **.WHAT will return something like Code 12:19
masak rakudo: say (*).WHAT
p6eval rakudo 36089: OUTPUT«Whatever␤»
masak moritz_: so *.WHAT is 'Whatever' and **.WHAT is 'Code'?
moritz_ masak: not sure 12:21
"Note that ** is a shorthand for [;] * xx *"
then **.WHAT would be Array 12:22
masak ah. yes.
moritz_ (do you think there's any type I can't argue for? *g*)
jnthn Hmm. I got quite a few spectest failures. 12:32
Failed 7/298 test scripts. 74/8444 subtests failed.
jnthn thought particle's patch for NaN/Inf stuff woulda resolved a bunch.
However, I've got more now than ever. :-| 12:33
Hmm 12:35
is +"Inf", Inf, "+ context forcer works (7)";
is +"-Inf", -Inf, "+ context forcer works (8)";
is +"NaN", NaN, "+ context forcer works (9)";
[particle]: ping
12:37 ruoso_ joined 12:43 ruoso left 13:02 smtms joined
ruoso_ just figured out that trying to infer the text structure from a text file is harder than he thought 13:12
masak ruoso_: 'text structure'? 13:14
ruoso_ as in "this is a itemized list", "this is a section title"
"this is a description list"
masak sounds like the parsing I'm doing for November right now. :) 13:15
ruoso_ from an unstructured text file, I should mention...
more like an ascii art generated from a pdf file
masak aye, that sounds difficult. 13:16
it sounds a bit like Befunge, actually...
13:19 Guest50922 left 13:31 vixey joined 13:39 zamolxes joined 13:44 kisu__ left
jnthn moritz_: Know if we haz any tests for auto-threading on the invocant? 13:46
13:47 kisu joined 13:58 Exodist joined
moritz_ jnthn: don't think so, but I can write some in ~4 hrs, if that's soon enough for you 14:08
jnthn moritz_: I'm scribbling some at the moment, but feel free to expand on them/tweak them etc. 14:09
moritz_ rakudo: class A { has $.a; method b { $.a = 1; 0 }}; my @x = gather { take A.new for 1..3 }; any(@x).b; say @x[0].a 14:13
p6eval rakudo 36089: OUTPUT«Could not locate a method 'b' to invoke on class 'Junction'.␤current instr.: 'die' pc 16767 (src/builtins/control.pir:204)␤»
moritz_ jnthn: that's a very basic test
note that method b has to return a false value, because otherwise the dispatcher could short-circuit on the first true return value (if in boolean context) 14:14
jnthn moritz_: Also needs to be has $.a is rw 14:15
But on my local copy, gives 1
moritz_ ... or assignment to $!a, right 14:17
14:19 sri_kraih_ joined
pugs_svn r25094 | jnthn++ | [t/spec] Various, though certainly not exhaustive, tests for auto-threading over junctional invocants. 14:22
jnthn moritz_: There are six tests added - they cover various things, like nested junctional invocants, invocants of different types, and auto-threading where there's both junctional invocant and a junctional parameter. 14:23
moritz_ I've been thinking about the Junction.values vs. Junction.eigenvalues - it should really be Junction.eigenstates, because it fits much better into the quantum mechanics picture 14:24
jnthn moritz_: The current private method is !eigenstates 14:25
moritz_ ah, good 14:27
rakudo_svn r36090 | jonathan++ | [rakudo] Auto-threading over the invocant for methods not defined in Junction. 14:30
14:30 ruoso_ left
rakudo_svn r36093 | bernhard++ | [codingstd] trailing_space.t 14:40
14:44 cai left 14:49 alester joined, ejs left 14:50 rindolf joined
frew Has anyone in here ever connected to a vpn with openvpn in linux? 15:05
moritz_ yes 15:06
15:08 DemoFreak joined
frew ok, well it apparently finished (I had to do it with sudo) and said Initialization Sequequence Completed 15:08
but I can't seem to connect to anything at work
any ideas?
moritz_ no 15:10
frew alright; thanks anyway :-)
15:15 Tene joined 15:31 zamolxes left 15:34 donaldh joined
moritz_ finanalyst1: empty directories in t/ should be deleted, yes. (Sorry for late reply) 15:37
15:42 riffraff joined
jnthn runs the spectests, hoping that having added compile-time symbol redeclaration tests for types won't have broken anything 15:46
[particle]++ # NaN/Inf fixes make tests far quieter now 15:50
[particle] yeah, i'm glad to have that done (mostly, anyway) 15:53
jnthn Yeah, one test still has some fails, but it's a *lot* better than before.
rakudo_svn r36096 | jonathan++ | [rakudo] Compile time detection of type re-declaration, as well as making class A is B { } and class A does B { } a compile time error when B is not declared. 16:00
PerlJam jnthn: is it specced that they have to be declared before use? 16:01
moritz_ I'm quite sure it is 16:02
B parses as a sub-name if it's not declared as a type
which doesn't make sense in a trait
Matt-W Let's not have error messages like Microsoft's C++ compiler 16:03
jnthn PerlJam: Yes.
PerlJam okay. For some reason I was thinking that items in those position get treated as if B is a class/role that will be declared before the end of compilation.
Matt-W which just complained about postcircumfix:<[ ]> by calling it 'binary ['
jnthn PerlJam: Nope, they gotta be declared beforehand.
Anyone know offhand, if sub Foo::a { } is a valid way to declare a sub inside namespace Foo? 16:06
moritz_ rakudo: say NaN ~~ NaN
p6eval rakudo 36095: OUTPUT«0␤»
moritz_ [particle]: that used to print 1 16:07
(and that's how it's specced and tested)
[particle] yes, that's the one remaining failing test... will attack today 16:08
jnthn moritz_: I suspect [particle]'s Parrot changes may be right, since comparing one NaN against another is meant to be false (so you can check wiht x == x is false) 16:09
But probably .ACCEPTS on NaN needs to be special.
Like, check the topic with x == x and if it's false, it's a NaN
moritz_ jnthn: for == maybe, but ~~ should be true
jnthn moritz_: Sure.
moritz_ ok
jnthn Just trying to pin-point what needs changing.
Or what I think needs changing.
I suspect that ACCEPTS now is just falling to Num's ACCEPTS. 16:10
Which does ==
moritz_: Any suggestions where tests for redeclaration of types should go? 16:11
16:11 pbuetow joined
jnthn Or can I leave that to you? 16:11
moritz_ S10-packages.pod 16:12
47:Since there are no barewords in Perl 6, package names must be predeclared,
uhm, that are just package names
PerlJam it's the same rule for them all, I just checked 16:13
since there are no barewords, barewordy things must be predeclared.
16:13 stephenlb joined
moritz_ and documented in S02:2937 16:13
so it's S02-literals/soemthing.t 16:14
jnthn: you can leave it to me, but it'll take some time
16:14 sahadev joined
jnthn moritz_: I'm not in a hurry to have them. 16:15
moritz_ ok
jnthn So, thanks. ;-)
PerlJam moritz++
16:21 mtnviewmark joined
pugs_svn r25095 | lwall++ | [STD] add missing HyperWhatever type 16:23
16:25 justatheory joined
TimToady moritz_: * and ** are not by themselves Code objects. Most basic operators have Whatever multis that return Code objects, e.g. *-1 is a Code object 16:30
@tell masak * and ** are not by themselves Code objects. Most basic operators have Whatever multis that return Code objects, e.g. *-1 is a Code object 16:31
16:31 donaldh left
[particle] jnthn: custom .ACCEPTS is what i figured on doing. glad to have the sanity check 16:37
jnthn [particle]: OK, have fun. :-) 16:39
jnthn afk for a while
16:40 ejs joined
moritz_ rakudo: sub a($x) { $x * 2}; say eval 'a(g => 7'; say $!; 16:46
p6eval rakudo 36096: OUTPUT«␤Statement not terminated properly at line 1, near "(g => 7"␤␤»
moritz_ rakudo: sub a($x) { $x * 2}; say eval 'a(g => 7)'; say $!;
p6eval rakudo 36096: OUTPUT«␤too many named arguments - 'g' not expected␤»
moritz_ wow
TimToady methods ignore unrecognized nameds, but subs don't 16:48
so looks right
ayrnieu pugs: sub List::rand { @_[rand +@_] } <a b c>.rand
moritz_ rakudo: sub a(:$x) { $x * 2}; say a(23)
p6eval pugs: RESULT«\"a"»
rakudo 36096: OUTPUT«46␤»
ayrnieu rakudo: sub List::rand { @_[rand +@_] } <a b c>.rand
p6eval rakudo 36096: OUTPUT«Could not find non-existent sub c␤current instr.: '_block14' pc 67 (EVAL_17:43)␤»
moritz_ TimToady: methods do? interesting, I should write tests for that
TimToady shouldn't bind a positional arg to :$x like that 16:49
moritz_ I know
TimToady *nod*
moritz_ diakopter++ submitted a whole bunch of argument-passing bugs some time ago
and now one of them seems to be fixed
rakudo_svn r36098 | infinoid++ | [cage] Trailing whitespace fix. 16:50
TimToady rakudo: method sub List::rand { @_[rand +@_] } <a b c>.rand
p6eval rakudo 36096: OUTPUT«Could not find non-existent sub c␤current instr.: '_block14' pc 67 (EVAL_17:43)␤»
pugs_svn r25096 | moritz++ | [t/spec] unfudge passing tests for rakudo (now dies on superfluous named args) 16:51
TimToady ayrnieu: btw, rand doesn't take an arg any more
rakudo: method sub List::rand { @_[+@_.rand] } <a b c>.rand 16:52
p6eval rakudo 36096: OUTPUT«Could not find non-existent sub c␤current instr.: '_block14' pc 67 (EVAL_17:43)␤»
TimToady rakudo: method sub List::rand { @_[+@_.rand] }; <a b c>.rand
p6eval rakudo 36096: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 71 (EVAL_17:43)␤»
moritz_ "method sub" ?
TimToady rakudo: method List::rand { @_[+@_.rand] }; <a b c>.rand 16:53
p6eval rakudo 36096: RESULT«0.264447002194185»
TimToady rakudo: method Array::rand { @_[+@_.rand] }; <a b c>.rand
p6eval rakudo 36096: RESULT«1.21035174605187»
TimToady well <a b c>.pick is easier :) 16:54
moritz_ TimToady: uhm, +@_.rand parses as +(@_.rand)
TimToady right
that's gonna be a frequent error
rakudo: method Array::rand { @_[(+@_).rand] }; <a b c>.rand 16:55
p6eval rakudo 36096: RESULT«1.45104434572842»
TimToady still not calling the monkey patched method
moritz_ TimToady: I find it quite useful, because you can write things like ~$/<foo>
TimToady not proposing to change it 16:56
but I wish there was a way to read the programmer's mind...
maybe declarations of names containing :: also require 'use MONKEY_PATCHING' at the top 16:57
maybe it wil fall out naturally, if there's a semantic constraint on modifying a "complete" package 16:58
mtnviewmark "TimToady: methods ignore unrecognized nameds, but subs don't" -- that is exactly the choice I made for GlyphicScript (language I built long ago) -- I didn't like that it wasn't uniform, but it was what programmers expected
TimToady (rather than a syntactic constraint)
mtnviewmark: the motivation for doing it that way in p6 was that you might want to pass args to a constructor that doesn't know which of its BUILD routines wants which arg 16:59
and it's future proofing in case the class structure gets refactored 17:00
17:00 hanekomu_ left
moritz_ TimToady: isn't that easier to solve by making new and BUILD use slurpy args? 17:00
erm, named slurpy params I mean
TimToady you don't know which arg to pass to which BUILD after the class is split into parent/child, for instance 17:01
the name and/or type is all it has to go on
moritz_ and because you want that behaviour for one method, you impose it on all? 17:02
TimToady you can always write your own .new if you don't like it. :P 17:03
moritz_ that won't change the acceptance behaviour of other methods :/
TimToady but yes, it's basically a pragmatic decision rather than beautiful
you can write your own dispatcher too :) 17:04
moritz_ that's not so easy, I guess ;-)
TimToady well, basically specced in S12 alredy
*already
moritz_ well, I don't have to like every aspect of a programming language, I guess
mtnviewmark I'm not even sure TimToady does - and he's the only one with a fighting chance! 17:05
TimToady navigating the psychological swamps is never entirely pleasant
that's why language designers tend to get along so well. they all hate their own language nearly as much as everyone else's :) 17:07
(Lisp excepted, as usual)
mtnviewmark heh!
odd thought: I like programming language design for the same reason I like music intonation systems: They are both mathematically constructed systems that are constrained enough to never have a perfect fit.... 17:08
sort of like building with Lego in some slightly non-Euclidian space, with a slight curvature -- nothing ever manages to line up 100% in the end 17:09
TimToady does if you push hard enough :)
mtnviewmark and ignore the stress fractures...
17:16 hanekomu joined
pugs_svn r25097 | moritz++ | [t/spec] unfudge numeric-context.t for rakudo 17:26
17:33 jferrero joined 17:37 nihiliad joined
moritz_ rakudo: eval 'class B is C { }'; say "alive with $!"; 17:43
p6eval rakudo 36099: OUTPUT«alive with The type C does not exist. at line 1, near "{ }"␤␤» 17:44
17:46 ruoso joined
moritz_ jnthn: I tried to write some tests for redeclaration of types, but all of them seem to suffer from RT #60368 17:54
pugs_svn r25098 | moritz++ | [t/spec] test for type redeclaration and reliance on non-existing types 17:55
moritz_ jnthn: take a look at t/spec/S02-literals/types.t - I'd expect all except the second to pass now, but if I unfudge them I get assertion failures 17:56
18:21 mberends joined 18:35 Psyche^ joined
rakudo_svn r36102 | particle++ | [rakudo] NaN ~~ NaN is true now 18:40
18:41 rindolf left 18:46 finanalyst1 is now known as finanalyst 18:51 Psyche^ is now known as Patterner 18:52 masak joined
pugs_svn r25099 | finanalyst++ | [t/builtins/strings/] delete dir 18:53
moritz_ [particle]++ # all tests pass, YaY 18:54
19:01 finanalyst left 19:22 gbacon joined
pugs_svn r25100 | hinrik++ | [util/perl6.vim] add missing whitespace between a couple of keywords 19:29
rakudo_svn r36106 | moritz++ | [rakudo] move some items in docs/STATUS from "To do" to "implemented" 19:30
19:30 explorer__ joined 19:31 jferrero left, explorer__ left 19:53 riffraff left
pugs_svn r25101 | lwall++ | [STD] improved diagnostics on undefined symbols 19:59
20:02 mberends left
masak rakudo: class A { has $!foo; method bar { my $!foo = 8; say $!foo } }; A.new.bar 20:22
p6eval rakudo 36112: OUTPUT«Use of uninitialized value␤␤»
20:24 braceta left
moritz_ does `my $!foo' make any sense inside a method? 20:24
masak not as far as I know. 20:26
I just wanted to see if it was allowed.
std: class A { has $!foo; method bar { my $!foo = 8; say $!foo } } 20:27
moritz_ maybe it hides the "outer" attribute
p6eval std 25101: OUTPUT«00:04 63m␤»
masak moritz_: in that case, it should print '8'
moritz_ masak: right
and if it doesn't make sense, it should give an error, preferrably at compile time 20:28
masak aye.
the shortest Rakudo program I can think of that gives a Null PMC access: 20:34
rakudo: printf "%s"
p6eval rakudo 36113: OUTPUT«Null PMC access in get_string()␤current instr.: 'parrot;Str;sprintf' pc 4031 (src/classes/Str.pir:112)␤»
masak 11 characters. :)
moritz_ rakudo: printf"%s"
p6eval rakudo 36113: OUTPUT«Statement not terminated properly at line 1, near "\"%s\""␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
masak rakudo: printf<%s>
p6eval rakudo 36113: OUTPUT«too few arguments passed (0) - 2 params expected␤current instr.: 'parrot;Str;sprintf' pc 4016 (src/classes/Str.pir:108)␤»
moritz_ should that work without space? In perl 5 it certainly does
masak does not know 20:35
moritz_ rakudo: my $x = -> $y { leave 3*$y }; say $x(2) 20:39
p6eval rakudo 36113: OUTPUT«Could not find non-existent sub leave␤current instr.: '_block21' pc 161 (EVAL_17:72)␤»
masak perl6: say ('oh' err "don't we have err yet in Rakudo?") 20:40
p6eval elf 25101: OUTPUT«Parse error in: /tmp/znkeoKLoj1␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say ('oh' err "don't we have e␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_r...
..pugs: OUTPUT«*** ␤ Unexpected "err"␤ expecting operator or ")"␤ at /tmp/HqEgBdrrb7 line 1, column 11␤»
..rakudo 36113: OUTPUT«Statement not terminated properly at line 1, near "err \"don't"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
moritz_ Tene: if you're looking for some control exception tasks, leave() might be nice to heave (like return(), but it escapes blocks, not subs)
Tene Hmm. Maybe. 20:41
20:44 Bribles joined 20:52 barney left 20:53 mberends joined
mberends rakudo: printf "aa %4s cc", "bb" 21:00
21:01 ruoso left
p6eval rakudo 36119: OUTPUT«aa bb cc» 21:01
21:04 sahadev left
mberends masak: besides speaking there, are you involved with Nordic Perl Workshop? 21:07
masak mberends: no.
mberends I've just submitted a post-deadline talk proposal and wondered what the chances were of being accepted. It would be about Pod 6. 21:08
masak mberends: kudos. I hope it gets accepted. I know they've had to extend their initial deadline, so hopefully they'll be lenient. 21:10
mberends I'm hopeful, there are still quite a few hours to fill in the schedule. 21:11
masak it would be nice to meet. 21:13
mberends definitely, people work together better online after meeting in person
re printf: every % in the format string requires an additional argument, remember 21:14
moritz_ mberends: sure, but a null PMC access is no appropriate reaction to a missing argument 21:15
masak mberends: I know what the problem is.
but thanks. :) 21:16
mberends ok
masak from my perspective, a Null PMC access is a free rakudobug submission.
they should basically never happen.
mberends yes, it's a dead alley for a Perl programmer 21:17
masak like this one:
rakudo: class A { class B {}; B.new }
p6eval rakudo 36119: OUTPUT«Null PMC access in find_method()␤current instr.: 'parrot;A;_block20' pc 97 (EVAL_19:51)␤»
masak :)
masak submits rakudobug
mberends :) 21:18
in Debian, your name would be sid
moritz_ heh
masak I can call you Betty, and you can call me Al. 21:22
mberends I even saw the Graceland tour live in Durban many years ago. 21:23
masak I've lately become a big fan of the Siman part of Simon and Garfunkel. 21:25
his texts are sublime, especially of late. 21:26
rakudo: class A { class B {} }; B.new 21:27
p6eval rakudo 36119: OUTPUT«Null PMC access in find_method()␤current instr.: '_block14' pc 63 (EVAL_19:40)␤»
masak rakudo: class A { class B {}; A::B.new } 21:28
p6eval rakudo 36119: OUTPUT«Null PMC access in getprop()␤current instr.: 'parrot;P6object;HOW' pc 60 (runtime/parrot/library/P6object.pir:98)␤»
moritz_ wonders if masak will make the "3 bugs in 5 minutes" 21:30
mberends wouldn't bet against it 21:31
masak no, those are all the same bug. :)
I'm refactoring Druid. 21:33
when things move around, they tend to knock Rakudo over.
Druid does some funky, post-modern stuff, especially with micro-closures. 21:34
masak wonders if there's a way to alias git and svn so that they DTRT if he writes the wrong one in a directory 21:39
21:40 jferrero joined
moritz_ masak: they do already - "svn: '.' is not a working copy" and "fatal: Not a git repository" 21:40
masak oh, sorry. I meant DWIM except for the 'git'/'svn' part. 21:41
moritz_ do you use the "git-commit" or the "git commit" syntax? 21:42
if the former, that might be a bit much effort
masak I'm a 'git ci' guy. 21:43
unh. time to head home and sleep++. 21:45
masak waves
21:45 masak left
Bribles I'm having trouble installing Pugs under Ubuntu 8.04, is this an appropriate place to ask about such things? 21:59
mberends Bribles, this is a good place, but the answer is difficult :-( 22:01
several people have reported similar problems here in the last few months 22:02
diakopter Bribles: which install method are you trying 22:03
Bribles I tried getting latest pugs via svn, but perl Makefile.PL fails with syntax error. Then i tried installing Perl6::Pugs from CPAN, that failed also somewhere in Makefile.PL 22:04
diakopter Bribles: use the method described in the pugs svn
inside the INSTALL file 22:05
22:05 wknight8111 joined
diakopter svn.pugscode.org/pugs/INSTALL 22:05
Bribles does that mean using cabal is the recommended route? i was not doing that, but i have installed cabal since then
diakopter yes, "The current recommended way to build Pugs is via cabal-install. 22:06
Bribles No, i didn't install cabal, i get some version mismatches for ghc "Depends: ghc6 (<6.6.1+) but 6.8.2-2ubuntu1 is to be installed" 22:07
should I just tell my cat that it's not as curious as it thinks and just go home? 22:08
diakopter there have been 14 releases of Pugs 6.2.13 to hackage in the past 7 months; mostly seems like updates to support latests releases of ghc
which ubuntu release do you use
oh, 8.04 22:09
you'll want the latest release of ghc, methinks... so something newer than the one in ubuntu 8.04 22:10
Bribles newer than 6.8.2? it looks like 8.04's cabal is out of date and needs an old ghc 22:11
and that sort of makes me get the feeling that this is 1999 and i'm using slackware and doing stuff by hand again 22:12
diakopter see hackage.haskell.org/packages/archiv...Pugs.cabal for the details and dependencies
22:13 avar joined 22:14 avar left
moritz_ Bribles: pugs isn't developed anymore, so if none of the existing methods work, you're out of luck 22:14
some of us use Rakudo these days instead
diakopter moritz_: there have been 14 releases of Pugs 6.2.13 to hackage in the past 7 months
moritz_ diakopter: ah, I only watch the svn repo, maybe that's the problem 22:15
Bribles So Rakudo is usable (for certain values of usable) Perl6 interpreter?
22:15 avar joined
moritz_ a compiler, actually 22:15
diakopter moritz_: it's maintained elsewhere...
moritz_: or so it seems
moritz_ diakopter: yes, I see
and since I've seen no announcement whatsoever I'm a bit confused 22:16
diakopter audreyt's most recent commit (afaict) was to update the INSTALL to point people elsewhere for pugs 22:17
mberends Bribles: Rakudo is pretty useable. Read logs at irclog.perlgeek.de/perl6
moritz_ diakopter: she updated the install procedure, but didn't point anyone anywhere 22:19
diakopter cabal...
hackage
moritz_ put it this way: I see no version control system, no different homepage, ... 22:20
diakopter I'm not suggesting there have been feature changes/additions in the recent releases (I have no idea), but there at least has been refactoring and adaptations to new ghc
Bribles if one wanted to make a blog (for fun, not actual use) could Rakudo (or anything else) handle it? 22:21
moritz_ Bribles: yes, with some effort. Actually there's a wiki engine written in Perl 6... 22:22
Bribles: see november-wiki.org/
Bribles I assume the "some effort" is getting around current bugs and missing features.
moritz_ Bribles: and one of the developers is also working on a blog 22:23
right
most prominently, there's no stable database interface
so you have to make do with text files only
Bribles socket() is also missing? :)
moritz_ yes
there are experimental mysql and postgres bindings, but they need lots of love 22:24
Bribles missing features indeed
mberends the challenges actually make it a lot of fun to get things working... 22:25
moritz_ uhm, rebuilding pugs takes 1.7gb ram, it seems :( 22:32
diakopter heh 22:33
avar moritz_: you could also shell out to perl -MDBI 22:36
diakopter TimToady: or anyone, is there a way to run src/perl6/tryfile through the spec test suite to test for parsing? 22:37
moritz_ diakopter: 'make test' in src/perl6/
diakopter: or 'make testt' if you want to include t/, not just t/spec/ 22:38
diakopter oh..
thanks
moritz_ be warned, it takes a while.
diakopter :D
hm, cygwin doesn't like the ps usage
moritz_ though it only generates 220M in lex/, it used to be >3GB ;-) 22:39
diakopter so, does it parse it all successfully?
moritz_ apart from random fluctuations: yes 22:40
diakopter nice
it would be cool to have an autosmoker that detects changes on .t files and/or src/perl6 and tests them...
at least for changed .t files
moritz_ diakopter: iirc you can pipe the output of 'svn up' into tryfile 22:41
so it's actually very close ;-) 22:42
diakopter nice... 22:44
22:44 iblechbot left 22:45 rakudo_svn left 23:01 ejs left 23:10 mtnviewmark left 23:14 nihiliad left 23:16 Limbic_Region joined 23:19 pbuetow left 23:26 mberends left 23:29 km2 joined
Bribles rakudo built brilliantly 23:33
moritz_ that's nice
Bribles as did the perl6 executable
moritz_ try 'make spectest' in the languages/perl6/ dir
bed & 23:34
Bribles "bed &" ?
--fudge .. now that a command line argument that is always necessary 23:35
[particle] try: make testable 23:36
Bribles spectest is still running, i'll check on it when i come back to work tomorrow 23:39
[particle] oh, i thought you were having problems running spectest
testable is a dependency for spectest
Bribles no, it's runnign fine. junction/autothreading failed verbosely 23:40
23:48 kid51 joined 23:53 Exodist left 23:55 aindilis joined 23:58 shinobi-cl joined
shinobi-cl hi 23:58