»ö« 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:01 [particle]1 left 00:02 benabik left, benabik_ left 00:14 [particle] joined 00:34 [particle] left 00:35 [particle] joined 00:52 replore_ joined 00:58 Gazzonyx is now known as Gazzonyx|AFK 01:01 scott___ joined 01:13 alester joined 01:15 NamelessTee left 01:19 jferrero joined, leprevost joined 01:23 benabik joined
sorear good * #perl6 01:24
colomon \o
01:26 jlaire joined
[Coke] git assist? How do I convert a readwrite github clone to a readonly one? 01:27
sorear Go into .git/config and remove the push URL 01:28
timotimo alternative: git remote rm whateveritscalled; git remote add whateveritscalled [email@hidden.address]
sorear The only difference is the default push URL
[Coke] I actually want to change the default /pull/ url. 01:37
(so it won't prompt me for my password)
timotimo oh, that's the point
you could use a second ssh key that doesn't have a passphrase or you could use ssh-agent 01:38
colomon isn't that just a matter of changing [remote "origin"] url to a readonly one? 01:39
colomon has only done it the other way to make a readonly clone readwrite
timotimo oh, i didn't even consider that question, if you can have separate push and pull URLs 01:40
well, worst case, you make an alias
benabik [remote "origin"] \n url = git://github.com/name/project.git \n pushurl = [email@hidden.address] 01:41
I assume there's some kind of git-remote way of setting that, but I've always just edited .git/config
[Coke] sorear++ - editing .git/config was the quickest way.
01:57 wolfman2000 left 01:58 alc joined 02:01 sisar joined 02:02 lutok joined 02:12 sisar left
[Coke] # 02/21/2012 - niecza++ ; pugs (14.83%); rakudo (99.04%) 02:14
(same results as before, just automatically generated.)
TimToady [Coke]++ 02:15
02:16 alc left
[Coke] and redone to make it trivial if I have to add a /fourth/ implementation. :P 02:16
02:24 Trashlord left 02:25 am0c joined
colomon [Coke]++ 02:25
02:26 Trashlord joined 02:27 c1sung left
dalek ast: 748c80b | coke++ | S03-operators/value_equivalence.t:
pugs fudge
02:27
gs.hs: bb05f13 | coke++ | t/spectest.data:
run test
02:28
02:29 alc joined 02:40 Alias left 02:51 am0c_ joined, am0c left 02:53 am0c_ is now known as am0c 02:54 whiteknight left 03:13 lutok left
bacek_at_work phenny, tell moritz cont_reuse branch is merged. 03:13
phenny bacek_at_work: I'll pass that on when moritz is around.
03:14 skids joined 03:16 bluescreen10 left 03:17 replore_ left 03:20 benabik left, benabik joined 03:27 toddr_ joined 03:29 orafu left 03:31 orafu joined
sorear [Coke]++ 03:31
03:39 alester left
dalek atures: 3f68424 | (Solomon Foster)++ | features.json:
Niecza has rand, pick, roll, Sets, KeySet, Bag, and KeyBag now.
03:41
03:47 alc left 04:00 alvis left 04:33 alvis joined
TimToady heh, just got a work email saying I'm required to take courses in Logic/Problem Solving, Written Communication, Verbal Communication, and Time Management 04:34
from which I derive much hilarity...
sorear most of my written communication is also verbal. 04:38
I guess it's an art class of some kind.
04:39 alc joined 04:40 mucker joined
shachaf wonders where TimToady works. 04:40
sorear the bay area 04:43
04:46 [particle] left 04:59 [particle] joined
shachaf sorear: I didn't mean geographically. 05:03
shachaf dropped ingy off at TimToady's house once.
TimToady is not interested in naming names 05:05
05:08 birdwindupbird joined
shachaf OK. 05:10
05:25 att_ left
sorear (o/ shachaf) 05:26
shachaf sorear: (Hoy.) 05:36
05:47 mucker left 05:51 mucker joined 05:53 kaleem joined 05:55 skids left
moritz o/ 06:03
phenny moritz: 21 Feb 23:28Z <bacek_at_work> tell moritz I'm going to merge parrot's cont_reuse branch really soon. You'll need take_recon branch merged with bumping up PARROT_REVISION.
moritz: 03:13Z <bacek_at_work> tell moritz cont_reuse branch is merged.
sorear o/ moritz
bacek_at_work moritz, \o 06:04
06:04 mucker left
dalek p: 052bc4b | moritz++ | tools/build/PARROT_REVISION:
bump parrot requirement to 4.1 release
06:05
moritz bacek_at_work: the bumping will only happen after the Rakudo release on Thursday 06:06
bacek_at_work moritz, no worries. Just make sure when merge take_recon branch bump it again. 06:07
moritz sure 06:08
06:28 toddr_ left 06:49 takesako left 06:52 takesako joined 06:53 NamelessTee joined 06:59 wtw joined
moritz perl6: multi unfix:bla($x) { say $x }; unfix:bla(3) 07:08
p6eval niecza v14-57-gd05a5fe: OUTPUT«===SORRY!===␤␤System.Exception: Unable to find lexical $x in ANON␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤ at Niecza.CLRBack…
..rakudo 4130f6: OUTPUT«===SORRY!===␤Cannot add tokens of category 'unfix' with a sub␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected ":bla"␤ expecting "::", "handles", "is", bare trait, subroutine parameters, trait or block␤ at /tmp/gQytNGHniz line 1, column 12␤»
moritz rakudo++ # most awesome error message of the three
sorear while awesome, rakudo's error message is wrong, iiuc 07:12
bacek_at_work "unfix"?
sorear "unfix" isn't a special category name, so unfix:bla<...> is just a sub name
the error is in :bla($x) - $x is not defined yet, it should be an undeclared variable error 07:13
if you wanted a signature, you need to use unfix:bla ($x) {...}
this has bit me a couple times in niecza, when I write method term:variable($/) { ... } in the actions and then wonder why the parser explodes 07:14
need a space
bacek_at_work: Fuzz testing - deliberate typo of "infix"
bacek_at_work sorear, thanks! It's kind of clear weirdness :) 07:15
sorear IMO niecza's error is righter, although less useful
what really
what's really needed is some kind of integration of explain_mystery into the name extension mechanism, like what's already done for BEGIN 07:16
niecza: BEGIN $x
p6eval niecza v14-57-gd05a5fe: OUTPUT«===SORRY!===␤␤Variable $x is not predeclared at /tmp/xEHAy3vWZM line 1:␤------> BEGIN ⏏$x␤␤Unhandled exception: System.Exception: Unable to find lexical $x in ANON␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.…
sorear I need to fudge the ResolveLex thing into a real error, and handled at the correct time 07:17
niecza: sub foo() { bar if 0 }; BEGIN { foo }; sub bar() { say "hi" } # iirc, last time I asked TimToady, this is explicitly OK
p6eval niecza v14-57-gd05a5fe: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &bar in foo␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤ at Niecza.CLRBackend.NamPro…
sorear nom: if 0 { foo } 07:18
p6eval nom 4130f6: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&foo' called (line 1)␤»
sorear b: if 0 { foo }
p6eval b 1b7dd1: ( no output )
sorear walk&
07:19 xinming left 07:32 xinming joined 07:38 tarch joined 07:47 NamelessTee left, NamelessTee joined 07:58 Jerkwad joined 08:02 am0c left 08:10 [particle] left 08:11 [particle] joined 08:12 aindilis` joined, aindilis left 08:15 pernatiy left 08:24 mj41 joined 08:26 xinming left 08:28 NamelessTee left 08:34 xinming joined 08:37 proller_ left 08:45 noam left 08:46 noam joined
jnthn morning, #perl6 08:52
moritz \o jnthn 08:53
09:06 ab5tract joined 09:12 kaleem left, Jerkwad left, kaleem joined 09:27 dakkar joined 09:30 pmurias joined
pmurias if I have "class Foo {...}" in Foo.pm6 and I have "use Foo" in my program Foo gets imported into my lexical scope 09:32
? 09:36
moritz classes are our-scoped by default, so they are merged into your GLOBAL while loading 09:37
not sure if they also get a lexical alias
09:37 stepnem left
jnthn It'll only be lexically imported if you mark it "is export" 09:48
Otherwise what moritz said.
09:49 stepnem joined
moritz can imagine the "fun" in bridging the gap between lexical export in Perl 6 and the package based Perl 5 stuff 09:50
masak antenoon, #perl6 09:52
moritz good *, masak
masak *, indeed.
au good ambinoon masak :) 09:55
jnthn o/ masak 09:57
masak "ambinoon" sounds like how I felt waking up this antenoon. :) 09:58
au :) 09:59
10:03 am0c joined 10:04 alc left 10:06 MayDaniel joined, MayDaniel left
pmurias jnthn: so if the class isn't marked with is export I have to take it out from GLOBAL? 10:15
moritz even if it is exported, it needs to be GLOBAL merged 10:16
only if it's 'my', it's not 10:17
10:19 fsergot joined
fsergot o/ :) 10:20
pmurias moritz: Foo.new() avoids looking into GLOBAL?
10:21 kaleem left
masak fsergot! \o/ 10:21
moritz pmurias: I don't think so, but I'm not sure
pmurias $foo.new doesn't look into GLOBAL unless we use 'no strict' right? 10:22
masak doesn't even understand the question 10:24
jnthn pmurias: What moritz said. And yeah, Foo.new() in that case comes from GLOBAL, but it's declarative so we can statically resolve that reference at compile time. So Rakudo actually only does the GLOBAL lookup during the compile.
pmurias masak: we can do a lexical lookup or a package lookup or both 10:25
jnthn In "no strict" I'm not sure what scope we'll auto-declare with.
moritz our-scope, just like in Perl 5
jnthn OK :)
pmurias moritz: our-scope?
moritz otherwise things like { $x }; { $x } would be rather surprising 10:26
pmurias moritz: our both declares a package variable and creates an lexical alias to it 10:27
masak nom: { our $a = 42 }; say $a 10:28
p6eval nom 4130f6: OUTPUT«===SORRY!===␤Variable $a is not declared␤at /tmp/_0FYRayuIK:1␤»
moritz right
masak perhaps the easiest way to demonstrate that.
moritz under 'no strict', that would print 42
masak nom: { our $a = 42 }; say our $a
p6eval nom 4130f6: OUTPUT«Any()␤»
masak huh!
pmurias nom: {our $a = 42};our $a; say $a; 10:29
p6eval nom 4130f6: OUTPUT«Any()␤»
masak I call bug.
pmurias me too
masak submits rakudobug
10:29 alim_ joined
masak b: { our $a = 42 }; say our $a 10:29
moritz because either the outer $a is looked up in the package, or a lexical alias is installed in the outer most scope that makes any sense
p6eval b 1b7dd1: OUTPUT«42␤»
masak niecza: { our $a = 42 }; say our $a
p6eval niecza v14-57-gd05a5fe: OUTPUT«42␤»
moritz I could have sworn that one worked in nom
masak rewind and check :) 10:30
moritz niecza: { our sub a { 42 } }; (our &a).()
p6eval niecza v14-57-gd05a5fe: ( no output )
moritz perl6: { our sub a { 42 } }; (our &a).()
p6eval pugs b927740: OUTPUT«*** Cannot use Undef as a Code object␤ at /tmp/80v29q0aur line 1, column 23 - line 2, column 1␤»
..rakudo 4130f6, niecza v14-57-gd05a5fe: ( no output )
moritz perl6: { our sub a { say 42 } }; (our &a).()
p6eval rakudo 4130f6, niecza v14-57-gd05a5fe: OUTPUT«42␤»
..pugs b927740: OUTPUT«*** Cannot use Undef as a Code object␤ at /tmp/IOV3ixLUgf line 1, column 27 - line 2, column 1␤»
pmurias niecza: {our class Foo {}};say Foo.new.perl
10:30 kaleem joined
p6eval niecza v14-57-gd05a5fe: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Foo' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1344 (die @ 3) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33) ␤ at /home/p6… 10:30
pmurias niecza: our class Foo {};say Foo.new.perl
p6eval niecza v14-57-gd05a5fe: OUTPUT«Foo.new(...)␤» 10:31
pmurias jnthn: you agree with niecza on "{our class Foo {}};say Foo.new.perl" not working? 10:32
moritz nom: {our class Foo {}}; say Foo.new.perl
p6eval nom 4130f6: OUTPUT«Foo.new()␤»
10:33 scott___ left
jnthn pmurias: no 10:34
moritz std: {our class Foo {}}; say Foo.new.perl
p6eval std 52f3895: OUTPUT«ok 00:01 109m␤»
moritz niecza is clearly outnumbered here :-)
jnthn pugs: {our class Foo {}}; say Foo.new.perl 10:35
p6eval pugs b927740: OUTPUT«Foo.new()␤»
jnthn Completely :)
moritz perlito: {our class Foo {}}; say Foo.new.perl 10:36
masak moritz: re "or a lexical alias is installed in the outer most scope that makes any sense" -- do you have an example of that? I can't think of one.
ENOPERLITO
moritz masak: it's really just an implementation detail on how one might handle 'no strict;' -- I don't think there's any user visible code that would behave differently 10:37
masak oh, you were talking about the 'no strict' case.
I immediately got to thinking about my old strangelyconsistent.org/blog/where-...age-lexpad post. 10:38
where I mistakenly think that package variables are in a lexpad somewhere along the lexical lookup chain.
pmurias jnthn: so Foo is treated differently from $foo in {our $foo=12};say $foo.perl? 10:39
moritz well, it were murky waters in the earlier Perl 6 days, iirc
pmurias: correct
pmurias: $foo is always only lexically looked up (except maybe under 'no strict;') 10:40
type names fall back to GLOBAL if not found in the lexical scope
jnthn Right. It's all consistent, given that type names default to installing in the package, and variables don't.
10:40 am0c left 10:50 [particle] left 11:01 [particle] joined 11:02 daxim joined 11:04 noam left, noam joined 11:09 ab5tract left 11:11 noam left, noam joined 11:21 JimmyZ joined
fsergot Is directories handling implemented in rakudo? 11:25
JimmyZ pulls requests to nqp 11:26
moritz fsergot: depends on what you mean by that 11:27
fsergot: there's a &dir function that gives you a directory listing 11:28
fsergot Opening, removing etc. :)
moritz in the world of lazy lists, explicit opening and iterating is a poor abstraction
whis is why we have &dir
jnthn nom: { our $a = 42 }; { our $a; say $a } 11:29
p6eval nom 4130f6: OUTPUT«42␤»
jnthn Thought so...
11:31 sisar joined
masak jnthn: why does that one work but not the other one? 11:33
jnthn masak: Just plain old auto-viv semantics.
masak: It binds the lexical to $?PACKAGE.WHO<$a> at block entry 11:34
Which isn't quite what we want here... 11:35
.oO( why can't anything ever be simple... )
moritz because it's not assembler :-)
jnthn oh, but we can leave it as it is 11:36
The problem solves itself if we do that assignment at INIT time, as we should.
so, it needn't get more complicated after all :) 11:37
dalek ast: d85265c | (Paweł Murias)++ | S01-perl-5-integration/context.t:
Fix test plan.
11:40 PerlJam left
dalek ecza: ad83416 | (Paweł Murias)++ | t/spectest_p5.data:
Do not run a spec test I forgot to commit and lost in a laptop failure.
11:41
ecza: 5868454 | (Paweł Murias)++ | lib/ (2 files):
Load the perl5 side interop support from a directory relative to the
pmurias what should i turn a p5 undef into? i currently turn it into a Nil but i'm not sure it's correct 11:42
11:43 Util left
fsergot nom: my $list = 1,2,3; say $list.perl; 11:45
p6eval nom 4130f6: OUTPUT«1␤»
fsergot nom: my $list = 1,2,3; .say for $list;
p6eval nom 4130f6: OUTPUT«1␤»
11:48 NamelessTee joined 11:50 Trashlord left 11:57 [Coke] joined 11:59 Util joined 12:01 masak joined, pmichaud joined, PerlJam joined
au pmurias: Any perhaps (closer to item semantic of undef in p5)? 12:01
12:01 benabik left 12:03 aindilis` left, aindilis` joined
colomon pmurias: gist.github.com/1884535 is what I get when I run p5test now. 12:06
colomon has suddenly wondered if the tech that makes pmurias++'s p5 interop work with niecza could also implement Zavolaj-niecza.... 12:14
\
12:15 p6eval left, tadzik joined 12:17 awwaiid left 12:18 leprevost left, awwaiid joined, pernatiy joined 12:19 aindilis` left
pmurias colomon: hi 12:20
12:20 leprevost joined
pmurias colomon: the problem seems to be we can load a shared library into niecza, but we can't load a shared library using p5 into niecza 12:21
colomon hmmm... does that mean that pure-Perl (5) stuff ought to work for me? 12:23
pmurias no 12:25
colomon: it means that pure-C stuff could work but we don't have any support for that yet ;)
colomon oh 12:26
pmurias according to sorear there might be a problem with loading a static perl into a shared library
on some platforms
colomon what can I do to help? 12:27
pmurias building perl as shared library would help check that
pmurias is writing a test that loads perl5 into a shared library from a c program to test that 12:28
12:28 kaleem left 12:29 am0c joined, kaleem joined
colomon tries to remember if he has perlbrew installed on his mac 12:31
12:31 tokuhirom joined 12:37 p6eval joined, ChanServ sets mode: +v p6eval
dalek ecza: 0cf5e60 | (Paweł Murias)++ | p5test/p5test.pl:
Add a test for calling p5 code from a shared library.
12:39
pmurias colomon: i commited the test, not sure if gcc tmp/test6lib$so_extension} test6.c works on mac os x
12:41 Juerd joined
cognominal (grammar { token TOP { <a>? $<b>='b' }; token a { a } }).parse: 'ab'; say $/<b>.keys; 12:47
nom: (grammar { token TOP { <a>? $<b>='b' }; token a { a } }).parse: 'ab'; say $/<b>.keys; 12:48
p6eval nom 4130f6: OUTPUT«a␤»
cognominal nom: (grammar { token TOP { <a> $<b>='b' }; token a { a } }).parse: 'ab'; say $/<b>.keys;
p6eval nom 4130f6: OUTPUT«␤»
cognominal jnthn, this does not make any sense to me that $/<b>.keys returns anything different than a void Parcel 12:49
should I file a bug?
12:51 NamelessTee left
moritz nom: (grammar { token TOP { <a> $<b>='b' }; token { a } }).parse: 'ab'; say $/<b>.keys.WHAT; 12:51
p6eval nom 4130f6: OUTPUT«Method 'a' not found for invocant of class '<anon>'␤ in regex TOP at /tmp/fZXy8AXoHU:1␤ in method parse at src/gen/CORE.setting:8019␤ in block <anon> at /tmp/fZXy8AXoHU:1␤␤»
moritz nom: (grammar { token TOP { <a> $<b>='b' }; token a { a } }).parse: 'ab'; say $/<b>.keys.WHAT;
p6eval nom 4130f6: OUTPUT«List()␤»
moritz cognominal: it's returns an empty List, not an empty Parcel. Is that your problem? 12:52
cognominal see the first example, it prints "a\n".
I don't care if it is a parcel or a list. Whatever it is should be empty. 12:53
moritz agreed
cognominal it does not happen when I delete the '?' suffix. 12:54
moritz though of course the ? quantifier on <a> should not affect $<b> 12:55
cognominal yes, that's my point.
moritz agreed. Bug it is.
12:56 sftp left 12:57 benabik joined
cognominal it took me a while to golf it. Probably because my code hits other bugs as well. 12:57
12:59 sftp joined
masak submits rakudobug 13:02
flussence it's impossible to search for punctuation-heavy strings like $*OUT in the ir clogs :( 13:11
masak flussence: can we help you? 13:12
nom: my $*OUT = class { method say { die "hehehe" } }; say 42
p6eval nom 4130f6: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method print at src/gen/CORE.setting:692␤ in sub say at src/gen/CORE.setting:6078␤ in block <anon> at /tmp/ignWXVf8SR:1␤␤»
masak nom: my $*OUT = class { method say(*@) { die "hehehe" } }; say 42
p6eval nom 4130f6: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method print at src/gen/CORE.setting:692␤ in sub say at src/gen/CORE.setting:6078␤ in block <anon> at /tmp/iSTrDYAOCf:1␤␤»
moritz flussence: I accept patches for a better search facility
flussence: I have a branch that revamps the search based on KinoSearch, but that won't help you with punctuation stuff 13:13
masak nom: my $*OUT = class { method print(*@) { die "hehehe" } }; say 42
p6eval nom 4130f6: OUTPUT«hehehe␤ in method print at /tmp/aQgO9nmRF8:1␤ in sub say at src/gen/CORE.setting:6078␤ in block <anon> at /tmp/aQgO9nmRF8:1␤␤»
cognominal masak, I submitted a ticket as well. Do you know how to merge them? 13:14
flussence it doesn't really need better search, it needs a way to do *dumber* search :)
moritz flussence: I also accept patches for dumber search :-)
masak cognominal: I'm on it. 13:15
cognominal masak: and my subject was useless compared to yours
flussence looks at the code
moritz flussence: right now it just uses the mysql fulltext search. That sucks.
masak cognominal: done. 13:16
cognominal masak++
flussence moritz: I'm painfully aware of that, I've had to use it myself at work this week :)
moritz flussence: the 'kinosearch' branch is more interesting; maybe change it to create a second index with no stemmer and a really simple tokenizer
cognominal Moritz, I don't understand what the "Any(Str)" means in "my Mu %hash{Any(Str)}" 13:22
moritz cognominal: that's the new coercion syntax 13:23
cognominal: accepts Any, and coerces to Str
masak NYI
moritz nom: say Str(4) 13:24
p6eval nom 4130f6: OUTPUT«4␤»
flussence does that work anywhere?
cognominal ha, I keep forgetting about the coercion syntax. thx.
moritz that one works, but that's really just a tiny bit of it
masak good news: wrote three new macro tests. they all pass.
moritz flussence: no
masak bad news: got a segfault at program exit. :/
moritz :/
masak been a while since I created one of those.
figures that mucking with lexpads and contexts would create one. :) 13:25
moritz masak: well, I've created test failures for lexically adding multi operators by changing totally unrelated setting code
jnthn Well, the usual treatment. See if it works with -G. If so, look for missing write barrier. :)
masak oh!
there's a procedure. nice. 13:26
jnthn masak: We added a dynop. It may well be missing a WB.
dalek ast: d217498 | masak++ | S06-macros/macros-d1.t:
[S06-macros/macros-d1.t] three new tests

