»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
grondilu has finished recompiling rakudo and no, it didn't help. Kind of frustrating. 01:22
lue grondilu: what's the error, specifically? 02:02
colomon he's gone? 02:05
snoopy grondilu: has rakudo been rebuilt with icu support enabled (ICU=1 in Makefile)? 02:15
(icu = unicode) 02:28
JimmyZ \o/, now the left blockers for bootstrap are exception, serialization, nqp::sprintf 03:07
wrong channel...
dalek rlito: 48b6949 | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Bareword.pm:
Perlito5 - indirect syntax TODO
07:48
moritz .tell grondilu Rakudo assumes UTF-8 as default encoding. Having another Unicode encoding in your environment isn't good enough. 07:53
yoleaux moritz: I'll pass your message to grondilu.
[Coke] jnthn: finally got back to the rebuf roast enough times to kick off the testing. 12:25
running on parrot on linux now.
pmurias jnthn: what does scwbdisable() and scwbenable() do? 12:27
arnsholt Looks like write barriers on serialization contexts? 12:28
moritz would guess that scwb stand for 'serialization context' and 'write barrier'
arnsholt I'm not familiar enough with the internals of the SCs to tell you what that entails though 12:29
pmurias what it entails to is what I want to know 12:29
dalek kudo-js: bb6e12b | (Pawel Murias)++ | / (7 files):
Stub the NFA repr, compile QRegex.
12:33
kudo-js: 695839d | (Pawel Murias)++ | / (7 files):
Implement 'is positional_delegate','is associative_delegate'.

