»ö« 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.
pmichaud 'night from me also -- bbt 00:00
00:01 geekosaur joined 00:04 Omni|AFK joined, Omni|AFK is now known as Omni|Work
Omni|Work Is Parrot still the base of perl6? 00:04
00:06 sisar left
lichtkind good night 00:13
#
good night 00:14
ahh sorry
had vusual problems
Omni|Work: yes rakudo still runs on parrot
but will run also on other VM
as Niecza, another compiler does today 00:15
timotimo and pugs, which doesn't run under a common VM
does pugs implement its own bytecode + VM under the hood?
lichtkind it runs on GHC 00:16
timotimo so ... it translates perl6 code into haskell and compiles and runs that? or what?
lichtkind i mean it has its own intermediatary structures 00:17
yes
timotimo that's kind of cool
lichtkind theres also perlito
which compiles to js and can run in a browser too
timotimo and it's got less features or passing tests than the intersection of passing tests for pugs, niecza and rakudo? :) 00:18
lichtkind true
pugs was revitalized recently
rakudo and niecza are really the heavyweights
timotimo how much exactly does the "std" implementation do, btw? is it only a grammar or does it do any semantics at all? maybe some type checking? 00:19
lichtkind real fun starts when rakudo runs on .net and jvm which will be full feature and bug compatible, which is more that ruby or python ever had
ok STD is no implmentation 00:20
Omni|Work lichtkind: Thanks! I was thinking of the ideal situation for my simple Pythong server designed to serve up Bugzilla.
timotimo std: sub a(Int $a where * > 0) { say $a }; a(-1);
p6eval std 1ad3292: OUTPUT«ok 00:01 114m␤»
Omni|Work And parrot was the ideal situation. But, of course, no Python on Parrot. :-/
timotimo "no python on parrot" is wrong, there are several implementations :p
lichtkind yes no fullblown python however
timotimo: ok lets explain STD 00:21
Omni|Work From what I can tell that means there have been several starts and no finishes. :-)
timotimo i wonder how hard it would be to make pypy emit PIR or something :p
there have also only been "several starts and no finishes" for perl6 ;)
Omni|Work laughs.
I thought perl6 was very close to being done recently. I saw a flurry of press about it, and some really long strings of odd characters that did some really amazing stuff. 00:22
lichtkind timotimo: its just a parser which tells jou if some code is valid perl 6 and what part is what kind of token, it does no compiling just transformation into an AST
timotimo ah, okay
lichtkind Omni|Work: perl 6 is usable today
its just not very fast or complete
Omni|Work nods. 00:23
lichtkind timotimo: STD is actually a specification of perl 6 and an 100% corret parser which understands all of perl 6 which no other does
Omni|Work Not even any other human!
lichtkind :)
thats one huge advantage over perl 5 00:24
timotimo :)
it is!
Omni|Work laughs.
lichtkind we have an exact spec which can compile into a parser which can tell you if the code is correct
Omni|Work That is a nice advantage.
lichtkind that perl 5 never had
Omni|Work nods. 00:25
timotimo it really is!
Omni|Work You had to run your program in order to figure out if it the syntax was correct.
lichtkind which doest gave guarabtee to understand what actually happened 00:26
Omni|Work nods.
lichtkind even after seen the optree you didnt understood in some cases
the perl 6 ready is a hairy question becasue any reasonably language needed time to ripe and we announced it befor we even started :9 00:27
and you simply cant compare it with python 3000 which brought less new stuff than perl 5.10 00:28
ok thei took different route and fight different sets of problems 00:29
timotimo :)
lichtkind any question remaining i leave now otherwise 00:30
timotimo python 3000 still caused enough problems ;)
i'm fine. thanks for the enlightenment and gute nacht :)
lichtkind yes it forces you adopt the new oop model , moose and the new mop will be otional
will not come with 5.16 but 5.18 i suppose 00:31
timotimo "the new mop" will be exactly what perl6 has right now?
lichtkind now
a mini version
use MooseX to get full shebang
timotimo ok, fair enough
lichtkind only most needed parts will come into core
its also to reduce codebase and increase speed of moose 00:32
allrigth over and out
have fien night
fine 00:33
00:33 lichtkind left
Omni|Work I have to run and enjoy the fantastic Seattle sunshine. 00:33
Thanks for your explanations.
And, I'm not being silly, it is gorgeous in Seattle today.
00:34 Omni|Work left 00:35 localhost left 00:36 localhost joined 00:48 japhb_ left 00:50 cogno joined 01:13 M_o_C left 01:15 cogno left 01:16 cogno joined 01:20 Tene joined, Tene left, Tene joined 01:26 jaldhar joined 01:28 tokuhiro_ left 01:30 cogno left 01:31 Trashlord left 01:32 Trashlord joined 01:59 BruceZu-CNBJ joined 02:33 whiteknight left 02:39 sivoais_ left, sivoais joined 02:48 xinming joined 02:53 aindilis joined 03:05 jaldhar left 03:15 orafu left 03:20 Chillance left 03:33 jaldhar joined 03:41 PacoAir left 04:00 benabik joined 04:02 leprevost joined 04:07 sisar joined 04:12 am0c joined 04:24 Su-Shee_ joined 04:27 Su-Shee left 04:43 Patterner left 04:48 shinobicl_ joined 04:54 Psyche^ joined, Psyche^ is now known as Patterner 04:57 TimToady joined
TimToady just figgered out I was badly netsplit for the last few hours 05:05
05:06 cogno joined
sorear wb 05:09
TimToady not that Friday nights are the liveliest time of the week 05:10
05:16 benabik left 05:18 kaare_ joined 05:20 shinobicl_ left 05:31 cogno left 05:34 wolfman2000 joined 05:37 parthm joined 05:45 isBEKaml joined 05:58 mucker joined
sorear TimToady: still around? 06:06
TimToady vaguely 06:16
sorear wondering if you have any thoughts on the meaning of my @foo[**] 06:17
at issue is the fact that normally my @foo[2 xx 5] requires 5 indexes to get a real slot, otherwise you just get a slice 06:18
but @foo[* xx **] doesn't require infinite indexes 06:19
* xx *
TimToady I'd say that's all the leaves for a multidim array, since ** is as many dimensions as necessary to match on either end
06:19 kaare_ left
sorear I don't follow 06:20
1. leaves?
2. I thought ** made an infinite list 06:21
TimToady no, just an indefinite number
so .[1; **; 2] in a 2-d array, it represents 0 *s 06:22
sorear is that syntactic?
TimToady well, it has to know it operates at the ; level 06:23
06:23 sisar left
sorear what are leaves? 06:24
TimToady the Foo of 'my Foo @matrix[3,3]'
er, 3;3 06:25
sorear ah, that's what I suspected
TimToady whereas * is just the op index
*top
06:26 isBEKaml left
sorear how does @foo[**] know whether @foo[2;3;4] is a leaf or a slice? 06:29
TimToady by the declaration of @foo
sorear my @foo[**]
TimToady which might be reduced to a dimensionality number 06:30
in that case it'd have to look at the effective shape of the actual data, if we allow it
presuming the Foo doesn't support Positional 06:31
alternately, we can bias it shallow or deep in ambiguous cases
sorear I'd rather not allow it, but S09:444 06:32
TimToady it's related to the shallow/duck/deep hyper question, I suppose 06:33
sorear so, one basic question would be 'my @foo[**]; say @foo[2;3].gist' 06:36
TimToady that doesn't appear to be a question :)
what's at 2;3 might be a leaf or it might not 06:37
sorear That's to be considered an entire program. 06:38
What would it print, if ** were implemented as you imagine it?
TimToady well, I'd expect is says some variant of Nil, possibly with some autoviv info if it can't figure out it's strictly an rvalue 06:39
(think of Nil as the simplest Failure here) 06:40
sorear erm
'sub foo($x) { say $x.gist }; my @bar[**]; foo(@bar[2;3]) 06:41
'
==> 'foo(Nil)'
which is the same as foo() because Nils are treated as argument-not-provided, use-defaults
which is a runtime error, required positional not provided
is that REALLY what we want?
my p5-sense wants foo to just get an undefined value, not no value at all 06:42
TimToady then declare it $x?
I'm also assuming that Nil will be outside of Any 06:43
along with other failures
if you want to think of @bar[2;3] as returning a failure with autoviv info attached, that seems about right to me 06:45
the autoviv info isn't so very different from what is needed in a good error message anyway, I suppose
the issue of whether Nil is a failure with no other info is kinda independent of that 06:46
sorear blinks a few times 06:47
TimToady is speaking in terms of the OKness proposal here, more or less
sorear so, Nil + 1 should be 1 with a warning? &infix:<+> accepts ($x?, $y?) ? 06:48
because I want 'say @array[2] + 5' to behave p5ishly 06:49
if NaN and Nil are both kinds of failure, then why does NaN + 1 = NaN but Nil + 1 = 1 ?
TimToady well, NaN is a *bad* number, whereas Nil is just missing, I suppose one could argue, and lots of missing things like to default to 0 or '' (but not all, hence the warning) 06:53
06:54 birdwindupbird joined
TimToady then there's the whole issue of default values for arrays and hashes 06:54
which puts a weird spin on what you return to enable autoviv 06:56
presumably you could have a KetSet defaulting to 0, but then the autoviv element has to be 0 and also indicate it's not really there somehow
which is making my brane feel like it's almost bedtime 06:57
07:00 birdwindupbird left
sorear well then I'll let you go ;) 07:01
sleep well
TimToady well, False for a KeySet, 0 for a KeyBag, I guess
night, zzz & 07:03
sorear huh, it turns out a faster computer can run niecza's build substantially faster. 07:06
niecza> my %hash; %hash<k> := 1..3; join ';', %hash<k> 07:11
1;2;3
07:11 Su-Shee_ left
dalek ecza: 1252cdb | sorear++ | lib/Kernel.cs:
Don't itemize containers bound into an aggregate