These cover lexical lookup from inside the quasi block.
masak aye.
jnthn: by "with -G", do you mean this? 13:28
$ install/bin/parrot -G perl6.pbc t/spec/S06-macros/macros-d1.t
jnthn ja
13:29 kaleem left, am0c left
masak 'cus that still segfaults at end. 13:30
moritz +XXX HAHAHA DISREGARD THAT 13:31
erm, what?
masak hahaha.
disregard that :)
it was late at night, and I punted writing a real comment till later. 13:32
fixed now :) 13:34
dalek kudo/macros2: 913dc7b | masak++ | src/ops/perl6.ops:
[perl6.ops] wrote a real comment

  moritz++ for noticing.
13:35
masak jnthn: that WB stuff now stands between the macros2 branch and release. 13:36
well, "and merge", I should say. 13:37
jnthn masak: er, if it still segfaults with -G then it's not a missing WB. 13:40
masak: Time to break out gdb. 13:41
masak oki
masak does so
colomon pmurias: test6lib.c -- no such file
13:42 snearch joined
masak jnthn: gist.github.com/1885215 -- gdb session 13:42
moritz Rakudo_cont_decontainerize seems like a magnet for segfaults 13:44
cognominal knowyourmeme.com/memes/fcking-magne...-they-work :) 13:45
benabik science.howstuffworks.com/magnet.htm :) 13:46
moritz :-)
but that link doesn't answer the fundamental question of how magnets work 13:47
jnthn moritz: It's called a *lot*, so largely just probability :)
masak: Hm...so what gets called after all tests? 13:48
moritz and I'm not even sure that question even has a sensible answer
benabik Why magnetic domains exist relates to the spin of electrons and other fun quantum mechanical properties, so it's not surprising it doesn't go into that level of detail.
moritz at some level, things just are the way they are, and "why?" doesn't reveal any more interesting relevations 13:49
benabik moritz: People at the LHC disagree. :-D
moritz benabik: I beg to differ 13:50
dalek ecza: 4994ff0 | (Paweł Murias)++ | p5test/test6 (2 files):
Add missing files.
moritz they try to come up with / verify new models 13:51
but those models don't answer the question of "why?" any more than the Maxwell equations do
masak jnthn: nuth'n'
jnthn masak: Something must somewhere - it explodes *inside* the multi-dispatcher. 13:52
moritz and neither the "how?". It's only taken one level further
masak moritz: Feynman is with you there.
moritz: models, in that sense, are highly unsatisfactory.
pmurias colomon: sorry, i keep forgetting to add files :(
masak which is why it's easiest to just let go of "that sense" and focus on what we can find out :)
moritz wants a tshirt saying "Feynman is on my side" or "Feynman is with me" :-) 13:53
masak :D
"I'm Feynman, and I approve of this moritz"
gfldex in 2012.01-155-g4130f6f on cygwin make install fails with "/bin/cp: omitting directory `docs/announce'" 13:54
i think there should be a /bin/cp -r instead
masak jnthn: oh! I wrote 10 tests, but it explodes after the ninth!
jnthn Aha! 13:55
You should at-ten-d to that test count :P 13:56
dalek ast: c677b73 | masak++ | S06-macros/macros-d1.t:
[S06-macros/macros-d1.t] fixed a test a bit