We depend on node-int64 to avoid fiddling with numbers. We pass test 73 but it's not in our nqp (we still use a branch till I improve the double serialization hack).
jnthn pmurias: The SC write barrier thing catches cases where we modify an object that was deserialized from some other compilatino unit 12:46
yoleaux 21 Jul 2013 21:48Z <lizmat> jnthn: "my Buf $a = "asdf".encode" fails with "Type check failed in assignment to '$a'; expected 'Buf' but got 'utf8'"
21 Jul 2013 21:48Z <lizmat> jnthn: faliing IO tests in rebug branch: gist.github.com/lizmat/6050073
jnthn pmurias: This ties into the object repossession thing
pmurias: The most immediate Perl 6 example is augment.
GlitchMr rn: say (44 * hours).perl 12:49
camelia rakudo a1e237: OUTPUT«264␤»
..niecza v24-88-g1f87209: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'hours' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 36) ␤ at /ho…
JimmyZ r: say hours
camelia rakudo a1e237: OUTPUT«hours␤»
JimmyZ r: say &hours
camelia rakudo a1e237: OUTPUT«===SORRY!===␤Undeclared name:␤ &hours used at line 1␤␤»
moritz it's an enum value 12:50
not a callable
JimmyZ ah
r: say hours.perl
camelia rakudo a1e237: OUTPUT«TimeUnit::hours␤»
FROGGS r: say hours and hours and hours 12:51
camelia rakudo a1e237: OUTPUT«hours␤»
pmurias jnthn: and why do we disable/enable this when pushing things into the mixin cache? 12:53
GlitchMr rn: say :2('1.1').base(16) 13:08
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method base in type Rat␤ at /tmp/5v41YnoUi3 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤ at /home/p…
..rakudo a1e237: OUTPUT«1.8␤»
GlitchMr It segfaulted in REPL (Rakudo) for me
Strange
And now it doesn't. Really strange.
jnthn pmurias: Because we don't want to serialize the cache. 13:14
GlitchMr rn: sleep -10 13:16
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: System.ArgumentOutOfRangeException: Negative timeout␤Parameter name: millisecondsTimeout␤ at System.Threading.Thread.Sleep (Int32 millisecondsTimeout) [0x00000] in <filename unknown>:0 ␤ at Builtins.sleep (Niecza.Constants c, Double …
..rakudo a1e237: OUTPUT«Cannot go back in time␤ in sub sleep at src/gen/CORE.setting:657␤ in block at /tmp/TxNb8h4Krf:1␤␤»
GlitchMr I like error message in Rakudo 13:16
pmurias printing out the argument would be even more awesome 13:18
GlitchMr r: say (dir,) 13:19
camelia rakudo a1e237: OUTPUT«IO::Path<star> IO::Path<src> IO::Path<.subversion> IO::Path<.bashrc> IO::Path<nom-inst1> IO::Path<toqast> IO::Path<test3.pl> IO::Path<.profile> IO::Path<t> IO::Path<nom-inst2> IO::Path<nom-inst> IO::Path<toqast-inst> IO::Path<toqast-inst2> IO::Path<examples> IO::Pa
GlitchMr r: say (dir ,)
camelia rakudo a1e237: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix , instead␤at /tmp/kOT9iFOclh:1␤------> say (dir ,⏏)␤»
GlitchMr r: say (dir '/tmp',)
camelia rakudo a1e237: OUTPUT«(timeout)» 13:19
GlitchMr r: say +dir '/tmp'
camelia rakudo a1e237: OUTPUT«(timeout)»
GlitchMr n: say +dir '/tmp' 13:20
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: dir may not be used in safe mode␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (dir @ 0) ␤ at /tmp/GqBeJGx1R1 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.…
GlitchMr I've a feeling that /tmp is full of files
[Coke] jnthn: feather.perl6.nl/~coke/rakudo_summary.out is the rebuf branch. as of whenever I said I'd run it. ;) 13:21
looks like mainly unicode errors. 13:22
... OH. because that machine has no icu? arglebargle. 13:23
pmurias nqp's Configure should check for that 13:25
[Coke] .to diakopter - can we get libicu-dev installed on 06?
yoleaux [Coke]: I'll pass your message to diakopter.
[Coke] it does, and if I had used 'make spectest', it wouldn't have tried to run those tests. 13:26
pmurias [Coke]: nqp's 'make test' fails without icu 13:28
moritz jnthn: I have a few spectest failures in rakudo-parrot on the 'rebuf' branch. Is that expected? 13:30
if no, I can nopaste the output for you 13:31
oh, here it is. If you're not interested, just ignore it :-) gist.github.com/moritz/6053821 13:32
jnthn moritz: Did you sue rebuf branch of roast also? 13:33
moritz: But the interesting one is the socket one, which didn't chang in the branch iirc, 13:34
moritz: It passes on my system, so I'd appreciate any analysis you have time for
moritz jnthn: no, used roast/master
will fix that
FROGGS sometimes I have socket fails too fwiw 13:35
(not me personally, but the tests)
timotimo i have sock fails all the time :( 13:41
damn washing machine
FROGGS *g* 13:42
tadzik :D 13:44
moritz t/spec/S02-names-vars/perl.rakudo.parrot says 'No plan found in TAP output', and t/spec/S32-io/IO-Socket-INET.t failed tests 17-19 13:45
jnthn: that was in branch rebuf on rakudo+roast
grondilu what's the syntax to test a particular spectest file? 14:07
yoleaux 07:53Z <moritz> grondilu: Rakudo assumes UTF-8 as default encoding. Having another Unicode encoding in your environment isn't good enough.
FROGGS grondilu: make t/... should do 14:08
[Coke] I often use "prove -v -e t/fudgeandrun S02-blah/bar.t", for reasons.
grondilu ok 14:09
moritz: but my encoding is en_US.UTF-8 (that's what is in my system LANG env var) 14:10
moritz grondilu: but what about irclog.perlgeek.de/perl6/2013-07-21#i_7355700 ? 14:14
grondilu: the LANG var interprets how programs interpret byte streams as text, but not necessarily how your terminal translates key strokes into byte streams 14:16
grondilu ok
grondilu still, I did get the same binary output than flussence, and it worked for him 14:22
grondilu runs again 'echo "my $α = 1;" |xxd -p' 14:22
grondilu 6d792024ceb1203d20313b0a 14:23
moritz grondilu: what does perl6 -e 'say $*VM<config><has_icu>' say? 14:30
grondilu 0
^ 14:31
did you expect 1?
moritz grondilu: well, it explains a lot 14:33
grondilu: Unicode support only really works if you have icu development files installed when configuring and compiling parrot, nqp and rakudo 14:34
(as documented in the README, which nobody bothers to read anyway)
pmurias jnthn: what is the caps thing we push on top of the bstack? (which we seems to be taken from the previous top of the bstack?)
grondilu moritz: thanks, I'll install libicu-dev and libreadline-dev 14:36
(as suggested in README)
pmurias jnthn: ahh, found it, it seems to be the current head of the cstack 14:37
moritz grondilu: and throw away your old parrot build and installation before you recompile 14:40
grondilu k 14:41
grondilu had recently changed from debian to fedora so he should have expected that he'd have to do this kind of stuff... 14:46
diakopter [Coke]: done 15:10
[Coke] diakopter++ 15:12
yoleaux 15:10Z <diakopter> [Coke]: done
[Coke] ? why did yoleaux repeat that? 15:13
diakopter you're a yoleaux
FROGGS [Coke]: see #moarvm
grondilu can confirm that installing libicu-devel and recompiling parrot/rakudo solved the unicode issues. 15:56
moritz++ ^ 15:57
[Coke] grondilu++ 16:00
diakopter [Coke]: would you like to help me get rakudo-jvm onto camelia? 16:06
or, "rj" as I affectionately named her 16:07
[Coke] Sure.
nqp-jvm: nqp:say("barf"); 16:08
camelia nqp-jvm: OUTPUT«Confused at line 2, near "nqp:say(\"b"␤ in panic␤ in comp_unit␤ in TOP␤ in parse␤ in parse␤ in <anon>␤ in compile␤ in eval␤ in evalfiles␤ in command_eval␤ in command_line␤ in MAIN␤ in <anon>␤ in <anon>»
[Coke] bah, no version #.
nqp-jvm: nqp::say("barf");
camelia nqp-jvm: OUTPUT«barf␤»
dalek kudo/nom: 6404e52 | (Elizabeth Mattijsen)++ | src/core/control.pm:
Make sleep() tell how many seconds we wanted to go in the past.

As suggested by pmurias++. This also makes the error message independent of the VM, as the original message apparently came from within Parrot itself.
16:15
lizmat and good *, #perl6!
dalek ast: 568df70 | (Elizabeth Mattijsen)++ | S29-context/sleep.t:
Add test for sleep with negative values
16:20
ecocode lizmat: are you compiling nqp on macosx ?
lizmat ecocode: yes
ecocode on my system I got an error in t/jvm/06-sprintf.t when running make test for nqp on jvm 7.25 16:21
lizmat ah, but I only do parrot based nqp so far 16:22
ecocode Failed tests: 31, 239
ah, I'm doing the bleeding stuff ;)
lizmat fairly bleeding, yes 16:22
ecocode ok, I'll get back to parrot stuff then 16:24
thx 16:25
jnthn evening, #perl6
lizmat o/ jnthn! 16:31
lizmat r: say Whatever.new # is this in violation of S02:1025? 16:39
synopsebot Link: perlcabal.org/syn/S02.html#line_1025
camelia rakudo a1e237: OUTPUT«WhateverCode.new()␤»
lizmat would expected to have that bomb, judging from the spec
oddly enough, Whatever.new is actually written as: "method new() { nqp::create(self) }"
[Coke] jnthn: feather.perl6.nl/~coke/rakudo_summary.out is updated several socket related failures remain. also a failure elsewhere with: Type check failed in assignment to '$a'; expected 'Buf' but got 'utf8' 16:40
jnthn [Coke]: OK, the latter is an out of date test, the first I'm not sure how to fix :(
lizmat r: say utf8.^mro # maybe because this fails? 16:41
camelia rakudo a1e237: OUTPUT«===SORRY!===␤Undeclared routine:␤ utf8 used at line 1␤␤»
jnthn lizmat: utf8 only exists in rebuf branch. :) 16:42
lizmat ah, good point
lizmat goes check the branch
jnthn The spec ays that .encode should return the most specific reasonable thing.
.encode to utf-8 should return something of type utf8
(which ~~ Blob, but not ~~ Buf)
lizmat BTW, is there a reason to not merge the branch yet ? 16:44
or is the failing IO test a show stopper ? 16:45
jnthn lizmat: I'm reluctant to merge it with the sockets issue but it doesn't show up for me :( 16:50
lizmat jnthn: when I look in the branch, I see utf8 inheriting from Any, not Buf or Blob
jnthn Buf and Blob are (per spec) roles.
lizmat $ perl6 -e 'say utf8.^mro' (utf8) (Any) (Mu) 16:51
jnthn So they won't show up in the mro, which is about classes.
(Yes, we had Buf as a class before. That's one of the things I fixed. :))
perl6 -e "say utf8 ~~ Blob" # should be True 16:52
lizmat jnthn: any reason for the "-" in " method decode(utf16:D: $encoding = 'utf-16') {" ? 16:53
why not supply a default that doesn't need normalizing ? 16:54
jnthn lizmat: Was just following S32 :)
lizmat: And what we already had.
lizmat seems to me .encoding should only return normalized encodings 17:04
jnthn tbh, "normalized" so far means "what Parrot calls it"... 17:05
lizmat jnthn, lookting at src/core/Str's sub NORMALIZE_ENCODING: wouldn''t make sense to take the %map initialisation out of the sub, or is that optimized away already ? 17:09
so that it only initialises once
or am I thinking too much p5 here ? 17:10
jnthn lizmat: It'd probably make sense, or just make it a constant or state. :)
lizmat wonders whether NORMALIZE_ENCODING shouldn't live as a method in Any 17:22
jnthn It's not in any way spec'd 17:25
That sounds...weird
lizmat so where would be a good place to spec this ? 17:26
jnthn I'm not entirely sure if we should... 17:26
jnthn shop; bbiab 17:28
lizmat r: constant %H=a=>1,b=>2; say %H.WHAT # expected Hash rather than Parcel 17:36
camelia rakudo 6404e5: OUTPUT«(Parcel)␤» 17:37
lizmat n: constant %H=a=>1,b=>2; say %H.WHAT # just testing
camelia niecza v24-88-g1f87209: OUTPUT«(Hash)␤»
lizmat seems niecza gets this right, or maybe it doesn't implement "constant" :-)
n: constant %H=a=>1,b=>2; %H<c>=3 # just testing 17:38
camelia niecza v24-88-g1f87209: ( no output )
lizmat n: constant %H=a=>1,b=>2; %H<c>=3; say %H # just testing
camelia niecza v24-88-g1f87209: OUTPUT«{"a" => 1, "b" => 2, "c" => 3}␤»
lizmat seems like the latter :-)
lizmat r: constant %H=a=>1,b=>2; say %H<a> # suspects rakudobug 17:48
camelia rakudo 6404e5: OUTPUT«postcircumfix:<{ }> not defined for type Parcel␤ in method gist at src/gen/CORE.setting:10565␤ in method gist at src/gen/CORE.setting:919␤ in sub say at src/gen/CORE.setting:11459␤ in block at /tmp/3Nwuc63VyR:1␤␤»
moritz r: constant %H=(a=>1,b=>2).hash; say %H<a> 17:55
camelia rakudo 6404e5: OUTPUT«1␤»
lizmat r: constant %H=(a=>1,b=>2).hash; %H<c>=1 17:56
camelia rakudo 6404e5: ( no output )
lizmat not really constant ;-( 17:57
r: constant %H=(a=>1,b=>2).hash; %H<b>=3
camelia rakudo 6404e5: ( no output )
jnthn lizmat: constant just binds what you but on the LHS to the symbol at the moment 18:02
lizmat: It's wrong, but I'm short on details of how to do it "right"; as you've noticed, niecza is only marginally righter in terms of giving actual constantness, if that's what we are expecting.
lizmat indeed… so where would I look to achieve the same amount of rightness as niecza 18:03
I mean, creating it as a parcel is just simply wrong (TM)
jnthn Well, you wrote a parcel there :) 18:04
So I guess you'd like it to do .hash or so
Based on the sigil
Take a look in the action method for constant declarator, I guess
lizmat r: my %hash=a=>1,b=>2; say %h.WHAT
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Variable '%h' is not declared␤at /tmp/GDN8mtrm57:1␤------> my %hash=a=>1,b=>2; say %h.WHAT⏏<EOL>␤ expecting any of:␤ method arguments␤»
lizmat r: my %h=a=>1,b=>2; say %h.WHAT
camelia rakudo 6404e5: OUTPUT«(Hash)␤»
jnthn Yeah, thing is there that we create a hash and assign into it...
lizmat normal %h initlalization coerces to Hash
jnthn yes, but a constant isn't normal, is it... :)
moritz basically constant implicitly does a := in rakudo
jnthn moritz: Right. 18:05
moritz (and it doesn't even type-check wrt sigils)
timotimo is there a reason not to make := for constants explicit?
jnthn I've looked at fixing it in the past, but never figured out a way that felt truly "right"
I guess patches that make things somehow less wrong are ok, though :) 18:06
lizmat well, *my* expectation of constant %H would be an immutable hash with immutable values
jnthn lizmat: yes, but what about constant %h = a => [1, 2], b => [3,4]; or so? 18:07
timotimo hm, infectious constancy?
jnthn Do you expect it to somehow recursively "constant-ize" the thing?
lizmat yes, otherwise why bother making it "constant" 18:07
moritz lizmat: problem is, we don't have any mechanism to make composite data structures deeply read-only
jnthn Right, that's the heart of the issue.
jnthn Right now constant in the implementations really means "evaluate the RHS at compile time and bind it to the symbol" 18:08
lizmat but the container descriptor as a read-only attribute, no?
*has
"has int $!rw;" 18:09
.oO( has visions of obfuscated Perl6 contests )
18:10
jnthn yes but that's exactly one level deep 18:11
lizmat we need more than one level?
dalek rl6-roast-data: 19e807f | coke++ | / (4 files):
today (automated commit)
18:12
[Coke] got one more rakudo.jvm test. whee.
jnthn lizmat: hashes are already 2 levels
lizmat r: my %h := eval "constant %h=a=>1"; say %h[0] # ;-) 18:19
camelia rakudo 6404e5: OUTPUT«"a" => 1␤»
lizmat r: my %h := a=>1; say %h[0] # ;-) 18:20
camelia rakudo 6404e5: OUTPUT«"a" => 1␤»
lizmat hmmm
jnthn um, that last one shouldn't be possible...
r: say (a => 1) ~~ Associative 18:21
camelia rakudo 6404e5: OUTPUT«True␤»
jnthn oh.
jnthn Well, that's why :) 18:21
lizmat only works on one key hashes :-)
jnthn Yeah, worth checking spec to see if Pair is meant to do Associative. 18:22
lizmat r: my %h; %h[0]=1; say %h #huh? 18:23
camelia rakudo 6404e5: OUTPUT«Odd number of elements found where hash expected␤ in method STORE at src/gen/CORE.setting:7319␤ in block at /tmp/lLuCoIh1KH:1␤␤»
lizmat r: my %h:=a=>1; %h[0]=1; say %h # huh?
camelia rakudo 6404e5: OUTPUT«Cannot modify an immutable value␤ in block at /tmp/4JJmYbr9LI:1␤␤»
[Coke] r: my %h; %h<0>=1; say %h
camelia rakudo 6404e5: OUTPUT«("0" => 1).hash␤»
jnthn lizmat: You're forgetting that item[0] returns the item....
lizmat ah, yes 18:24
r: my %h := a=>1; say %h[1] # ;-)
camelia rakudo 6404e5: OUTPUT«Index out of range. Is: 1, should be in 0..0␤ in method gist at src/gen/CORE.setting:10565␤ in method gist at src/gen/CORE.setting:919␤ in sub say at src/gen/CORE.setting:11459␤ in block at /tmp/ERr4cJTXZO:1␤␤»
lizmat indeed
jnthn :) 18:25
notjack r: my %h = {:foo :bar}; say %h{foo};
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Undeclared routine:␤ foo used at line 1␤␤»
notjack r: my %h = {:foo, :bar}; say %h{'foo'};
camelia rakudo 6404e5: OUTPUT«True␤»
notjack r: my %h = {:foo, :bar}; say %h{foo};
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Undeclared routine:␤ foo used at line 1␤␤»
notjack r: my %h = {:foo :bar}; say %h{:foo}; 18:26
camelia rakudo 6404e5: OUTPUT«(Any)␤»
notjack r: my %h = {:foo,:bar}; say %h{:foo};
camelia rakudo 6404e5: OUTPUT«(Any)␤»
lizmat r: my %h = {:foo, :bar}; say %h<foo>; # notjack: {} always executes what's inside of it
camelia rakudo 6404e5: OUTPUT«True␤»
notjack ah, thanks
lizmat also: :foo is short for foo => True
notjack yeah, that's neat 18:27
lizmat :!foo is foo => False
notjack r: my $key='foo'; my %h = {:$key}; say %h.keys; 18:28
camelia rakudo 6404e5: OUTPUT«key␤»
lizmat :$foo is foo => $foo
timotimo there's also %h<foo> which is short for %h{'foo'}
lizmat r: my $foo=1; { :$foo }.say
camelia rakudo 6404e5: OUTPUT«("foo" => 1).hash␤»
lizmat r: my $foo=1; :$foo.say # even shorter 18:29
camelia rakudo 6404e5: OUTPUT«"foo" => 1␤»
notjack lizmat: but your first expression is a hash, and the second just a bare pair, right? 18:30
lizmat yes
I think the phrase is "adverbial pair"
notjack r: my $foo='bar', $bar='foo'; my %h = {:$foo, :$bar}; say %h<foo>; 18:31
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Variable '$bar' is not declared␤at /tmp/mP4oUrBPBS:1␤------> my $foo='bar', $bar⏏='foo'; my %h = {:$foo, :$bar}; say %h<f␤ expecting any of:␤ postfix␤»
lizmat my %sliced = %hash{@slice}:delete:p
notjack r: my $foo='bar'; my $bar='foo'; my %h = {:$foo, :$bar}; say %h<foo>;
camelia rakudo 6404e5: OUTPUT«bar␤»
notjack heh
lizmat r: my $foo='bar'; my $bar='foo'; my %h = (:$foo, :$bar); say %h<foo>; 18:31
camelia rakudo 6404e5: OUTPUT«bar␤»
notjack is %h<blah> special syntax, or is <blah> interpreted normally, and somehow passed into %h as an argument? 18:32
benabik %h<foo> ~~ %h{"foo"}, IIRc
notjack r: my %h={foo=>'bar',baz='booze'};say %h <bar> ; #whitespace 18:33
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Undeclared routines:␤ bar used at line 1. Did you mean '&bag'?␤ baz used at line 1. Did you mean '&bag'?␤ h used at line 1␤␤»
notjack special syntax then, but very mnemonic
lizmat actually, $h<foo> is %h{'foo'} # note single quotes
notjack because <> is q<> ? 18:34
lizmat actually, $h<<foo>> is %h{"foo"} # note double quotes
notjack or is <> qq?
benabik r: my %h={foo=>'bar', bar=>'quux'}; say %h<foo bar>
camelia rakudo 6404e5: OUTPUT«bar quux␤»
lizmat <> is 1, <<>> is qq
benabik r: my %h={foo=>'bar', bar=>'quux'}; say %h{<foo bar}
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Unable to parse expression in quote words; couldn't find final '>'␤at /tmp/QK5TbZXbtl:1␤------> o=>'bar', bar=>'quux'}; say %h{<foo bar}⏏<EOL>␤ expecting any of:␤ postfix␤ subscript␤ semicolo…
benabik r: my %h={foo=>'bar', bar=>'quux'}; say %h{<foo bar>}
camelia rakudo 6404e5: OUTPUT«bar quux␤»
lizmat enjoying some thunderstorm rain, bbiab & 18:35
[Coke] .to blave which we all know means "to bluff."
yoleaux [Coke]: I'll pass your message to blave.
benabik %h<foo bar> ~~ %h{<foo bar>} ~~ %h{['foo', 'bar']} ?
timotimo yeah
benabik r: my %h={foo=>'bar', bar=>'quux'}; say %h{<foo>}.WHAT 18:36
camelia rakudo 6404e5: OUTPUT«(Str)␤»
benabik Important that %<> is %{<>} and not %{''}. Multiple words get split. 18:37
lizmat benabik: qood point :-) 18:38
r: my %h{Hash}= {a=>1} =>1; say %h # the wonders of Perl 6
camelia rakudo 6404e5: OUTPUT«Hash[Any,Hash].new({"a" => 1} => 1)␤»
lizmat keys can be objects too, not just stringifications
notjack r: my @a=<what does this do>; my %h={what=>'WUT',does='DUZ',this='DIS',do='DUE'};say %h<@a>; # note <> not []; 18:39
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Undeclared routines:␤ do used at line 1␤ does used at line 1␤ this used at line 1␤␤»
notjack r: my @a=<what doez this do>; my %h={what=>'WUT',doez='DUZ',this='DIS',do='DUE'};say %h<@a>; # note <> not [];
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Undeclared routines:␤ do used at line 1␤ doez used at line 1␤ this used at line 1␤␤»
notjack r: my @a=<what doez this doo>; my %h={what=>'WUT',doez='DUZ',this='DIS',doo='DUE'};say %h<@a>; # note <> not [];
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Undeclared routines:␤ doez used at line 1␤ doo used at line 1␤ this used at line 1␤␤» 18:40
diakopter anyone with expertise in two-factor, vpn, virtual desktop stuff please contact me... 18:40
benabik r: my @a=<what does this do>; my %h={what=>'WUT',does=>'DUZ',this=>'DIS',do=>'DUE'};say %h<@a>; # note <> not []; 18:41
camelia rakudo 6404e5: OUTPUT«(Any)␤»
benabik notjack: ^^. you were missing some >
r: my @a=<what does this do>; my %h={what=>'WUT',does=>'DUZ',this=>'DIS',do=>'DUE'};say %h<<@a>>; 18:42
camelia rakudo 6404e5: OUTPUT«(Any)␤»
benabik r: my @a=<what does this do>; my %h={what=>'WUT',does=>'DUZ',this=>'DIS',do=>'DUE'};say %h{@};
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at /tmp/HHar5oOkSQ:1␤------> es=>'DUZ',this=>'DIS',do=>'DUE'};say %h{⏏@};␤ expecting any of:␤ postfix␤ subscript␤ semicolon list␤ prefix or te…
benabik r: my @a=<what does this do>; my %h={what=>'WUT',does=>'DUZ',this=>'DIS',do=>'DUE'};say %h{@a};
camelia rakudo 6404e5: OUTPUT«WUT DUZ DIS DUE␤»
lizmat benabik++
lizmat r: say Hash[42]' # seems odd 18:52
camelia rakudo 6404e5: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/oH8asoHUWo:1␤------> say Hash[42]⏏' # seems odd␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ statement modifier␤ …
lizmat r: say Hash[42] # seems odd
camelia rakudo 6404e5: OUTPUT«(Hash+{TypedHash})␤»
lizmat ah, it uses 42 as the type of the values 18:52
r: my $a= Hash[42].new; $a<a>=1; say $a # actually, the type of 42 18:55
camelia rakudo 6404e5: OUTPUT«Hash[Int].new("a" => 1)␤»
lizmat r: Int(Str) # should that call Str.Int ? 19:21
camelia rakudo 6404e5: OUTPUT«Invocant requires an instance, but a type object was passed␤ in method Int at src/gen/CORE.setting:4380␤ in block at /tmp/DWdyyRLh0z:1␤␤»
dalek rlito: 252f5ab | (Flavio S. Glock)++ | t5/01-perlito/27-syntax-indirect-object.t:
Perlito5 - indirect-object tests
19:22
lizmat
.oO( does Flavio realize his "secret" work on Perlito is visible here )
19:23
timotimo what gives you the idea it's secret? 19:36
lizmat because at one point he told me he considered the Perlito project as "complete", as in that no further development would be done 19:42
lizmat I guess things have changed since then: www.i-programmer.info/professional-...glock.html 19:46
glad to see that :-)
lue hello world o/ 19:50
dalek kudo/rebuf: 5df9466 | jnthn++ | src/core/IO/Socket.pm:
Attempt some binary socket IO fixes.
jnthn plz can somebody who had the IO socket test fails with rebuf try the test with that patch? 19:51
hellue! o/
lizmat will do 20:00
[Coke] willen do 20:05
lizmat 100% success here 20:07
[Coke] holy crap you have a fast machine.
(did you run the full test suite or just the failures?) 20:08
lizmat I just did the failing test
[Coke] heh
lizmat running full spectest now
jnthn lizmat: yay
That means we can merge all the things
lizmat should have full spectest result in ~ 5 mins 20:09
jnthn ok
[Coke] holy crap you have a fast machine.
jnthn I think there may be one spectest that wants fixes
;) 20:10
lizmat the one with Buf and utf8 ?
jnthn yeah
I'm guessing it's a #icu one...
lizmat wonder whether that couldn't be handled by coercion
jnthn Or I just missed it for some other reason.
dalek rlito: 294993d | (Flavio S. Glock)++ | t5/01-perlito/27-syntax-indirect-object.t:
Perlito5 - indirect-object tests
20:11
lizmat [Coke}: I got it specifically for being able to do this fast :-) 20:12
lue loliblog --> rdstar.wordpress.com/2013/07/22/so...in-perl-6/ 20:12
jnthn lizmat: OK, got merges done locally, will push once you confirm no negative fallout from my patch. 20:13
lizmat t/spec/S02-names-vars/perl.t still fails 20:14
that's the "my Buf $a = "asdf".encode();" 20:15
jnthn yeah, that's not right any more
.encode defaults to utf-8, which returns a utf8 now (as per spec), and from discussion with TimToady++ a couple of days ago we now know that utf8 ~~ Blob, and utf8 !~~ Buf. 20:16
(spec may need some synchronizing with that)
lizmat no, it seems to fudge incorrectly now 20:16
jnthn ? 20:17
> say "asdf".encode().perl; 20:18
utf8.new(97, 115, 100, 102)
dalek ast/rebuf: 5e1fb84 | (Elizabeth Mattijsen)++ | S02-names-vars/perl.t:
Fix problem in fudge
jnthn > "asdf".encode() ~~ Blob
True
> "asdf".encode() ~~ Buf
lizmat clean now
jnthn False
lizmat it was a problem in the fudge
missing quote
it's clean now 20:19
jnthn The test shouldn't be fudged, it should be brought in line with reality
Like I did with other tests
lizmat checking
arnsholt jnthn: One thing I've been pondering recently is unsigned natives. Have you thought any about that?
jnthn arnsholt: Yeah, it's been on my mind a bit.
lizmat jnthn: without the fudge I get "Type check failed in assignment to '$a'; expected 'Buf' but got 'utf8'"
[Coke] jnthn: gist.github.com/coke/6057285 - rebuf failures.
arnsholt Both Parrot and JVM have only signed integers, and I'm unsure what's good things to do about the whole thing 20:20
At least JVM mandates twos complement representation
[Coke] updated with the actual -v output 20:21
jnthn lizmat: Right. The test currently reads:
my Buf $a = "asdf".encode();
lizmat: Expecting that encode returns something that ~~ Buf is no longer correct.
lizmat so what should the test read then?
jnthn lizmat: s/Buf/Blob/ is correct 20:22
jnthn checks how well sync'd S02 is with his discussion with TimToady++
lizmat Can not decode a utf-8 buffer as if it were ascii
jnthn grr
Well, yeah...
jnthn didn't read the next line of the test 20:23
[Coke] shouldn't that be a "sometimes" error? ;)
lizmat s/ascii/utf8 works 20:23
jnthn Well, it's more that utf8 buffers know their encoding type and get upset if you try to decode them as something else.
[Coke] jnthn: there are new errors for me in the socket tests.
jnthn [Coke]: With or without my latest rebuf patch?
lizmat [Coke]: also "rebuf" in roast! 20:24
[Coke] roast @ 5e1fb84, rakudo @ 5df9466
lizmat jnthn: fwiw, is eval($a.perl).decode("utf8"), "asdf"; passes 20:25
[Coke] I didn't do a full clean on rakudo.parrot like I would if it were the daily run, just did a git pull --rebase, reconfigure, make
dalek ecs: 3a9c994 | jnthn++ | S (2 files):
utf8 is now a blob8, and encode returns Blobs.

