»ö« | perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is your friend!
Set by Tene on 14 May 2009.
japhb pmichaud: How do I create a Parrot type from Rakudo? In particular, I'd like to create a ManagedStruct. 02:28
s1n moritz_: you've been reposted on rapid-dev.net 04:25
Tene japhb: with current rakudo, make a PIR library that exports it 04:49
japhb Tene: Yeah, I'm sorta going that route with inline Q:PIR anyway, since once I have a ManagedStruct, I have to access it the elements using PIR. $MS[0] = $one does not DTRT. 04:50
Tene nice 05:01
japhb: what does it do that is wrong? 05:02
japhb Tene: It tries to apply postcircumfix:[] to get an lvalue, which can then be stored into. But ManagedStruct just wants to do a keyed set. 05:04
Tene ew 05:06
Tene Rakudo still has a ways to go in dealing with foreign objects. 05:07
japhb Tene: nodnod 05:08
Tene I noticed the other day that a rakudo functionsignature with a &var in it won't work with non-rakudo code objects
still need to report
sleep now
afk
japhb nodnod
moritz_ good morning 06:08
literal @tell masak: yeah, been extra-busy with some other real-life things unfortunately, will pick up the pace 06:15
lambdabot Consider it noted.
szabgab rakudo: my @x = 1..4:by(2); 06:19
p6eval rakudo 952fe6: OUTPUT«Statement not terminated properly at line 2, near ":by(2);"␤in Main (src/gen_setting.pm:0)␤»
szabgab still not working right ?
std: my @x = 1..4:by(2);
p6eval std 27101: ( no output ) 06:20
moritz_ right 06:20
szabgab rakudo: my @x = ('a' .. 'd') 06:21
p6eval rakudo 952fe6: ( no output )
szabgab rakudo: my @x = ('a' .. 'd'); @x.perl.say; 06:21
p6eval rakudo 952fe6: OUTPUT«["a", "b", "c", "d"]␤»
szabgab wow, this does not work on my version 06:21
moritz_ wow, how old is your version? 06:22
szabgab try this: perl6 -e'my @x = ('a' .. 'd'); @x.perl.say' 06:23
it works inside but not on -e
moritz_ szabgab: -e ' ... 'a' ... ' is a bad idea
szabgab about 18 hours old :-)
crap :-)
szabgab yeah, works with the correct quotation 06:24
moritz_ rakudo sees no quotes around a, which is why it tries to call sub a()
szabgab sorry for the noise
moritz_ and complains about "Could not find non-existent sub a"
happens to all of us sometimes ;-)
szabgab I think actually the shell complained 06:25
but I am not sure
moritz_ if you have bash, no.
szabgab ah
szabgab rakudo: my @x = <a b c>; for 0..@x.elems-1 -> $i { say "$i {@x[$i]}" } 06:48
p6eval rakudo 952fe6: OUTPUT«0 a␤1 b␤2 c␤»
szabgab is there a nicer way to write this without the -1 ?
literal @elems.end, I believe
lambdabot Unknown command, try @list
moritz_ rakudo: for <a, b, c>.kv -> $i, $v { say "$i $v" }
p6eval rakudo 952fe6: OUTPUT«0 a,␤1 b,␤2 c␤»
moritz_ rakudo: my @x = <a b c>; for ^@x -> $i { say "$i {@x[$i]}" } 06:49
p6eval rakudo 952fe6: OUTPUT«0 a␤1 b␤2 c␤»
moritz_ rakudo: my @x = <a b c>; for @x.keys -> $i { say "$i {@x[$i]}" } 06:49
p6eval rakudo 952fe6: OUTPUT«0 a␤1 b␤2 c␤»
moritz_ TIMTOWTDI
plenty of possibilities, actually 06:51
szabgab thanks, now I have to explain that :-)
moritz_ I think .keys is best to explain
it's just the list of indexes that are known on the array 06:52
szabgab yeah it seems so
moritz_ ^@x is also not hard... ^n is the range 0..(n-1)
so it uses @x in numeric context
szabgab rakudo: my @x = <a b c>; @x[4] = 'e'; for @x.keys -> { say "$i {@x[$i[}" } 06:53
p6eval rakudo 952fe6: OUTPUT«Statement not terminated properly at line 2, near "[$i[}\" }"␤in Main (src/gen_setting.pm:0)␤»
szabgab rakudo: my @x = <a b c>; @x[4] = 'e'; for @x.keys -> $i { say "$i {@x[$i[}" }
p6eval rakudo 952fe6: OUTPUT«Statement not terminated properly at line 2, near "[$i[}\" }"␤in Main (src/gen_setting.pm:0)␤»
szabgab rakudo: my @x = <a b c>; @x[4] = 'e'; for @x.keys -> $i { say "$i {@x[$i]}" }
p6eval rakudo 952fe6: OUTPUT«0 a␤1 b␤2 c␤Use of uninitialized value␤3 ␤4 e␤»
szabgab oh I can't write
Matt-W Good morning 07:15
moritz_ s1n: re rapid-dev.net - have you got a link for me? 07:20
moritz_ s1n: never mind, found it. 07:23
moritz_ bah, these people used my blog entry without providing a link back to me 07:30
Matt-W :( 07:34
Su-Shee hi 07:35
moritz_ time for me to make the license on my homepage clearer
szabgab rakudo: "a,b,c".split(",").perl.say 07:36
p6eval rakudo 952fe6: OUTPUT«["a", "b", "c"]␤»
szabgab rakudo: "a,b,c".split(/,/).perl.say
p6eval rakudo 952fe6: OUTPUT«Statement not terminated properly at line 2, near "(/,/).perl"␤in Main (src/gen_setting.pm:0)␤»
szabgab rakudo: "a,b,c".split("").perl.say
p6eval rakudo 952fe6: OUTPUT«["a", ",", "b", ",", "c"]␤»
szabgab so is the /,/ version a bug ?
moritz_ no
moritz_ but the error message isn't good 07:37
in regexes you have to quote or escape all characters except digits and letters
szabgab in the spec I see this: C<$*ARGS.split(/\n[\h*\n]+/)>
ah surry
sorry
I should really drink a tea
moritz_ std: "a,b,c".split(/,/).perl.say
p6eval std 27101: ( no output ) 07:38
szabgab rakudo: "a,b,c".split(/\,/).perl.say 07:38
moritz_ ouch, it's broken...
p6eval rakudo 952fe6: OUTPUT«["a", "b", "c"]␤»
moritz_ of course you can just use a literal ',' to split on
szabgab and the version where I used empty string for split ?
szabgab the spec says I should use comb 07:38
azawawi good localtime()
SamuraiJack rakudo: "Hello world".uc.say 07:39
p6eval rakudo 952fe6: OUTPUT«HELLO WORLD␤»
moritz_ szabgab: I don't know by heart what the spec says, but rakudo might be lagging behind
moritz_ std: 1 07:39
p6eval std 27101: ( no output ) 07:40
moritz_ std: 1 07:43
p6eval std 27101: OUTPUT«ok 00:02 35m␤»
moritz_ std: "a,b,c".split(/,/).perl.say
p6eval std 27101: OUTPUT«##### PARSE FAILED #####␤Unrecognized regex metacharacter at /tmp/hxl0IFM3Cg line 1:␤------> "a,b,c".split(/,/).perl.say␤ expecting any of:␤ regex atom␤ rxinfix␤ ws␤FAILED 00:04 36m␤»
moritz_ szabgab: STD.pm has much nicer messages on syntax errors :-) 07:44
szabgab clearly :-) 07:44
azawawi moritz_: that's 100% correct :) 07:45
szabgab it even seems to be localized :-)
moritz_ is it? how so?
szabgab I see lots of strange charters... 07:50
moritz_ that's ANSI terminal color codes
clintongormley has anybody had to do an svn to git migration, that was actually successful? 09:00
clintongormley there are loads of results for those keywords in google, but i've tried a few different methods and none was terribly effective 09:00
SamuraiJack rakudo: my @numbers = 1,2,3; @numbers.say; 09:02
p6eval rakudo 952fe6: OUTPUT«123␤»
SamuraiJack rakudo: my @numbers = 1,2,3; @numbers.perl.say;
p6eval rakudo 952fe6: OUTPUT«[1, 2, 3]␤»
Khisanth wasn't that migration done for rakudo? :)
clintongormley Khisanth: i think so, which is why i'm hoping somebody here can point me in the right direction :) 09:03
Khisanth also supposedly a bunch of people in #poe on irc.perl.org :) 09:04
clintongormley oh yes?
thanks
Khisanth using git-svn to checkout a full copy with the full history misses some things? 09:05
clintongormley: and there is #git here
clintongormley my git foo is pretty rubbish
but it doesn't look like it tracks the branches terribly well
moritz_ right
clintongormley i don't know how possible that is 09:06
moritz_ I know that Infinoid created a git mirror of parrot that tracked all the branches
(I use that ever since)
maybe he can give you some insight
clintongormley thanks moritz_ - i'll ping him
clintongormley what time is Infinoid usually around? 09:08
moritz_ roughly always :-)
clintongormley heh :)
moritz_ I think he's US based 09:09
clintongormley: btw I hope you've seen that I continued my perl-5-to-6 blog a bit
"just for you" (no, not quite) 09:10
clintongormley moritz_: hmm i haven't - i subscribe to your perlgeek.de feed, but haven't seen much action there
just that one about matching 9 digit numbers
moritz_ it's been two weeks or so... perlgeek.de/blog-en/perl-5-to-6/25-...rator.html 09:11
clintongormley oh yes - i did see that
you've just been on holiday, no?
and you're going away again beginning of august? 09:12
moritz_ I've been on holiday, yes
but not going away on August 09:13
clintongormley
.oO( YAPC::EU...)
jaldhar Hello. Just recompiled rakudo again yesterday and wow! Things are progressing nicely. 11:18
But I have one problem. I get:
DanielC Which reminds me... I should recompile Rakudo :-)
jaldhar ResizablePMCArray: Can't pop from an empty array! 11:19
unfortunately the error message onlys says "in main"
DanielC That is a Parrot error. When does it do that?
During compilation?
DanielC If so, that's Bad (TM) 11:19
jaldhar No at runtime it seems
DanielC Try: perl6 -e 'say "hello world"' 11:20
Does it still do that?
jaldhar No. Trivial programs work fine. (I tried a few like this.) The script that gives this error uses classes fwiw 11:21
DanielC Try to make the simplest possible script that reproduces the error. 11:22
perl6 -e 'class Foo {}' ?
ResizablePMCArray is a parrot error, and 'main' refers to Rakudo's main() function. 11:23
jaldhar I'm trying to comment out different bits to see if I can't narrow it down.
DanielC thanks
Btw, I'm not a Rakudo developer, but I'm interested in making a good bug report, so that the guys how know Rakudo can fix it.
jaldhar: Can you post a copy of the script somewhere (e.g. pastebin.com) so I can look at it? 11:28
schmalbe jaldhar: I had that too. It went away after 'make realclean; perl Configure.pl' 11:34
jaldhar DanielC,schmalbe: got to get the kids off to school. I'll work on this again in an hour or so. 11:36
DanielC ok 11:37
ruz_mac p6eval: class Foo {method say {say "woot" } }; my $x = Foo.new(); $x.say(); 11:42
DanielC rakudo: class Foo {method say {say "woot" } }; my $x = Foo.new(); $x.say();
p6eval rakudo 952fe6: OUTPUT«maximum recursion depth exceeded␤in method Foo::say (/tmp/UnD4BL0BXq:2)␤called from method Foo::say (/tmp/UnD4BL0BXq:2)␤called from method Foo::say (/tmp/UnD4BL0BXq:2)␤called from method Foo::say (/tmp/UnD4BL0BXq:2)␤called from method Foo::say (/tmp/UnD4BL0BXq:2)␤called from
..method…
schmalbe p6eval: class Foo {method say {::say "woot" } }; my $x = Foo.new(); $x.say(); 11:43
p6eval : $code
DanielC "say" is probably not the most inspired choice for a method.
ruz_mac DanielC: actually was trying different thing
DanielC k
ruz_mac rakudo: class Foo {method say {say "woot" } }; my $x = Foo.new; say $x 11:44
p6eval rakudo 952fe6: OUTPUT«Foo()<0xb6857068>␤»
azawawi pmichaud: hi; any update on rt.perl.org/rt3/Public/Bug/Display.html?id=65994 ? 11:45
ruz_mac DanielC: built-in function call on an object that has a method with the same name 11:47
rakudo: class Foo { }; my $x = Foo.new; $x.say;
p6eval rakudo 952fe6: OUTPUT«Foo()<0xb67f0a70>␤» 11:48
ruz_mac rakudo: class Foo { method say {print "woot\n" } }; my $x = Foo.new; $x.say;
p6eval rakudo 952fe6: OUTPUT«woot␤»
ruz_mac rakudo: class Foo { method say {print "woot\n" } }; my $x = Foo.new; say $x; 11:49
p6eval rakudo 952fe6: OUTPUT«Foo()<0xb6811fc8>␤»
ruz_mac sucks
is there plans on implementing such thing? 11:50
masak literal: ping. 11:55
masak jaldhar: hope you manage to narrow your problem down. did I understand you right that you downloaded everything from scratch? or did you update existing Parrot and Rakudo working copies? 12:09
ruz_mac rakudo: multi sub say { print "w@_w\n" }; say "woot"
p6eval rakudo 952fe6: ( no output )
masak ruz_mac: in your 'class Foo' example, you're defining a method in Foo, but calling a sub. they have nothing to do with one another. 12:10
ruz_mac that suck
masak ruz_mac: also, in the above code, @_ wouldn't interpolate, because plain arrays don't interpolate right off.
ruz_mac: what sucks? that there's a distinction between methods and subs? 12:11
ruz_mac this is fine
no interpolation for arrays is fine
masak yes, I think it is.
it allows for email addresses to be written in qq strings.
ruz_mac no turning of bult-in call as sub into method call suck 12:12
masak ruz_mac: there is an automatic mechanism to do just that. it's called 'is export'.
ruz_mac example? 12:13
masak you'll find plenty of examples of that in S32, because many built-ins have a method and a sub form.
ruz_mac ah
method say is export {...} === autodeclaring sub say (MyClass $x, ...) {} ? 12:14
masak far as I understand, yes. 12:15
but you might have to be more specific with the method signature.
here's an example from S29: 12:16
multi Char method chr( Int $grid: ) is export
that gives you an Int.chr method and a chr(Int) sub.
ruz_mac that's cool 12:17
masak and it works in Rakudo. :) so whilst there are many things in Rakudo that suck, this is not one of them.
ruz_mac just was worried thatwe end up with something like: "hey, don't call subs if you want to treat overloaded objects properly" :) 12:18
masak no, subs has just as powerful multi dispatch as do methods. 12:19
s/has/have/
Matt-W masak: you've had a good day for bug reports so far 12:30
masak today? none so far, I think.
masak but yesterday was nice. 12:31
perl6-compiler lags a bit, because of massive filtering, even of bug reports.
Matt-W Aah
That's why I'm only getting the emails now
It's like an exploration of all the problems with enums
masak Matt-W: yes, I did a lot of Actual Coding yesterday. that brings out bugs.
Matt-W: enums, scopes and rebinding, yes/
Matt-W best way to find bugs, really 12:32
try and use things
see if you get a Null PMC Access
It's nice to know so unequivocally that anything that gives you Null PMC Access is a bug :)
masak yes, I use that a lot. 12:33
if I get a Null PMC access, I don't ask questions. I just submit. :)
Matt-W Well 12:34
what about if it's a duplicate?
masak Matt-W: that's why I've been flagging for a dedicated person to patrol the RT stack of bugs, and try to keep the bug count down. 12:35
:)
Matt-W I've been considering trying to fix a bug 12:36
I don't know which one yet 12:37
But it'd be fun to try
masak it is.
Matt-W And then, you know, I'd have some code in rakudo
masak even if you don't get all the way, you get a better grasp of the eventual solution.
Matt-W and that'd be very cool
not that Form.pm isn't cool
Matt-W rambles, and eats some more chocolate
Matt-W also listens to Swedish folk music 12:38
masak :) 12:39
dalek kudo: 9dc941f | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to 1.3.0.
Matt-W Ahah! It's this tune!
I've had it stuck in my head for weeks and now I actually know what it is! 12:40
sbp what's it called?
Matt-W Or at least, I know what its ID3 tag says it is
well, I know the name of the set of tunes, which is 'Fransosen'
the individual tunes within it presumably have names, but they're not provided
mmmm... bagpipes... 12:41
pmichaud rakudo: class Foo {method say {say "woot" } }; my $x = Foo.new(); $x.say(); 12:46
p6eval rakudo 952fe6: OUTPUT«./perl6: error while loading shared libraries: libparrot.so.1.2.0: cannot open shared object file: No such file or directory␤»
pmichaud bah.
That's actually a Parrot error.
Matt-W argh 12:47
and an irksome one too
I assume it's just changed to libparrot.so.1.3.0
pmichaud oh. I mean that the fact that "say" ends up recursively calling itself is a Parrot error. 12:48
The libparrot thing looks like a (re)build problem.
Matt-W oh :) 12:49
pmichaud rakudo: class Foo {method say {say "woot" } }; my $x = Foo.new(); $x.say();
p6eval rakudo 952fe6: OUTPUT«sh: ./perl6: No such file or directory␤»
Matt-W so the say in the body of method say picks up on the method you're in the middle of defining
pmichaud yes, and it shouldn't. 12:50
There's not an easy workaround for this without losing a few other items in the process.
Matt-W messy 12:51
because what about defining methods which you do want to recurse into themselves?
pmichaud well, method recursion would be $.say instead of plain 'say' 12:52
Matt-W true
oh yes, very true
syntactically, say shouldn't even be looking at the current class's methods...
pmichaud correct. But Parrot stores methods as entries in namespaces.
Matt-W hmm
pmichaud so Rakudo ends up seeing the wrong 'say' 12:53
Matt-W So there's no way to say Parrot 'I'm looking for a 'say' which isn't a method'
pmichaud well, that'd be a workaround, not a fix.
also it would break those cases where the method _should_ be entered in the namespace. 12:54
(i.e., with 'is export')
Matt-W mmm
PerlJam good morning #perl6 12:55
Matt-W So how do you fix it then? :P
pmurias hi 12:55
Matt-W Good afternoon, PerlJam
and pmurias
pmichaud I'm waiting for someone on the Parrot side of things to fix it.
pmichaud Unfortunately it doesn't seem to be that high a priority. 12:56
jaldhar hmm url to the nopaste thingy in the topic isn't working 12:56
masak jaldhar: correct. try gist.github.com, that works for me. 12:57
jaldhar masak: ok
masak (doesn't auto-post on the channel, though)
Matt-W pmichaud: :( Do we have a workaround involving something like '::say'?
szabgab rakudo: my @x = <a b c>; @x.perl.say; 12:58
p6eval rakudo 9dc941: OUTPUT«["a", "b", "c"]␤»
szabgab rakudo: my @x = <a b c>; my @z = @x.perl;
p6eval rakudo 9dc941: ( no output )
szabgab rakudo: my @x = <a b c>; my @z = @x.perl; @z.perl.say;
p6eval rakudo 9dc941: OUTPUT«["[\"a\", \"b\", \"c\"]"]␤»
szabgab see lastofthecarelessmen.blogspot.com/2...ation.html 12:59
pmichaud Matt-W: one might be able to use $*IN.say
PerlJam "$*IN.say"? that seems backwards
pmichaud szabgab: The spec changed for that in April; Rakudo hasn't caught up with it yet (because it's a fundamental change to the way Lists and return values are handled) 13:00
PerlJam: backwards how?
It's very likely that <a b c>.perl will produce parens instead of brackets. 13:01
PerlJam I'm out of context I guess. I was thinking you wanted to output something to the standard output handle (and you do, but it just happens to be what's on $*IN, right?)
pmichaud $*IN is the standard output handle. 13:02
oh.
right.
$*OUT
bleh
need dr pepper
Matt-W dials CAFFEINE-911 13:03
pmichaud szabgab: oh, wait, I misread the blog post.
Arrays are signified by brackets.
masak we should take up the tradition of a VICTUALS file, like Pugs has. :)
PerlJam pmichaud: I've got a bunch in the frig if you want one. Bit of a trip to get it though :)
jaldhar DanielC: gist.github.com/131224
szabgab pmichaud, ("a", "b") will keep working right ? 13:05
PerlJam jaldhar: the ternary op is COND ?? TRUE !! FALSE btw
szabgab and if I recall a discussing I was not paying attention too much, .perl does not create executable perl code 13:05
just some visual representation
moritz_ it should create executable perl code. 13:06
it doesn't always do yet, though
pmichaud szabgab: ('a', 'b') builds a list, yes.
szabgab good so I did not screw that up :-) 13:07
Matt-W What's happening is that you're making an Array from a list, I believe
ruoso Bom dia, #perl6
pmichaud jaldhar: if defined %.board{$rand}.occupant || $.player == $rand {
szabgab so should ["a", "b"] do the same ?
pmichaud is it possible that %.board{$rand} is undefined?
['a', 'b'] builds an Array
jaldhar pmichaud: but it shouldn't be should it? It is setup in BUILD 13:08
szabgab but if I put either of those into a @x they should be the same not ?
jaldhar PerlJam: that's what I have or am I missing something?
szabgab rakudo: @x = ['a', 'b']; @x.perl.say
p6eval rakudo 9dc941: OUTPUT«Symbol '@x' not predeclared in <anonymous> (/tmp/tlD0I5Up40:2)␤in Main (src/gen_setting.pm:3225)␤»
pmichaud szabgab: no, they're different, alas.
szabgab rakudo: my @x = ['a', 'b']; @x.perl.say
p6eval rakudo 9dc941: OUTPUT«[["a", "b"]]␤»
moritz_ @a = ['a', 'b'] assigns an array to first item of @a 13:09
pmichaud my @x = ('a', 'b') leaves @x with two elements
my @x = ['a', 'b'] leaves @x with one
PerlJam jaldhar: $i == self.player ?? ' [player] ' :: '' # is what you have. (those are colons when they should be exclamations)
szabgab so now I am confused
Matt-W my $x = ['a', 'b'] gives you an Array object with two elements, I think
pmichaud PerlJam++ # good catch
szabgab .perl creates an executable code but by executing it I don't get back the original one
pmichaud rakudo-- # should've caught it.
Matt-W szabgab: bug!!! 13:10
masak :)
szabgab rakudo: my @x = <a b c>; my @z = @x.perl; @x.perl.say; @z.perl.say;
p6eval rakudo 9dc941: OUTPUT«["a", "b", "c"]␤["[\"a\", \"b\", \"c\"]"]␤»
pmichaud szabgab: You do get back the original -- you just can't assign it to an array variable and get the original thing. Assigning it to a scalar would give you the original thing.
jaldhar PerlJam: oh yeah you're right! I've been staring at it so long I just assumed that it was !!
azawawi hi 13:10
masak azawawi: o/
szabgab rakudo: my @x = <a b c>; my $z = @x.perl; @x.perl.say; xz.perl.say;
p6eval rakudo 9dc941: OUTPUT«["a", "b", "c"]␤Could not find non-existent sub xz␤»
szabgab rakudo: my @x = <a b c>; my $z = @x.perl; @x.perl.say; $z.perl.say;
PerlJam jaldhar: also, rather than using "defined X || Y", you could use "X // Y"
p6eval rakudo 9dc941: OUTPUT«["a", "b", "c"]␤"[\"a\", \"b\", \"c\"]"␤»
moritz_ szabgab: you should get the same back, but in scalar context
PerlJam jaldhar: you've got some perl5 habits leaking into you perl6 code methinks. 13:11
moritz_ szabgab: so my @a = (1, 2); @a = eval @a.perl will *not* recreate @a
pmichaud note that "defined X || Y" is not exactly the same as "X // Y", though
szabgab I still cannot understand how that is useful :-)
moritz_ szabgab: otherwise you couldn't serialize nested data structures
jaldhar PerlJam: its a translation from perl5 so probably. Funny thing is I have started using // in my perl5 code. 13:12
PerlJam pmichaud: yes, but X // Y is what I think he really meant :)
pmichaud PerlJam: I didn't check that. :)
jaldhar it was
moritz_ if @a.perl returned (1, 2), then [1, [2, 3]] would serialize and de-serialize to (1, (2, 3)) which is reall a flat list
pmurias rakudo: my @a = <a b c>; my @z = eval(@x.perl);@x.perl.say;@z.perl.say; 13:13
p6eval rakudo 9dc941: OUTPUT«Symbol '@x' not predeclared in <anonymous> (/tmp/g5K7yBPg8Q:2)␤in Main (src/gen_setting.pm:3225)␤»
pmurias rakudo: my @x = <a b c>; my @z = eval(@x.perl);@x.perl.say;@z.perl.say;
p6eval rakudo 9dc941: OUTPUT«["a", "b", "c"]␤[["a", "b", "c"]]␤»
ruoso pmurias, have you seen my blog post on the initial notes on how to implement module loading? 13:14
pmurias ruoso: hi
ruoso: yes, just reread it 13:15
ruoso: with a bit of hackery i could make MildewSOLoader.load return the lexical scope of the loaded file 13:18
ruoso hi pmurias 13:19
pmurias or we could have the loaded file install it's own lexical symbol 13:20
szabgab pmurias, that still does not recreate the same thing
pmurias szabgab: i know, but it shows the problem more nicely instead of suffering from a missing eval 13:21
jaldhar ok now if I uncomment those commented bits, I no longer get the ResizablePMCError bug instead I get:
szabgab oh yes
jaldhar Method 'occupant' not found for invocant of class 'Failure'
which I think is due to this line:
szabgab so is that considered to be a bug ? 13:22
jaldhar if defined %.board{$rand}.occupant || $.player == $rand {
pmurias ruoso: do you think the module or the importing code should alias the symbol?
PerlJam jaldhar: if %.board{$rand} isn't defined, that's what you'll get :)
ruoso pmurias, it's the "need" statement that installs the symbol 13:23
not the foreign module
moritz_ except that undef should really be an instance of Object, not of Failure 13:23
ruoso pmurias, maybe MildewSOLoader could make the cache of the filename vs lexical scope 13:24
PerlJam moritz_: and that's the difference between truth and beauty for rakudo.
ruoso pmurias, as a side note... I'm still trying to figure out a way to take more advantage of using a shared object... 13:25
jaldhar PerlJam: but I'm trying to test if it is defined or not.
pmurias ruoso: shared object meaning the .so here? 13:26
ruoso pmurias, yes... I'm trying to figure out a way to have the code actually shared...
today the code is loaded to the program's memory
PerlJam jaldhar: no, you're testing if %.board{$rand}.occupant is defined or not. but you still have to make sure that %.board{$rand} is defined before you can call .occupant on it. 13:27
pmurias ruoso: we don't compile to native code yet
ruoso pmurias, we compile the code loading to native code
the mold loading, I mean
pmurias ruoso: yes, but once we compile molds to C functions they will be shared right? 13:28
PerlJam jaldhar: looking at your paste again, it looks like you have an off-by-one error. You initialize %.board{0..19}, but the values $rand can have are 1..20
ruoso pmurias, only the function that causes the loading of the mold, not the mold itself 13:28
the mold will be in the program's memory 13:29
jaldhar PerlJam: ahh. I thought I read in one of the apocalypses that .rand went from 0 .. n. That would explain it.
pmurias ruoso: re cache i'm leaning towards having lowlevel primitives in C and stuff that builds on them in Perl 6 13:30
ruoso pmurias, I was thinking that a later optimization could mean replacing mold by lost in the generated code
pmurias, that's a sane approach 13:31
PerlJam jaldhar: even if that were the case, 20.rand.int will never give you -1 :-)
jaldhar: (that's the only way to get a 0 in $rand) 13:32
ruoso pmurias, it could even make in time checks like "if SMOP_RI(capture) == SMOP__NATIVE__capture"
pmurias ruoso: re replacing molds by lost - i'm also thinking of it
ruoso and that would mean that the actual code is actually shared as a library
it wouldn't be in the program's memory
PerlJam jaldhar: you probably read that it gives you numbers from 0 .. ^N which is the same as 0 .. (N-1) 13:33
pmichaud szabgab: what rakudo is currently doing is correct w.r.t. the specification 13:34
it's arguable that the specification might want changing on this point
pmurias is making MildewSOLoader return the outer scope... 13:35
japhb pmichaud: Does there exist any source-level profiling tools for Rakudo? (i.e. tools to allow one to profile one's Perl 6 code) 13:39
pmichaud japhb: not yet.
PerlJam everytime I've seen MildewSOLoader, I've though "mildew slower" 13:39
pmichaud japhb: we have a proposal for a hague grant to create some, but it's running into some obstacles. 13:39
japhb What kind of obstacles? 13:40
pmichaud we have to make the case that it's on Rakudo's critical development path.
(and these tools would enable us to profile a lot more than just Rakudo)
PerlJam pm: with more stuff moving into the setting, doesn't that help? 13:41
pmichaud PerlJam: in some senses it helps a little, but it still doesn't overcome the basic obstacle.
japhb: anyway, short answer to your question is "no, we don't have any". It would be cool if someone wanted to create some. :-) 13:43
japhb pmichaud: (not unrelated): How do I iterate over a namespace, finding all the subs?
PerlJam Hmm. ... where have I seen that before ... oh, I know ... PIR profiling tools :)
japhb PerlJam: I actually looked at that once. I realized I never have a long enough block of time to understand everything I need to understand to write the PIR profiling tools. 13:44
pmichaud japhb: in Rakudo? or in PIR?
japhb pmichaud: either, since if only available in PIR, I'd just use Q:PIR from Rakudo. :-)
pmichaud in PIR: 13:45
$P0 = get_namespace
$P1 = iter $P0
loop:
# you get the rest
jaldhar hmm apparently my redo is wrong too.
Do block labels work the same as perl5?
pmichaud block labels are unimplemented in rakudo. 13:46
jaldhar i.e. label: { }
PerlJam jaldhar: perl6 doesn't recognize bare blocks as do-once loops like perl5 does.
japhb pmichaud: That much I knew. The part I'm missing is how to find the Perl 6 subs among the fake subs (all the dross existing only to convert lexical scopes to something Parrot understands)
pmichaud ...the fake subs are in the namespace?
japhb Oh, duh.
assumptions--
jaldhar hmm ok I'm going to have to rearrange this then.
PerlJam jaldhar: yes, and in the process you'll start to get the perl 6 nature :) 13:47
PerlJam jaldhar: I'm just betting that in rearranging things, you'll find a more perl6ian way. 13:48
jaldhar PerlJam: I'm thinking junctions. Am I on the right track? 13:50
PerlJam jaldhar: I don't know . I'd need to see code :) 13:51
jaldhar PerlJam: ah a challenge :-) I'll be back after some research. 13:53
pugs_svn r27102 | pmurias++ | [re-smop] MildewSOLoader.load returns the outermost lexical scope of a module 13:54
pmurias ruoso: we have a way to get at the scope, what now?
ruoso now "need" should be able to find out which file to load, load it, and look for the symbol by that name to alias in the local scope 13:55
also, MildewSOLoader needs to keep a cache of the loaded libraries, so a library don't get loaded twice
this is important to keep the identity of the types
japhb rakudo: sub greet($person) { say "Hello, $person" }; my $name = &greet.name; &greet.wrap(sub { say "Starting $name"; callsame; say "Ending $name";}); greet("world") 13:58
p6eval rakudo 9dc941: OUTPUT«Starting greet␤too few arguments passed (0) - 1 params expected␤in sub Routine::!wrap_start_helper (/tmp/kGuxPJOYUE:1)␤called from sub _block73 (/tmp/kGuxPJOYUE:2)␤called from Main (/tmp/kGuxPJOYUE:2)␤»
szabgab pmichaud, so it is for TimToady to check out and decide if .perl should create a representation that can be used to recreate the original data or not
pmichaud szabgab: or perl6-language (more) 13:59
japhb pmichaud: what's wrong in my last rakudo eval?
pmichaud but as I mentioned before, technically speaking .perl is creating a representation that can be used to recreate the original data. It simply can't be done using an array assignment (more) 13:59
however, the following probably works: 14:00
rakudo: my @x = <a b c>; my @z := eval(@x.perl); @x.perl.say; @z.perl.say;
p6eval rakudo 9dc941: OUTPUT«["a", "b", "c"]␤["a", "b", "c"]␤»
pmurias rakudo: my @x = <a b c>; my $z = eval(@x.perl);@x.perl.say;$z.perl.say; 14:01
p6eval rakudo 9dc941: OUTPUT«["a", "b", "c"]␤["a", "b", "c"]␤»
pmichaud so the real question is being asked is this: Should .perl create something that will reproduce the original data when used with array assignment? I can argue that one either way, which is why it likely needs more discussion on p6l. 14:02
PerlJam japhb: perhaps callsame isn't passing the original args. I bet it would work if you did callwith("foo") 14:03
moritz_ pmichaud: we discussed it here, and afterwards TimToady added the restriction that @thing.perl should be the same as $(@thing).perl
azawawi pmichaud: hi
japhb PerlJam: hmmm. jonathon's blog entry seems to indicate callsame should DTRT at this point, but I'll try callwith(@_) 14:04
pmichaud moritz_: in which case Rakudo's current implementation is doing the right thing.
azawawi pmichaud: any update on RT #65994 (fake-executables)?
pmichaud azawawi: no, sorry.
japhb PerlJam: that worked. Twigs my efficiency hate, and lord knows what it will do with named args, but ah well.
moritz_ pmichaud: correct
pmichaud moritz_: it would be helpful if we could point to that discussion and link it to the blog post that started today's conversation :-) 14:05
azawawi pmichaud: "no problem"; # scheduling question to next month :)
PerlJam japhb: what's the link to jonathan's blog entry where he talks about this?
japhb PerlJam: use.perl.org/~JonathanWorthington/journal/39100
... lag ...
moritz_ pmichaud: if I find it, I will 14:06
azawawi std: my $line = prompt "what?"; 14:07
p6eval std 27102: OUTPUT«Undeclared routine:␤ prompt used at 1 ␤ok 00:04 36m␤»
azawawi rakudo: my $line = prompt "what?";
p6eval rakudo 9dc941: OUTPUT«what?»
pmichaud rakudo: sub greet($person) { say "Hello, $person" }; my $name = &greet.name; &greet.wrap({ say "Starting $name"; callsame;}); greet("world");
p6eval rakudo 9dc941: OUTPUT«Starting greet␤Hello, world␤»
pmichaud the problem is the "sub" 14:07
pmichaud I'm guessing that "sub" is adding new arguments to the wrap. 14:08
azawawi TimToady: should prompt() be loaded in another PAD?
pmichaud (whether it should do that or not is an open question)
azawawi moritz_: what happens to evalbot query when it is waiting for IO from prompt() for instance? 14:09
moritz_ rakudo: say prompt('a')
p6eval rakudo 9dc941: OUTPUT«aLand der Berge, Land am Strome,␤»
moritz_ azawawi: the austrian national anthem is assumed as STDIN, at least for rakudo 14:10
azawawi moritz_: nice; thx
moritz_ (though that will need some refactoring soon) 14:11
japhb rakudo: my @subs := (&greet,&meet); for @subs -> $sub {my $name = $sub.name; say "Wrapping $name"; $sub.wrap({ say "Starting $name"; callsame; say "Ending $name";});}; sub greet($person) { say "Hello, $person" }; sub meet($person) { say "I see $person here." }; meet("world"); greet("world") 14:26
p6eval rakudo 9dc941: OUTPUT«Wrapping greet␤Wrapping meet␤Starting meet␤I see world here.␤Ending meet␤Starting meet␤Hello, world␤Ending meet␤»
japhb FAIL
Last wrap wins.
japhb Am I doing something wrong, or is it a rakudobug? 14:27
moritz_ what would you expect?
japhb moritz_: not saying both routines are named "meet" 14:28
masak indeed.
moritz_ ah
masak that seems highly strange.
moritz_ bug, then
masak submits
japhb++
japhb thx, masak
japhb rakudo: my @subs := (&greet,&meet); for @subs -> $sub {my $name = $sub.name; say "Wrapping $name"; $sub.wrap({ say "Starting {$sub.name}"; callsame; say "Ending {$sub.name}";});}; sub greet($person) { say "Hello, $person" }; sub meet($person) { say "I see $person here." }; meet("world"); greet("world") 14:33
p6eval rakudo 9dc941: OUTPUT«Wrapping greet␤Wrapping meet␤Starting !wrap_start_helper␤I see world here.␤Ending !wrap_start_helper␤Starting !wrap_start_helper␤Hello, world␤Ending !wrap_start_helper␤»
japhb So much for a workaround ...
Hmmm. Is there a way to get from the !wrap_start_helper to the wrapped routine?
masak japhb: .unwrap? 14:41
japhb masak: But I don't want to unwrap it. I just want to reach inside the wrap. 14:45
masak japhb: I see. don't know the answer to that. 14:45
the spec might.
for all I know, a sub is enough of a black box for it not to be meant to work. 14:46
japhb masak: hrmph. ;-) 14:48
Oh bargle. Wrapped subroutines all appear the same in a stack trace. 14:52
TimToady std: multi Char method chr( Int $grid: ) is export 15:18
p6eval std 27102: ( no output )
moritz_ std: 1 15:22
p6eval std 27102: ( no output )
TimToady gotta do something about that someday... 15:23
moritz_ well, if I knew what I'd do something about it
TimToady anyway, that syntax above is illegal
has to either be 'our Char multi method' or move the type to --> land 15:25
pugs_svn r27103 | lwall++ | [S29-functions] fix some misplaced types 15:26
TimToady rakudo: my @x = <a b c>; my @z := eval(@x.perl);@x.perl.say;@z.perl.say; 15:49
p6eval rakudo 9dc941: OUTPUT«["a", "b", "c"]␤["a", "b", "c"]␤»
moritz_ std: multi Char method chr( Int $grid: ) is export
p6eval std 27103: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/9Oz4X1xNI0 line 1:␤------> multi Char method chr( Int $grid: ) is export␤ expecting any of:␤ blockoid␤ routine_def␤ terminator␤ trait␤FAILED 00:02 35m␤»
TimToady pmurias: note use of := above 15:50
moritz_: you too :)
moritz_ TimToady: I know 15:51
TimToady std: multi Char method chr( Int $grid: ) is export {...}
p6eval std 27103: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/fDMu2DQ96T line 1:␤------> multi Char method chr( Int $grid: ) is export {...}␤ expecting any of:␤ blockoid␤ routine_def␤ terminator␤ trait␤FAILED 00:02 35m␤»
TimToady kind of a bad message
moritz_ aye 15:52
TimToady moritz_: just your response used = @(), which is harder :)
moritz_ TimToady: that depends. In the beginning I found containers and binding rather confusing, but I did know @{...} from perl 5 15:53
TimToady trough nough
what std: needs is some kind of 'make install' to give some semblance of transactional integrity 15:55
then the bot runs off the installed program/data
TimToady could be a fake install to a subdir for now 15:56
pmurias ruoso: re 'determine which file to load' - it's a unsolved problem as modules in Perl 6 are not supposed to be stored in a simple list 15:56
TimToady eh? Perl 6 doesn't say anything about how the files are stored, only that you have to use the official api for the official library :) 15:57
and that once installed, a module gains an identity that is immutable 15:58
pmurias what's the official api? 15:58
ruoso pmurias, the CORE
TimToady so any ref to that module can be .perl'ified with just the identity
ruoso pmurias, but I guess we can implement a naive mapping from module-name to file-name for now
TimToady the official library api is still undefined, but statements like 'use' essentially do database queries, for some value of database or other 15:59
which can be very lightweight .oO(flat files) for now 16:00
ruoso can't a naive mapping like the one done by perl5 be made for now?
TimToady sure, and the user's local files will continue to use that mechanism, so it's not wasted effort 16:01
it's just we make a big deal about the "coming of age" of a module :)
pmurias TimToady: one quick question, does role Foo {} define a &Foo? 16:06
TimToady no, why would it? 16:07
as a type, it might respond to .() however
but it would have to use its punned class as the target of the coercion, I imagine 16:08
pmurias TimToady: it works like that in mildew, and i didn't know whether to fix that 16:10
TimToady a type is always parsed as a value, not a listop :)
so even if you say Foo(), it's not being parsed as a function call currently 16:11
arguably that's inconsistent
makes types more keywordy than "if" :)
ruoso std: role Foo { }; sub Foo { }; Foo(); 16:12
p6eval std 27103: OUTPUT«ok 00:02 35m␤»
ruoso that would need to be an error then 16:14
since one cannot tell which one is pointed
TimToady actually, it would appear that std parses Foo() as a function call currently, hmm... 16:15
I suppose if a type did install an equivalent &Foo then we'd get collision detection for free 16:16
maybe I'm happy that Foo() parses as a function call 16:17
ruoso That was my initial guess
TimToady and I don't see much harm in it offhand
other than adding a bunch more entries to the symbol table, that is 16:19
I suppose &foo lookup could be taught to also look for foo
ruoso but that happens at compile-time, right>
?
you mean trying to look for a type when no sub is found? 16:20
TimToady yes, depending on how you mean that
not as a fallback after complete failure 16:21
TimToady but each probe of %SymTab{'&foo'} also looks for 'foo' 16:21
so scoping remains sane
ruoso hmm... I don't quite like the idea of special casing the lookup depending on the sigil 16:22
TimToady but maybe it's sanest to just add the &foo
ruoso that's more elegant 16:23
I think
because there are less exceptions
TimToady let's not prematurely optimize then
lichtkind jnthn: some idle seconds? 16:24
ruoso TimToady, and I think it would be even more elegant if, conceptually, Foo.bar was Foo().bar 16:25
which could be easily optimized away
but the parsing would be more predictable
ruoso meeting && later & 16:32
pmichaud ...do we get to later only if meeting ends up failing? ;-) 16:32
TimToady naive PERT analysis doesn't take into account that a capability might make N other critical path capabilities twice as fast, without being anywhere on the critical path itself 16:57
profiling might be one of those
TimToady it's a bit like the typical American company optimizing for quarterly profits over long-term profits... 16:58
TimToady oh, I see pmichaud already pointed out the := solution 17:02
lazy backlogging--
pmichaud++ 17:03
pmichaud TimToady: yes, I've been having that particular discussion that profiling might not be directly on the critical path, but it's very likely to improve our critical path on the order of several months 17:05
knowing that there are people who are being significantly impacted by the lack of such tools is also helpful 17:06
TimToady there's blockers, and then there's swamps...
DanielC What is a critical path? 17:07
TimToady www.google.com/url?sa=t&source=...-0YaN62SkA
pmichaud en.wikipedia.org/wiki/Critical_path_method
DanielC *click*
thanks 17:08
pmichaud afk for a bit # picking up daughter from class 17:08
szabgab the subject points to sial.org/pbot/perl6 but is does not seem to work any more 17:13
gives 404
sorry I meant topic 17:14
moritz_ anyone knows who runs nopaste.snit.ch/paste? 17:15
M_o_C "<!-- $Id: paste-form.html,v 1.8 2003/12/05 17:29:45 rcaputo Exp $ -->" <-- seems like someone named rcaputo might have something to do with it, though I haven't heard this name before 17:17
nevermind, it's the author of the script 17:18
moritz_ M_o_C: purl on #parrot knew
szabgab moritz_, will you ask the author to add #perl6 to the list of channels ? 17:24
[particle] rocco caputo is an ex-parroter. he was here at the beginning.
moritz_ szabgab: already did (on #parrot) 17:24
pugs_svn r27104 | lwall++ | [STD,CORE] add types as routine names also 17:25
szabgab I see it
thanks
[particle] TimToady: do you think we'll l see a spec'd way to locate a module's disk location? 17:26
moritz_ »ö« | perl6-projects.org/ | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend! 17:26
[particle] er, without compiling it. 17:26
TimToady [particle]: likely 17:31
[particle] joy. no more 'perldoc -l' wonkery and failures. 17:36
TimToady hmm, I'm suddenly wondering if we can use MMD for searching the module database and picking the best candidate... 17:39
would have to model newer versions in terms of tighter types, so probably not 17:41
Sark23 perl6: say 3; 17:51
p6eval elf 27104, pugs, rakudo 9dc941: OUTPUT«3␤»
[particle] there's too many dimensions to be multi there. 17:59
Foo :ver<1>:auth<CPAN> may be a better match than Foo :ver<999>:auth<JRANDOM>
TimToady I'd agree that auth takes precedence over ver, which makes it funny that you usually want auth at the end 18:00
it's the least important, until it becomes the most important :)
[particle] ranking auths should be fun 18:02
moritz_ why ranking? either it matches, or it doesn't 18:04
(or do you want to do multi dispatch with them?)
PerlJam moritz_: I think I'd prefer the CPAN auth over the JRANDOM auth :) 18:06
[particle] use Foo; 18:24
[particle] does the user mean Foo:ver<1>:auth<CPAN> or Foo:ver<999>:auth<JRANDOM> ? 18:24
moritz_ he means "I don't care which authority or version I get" 18:25
[particle] so it loads one with .rand?
PerlJam [particle]: I think the user meant any Foo that could be found in the absence of a policy that restricts the choices.
[particle] er, .pick?
moritz_ load all of them ;-) 18:26
as a junction, of course ;-)
[particle] ok, that's the php take on perl 6 module loading semantics. 18:26
perl should have a default policy that makes sense and is sensibly overrideable because you may know better than perl what it is you want 18:27
*makes sense for the average user
moritz_ is there an URL explaining the Perl 6 license, like dev.perl.org/licenses/ for Perl 5? 18:28
pmichaud moritz_: perhaps www.perlfoundation.org/artistic_2_0_notes ? 18:33
moritz_ pmichaud: thanks 18:34
moritz_ packages JSON::Tiny for CPAN 18:35
as a kind of experiment
moritz_ rakudo: module JSON::Tiny :version<0.1.0> { 1 }; 18:39
p6eval rakudo 9dc941: OUTPUT«Unable to parse module definition at line 2, near ":version<0"␤in Main (src/gen_setting.pm:1452)␤»
moritz_ rakudo: module JSON::Tiny :ver<0.1.0> { 1 }; 18:40
p6eval rakudo 9dc941: OUTPUT«Unable to parse module definition at line 2, near ":ver<0.1.0"␤in Main (src/gen_setting.pm:1452)␤»
moritz_ uploaded. 18:45
now let's see the PAUSE mail trickling in...
pugs_svn r27105 | lwall++ | [CORE] add utf8, utf16, utf32 as buffer types 18:49
r27105 | lwall++ | [STD] use a character class in spacey to cut down LTM entries
r27105 | lwall++ | [STD] fix parsing of "multi subfoo" to not see "sub"
r27105 | lwall++ | [STD] require whitespace after most declarators (but not sub)
StephenPollei [CORE] add utf8, utf16, utf32 as buffer types -- thats interesting considering yesterdays unicode talk that occured here yesterday 18:50
PerlJam std: sub foo { } temp &foo.wrap({ say "hi" }); 18:51
moritz_ nopaste.snit.ch/16951 - PAUSE indexer didn't like my META.yml - any ideas why?
p6eval std 27105: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/izDvjHctNo line 1:␤------> sub foo { } temp &foo.wrap({ say "hi" });␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement␤ statement
..modifier loop␤ terminato…
PerlJam std: sub foo { }; temp &foo.wrap({ say "hi" });
p6eval std 27105: ( no output )
[particle] moritz_: does provides: also need to specify version: ? 18:56
moritz_ [particle]: I just looked it up... it's not mentioned to be required on module-build.sourceforge.net/META-spec-v1.2.html 18:57
but I might just as well try it with a version
[particle] search.cpan.org/~barbie/Test-CPAN-Meta-0.13/
[particle] you can test it yourself, before submitting :) 18:58
moritz_ nice!
pugs_svn r27106 | lwall++ | [S02] define utf constrained buffer types 19:08
r27106 | lwall++ | [S02] nail down canonical name for instantiated types to use ident adverbial
r27106 | lwall++ | (MyRole[MyType] still instantiates, but isn't the name of the resulting type)
moritz_ [particle]++ 19:12
indexer reported success.
now I'm curious what will show up on CPAN
[particle] sweet.
PerlJam * GumbyPAN CPAN Upload: JSON-Tiny-0.1.1 by MORITZ 19:22
StephenPollei rakudo: my Positional $foo; $foo.isa(Positional).say 19:49
p6eval rakudo 9dc941: OUTPUT«0␤»
StephenPollei rakudo: my Version $foo; $foo.isa(Version).say
p6eval rakudo 9dc941: OUTPUT«Malformed declaration at line 2, near "Version $f"␤in Main (src/gen_setting.pm:0)␤»
StephenPollei rakudo: my Int $foo; $foo.isa(Int).say 19:50
p6eval rakudo 9dc941: OUTPUT«1␤»
StephenPollei interesting that Positional doesn't cause parse error but doesn't think it is what it's supposed to be
moritz_ rakudo: my Postional $foo; say $foo.PARROT 19:53
p6eval rakudo 9dc941: OUTPUT«Malformed declaration at line 2, near "Postional "␤in Main (src/gen_setting.pm:0)␤»
moritz_ rakudo: my Positional $foo; say $foo.PARROT
p6eval rakudo 9dc941: OUTPUT«Perl6Role␤»
moritz_ rakudo: role A { }; my A $x; say $x.WHAT 19:54
p6eval rakudo 9dc941: ( no output )
moritz_ rakudo: my Positional $foo; say $foo.WHAT
p6eval rakudo 9dc941: OUTPUT«Positional()␤»
moritz_ rakudo: role A { }; my A $x; say $x.WHAT
p6eval rakudo 9dc941: OUTPUT«A()␤»
moritz_ rakudo: role A { }; my A $x; say $x ~~ A
p6eval rakudo 9dc941: OUTPUT«1␤»
moritz_ rakudo: my Positional $foo; say $foo
p6eval rakudo 9dc941: OUTPUT«Positional()␤»
moritz_ rakudo: my Positional $foo; say $foo ~~ Positional
p6eval rakudo 9dc941: OUTPUT«1␤» 19:55
moritz_ StephenPollei: it's not "isa" Positional because it's a Role
StephenPollei ok I didn't expect that, is that correct behavior?
moritz_ yes 19:56
StephenPollei I don't have clue what Positional does
moritz_ StephenPollei: if you don't want to bother with the subtleties of inheritance vs. role composition, you use ~~ Typename for type checking
StephenPollei rakudo: my Positional $foo; $foo.isa(Role).say
p6eval rakudo 9dc941: OUTPUT«0␤»
moritz_ Positional is the role that things like lists and arrays do, and that defines .[] and so on 19:57
StephenPollei oh ok
thanks 19:59
rakudo: my Associative $foo; $foo.isa(Associative).say
p6eval rakudo 9dc941: OUTPUT«0␤»
StephenPollei good thing to know because I'm running into a few of them that work the same way, I presume, and the rest a simple isa worked 20:00
pmichaud phone
StephenPollei I hope to add more to S02-builtin_data_types/declare.t and then I will be gone for about 11 days, but I shall return 20:02
ruoso back 20:14
lichtkind ruoso: great im just go into bath 20:29
pmurias lichtkind: you can always take your laptop with you... ;) 20:30
lichtkind pmurias: i prefer to relax
pmurias ...instead of getting electrocuted :) 20:31
StephenPollei feel the soothing pulses of electrcity surge throughout you body as all your troubles simply melt away 20:34
lichtkind StephenPollei: i prefer meditation 20:43
or some kind of altered state :)
lichtkind how can i get the pwd of my pugs svn account? 20:53
moritz_ lichtkind: check your mailbox
lichtkind moritz_: thanks a lot 20:54
StephenPollei ~/.subversion/auth/ has three files that might have you cached password 20:55
pugs_svn r27107 | lichtkind++ | added perl tablets to docs 21:00
lichtkind moritz_: ah hat gefunzt
moritz_ lichtkind: please prefix your commit messages with [$directory] or so 21:01
lichtkind: so that people reading the commit message know where you added it 21:02
lichtkind gut
pmurias lichtkind: if you have an smop oriented questions for ruoso i might be able to anwser some of them 21:05
lichtkind pmurias: thanks a lot but i have here currently some urgent problem :) 21:06
moritz_ is the 'smop' evalbot target still usfull? 21:16
(it currently executes pugs -Bm0ld)
pmurias not 21:19
* no
pugs_svn r27108 | moritz++ | [evalbot] cleanup 21:21
r27108 | moritz++ |
r27108 | moritz++ | * use separate file for STDIN
r27108 | moritz++ | * remove outdated 'smop' target
r27108 | moritz++ | * trailing ws
StephenPollei svn.pugscode.org/pugs/src/perl6/CORE.pad has int2 , int4, rat1, rat2, rat16, rat32 I don't think those are part of spec though?? 21:22
moritz_ StephenPollei: S09 21:23
rakudo: say 1
p6eval rakudo 9dc941: OUTPUT«1␤»
moritz_ rakudo: say $*IN.get
p6eval rakudo 9dc941: OUTPUT«Land der Berge, Land am Strome,␤»
moritz_ still works, good 21:24
StephenPollei ok looking because I recall int1, int16 etc but not int2 and definately not rat16
moritz_ StephenPollei: get a copy of the spec, and grep ;-)
or even better, ack
StephenPollei sure I found int2 and in4, but still not rat16 and friends, not sure if those even make any sense 21:25
moritz_ search.cpan.org/~petdance/ack-1.88/ack
you're right 21:26
[particle] buubot: spack int2 21:28
buubot Couldn't match input.
StephenPollei yes just did `grep 'rat[0-9]' *pod` and found nothing, I assume that pugs is wrong to include rat16
[particle] buubot: spack int16
buubot Couldn't match input.
[particle] slaps buubot
moritz_ pugs is wrong in many ways. 21:28
[particle] pugs was wrong from the start. i mean, haskell? come on! ;) 21:29
StephenPollei grep 'int[24]' *pod -- found S09-data.pod , S12-objects.pod , and S29-functions.pod 21:30
moritz_ pugs was right. Without I wouldn't have found my way into Perl 6 land
StephenPollei [particle], I never used haskell myself but I've heard good things and I'm not much of one for language wars 21:30
moritz_ don't ignore his smiley ;-)
StephenPollei oh yes too quick of me 21:31
[particle] :)
moritz_ speaking of which, I've got "real world haskell" lying on my desk for more than 3 months now, and I haven't made it past the 4th chapter yet 21:32
PerlJam moritz_: mail it to me so it can sit on my desk for a while too :)
moritz_ ;-) 21:33
lichtkind no pmurias and no ruoso :( 21:48
StephenPollei rakudo: my Array of Int @box; 22:07
p6eval rakudo 9dc941: OUTPUT«Use of type object as value␤»
moritz_ rakudo: my Array[Int] @box 22:09
p6eval rakudo 9dc941: OUTPUT«Malformed declaration at line 2, near "Array[Int]"␤in Main (src/gen_setting.pm:0)␤»
moritz_ rakudo: my Int @box
p6eval rakudo 9dc941: ( no output )
StephenPollei perlcabal.org/syn/S02.html#Hierarchical_types
moritz_ it's NYI
StephenPollei probably going to add a few of these declarations and then call it a day 22:10
NYI -- Not yet implemented .. yes I'll have to skip it
#?rakudo skip 'Not yet implemented' 22:11
pugs_svn r27109 | stephenpollei++ | [S02-builtin_data_types/declare.t] Positional Associative Abstraction utf8 utf16 num16 and some Hierarchical types added,etc 22:24
r27109 | stephenpollei++ | added place holders comments to add more things when I get back in 11 days
pugs_svn r27110 | lwall++ | [S02/declare.t] mis-sigiled variable 23:17
pugs_svn r27111 | lwall++ | [CORE] reserve some missing native types; swap typenames with functions 23:30
r27111 | lwall++ | (note that reserved typenames like complex128 aren't guaranteed to be
r27111 | lwall++ | supported, but at least they'll parse!)
pugs_svn r27112 | lwall++ | [S09] add missing rat native types 23:36
r27113 | lwall++ | [CORE] rats smaller than rat8 byte considered useless 23:37
eternaleye rakudo: my @x = <a b c>; my @y = |eval( @x.perl ); say @x.perl, @y.perl 23:55
p6eval rakudo 9dc941: OUTPUT«too many arguments passed (4) - 2 params expected␤in Main (/tmp/jShqD4v8G2:2)␤»