In accordance with discussions this week on #perl6. This affects things like my %foo; %foo<k> := 1..3; join ';', %foo<k>
07:12
07:13 fglock joined
sorear o/ fglock 07:14
fglock sorear: hi
I'm looking at how to implement BEGIN blocks - the side-effects are hard to put back into the AST 07:19
sorear for niecza, implementing BEGIN required turning the AST system completely upside down 07:41
in a metaphorical sense
07:42 dukeleto left 07:53 lestrrat left 07:54 lestrrat joined 07:58 parthm left
tadzik hello #perl6 08:14
sorear hello tadzik 08:23
08:29 mucker left 08:35 MayDaniel joined 08:42 Su-Shee joined 08:46 NamelessTee joined 09:03 fgomez left 09:28 JimmyZ_ joined 09:32 mj41 joined 09:45 JimmyZ_ left 09:54 nwc10 joined 10:14 MayDaniel left 10:25 havenn joined, MayDaniel joined
moritz \o 10:41
tadzik ' 10:43
o/
fsergot o/ 10:51
colomon o/ 10:56
11:12 Woodi left
masak o/ 11:17
11:23 birdwindupbird joined
masak sorear++ # tackling the S09 mysteries 11:31
also, the more I backlog over TimToady's OKness musings, the more nervous I become. :/
I mostly don't like where those ideas seem to be heading.
timotimo "pecl6, you're NOT going out dressed like this! go to your room and change!" 11:33
perl6*, durr
masak p6: my %hash; %hash<k> := 1..3; join ';', %hash<k>
p6eval pugs, rakudo a4c78f, niecza v15-5-g1252cdb: ( no output )
masak p6: my %hash; %hash<k> := 1..3; say join ';', %hash<k>
p6eval pugs, rakudo a4c78f, niecza v15-5-g1252cdb: OUTPUT«1;2;3␤»
masak wow, total accord. 11:34
11:35 taryk joined
timotimo well, one would hope? 11:35
11:36 taryk|2 joined
masak my prior for it wasn't too large, since sorear++ made the change a few hours ago. 11:41
11:41 pochi left 11:45 whiteknight joined
felher just read a bit of S03 and wonders: 11:47
If i want objects of a class be able to compare to other objects of that class, i most likely want to define a 'WHICH'-method on them, right?
And then can '===' or '~~' those objects :) 11:48
nom: say "blar".WHICH
p6eval rakudo a4c78f: OUTPUT«Str|blar␤»
sjn heh 11:50
the "Blair".WHICH project :)
felher *lol* :D
11:51 MayDaniel_ joined 11:54 MayDaniel left
felher Hm. So those object would automagically work with 'when'. sweet :) 11:55
masak r: class A { has $.x; method WHICH { "A|$.x" } }; my $a1 = A.new(:x(5)); my $a2 = A.new(:x(5)); say $a1 === $a2 11:57
p6eval rakudo a4c78f: OUTPUT«True␤»
masak r: class A { has $.x }; my $a1 = A.new(:x(5)); my $a2 = A.new(:x(5)); say $a1 === $a2
p6eval rakudo a4c78f: OUTPUT«False␤»
11:57 conntrack joined
masak seems to work fine, yes. 11:57
r: class A { has $.x; method WHICH { "A|$.x" } }; my $a1 = A.new(:x(5)); my $a2 = A.new(:x(42)); say $a1 === $a2 11:58
p6eval rakudo a4c78f: OUTPUT«False␤»
felher nom: say Mu.WHICH
p6eval rakudo a4c78f: OUTPUT«Mu␤»
felher Hm, and since every object seems to have a .WHICH-method, that seems to be roughly equivalent to java's compare.
masak heh. S03:1279 calls .WHICH a "metamethod" -- it really isn't. S03:1286 calls .WHICH a "macro" -- it really isn't. 11:59
12:00 mj41 left
masak felher: it's roughly equivalent to Java's .hashCode 12:00
felher masak: right. Maybe its more correct if i say: .WHICH is roughly equivalent to Java's .hashCode but seems to serve the same purpose as Java's .compare? 12:02
masak I don't see the connection to Java's .compare at all. That's the sole method on the Comparable interface. it's a static method with two Object paramters to be compared. 12:04
.WHICH is non-static and takes no non-invocant parameters. 12:05
12:05 havenn left
masak Java's .compare is better contrasted with something like infix:<cmp> in Perl 6. 12:05
12:05 taryk|2 left, taryk left
felher masak: oh, yeah, i meant equals... :) 12:05
masak oh!
felher damn it :) Sorry
masak .equals does value comparison, so it's best contrasted with infix:<eqv>, I think. 12:07
.WHICH serves slightly different purposes depending on whether your type is an entity type or a value type.
in the former case, all the attributes across two objects can be identical, but .WHICH would still differ. (in which case you don't need to override it, because that's the default behavior) 12:08
in the latter case, if the two objects are equivalent in terms of attributes, .WHICH will return the same value. (in which case you need to define your own)
felher masak: well, .equals, if you don't change it, seems to be more like '=:=', i.e. comparing the references of two objects. If you change it, you can compare the values of object, if you want to, but don't have to. 12:10
moritz \o 12:11
masak yeah. we're saying the same thing now.
felher great :)
masak furthermore, .equals in Java is just a "projected" version of .hashCode, in the sense that whenever .equals returns True on two objects, .hashCode is expected to give the same result on those two. 12:12
the reason .equals isn't automatically derived from .hashCode is that hashing can be expensive, and .equals can be made faster in many cases. 12:13
now the t/spec/S19-command-line/dash-e.rakudo tests TODO-pass. I'll unfudge them. 12:26
interesting suspicion: could it be that my fiddling with locale and LANG changed the outcome of those tests? :)
dalek ast: 47b0ce4 | masak++ | S19-command-line/dash-e.t:
Revert "[S19-command-line/dash-e.t] fudged for rakudo"

