00:08 pmurias left 00:16 FROGGS left 00:17 raiph left 00:19 raiph joined 00:22 xenoterracide left
flussence [Coke]: git describe --long should work 00:33
00:49 cognominal left 00:50 cognominal joined 01:03 Nom- left 01:11 Nom- joined 01:14 woosley left 01:16 woosley joined 01:39 cognominal left 01:46 lowpro left 01:52 lowpro joined, lowpro left 02:00 lowpro joined 02:08 BenGoldberg left 02:11 BenGoldberg joined 02:12 btyler_ left
BenGoldberg rn: say ("O".."z").Str 02:16
camelia niecza v24-88-g1f87209: OUTPUT«(timeout)»
..rakudo 4a608a: OUTPUT«O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z␤»
BenGoldberg rn: "Oz".ords.say 02:17
camelia rakudo 4a608a, niecza v24-88-g1f87209: OUTPUT«79 122␤»
timotimo r: say("O".."z")[^20] 02:18
camelia rakudo 4a608a: OUTPUT«"O".."z"␤»
timotimo r: say("O".."z").map(*.Str)[^20]
camelia rakudo 4a608a: OUTPUT«"O".."z"␤»
BenGoldberg rn: .print for "O".."z" 02:19
timotimo r: say ("O".."z")[^20]
camelia niecza v24-88-g1f87209: OUTPUT«(timeout)OPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZEAEBECEDEEEFEGEHEIEJEKELEME…
..rakudo 4a608a: OUTPUT«OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz»
rakudo 4a608a: OUTPUT«O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b␤»
timotimo (spacebaris a bit busted)
...
r: say ("O".."z")[^30]
camelia rakudo 4a608a: OUTPUT«O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l␤»
timotimo r: say ("O".."z")[^100]
camelia rakudo 4a608a: OUTPUT«O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z␤»
BenGoldberg n: .say for ("O".."z")[^20]
timotimo r: say ("O".."z")
camelia niecza v24-88-g1f87209: OUTPUT«O␤P␤Q␤R␤S␤T␤U␤V␤W␤X␤Y␤Z␤AA␤AB␤AC␤AD␤AE␤AF␤AG␤AH␤»
rakudo 4a608a: OUTPUT«"O".."z"␤»
timotimo r: .say for ("O".."z") 02:20
camelia rakudo 4a608a: OUTPUT«O␤P␤Q␤R␤S␤T␤U␤V␤W␤X␤Y␤Z␤[␤\␤]␤^␤_␤`␤a␤b␤c␤d␤e␤f␤g␤h␤i␤j␤k␤l␤m␤n␤o␤p␤q␤r␤s␤t␤u␤v␤w␤x␤y␤z␤»
timotimo it does work
diakopter .seen sorear
yoleaux I saw sorear 21 Jul 2013 06:33Z in #perl6: <sorear> admittedly it's largely out of necessity
timotimo oh, it was niecza who timeout'd
BenGoldberg Why does niecza follow Z with AA, while rakudo follows Z with [
timotimo well, because this:
r: say ("a".."zz")[1, 5, 10 ... *]
camelia rakudo 4a608a: OUTPUT«Unable to deduce sequence␤ in method sink at src/gen/CORE.setting:11241␤ in block at src/gen/CORE.setting:14827␤ in any coro at src/gen/CORE.setting:6919␤ in method reify at src/gen/CORE.setting:6901␤ in method reify at src/gen/CORE.setting:6643␤ in method r…
timotimo r: say ("a".."zz")[1, 5, 11 ... *] 02:21
camelia rakudo 4a608a: OUTPUT«Unable to deduce sequence␤ in method sink at src/gen/CORE.setting:11241␤ in block at src/gen/CORE.setting:14827␤ in any coro at src/gen/CORE.setting:6919␤ in method reify at src/gen/CORE.setting:6901␤ in method reify at src/gen/CORE.setting:6643␤ in method r…
timotimo oh?
r: say ("a".."zz")[0, 5, 10 ... *]
camelia rakudo 4a608a: OUTPUT«(timeout)»
timotimo huh.
r: say ("x"..*)[^20]
camelia rakudo 4a608a: OUTPUT«x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq␤»
timotimo it's just that rakudo notices that O and z are not part of the same sequence
r: say ("X"..*)[^20]
camelia rakudo 4a608a: OUTPUT«X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ␤»
BenGoldberg r: say ("a".."zz") 02:25
camelia rakudo 4a608a: OUTPUT«"a".."zz"␤»
BenGoldberg r: say ("a".."zz")[^*]
timotimo i think we may have more luck with the ... operator
camelia rakudo 4a608a: OUTPUT«(timeout)»
timotimo r: say "a"..."z"
camelia rakudo 4a608a: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z␤»
timotimo r: say "a"..."zz"
camelia rakudo 4a608a: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs …
timotimo r: say +("a"..."zz")
camelia rakudo 4a608a: OUTPUT«702␤»
timotimo r: say ("a"..."zz")[^*] 02:26
camelia rakudo 4a608a: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs …
timotimo r: say ("a".."zz")[{ say $^length }]
camelia rakudo 4a608a: OUTPUT«702␤b␤»
timotimo r: say ("a".."zz")[{ $^length }]
camelia rakudo 4a608a: OUTPUT«Nil␤»
timotimo r: say ("a".."zz")[^{ $^length }]
camelia rakudo 4a608a: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤ in method Numeric at src/gen/CORE.setting:952␤ in sub prefix:<^> at src/gen/CORE.setting:6601␤ in block at /tmp/wv2G6lakwA:1␤␤»
timotimo er, haha
r: say ("a".."zz")[{ ^$^lenger }]
that's interesting.
camelia rakudo 4a608a: OUTPUT«(timeout)» 02:27
BenGoldberg r: say ("a".."zz")[{ ^$^foobar }]
camelia rakudo 4a608a: OUTPUT«(timeout)»
BenGoldberg r: say ("a".."b")[{ ^$^foobar }]
camelia rakudo 4a608a: OUTPUT«a b␤»
timotimo $^frobfrob is the syntax for an implicit signature's argument
r: say ("a".."bz")[{ ^$^argh }] 02:28
camelia rakudo 4a608a: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz␤»
BenGoldberg r: say ("a".."b")[{ say ^$^foobar }]
camelia rakudo 4a608a: OUTPUT«0..^2␤b␤»
BenGoldberg r: say ("a".."b")[{ say ^$^length }]
camelia rakudo 4a608a: OUTPUT«0..^2␤b␤»
timotimo maybe a multi candidate for postcircumfix:<[ ]> would be in order that understands ranges
r: say (^10).WHAT
camelia rakudo 4a608a: OUTPUT«(Range)␤»
BenGoldberg r: say ("a".."d")[{ say ^$^asdflkjwef }] 02:29
camelia rakudo 4a608a: OUTPUT«0..^4␤b␤»
02:29 xenoterracide joined
timotimo why did a perl6 advent post just bubble up in my feed reader? 02:42
02:47 lue joined 02:50 lue left 02:53 btyler joined, ssutch left 03:19 ssutch joined 03:41 Ben_Goldberg joined 03:42 BenGoldberg left 03:45 btyler left 03:47 Ben_Goldberg left 03:48 BenGoldberg joined 04:27 raiph left, grondilu left 04:30 konundra left 04:31 konundra joined 04:37 raiph joined 04:38 BenGoldberg left 04:39 djanatyn left, djanatyn joined 04:44 birdwindupbird joined 04:45 konundra left 04:52 xilo left 05:12 SamuraiJack_ joined
moritz \o 05:22
diakopter o/ 05:37
Woodi hallo 05:41
could someone give ~ info about what's broken in Star ATM ? 05:42
05:42 ssutch left 05:44 ssutch joined 05:48 preflex left 05:49 preflex joined, ChanServ sets mode: +v preflex 05:52 logie left, logie joined
frettled Good morning, #perl6 :) 06:03
06:10 silug joined 06:14 dmol joined 06:15 lowpro left 06:26 daniel-s__ joined 06:32 huf joined 06:35 robinsmidsrod joined 06:47 zacts joined 06:49 xinming left 06:52 xinming joined
moritz \o frettled 06:53
06:59 sidus joined 07:04 FROGGS joined 07:22 fhelmberger joined 07:27 kaleem joined
lizmat good *, #perl6 07:41
FROGGS gmorning lizmat 07:49
lizmat morning FROGGS!
arnsholt Woodi: I know that Zavolaj fails some tests 07:52
moritz: Incidentally, the Zavolaj fail is likely to impact DBIish I think
moritz :/ 07:54
arnsholt It'll only fail when you use explicitly-manage() (which I'm looking forward to axing, BTW), but IIRC at least the Pg driver needs that 07:56
dalek rlito: 95e6b6c | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - TODO cleanup
07:59
lizmat Q: is there an easy way to complete fudge a test file for niecza and pugs ? 08:06
arnsholt Not sure what you want to do 08:07
lizmat working on $var will foo {} tests, and these won't work on niecza nor pugs
arnsholt If you want to run a single (fudged) test file you can make t/spec/path-to-file.t
lizmat so all tests need to be fudged
arnsholt At least on Rakudo
Oh, right. Mark the entire file as to be skipped should be possible 08:08
I've no idea how though, sorry
lizmat :-(
:-)
hmmm… some conditional skip_rest. but what would the condition be? 08:09
ah, fudge that line for rakudo :-)
FROGGS lizmat: if you dont want to run a single file, just remove it from spectest.data 08:10
lizmat I don't want to run this for niecza and pugs 08:11
they have their own "spectest.data", no?
FROGGS they have 08:13
so if you add a new test file for example for rakudo, you are always safe
lizmat for now, this seems to do the trick: 08:14
#?rakudo 1 skip "don't skip on rakudo"
BEGIN skip_rest( "can only do this on rakudo" );
masak mornin', #perl6 08:16
lizmat morning masak 08:17
S04:1454 states "These have the advantage of passing the variable in question into the closure as its topic" 08:22
synopsebot Link: perlcabal.org/syn/S04.html#line_1454
lizmat I wonder what that would mean for cases such as 08:23
my @a will begin { say $_.WHAT } # Array ?
masak r: my @a; BEGIN { say @a.WHAT } 08:24
camelia rakudo 4a608a: OUTPUT«(Array)␤»
masak nods
lizmat r: my @a; $_ := @a; say $_.WHAT # more like this, I guess 08:25
camelia rakudo 4a608a: OUTPUT«(Array)␤»
lizmat r: my @a will begin { say $_.WHAT } # Array ? 08:28
camelia rakudo 4a608a: OUTPUT«(Mu)␤»
masak I don't see why it shouldn't be (Array) 08:29
masak submits rakudobug
08:30 sqirrel joined
lizmat masak: don't bother, it's NYI 08:30
one of the blockers I'm banging my head against
masak ok, submitting as [NYI] instead of [BUG] :) 08:31
08:34 daxim joined
lizmat r: my @a will begin { say @a.WHAT } # the crux of the current problem 08:35
camelia rakudo 4a608a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable '@a' is not declared␤at /tmp/psEdqWxtJ9:1␤------> [32mmy @a will begin { say @a.WHAT[33m⏏[31m } # the crux of the current problem[0m␤ expecting any of:␤ method arguments␤ postfix␤»
08:37 preflex left, ecocode joined
masak lizmat: now that *is* a bug. 08:39
08:39 preflex joined, ChanServ sets mode: +v preflex, dakkar joined
masak one I can partly explain, though, having dealt with macros. 08:39
lizmat no, its's NYI
08:39 rindolf joined
lizmat when the code of the block gets executed, the variable has not been properly declared yet 08:39
masak a variable is *always* declared as soon as the parser is past 'my @a' 08:40
but I see what you're saying. it's an interesting edge case.
lizmat that's the point: it only is declared, afaics, *after* the next ; or , 08:41
masak forget the connection to macros (and scopes), your explanation is simpler.
r: my $x = $x
camelia rakudo 4a608a: ( no output )
masak lizmat: then that wouldn't compile.
lizmat hmmm… add '=' to the list of boundaries :-) 08:42
masak you keep adding epicycles. :)
just say it's after the 'my $x' :)
because we also have cases like 'say (my $x) + $x' 08:43
lizmat well, fwiw, the same probem we had with "is readonly"
masak r: say my $x + $x ** $x
lizmat it would mark the variable as readonly before it could get initialize
camelia rakudo 4a608a: OUTPUT«use of uninitialized value of type Any in numeric context in block at /tmp/pvrQRsBJMv:1␤␤use of uninitialized value of type Any in numeric context in block at /tmp/pvrQRsBJMv:1␤␤use of uninitialized value of type Any in numeric context in block at /tmp/pvrQRs…
lizmat d
FROGGS I think the problems is that "declaring a var" has several steps
-s
when the parser spots my $x it is known to the parser, even if a trait is following 08:44
lizmat masak: now that is interesting :-)
FROGGS but that is all that happened at that time
masak lizmat: my point is that 'at the next boundary' is too late. 08:53
lizmat: see also parameters: '$x where { $x == 7}'
lizmat hmmm... 08:54
first I'll write a large set of (todo/skip) tests, then I'll look at the "where" case
masak r: sub foo($x, $y where { $y == $x + 2 }) { say "yep, $x and $y works!" }; foo(10, 12); foo(7, 8) 08:56
camelia rakudo 4a608a: OUTPUT«yep, 10 and 12 works!␤Constraint type check failed for parameter '$y'␤ in sub foo at /tmp/n4M9QbAZAq:1␤ in block at /tmp/n4M9QbAZAq:1␤␤»
lizmat fwiw, jnthn++ spent only a few hours on this initial var trait implementation before he went on holiday 08:59
I'm just trying to get the rough edges off, but my sander is definitely not strong enough yet 09:00
masak lizmat++ # tuit source
lizmat: as Head Bug Wrangler, I feed off people's attempts to make things work. the friction that causes drives the bug-filing metabolic cycle. 09:01
lizmat wish I could spend my tuits more economically though, instead of head banging most of the time / waiting for make to finish
arnsholt I think the problem is that traits are part of the variable_declarator token (Grammar.pm:2110) and the corresponding action method is where it's installed in the symbol table 09:12
masak that doesn't sound insurmountable, though. 09:16
that sounds like "oh bother" but not "I... see. back to the drawing board."
arnsholt Yeah, shouldn't be completely crazy 09:17
09:17 fridim__ left
arnsholt From a skim of Actions.pm, looks like some of what happens in declare_variable() has to happen between the declaration of the name and the traits 09:18
lizmat it's too crazy for me at the moment :-( but I will get there somehow
FROGGS lizmat: that is why moarvm is so much fun, after changing stuff, it only takes a fraction of a minute to recompile and run the given test
arnsholt Installing a stub container descriptor or something like that
FROGGS arnsholt: that is what I tried to say earlier
arnsholt Ah, right 09:19
lizmat grrr… and now I find that "will end" should throw an exception, but doesn/t :-( 09:20
r: my $a will end { say "Goodbye" } 09:21
camelia rakudo 4a608a: ( no output )
lizmat r: my $a will foo { say "Goodbye" } 09:22
camelia rakudo 4a608a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't use unknown trait 'will foo' in a variable declaration.␤at /tmp/CR86bWmxRS:1␤------> [32mmy $a will foo { say "Goodbye" }[33m⏏[31m<EOL>[0m␤ expecting any of:␤ begin check final init end␤ enter leave keep und…
09:37 raiph left, fhelmberger left
lizmat hmmm… even a die() doesn't work in a "will foo {…}' trait mod 09:49
masak I realized a couple of days back that a fairly essential part of the Nomic-in-p6 game would have to be a decent "Nomic simulator", in which a player could run his proposed patch offline with full mocking of other players, turns, voting, etc. 10:02
10:04 ecocode left 10:10 aindilis left
dalek kudo/nom: 59ec2d1 | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Remove useless exceptions from variable "will" trait
10:14
10:19 sidus left
masak std: say 00 10:24
camelia std c2215f0: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o0 if you mean that at /tmp/GUrPKFCnDV line 1:␤------> [32msay 00[33m⏏[31m<EOL>[0m␤ok 00:00 42m␤»
masak std: say 00 #OK
camelia std c2215f0: OUTPUT«ok 00:00 42m␤»
FROGGS r: say 00
camelia rakudo 4a608a: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o0 if you mean that␤ at /tmp/YF2NTpNjIs:1␤ ------> [32msay 00[33m⏏[31m<EOL>[0m␤ Leading 0 does not indicate octal in Perl 6; please use 0o0 if you mean that␤ at /tm…
FROGGS r: say 00 #OK
camelia rakudo 4a608a: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o0 if you mean that␤ at /tmp/xaOcYwP1or:1␤ ------> [32msay 00[33m⏏[31m #OK[0m␤ Leading 0 does not indicate octal in Perl 6; please use 0o0 if you mean that␤ at /tmp…
FROGGS k
dalek ast: 73f8c5b | (Elizabeth Mattijsen)++ | S04-declarations/will.t:
Initial work on "will" variable trait tests
10:28
kudo/nom: bb86d1a | (Elizabeth Mattijsen)++ | t/spectest.data:
Add new "will" variable trait tests
10:34 sqirrel left
masak still thinks gist.github.com/masak/5237570 is a thing of beauty and hopes to find tuits to implement it during 2013 10:37
I just went through it and found/fixed a bug or two. 10:38
10:38 sidus joined
masak programming mid-air is never a good idea ;) 10:38
(by which I don't mean "programming in airplanes", which should be fine, but "programming without having runnable code to make sure it actually works") 10:43
train & 10:45
FROGGS I'm getting sick when hacking in airplanes :/ 10:48
Teratogen std: 1 while fork; 10:50
camelia std c2215f0: OUTPUT«ok 00:00 42m␤»
Teratogen baw
FROGGS Teratogen: what do you expect? blowing up a parser? 10:51
Teratogen maybe "Out of memory" 10:52
std: @a=1..10000000000000000000000000000000000
camelia std c2215f0: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable @a is not predeclared at /tmp/V_aa8iRKks line 1:␤------> [32m<BOL>[33m⏏[31m@a=1..1000000000000000000000000000000000[0m␤Check failed␤FAILED 00:00 43m␤»
Teratogen std: my @a=1..10000000000000000000000000000000000
camelia std c2215f0: OUTPUT«ok 00:00 43m␤»
Teratogen I give up
std: my @a=(1..10000000000000000000000000000000000) 10:53
camelia std c2215f0: OUTPUT«ok 00:00 45m␤»
Teratogen baw
std: $a = 1
camelia std c2215f0: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $a is not predeclared at /tmp/_UNfVKgScL line 1:␤------> [32m<BOL>[33m⏏[31m$a = 1[0m␤Check failed␤FAILED 00:00 43m␤»
Teratogen interesting, everything must be predeclared in Perl 6?
FROGGS Teratogen: std is "just" a parser
Teratogen ah
FROGGS Teratogen: no, there is a "lax"-mode specced 10:54
std: v6; say $a # maybe NYI ?
camelia std c2215f0: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $a is not predeclared at /tmp/6cMWmDHsZT line 1:␤------> [32mv6; say [33m⏏[31m$a # maybe NYI ?[0m␤Check failed␤FAILED 00:00 42m␤»
FROGGS right, NYI
10:54 fgomez left
FROGGS but is shouldnt be too hard to implement that fwiw 10:54
11:00 leont joined
Teratogen Did Perl 6 do away with typeglobs? 11:00
Typeglobs are so very very Perlish! 11:01
leont They're also quite terrible ;-)
GlitchMr Teratogen: yes 11:06
But aliasing still exists if you need it.
my $a = 42; my $b := $a; 11:08
11:08 mj41 joined
Teratogen It's just not the same! 11:08
11:09 sqirrel joined
leont is coming to the perl 6 hackathon at YAPC::EU, but doesn't know what he's planning to do there yet􏿽x85 11:09
GlitchMr What else typeglobs could be used for? 11:10
leont filehandles of course :-( 11:11
And the weirdest objects ever!
GlitchMr Filehandles are proper objects in Perl 6.
Teratogen a typeglob is just a structure of references.
It's not that big of a deal.
nwc10 leont: I was wondering about "drink!" 11:12
Teratogen Going to Europe? Try the absinthe!
leont GlitchMr: that was sarcasm
GlitchMr You can have bareword filehandles, but they are still proper objects. 11:13
niecza> my \file = open 'file'
TextReader.new(...)
niecza> file
TextReader.new(...)
(it seems there is a bug in Rakudo with bareword filehandles, but in Niecza it works)
Teratogen ack 11:14
Camelcase =(
text_reader <== I am Multics old school
Ulti way of the camel case
GlitchMr TextReader is class name.
Teratogen why not text_reader
it's easier on the eyes
GlitchMr In Perl 5, TextReader->new would be fine (if TextReader would be a package). 11:15
Ulti I'm with GlitchMr on this one
Teratogen I don't get it!
text_reader->new
GlitchMr Because packages and classes are important.
Ulti JavaDoesThis variable_name
GlitchMr Java actually does JavaDoesThis variableName
Perhaps Python, or Ruby. 11:16
Ulti types in Perl6 are capitalised already so why wouldnt you do the same with your own types
GlitchMr Also, TextReader is a bug in Niecza.
In Rakudo, it's IO::Handle object.
FROGGS in Perl land packages (= types) were always PascalCased
GlitchMr And, well, it's from Perl 5. 11:17
There is nothing wrong IMO with CamelCaseClasses.
Also, text_reader is ugly in Perl 6. Perhaps text-reader? 11:18
11:18 pmurias joined
FROGGS right 11:18
dalek kudo-js: d1204ad | (Pawel Murias)++ | run_tests:
Add passing test 64 to run_tests.
GlitchMr Underscores generally are avoided in Perl 6.
Ulti $_
GlitchMr $_ is exception. 11:19
FROGGS s/avoided within names//
GlitchMr $- would be ugly.
FROGGS we basically have $_, $! and $/, and I love all three 11:20
GlitchMr I'm not sure whatever Perl 6 needs $!, but it's still improvement compared to Perl 5. 11:21
Ulti I kind of like Icon's take on magic variables they have their own sigil &
GlitchMr With lots of global filehandle variables.
leont couldn't resist looking up $- in perl5, it's "The number of lines left on the page of the currently selected output channel.", thank goodness perl 6 doesn't have formats
GlitchMr Perl 6 has formats, just that they are external module available in ecosystem.
But Perl 6 formats don't depend on global variables and nonsense like that. 11:22
github.com/mathw/form/
The formats were going to be a part of Perl 6, but were moved to external module. 11:23
leont They're not formats in the perl 5 sense, they're just a template system
GlitchMr Formats in Perl 5 are templating system too.
(well, yeah, formats in Perl 5 could only write to filehandles, but nothing stopped you from opening variable filehandle) 11:24
leont But not "just one". Syntactically they're part of the language as much as subs are 11:25
Down to little things like all globs having a FORMAT field􏿽x85
GlitchMr True.
Perl 5 formats need syntactical support from language itself. 11:26
Perl 6 formats are just a function.
But is there any difference between standard function call and special syntax? 11:27
(also, Perl 6 modules can easily add special syntax, so well...) 11:28
leont What do you mean?
GlitchMr You can modify Perl 6 grammar from language itself. 11:29
11:29 rindolf left
GlitchMr r: sub infix:<!@#> { $^a * 2 + $^b * 3 }; say 7 !@# 3; 11:29
camelia rakudo bb86d1: OUTPUT«23␤»
GlitchMr Doing something like format would be more complex, but possible.
leont Ah, like that 11:30
Yeah, you don't really want that
GlitchMr The Perl 6 grammar is written in Perl 6. 11:31
github.com/perl6/std/blob/master/STD.pm6
leont I meant, you don't want to recreate formats that way, you want to have a modifiable grammar, I agree on that! 11:34
GlitchMr You can insert a token into grammar
Something like 'format' <stuff>
arnsholt (This is mostly not yet implemented, mind) 11:35
GlitchMr I think it's possible in STD.pm6.
Not sure about Rakudo or Niecza.
By STD.pm6, I mean viv.
arnsholt viv actually handles macros? 11:36
GlitchMr No.
But I guess it could parse the token added to grammar.
viv is just a parser.
arnsholt Oh, right. But that's not terribly useful for Rakudo/Niecza though 11:37
As long as we can't attach actions and generate AST for new syntax, we can't make it do anything 11:38
GlitchMr STD.pm6 knows what is a 'macro'.
But it doesn't run it...
11:50 odoacre left 12:03 mtk left 12:12 mtk joined
Ulti out of interest is there any difference between doing @list ==> map {$_+=3} ==> reduce {$^a+$^b} and map {$_+=3}, @list ==> reduce {$^a+$^b} 12:26
in the first could the map be done in parallel as well as the reduce and the second the map is done sequentially?
or is it all just sequential pipe style doing things 12:27
as in its just a different process for each expression between ==>
GlitchMr Ulti: it just looks differently 12:30
==> shows piping process.
12:31 cognominal joined
GlitchMr But IMO, mixing two styles is ugly. 12:31
12:33 kingbeast joined
Ulti so there is no practical difference between reduce {$^a+$^b}, map {$_+=3}, @list and the ==> form? as in I should expect something like forking with ==> ? 12:34
*shouldn't
GlitchMr ==> has nothing with forking 12:35
Ulti GlitchMr: I like the ==> just because you can use left to right read order which is easier for non functional types to read
[Coke] flussence: no, git describe --long also says "nothing to describe"
GlitchMr I mean, you have @list in middle, not at beginning or end. 12:36
Ulti huh? 12:37
GlitchMr: the 'and' was english not Perl6 ;)
GlitchMr I prefer something like @list ==> map { $_ += 3 } ==> reduce { $^a + $^b }
Ulti so the feed operator does nothing apart from syntax sugar? 12:38
GlitchMr But that is ugly in my opinion
12:38 dmol left
GlitchMr Rather, I would do [+] @list X+ 3 12:38
Ulti yeah I know but it was just an example with the feed operator so I could talk about it 12:39
GlitchMr And yes, feed operator is just a syntactic sugar.
reduce {} is always confusing, by the way.
Ulti really why?
GlitchMr (when not used with simple infix operator) 12:40
12:40 kingbeast left, crab2313 joined
GlitchMr And when you use it with infix operator, you have [] prefix operator anyway. 12:40
Or reduce &[+], but that's more verbose.
[Coke] Woodi: here's a list of everything failing in star: github.com/coke/rakudo-star-daily/...odules.log
mathw that's a matter of opinion
[Coke] (assuming we want to upgrade to latest module versions of rakudo+nqp+modules)
[Coke] wonders who updated perl6advent.wordpress.com/2012/12/...-me-on-it/ 12:41
GlitchMr There is a reason why reduce() is avoided in Python.
Ulti Python avoids any functional trope as far as I can see 12:42
like removing lambda in version 3
GlitchMr lambda never was removed
Ulti orly
GlitchMr lambda wasn't removed*
>>> lambda: 42 12:43
<function <lambda> at 0xf727c2ec>
Ulti docs.python.org/3.3/faq/programming...-in-python its not advised either, and is picked on a lot
GlitchMr Guido wanted to remove it, but there was no good alternative for it in many cases. 12:44
mail.python.org/pipermail/python-de...60415.html
But reduce() was moved to functools.
He also wanted to remove map() and filter(). 12:45
www.artima.com/weblogs/viewpost.jsp?thread=98196
Only reduce() was removed (or rather, moved to functools).
mathw That's a Python decision though
It doesn't mean reduce is intrinsically bad
Functional programmers use it all the time 12:46
GlitchMr sum() is still available in Python
(even when it's just specific case of reduce)