»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:03 fridim_ joined 00:05 risou is now known as risou_awy 00:29 replore joined 00:34 Chillance left 00:39 thou joined 00:53 MindosCheng left 01:07 donri left 01:15 tokuhirom left 01:20 thou left 01:26 fridim_ left 01:34 drbean left 01:36 envi_ joined, lumi___ left 01:37 lumi___ joined 01:39 drbean joined 01:42 Radvendii left, Radvendii joined 01:51 alc joined 01:56 hrj1 joined, hrj left 01:59 icovnik left 02:16 leprevost joined, hrj1 left 02:39 nek joined 02:40 benabik joined 02:43 alc left 02:50 drbean left 02:55 drbean joined 03:20 Radvendii is now known as Radvendii_away 03:30 Radvendii_away is now known as Radvendii 03:35 Psyche^ joined 03:37 Patterner left, Psyche^ is now known as Patterner 03:38 Radvendii is now known as Radvendii_Playin 03:39 Radvendii_Playin is now known as Radvendii_LoLing 03:43 benabik left 03:47 agentzh joined 03:49 itz left 03:53 leprevost left 03:56 benabik joined 03:59 benabik left 04:01 benabik joined 04:03 nek left 04:06 Sarten-X left 04:14 Sarten-X joined 04:26 Radvendii_LoLing left 04:37 drbean left, wooden joined, wooden left, wooden joined 04:42 am0c joined 04:44 drbean joined 05:09 woosley joined 05:13 thou joined 05:19 sftp left 05:29 Patterner left 05:34 Psyche^ joined, Psyche^ is now known as Patterner 05:35 itz joined 05:36 Sarten-X left 05:38 am0c left
sorear good * #perl6 05:43
05:47 am0c joined 06:02 kaleem joined 06:03 itz left 06:07 molaf joined 06:11 JimmyZ_ joined, jehymez joined 06:12 thou left, jehymez left
JimmyZ_ nom: class A { method pick() { say 'pick'; }; method hi() { self.?pick; }; }; A.new.hi; 06:16
p6eval nom 081cc0: OUTPUT«pick␤»
JimmyZ_ nom: class A { method !pick() { say 'pick'; }; method hi() { self!?pick; }; }; A.new.hi;
p6eval nom 081cc0: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤» 06:17
06:17 itz joined
JimmyZ_ how can I use '?' in private method call? 06:21
I need it because Perl 6 supprot trust class 06:23
*supports
std: class A { method !pick() { say 'pick'; }; method hi() { self!?pick; }; }; A.new.hi; 06:26
p6eval std be1f10e: OUTPUT«===SORRY!===␤Negation metaoperator not followed by valid infix at /tmp/RuetET4PRT line 1:␤------> k() { say 'pick'; }; method hi() { self!⏏?pick; }; }; A.new.hi;␤ expecting any of:␤ bracketed infix␤ infix␤ infix or
..meta-infix␤P…
dalek ecza: a117854 | sorear++ | / (7 files):
KILL _PASSCAP WITH FIRE
06:28
06:30 envi_ left, jehymez joined 06:34 envi_ joined 06:37 mkramer joined, dayangkun joined 06:38 replore left 06:39 jehymez left 06:43 molaf left 06:56 wtw joined 06:59 skangas joined 07:14 JimmyZ joined
JimmyZ nom: class A { trust GLOBAL; has $!foo; }; A.new!A::foo = 'hi'; 07:15
p6eval nom 081cc0: OUTPUT«===SORRY!===␤Cannot call private method 'foo' on package A because it does not trust GLOBAL at line 1, near " = 'hi';"␤»
tadzik hehe 07:18
07:18 JimmyZ_ left 07:24 drbean left
sorear -> sleep 07:28
07:30 drbean joined
jnthn nom: class A { trusts GLOBAL; has $!foo; }; A.new!A::foo = 'hi'; 07:34
p6eval nom 081cc0: OUTPUT«Private method 'foo' not found on type A␤ in method dispatch:<!> at src/gen/CORE.setting:769␤ in block <anon> at /tmp/eZljxUG0nO:1␤ in <anon> at /tmp/eZljxUG0nO:1␤»
jnthn Spelling. It helps. :)
07:34 koban joined
jnthn !? would not help either, detection of missing or not allowed private methods is compile time. 07:35
07:37 hypolin joined
JimmyZ Private method 'foo' not found on type A? 07:40
moritz it doesn't have any private method foo 07:41
JimmyZ looks like trusts.t is NYI 07:43
07:45 koban left
jnthn JimmyZ: Where exactly did you declare a private method? 07:50
JimmyZ I see it in trusts.t 07:51
jnthn Just because a test file thinks it should work doesn't mean it should.
I'm kinda dubious about has $!x generating a private method. 07:52
JimmyZ specs doesn't say private $!x gen private method, it says $x gen public method, iirc 07:53
jnthn $.x gens a public one. 07:54
has $x is just sugar for has $!x
plus you get to write $x in your code too
Nobody seems to really use it much though...seems most folks like to explicitly mark attribute access\ 07:55
07:55 Trashlord left
jnthn (And it ain't for lack of implementation. iirc, alpha, ng and nom have all supported this) 07:55
07:57 Trashlord joined
JimmyZ nom: class A { trust GLOBAL; has $foo; }; A.new!A::foo = 'hi'; 07:57
p6eval nom 081cc0: OUTPUT«===SORRY!===␤Cannot call private method 'foo' on package A because it does not trust GLOBAL at line 1, near " = 'hi';"␤»
JimmyZ doesn't like $x too. 07:58
jnthn JimmyZ: It's tursts, not trust
JimmyZ bad chatzilla :(
jnthn hehe :)
helpful fail :) 07:59
ooh, my students showed up. Guess I shoudl teach them stuff. :) 08:00
JimmyZ wonders what jnthn teaches, perl 6? 08:01
JimmyZ more likes $x is a sugar for $.x 08:13
tadzik it is? 08:15
everyday I learn
08:15 icovnik joined 08:17 hypolin left 08:18 drbean left 08:24 drbean joined 08:26 Sarten-X joined 08:27 Sarten-X left
moritz I don't think so 08:27
nom: class A { has $x }; say A.^attributes
p6eval nom 081cc0: OUTPUT«$!x␤»
moritz nom: class A { has $x }; say A.^methods(:local)
p6eval nom 081cc0: OUTPUT«␤»
moritz no accessor is generated
so 'has $x' is more like 'has $!x' 08:28
08:35 bbkr1 joined, bbkr1 left
vlixes xk 08:36
08:36 vlixes left
JimmyZ hopes has $x is more like has $.x 08:37
:)
moritz wow, the trusts tests are weird 08:42
try { something }; is $!.defined ?? 1 !! 0, 0, '..';
it also tests only attributes, not methods 08:43
JimmyZ :) 08:44
moritz erm, the whole section on trusts is weird 08:45
it talkes about "private attribute accessors", but I don't think we have such a thing
we access private attributes directly, not via accessors 08:46
furthermore it only gives the syntax for accessing private methods, not attributes 08:47
08:47 Sarten-X joined 08:48 mkramer left 08:51 Sarten-X left, daxim joined
dalek ast: 0624a37 | moritz++ | S12- (2 files):
move trusts tests to S12-attributes/, add a note about possible issues
08:51
09:03 mj41 joined
dalek ast: 28f3971 | moritz++ | S12-methods/trusts.t:
tests for method trusts
09:06
kudo/nom: d5729f9 | moritz++ | t/spectest.data:
run new S12-methods/trusts.t
09:09
09:11 mj41 left 09:12 woosley left
jnthn moritz++ 09:13
09:14 Sarten-X joined 09:15 dayangkun left
moritz stackoverflow.com/questions/100003/...49#6581949 # meta classes seem to be a popular topic these days :-) 09:17
JimmyZ wonders why not $class!get-x-priv() , $truster!Truster::get-x-priv(); is a bit ugly
jnthn JimmyZ: I'm GLAD it's ugly because you should not be doing it apart from in exceptional cases. 09:19
Also private methods are non-virtual. 09:20
moritz JimmyZ: because private methods are not virtual
moritz too slow
09:20 drbean left
jnthn Which is the real reason you must fully qualify it. 09:20
Note that you can do self!foo() 09:22
So the way private methods are meant to be used is huffmanized :) 09:23
09:24 replore_ joined
dalek : 806da6c | moritz++ | misc/perl6advent-2011/schedule:
[advent] I did day 15
09:26
09:26 mj41 joined, drbean joined 09:32 mj41 left 09:35 mkramer joined 09:42 drbean left 09:50 drbean joined 09:51 baest joined 09:57 replore_ left 10:02 fridim_ joined 10:03 Trashlord left 10:04 Trashlord joined 10:13 mathw left, avar left 10:14 literal left 10:15 drbean left, Helios left 10:21 drbean joined
moritz jnthn: I have a curious OO problem in perl 6, maybe you know a nice solution... 10:22
I have a class X::Base, which has a multi method gist
and then I'd like to have a role X::Comp, which also has a multi method gist
(both need to be multi methods that allow only defined invocants; otherwise type object stringification breaks) 10:23
10:23 Helios joined
moritz so, if I have a class that inherits from X::Base and composes X::Comp, I get an ambiguous dispatch to method gist 10:23
can I arrange it in some way so that the gist from the role takes precedence? 10:24
there will be lots of class with those features, so I don't want to disambiguate in every class individually 10:25
currently I just make X::Comp (compile time errors) a subclass of X::Base, but having it as a role would be much nicer (because there are errors that can be both compile time and run time, and I'd rather not have two separate classes for that) 10:26
10:27 avar joined, avar left, avar joined, literal joined, mathw joined 10:37 mkramer left 10:43 LoRe left, mkramer joined 10:44 LoRe joined, JimmyZ left
moritz nqp: my &a = sub () { say(5) }; a 11:02
p6eval nqp: OUTPUT«Can't exec "./nqp": No such file or directory at lib/EvalbotExecuter.pm line 192.␤exec (./nqp /tmp/6cLZrEEu2F) failed: No such file or directory␤»
moritz parallel dyncall build seems to fail on evalbot 11:07
11:09 lichtkind_ joined
dalek albot: 8dd8ee7 | moritz++ | build-scripts/rebuild-nqp.sh:
rebuild nqp serially
11:09
11:11 lichtkind left, lichtkind_ is now known as lichtkind
moritz nqp: my &a = sub () { say(5) }; a 11:14
p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " sub () { "␤current instr.: 'nqp;HLL;Grammar;panic' pc 23437 (src/stage2/gen/NQPHLL.pir:6735) (src/stage2/gen/NQPHLL.pm:329)␤»
moritz nqp: my &a := sub () { say(5) }; a
p6eval nqp: ( no output )
moritz nqp: my &a := sub () { say(5) }; &a()
p6eval nqp: OUTPUT«5␤»
moritz nqp: my a := sub () { say(5) }; a()
p6eval nqp: OUTPUT«Confused at line 1, near "my a := su"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23437 (src/stage2/gen/NQPHLL.pir:6735) (src/stage2/gen/NQPHLL.pm:329)␤»
jnthn moritz: well, the hack to your multi issue is that the one from the role says "is default"... :) 11:20
moritz jnthn: I thought of that, and considered it a kind of "last resort" 11:21
but maybe that's what I should do 11:23
11:25 agentzh left
moritz urks, 'is default' doesn't work in the setting :/ 11:26
ah, because infix:<does> is defined in operators.pm, which comes rather later 11:27
*late
11:27 hundskatt left
jnthn heh :) 11:28
moritz tries to move it to the front 11:29
jnthn Yeah, I'd really hoped we'd never need is default in the setting...
There must be some better way, I just can't think of it right off
moritz can I deliberately widen then invocant type constraint in X::Base.gist? 11:30
something like multi method gist(Any:D:) { ... }
though that sounds like a cheat too
nom: class A { multi method a(Any:D:) { 'A' } }; role B { multi method a(B:D:) { 'b' } }; class C is A does B { }; say C.a 11:31
p6eval nom d5729f: OUTPUT«No applicable candidates found to dispatch to for 'a'. Available candidates are:␤:(B, Mu %_)␤:(Any, Mu %_)␤␤ in method a at src/gen/CORE.setting:289␤ in block <anon> at /tmp/D7oTaL8kMf:1␤ in <anon> at /tmp/D7oTaL8kMf:1␤»
moritz nom: class A { multi method a(Any:D:) { 'A' } }; role B { multi method a(B:D:) { 'b' } }; class C is A does B { }; say C.new.a
p6eval nom d5729f: OUTPUT«b␤»
moritz is that allowed? 11:32
or can I tighten the invocant constraint in the role to $?CLASS:D: or so?
jnthn moritz: uh, the role it should automatically get tightened at comkpositoin time... 11:34
That is, ::?CLASS is the default invocant type
oh, you want to restrict to :D though?
In that case then yes, you can ::?CLASS:D: iirc
moritz nom: class A { multi method a(A:D:) { 'A' } }; role B { multi method a(::?CLASS:D:) { 'b' } }; class C is A does B { }; say C.new.a 11:36
p6eval nom d5729f: OUTPUT«b␤»
moritz \o/
jnthn: all that fuss wouldn't be necessary if rakudo simply honored the :D default on method invocants :-)
11:37 hundskatt joined 11:39 agentzh joined 11:44 whiteknight joined 11:45 mkramer left, whiteknight is now known as Guest54820 11:53 odoacre left
jnthn moritz: Is that actually spec now? 11:53
11:54 lestrrat left 11:56 lestrrat joined, Guest54820 left 11:59 drbean left 12:00 mkramer joined 12:02 mkramer left 12:04 ispeak_ joined 12:05 wknight8111 joined 12:06 drbean joined 12:07 wknight8111 left 12:10 mkramer joined, icovnik left 12:15 kranius joined 12:17 risou_awy is now known as risou 12:22 grondilu joined
grondilu perl6: constant abc = "fo"; say "foo" ~~ / <[abc]> / 12:23
p6eval pugs b927740: OUTPUT«*** ␤ Unexpected "="␤ expecting ":" or "("␤ at /tmp/snH5zR7OP8 line 1, column 14␤»
..niecza v12-49-ga117854: OUTPUT«Match()␤»
..rakudo d5729f: OUTPUT«#<failed match>␤»
grondilu perl6: constant abc = "fo"; say "foo" ~~ / <[{abc}]> /
p6eval niecza v12-49-ga117854: OUTPUT«Match()␤»
..rakudo d5729f: OUTPUT«#<failed match>␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "="␤ expecting ":" or "("␤ at /tmp/p891exYi5p line 1, column 14␤»
12:39 orafu left, orafu joined
moritz std: 1 ?? $_ = 3 !! $_ = 5 12:45
p6eval std be1f10e: OUTPUT«===SORRY!===␤Precedence of = is too loose to use between ?? and !!; please use parens around inner expression at /tmp/pRTniwEOGL line 1:␤------> 1 ?? $_ =⏏ 3 !! $_ = 5␤Parse failed␤FAILED 00:01 121m␤»
grondilu what's 'std'? 12:47
moritz the standard grammar
niecza: 1 ?? $_ = 3 !! $_ = 5 12:48
p6eval niecza v12-49-ga117854: ( no output )
moritz sorear: see above, should parse-fail
12:56 kaleem left, ispeak_ left 12:57 ispeak_ joined
mathw moritz++ good article on exception handling :) 12:59
moritz thanks mathw
13:00 drbean left 13:01 ab5tract joined
moritz now we just need an advent post for today 13:01
colomon has not yet started writing his for tomorrow, alas.... 13:03
mathw The advent calendar is really cool this year
it feels like 'we'll all be using this in production soon' 13:04
13:05 grondilu left
moritz mathw: anything in particular you'd want to read about? 13:05
13:06 drbean joined
moritz has an idea, but it would result in a rather long post 13:07
use cases for references in p5, and what Perl 6 offers instead
mathw that might be interesting 13:14
Perl 6's approach to reference-like things is quite different
moritz and the interesting thing is it also differs depending on the use case 13:15
moritz writes the post
colomon moritz++
flussence ooc, does Perl 6 pass anything by value? 13:16
moritz everything except native types
but since many primitives are immutable, you don't see that :-)
nom: my $x = 4; my $y = 5; my $c = \($x, $y); $c[0] = 8; say $c[0] 13:18
p6eval nom d5729f: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <anon> at /tmp/bIyeE3iY4U:1␤ in <anon> at /tmp/bIyeE3iY4U:1␤»
moritz shouldn't that work? 13:19
13:19 kaleem joined
colomon b: my $x = 4; my $y = 5; my $c = \($x, $y); $c[0] = 8; say $c[0] 13:21
p6eval b 1b7dd1: OUTPUT«8␤»
colomon niecza: my $x = 4; my $y = 5; my $c = \($x, $y); $c[0] = 8; say $c[0]
p6eval niecza v12-49-ga117854: OUTPUT«8␤»
13:26 mkramer left 13:32 skangas left
moritz nom: my @a = 1, 2; my @b = 3, 4;, @a[3] = @b; say @a.elems; .say for @a[3]; 13:33
p6eval nom d5729f: OUTPUT«===SORRY!===␤Confused at line 1, near ", @a[3] = "␤»
moritz nom: my @a = 1, 2; my @b = 3, 4; @a[3] = @b; say @a.elems; .say for @a[3];
p6eval nom d5729f: OUTPUT«4␤3 4␤»
jnthn moritz: Captures are immutable, but I'm not sure how deep that goes
moritz jnthn: I thought it preserved the variables in there as rw 13:34
after all, captures are supposed to be argument lists, and 'is rw' or \-parameters wouldn't work with deeply-ro captures at all
jnthn moritz: ah....yeah, I see. .list on Capture appears to return a List which is immutable 13:35
I think
That's where it loses the mutability
moritz and that's what .[] uses?
jnthn I guess it's hitting the Any case of .[], and thus doing .list.[] or so
moritz ah, then Capture might need its own at_pos or .[] 13:36
13:37 bluescreen10 joined
jnthn yeah 13:41
13:42 zipf joined 13:43 zipf left
moritz moritz.faui2k3.org/tmp/references.pod # advent post preview 13:44
I haven't even proof-read it a single time, so if it makes sense to you, be double impressed :-) 13:45
PerlJam moritz++ 13:47
jnthn push @a, $@b;
nom: my @a; my @b = 1,2,3; push @a, $@b; say @a.elems 13:48
p6eval nom d5729f: OUTPUT«===SORRY!===␤Invalid hard reference syntax at line 1, near "@b; say @a"␤»
PerlJam moritz: I'd take out the text about persuading Larry
jnthn std: my @a; my @b = 1,2,3; push @a, $@b; say @a.elems
p6eval std be1f10e: OUTPUT«===SORRY!===␤Invalid hard reference syntax at /tmp/7YrV1lyCI5 line 1:␤------> my @a; my @b = 1,2,3; push @a, $⏏@b; say @a.elems␤ expecting any of:␤ desigilname␤ twigil␤Parse failed␤FAILED 00:01 123m␤»
jnthn hm, why's that not work :)
PerlJam moritz: s/automatically buts/automatically puts/ 13:49
jnthn # automatically buts @b in item context
flussence bit of an awkward NativeCall question: in the v1/pre-nom version, I could write fake typedef stuff using, say, "class timeval is OpaquePointer" for time.h and it'd work. The new one won't let me do that because it's enforcing types more strictly, or something. Can I have that back? :)
jnthn pu...oh, PerlJam reads faster :P
moritz PerlJam: I feel I should mention why @$a works, but $@a does not; and I found no good reason
PerlJam: so I feel I should say *something*
on that topic
jnthn flussence: You already have it
PerlJam moritz: okay
moritz fixes the typo
jnthn flussence: class timeval is repr('CPointer') { } 13:50
flussence jnthn++ :D
moritz PerlJam: why do you think I shouldn't write it? do you think it puts up too much pressure?
PerlJam moritz: nah, it just doesn't quite fit in my world view. You're talking about things that *are* and then you talk about something that you'd like to be 13:51
flussence I wonder if :D/:U work on those... it might help me figure out why this library's complaining about me giving it nulls. 13:52
moritz try it :-)
PerlJam moritz: if I were writing the article, that spot is where I'd put a sidebar or something ... "Why doesn't $@a work?"
moritz PerlJam: I don't think wordpress supports side bars, at least not easily 13:53
PerlJam no worries. It's your article. It's good. My commentary was just a minor nit :)
moritz but yes, I can take it a bit out of the normal narrative
13:57 cognominal_ joined
moritz anyway, thanks to jnthn++ and PerlJam++ for the feedback 13:59
14:00 cognominal left, hrj joined
moritz perl6advent.wordpress.com/2011/12/1...nces-gone/ 14:01
14:08 donri joined 14:11 kboga joined
dalek href="https://perl6.org:">perl6.org: 9e90ebf | duff++ | source/documentation/index.html:
add 2011 advent calendar link
14:12
14:15 Trashlord left
kboga hi moritz, found your blogpost very informative (having done some p5) 14:15
moritz \o/ 14:16
kboga maybe: s/will also to persuade/will also try to persuade/ & s/the same thing is the other/the same thing as the other/ ? 14:21
moritz yes 14:22
fixed, thanks. kboga++
kboga np, if it helps the community somehow :) 14:23
moritz hopes it does 14:25
yesterday we around 5k visitors :-)
kboga wow, thats amazing 14:26
moritz (mostly from reddit and hackernews) 14:27
kboga oh yea yesterday's blogpost s/can chose/can choose/ ? 14:28
14:28 zipf joined
moritz fixed too, thanks again 14:29
14:29 Radvendi1 joined 14:31 Radvendi1 left 14:33 mkramer joined 14:34 Radvendii joined 14:35 agentzh left
donri what are the benefits of this whole scalar vs list/etc context debacle? i assume there are gains, but as an outsider from perl it looks like just complicating matters at a glance 14:36
moritz I sometimes wonder the same thing
donri i recall realizing some benefit that i've now forgotten :P 14:37
moritz there are a few nice benefits, like being able to write for 0..9, 'a'..'z' { ... } and have it do what I want
donri but that's easily done even in python by simply joining the lists
moritz basically it makes it easer to concatenate list, but makes it harder to nest them 14:38
it's a tradeoff
donri but maybe this means you can treat scalar values as single-element lists?
14:38 Trashlord joined
donri does that work for arbitrary scalars 14:38
moritz yes
nom: say 1.join('foo')
p6eval nom d5729f: OUTPUT«1␤»
moritz nom: say 1[0]
p6eval nom d5729f: OUTPUT«1␤»
PerlJam that's more lispy 14:39
donri i guess that can be a benefit then (but might also mask bugs)
14:39 JimmyZ joined
JimmyZ Is 'my $ = @a' same as '$(@a)' ? 14:40
donri i often find myself in python having to deal with e.g. None vs x vs [x..]
moritz JimmyZ: yes
JimmyZ moritz: thanks 14:41
PerlJam I think context sensitivity is part of Perl's DNA and that differentiating between singulars and plurals is the most basic genetic component
moritz nom: (my $ = @*INC) = 5;
p6eval nom d5729f: ( no output )
moritz nom: $(@*INC) = 5;
p6eval nom d5729f: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <anon> at /tmp/z9EmLKnoYQ:1␤ in <anon> at /tmp/z9EmLKnoYQ:1␤»
moritz well, not exactly the same thing :-)
but from a perspective of item vs. list it's the same thing
JimmyZ nom: say (my $ = @*INC) = 5;
p6eval nom d5729f: OUTPUT«5␤»
JimmyZ nom: say (item @*INC) = 5; 14:42
p6eval nom d5729f: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <anon> at /tmp/j6k2fzcGok:1␤ in <anon> at /tmp/j6k2fzcGok:1␤»
moritz we could also make them behave the same way, not sure if that's desirable
donri conversely, having done haskell for a while now, it seems bad form to try to accept different types for the same argument to a function. but i guess it makes sense in dynamic languages, and in that regard perl being "more dynamic" than python 14:43
JimmyZ well, looks like Perl 6 supports @$scalar but not $@array
moritz JimmyZ: that's what I wrote in my post, yes
JimmyZ Perl6 should support $@array, because it supports $@array 14:44
:)
moritz I'm all for it
tadzik circular logic is good, because it's circular :)
donri logic is good because it's logical 14:45
moritz I just think that @Larry had a reason to disallow it, and like to hear if it's still valid
JimmyZ and $% or %$ ? 14:47
moritz same thing 14:48
14:48 Radvendii left, Radvendii joined
flussence I think I'm doing something wrong/stupid... I thought this would DWIM: "class R { has $r; method new($r) { self.bless(*, :$r); } }" but it only works if I add "submethod BUILD(:$r) { $!r = $r }" too. I'm trying to get a new() that takes a single positional param instead of having to write out the name. 14:49
14:50 Radvendii left
moritz hm 14:50
PerlJam flussence: has $r; and not has $.r ? 14:51
or has $!r 14:52
flussence it's actually a $! var in the code, mis-transcribed it.
PerlJam just checking in case it's relevant :)
14:53 zipf left
flussence (if anyone can suggest something that can make writing it shorter than R.new(1) that'd be even better :) 14:54
14:56 jaldhar left 14:58 fridim_ left 14:59 wolverian joined 15:00 fridim_ joined 15:02 hundskatt left
flussence oh well, a few extra lines doesn't matter. more important is my code works now :D 15:07
15:15 fridim_ left, wtw left
moritz flussence: at some point in the initialization chain, .new() needs to stop passing the named arguments to the initialization routine 15:15
flussence: and it seems that rakudo does that in or after bless, not before
not sure if that's how it is supposed to be, or not 15:16
oh, and the shortest option is of course augment class Mu { method r() { R.new(self) } } and then on any object just .r
but well, it is *only* short :-) 15:17
15:20 hundskatt joined, drbean left
jnthn huh 15:22
sub r($x) { R.new($x)
15:22 GlitchMr joined, fridim_ joined
jnthn then just r 1 15:22
or a postfix ;)
15:23 PZt left, zipf joined
flussence hm, I just realised something - right now I'm using one class for is repr('CPointer') and a wrapper around it that just adds a few methods. If I knew how to get at the native value directly I could probably combine them into a single class (and wouldn't need the .new stuff at all) 15:25
jnthn An object with CPointer repr can have methods, though not attributes. 15:26
(having methdos is totally orthogonal to representation)
15:27 drbean joined
flussence so I'd just replace the wrapper's $!value with self... I think I'll just do that instead :) 15:28
jnthn :)
moritz it just shows that the shortest code is the one you don't have to write :-) 15:30
15:32 mkramer left 15:34 mkramer joined 15:38 kboga left 15:40 mkramer left 15:43 mkramer joined, ab5tract left 15:45 cognominal_ left, cognominal_ joined
sorear good * #perl6 15:47
jnthn 5 hour decommute & 15:48
15:49 envi_ left 15:51 ispeak_ left 15:54 mkramer1 joined, baest left 15:55 molaf joined 15:56 mkramer left 15:57 thou joined 15:58 cognominal___ joined 16:00 cognominal_ left, mkramer1 left
colomon \o 16:01
16:02 mkramer joined
flussence
.oO( the only way this could get any better is if the --> notation for return values worked on native subs... )
16:02
TimToady for the record, I'm fine with $@array 16:09
16:10 fglock joined
TimToady since bare $@ will blow up anyway as an rvalue 16:10
fglock this may be off-topic here, 16:11
perlcabal.org/~fglock/perlito5.html
a mini-perl5 in the browser, based on Perlito
16:12 silug left
fglock Perl6 version here: perlcabal.org/~fglock/perlito.html 16:13
PerlJam fglock: that AST is a perlito thing? 16:14
fglock PerlJam: yes
it helps me debug
PerlJam still wonders what happened to Perl-5-with-AST
I was hopeful that project could be a nice bridge between perl 5 and perl 6 16:15
JimmyZ TimToady: and $% ? 16:20
TimToady sure, it's just item
16:20 fglock left
JimmyZ nice 16:21
JimmyZ wonders how about 'has $x' is same as 'has $.x' , not 'has $!x', hehe :) 16:23
PerlJam JimmyZ: privacy is a good default. 16:24
moritz I'd rather remove 'has $x' entirely 16:25
JimmyZ PerlJam: that's for apple company
moritz I don't see any real benefit over 'has $.x' and 'has $!x'
PerlJam moritz: That'd work for me. 16:26
JimmyZ +1 to moritz too
TimToady it's really for people who think they're allergic to twigils 16:27
TimToady thinks about "has x"
JimmyZ thinks public is a good default, likes open source
PerlJam I think more people will be confused about the correspondence between has $x; method foo { ... $!x ... }
moritz TimToady: as long as you don't plan to allow it to interpolate into double-quoted strings... 16:28
TimToady {x} 16:29
moritz has \n; say "a\n" # whoops?
JimmyZ has \x ? like sub foo(\$x) { ... } to sub foo(\x) { ... } ?
TimToady \ is not a sigil
JimmyZ just like &x
TimToady JimmyZ: \$x is going away in favor of \x 16:30
PerlJam JimmyZ: more like Perl 5's typeglob
JimmyZ TimToady: yes, I heard that
TimToady and pretty quickly someone will write a pragma that say if x is unrecognized in a signature, assume a \ 16:32
16:32 kaleem left
TimToady *says 16:32
16:33 kaleem joined
moritz std: sub f { @%_ } 16:33
p6eval std be1f10e: OUTPUT«===SORRY!===␤Invalid hard reference syntax at /tmp/pKLm_6uacq line 1:␤------> sub f { @⏏%_ }␤ expecting any of:␤ desigilname␤ twigil␤Parse failed␤FAILED 00:01 119m␤»
PerlJam sigilless Perl still gives me the creeps. 16:34
moritz I'll just spec $@foo and let others figure out the implementation :-) 16:35
16:35 silug joined
dalek ecs: 32c6d03 | moritz++ | S02-bits.pod:
[S02] $%h and $@a item context forms
16:43
16:45 CoreX_ joined 16:46 CoreX_ left 16:47 drbean left
JimmyZ nom: my %a = 1 => 2, 3 => 4; my $b = %a; my @c = @$b; say @c.perl; 16:52
p6eval nom d5729f: OUTPUT«Array.new("1" => 2, "3" => 4)␤»
JimmyZ nom: my %a = 1 => 2, 3 => 4; my @c = @%a; say @c.perl; 16:53
p6eval nom d5729f: OUTPUT«===SORRY!===␤Invalid hard reference syntax at line 1, near "%a; say @c"␤»
JimmyZ wonders how about @%
16:53 drbean joined
JimmyZ nom: my %a = 1 => 2, 3 => 4; my @c = @(%a); say @c.perl; 16:53
p6eval nom d5729f: OUTPUT«Array.new("1" => 2, "3" => 4)␤»
16:55 JimmyZ left, JimmyZ joined
JimmyZ nom: my %a = 1 => 2, 3 => 4; my @c = @(%a); my %d = %(@c); say %d.perl; 16:56
16:56 mkramer left
p6eval nom d5729f: OUTPUT«("1" => 2, "3" => 4).hash␤» 16:56
JimmyZ and %@a 16:57
16:57 mkramer joined
moritz JimmyZ: I don't think they are very useful 16:57
I find %h.pairs much more readable than @%a
JimmyZ moritz: just for unify 16:59
why $(@a) can write as $@a, but %(@a) can't write as %@a :) 17:01
17:02 zipf left
PerlJam were it my decision, you wouldn't be able to write $@a or %@a or anything without the parens 17:03
JimmyZ IMO, if $@ and @$ is allowed, %@ and @% shouldn't be disallowed at comiple time 17:05
moritz PerlJam: I've used @a.item and $(@a) in my code, and wished it was shorter
17:06 mkramer left 17:07 drbean left, mkramer joined
ashleydev moritz: you're interchainging tmp and temp as the name for the same var in the advent post. 17:08
JimmyZ nom: my %a = 1 => 2, 3 => 4; my @c = @(%a); say @c.perl;
p6eval nom d5729f: OUTPUT«Array.new("1" => 2, "3" => 4)␤»
ashleydev i.e typo 17:09
JimmyZ does @c has key "1" and "3" ?
*have
nom: say @.perl 17:11
p6eval nom d5729f: OUTPUT«Null PMC access in find_method('perl')␤ in block <anon> at /tmp/nllL48IQVT:1␤ in <anon> at /tmp/nllL48IQVT:1␤»
moritz ashleydev: thanks, fixing...
JimmyZ nom: say $.perl 17:12
p6eval nom d5729f: OUTPUT«Null PMC access in find_method('perl')␤ in block <anon> at /tmp/KwW4TXpIR3:1␤ in <anon> at /tmp/KwW4TXpIR3:1␤»
17:12 drbean joined
JimmyZ nom: say !.perl 17:13
p6eval nom d5729f: OUTPUT«Bool::False␤»
GlitchMr perl6: print 2 ~~ '2'
p6eval rakudo d5729f, niecza v12-49-ga117854: OUTPUT«True»
..pugs b927740: OUTPUT«1»
GlitchMr perl6: print [2] ~~ ['2']
p6eval rakudo d5729f, niecza v12-49-ga117854: OUTPUT«False»
..pugs b927740: OUTPUT«1»
GlitchMr That makes sense :)
Not like I care... 17:14
JimmyZ nom: say |.perl 17:15
p6eval nom d5729f: OUTPUT«Method 'FLATTENABLE_LIST' not found for invocant of class 'Str'␤ in block <anon> at /tmp/yDnkVnGCO5:1␤ in <anon> at /tmp/yDnkVnGCO5:1␤»
GlitchMr perl6: print (e, a => 'b', c => 'd', a => 'c', pi, a => 'c').perl 17:16
p6eval rakudo d5729f: OUTPUT«(2.71828183e0, "a" => "b", "c" => "d", "a" => "c", 3.14159265e0, "a" => "c")»
..pugs b927740: OUTPUT«*** No such subroutine: "&e"␤ at /tmp/qf2i4lVV8j line 1, column 7 - line 2, column 1␤»
..niecza v12-49-ga117854: OUTPUT«(2.71828182845905, "a" => "b", "c" => "d", "a" => "c", 3.14159265358979, "a" => "c")»
GlitchMr It reminds me PHP for some reason...
JimmyZ nom: say !.WHAT 17:23
p6eval nom d5729f: OUTPUT«Bool::True␤»
17:24 zipf joined
GlitchMr perl6: print q <<20>> 17:24
JimmyZ wonders how it outputs true
p6eval pugs b927740, rakudo d5729f, niecza v12-49-ga117854: OUTPUT«20»
sorear JimmyZ: .WHAT means $_.WHAT, which returns Any because $_ defaults to Any; Any is a false value so !Any is true 17:25
JimmyZ nom: say $.WHAT 17:26
p6eval nom d5729f: OUTPUT«Null PMC access in find_method('WHAT')␤ in block <anon> at /tmp/9IbCOYBrKM:1␤ in <anon> at /tmp/9IbCOYBrKM:1␤»
GlitchMr That... makes sense...
There is no $. variable...
And there is no "$"...
JimmyZ nom: say |.WHAT 17:27
p6eval nom d5729f: OUTPUT«Method 'FLATTENABLE_LIST' not found for invocant of class 'Any'␤ in block <anon> at /tmp/ex7qVHsPjd:1␤ in <anon> at /tmp/ex7qVHsPjd:1␤»
JimmyZ nom: say /.WHAT
p6eval nom d5729f: OUTPUT«␤use of uninitialized value of type Any in numeric context␤»
17:27 baest joined
sorear JimmyZ: What exactly are you trying to do? 17:27
GlitchMr perl6: print ?.WHAT 17:28
This?
p6eval rakudo d5729f, niecza v12-49-ga117854: OUTPUT«False»
..pugs b927740: ( no output )
GlitchMr That makes sense...
Even if it's weird...
JimmyZ sorear: Just curious
TimToady perl6: say .WHAT
p6eval pugs b927740: OUTPUT«Scalar␤»
..rakudo d5729f, niecza v12-49-ga117854: OUTPUT«Any()␤»
JimmyZ TimToady: I wonder how about @% and %@ :) 17:29
GlitchMr @% what?
TimToady no point, since % in list context already has @ semantics
JimmyZ @(%a) :)
GlitchMr @{%a} 17:30
I see...
perl6: @((my %a = 1 => 2) + %a * 2) 17:31
p6eval pugs b927740, rakudo d5729f, niecza v12-49-ga117854: ( no output )
GlitchMr perl6: print @((my %a = 1 => 2) + %a * 2)
right
p6eval pugs b927740, rakudo d5729f, niecza v12-49-ga117854: OUTPUT«3»
GlitchMr :)
PerlJam perhaps my aversion to $@foo and such is just a hold-over from using Perl 5. I never dereference without braces in Perl 5 so as to avoid any potential confusion.
17:31 Chillance joined
PerlJam (at least in multi-level data structures) 17:31
GlitchMr I still fail to notice major differences between Perl 5.14 and Perl 5.10... but that's just me... 17:32
perl6: print "\N{NEL}" 17:35
p6eval rakudo d5729f: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\N' at line 1, near "{NEL}\""␤»
..niecza v12-49-ga117854: OUTPUT«===SORRY!===␤␤Unrecognized backslash sequence: '\N' at /tmp/7CFEe7iQI8 line 1:␤------> print "\N⏏{NEL}"␤␤Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 773 (warn @ 2) ␤ …
..pugs b927740: OUTPUT«*** No such subroutine: "&NEL"␤ at /tmp/KQGvmwmwJ0 line 1, column 11-14␤»
GlitchMr Is it possible to use named escapes in Perl 6? 17:36
TimToady perl6: say "\c[WHITE SMILING FACE]" 17:37
p6eval niecza v12-49-ga117854: OUTPUT«===SORRY!===␤␤Action method charname not yet implemented at /tmp/nD5ViW0bRA line 1:␤------> say "\c[WHITE SMILING FACE⏏]"␤␤Action method charnames not yet implemented at /tmp/nD5ViW0bRA line 1:␤------> say "\c[WHIT…
..pugs b927740: OUTPUT«âº␤»
..rakudo d5729f: OUTPUT«☺␤»
GlitchMr perl6: print "\c[BELL]"
p6eval niecza v12-49-ga117854: OUTPUT«===SORRY!===␤␤Action method charname not yet implemented at /tmp/4IwR3p07KI line 1:␤------> print "\c[BELL⏏]"␤␤Action method charnames not yet implemented at /tmp/4IwR3p07KI line 1:␤------> print "\c[BELL⏏[31…
..pugs b927740, rakudo d5729f: OUTPUT«»
GlitchMr ... just wondering what would happen. 17:38
And I've heard a beep...
That's weird, considering that Perl 5.16 will not use BELL as BELL... 17:39
TimToady nom: say "\c[BELL SYMBOL]"
p6eval nom d5729f: OUTPUT«⍾␤»
GlitchMr BELL SYMBOL? 17:40
TimToady looks like a mushroom here...
17:40 molaf left
GlitchMr It's BELL in Unicode, but whatever. 17:40
Unless it was changed?
TimToady .u ⍾ 17:41
phenny U+237E BELL SYMBOL (⍾)
17:45 zipf left 17:48 daxim left 17:54 JimmyZ left
lichtkind inverting hashes with several equal keys overwerites the previous pair? 18:01
TimToady use .push if you don't want that 18:02
perl6: my %hash; %hash.push: a => 1, a => 2, a => 3; say %hash.perl 18:03
p6eval pugs b927740: OUTPUT«pugs: Named argument found where no matched parameter expected: (a,Ann (Pos (MkPos "/tmp/bTXTNjqwPn" 1 28 1 29)) (Val (VInt 1)))␤»
..niecza v12-49-ga117854: OUTPUT«Unhandled exception: Unable to resolve method push in class Hash␤ at /tmp/lruBDD0Oa2 line 1 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2229 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2230 (module-CORE @ 58) ␤ at /home/…
..rakudo d5729f: OUTPUT«().hash␤»
TimToady heh 18:04
perl6: my %hash; %hash.push: (a => 1, a => 2, a => 3); say %hash.perl
p6eval niecza v12-49-ga117854: OUTPUT«Unhandled exception: Unable to resolve method push in class Hash␤ at /tmp/Wlu8frYgpK line 1 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2229 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2230 (module-CORE @ 58) ␤ at /home/…
..rakudo d5729f: OUTPUT«("a" => [1, 2, 3]).hash␤»
..pugs b927740: OUTPUT«*** Can't modify constant item: VUndef␤ at /tmp/Yv5bGyp8yV line 1, column 11-47␤»
lichtkind TimToady: say %songs.push.invert.perl; DOESNT WORK HERE FOR ME 18:05
sorry shift lock
TimToady push has to have arguments
lichtkind thanky you slowly i get it 18:08
so classify also uses push
TimToady: i that usage of push new?
colomon nope 18:09
well, for certain definitions of new. :)
18:09 ashleydev left 18:10 ashleydev joined
lichtkind introduced in the last 12 month? 18:10
18:11 wolfman2000 left
colomon nope, it's older than that 18:13
lichtkind so i was sleeping 18:15
but do i get a list of inverted pairs 18:17
moritz nom: my %h; %h.push() 18:19
p6eval nom d5729f: ( no output )
18:19 MayDaniel joined
lichtkind %revert.push($_.invert) for %songs; ?? 18:20
18:23 spine joined 18:27 Vlavv_ left 18:28 PZt joined 18:29 Vlavv_ joined 18:30 localhost left 18:32 localhost joined
lichtkind %revert.push(%nr.invert); 18:38
have it
thanks
18:51 drbean left 18:52 _ilbot left, _ilbot joined 18:53 _ilbot left, _ilbot joined 18:56 alvis left 18:57 drbean joined, alvis joined 19:12 MayDaniel left 19:21 kaleem left 19:23 spine left 19:26 wolfman2000 joined
lichtkind perl6: my %h = 2=>2; say exists %h<2>; 19:30
p6eval rakudo d5729f: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&exists' called (line 1)␤»
..niecza v12-49-ga117854: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'exists' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 880 (die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1143 (P6.comp_unit @ 32) ␤ at /ho…
..pugs b927740: OUTPUT«*** No compatible multi variant found: "&exists"␤ at /tmp/7zlWWwKV6r line 1, column 19-31␤»
lichtkind perl6: my %h = 2=>2; say %h<2> ;exusts; 19:31
p6eval pugs b927740: OUTPUT«2␤*** No such subroutine: "&exusts"␤ at /tmp/mkHvH2FZUT line 1, column 26-32␤»
..niecza v12-49-ga117854: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'exusts' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 880 (die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1143 (P6.comp_unit @ 32) ␤ at /ho…
..rakudo d5729f: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&exusts' called (line 1)␤»
lichtkind perl6: my %h = 2=>2; say %h<2> ;exists;
p6eval pugs b927740: OUTPUT«2␤*** No compatible multi variant found: "&exists"␤ at /tmp/RGYlCvim6S line 1, column 26-32␤»
..rakudo d5729f: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&exists' called (line 1)␤»
..niecza v12-49-ga117854: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'exists' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 880 (die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1143 (P6.comp_unit @ 32) ␤ at /ho…
moritz it helps to spell the colon correctly 19:32
lichtkind perl6: my %h = 2=>2; say %h<2> :exists;
p6eval niecza v12-49-ga117854: OUTPUT«Bool::True␤»
..pugs b927740: OUTPUT«pugs: Named argument found where no matched parameter expected: (exists,Val (VBool True))␤»
..rakudo d5729f: OUTPUT«===SORRY!===␤Confused at line 1, near "say %h<2> "␤»
lichtkind maybe :)
19:33 GlitchMr left
lichtkind thanks 19:35
19:36 zipf joined
lichtkind huhu exists is gone as i knew it 19:36
19:40 mkramer left 19:41 benabik left, mkramer joined
sorear TimToady: ping... 19:43
phenny: tell TimToady I am wondering why assertion:variable uses <EXPR(%LOOSEST)>. Is <$foo = $bar> supposed to mean something?
phenny sorear: I'll pass that on when TimToady is around.
19:47 molaf joined 19:49 Chillance left, Chillance joined 19:51 zipf left 19:53 drbean left 19:55 sivoais left 19:57 sftp joined, hundskatt left 19:59 drbean joined
lichtkind jnthn: ping 20:12
20:12 ggoebel left, raiph joined 20:15 am0c left 20:18 hundskatt joined 20:22 bluescreen10 left 20:23 ksi joined
felher moritz++: nice blogpost. Also +1 on allowing $@something; :) 20:28
20:29 MayDaniel joined 20:31 ruoso_ joined
ruoso_ hi all 20:32
sorear o/ ruoso_ 20:37
haven't seen you in a while
ruoso_ I need to find a new rythm to resume my open-source life
between work and kid I haven't been doing anything lately 20:38
20:38 bluescreen10 joined
sorear hehe, I've heard that a lot 20:38
ruoso_ and it's a shame, since a lot of exciting stuff is happening around here.. 20:39
like the implementation of the REPR API in rakudo... 20:42
speaking of which... is there any idea of when we're getting the rakudo star releases again? 20:43
sorear There was talk of one this month
moritz ruoso_: we want to make a star release based on the December compiler release 20:50
ruoso_: most regressions from the transition to nom are now fixed, and the native call interface mostly works again
ruoso_ That's cool... is this the same transition that is getting rid of most of the PIR in the Perl6-level code? 20:51
sorear Yes 20:52
moritz $ ack Q:PIR src/core/ |wc -l 20:53
12
ruoso_ That is really cool...
moritz nom: try eval q[class A { $!undeclared } ]; say $!.perl 20:54
p6eval nom d5729f: OUTPUT«X::Attribute::Undeclared.new(name => "\$!undeclared", package-type => "class", package-name => "A", filename => "/tmp/pIOvP9ELJy", line => 1, column => Any, message => "Attribute \$!undeclared not declared in class A")␤»
moritz ruoso_: that's also new, we can now throw typed exceptions from within the compiler 20:55
sorear that's _very_ new
moritz aye :-)
20:55 sivoais joined
moritz 4 days old 20:55
ruoso_ :) 20:56
sorear the namesake feature of nom is a complete new object model
it's very SMOP-inspired
and with that came a lot of other refactorings
ruoso_ Yes, I am very very happy to see that SMOP was helpful in the end :)
sorear rakudo is now a _worthy_ opponent :P
ruoso_ So at this point we're actually close of bootstrapping rakudo over nqp... 20:57
sorear huh?
we're not leaving nqp 20:58
ever, afaict
ruoso_ that's not what I meant
what I meant is that porting rakudo to a different vm would be possible by porting nqp
in that sense nqp would be a "bootstrapping" language 20:59
moritz
.oO( chromatic's dread )
ruoso_: yes, but it's much more work than just porting nqp
lots of codegen and runtime stuff is also vm dependent 21:00
ruoso_ Oh... right... you would need a new emitter
21:01 drbean left
sorear the emitter is part of nqp, really 21:01
moritz not yet
sorear rakudo shares the nqp emitter with very tiny overrides
oh?
21:01 thou left
ruoso_ but my point is that one could make nqp have multiple emitters... 21:02
sorear Yes.
moritz in fact there's a nqplua backend, on which diakopter++ has been working a bit 21:03
ruoso_ so porting rakudo would mean porting nqp+writing a new emitter
21:03 Mowah_ joined
sorear also nqp# and jnqp, which are much better 21:03
diakopter nqplua doesn't emit anything though. it's dependent on parrot-nqp anyways
like nqpclr
sorear but nowhere near good enough to run rakudo
or themselves, as diakopter points out 21:04
ruoso_ wonders if it would be possible to port nqp to perl5guts
21:05 jlaire left
moritz possible, but probably not a good idea 21:05
ruoso_ why?
moritz too different primitives, and not low-level enough to be still efficient when combined to emulate the perl 6 stuff
diakopter a bunch of nqp is in C after all 21:06
21:06 jlaire joined
sorear moritz: I think ruoso is talking about writing our own set of primitives, but using the Perl 5 data types 21:06
ruoso_ Yes 21:07
sorear and the Perl 5 dispatch loop
ruoso_ exactly
sorear the main problems with this approach are the differences like "in Perl 6, an Int is an object, with identity"
21:08 drbean joined
ruoso_ well, that is the semantics interoperability issue, not the "running perl6" issue 21:09
lichtkind moritz: i'm 80% done, wanne have a look at it?
sorear ruoso_: another problem is that nqp doesn't use containers 21:11
ruoso_ containers in the Perl 6 sense?
sorear there would be a substantial penalty to a perl5/nqp/rakudo stack because containers would have to be reimplemented at a higher level, ignoring the perl 5 containers
containers = Scalar, struct SV
a common Perl concept 21:12
ruoso_ well, yeah... perl5 doesn't have containers...
perl5 only have values
but why would that penalty be bigger with the p5 core than with the parrot core? 21:14
lichtkind any other people here involved in advent calendar? 21:17
21:18 thou joined 21:19 Trashlord left 21:27 Trashlord joined
jnthn home at last 21:48
tadzik home at... hey!
jnthn :P
5 hour decommute was, at least, comfy and with wifi 21:49
slavik1 ....
jnthn slavik1: Train from Stockholm down to south of Sweden :) 21:51
I would say not a regular commute, though I've done the trip twice this month. :)
And have got it at least once next month.
slavik1 oh
jnthn: so you heard of this guy named Jonathan Walsh? 21:52
jnthn slavik1: No...should I have? :) 21:53
slavik1 he was on the front page of some swedish paper 21:54
I thought swedes were all gamers and such
21:55 Mowah_ left
slavik1 dreamhack, starcraft2, doesn't ring a bell? 21:55
jnthn Ah...I've never been a gamer. But yeah, it's popular here.
sorear at least you have decent trains
jnthn ain't Swedish, just living in Sweden :)
slavik1 oh, ok
how is sweden? I was told you don't need to know a word of swedish ... 21:56
tadzik orka!
jnthn sorear: Yes, I'm happy about that. Especially as I'm not allowed to drive a car. :)
slavik1: It's pretty nice here. You can certainly get by with English, but it would feel odd to live in a country and not at least do the trivial things in the local language. So I'm learning...slowly. :) 21:57
sorear jnthn: Is that because you're a filthy foreigner, or because the Swedes are sensible enough to outlaw private car ownership? 21:58
jnthn sorear: Neither. It's 'cus I don't have good enough eyesight to drive safely.
(Retina condition, so basically unfixable.) 21:59
Makes me very glad to be in Europe, where public transport generally exists, and in many places can be pretty good.
slavik1 NYC has decent public transportation 22:00
best in the country :(
22:00 MayDaniel left
jnthn To be fair, it's not just Europe where it's good. 22:00
I had little problem getting around in Japan, China, Russia, etc. 22:01
tadzik did you experience Japan subway in the rush hours?
jnthn tadzik: I avoided it...right until my very last day there, when the time of my flight meant I ahd to experience it at rush hour. 22:02
"experience" is certainly the word for it. :)
tadzik hah
were you pushed in by the pushers? :P
jnthn I've never actually felt like any form of transport I've been on since was crowded. :)
22:03 bluescreen10 left
jnthn tadzik: No, folks seemed quite capable of sardining themselves onto the subway in general. :) 22:03
tadzik I consider subway to be crowded when you cannot fall down, even if you faint or whatever
haha, the sardines analogy seems quite international :P
22:04 donri left
dalek p: d3bf21d | jnthn++ | src/6model/reprs/CPointer.c:
Fix storage spec for CPointer repr; flussence++ for reporting the bug and testing the patch.
22:07
22:08 hundskatt left 22:10 ruoso_ left 22:19 bluescreen10 joined
lichtkind tadzik, jnthn someone to chekc my article so far? 22:24
22:25 hundskatt joined 22:27 drbean left, lichtkind left 22:33 drbean joined 22:53 baest left 23:04 tokuhirom joined 23:12 zipf joined 23:13 zipf left, zipf joined 23:23 zipf left
raiph comments.assuming(@listener>0) 23:33
try.rakudo.org doesn't work; ideone.com does; perlcabal.org/~fglock/perlito.html is great; maybe update perl6.org? 23:35
stackoverflow: perl6 tag; 91 followers; 50 questions; 21 this year; none unanswered; 23:37
23:38 tokuhirom left
sorear huh? 23:39
PerlJam read "none unanswered" as "none answered" at first
23:40 geekosaur left
sorear Those look like facts and statistics to me, not comments ... is there subtext I'm missing? 23:40
raiph hi sorear 23:41
sorear hello raiph
23:42 geekosaur joined
raiph sorear: just that one advantage of perl6's current situation is the relative responsiveness of its community 23:45
dalek ecza: c2f6274 | sorear++ | / (6 files):
Add <$foo> and <@foo>
23:46 geekosaur left 23:47 geekosaur joined
raiph 3 stackoverflow perl6 questions look like they could maybe do with a better / updated answer: 23:48
stackoverflow.com/questions/5031737...g-question
stackoverflow.com/questions/4516057...-in-perl-6
stackoverflow.com/questions/3135673...ons-mature
i've read enough to make me think things have moved on since the answers, but not enough to think i can give those better answers 23:50