This reverts commit 4cfafd6979ac540dd788615e8dfec5727b7b642d.
12:27
moritz masak: could be 12:32
felher masak: whats an 'entity type'? 12:35
12:42 ab5tract joined 12:47 taryk joined 12:48 mj41 joined 12:49 taryk left 12:55 taryk joined 13:04 parthm joined 13:05 ab5tract left
masak felher: a type of object with inherent identity. in the dichotomy "entity type"/"value type", the entity types generally have setters, and their .WHICH methods compute based on some object address, not based on the attributes. 13:05
contrast with a value type, which behaves a lot like built-in value types like Int or Str or Bool. two objects that both are 42, or both "OH HAI", or both False, are identical because-and-only-because they represent the same value. 13:06
in short, objects of value type are identical iff they are equivalent. entity types are not. 13:07
felher masak: ok, thanks :) 13:24
masak there's the usual pure/sinful division between value types and entity types. just like with FP/assignment, or monads/side-effects, or DRY/denormalization. 13:25
that is, there are clear benefits to doing things the pure way (using value types, for example), and the academic view often backs that side. 13:26
but generally you have to be sinful somewhere. the core business component of a design is often an entity type of some sort.
moritz there are also clear benefits to mutable data structures 13:30
like, that's what computers do best 13:31
try something very trivial like "count how often each character occured in a string" with immutable data structures in O(acceptable)
masak right. 13:32
though immutability sometimes gives surprising speed/space benefits, too.
git being perhaps the prime example of that.
all you ever do in a repo is build ever deeper immutable structures.
and it all works out very efficiently, because it's factored just the right way. 13:33
felher masak: would List.equals equals a list with the same elements vs. [1,2,3].WHICH is different from [1,2,3].WHICH be an example of the difference you saw between .WHICH and .equals?
moritz masak: except when you use branches, which you do all the time
masak felher: two Arrays [1, 2, 3] in Perl 6 would have different .WHICH values and compare false with infix:<===> (because they are mutable containers and thus entity types). but they would compare True with infix:<eqv>. 13:34
s/two/two distinct/
felher masak: great. Then i think i got your point :) 13:35
masak moritz: I don't understand the "except". you're still building immutable structures.
13:35 Chillance joined
moritz masak: and you're updating the 'master' and 'HEAD' pointers, which are mutable objects 13:35
masak that falls under my "you have to sin a little" exception. the point is that commits are immutable/value objects. 13:36
13:36 birdwindupbird left
moritz right 13:37
masak actually, commits flaunt their immutability by promising that their SHA hash value describes the entire commit.
moritz but I refuse to call them "sin"
masak you don't have to accept my analogy, just that it's describes a valid point ;0
;)
moritz accepted 13:38
masak \o/
call it "impurity" or whatever. I tend to see the phenomenon all the time nowadays. many successful models seem to have just the right engineering mixture of academic purity and pragmatic schmutz. 13:39
that ties in, by the way, to why I don't like putting up "theory" and "practice" as irreconcilable opposites. they seem more like disciplines that co-exist and thrive off each other. 13:43
13:44 MayDaniel_ left 13:45 parthm left
felher I have to go shopping to get someting nom'able. Thanks for your explanations and your patience, masak :) 13:47
masak++
masak thanks for letting me babble on about things I'm still learning myself. :) 13:49
felher++
moritz++
moritz: this book www.amazon.com/Purely-Functional-St...521663504/ has always caught my interest. I wouldn't be surprised if it contained a recipe for a persistent but O(acceptable) data structure for counting how often each character occurs in a given string. 13:53
I haven't read it yet, but I'd like to. 13:54
14:00 havenn joined 14:14 pochi joined 14:24 GlitchMr joined
GlitchMr Just wondering, I want to make something serious in Perl 6, and I wonder if any text editor can do syntax highlighting for Perl 6 (not Perl 5). 14:25
moritz vim and emacs 14:27
and padre
GlitchMr Thanks, I will check those 14:31
14:31 MayDaniel joined 14:33 havenn left
GlitchMr ... ok... Padre seems to work weirdly... I press "Enter" and it makes two linebreaks... just what... 14:34
masak probably something the good folks on #padre would like to hear about. 14:35
GlitchMr And syntax highlighter in Padre... is very simple...
It only seems to recognize few keywords, numbers and strings... 14:36
masak to be honest, I haven't found a syntax highlighter for Perl 6 yet that's worth the hassle of setting it up.
14:36 ponbiki joined
GlitchMr heh... I guess I should make one yourself :P. 14:37
Before doing anything...
masak the one I was least disappointed with was the cperl-mode in Emacs, which is a Perl 5 syntax highlighter, but is fault-tolerant enough to handle Perl 6 fairly well.
GlitchMr: I'd rather see you contributing Perl 6 code than Perl 6 syntax highlighter code ;)
GlitchMr I've considered Notepad++, but it's failure with Perl 6 grammars...
Perhaps Kate would work (Perl 5, but it doesn't seem to find regexpes everywhere)... perhaps... 14:39
masak I know jnthn uses www.e-texteditor.com/
it seems decent, even though it'll never replace vim and Emacs for me ;) 14:40
14:40 havenn joined
GlitchMr Looks nice, but I don't think I want to pay $50 for yet another editor :P 14:40
masak huh. never noticed it cost money. 14:43
14:46 PacoAir joined
flussence
.oO( make your code flow like natural language and you won't need highlighting! )
14:50
GlitchMr heh... 14:51
It's hard to call "sub" for example natural language :P
... but... do I need this word... 14:52
... after all... code blocks can be created using {}...
masak but they can't be 'return'-ed from. 14:53
GlitchMr perl6: my $a = 5; $a();
p6eval rakudo a4c78f: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Int'␤ in <anon> at src/gen/BOOTSTRAP.pm:812␤ in any <anon> at src/gen/BOOTSTRAP.pm:808␤ in block <anon> at /tmp/t1yJ0EfOgk:1␤␤»
..pugs: OUTPUT«*** Cannot cast from VInt 5 to VCode (VCode)␤ at /tmp/fPwlXVGinE line 1, column 12-16␤»
..niecza v15-5-g1252cdb: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in class Int␤ at /tmp/TuWJ9Mulxo line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3838 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3839 (module-CORE @ 65)…
14:53 benabik joined
GlitchMr perl6: my $a = { 5 }; print $a(); 14:53
p6eval pugs, rakudo a4c78f, niecza v15-5-g1252cdb: OUTPUT«5» 14:54
GlitchMr But... do I need to return?
14:54 benabik left
flussence I was reading an article yesterday about "point-free" code in Haskell, pretty interesting and sort of related to that 14:56
14:56 MayDaniel left, am0c left
flussence the idea is you don't name point A or point B (the input/output values), just define how to get from one to the other 14:57
I suppose the p6 equivalent would be using $_ a lot 14:58
colomon I'd think it would be more along the lines of chained method calls or feeds. 14:59
n: say ^Inf.map(* ** 2).grep(* %% 3)[^10]
p6eval niecza v15-5-g1252cdb: OUTPUT«0..^10␤»
flussence makes sense :)
colomon n: say (^Inf).map(* ** 2).grep(* %% 3)[^10] 15:00
p6eval niecza v15-5-g1252cdb: OUTPUT«0 9 36 81 144 225 324 441 576 729␤»
colomon though I guess I did use two Whatevers in there. :)
flussence I think it boils down to "avoid defining variables"
(avoid "="?) 15:01
GlitchMr perl6: ({sleep 2; print ('a')}()) | (print('b')) | (print('c'));
p6eval pugs: OUTPUT«*** Unsafe function 'sleep' called under safe mode␤ at /tmp/rfqjQYaSJT line 1, column 3-10␤»
..rakudo a4c78f, niecza v15-5-g1252cdb: OUTPUT«abc»
GlitchMr So I guess that it doesn't use multithreading for now :P...
flussence The ». syntax is specced to, but right now it's just emulated by processing inputs in random order 15:02
GlitchMr lol...?
flussence it's to stop people writing code that assumes it'll always be ordered 15:03
masak GlitchMr: you never "need" to return, but sometimes logic gets simpler if you can.
GlitchMr Well, technically all you need are variables, conditional goto and file handle operations :P... 15:04
perl6: my @array = 1..10; @array».say; 15:05
p6eval rakudo a4c78f: OUTPUT«6␤5␤3␤8␤9␤2␤10␤7␤4␤1␤»
..pugs: OUTPUT«2␤3␤4␤5␤6␤7␤8␤9␤10␤1␤»
..niecza v15-5-g1252cdb: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
GlitchMr But... isn't emulation of multithreading nearly useless? 15:06
masak yes.
feel free to implement the real thing for us. 15:07
GlitchMr :P
Well, I can understand it could be very difficult :P.
And this is community project ;)
masak not very. just difficult.
GlitchMr Is there forking at least? 15:08
masak maybe in Niecza.
flussence as the web's shown, people usually write code until it works for them, not for what the spec says :)
GlitchMr Which would work...
dalek osystem: 282fbc0 | colomon++ | META.list:
Tried to fix Math::ContinuedFractions.
atures: db29f93 | (Carl Mäsak)++ | features.json:
Second attempt at unbreaking the json