Rakudo presently fails this one; fixed so that it fails it in a nicer way.
13:57
masak jnthn: I know why it happens now. 13:58
remember how there were three places in Actions.pm which handled macros...? 13:59
and how we PoC'd one of the places... :)
guess which use case the test isn't using?
pmurias PoC?
masak proof-of-concept.
masak <== suffering from a combination of laziness and amnesia, it appears 14:00
jnthn :P
masak ah well. easily fix'd.
jnthn masak: That's what happens when one slips off the Ballmer peak. :P
gfldex as long as you forget to be lazy it's all fine
moritz often adds TODO comments to not forget such stuff 14:01
masak yeah, that would've helped here. 14:06
jnthn is just happy that there's not a super-evil segfault to track down. Well, hopefully :) 14:09
cognominal guys, the french Perl workshop will be in Jun 29-30 (that's Friday-Saturday), there should be a parallel haskell hackathon event too. The organizers would like the third track to be English. p6er talkers welcome. I don't think there is any web site yet. 14:10
masak hopes he can be there 14:11
cognominal the parallel haskell event is ok with serial programmers too.
:)
That will be in Strasbourg too. So the food should be good. 14:12
fsergot Is it hard to implement mkdir, opendir and rmdir functions in rakudo nom?
jnthn fsergot: mkdir and rmdir should be easy. Why not use "dir" instead of opendir et al? 14:13
cognominal: Will see if I can make it. Hopefully. :)
fsergot jnthn: I use "dir", but how to remove a dir? :) 14:14
jnthn: unlink is only for files, isn't it? :)
jnthn fsergot: By implemetning rmdir ;-)
cognominal jnthn, masak: I hope with your macro and serialization stuff, rakudo will be exciting by then
fsergot jnthn: I want to do this, but I don't know where to start. :) 14:15
cognominal but it would be nice to have someone talking about niecza.
...as well
fsergot jnthn: Could You teach me? :)
jnthn fsergot: I'd love to but sadly have to catch a train really soon. 14:16
fsergot jnthn: I don't know how this process looks. :)
jnthn fsergot: In short though, I suspect Parrot already provides the operations
fsergot: Look at sub unlink in src/core/IO.pm 14:17
fsergot: It woudln't surprise me if mkdir and rmdir wnat to look very much liek that.
*like
fsergot jnthn: Thank You. :) 14:18
masak cognominal: who would that be? all the niecza people are on the other side of a big ocean.
cognominal I don't know.
masak of course, if jnthn talks about Rakudo, I could talk about Niecza.
cognominal maybe with sponsoring, we can make someone cross the atlantic. I will talk with eiro about that. 14:19
Depends on the sponsoring...
jnthn masak: I thought you'd talk about macros? :)
masak "Niecza: the compiler for der über-programmer"
jnthn: that's Erlangen. I haven't decided what to talk about in Paris yet :) 14:20
cognominal I suppose that with a English track, you will have plenty of time. 14:21
masak: and that's in downtown Strasbourg, not Paris.
masak ah, right.
so used to thinking Paris when I think FPW. :) 14:22
cognominal which is way more insteresting than the area around the Cité des sciences
moritz fsergot: I guess the first step is to look if parrot has a solution for deleting directories
fsergot moritz: I'm looking for this. Could You hint me, where to look? 14:23
moritz fsergot: I'd use ack in the parrot repo
fsergot moritz: is there any website? Or just google it? :)
jnthn station & 14:24
14:24 Tedd1^ left, tokuhirom left, Tedd1 joined
masak jnthn: bon voyage! 14:24
jnthn dans le premier classe de le tren...tres tres elite... :P 14:26
back this evening o/
benabik The rm method on the OS dynpmc will do rmdir if given a directory path.
moritz benabik: just found that too. But do we really want to spoil the fun for fsergot++? :-) 14:27
benabik moritz: Generally, I find poking around PMC sources to be more irritating that required. :-D 14:28
Although reading them is far less pain the writing them.
moritz aye
but I find it's the only efficent-ish way to find out if something is implemented
would I look in 'file' or 'os' dynpmc? or maybe in core, not dynpmc? or maybe as a dynop? 14:29
browsing the documentation is just pain, because there's nearly never one obvious place to look
benabik moritz: Also, ack won't search .pmc files by default. It would return the information from the generated .c file, which is far harder to trace back to something useful.
flussence ack --parrot will :) 14:30
moritz benabik: ah, my ack does search .pmc files by default :-)
masak std: sub foo(:x($y), :z($y)) { $y }; foo 14:31
p6eval std 52f3895: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $y (see line 1) at /tmp/rCfDT1Tjnh line 1:␤------> sub foo(:x($y), :z(⏏$y)) { $y }; foo␤ok 00:01 111m␤»
benabik flussence: Is --parrot in there by default. I've added it to my .ackrc
s/\./?/
masak nom: sub foo(:x($y), :z($y)) { $y }; say foo(:x(42), :z(5))
p6eval nom 4130f6: OUTPUT«===SORRY!===␤Redeclaration of symbol $y␤at /tmp/XRIGCnS5ej:1␤» 14:32
flussence ack --help gives me "This is version 1.96 of ack.", and I don't have any perl6 stuff in ackrc, so you should be good to go
benabik huh, whadda know
14:33 PacoAir joined
tadzik doesn't Shell::Command have rmtree()? 14:33
Maybe stubbed :
fsergot tadzik: stubbed. :) 14:34
tadzik well volunteered! :)
fsergot I'd like to. :)
tadzik go ahead then :) 14:35
14:35 Tedd1 left
fsergot I work on it :P 14:35
masak fsergot++
fsergot Theres some problems. Parrot hasn't built-in funtions which remove dirs. :(
moritz well, it has. 14:36
the 'rm' method in the 'os' dynpmc
fsergot Right, I found the 'rm' method.
moritz it doesn't work recursively, but you can implement the recursion yourself
flussence or `man 3 ftw`, if you want to cheat :) 14:37
fsergot It removes dirs, but only empty.
cognominal nom: [|] <a b c>
p6eval nom 4130f6: ( no output )
cognominal nom: say [|] <a b c>
p6eval nom 4130f6: OUTPUT«any(any(a, b), c)␤»
moritz fsergot: yes, so you might need to empty it first
fsergot moritz: I thought about it, but I was looking for another way, is there any? 14:38
moritz fsergot: I don't think so. Most operating systems just offer unlink() and rmdir() functions in their APIs, so recursive deletion must be implemented somewhere in the user space 14:39
cognominal nom: say ([|] <a b c>) eq 'a'
p6eval nom 4130f6: OUTPUT«any(any(True, False), False)␤»
14:39 Tedd1 joined
moritz nom: say so ([|] <a b c>) eq 'a' 14:39
p6eval nom 4130f6: OUTPUT«True␤»
cognominal hum, I forget how do I collapse a superposition
ha!!
moritz just put it in boolean context
cognominal also [|] <a b c> should probably be any('a', 'b', 'c') , not that it makes any difference in the end. 14:41
fsergot moritz++ , thank You. :)
masak nom: say ([|] <a b c>) eq 'a'
p6eval nom 4130f6: OUTPUT«any(any(True, False), False)␤»
masak this looks wrongish to me. 14:42
benabik nom: say ('a' | 'b' | 'c')
p6eval nom 4130f6: OUTPUT«any(a, b, c)␤»
benabik nom: say (('a' | 'b') | 'c')
p6eval nom 4130f6: OUTPUT«any(any(a, b), c)␤»
masak right.
14:42 sisar left
fsergot nom: say ('a' ^ 'z'; 14:43
p6eval nom 4130f6: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2␤»
fsergot nom: say ('a' ^ 'z');
p6eval nom 4130f6: OUTPUT«one(a, z)␤»
dalek ast: 3128346 | masak++ | S06-macros/macros-d1.t:
[S06-macros/macros-d1.t] now the tenth test works

I keep forgetting that macros receive ASTs of things, not the values of the things.
14:44
kudo/macros2: 161f188 | masak++ | src/Perl6/Actions.pm:
[Perl6::Actions] fixed remaining two macro call types

The recent stuff only worked for calling macros as terms. Now it works for identifiers, terms, and ops.
14:45
fsergot What means 'new__PS'? 14:50
Or where can i learn more about pir and nqp? :)
moritz it calls the 'new' PIR opcode
flussence new = function name, P = pointer, S = string
moritz returning a PMC, taking an String (S) as the only argument 14:51
that's what you use in rakudo to instantiate a parrot PMC
flussence it's hungarian notation :)
moritz it'd make me hungry, if I hadn't just eaten three cookies.
masak of the silly kind.
the hungarian notation, not the cookies. 14:52
fsergot flussence++
moritz++
moritz not really
it's more part of the type system
hungarian notation of the silly kind is what the type system should do, but does not
masak I was referring to www.joelonsoftware.com/articles/Wrong.html -- where a case is presented that "real" Hungarian Notation is actually not that well-known or well-used. 14:55
tl;dr: it's about "kinds", not types. 14:56
moritz yes. And my point was that __PS is not really Hungarian Notation at all 14:57
because the compiler doesn't ignore it
flussence ooh, I didn't know that
14:58 xinming left
benabik The parrot opcodes need to know the register types they're handling. Something which is not always obvious from the results of NQP expressions. 14:59
moritz and there are also multi opcodes 15:00
add__III vs add__NNN vs. add__PPP
benabik Right, which operate based on the type information, which is completely lacking in NQP. So it has to be re-added when dealing with the raw opcodes.
15:01 bluescreen10 joined
moritz it's strangely consistent, in some ways :-) 15:02
masak moritz: oh. good point. it can't be Hungarian notation if it's used by the compiler, rather than just part of the name. 15:03
what it is is more like wonky syntax for a type system.
15:04 xinming joined
moritz aye 15:04
(though I don't find it all that wonky; it's a simply way to have it not conflict with any Perl 6 syntax)
15:05 birdwindupbird left
moritz masak: in macros-d1.t, why does macro donner return an Int, but macro blitzen an AST? 15:05
that looks... suspicious, in the very least 15:06
15:07 jaldhar left
masak checks 15:08
no, that's correct.
moritz why? 15:09
masak because $counter is an Int, whereas $param is an AST.
moritz is the quasi { } around $param necessary at all?
masak that's what I'm testing! 15:10
and no, it wouldn't be a no-op to remove it.
moritz why not?
does quasi { $param } return an AST, that, when evaluated, returns an AST? 15:11
masak in this case, yes.
moritz so macro blitzen($param) { $param }; blitzen('onwards') would return 'onwards'? 15:12
15:12 skids joined
masak right. 15:12
moritz does it work? 15:13
masak all tests pass.
moritz well, that's not in the tests, afaict
masak $ ./perl6 -e 'macro foo($param) { $param }; say foo "OH HAI"'
Segmentation fault
:(
moritz :(
fsergot :(
masak still some kinks to iron out... 15:14
masak runs gdb again
this time the SEGV comes from within our new dynop. 15:15
benabik Does `macro infix:<comet>($r, $l) { quasi { "comet!" } }` never evaluate $r and $l ?
moritz hopes so 15:16
masak gist.github.com/1885496
benabik neat
masak benabik: it never evaluates $r and $l.
dalek ast: 544c9af | moritz++ | S06-macros/macros-d1.t:
macros should be able to return their parameter(s) directly
masak benabik: that's the reason short-circuiting ops like || and && are sometimes described as "macroish" over here.
moritz: thanks. 15:17
moritz masak: you're welcome
masak ah -- starting to see why that one SEGVs. 15:20
moritz missing sanity check?
no outer set up yep, or something? 15:21
masak the ASTs created by quasis do a few extra tricks right now. the ASTs created during the macro call -- don't. 15:22
so the latter kind is probably totally unprepared for the treatment they get when being returned from the macro. 15:23
or something like that.
15:23 simcop2387 left
moritz so maybe the magic should happen at macro application time, not at quasi construction time? 15:24
15:25 simcop2387 joined
masak well, macro application time is "too late" for the new magic that happens at quasi AST construction time. 15:25
[Coke] # 02/22/2012 - niecza++ ; pugs (15.18%); rakudo (99.04%) 15:26
"niecza", 20283, 8, 751, 1549, 22591, 23465
"pugs" , 3079, 4, 1724, 16, 4823, 23256
"rakudo", 20090, 28, 604, 1869, 22591, 23475
masak the new magic consists of wiring up a context for it to carry around. that context doesn't really exist anymore at macro application time, which is why we need to carry it with us in the first place.
wow, Pugs at 15! [Coke]++
because Rakudo and Niecza are so close, in a way the Pugs figure is the only interesting one :P 15:27
PerlJam [Coke]: you always ++ the "winner"?
masak seems fitting.
[Coke] I'm sure some of the regex passes don't count. I'm looking for you to make them count. ;)
PerlJam: yes.
;(as of a few minutes ago.)
PerlJam nice
PerlJam just made a 6 character change to some Perl 5 code and got a 700% performance improvement :) 15:28
(now if only I could figure out how to do that for Rakudo ;)
au hopes these 6 chars were not "exit()" :)
masak or "dump()" 15:29
moritz thought 'last if', but that's 7
PerlJam nah, it was to add a field to an index on table creation so that now my queries run way faster
moritz so not really perl :/ 15:30
PerlJam yeah, I guess that's true. But Perl is my interface to the underlying database, so it's kinda perl
(or just suspend disbelief and pretend it's all perl and rejoice in it :-) 15:31
masak whee 15:34
moritz: I think the proper fix is this: just like quasi ASTs have to be incarnated with the surrounding macro context, so param ASTs have to be incarnated with the surrounding mainline context. 15:35
I hadn't thought of this until now, but it seems quite evident now.
moritz well, the context has to be attached at some point anyway 15:36
masak macro params are AST closures going inwards, and quasi ASTs are AST closures going outwards. both kinds need to be incarnated in a context.
moritz: yeah. it's probably because the new code at apply-time does the "fix up context" that this now blows up. it didn't used to.
masak hates the phrase "it didn't used to", but that seems to be the way to say it in English 15:37
PerlJam This is the only primarily english-speaking channel where at any given moment, I will not understand *at all* what people are talking about.
:)
JimmyZ hopes somebody could take a look at github.com/perl6/nqp/pull/29 15:38
moritz JimmyZ: have you tested NativeCall.pm with these changes?
masak PerlJam: I'm glad for once to be on that end of an inscrutable #perl6 conversation :) 15:39
JimmyZ moritz: I have not
moritz JimmyZ: that would make patch application a bit faster 15:40
JimmyZ moritz: will try it later
15:44 am0c joined 15:47 Trashlord joined, Patterner left 15:48 Psyche^ joined, Psyche^ is now known as Patterner
masak PerlJam: if you're interested, I think you might find gist.github.com/1853560 elucidating. 15:49
PerlJam looks 15:50
PerlJam re-reads the last bit about macros 15:59
cognominal masak, eiro is thinking of a two days Perl 6 class at fpw. He would prefer to show working code than presnetation ex-cathedra. 16:00
what do you think of it?
masak I'm thinking it sounds interesting. 16:01
cognominal I told him that we should make it a numerus clausus and ask people to come with a compiled rakudo. That would save time. 16:02
we could help the weeks before on that channel to get it compiled.
moritz aye 16:03
colomon pmurias: gist.github.com/1884535 is now the latest output ... note that test 11 worked!
moritz mystery quiz: what do infix -, *, ==, <=, <, > and >= have in common in rakudo? (as opposed to +, %, **, div, mod, gcd, lcm, !=, !==, <=>, le, lt, gt, ge, leg)
masak moritz: they can't be redefined? 16:04
or they can be redefined? :)
colomon masak: nope
moritz masak: correct. But why?
colomon wait, what?
since when? 16:05
pmurias colomon: so we need a 32bit perl?
moritz colomon: dunno.
colomon: I'd like to know.
PerlJam colomon: for a while now I think. We were talking about this last week or the week before
moritz I can think of two hypotheses to test: return annotations, presence of natively typed ops
colomon moritz: you certainly could redefine them in alpha and ng
moritz apart from that, I have not the slightlest idea 16:06
JimmyZ how can I run zavolaj/t ?
colomon .... what, what exactly is meant by redefine?
moritz colomon: add a multi in an inner scope, and have it called
colomon moritz: okay, we're on the same page there, then
JimmyZ never mind 16:07
colomon thinks we need a better word than "redefine" for that, but he doesn't have one handy
pmurias: maybe?
16:07 tokuhirom joined
colomon pmurias: I don't understand what the tests are testing in any detail. 16:07
masak moritz: I have no idea either. I don't see any pattern whatsoever. 16:10
JimmyZ moritz: all tests pass in zavolaj 16:12
moritz JimmyZ: that's great. Thank you.
JimmyZ moritz: np 16:13
colomon masak, moritz: surely there's just been some mistake? it just doesn't make any sense to be able to redefine + but not - (or vice versa, not sure what the state of things is). 16:14
moritz colomon: yes, and I'm trying to track down that mistake. No luck so far. 16:15
I'v added a debug say() to the routine_def action method. The name of the operator is correctly constructed in both cases 16:16
colomon moritz: you mean you're trying to track down what is causing the problem, or why the code got to be that way in the first place?
moritz colomon: tracking down the problem
TimToady the difference might be a proto sig of |$ vs $a?, $b?
moritz I've triggered dispatch failures. The candidate isn't in the candidate list that's shown in the error message
TimToady: good idea 16:17
...but it doesn't fit the pattern of the failures 16:18
16:18 leprevost left
moritz both infix + and - have a ($a?, $b?) proto, but + is fine and - is not 16:18
TimToady could it be implicitly generating some conflicting proto by earlier use? 16:19
it does feel very much like a proto issue to me 16:20
moritz TimToady: unlikely. My demonstration program uses neither + nor - before, and the setting uses both
TimToady I meant used earlier in the setting
moritz ah
used before proto declared
dalek kudo/match-refactor: dd27465 | moritz++ | src/core/Int.pm:
fix signature of an infix:<!=> candidate. No idea if it makes any difference
moritz I could check that
masak moritz++ # investigating this 16:21
TimToady does the proto declarator check that there's not one generated already?
moritz yes
though that test could be buggy in subtle ways in the setting, maybe
TimToady and does it carp or go silent?
moritz the proto generator is silent 16:22
TimToady sure, but what about the other way?
tadzik "Lists are only one-dimensional. Sigh." -- "Whaddya want, APL?" 16:23
:)
tadzik discovered groups.google.com/group/comp.source...89bcb15f22
moritz TimToady: which other way?
moritz confused
colomon moritz: he means explicit proto declaration if there's already been one generated 16:24
moritz ah
TimToady if some semantics are autogenerated, then an explicit proto is seen, do we check for conflict
moving a proto up to the front might be a test
moritz nom: multi a() { }; proto a() { }
p6eval nom 4130f6: OUTPUT«===SORRY!===␤Redeclaration of routine a␤at /tmp/32ts4axtXD:1␤»
JimmyZ nom: proto a() { }; multi a() { }; 16:25
p6eval nom 4130f6: ( no output )
TimToady nom: a(); proto a() { * }; multi a() { }
p6eval nom 4130f6: ( no output )
TimToady might the a() call generate a proto?
cognominal in rakudo, how is it possible to get a stack trace on a warn? 16:30
16:30 leprevost joined
moritz both infix:<+> and infix:<-> are called before the proto occurs 16:30
nom: CONTROL { default { say $!.message; say ~$!.backtrace } }; 1 + Any 16:31
p6eval nom 4130f6: OUTPUT«Method 'message' not found for invocant of class 'Any'␤ in block <anon> at /tmp/3HshnwmyJp:1␤␤»
moritz nom: CONTROL { default { say .message; say ~.backtrace } }; 1 + Any
p6eval nom 4130f6: OUTPUT«use of uninitialized value of type Any in numeric context␤ in method Numeric at src/gen/CORE.setting:662␤ in sub infix:<+> at src/gen/CORE.setting:2249␤ in block <anon> at /tmp/ixJzDWES8Y:1␤␤»
moritz cognominal: like this
TimToady though won't that also catch returns and such? 16:32
I think you need a better 'when'
moritz yes, but if you do it at the mainline, you won't have that many returns to catch :-)
TimToady hmm, is exit a control exception? 16:33
moritz nom: CONTROL { default { } }; exit; say 'alive'
p6eval nom 4130f6: ( no output )
moritz nom: CONTROL { default {say "caught" } }; exit; say 'alive'
p6eval nom 4130f6: OUTPUT«caught␤»
moritz heh
oh wait. normal behavior 16:34
cognominal expect, I need that in a program. At the shell, don't need that much to know what line is the problem
moritz it doesn't resume
cognominal *except that
moritz cognominal: well, you can add that CONTROL phaser to your program.
TimToady nom: CONTROL { default {say "caught" } }; exit; END { say "goody" }
p6eval nom 4130f6: OUTPUT«caught␤goody␤»
moritz nom: CONTROL { default {say "caught" } }; { exit }; say 'alive' 16:35
p6eval nom 4130f6: OUTPUT«caught␤»
moritz nom: { CONTROL { default {say "caught" } }; exit }; say 'alive'
p6eval nom 4130f6: OUTPUT«caught␤alive␤»
moritz that's what I wanted to demonstrate, actually :-)
cognominal like says TimToady, I don't want to print backtrace for anything but warnings. 16:36
moritz then you need to wait (or contribute) until we have a better mechanism for distinguishing warnings and non-warnings
moritz decommutes 16:37
cognominal in the mean time I recompile rakudo to die instead to warn. 16:38
16:39 leprevost left
TimToady wonders how a pragma like 'use warnings :fatal' will install and/or tweak the CONTROL phaser... 16:39
PerlJam How does one get a list of signatures for a multi? 16:43
16:43 thou joined
TimToady phenny: tell moritz Any(Str) doesn't make sense; you want Str(Any) to coerce to string 16:44
phenny TimToady: I'll pass that on when moritz is around.
16:51 leprevost joined 16:52 wtw left 16:55 noam_ joined
flussence perl6: multi a() { }; multi a(Int $) { }; say &a.candidates 16:56
p6eval pugs b927740: OUTPUT«*** ␤ Unexpected "Int"␤ expecting "|", ":", "*", parameter name or ")"␤ at /tmp/pZNZIcFB1v line 1, column 24␤»
..rakudo 4130f6, niecza v14-57-gd05a5fe: OUTPUT«sub a() { ... } sub a(Int ) { ... }␤»
TimToady is kinda amazed that rakudo++ and niecza++ came up with identical answers
though I'm not sure I like the space after the Int 16:57
flussence perl6: multi a() { }; multi a(Int $named) { }; say &a.candidates
p6eval rakudo 4130f6: OUTPUT«sub a() { ... } sub a(Int $named) { ... }␤»
..pugs b927740: OUTPUT«*** No such method in class Sub: "&candidates"␤ at /tmp/nR4mQ_qGqc line 1, column 45 - line 2, column 1␤»
..niecza v14-57-gd05a5fe: OUTPUT«Potential difficulties:␤ $named is declared but not used at /tmp/8w88N8mgx8 line 1:␤------> multi a() { }; multi a(Int ⏏$named) { }; say &a.candidates␤␤sub a() { ... } sub a(Int $named) { ... }␤»
flussence perl6: multi a() { }; multi a(Int $named) { }; say &a.candidates # OK not used
p6eval rakudo 4130f6: OUTPUT«sub a() { ... } sub a(Int $named) { ... }␤»
..pugs b927740: OUTPUT«*** No such method in class Sub: "&candidates"␤ at /tmp/wXeMNS9MJd line 1, column 45 - line 2, column 1␤»
..niecza v14-57-gd05a5fe: OUTPUT«Potential difficulties:␤ $named is declared but not used at /tmp/KK21IJ7mdN line 1:␤------> multi a() { }; multi a(Int ⏏$named) { }; say &a.candidates # OK not ␤␤sub a() { ... } sub a(Int $named) { ... }␤»
flussence that trick doesn't work?
TimToady #OK
no space 16:58
flussence whoops
perl6: multi a() { }; multi a(Int $named) { }; say &a.candidates #OK
p6eval rakudo 4130f6, niecza v14-57-gd05a5fe: OUTPUT«sub a() { ... } sub a(Int $named) { ... }␤»
..pugs b927740: OUTPUT«*** No such method in class Sub: "&candidates"␤ at /tmp/qJUJ3N0Zit line 1, column 45 - line 2, column 1␤»
16:58 noam left
flussence there we go 16:58
(I'm surprised it worked too; last time I tried anything moppy in niecza was when it was still NYI)
16:58 simcop2387 left
TimToady I just don't think it should put the space unless it is going to put a variable 16:59
17:00 simcop2387 joined
TimToady practices his micromanagement skills 17:00
17:01 simcop2387 left
masak +1 17:01
masak decommutes 17:02
17:04 alim_ left, simcop238 joined, kaare_ joined 17:06 simcop238 left
flussence after some random wandering around, I've decided to blame src/core/Parameter.pm:139 for the trailing space 17:08
17:08 MayDaniel joined
flussence it should be moved about 3 lines down, I think 17:09
17:09 simcop2387 joined 17:13 simcop2387 left
benabik Shouldn't it output (Int $) ? 17:14
17:14 simcop2387 joined
flussence yeah 17:15
TimToady only if there was a $ originally, I'd think
benabik std: sub a(Int, $x) 17:16
p6eval std 52f3895: OUTPUT«===SORRY!===␤Malformed block at /tmp/mSUrljWGvy line 1 (EOF):␤------> sub a(Int, $x)⏏<EOL>␤Parse failed␤FAILED 00:01 110m␤»
flussence is (Int) the same as (Int $) there?
benabik std: sub a(Int, $x) { ... }
p6eval std 52f3895: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/m9Oommq85q line 1:␤------> sub a(Int, ⏏$x) { ... }␤ok 00:01 111m␤»
benabik Bah, std is smarter than I expect sometimes.
17:17 simcop2387 left, Gazzonyx|AFK is now known as Gazzonyx
flussence > multi a() { }; multi a(Int $) { }; say &a.candidates 17:18
sub a() { ... } sub a(Int) { ... }
TimToady the $ is kind of an extra assertion that the parameter can be bound to a container with anti-flattening characteristics; not sure whether this is meaningful, or might be someday
flussence one down, now I just need to make that say "multi"
17:18 simcop2387 joined
flussence oh wait, I think sub is currect there 17:18
I'm confused.
TimToady if the original has a sigil, it needs to show up, especially if it's not $ 17:19
flussence
.oO( what the heck does "currect" mean anyway? )
17:19 Gazzonyx left 17:20 NamelessTee joined
PerlJam is confused 17:30
moritz it's #phasers time 17:31
phenny moritz: 16:44Z <TimToady> tell moritz Any(Str) doesn't make sense; you want Str(Any) to coerce to string
flussence tl;dr: you can get a list of multi signatures, but it's buggy :)
moritz TimToady: ah right
PerlJam I just tried to build a fresh rakudo and it complains about "NEED_CONTINUATION"
flussence --gen-parrot?
moritz PerlJam: you need to use the parrot release version
PerlJam I've a fresh parrot already
ah
it's too fresh
moritz PerlJam: or merge rakudo's cont_reuse branch 17:32
(locally, that is)
benabik And this is why I wanted to delay that merge until post Rakudo release.
PerlJam that's right ... I remember now.
benabik doesn't like it when master/master doesn't work. It's confusing.
17:32 kaleem joined
PerlJam benabik: it's not master/master, it's master/nom ;) 17:33
17:33 daxim left
PerlJam benabik: but, you are correct sir! 17:33
benabik PerlJam: See! Confusing! ;-)
flussence #perl6: where everyone's confused
PerlJam confusion is the natural human condition.
17:35 pmurias left 17:36 Jerkwad joined
TimToady is usually confused about being confused 17:36
PerlJam If you're not confused, that's what you should really start to worry 17:37
17:37 simcop2387 left, simcop2387 joined 17:38 simcop2387 left 17:40 noam__ joined, simcop2387 joined, simcop2387 left, simcop2387 joined
gfldex could a kind soul test this on *x? gist.github.com/1886254 17:41
17:43 simcop2387 left 17:44 noam_ left, JimmyZ left, simcop2387 joined 17:45 carlin joined 17:56 Chillance joined 17:58 kaleem left 17:59 mj41 left 18:01 ksi joined 18:02 tokuhirom left 18:04 perimoso1ordiae is now known as perimosocordiae 18:06 am0c left 18:09 dakkar left 18:11 carlin is now known as glass, pernatiy left 18:13 tarch left 18:15 noam joined 18:18 noam__ left 18:37 MayDaniel left 18:44 MayDaniel joined 18:48 MayDaniel left 19:28 birdwindupbird joined 19:30 fridim_ joined
[Coke] is today phasers? 19:33
PerlJam it was
activity was next to nil though
colomon crap, forgot it again 19:35
19:37 fridim_ left, mj41 joined 19:38 GlitchMr joined 19:40 noam left 19:41 noam joined
[Coke] whoops. 19:50
masak forgot #phasers too
PerlJam #phasers might need a re-think on its timing. 19:51
[Coke] tehre's some webs ite where you can suggest a range of times and then let individuals sign up for the ones that work. 19:54
tadzik doodle.com
19:55 fridim_ joined
PerlJam (I think I may have even volunteered to setup a doodle, but forgot about it) 19:55
[Coke] pings au.
19:58 bluescreen10 left
jnthn evenin' 20:07
felher o/
[Coke] unpings au 20:09
jnthn: *pounce* 20:10
jnthn uh-oh :)
hi [Coke]
20:12 bluescreen10 joined
[Coke] nah, I got nothin. Just that niecza is ahead of rakudo and pugs is catching up. 20:14
masak :) 20:15
20:15 NamelessTee left
[Coke] masak: so, is it worth at this point opening issues for pugs. 20:16
?
au wow, I never thought there's still so much gravitational potential in pugs :) [Coke]++
masak [Coke]: sure!
[Coke] Ok. if I find anything obvious that will be a big win, I'll open a ticket for it. 20:17
au, I was going to ping youthe same question. ;)
20:18 thou left
au whatever you do, you have all my preemptive blessing and/or forgiveness as appropriate :) 20:19
[Coke] au++ # the fact that we can still /run/ pugs after all these years helps.
TimToady pugs was a supernova that produced many of the heavy elements we are now made of :)
[Coke] I'm just trying to avoid learning haskell.
PerlJam [Coke]: bu, but ... you should learn a new programming lanugage each year :)
jnthn [Coke]: Well, need to get the serialization stuff in before I worry too much about hacking on moar features. :) Will be able to do various things thanks to it, though :) 20:20
[Coke] PerlJam: java's on my list for this year. 20:22
(again)
PerlJam
.oO( why ?!? )
20:23
[Coke] PerlJam: because I get a paycheck? 20:24
20:24 y3llow_ joined 20:25 pothos_ joined
PerlJam well ... at least that's a good (enough) reason :) 20:25
20:26 pothos left, y3llow left
[Coke] I was just asked if we should do something in perl, so that's good. 20:27
(sadly, I had to say no.)
20:27 y3llow_ left 20:28 pothos_ left, y3llow joined, pothos joined 20:30 y3llow left, y3llow joined 20:31 tarch joined, pothos left, pothos joined 20:33 localhost left 20:35 localhost joined
masak Java isn't so bad. it's a fine language. it has its drawbacks, to be sure. but most languages do. 20:35
PerlJam Java is too wordy. reminds me of cobol sometimes 20:36
jnthn
.oO( lowercase cobol, with objects... )
20:37
au kinda likes Xtend (CoffeeScript for Java) t[Dhese days... 20:38
*these 20:39
benabik I like Scala, but that's less "Java without noise" as "a functional language on the JVM" 20:40
masak I like Java, even though I agree it's wordy. 20:41
I've been productive and created nice things in Java.
writing "lean" code in Java is possible, though trickier than in Perl, say. 20:42
LoRe quickfix! 20:43
dalek ecs: 524d26c | moritz++ | S09-data.pod:
[S09] fix coercion syntax usage, TimToady++
20:47
moritz nqp: my $x := 3; say(:$x) 20:48
p6eval nqp: OUTPUT«Confused at line 1, near "say(:$x)"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23433 (src/stage2/gen/NQPHLL.pir:6734) (src/stage2/gen/NQPHLL.pm:329)␤»
20:49 birdwindupbird left 20:50 mj41 left
jnthn moritz: NQP don't have that sugar. 20:50
Though I sometimes wish it did...
moritz jnthn: I'm thikning about adding it
jnthn moritz: No objections. 20:51
It's only a little syntax sugar, and zero porting cost. 20:52
moritz std: :$/
p6eval std 52f3895: OUTPUT«===SORRY!===␤Bogus statement at /tmp/9hQjSNyeec line 1:␤------> <BOL>⏏:$/␤Parse failed␤FAILED 00:01 109m␤»
moritz std: :$_ 20:53
p6eval std 52f3895: OUTPUT«ok 00:01 107m␤»
moritz std: :$!
p6eval std 52f3895: OUTPUT«===SORRY!===␤Bogus statement at /tmp/20btJKjk7o line 1:␤------> <BOL>⏏:$!␤Parse failed␤FAILED 00:01 109m␤»
jnthn std: sub foo(:$!) { } 20:54
p6eval std 52f3895: OUTPUT«ok 00:01 109m␤»
jnthn nom: sub foo(:$!) { }
p6eval nom 4130f6: ( no output )
jnthn nom: sub foo(:$!) { say $! }; foo(|{ '!' => 'lol'})
p6eval nom 4130f6: OUTPUT«lol␤»
moritz I think it wouldn't hurt to allow :$/ and :$! in NQP 20:55
jnthn moritz: Only if we allow :$! and :$/ in the parameter lists too... :)
wait, why'd be want to do this? :)
moritz why not? :-) 20:56
jnthn moritz: Is it more work to disallow it? :)
moritz jnthn: seems so 20:57
jnthn ah, jfdi then :)
I dobut anybody will actually use :$!
20:59 pochi joined 21:10 snearch left 21:12 GlitchMr left 21:21 zby_home_ joined 21:27 bluescreen10 left
dalek p: 7b8137f | moritz++ | / (3 files):
implement :$var colonpair syntax