Per discussion on #perl6 with TimToady++.
20:29
jnthn [Coke]: hmmm...oddness 20:36
lizmat: Yeah, that's a reasonable thing
lizmat: I'm wondering if we shouldn't complain if you try to decode it as something else, though.. 20:37
lizmat I'll commit this now so that we can merge, and look at the failure modes later ok?
dalek ast/rebuf: bccdba9 | (Elizabeth Mattijsen)++ | S02-names-vars/perl.t:
Make encode/decode test pass on rakudo for now
20:38
jnthn ok
lizmat I guess we're ready for a merge now
jnthn Yeah, I will still try to triage Coke's failure though 20:39
dalek kudo/rebuf: def71e6 | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Make sure we initialize encoding normalization hash only once
20:40
kudo/rebuf: a50c61e | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Make NORMALIZE_ENCODING a bit faster
[Coke] jnthn: heading out now, won't be able to run another test for a few hours.
dalek ast: a3094da | jnthn++ | S (5 files):
Various test updates for Buf changes.

Rakudo has become more closely aligned with the spec in various ways, and these tests were caught out in the process.
20:41
ast: d237184 | (Elizabeth Mattijsen)++ | S02-names-vars/perl.t:
Make encode/decode test pass on rakudo for now
jnthn lizmat: oops, I'd already merged that locally...
jnthn rescues lizmat++'s commits from the branch
ugh, merge commits all over now... 20:42
lizmat thanks jnthn
(about the resques)
jnthn gonna re-do the merge 20:43
better.
git++
dalek Heuristic branch merge: pushed 21 commits to rakudo/nom by jnthn 20:44
jnthn $dayjob++ # making me learn git well
notjack git well soon, jnthn
jnthn tries optimizing buf ~ buf 20:47
dalek kudo/nom: fbd875e | jnthn++ | src/core/Buf.pm:
Make Buf concatenation more direct.