That comma shouldn't be there, I guess.
15:10
colomon wow, panda search Math is going very slowly.... 15:23
colomon naturally immediately runs the command again to see if it is as slow the second time. 15:25
15:30 MayDaniel joined
masak what's the slow part? 15:31
(my guess is JSON parsing)
colomon I've no idea, I just know it's slow.
panda-niecza is drastically faster at this command 15:32
neither point actually helps me understand why Math::ContinuedFractions cannot be found. :\
masak debugging time! \o/ 15:34
15:35 ponbiki left
colomon have there been recent changes to JSON that would make it much slower? 15:36
15:37 whiteknight left
colomon 4m21s on rakudo 15:38
6s on niecza
CAVEAT: I think panda-niecza is probably using a several months old version of JSON
15:39 havenn left, xenu joined
masak that's... slow. :( 15:39
I consider that an error. 15:40
if you can golf it, I'll rakudobug-submit it for you.
colomon if I can do all the work, you'll do the last step? ;) 15:41
masak dang, that usually works! ;) 15:42
15:43 orafu joined, jevin joined, ivan`` joined, krakan joined
colomon shell "wget 'feather.perl6.nl:3000/list' -O '$!projectsfile'"; 15:44
why is this how the ecosystem information is fetched?
it doesn't have Math::ContinuedFractions 15:45
masak tadzik: ping
flussence runs `perl6 --profile `which panda` search Math`, ooc 15:46
masak I have no idea, but my guess would be that feather.perl6.nl:3000/list is populated from github.com/perl6/ecosystem/blob/ma.../META.list somehow
15:47 Psyche^ joined 15:50 Patterner left, Psyche^ is now known as Patterner
masak walk & 15:50
flussence argh... I did > instead of 2> and half the output disappeared off my scrollback! 15:56
15:56 havenn joined, GlitchMr left 16:08 havenn left 16:11 havenn joined 16:13 GlitchMr joined
flussence hm, this profile says half the time is spent in grammar parsing... which means the other half isn't 16:13
16:15 nwc10 left
flussence so JSON::Tiny isn't *entirely* at fault, but that's about all I can figure out from this output, it's all too low-level for me. 16:17
colomon flussence++ 16:22
flussence I've stuck the profile in my homedir on feather3, if anyone wants it 16:23
colomon url?
colomon doesn't actually have an account on featherN... 16:24
flussence it doesn't seem to be running a httpd, I could try running a temporary one...
colomon nah, don't sweat it. 16:26
e-mail it to my id at gmail?
flussence that'd work :)
username@ ?
colomon yes
flussence sent 16:28
colomon got it, thank you
16:31 havenn left 16:35 jferrero left 16:37 thou joined 16:46 jferrero joined
TimToady japhb: I would say that rosettacode is a very good place to put examples, but not the only place, since it's organized more by task rather than by language, and sometimes you just want a bunch of things from one language together, or have a better indexing scheme than RC provides to find poorly named tasks 16:49
16:49 wolfman2000 left
sorear good * #perl6 16:49
TimToady o/ 16:50
16:50 havenn joined
sorear masak: I too am uneasy about the way OKness is headed. 16:50
o/ TimToady 16:51
16:54 fsergot left
sorear There have been a total of four semantic commits this month. I am planning to skip this month's release. 16:54
16:55 _sri left 16:57 _sri joined 16:59 jferrero left 17:00 jferrero joined, whiteknight joined
moritz don't 17:02
if you do time-based releases, do time-based releases
masak +1 17:08
17:10 spider-mario joined
sorear o/ masak 17:11
spider-mario hi, I’m glad to see that there are so many people interested in Perl 6 :)
sorear Hello and welcome, spider-mario
spider-mario I’m a new and enthusiastic user.
sorear Nah, they aren't really here for Perl 6, they just hang out bucause it's one of the friendliest channels here :p 17:12
spider-mario :D
sorear has tuits for the first time in ages and is puzzling over how multidimensional arrays should work 17:13
well, this is an awkward silence. I guess I should ask spider-mario some questions or something 17:18
spider-mario or I could ask one
would you know how to have raw interpolation of a variable in a regex? 17:19
17:19 fsergot joined
gfldex spider-mario: perlcabal.org/syn/S05.html#Variable...erpolation 17:20
i herein confirm to be here for the general friendlyness
spider-mario that’s what I’ve come across
oh, sorry, I missed a point 17:21
“However, if $var contains a Regex object, instead of attempting to convert it to a string, it is called as a subrule, as if you said <$var>.”
I kind of read it backwards
so, I just need to write <$x>, appearently.
thanks. :)
great, it works, indeed 17:22
\o/
TimToady I think you were defining "raw" backwards from us there :) 17:23
we tend to think of the bare string as raw, and interpolating it as a regex as "cooked"
pmichaud good afternoon, #perl6
TimToady which is backwards from how P5 thinks of it
pmichaud (briefly)
spider-mario oh, ok
sorry, I’ll remember that :)
TimToady no problem, just one of the many areas we flipped the default to something a bit more sensible 17:24
masak spider-mario: welcome!
spider-mario thank you :) 17:25
TimToady and the very fact that the new default is more sensible causes us to forget that other people might think of it the other way around
pmichaud sorear: (time based releases) -- I agree with moritz++ and masak++. Do the time-based release, even if there's not much (or even any) change from the previous release. Unless the release process is a pain. :-) 17:26
sorear: is your release process documented somewhere? Maybe now is the time to get release managers :-)
colomon sorear-tuits++ 17:27
GlitchMr perl6: my $a = 2; $a ==== 2; print $a; 17:28
sorear :-)
p6eval niecza v15-5-g1252cdb: OUTPUT«===SORRY!===␤␤Cannot make assignment out of === because chaining operators are diffy at /tmp/bWRoTfCkc0 line 1:␤------> my $a = 2; $a ====⏏ 2; print $a;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/l…
..rakudo a4c78f: OUTPUT«True»
..pugs: OUTPUT«2»
17:29 jferrero left, MayDaniel left
sorear spider-mario: in Perl 5 a regex is a kind of string that is parsed at match time. In Perl 6 regexes are code with a funny syntax that is parsed with the rest of your code. 17:29
<$foo> is really a kind of eval() 17:30
spider-mario that’s what I suspected
but thanks for making it clear and explicit
sorear like how you can sort of interpret 5 + eval($foo) * 8 as "interpolating" $foo into the expression
with the caveat that precedence is fixed
GlitchMr Well, in Perl 5, s/blah/print 2/e; is also kind of eval, but parsed in compile time :P.
sorear <$foo> always interpolates as an atom
GlitchMr (unlike PHP)
masak I'd volunteer to do a Niecza release.
pmichaud I suspect we'd have several Niecza release volunteers. 17:31
sorear you can't do my $foo = '*' ; / q <$foo> /
pmichaud I'd volunteer but my tuits are too unreliable.
GlitchMr As B::Deparse says...
17:32 jferrero joined
pmichaud okay, time for me to go again .. bbl 17:33
colomon o/
17:34 shinobicl__ joined
masak r: my $foo = '*'; say "q*" ~~ / q <$foo> / 17:34
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'Integer'␤»
masak innerestin'.
sorear masak: there's docs/release.txt; I don't know how useful it is
n: my $foo = '*'; say "q*" ~~ / q <$foo> / 17:35
p6eval niecza v15-5-g1252cdb: OUTPUT«Unhandled exception: Quantifier quantifies nothing␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1362 (die @ 3) ␤ at /home/p6eval/niecza/src/STD.pm6 line 5722 (STD.sorry @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 4827 (Regex.metachar:quant @ 5) …
spider-mario Quantifier quantifies nothing
is that what you meant by
<sorear> <$foo> always interpolates as an atom
?
masak sorear: it looks straightforward enough. I could dry-run it once first, just to be sure there are no surprises. 17:36
sorear I mean that it's interpreted as /q [[[[ * ]]]] /
spider-mario hm.
sorear [] is how we write (?: ) now
TimToady give or take a billion square brackets
17:36 fsergot left
masak I prefer Niecza's error to Rakudo's. 17:37
r: say '' ~~ / * /
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'Integer'␤»
masak ah, there we go.
TimToady what sorear means is that the interpolated expression must be able to stand on its own as a regex
masak submits LTA rakudobug
17:38 kaare_ joined
TimToady to do something lower level than that would require a macroish thing 17:38
sorear I do have the tuits for a release.
TimToady of the sort masak isn't working on yet
sorear The original idea was that I might be wasting p6a's time with a nearly empty annoucement 17:39
spider-mario I understood it that way
and it matches what I needed
(no pun intended)
sorear or also like how 'my $x = 2 + 3; say $x * 5' doesn't print 17
LTA, tuits, p6a, I wonder if spider-mario is lost ;) 17:40
spider-mario I haven’t seen “LTA”, but I am, a little. :p 17:41
17:41 jferrero left
masak TimToady: are you implying I'd ever take on 'is parsed' macros? :) doubtful. 17:41
spider-mario oh, 18:37:40
(LTA) 17:42
masak "Less Than Awesome"
spider-mario thanks :)
17:42 jferrero joined
masak a code word for "it gives an error message, but it's not up to our high standards" 17:42
sorear p6[acul] = perl6-{announce,compiler,users,language}@perl.org 17:46
spider-mario thank you
masak sorear: I think you should do the release, and not be the least apologetic about not having done as many semantic commits as you would've liked. consider it a "legitimate PR moment", because it is. a minute of everyone's time where they all slow down, read your thoughts on current and future Niecza development, and get excited about Niecza.
sorear: this is *especially* true since Niecza doesn't have a web site. :P 17:47
spider-mario (I feel like I’m repeating myself, does English not have any other expression to thank someone else?)
masak spider-mario: a "tuit" is an idealized piece of productivity.
spider-mario oh, that’s an interesting concept :D 17:48
masak spider-mario: from the phrase "I'll do it when I get around to it."
sorear "here, have a round tuit"
masak ("a round tuit" -- get it?) :)
spider-mario: on Perl conferences and workshops people are known to hand out free tuits. they're round, made of wood, and slightly bigger than a coin.
17:49 shinobicl__ left
spider-mario sounds like something I want. 17:49
sorear wonders what the size of coins in .se is
17:49 shinobicl__ joined
masak sorear: see the table at en.wikipedia.org/wiki/Swedish_krona#Coins 17:51
spider-mario the more I learn about Perl 6, the more I love it 17:53
it’s like the programming language I’ve always been dreaming of
and its community looks amazing :) 17:54
masak glad you like it. :) many of us are here for just those reasons, too. 17:55
sorear masak: ...the pictures aren't showing up for me 17:59
masak curious. not here either. 18:00
though judging by the source, those are not very realistic images anyway. 18:01
just circles showing the approximate color. 18:02
18:03 isBEKaml joined
masak isBEKaml! \o/ 18:03
isBEKaml masak: hi!
sorear the measurements at least are there... about the same as USD coins 18:05
isBEKaml hmm, there has been little change since last niecza build. sorear, big thing cooking? :)
sorear nah, just tuit starved. 18:06
spring break soon :>
isBEKaml \o/ sorear++
Not sure if I can help, anything LHFish?
18:06 BruceZu-CNBJ left
masak spider-mario: "LHF" -- "low-hanging fruit" :) 18:07
spider-mario :D
18:07 BruceZu-home joined
spider-mario I love learning all those expressions 18:08
thanks a lot :D
isBEKaml spider-mario: nah, just hover over those looking like acronyms on irclog.perlgeek.de. You get quite a bunch here. :)
18:08 havenn left
masak oh, right! 18:08
18:08 BruceZu-home left
masak also, you get links into the spec, when people say things like S01:33 18:09
isBEKaml [Coke]: what does the state of pugs look like as far as test runs go? close to 50%? :) 18:11
masak makes supper &
isBEKaml std: my @foo[ ** ]; 18:15
p6eval std 1ad3292: OUTPUT«ok 00:01 110m␤»
isBEKaml std: my @foo[25 xx 42];
p6eval std 1ad3292: OUTPUT«ok 00:01 112m␤»
18:23 shinobicl__ left 18:25 shinobicl__ joined
TimToady masak: two bug reports for the price of one; rakudo and niecza both fail this test for different reasons: gist.github.com/2185853 18:29
niecza because it has not take-rw (though take works because it doesn't properly decontainerize)
rakudo because of the scoping issue in the list comprehension (pretty much any refactoring of the loop and conditional works) 18:30
18:32 MayDaniel joined 18:35 thou left, MayDaniel left
TimToady the take vs take-rw issue is kind of a killer for putting a forest fire up on RC that works under both niecza and rakudo 18:45
masak I've never seen a gather inside of a statement_mod for before. is that spec'd to do what you mean? 18:47
TimToady it's not inside 18:48
masak well, the statement_mod modifies the whole statement, doesn't it?
TimToady the statement that gather starts
statement prefixes are like a big left curly
just as listops are like a left paren 18:49
masak oh, so you're saying it's LHS = (gather EXPR if for)
sorear what -rw forms are needed?
take-rw, return-rw, leave-rw?
TimToady anything that decontainerizes by defualt
sorear I can certainly add those as synonyms for the non-rw forms, until such time as the latter work
colomon is imagining that creating take-rw in niecza is probably very easy, given that regular take already works that way....
TimToady that would be a good temp workaround 18:50
masak: I don't know what you mean by that. gather statement is like gather { statement }, and the modifiers on statement belong to statement in either case, and don't escape to even see the gather 18:51
sorear colomon: that's exactly what I mean 18:53
colomon sorear: yeah, we were both typing the same idea at the same time. :)
sorear: and bonus, it's a new feature for this month's release!
TimToady \o/
dalek ecza: efda208 | sorear++ | lib/CORE.setting:
Add take-rw and return-rw