Also adds a single test.
21:28
21:39 pmurias joined
pmurias colomon: re what the tests are testing it turns out we can link a 64bit shared library with a 64bit executable 21:41
colomon: but we can't with 32bits
colomon: and mono only loads 32bit shared libraries
colomon so... anyone who wants to do it is going to have to build a 32bit shared library of perl? 21:42
pmurias or a 64bit mono 21:45
colomon: on mac os x
colomon: www.perlmonks.org/?node_id=910271 has the command line 21:46
21:47 pernatiy joined
colomon pmurias: that's the perlbrew line? 21:47
pmurias colomon: yes
colomon okay, I'll take a look at doing that ASAP 21:48
colomon is installing perlbrew... 21:52
PerlJam perl6brew? 21:53
colomon PerlJam: I don't think you've written perl6brew yet...
pmurias colomon: i never had a mac, so i can only guess how to fix things them and search on google ;)
colomon pmurias: :) 21:54
pmurias colomon: you can use --notest to install a perl much faster
why do perl programmers use macs? 21:55
tadzik I think programmers in general use macs, because they work well for them
benabik The system perl on OS X is universal. 21:56
(i.e. should be able to be linked to 32 and 64 bit programs)
pmurias tadzik: you have a mac?
colomon benabik: it's entirely possible my default perl is from Macports rather than the system perl 21:57
right, the system perl is 5.10, my perl is 5.12.3 21:58
benabik colomon: That would do it. Depressingly few packaging programs bother with making the things they install universal. Which is a shame because it seems much better than the /lib /lib64 split.
tadzik pmurias: nah
but I've seen plenty enough people doing good job on macs to be suprised :)
PerlJam if I weren't using linux, I'd use a mac. Macs are most unix-like but with a nice UI 21:59
benabik If I weren't on a laptop, I'd use Linux. Hardware support for laptops has always burned me. 22:00
22:00 skids left
colomon pmurias: on using the mac: It's easily the nicest windowing UI I've ever used, and it's got a *nix shell as powerful as any Linux. There are a few rough edges, sure, but it's still an order of magnitude nicer than any other system I've used. 22:01
pmurias: for instance, Macports leaves something to be desired, for sure, but I've never had better luck with any of the Linux equivalents. 22:04
22:06 kaare_ left
colomon huh, installed perlbrew but don't seem to have its perl5 directory. 22:06
22:09 dorlamm joined
colomon probqably need init 22:09
22:10 alim joined 22:16 kaare_ joined
[Coke] wishes someone would track down the idiot spamming messages from 2007 and make him stop. 22:18
Received: from mda.wombatsecurity.local (c-24-131-84-205.hsd1.pa.comcast.net. [24.131.84.205]) by mx.google.com with ESMTP id n5si7810013qct.205.2012.02.21.16.10.59; Tue, 21 Feb 2012 16:11:00 -0800 (PST)
fsergot Could somebody take a look: gist.github.com/1887806 22:19
?
:)
tadzik: What do You think about this?
masak interesting. 22:20
you are aware that that's 'rm -r', not 'rmdir', right? :)
[Coke] (and it's not just parrot/perl6, it looks like this idiot is devouring lots of groups emails incorrectly)
tadzik cute
fsergot: does it work? I don't remember if File::Find really is depth-first :) 22:21
[Coke] points at groups.google.com/forum/#!topic/sf...5jSIvppTr4 - same address, even.
fsergot masak: what do You mean? :) 22:22
tadzik: works for me.
22:22 ksi left
tadzik fsergot: for bonus points: find(), as dir(), is lazy. Assigning it to an array loses all advantage laziness gives us 22:22
(I think)
you could probably do this with just one for {}
22:23 kaare_ left
fsergot tadzik: Can You show me how? I was trying a lot of ways. :) 22:23
tadzik fsergot: I think just for find().foo.foo.foo { unlink $_ }; unlink $path 22:25
fsergot masak: Yes, I'm aware. :)
tadzik: hmm, I must think it over. 22:28
22:31 dorlamm left
tadzik sure 22:31
fsergot tadzik: find() return a list, right?
returns*
nom: use File::Find; 22:32
p6eval nom 4130f6: OUTPUT«===SORRY!===␤Could not find File::Find in any of: lib, /home/p6eval/.perl6/lib, /home/p6eval/nom-inst2/lib/parrot/4.0.0-devel/languages/perl6/lib, .␤»
benabik star: use File::Find
p6eval star 2012.01: ( no output )
fsergot benabik++ thanks
tadzik fsergot: yes, a lazy one
benabik tadzik: I think the .reverse will cause it to be eager. 22:33
pmurias colomon: any luck with the new perl?
benabik Lazily reversing a list is quite difficult. :-D
colomon pmurias: it just finished building a second ago 22:34
tadzik benabik: oh, true
fsergot So, what to do? :)
tadzik submit a pull request for Shell::Command :) 22:35
don't forget tests
colomon pmurias: oooo, your p5test passes with flying colors
masak remember that you have to fail the rmdir as soon as an unlink fails.
which it might do for a host of reasons.
fsergot masak: of course, this was only a "beta" version :) 22:36
colomon pmurias: how do I test if p5 interop now works? 22:38
TimToady thinks about hyperops applied to directory structures, and the fact that our manycores are still talking to a single disk drive normally 22:40
masak fsergot: yes, of course. just giving you feedback and forward directions ;) 22:41
'night, #perl6
fsergot masak: thanks, I really appreciate this. :)
masak++
good night masak! :)
tadzik g'night masak 22:42
pmurias colomon: make and make perl5 22:46
perl t/run_spectests_p5
fsergot tadzik: Could this be? : gist.github.com/1888091 22:48
tadzik fsergot: I think so, yes 22:52
fsergot So, now it's time for rmdir and then I'll submit a pul request. 22:53
:)
tadzik++
pull* 22:55
22:56 benabik left
fsergot tadzik: Could rmdir use an external module if it'll be in src/core/IO.pm? 23:03
pmurias colomon: or mono run/Niecza.exe examples/term-ansicolor.pl 23:04
23:04 lestrrat left
pmurias sleep& 23:05
23:05 pmurias left, lestrrat joined 23:09 PacoAir left
fsergot nn pmurias 23:11
tadzik fsergot: I don't think so 23:12
fsergot: I think it belongs in Shell::Command as rmtree 23:13
fsergot tadzik: Theres no rmtree in yours Shell::Command
tadzik: It's late, I'll come back to this tomorrow. :) 23:16
colomon phenny: tell pmurias "Can't locate Package/Stash.pm" 23:17
phenny colomon: I'll pass that on when pmurias is around.
colomon phenny: tell pmurias Oh, just had to install Package::Stash for my new perlbrew p5. 23:24
phenny colomon: I'll pass that on when pmurias is around.
23:33 skids joined 23:40 tarch left 23:42 mtk left 23:48 literal_ joined, au__ joined, ascent__ joined 23:49 BooK__ joined
sorear good * #perl6 23:50
23:51 jevin joined 23:52 doy_ joined, itz_ joined 23:53 pjcj_ joined 23:54 kthakore_ joined, alim left, doy left, itz left 23:55 Chillance left, alim joined, tokuhirom joined, lestrrat left 23:56 lestrrat joined, lestrrat left