Once VMArray on Parrot implements splice, this can be simplified. For now, this is an improvement.
21:05
benabik What's the difference between Blob and Buf? 21:14
jnthn Blob is immutable 21:16
Buf is^Wwill be mutable :)
dalek ecs: 0af5e95 | (Elizabeth Mattijsen)++ | S02-bits.pod:
Move Nil to its own section before Typed Objects
21:24
garfieldnate working a QH stencil for creating P6 modules. have a couple of questions for getting started. 21:25
First, is there any place someone should post if they decide to work on a module? I know there are the most wanted modules labeled WIP in the GitHub project. Is there a pre-pan type place? Should they mention it here? Or are there few enough that we don't worry about work duplication? 21:26
lue Is it just me or are S03:475 and S03:482 accidentally in descending order? (I can't tell what's originally in the file and what my browser/text editors are messing up)
synopsebot Link: perlcabal.org/syn/S03.html#line_475
Ulti garfieldnate: modules.perl6.org/
Ulti there is a git repo that has the list of modules you add your own as a patch 21:26
vol7ron hello 21:28
Ulti hi
garfieldnate Ah, ok. So with the release-early, release-often thing one should be fine adding it as a patch when they start writing their module?
Ulti garfieldnate: do you mean adding stuff to rakudo perl6 or do you mean a module cpan style? 21:29
garfieldnate module cpan/panda style
vol7ron has perl6 been released yet? 21:30
Ulti well my module relied on a not yet implemented feature for a long while and didnt pass its tests when installed with panda so yeah
vol7ron: the language spec hasn't been finalised but the most mature compiler Rakudo has been released monthly for a long time
dalek ecs: e45fc46 | (Elizabeth Mattijsen)++ | S02-bits.pod:
Make type objects work as Nil in non-scalar contexts.
21:31
Ulti vol7ron: rakudo.org
vol7ron yeah i know of Rakudo
Ulti did you know it now comes with compile to JVM 21:32
vol7ron I know that it's still so much in development that my systems team don't view it as stable, or at a state that promotes consistency 21:33
vol7ron It seems perl6 has taken so long to "release" that we're switching over to Python or Ruby 21:34
Ulti why move from perl5
especially if stability and maturity is your criteria 21:35
jnthn sleep & 21:39
vol7ron Ulti: so perl5 is what I want to use
lizmat gnight jnthn!
jnthn 'ngiht
vol7ron but it has its problems
lizmat TimToady, pmichaud: re "e45fc46", I feel this is the best of both worlds 21:40
vol7ron I should add that perl6 is awesome, I need something to convince my systems team. I think perl6 could use some better marketing in their release cycle 21:42
frettled vol7ron: I'm sure marketing help is appreciated 21:47
lizmat vol7ron: at this point in time, I would recommend rakudo in production only for very specific uses, depending on Perl6's unique featues such as grammars
wrt to marketing: I guess at this point in time, we're looking to gather a lot of (very) early adapters 21:48
adopters
garfieldnate Second question for the QH stencil: If new Perl6 users wanted a code review of some sort, is there a place they can go to get it? There isn't a perl-6 tag (yet) on codereview.stackexchange.com. 21:51
tadzik you usually get a response on perl6-users mailing list
vol7ron I think the whole community would like a plan stating what a stable version is. perl6 contributors are awesome and have made huge improvements these last 3-5 years. I don't want the community-at-large to move away from Perl because of the other new shiny languages
Ulti lizmat: yeah that's the main bit of *real* perl6 code I have a grammar that just goes from a horrific data format to something simple for a perl5 script
tadzik I think it's had a couple of "review my code" posts; if not, I'm sure they'll be welcome
raiph garfieldnate: i recommend u focus on this IRC channel 21:52
garfieldnate I'll do that. Thanks! 21:54
lizmat Personally, I think that after the dust has settled on having multiple VM's (specifically Parrot/Jvm/MoarVM) 21:55
and I expect that in a few months, that we can decide on what 6.0.0 would contain
raiph vol7ron: "as hard to stomach as it may be, the story remains, even though they've taken a decade to get this far, [p6ers] may well take another year or two to get to Perl 6.0.0 and a generally robust status" 21:56
i think that 21:57
( from yesistilluseperl.blogspot.com/2009/...0394472828 ) 21:58
vol7ron me too, which is understandable, but once people get into a new language, they are less likely to convert programs to a new language. The best hope is for them to begin writing new code in that language and eventually rewrite old applications when the time comes 21:59
Ulti vol7ron: have you seen the v5 slang is being developed too 22:00
I think if you are already in legacy perl mode it might be worth the wait rather than utterly port from scratch
and afaik (someone will correct me) MOAR VM plans to have perl5 embedded? 22:01
tadzik yes
Ulti though surely if you are doing perl stuff for the web you'd move to PHP for profit not love
lue
.oO(It'll be *sooo* weird when we change features in the spec and it's *not* a change to 6.0.0, but 6.0.1 or something)
22:02
Ulti lol ^
Ulti something I said? >:D 22:02
lue: surely version 7.0 since people are already wanting that 22:04
lue
.oO(Perl7 starts with taking the specifications of every programming language in existence, taking out the clearly unperly bits, and then smashing them together.)
22:06
Ulti nah Perl7 works out the probability of the source being a given language and then pre-emptively compiles it with the appropriate slang 22:07
so you can just mix any language with any other
diakopter ... 22:08
Ulti and Perl7 IDEs will just show the code in whatever language you want but preserve the source in the language it's stored in
diakopter hopes posterity and lurkers know you're kidding 22:09
Ulti then people will argue about what is the best viewing language rahter than number of spaces for a tab
diakopter: lol
lue Ulti: Obviously, the best viewing language is Perl 6.
Ulti sounds like a plausible jump considering 5->6
version 8 would learn to watch your eye movement to alter the view to a language that is confusing you less as you glance through 22:10
huf_ and 9 will be a homoiconic lisp with complex syntax :)
Ulti I'd hope 9 just writes itself and is sentient, but ok 22:11
huf_ that already exists, you just need to become a boss
lue Hey, woah. You guys need to read your S01 and A01 again.
Ulti lol
lizmat
.oO( Revolution #9 )
lue "Perl 6 should be malleable enough that it can evolve into the imaginary perfect language, Perl 7." -- S01 22:12
"So Perl 7 will be the last major revision. In fact, Perl 7 will be so perfect, it will need no revision at all. Perl 6 is merely the prototype for Perl 7. :-)" -- A01
Ulti we just got schooled
huf_ the number of perls shall be 7, no more, no less. 22:13
Ulti the seventh programming language implemented in Perl7 will allow the user to spell cast 22:14
lue Perl 7 is the implied perl in this --> xkcd.com/224/ 22:15
huf_ no, sadly i think that's most likely perl4 or so
Ulti also regex is better in Perl5 than other languages, you can have them multi line with comments and named regex for code reuse... it's just no one does that because they read some aged tutorial/book :( 22:22
Ulti something like this adam.sardar.me.uk/?p=583 is crying out for a grammar, which is why Perl6 is awesome for bioinformatics 22:26
Ulti can you have roles which are just a bunch of token definitions? 22:32
lizmat gnight #perl6! 22:39
lue good ♞ lizmat o/ 22:40
Ulti the answer is yes you can :) 22:43
that's cool 22:44
can just have libraries of standard tokens like time stamp formats etc.
and just have grammar MyGrammar does ISO-BLAH {}
hadn't really thought about that before 22:45
Ulti is there any guidelines on how tokens should be named CamelCase under_scores ? 22:53
benabik P6 style seems to use dashed-words.
Ulti benabik: oh really, ok 22:59
I like that better
benabik I think most of the stdlib uses that style, anyway
Ulti if you have a proto token do you not get back in the match object the <sym> for the token that matched? 23:43
timotimo i think you shouldk 23:45
Ulti Just been playing with it gist.github.com/MattOates/6058680 and I don't see it in .perl ? 23:46
what am I missing/doing wrong
timotimo oh!
that's what you mean
you only get it if you match <sym> inside the rule 23:47
otherwise you'll "get it" by implementing the foo:sym<something> method in the action class
Ulti makes sense
Ulti so I guess I want to build a phone number object where it has locale as an attribute along with areacode etc. 23:51
anyway, g'night
timotimo good night! 23:53