They are currently synonymous with the undecorated forms, but this won't last forever.
18:56
TimToady oh, and that test case also has a hack because nom doesn't autoviv, which could go away if that were fixed
colomon wishes he knew why his VIsual C++ 2005 project files will not upgrade to Visual C++ 2010. :(
18:57 ggoebel left 19:02 aindilis left 19:03 thou joined 19:05 ggoebel joined 19:10 zipf joined 19:15 mj41 left 19:21 zipf left 19:23 taryk left 19:28 fglock left
masak TimToady: I'm wondering if you haven't just re-discovered rt.perl.org/rt3/Ticket/Display.html?id=109322 19:33
moritz r: /*/
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 1, near "/"␤»
moritz r: my $x = '*'; /<$x>/ 19:34
p6eval rakudo a4c78f: ( no output )
moritz r: my $x = '*'; /q <$x>/
p6eval rakudo a4c78f: ( no output )
moritz r: my $x = '*'; so /<$x>/
p6eval rakudo a4c78f: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in method Bool at src/gen/CORE.setting:8330␤ in sub prefix:<so> at src/gen/CORE.setting:2053␤ in block <anon> at /tmp/xUQbVM7GvY:1␤␤»
moritz r: my $x = '*'; 'a' ~~ /<$x>/ 19:35
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'Integer'␤»
moritz the real question is, why doesn't it parse-error the same way as the original regex?
masak r: '' ~~ / * / 19:36
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'Integer'␤»
masak it does.
question is what exact circumstances trigger it.
moritz r: /* *
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 1, near " *"␤»
moritz r: /* /
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 1, near " /"␤»
moritz r: /*/
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 1, near "/"␤»
moritz hm
what's the difference? 19:38
masak far as I can see, you get the 'rxtype' error (at compile time!) if you include the '~~'.
which makes no sense at all.
"I notice that I am confused." :) 19:39
moritz aye
nqp: /*/
p6eval nqp: OUTPUT«Quantifier quantifies nothing at line 1, near "/"␤current instr.: 'nqp;HLL;Grammar;panic' pc 22008 (src/stage2/gen/NQPHLL.pir:7047) (src/stage2/gen/NQPHLL.pm:329)␤»
moritz r: "" ~~ /*/ 19:41
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 1, near "/"␤»
moritz r: "" ~~ / * /
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'Integer'␤»
moritz so, one needs ~~ *and* whitesapce to trigger it?
r: / * / 19:42
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'Integer'␤»
moritz no, just whitespace
so, probably a parsing bug
masak ah. 19:45
masak updates the RT ticket
moritz++ # rational elucidation
moritz the parsing chain goes like this: TOP -> Nibbler -> termconj -> termish -> quantified_atom -> atom -> metachar:sym<quantifier> 19:47
and all of them are tokens
and none allows whitespace
std: / */ 19:49
p6eval std 1ad3292: OUTPUT«ok 00:01 109m␤»
masak o.O
19:51 havenn joined
moritz it parses the blank as metachars:sigwhitespace 19:52
niecza: / */ 19:53
p6eval niecza v15-6-gefda208: ( no output )
moritz o.O
masak the rot goeth deep.
moritz I tried to see how STD and niecza do it, so that I could replicated that behaviour 19:54
TimToady implementing S05:321 correctly will probably fix that
moritz well, I decided not to that now :-) 19:55
TimToady 'that' as a predicate, yum 19:56
masak .oO( that that! )
TimToady That me again, Sam.
masak "A riff off a non-quote!", he that incredulously. 19:57
moritz just a missing verb
19:57 whiteknight left
TimToady at first I almost said: That sentence one verb 19:58
masak moritz: aye. and quite an easy to make/explain omission.
'to' looks a bit like 'do'.
TimToady in other news, Perl 6 has introduced the 'go do' statement
masak it a Perl 6 statement as an expression... in a Google Go goroutine? :) 19:59
argh, s/it /it evaluates /
the non-verb disease is spreading! 20:00
spider-mario oh, I just saw you are the author of ufo, masak?
masak spider-mario: if you can call it an act of authoring, yes. 20:01
spider-mario yes, I see there are contributions from others 20:02
nice job, everyone :)
moritz well, the aliens did a nice job, no? :-)
20:02 jferrero left
masak there's nothing particularly innovative about ufo. but I think it's my most popular Perl 6 script out there. 20:03
those weird visitors deserve all the credit, of course. and ingy.
20:04 noteventime joined
masak noteventime! \o/ 20:05
colomon ingy is not a weird visitor? 20:07
TimToady it is not weird for ingy to visit 20:08
masak I never feel weird around ingy. 20:09
colomon but ingy is weird, ergo, when he visits, he is a weird visitor
ingy++, btw
20:13 y3llow_ joined, bruges_ joined 20:15 y3llow left, bruges left, y3llow_ is now known as y3llow 20:22 GlitchMr left
masak perl6: say "5 breads" + "2 fish" 20:33
p6eval pugs: OUTPUT«7␤»
..niecza v15-6-gefda208: OUTPUT«Unhandled exception: Cannot parse number: 5 breads␤ at /home/p6eval/niecza/lib/CORE.setting line 1366 (die @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3405 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3407 (NumSyntax.str2num @ 4) ␤ …
..rakudo a4c78f: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \$v, Mu %_!)␤␤ in method Numeric at src/gen/CORE.setting:644␤ in sub infix:<+> at src/gen/CORE.setting:2284␤ in sub infix:<+> at src/gen/CORE.setting:2284␤ in block <anon> at /tmp/MQR1lC3xrk:1␤␤»…
masak perl6: say "5" + "2" 20:34
p6eval pugs, rakudo a4c78f, niecza v15-6-gefda208: OUTPUT«7␤»
masak Rakudo's error message leaves something to be desired, IMO.
colomon +1
masak submits rakudobug 20:35
spider-mario hm, what do I need to do for “prove -e perl6 -r t/” to run t/foo.pl? 20:37
the current output I get is:
Files=0, Tests=0, 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)
Result: NOTESTS
“prove -e perl6 t/foo.pl” works as expected
(runs my tests and Result: PASS) 20:38
masak spider-mario: try renaming it foo.t
by tradition that's how test scripts are named. probably prove goes looking for *.t, too.
spider-mario it worked, thanks :D
20:38 rsimoes left
spider-mario yes, I was having trouble trying to get that tradition. 20:39
masak stick with it. it's not a bad tradition.
spider-mario I meant trying to know what it was.
I’m not against it at all. :p 20:40
sorry if I’m not always clear, English is not my native language
(it’s French)
20:41 plobsing left 20:42 rsimoes joined
masak ah, merveilleux. 20:42
20:46 thou left
moritz yep, our Failure handling is faulty 20:51
moritz replied to a stale chat, sorry 20:52
noteventime masak: ? :) 20:55
20:56 Araq joined
masak noteventime: just glad you're popping by :) 20:58
Araq: hey, welcome back! :) 20:59
Araq thanks
masak takes a brief vacation from his job as #perl6 doorman
Araq didn't find the time to play with perl 6's way of parsing though
masak I hear they're making new time as we speak. 21:00
some people consider that's a mistake, citing inflation as a clear risk if we keep pumping time into an already diluted economy.
Araq well *my* time is limited 21:02
I don't think I'll benefit from the new time
21:03 PacoAir_ joined 21:04 PacoAir left, PacoAir_ is now known as PacoAir 21:05 lichtkind joined 21:07 stdio joined
stdio hello 21:08
is there an explanation of why, for example, perl6 went from print to say, and other such differences?
spider-mario print is still there 21:09
and say was already there in 5.10
Araq so that perl has the shortest "hello world" program
stdio so print will always be there?
Araq 'say' is only 3 chars
stdio Arag haha really?
Araq I think so 21:10
and afaik, 'say' was backported to perl 5
spider-mario I think cat has it, actually
hello.txt : Hello World!
$ cat hello.txt
Hello World!
noteventime masak: I see, thank for the warm welcome. 21:11
stdio a lot of syntax changes in perl6 :\
noteventime thanks*
spider-mario Araq: I can confirm that
$ perl -e 'use v5.10; say "hello"'
hello
(alternatively, you may "use feature 'say'" instead of v5.10) 21:12
(feature 'say' is just part of what v5.10 does)
stdio is there specific reason you guys use 5.10 instead of 5.14? 21:13
masak stdio: who says we use 5.10 instead of 5.14? :) 21:14
stdio some of you :)
spider-mario stdio: “use v5.10” is just a line of code
masak 'say' was introduced in Perl 5.10.
stdio oh
spider-mario and it gives better compatibility than “use v5.14” if you only use say
masak I'd suggest using Perl 5.16 if you have the choice :) 21:15
colomon stdio: print is still there. but say is the more common function, and saving four characters (two in the function and the \n) on something you do all the time is a pretty big win
masak stdio: the big win with 'say', in my opinion, is that you don't have to type "\n" so much.
21:15 havenn left
masak that's just so common. 21:15
and it feels like the language is nice to help you avoid that, with a *shorter* function name that 'print', no less. 21:16
stdio i come from the old days of perl, been out of loop for a while
spider-mario or even “. "\n"” if you do not use string interpolation
(~ instead of . in 6)
masak spider-mario: pro tip: never concatenate-then-print. just use commas ;)
spider-mario (or , if passing multiple arguments to print)
masak right. 21:17
spider-mario yeah, isn’t . kind of the php way? :D
to me, php seems to try being perl and not being perl at the same time 21:18
Araq how about making blocks shorter by using indentation instead of {}? ;-)
spider-mario actually, haskell allows both
I’ve found significant indentation to work greatly in Haskell 21:19
Araq yep
but I guess for perlers indentation based syntax is blasphemy 21:21
stdio what do you mostly code in perl, web apps or admin scripts? backend apps? 21:22
masak depends who you ask. 21:24
Araq: all is fair if you predeclare. but it's never going to be part of the main Perl slang.
Araq I never got that part of perl 21:26
it tries to introduce shortcuts all over the place and yet getting rid of {;} or the sigils was never even considered
lichtkind made link anchors for quote adverbs and there proper linking 21:28
masak Araq: I dispute "never even considered". you'll probably find that most Perl people will happily discuss those two syntactic features, and why they like or don't like them. 21:29
Araq yeah ok, I'm unfair
masak as for me, I happen to like sigils and semicolons.
spider-mario ; is a separator in perl rather than a terminator, which makes it possible to avoid it sometimes.
masak to the point that I'm slightly uneasy about the new \-sigil sigilless variables. 21:30
Araq well masak, you like 'say' does not require \n
masak but I'm going to withhold judgement about them until we have a working implementation.
Araq and it's good because it's a common thing
and I don't disagree btw 21:31
masak Araq: yes, but the sigils and the semicolons do useful work for me.
putting them in makes sense in various ways.
semicolons: I like the freedom of laying out my statements on several lines. if you lose the statement separators, you'll have to start to make compromises with that.
sigils: ever used variable interpolation in strings? it's quite handy. also, the "mini-namespacing effect" with $ @ % &. also, clearly separating nouns from verbs. 21:32
spider-mario interpolation does not require sigils, does it? 21:40
there’s the more general {}
lichtkind 9i dont quite get it 21:46
masak spider-mario: sure. but sigils allow interpolation without {} or any other marker. the sigil is marker enough. 21:47
21:52 fgomez joined
masak "He put the {noun} on the {place} and went back to the {location}." versus "He put the $noun on the $place and went back to the $location." 21:53
spider-mario honestly, I might prefer the first one 21:58
which makes it clearer where interpolated variables stop
masak r: my ($noun, $place, $location) = <clock mantlepiece kitchen>; say "He put the {$noun} on the {$place} and went back to the {$location}." 21:59
p6eval rakudo a4c78f: OUTPUT«He put the clock on the mantlepiece and went back to the kitchen.␤»
masak then it's available to you.
and sometimes it's advisable, for exactly the reason you give. 22:00
22:10 kaare_ left, MayDaniel joined
Araq see you, good night 22:11
22:11 Araq left 22:23 havenn joined 22:25 havenn left, havenn joined 22:41 MayDaniel left 22:46 mj41 joined 22:51 lichtkind left
sorear masak: 22:53
n: my \foo = 5; say foo
p6eval niecza v15-6-gefda208: OUTPUT«5␤»
22:54 mj41 left
masak sorear: woot. what's your impression of them so far? 22:56
23:12 benabik joined 23:25 Timbus left
masak p6: my $x = 31; say :8($x) 23:25
p6eval pugs: OUTPUT«25␤»
..niecza v15-6-gefda208: OUTPUT«Unhandled exception: Numbers may not be passed :base(); if you wanted to render the number in the given base, use $number.base($radix); if you want to treat the number as a string, explicitly coerce it first␤ at /home/p6eval/niecza/lib/CORE.setting line 13…
..rakudo a4c78f: OUTPUT«Nominal type check failed for parameter '$str'; expected Str but got Int instead␤ in sub unbase at src/gen/CORE.setting:4008␤ in block <anon> at /tmp/WxHEFGpJCh:1␤␤»
masak submits LTA rakudobug 23:26
23:26 Timbus joined
spider-mario p6: my \foo = 5; say foo 23:26
p6eval rakudo a4c78f: OUTPUT«===SORRY!===␤Malformed my␤at /tmp/0axah2ZQwu:1␤»
..pugs: OUTPUT«*** ␤ Unexpected "\\"␤ expecting "=", formal parameter, context, ":" or "("␤ at /tmp/iexIhFvdCS line 1, column 4␤»
..niecza v15-6-gefda208: OUTPUT«5␤»
23:27 ruoso left, ruoso joined 23:35 havenn left 23:40 fgomez left
sorear masak: I haven't used them much 23:42
23:47 fgomez joined 23:48 derrazo joined 23:51 thou joined
masak 'night, #perl6 23:51
colomon o/