»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
00:01 Peter__R left 00:02 Peter_R joined 00:04 adu joined
Adriaaan Hmm k, thanks :D 00:05
raydiak_ m: my $b = Buf.new; $b[$_] = (rand*256).Int for ^1e6; $b[10..20]; # if you want them all up-front, this is faster and lighter on memory, at least under moar, than reifying a 1M-elem lazy list
camelia ( no output ) 00:06
raydiak_ m: my $b = Buf.new; $b[$_] = (rand*256).Int for ^1e6; say $b[10..20];
camelia rakudo-moar 243c16: OUTPUT«123 40 187 193 207 221 119 32 58 245 82␤»
raydiak_ m: my $b = Buf.new; $b[$_] = (rand*256).Int for ^1e6; say $b[10..20]; say now - BEGIN now 00:08
camelia rakudo-moar 243c16: OUTPUT«73 31 57 102 32 3 210 95 126 206 237␤10.3548619␤» 00:09
jercos is there currently a way to work with arbitrary FDs in rakudo-moar?
e.g., ./something.pl 3</tmp/foo, can I read from FD 3, and close it when I'm done? 00:10
I mean, specific to Linux with a mounted /proc I know I can open /proc/PID/fd/3 and get a dup of it 00:11
00:16 gfldex left
masak jercos: not to my knowledge. 00:16
raydiak_ would nativecall to posix functions be more portable?
jercos Probably, at least within Unix-like platforms. 00:17
That would also allow for closing the FD, which to my knowledge can't be done with /proc
raydiak_ I think the notion of file descriptors like that pretty much rules out windows anyway, no?
geekosaur I don't think the point was /proc 00:18
Adriaaan thanks raydiak_
geekosaur perl5 can do open my $fh, '<&3' on both posix and windows
raydiak_ hm
what does that do?
yw Adriaaan :) 00:19
jercos If that dups (which it looks like it should), then it's still not useful for closing the original file descriptor
which still leaves nativecall as the best option for that specific need
I'll uh, give it a test :p
geekosaur that won't close the original, no 00:20
if you want sysopen, you're looking at nativecall. probably a wrapper that does the posix or windows versions as appropriate 00:21
perl5 probably should have done that except that I don't think the machinery was in place for that kind of thing when sysopen and friends were added 00:22
(which iirc was lateish in perl3)
jercos heh, well, `our sub sysclose(int32) returns int32 is native("libc.so.6") is symbol("close") { * }` works fine for the moment :) 00:28
00:37 fil_ joined
masak fil_! \o/ 00:37
fil_ hey 00:38
question
So I'm looking at github.com/supernovus/exemel/blob/...ib/XML.pm6
thinking about how to print out indented XML
and I see that I really just want to shim a few lines of code into a couple of methods
in that class
masak *nod*
fil_ is there some kind of aop I could use to do that?
masak I would just use multi subs. 00:39
why complicate life, eh?
multis are awesome for this.
AOP solves all your problems, but at the cost of someone or something's sanity. 00:40
we like sanity
(believe it or not)
fil_ so the method I want to modify is XML::Element::Str() 00:41
masak oh, an existing method.
I think my multi approach is still viable 00:42
00:42 Mouq joined
fil_ this method calls itself recursively 00:43
so it's not clear to me how I would use multi to solve it...
masak dang :/
no
Mouq .wrap-ing? 00:44
fil_ I thought I saw some AOP type stuff in the docs
masak it exists
doesn't mean I endorse it
fil_ I think they're called Phasers 00:45
masak augmenting stuff is anti-social
Mouq or doing an `augment` and then doing $indent ~ nextsame
skids No phasers are flow control.
If you can get the rest of the classes to use a subclass of XML::Element, you could just subclass and supply your own .say.
I mean .Str 00:46
fil_ It's a pretty big method
And I only need to change a couple of lines
hmmm
maybe I need to take a different approach
it just seems like a waste to not use the XML structure and recursive print already done...
I guess I could just treat it as a string 00:47
I was hoping there would be some way to intercept the call of XML::Element::Str() and then inject a few lines of code... 00:48
masak doesn't consider most AOP to be good OOP 00:50
fil_ Well it's not that big a method. Only 30 lines. Can I overwrite it?
masak `augment class`
fil_ I agree AOP makes for horribly complicated code that's impossible to follow / debug.
masak it causes a power struggle between auths of classes 00:53
fil_ Can I overwrite a method using augment, or do I need to use supercede?
I mean supersede
masak supersede replaces the class entirely 00:54
fil_ I just need to replace a method
masak yes
I believe `augment` should work for your use case. 00:58
last time I tried, it didn't (and jnthn claimed that was intended)
even if it did work, I know of no good way to refer to the method being replaced from the replacing one 00:59
no bad way either, for that matter
fil_ augment class XML::Element { multi Str() { 01:00
that takes
but within the method I get the error: Variable $.name used where no 'self' is available
interesting...
masak heh
Mouq multi makes a sub
you want multi method 01:01
masak yes
fil_ I don't know of my multi would take precedence over the original sub, but it won't compile because it doesn't have a self... 01:02
masak you don't want a sub at all 01:03
skids ^^ What Mouq said
masak `self` is not available in a sub
(or rather, outside of a method)
fil_ ===SORRY!=== Cannot have a multi candidate for 'Str' when an only method is also in the packa ge 'XML::Element' 01:04
01:04 atroxaper joined
masak that'd be the original method 01:04
fil_ :-) 01:05
masak it's `only`, meaning not `multi`
fil_ Well I guess that's a good thing that you can't override other classes methods...
masak meaning the original author did not intend for you to add a `multi` afterward 01:06
yes, but it kinda makes `augment` a lot less powerful
fil_ ok I guess it's plan B
just forget the XML structure and treat it as a string match/replace problem 01:07
masak or just copy/modify the logic in your own routine
01:08 atroxaper left
fil_ I'd need to do the whole class because of the recursion 01:08
I want to make something other ppl can use 01:09
raiph fil_: did you see irclog.perlgeek.de/perl6/2015-01-24#i_9997806? 01:11
yoleaux 23 Jan 2015 12:53Z <psch> raiph: i apparently missed fixing marshalling of List-y types for non-overloaded methods. that's the error you're seeing with "method/update/([B)V"
raiph fil_: I think FROGGS was suggesting that A) you can use his new module and B) .gist is a better place for indenting logic than .Str 01:13
fil_ looking at XML::LibXML now 01:16
FROGGS says "will soon be able to prettify XML"
How soon is soon?
what does "gist" mean? 01:18
01:18 prevost left
raiph Returns a string representation of the invocant, optimized for fast recognition by humans. 01:18
japhb So I'm thinking of pitching Perl 6 to people who are on the fence about it as an excellent language for prototyping, because of the multi-paradigm aspect that makes that statement true almost whatever the "final" language will be, combined with much more compact syntax than most other languages, with the follow-up that they may find the prototype is good enough to not need total replacement (at least in the post-6.0.0 era). Thoughts? 01:19
fil_ I'd investigate how mature the bindings are to front-end and db frameworks 01:21
japhb fil_: Meaning, without mature for those two things, it's not ready to pitch as a prototyping language? 01:22
fil_ gist() has the same problem as Str() so I can't override it. I'm making good progress with the string approach. I won't bother sharing it as it sounds like a more permanent solution is coming.
colomon japhb: I’ve had some decent luck prototyping in p6. Though in the biggest case the project got canceled before I could start mangling it into C++... 01:23
fil_ I'm new to perl6, so I'm not a good person to ask. But in my experience, prototyping needs speed, and speed needs no-brainer bindings to front-end and back-end.
skids Also now we have Inline::Perl5 to take the pressure off the ecosystem needs a bit.
fil_ node.js / angular is good for prototyping. 01:24
it has it all
it could be that perl6 has it too
perl6 is a dream language if you're doing parsing / integration type work
01:25 fil_ left
masak yep. 01:26
'night, #perl6
colomon o/
japhb fil_: OK, good input, thank you. 01:29
skids: Decent point. Last I looked it could use a little more sugar to make it really smooth, but as a technology, very cool. 01:30
01:33 agentzh left
Peter_R I often see a lot of cool features of p6 using very unreadable looking syntax though :s 01:34
I hope there is a longer hand, more self explanatory way to use those things 01:35
01:38 yeahnoob joined 01:43 telex left
skids Peter_R: people like to show off, is all. 01:44
01:44 telex joined
Peter_R Ah, thank goodness 01:45
01:55 raiph left
vendethiel Peter_R: right. it's just a "I can do it that way, lol" like we were doing with indirectly named calls earlier 02:00
02:02 Peter_R left, Peter_R joined
japhb Peter_R: Yeah, generally you have a pretty smooth knob for complexity per character of code in Perl 6. We who have been here a while tend to use shorthand, or even as mentioned above play around and show off. But you can definitely be more verbose and approachable to beginners, while *still* being more compact than many other languages. 02:05
02:06 Peter_R left, Peter_R joined 02:09 Peter_R left 02:12 Peter_R joined 02:13 Sysaxed` left
Mouq moritz: So I'm going to manually index the various bits from regexes.pod via X<|> (+, *, <[ ]>, <-[ ]>, etc.)... my question is what category should these things be? "Regex Syntax"? "Regex Metacharacter"? My concern is that the category name(s) should be pithy so it actually fits in the search suggestion list 02:17
skids I dunno "Rx Slang?" 02:24
Mouq "℞ Metachar" seems a little far 02:27
02:35 lsm-desktop left 02:55 atroxaper joined 02:59 atroxaper left 03:00 vendethiel left 03:02 vendethiel joined 03:12 Ben_Goldberg joined 03:15 espadrine left 03:16 BenGoldberg left 03:18 Patterner joined 03:22 Psyche^ left 03:23 vendethiel left 03:27 chenryn joined, vendethiel joined 03:28 skids left 03:30 skids joined 03:31 jluis_ joined 03:49 noganex joined
dalek c: a3701a0 | Mouq++ | lib/Language/regexes.pod:
Index the various bits of regex syntax
03:49
c: 36a7751 | Mouq++ | lib/Perl6/TypeGraph/Viz.pm:
Fix deprecated code warning (uniq -> unique)
03:51 noganex_ left 04:07 chenryn left 04:11 vendethiel left
TimToady m: say (1..100000).roll(1000) 04:24
camelia rakudo-moar 243c16: OUTPUT«95331 55844 33254 83882 47805 18876 76896 10775 62979 92343 18244 38064 40059 4978 35662 48270 68573 3512 32207 65144 87412 39775 86642 1309 33914 2836 62423 57913 74684 30618 89642 72568 67256 56071 41681 15280 24688 77655 89858 40629 87495 55608 52267 14…»
TimToady that's probably a better way to produce lots of random integers
I guess the original wanted (^100000).roll(1000000) or so 04:25
wrt the xml method, I'd want to know what in the design prevents overriding/wrapping a method via normal subclassing 04:29
something is behaving non-virtually to make that difficult, it would seem 04:30
04:38 Ben_Goldberg left 04:41 BenGoldberg joined 04:53 chenryn joined 05:18 vendethiel joined 05:34 jluis_ left 05:40 erdic left 05:41 vendethiel left
dalek kudo/coerce-multi: 9faa0e7 | hoelzro++ | src/ (2 files):
Start on implementation of COERCE

COERCE is a multi that takes a value and a type object; users wishing to define special semantics for how a value of a given type is coerced to other type may implement the appropriate candidate for COERCE to perform that coercion. The default is call a method of the same name as the type object's class on the value.
This implementation doesn't work on; it fails a few spec tests, because sometimes, it seems, COERCE refers to a Null repr?
05:44
hoelzro so I started working on an implementation of COERCE, per the discussion last week 05:45
unfortunately, some of the spec tests fail on my code; it seems that in BOOTSTRAP.nqp, it can't find COERCE, which I defined in Any.pm
the line in question is this: github.com/rakudo/rakudo/blob/coer....nqp#L2649
if someone could help me diagnose the problem, I'd be grateful! 05:46
sleep &
moritz Mouq: I'd index them just as "regex \N" or so 05:50
Mouq moritz: Hmm, yeah 05:52
dalek c: 1c80bad | Mouq++ | lib/Language/regexes.pod:
Classify regex metachars as "regex". moritz++
05:53
05:54 adu left
moritz just for the record, this is the first time I'm doing such big/complex documentation project, so my opinion is as good as any other 05:55
05:58 vendethiel joined 05:59 mr-foobar left
Mouq moritz: Right, but a) you're really good at documentation b) I hadn't considered just using "regex", kind of an "Oh, duh" moment there 06:08
06:21 vendethiel left 06:31 bjz joined 06:32 kurahaupo joined 06:33 atroxaper joined 06:36 BenGoldberg left 06:40 atroxaper left, xfix joined 06:48 bjz left 06:50 erdic joined 06:57 erdic left, Rounin joined 07:00 RPu left 07:03 erdic joined 07:12 yeahnoob left 07:13 dj_goku left 07:18 jakesyl left 07:20 dj_goku joined, dj_goku left, dj_goku joined 07:22 FROGGS joined, vendethiel joined 07:25 kaleem joined, Mouq left 07:26 gfldex joined 07:28 darutoko joined 07:45 vendethiel left 07:46 bjz joined 07:50 gfldex left 07:57 jluis left 08:04 prime left 08:05 prime- joined
[Tux] FWIW The Nil is only droppen on assignment 08:09
08:09 vendethiel joined
[Tux] m: (1,Nil,2).perl.say 08:09
camelia rakudo-moar 243c16: OUTPUT«(1, Nil, 2)␤»
[Tux] m: my@x=(1,Nil,2);@x.perl.say 08:10
camelia rakudo-moar 243c16: OUTPUT«Array.new(1, 2)␤»
08:12 zakharyas joined 08:25 rindolf joined 08:28 xinming left
dalek c: 2385768 | moritz++ | lib/Language/regexes.pod:
Prevent a newline from breaking apart a code block
08:29
moritz feedback to the pod folks: I find highly annoying that newlines in indented code blocks break up that code block into two
08:32 yeahnoob joined, vendethiel left, xinming joined, virtualsue joined 08:33 rurban_ joined 08:38 vendethiel joined 08:40 daxim_ left 08:41 yeahnoob left 08:43 yeahnoob joined 08:44 abraxxa joined 08:46 yeahnoob left 08:49 chenryn left 08:51 jluis joined 09:00 vendethiel left 09:09 kurahaupo left 09:10 yeahnoob joined
dalek kudo/nom: da6755b | lizmat++ | src/core/Any.pm:
Fix adverbed slices on the JVM

Apparently, doing an nqp::atkey on an key that does not exist, creates some internal confusion on the JVM, causing adverbed slice breakage after my last optimization in that area.
09:13
09:13 brrt joined
brrt \o 09:13
just a thought that occured to me; in python something i'd really want is a shorthand for 'does this compute without raising an exception, and if so, what is it's value'.... 09:14
that's what failures are for, aren't they
nwc10 are you prepared to wait forever for your answer? :-) 09:16
I believe a certain Turing chap would have advice for you if you wanted to say "No"
brrt hmm
that's not really the kind of thing i'm aiming at
nwc10 so, "not sure" is an acceptable answer from your function? 09:17
brrt if this only applies to guaranteed-to-terminate functions, like most coercions are, then i'm quite happy
m: my $x = "foo"; say $x.Int;
camelia rakudo-moar 243c16: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏foo' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:14131␤ in method Int at src/gen/m-CORE.setting:6334␤ in block <unit> at /tmp/AISzqMEl5J:1…»
brrt right, and that'd be something where i'd want a softer version, something that said '.IntPls' 09:18
:-)
or even: my $x = please $y.Int; 09:19
which i'd think be the perlish thing to do 09:20
09:20 chenryn joined, andreoss joined
brrt and my suspicion is that this is already in the language and that i don't know it 09:20
FROGGS m: my $x = "foo"; say $x.?Int; 09:24
camelia rakudo-moar 243c16: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏foo' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:14131␤ in method Int at src/gen/m-CORE.setting:6334␤ in block <unit> at /tmp/nCsrdHsP2x:1…»
FROGGS m: my $x = "foo"; say $x.?hurz;
camelia rakudo-moar 243c16: OUTPUT«Nil␤»
FROGGS m: my $x = "foo"; say $x.hurz;
camelia rakudo-moar 243c16: OUTPUT«No such method 'hurz' for invocant of type 'Str'␤ in block <unit> at /tmp/lbuCWDQvQ_:1␤␤»
FROGGS m: my $x = "foo"; say $x.Int.WHAT; 09:25
camelia rakudo-moar 243c16: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏foo' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:14131␤ in method Int at src/gen/m-CORE.setting:6334␤ in block <unit> at /tmp/QCSjRVUTD3:1…»
FROGGS so, it dies instead of failing
brrt m: my $x = "foo"; try { say $x.Int; } CATCH { say "OH NO"; } 09:26
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/0D481pW9JV␤Two terms in a row␤at /tmp/0D481pW9JV:1␤------> my $x = "foo"; try { say $x.Int; } ⏏CATCH { say "OH NO"; }␤ expecting any of:␤ infix stopper␤ …»
09:26 mvuets joined
brrt ugh 09:26
FROGGS m: my $x = "foo"; try { say $x.Int; CATCH { say "OH NO"; } }
camelia rakudo-moar 243c16: OUTPUT«OH NO␤Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏foo' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:14131␤ in method Int at src/gen/m-CORE.setting:6334␤ in block <unit> at /tmp/SNMDAC…»
FROGGS m: my $x = "foo"; try { say $x.Int; CATCH { default { say "OH NO" } } }
camelia rakudo-moar 243c16: OUTPUT«OH NO␤»
FROGGS hmmm 09:27
there was an RT ticket about that IIRC
brrt about which of them 09:28
FROGGS about not catchable exceptions and .?foo misbehaviour
09:30 dakkar joined
psch irclog.perlgeek.de/perl6/2014-10-25#i_9564960 # this is related 09:32
coercion passes through CATCH for some reason currently, which is buggy
i'm not aware of any .?-misbehavior
#123053 a ticket 09:33
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123053
09:37 yeahnoob left 09:47 Kristien joined
Kristien fortune just told me a quote from TimToady 09:47
does this mean today is my lucky day?
moritz Kristien: it means today is your Perl 6 day :-) 09:52
Kristien :D
09:57 espadrine joined 09:58 yeahnoob joined 10:03 kaare_ left, kjs_ joined
brrt oh, try as expression already makes a failure 10:04
that's more sensible than my suggestion
10:04 kaare_ joined
psch hm, &die goes past try but fail doesn't, except in "foo".Numeric..? 10:09
10:09 Kristien left
psch m: sub foo { die "bar" }; say try foo; 10:10
camelia rakudo-moar 243c16: OUTPUT«Nil␤»
psch m: class Foo { method Numeric { fail "can't .Numeric Foo!" }; }; my $foo = Foo.new; say (try $foo.Numeric).WHAT; say ($foo.?Numeric).perl
camelia rakudo-moar 243c16: OUTPUT«(Failure)␤Failure.new(exception => X::AdHoc.new(payload => "can't .Numeric Foo!"))␤»
psch m: class Foo { method Numeric { die "can't .Numeric Foo!" }; }; my $foo = Foo.new; say (try $foo.Numeric).WHAT; say ($foo.?Numeric).perl
camelia rakudo-moar 243c16: OUTPUT«Nil␤can't .Numeric Foo!␤ in method Numeric at /tmp/9AV_wkjPUF:1␤ in block <unit> at /tmp/9AV_wkjPUF:1␤␤»
psch i'm confused :P
10:12 fhelmberger joined
psch m: sub foo { fail "bar }; say try foo 10:14
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/2X3zVQPoAN␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/2X3zVQPoAN:1␤------> sub foo { fail "bar }; say try foo⏏<EOL>␤ expecting any …»
psch m: sub foo { fail "bar" }; say try foo
camelia rakudo-moar 243c16: OUTPUT«bar␤ in method gist at src/gen/m-CORE.setting:14135␤ in sub say at src/gen/m-CORE.setting:16907␤ in block <unit> at /tmp/F0h4_hdEjv:1␤␤»
psch which one of sub and method is wrong there? it seems to me like that should be consistent...
in sub, fail goes through try, in method die goes through try
10:19 pecastro joined 10:28 osfameron left 10:29 osfameron joined 10:32 kjs_ left 10:51 vendethiel joined 10:59 virtualsue left 11:02 telex left 11:04 telex joined 11:05 vendethiel left 11:12 kjs_ joined 11:18 vendethiel joined 11:22 Kristien joined
lizmat m: say (^10).map: { $_ if $_ > 5 } # this idiom will not work post GLR, right ? 11:25
camelia rakudo-moar 243c16: OUTPUT«6 7 8 9␤»
lizmat m: say (^10).map: { next unless $_ > 5; $_ } # a better idiom? 11:26
camelia rakudo-moar 243c16: OUTPUT«6 7 8 9␤»
vendethiel m: say (^10).grep: { $_ > 5 }; # the better idiom?
camelia rakudo-moar 243c16: OUTPUT«6 7 8 9␤»
lizmat vendethiel: yes, but grep is built on top of map :-) 11:27
vendethiel that seems like an implementation detail, tho :)
lizmat in any case, it's not really an answer to my question :-)
andreoss m: say (^10).map: { last if $_ > 5 ; $_ } 11:28
camelia rakudo-moar 243c16: OUTPUT«0 1 2 3 4 5␤»
lizmat I think the first case depends on Nil disappearing in lists when it shouldn't 11:29
Kristien vendethiel: what did you mean by flattening yesterday? 11:30
vendethiel Kristien: flattening in general 11:31
Kristien could you give an example?
vendethiel m: for (1, (2, (3, (4)))) { .say }
camelia rakudo-moar 243c16: OUTPUT«1␤2␤3␤4␤»
masak good afternoon, #perl6
Kristien vendethiel, Oh I see. 11:32
m: for [1, [2, [3, [4]]]] { .say } 11:33
camelia rakudo-moar 243c16: OUTPUT«1 2 3 4␤»
Kristien m: for [1, [2, [3, [4]]]] { .gist.say }
camelia rakudo-moar 243c16: OUTPUT«1 2 3 4␤»
Kristien :O
psch Kristien: that's subject to change, see pmthium.com/2014/10/apw2014/
eh, wait
it's not, op-ish for stays flattening iirc 11:34
anyway, pmichaud++'s blog has details about how we rather want it
vendethiel Kristien: [] doesn't flatten 11:35
m: for [1, [2, [3, [4]]]] { .perl.say; say "||";} 11:36
camelia rakudo-moar 243c16: OUTPUT«[1, [2, [3, [4]]]]␤||␤»
Kristien oh right should use .perl not .gist
psch m: my @a = 1,2,3; my @b = 0, @a; .perl.say for @b
camelia rakudo-moar 243c16: OUTPUT«0␤1␤2␤3␤»
psch m: my @a = 1,2,3; my $b = [0, @a]; .perl.say for $b 11:37
camelia rakudo-moar 243c16: OUTPUT«[0, 1, 2, 3]␤»
psch m: my @a = 1,2,3; my $b = [0, @a]; .perl.say for @$b
camelia rakudo-moar 243c16: OUTPUT«0␤1␤2␤3␤»
11:39 kjs_ left
masak for some reason, no other language has looked at Perl and gone "wow, flattening! gotta copy that feature!"... 11:39
vendethiel yeah, for "some" reason ;-)
Kristien JavaScript did it with futures
and it turned out to be a horrible idea in that case
masak Kristien: really? url?
Kristien goodbye generic code
psch lizmat: how do you expect (^10).map: { $_ if $_ > 5 } do turn out post GLR? having ^10 inside $_ and returning the whole Range? 11:40
Kristien masak: robotlolita.me/2013/06/28/promises-...similation
lizmat psch: good question: I would need to look at pmichaud's post again :-) 11:41
Kristien so instead of having map and flatMap (which you should), you have then, which does both depending on the return value of the callback has a property with a certiain name
s/depending on/depending on whether/ 11:42
lizmat psch: that would iterate over a single range object 11:44
m: say (^10).flat.map: { next unless $_ > 5; $_ } # need to flatten the range post GLR
camelia rakudo-moar 243c16: OUTPUT«6 7 8 9␤»
lizmat m: say (^10).for: { next unless $_ > 5; $_ } # would still flatten post GLR 11:45
camelia rakudo-moar 243c16: OUTPUT«6 7 8 9␤»
psch lizmat: that's how i read it as well, with (^10).for: { ... } probably being the best candidate for a "new" idiom
lizmat psch: yep 11:46
psch (^10, 10..^20).map: { #`[ work on two Ranges ] }
i have that right too, right? :)
lizmat psch: yeah, that's the idea 11:49
masak Kristien: oh, that discussion. 11:57
Kristien yes :D
11:57 Kristien left
masak Kristien: I mentally summarized it as "the JavaScript world split between formalists (in minority) and people who just want to get stuff done" 11:57
I'm usually on the formalists' side, and they usually end up being "right". 11:58
but I don't fully grok what this discussion was about, despite reading lots about it.
including one gargantual github issue in some promises repo.
dalek kudo/nom: f65b4c0 | lizmat++ | src/core/Any.pm:
Fix post-GLR mapping behaviour

  (^10).for: { $_ if $_ > 5 } will not work post-GLR: the grep family and all of
the filtering slice adverbs were depending on this behaviour.
11:59
11:59 chenryn left 12:04 BenGoldberg joined, kaleem left 12:10 virtualsue joined
masak gargantuan* 12:22
lizmat would it ever make sense to use "gather map {}, @list" instead of "gather for @list {}" ? 12:25
masak lizmat: that's hard to answer.
lizmat I mean, inside the map we do a conditional take 12:26
masak lizmat: but I do have a "useless use of gather/take" meme, which sometimes makes me replace "gather/take" with just "map".
lizmat seems like that's mixing metaphors
masak yes, that's my feeling too.
but I wouldn't go so far as outlawing it, or saying it would never make sense.
for example, conceivably, the `map` might compute something, and *also*, at the same time, emit stuff through `take`. 12:27
lizmat yeah, but it doesn't in the case I'm looking at
masak oh, I didn't know you had a case. you said "ever", which made me go hunt for contingenceis. 12:28
contingencies*
lizmat yeah, ok, so there *might* be a case
masak also, you managed to trigger my "no-one will *ever* need this" fallacy alarm.
lizmat hehe 12:29
ok, fair enough
ab5tract lizmat: are you saying that the two are functionally equivalent? i think flattening will be the "list context"-like gotcha for perl6 .. so when it is possible to remove equivalent approaches, it reduces the strain on the programmer to remember whether this different way of doing a thing actually does anything differently, or if its just a different way to say it 12:31
dalek kudo/nom: d671638 | lizmat++ | src/core/List.pm:
Stop mixing the metaphors!

Commit 52262988372 added a gather to fix $a.= uniq. But that made the map a bit bogus. So use a loop instead of a map, for clearer code. This does not seem to have any efficiency effects.
12:32
ab5tract for instance, is map { }, @things the same as map { } <=== @things ? i think there is an optimal level (N) of linguistic variety after which the advantages of saying things N+Y different ways diminish 12:36
ab5tract might be committing heresy? 12:37
12:38 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
psch ab5tract: ==> and <== are strictly lazy, while map { }, @list is mostly lazy 12:40
hoelzro good morning, #perl6!
masak \o 12:41
psch hoelzro \o
ab5tract: that distinction is NYI though, afair
ab5tract psch: so mostly lazy would be, "lazy until demonstrably finite" ? 12:42
psch S07:Levels of laziness
synopsebot Link: perlcabal.org/syn/S07.html#Levels_of_laziness
ab5tract hiya hoelzro :)
ab5tract notices that synopsebot is still linking to perlcabal
psch ab5tract: so mostly lazy is "eager until encountering something lazy" 12:43
* + caveats, i suppose
masak ab5tract: github.com/tadzik/synopsebot
hoelzro is there a special thing one has to do when invoking Perl 6 multis from NQP land? 12:44
masak don't think so
hoelzro I'm trying to implement my COERCE idea, but some of the spec tests fail because of "Cannot invoke this object (REPR: Null, cs = 0)" 12:45
psch hoelzro: for the deprecation for :from<java> i got the sub with $*W.find_symbol, but i don't think you have $*W in BOOTSTRAP
ab5tract okay, i'll withhold tuits from worrying about levels of laziness, map {} vs .map, etc until after the GLR
hoelzro hmm
psch hoelzro: you could try bindhllsym and getcurhllsym, like it's done for the ModuleLoader, but i don't know how sensible that is or if it actually works 12:46
*gethllsym rather, getcurhllsym does lexical lookup i think 12:47
12:48 Kristien joined
FROGGS the 'cur' is about the current high level language, like 'nqp' or 'perl6' 12:48
psch ah ok
12:49 chenryn joined
Kristien Should .perl use fully qualified names? 12:49
12:49 chenryn left 12:50 kaleem joined
Kristien m: module M { class C { } }; M::C.new.perl 12:53
camelia ( no output )
Kristien m: module M { class C { } }; M::C.new.perl.say
camelia rakudo-moar 243c16: OUTPUT«C.new()␤»
Kristien hmm
12:53 chenryn joined 12:54 kjs_ joined, kjs_ left
psch m: { die "foo"; CATCH { default { .perl.say } } } 12:54
camelia rakudo-moar 243c16: OUTPUT«X::AdHoc.new(payload => "foo")␤»
psch m: module M { class C { method perl { "M::C.new()" } } }; M::C.new.perl.say 12:55
camelia rakudo-moar 243c16: OUTPUT«M::C.new()␤»
12:56 test123456 joined
ab5tract m: module Q { my $deep = 15; my sub ex( $x ) { $deep * 15 }; our sub give_ex { &ex } }; my $sub = Q::give_ex; $sub(88).say; 13:03
camelia rakudo-moar 243c16: OUTPUT«225␤»
psch m: module M { class C { } }; my $c = EVAL M::C.new.perl; say $c.perl # it does break the .perl contract like this 13:04
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling EVAL_0␤Undeclared name:␤ C used at line 1␤␤»
ab5tract does the value of $deep get inlined into &ex? or does it do a lexotic lookup?
13:05 BenGoldberg left 13:09 test123456 left 13:10 chenryn left 13:11 chenryn joined, Kristien left 13:14 sqirrel joined 13:15 andreoss left, andreoss joined
ab5tract and how could i determine which of the two is happening, if possible? 13:16
13:22 atroxaper joined, atroxaper left
ab5tract masak: that link implies that synopsebot already should be pointing to design.perl6.org 13:24
13:29 adu joined 13:30 GREATFOLLOW joined 13:31 kaare_ left
GREATFOLLOW hello guys 13:31
lizmat GREATFOLLOW o/ 13:32
13:33 GREATFOLLOW left 13:36 slavik1 left
hoelzro thanks for the help, everyone! I got it working 13:39
dalek kudo/coerce-multi: 0ef2b67 | hoelzro++ | src/ (2 files):
Start on implementation of COERCE

COERCE is a multi that takes a value and a type object; users wishing to define special semantics for how a value of a given type is coerced to other type may implement the appropriate candidate for COERCE to perform that coercion. The default is call a method of the same name as the type object's class on the value.
This implementation doesn't work on; it fails a few spec tests, because sometimes, it seems, COERCE refers to a Null repr?
13:40
13:40 kjs_ joined
ab5tract hoelzro++ 13:42
13:42 chenryn left
dalek kudo/coerce-multi: c3de05f | hoelzro++ | src/ (2 files):
Start on implementation of COERCE

COERCE is a multi that takes a value and a type object; users wishing to define special semantics for how a value of a given type is coerced to other type may implement the appropriate candidate for COERCE to perform that coercion. The default is call a method of the same name as the type object's class on the value.
13:44
hoelzro sorry for the spam
the part of the commit message saying how it doesn't work was no longer relevant =)
13:48 sqirrel left 13:50 btyler left
dalek ast/coerce-multi: 03ed810 | hoelzro++ | S02-types/COERCE.t:
Start implementing tests for COERCE
13:53
13:54 Kristien joined
ab5tract must have been really tired when reading the lexotic stuff in the synopses, as it is not related at all to his earlier question 14:00
i was using the perl6 spec as bed time reading over the holidays, which clearly is a double-edged sword ;) 14:01
dalek kudo/coerce-multi: 27c6f9a | hoelzro++ | t/spectest.data:
Use new COERCE test in roast
14:03
14:08 btyler joined
dalek ecs/newio: e315952 | util++ | S (10 files):
Fix typos.
14:09
ecs/newio: 2f12be0 | lizmat++ | S (10 files):
Merge branch 'master' into newio
Kristien can you create a lazy list from a first element and a function that returns a lazy list that is the tail? 14:10
lizmat isn't that what ... is all about ? 14:11
like the fibonacci sequence?
Kristien ... is stub 14:12
lizmat m: my @fib := 0, 1, *+* ... *; say @fib[^20]
camelia rakudo-moar 243c16: OUTPUT«0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181␤»
lizmat m: my @fib := 0, 1, {$^a+$^b} ... *; say @fib[^20] 14:13
camelia rakudo-moar 243c16: OUTPUT«0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181␤»
lizmat m: my @fib := 0, 1, -> $a, $b {$a+$b} ... *; say @fib[^20] 14:14
camelia rakudo-moar 243c16: OUTPUT«0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181␤»
Kristien what does * do there?
lizmat at the end? represent Infinity
m: my @fib := 0, 1, -> $a, $b {$a+$b} ... Inf; say @fib[^20]
camelia rakudo-moar 243c16: OUTPUT«0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181␤»
lizmat m: my @fib := 0, 1, sub ($a, $b) {$a+$b} ... *; say @fib[^20] 14:15
camelia rakudo-moar 243c16: OUTPUT«0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181␤»
ab5tract well, technically it curries to the provided index, right? which is functionally the same as Inf
Kristien are Code objects special in lists?
lizmat in the context of the ... list generator, yes
as opposed to the .. Range operator
psch m: say &infix:<...>.signature
camelia rakudo-moar 243c16: OUTPUT«use of uninitialized value $name of type Any in string context in block <unit> at /tmp/vNqhpz6pFL:1␤␤:(Any |)␤»
psch m: say &infix:<...>.^signature 14:16
camelia rakudo-moar 243c16: OUTPUT«No such method 'signature' for invocant of type 'Perl6::Metamodel::ClassHOW'␤ in block <unit> at /tmp/yK9EmOT0_o:1␤␤»
Kristien ohh I found it doc.perl6.org/language/operators#infix_...
psch huh
Kristien I was looking at yada yada yada :P
vendethiel haha 14:17
overloaaading
psch wonders about an infix:<???> and infix:<!!!> to complement the stubby terms 14:18
vendethiel m: class infix:<foo> {}; 5 foo 6
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/CExhyTDCGF␤Two terms in a row␤at /tmp/CExhyTDCGF:1␤------> class infix:<foo> {}; 5 ⏏foo 6␤ expecting any of:␤ infix stopper␤ infix or meta-infix␤ …»
vendethiel :P
psch ...class?
vendethiel infix classes are fun!
Kristien nice
vendethiel but they don't exist.
Kristien m: say 1, 2, 4 ... 257; 14:19
camelia rakudo-moar 243c16: OUTPUT«1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 4294967296 8589934592 17179869184 34359738368 68719476736…»
Kristien most interesting 14:20
vendethiel it's not trying to guess an end
psch the RHS of ... is smartmatched
vendethiel m: say 1, 2, 4 ... * > 257
camelia rakudo-moar 243c16: OUTPUT«1 2 4 8 16 32 64 128 256 512␤»
vendethiel m: say 1, 2, 4 ...^ * > 257
camelia rakudo-moar 243c16: OUTPUT«1 2 4 8 16 32 64 128 256␤»
vendethiel m: say 1, 2, 4 ...^^ * > 257
camelia rakudo-moar 243c16: OUTPUT«1 2 4 8 16 32 64 128 256␤»
vendethiel uhm.
m: say 1, 2, 4 ...^^^^^ * > 257 14:21
camelia rakudo-moar 243c16: OUTPUT«1 2 4 8 16 32 64 128 256␤»
Kristien Oh I thought it'd use <= :P
vendethiel right...
14:21 rindolf left
psch m: say "a", "c", "e" ... A 14:21
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/n_ha5IYpWl␤Undeclared name:␤ A used at line 1␤␤»
psch m: say "a", "c", "e" ... "A"
camelia rakudo-moar 243c16: OUTPUT«a c 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 c…»
psch eh, right...
vendethiel m: say +("a", "c", "e" ... "A") 14:22
psch vendethiel: timeout
vendethiel :-)
camelia rakudo-moar 243c16: OUTPUT«(timeout)»
Kristien it seems dangerous to have such behavior
psch m: say ("a", "c", ... "aa").elems 14:23
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/zppNNwuaqA␤Comma found before apparent series operator; please remove comma (or put parens␤ around the ... listop, or use 'fail' instead of ...)␤at /tmp/zppNNwuaqA:1␤------> say ("a"…»
psch m: say ("a", "c" ... "aa").elems
camelia rakudo-moar 243c16: OUTPUT«26␤»
Kristien 1, 4 ... 256; is ambiguous
it could be +3 or *4
psch m: say 1, 4 ... 256;
camelia rakudo-moar 243c16: OUTPUT«1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 151 154 157 160 163 166 169 172 175 178 181 184 187 190 193 196 199 202 205 208 211 214 217 …»
lizmat Kristien: I think there are rules specced for that
psch m: say 1, 4, 8 ... 256;
camelia rakudo-moar 243c16: OUTPUT«===SORRY!===␤Unable to deduce arithmetic or geometric sequence from 1,4,8 (or did you really mean '..'?)␤»
Kristien m: say 1, 4, 16 ... 256;
camelia rakudo-moar 243c16: OUTPUT«1 4 16 64 256␤»
14:25 xinming left, xinming joined
Kristien make it pattern match on OEIS :P 14:27
14:30 lestrrat left
geekosaur I think it does already 14:30
14:33 lestrrat joined, xinming left 14:35 xinming joined
vendethiel m: say (1,2,3,6,11,23,47,106,235 ... *)[^20] 14:35
camelia rakudo-moar 243c16: OUTPUT«===SORRY!===␤Unable to deduce arithmetic or geometric sequence from 47,106,235 (or did you really mean '..'?)␤»
vendethiel it doesn't know N0299 :p
m: say 0, 1, 5, 9, 20, 23, 42, 52, 69 ... *; 14:36
camelia rakudo-moar 243c16: OUTPUT«===SORRY!===␤Unable to deduce arithmetic or geometric sequence from 42,52,69 (or did you really mean '..'?)␤»
geekosaur hm, maybe that got kicked out into a module 14:39
moritz it was never specced to work 14:41
just discussed at some point
Kristien m: sub is-even(Int $x) { so grep * eq $x, (0, 2 ... *) }; say is-even(42);
camelia rakudo-moar 243c16: OUTPUT«True␤»
Kristien don't need a test case for the odd input; it'll work fine :D 14:42
moritz m: sub is-even(Int $x) { so grep * eq $x, (0, 2 ... *) }; say is-even(-2)
camelia rakudo-moar 243c16: OUTPUT«(timeout)» 14:43
Kristien m: sub is-even(Int $x) { so grep * eq $x, (0, 2 ... *) }; say is-even(43);
camelia rakudo-moar 243c16: OUTPUT«(timeout)» 14:44
14:44 slavik joined
andreoss % cat ints.txt | time perl merge-sort.pl5 14:48
3.79user 0.03system 0:03.83elapsed 99%CPU
% cat ints.txt |time perl6 merge-sort.pl
767.99user 0.70system 12:49.53elapsed 99%CPU
m: say 767.99 / 3.79
camelia rakudo-moar 243c16: OUTPUT«202.635884␤»
lizmat j: {;} 14:49
camelia rakudo-jvm 243c16: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory␤»
14:49 rindolf joined
lizmat m: {;} # crashes on JVM 14:49
camelia ( no output )
14:51 pdcawley joined
andreoss jnthn: is it so due to recursion? 14:51
14:51 pdcawley left
moritz andreoss: most likely lists being slow 14:52
dalek ast: 058c103 | lizmat++ | S17-supply/categorize.t:
Remove code block, it breaks on the JVM (#123684)
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123684
moritz perl6-m --profile might give a clue
14:55 pdcawley joined 14:56 lestrrat left 14:58 kjs_ left 14:59 lestrrat joined, Kristien left, pdcawley left 15:03 Rounin left 15:06 kjs_ joined
andreoss bunch of <anon> calls on top 15:07
15:08 lestrrat left 15:09 kjs_ left 15:11 lestrrat joined 15:12 Kristien joined
Kristien Is TCO possible in Perl 6? 15:12
Wondering because CALLER exists.
lizmat depends on how much you want to pay for it ? 15:14
vendethiel probably because to statically analyze caller's presence
s/because/possible/ # wtf, brain?
lizmat ah, tail call optimization
not total cost of ownership :-)
15:15 sqirrel joined
moritz Kristien: not trivially 15:15
Kristien: Perl 6 allows inspection of stack traces at runtime, so that would have to be faked 15:16
Kristien: ... or specified that optimizations are allowed to muck with it
Kristien I see! 15:17
nwc10 or, I guess, if the compiler can determine that there's no code within the tail call being considered that is inspecting the stack trace, or capable of mutating the code at runtime to add somethign that inspects the stack trace
ie possibly more cost than it's worth
vendethiel right.
15:19 burnersk joined
Kristien fold. 15:19
15:22 kjs_ joined
Peter_R I really hope TCO comes in at some point 15:23
LISP 4tw
vendethiel but trampolines are so fun *g*
15:23 adu left
vendethiel TCO is mandatory in scheme, but not in CL, afaik 15:23
Peter_R Good point 15:24
*Scheme 4tw
Kristien is CALLER assignable? 15:25
vendethiel uses COMEFROM in p6 *g*
15:26 lestrrat left
moritz m: my $x is dynamic = 42; sub f { $CALLER::x = 0 }; say x; f; say $x 15:29
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/uvjXyXwFtm␤Undeclared routine:␤ x used at line 1␤␤»
moritz m: my $x is dynamic = 42; sub f { $CALLER::x = 0 }; say $x; f; say $x
camelia rakudo-moar 243c16: OUTPUT«42␤0␤»
15:30 lestrrat joined
Kristien m: sub f { say CALLER::CALLER::CALLER }; sub g { CALLER::CALLER = 42; f }; g 15:31
camelia rakudo-moar 243c16: OUTPUT«Cannot modify an immutable CALLER␤ in method assign_key at src/gen/m-CORE.setting:2116␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3089␤ in sub g at /tmp/n236NsgfBc:1␤ in block <unit> at /tmp/n236NsgfBc:1␤␤»
Kristien m: sub f { say CALLER::CALLER::CALLER }; sub g { $CALLER::CALLER = 42; f }; g
camelia rakudo-moar 243c16: OUTPUT«Cannot modify an immutable Any␤ in method assign_key at src/gen/m-CORE.setting:2116␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3089␤ in sub g at /tmp/jCz8ExJ0TM:1␤ in block <unit> at /tmp/jCz8ExJ0TM:1␤␤»
Kristien meh
dalek ecs/newio: 3865941 | lizmat++ | S16-io.pod:
Spec .v for device id of path
15:33
andreoss say
m: say i**2
camelia rakudo-moar 243c16: OUTPUT«-1+1.22464679914735e-16i␤»
andreoss m: say sqrt(i**2) 15:34
camelia rakudo-moar 243c16: OUTPUT«6.12323399573677e-17+1i␤»
Kristien floats yay 15:35
andreoss m: say sqrt(-1) ~~ i
camelia rakudo-moar 243c16: OUTPUT«False␤»
psch m: say sqrt(-1); say sqrt(-1.Complex) 15:36
camelia rakudo-moar 243c16: OUTPUT«NaN␤6.12323399573677e-17-1i␤»
psch m: say 0.1.Num
camelia rakudo-moar 243c16: OUTPUT«0.1␤»
andreoss >not a number is a number
was it borrowed from javascript? 15:37
moritz just bog-standard IEEE floating point logic
15:37 yeahnoob left
Kristien m: say (-1 ... -Inf).map(&sqrt)[^10].join ~ ' Batman! 15:37
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/iJOecHEByC␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/iJOecHEByC:1␤------> . -Inf).map(&sqrt)[^10].join ~ ' Batman!⏏<EOL>␤ expectin…»
Kristien m: say (-1 ... -Inf).map(&sqrt)[^10].join ~ ' Batman!'
camelia rakudo-moar 243c16: OUTPUT«NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN Batman!␤»
ab5tract Kristien: lol 15:38
15:39 lestrrat left
Ovid_ So I wanted to alter how my classes behave (locally, not globally) to have all attributes be required by default and allow an “is optional” trait on them, where would I start looking to implement that? I see src/core/traits.pm, but it’s clear to me that I need a better understanding of what’s happening at that level. 15:40
15:40 kjs_ left
tadzik Ovid_: you may want to look at ClassX::StrictConstructor 15:40
may help to some extend
hoelzro Ovid_: I think you may need to create a meta object for that class, and override how add_method works 15:41
I don't know if there's sugar for that, though
Ovid_ tadzik: where would I find that? 15:42
tadzik oh, github.com/tadzik/ClassX-StrictConstructor here
moritz Ovid_: modules.perl6.org/ is a good place for finding Perl 6 modules
Ovid_ Cheers all :)
15:42 spider-mario joined
Ovid_ hoelzro: yeah, that’s sort of the approach I’d take in P5 too. Glad to know my knowledge isn’t totally wasted :) 15:43
hoelzro hmm
actually
I bet you could implement a trait for marking a class as strict
so class MyClass is strict { ... }
tadzik probably 15:44
Ovid_ That looks like inheritance.
hoelzro and then you wouldn't have to build things with the metaobject API
15:44 lestrrat joined
tadzik Ovid_: 'is Parent' is just a special trait 15:44
is is more general than just inheritance
Ovid_ So “is” is overloaded in meaning in this case? When I see “is X”, I don’t know if that’s a trait or a parent class? 15:45
tadzik or am I wrong
Ovid_ assumes he’s misunderstanding
moritz Ovid_: no, you're correct
tadzik Ovid_: see github.com/rakudo/rakudo/blob/nom/...its.pm#L45 and then #59
and along
"is" itself doesn't indicate much 15:46
FROGGS Ovid_: the naming scheme usually tells you... classes are nouns (starting with uppercase), traits should be adjectives
moritz would like a better distinction nonetheless
Ovid_ FROGGS: I think that’s begging for trouble.
It sounds like you’re saying “devs *should* do X”, but I strongly hold that when we argue from that standpoint, we lose. Instead, if we say “devs *should* do X, but we make it easy to do the right thing”, then that’s a much better approach. 15:47
So in this case, devs are going to ignore the noun/adjective distinction (and non-English speakers won’t have a ball with that). 15:48
hoelzro we could adopt the Smalltalk-y convention of TStrict
FROGGS Ovid_: then you could also say that subroutine names and types/classes should be distinguishable without having more context 15:49
15:49 lestrrat left
FROGGS is 'foo' a sub name or just a lowercase written type name? 15:49
and then, other languages have barenames everywhere 15:50
variables, types, routines...
Ovid_ FROGGS: I hadn’t thought about that. I always liked the sigils in P5 because they disambiguated so many things. Hadn’t thought as much about the type system in this case.
moritz how much would it hurt if the inhertance trait was spelled 'isa' ?
Ovid_ moritz++
moritz (except TimToady++ not liking it, IIRC)
we could even spell it is-a, to make the meaning clearer 15:51
dalek kudo/newio: 8e7d62b | lizmat++ | src/core/IO (4 files):
Implement .v for device ID of a path
hoelzro hmm...apparently we *don't* like $type.HOW does role { ... }
rakudo gets mad at me when I try that.
moritz or 'inherits-from'
FROGGS moritz: I guess it would not hurt much except breaking a lot
PerlJam moritz: not much for me, though it's always bothered me that "is" and "isa" are spelled so closely the same in Moose but have radically different meanings.
moritz hoelzro: iirc you can use 'method ^flurb { }' if you want to mix in methods to the meta object
hoelzro ah ha 15:52
hoelzro tries
andreoss are there Perl6 naming guidelines? besides common sense.
moritz FROGGS: well, deprecations and transitional periods exist
hoelzro "Cannot use 'does' operator with a type object." =/
FROGGS andreoss: there are...
andreoss: lower case types for native types for example, or that we use a dash instead of underscore to save a keystroke 15:53
andreoss: besides that it is quite P5ish
Pascal-casing for package names (and types)
colomon also CamelCase for object names
FROGGS :o) 15:54
15:54 kjs_ joined, lestrrat joined
moritz m: class A { method ^flurb(|c) { 42 } }; say A.^flurb 15:55
camelia rakudo-moar 243c16: OUTPUT«No such method 'flurb' for invocant of type 'Perl6::Metamodel::ClassHOW'␤ in block <unit> at /tmp/AoBaZi3nvx:1␤␤»
colomon looks up the difference… Pascal case if you think CamelCase means start with a lowercase letter. :)
FROGGS colomon: that is what I was thinking, aye
moritz m: class A { method ^flurb(|c) { 42 } }; say A.new().^flurb
camelia rakudo-moar 243c16: OUTPUT«No such method 'flurb' for invocant of type 'Perl6::Metamodel::ClassHOW'␤ in block <unit> at /tmp/MAmBoVFnXF:1␤␤»
15:58 sqirrel_ joined 16:00 sqirrel left, hzhou321 joined
hzhou321 Hi, I am new. If it is ok, I would like to ask a question. What is the status of Perl 6? Any of you actually are using it on a routine basis? Like replacing Perl 5 in your own projects? 16:01
vendethiel hzhou321: I don't know perl5, but I use perl6 for most of my personal projects, and used to use it as $work for automating boring stuff 16:02
16:02 lestrrat left
PerlJam hzhou321: Perl 6 is alive and kicking :) Yes, some of us use it on a routine basis. 16:02
colomon hzhou321: I’ve not gone so far as replacing stable code that doesn’t need changes, but probably 75+% of my new Perl code has been Perl 6 for several years now.
hzhou321 Thanks guys! For those who switched from Perl 5, let's say I am right now experienced with Perl 5, and not really having any complaints, would you recommend me try Perl 6? 16:04
16:05 kjs_ left
FROGGS hzhou321: yes 16:05
PerlJam hzhou321: what is this "switched from Perl 5"? I use Perl 5 *and* Perl 6. (and I always recommend that people try Perl 6)
FROGGS hzhou321: you won't loose anything but gain knowledge while learning it (it really is a fun, powerful and overall awesome language)
hzhou321 PerlJam: doesn't the subconcisous conflict between perl 5 and 6? 16:06
Peter_R that is freudian era nonsense ;)
PerlJam hzhou321: only occasionally when I'm coding P5 and accidentally write P6 instead
FROGGS I sometimes concat string with a dot :S
tadzik hzhou321: I almost don't write any Perl 5 anymore
and by all means try Perl 6:) 16:07
hzhou321 PerlJam, would that cause un-obvious bugs?
16:07 kjs_ joined
PerlJam hzhou321: you're asking questions that are best answered by experience :) 16:08
andreoss hzhou321: usually societies where two closely related languages are spoken develop pigins of some sort. so if your work depends on perl5, learning perl6 is not advised
FROGGS m: my %foo; say $foo{a} # common P5ism
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/l3t77HWSaB␤Variable '$foo' is not declared. Did you mean '%foo'?␤at /tmp/l3t77HWSaB:1␤------> my %foo; say $foo{a}⏏ # common P5ism␤ expecting any of:␤ statem…»
16:08 book_ joined, lestrrat joined
FROGGS hzhou321: you get hints, you see 16:08
hzhou321 PerlJam, or does perl 5 always find those as syntax given that I always using strict. I am asking for your experience. 16:09
andreoss because of no pigins in programming languages
16:11 pyrimidi_ joined
hzhou321 FROGGS, thanks, that helps. 16:11
So do you installl perl6 as perl and write scripts as .pl and .pm, or do you do something to seperate from perl 5? 16:12
16:12 sqirrel_ left
FROGGS m: if( 1 ) { say 42 } # also this one 16:12
camelia rakudo-moar 243c16: OUTPUT«===SORRY!===␤Word 'if' interpreted as 'if()' function call; please use whitespace instead of parens␤at /tmp/y6JP181KBu:1␤------> if⏏( 1 ) { say 42 } # also this one␤Unexpected block in infix position (two term…»
PerlJam hzhou321: I can't say that P5 will always catch you coding P6 and carp about it, but it often does. There are some syntactically valid statements that are semantically different that P5 will happily accept. I dunno any off hand, though. 16:13
FROGGS hzhou321: don't install it as perl, that will ask for trouble
hzhou321: install it as 'perl6'
but I also call my scripts .pl and my modules .pm... though, you can call them .pl6 and .pm6 if you want
hzhou321 FROGGS, thanks 16:14
16:15 vike1 joined
andreoss FROGGS: no plans for dispatcher which runs perl5 or perl6 according on use v..? 16:15
16:15 mst__ joined
hzhou321 So is there quick wisdom that is one reason you would think to yourself that "that is the reason I would perl 6 to perl 5"? 16:15
correction: perfer perl 6 to perl 5 16:16
I meant prefer
16:16 kjs_ left, spider-mario_ joined
FROGGS andreoss: in case you run in with rakudo and have a 'use v5' at the top, it will try to run it as Perl 5 code... though, nine++ is doing a better job with Inline::Perl5 16:16
16:16 khisanth_ joined
PerlJam hzhou321: anything that really needs objects or grammars I tend to lean towards P6 unless there's some reason I should use P5 (like to be compatible with existing P5) 16:16
FROGGS hzhou321: concurrency probably
PerlJam FROGGS: oh, that's a good one too! 16:17
16:17 spider-mario left, lestrrat left, spider-mario_ is now known as spider-mario
FROGGS hzhou321: I tried today to do that in a middleware server written in Perl 5 (using POE)... and I failed :o/ 16:17
hzhou321 I see. I hate OOP unfortunately :(
16:17 pyrimidine left
Kristien all I need for middleware is function composition :D 16:17
16:18 Alina-malina left, vike left, Khisanth left, salv0 left, book_ left
FROGGS hzhou321: you can do functional programming as well, nobody forces you to do OOP 16:18
16:18 Kristien left
PerlJam hzhou321: why do you hate OOP, ooc? 16:18
hzhou321 Well, a language is a culture, in addition to what you can do with it, it is more about who you get to chat with :) Is OOP a dominant culture in Perl 6 community? 16:19
andreoss why OOP is a culture?
16:19 kjs_ joined
PerlJam isn't quite sure what "oop culture" means 16:20
hzhou321: we do lots of OOP here, yes, but not exclusively. Perl's motto is still TMTOWTDI after all.
hzhou321 PerlJam: I love perl 5 especially its philosophy that models after natural language. The way I see it, natural language is basically say/write what you are thinking in mind. We do not really think in OOP, we think imperatively. 16:21
huf i dont think we think in either of those ways
16:21 mr-foobar joined
PerlJam hzhou321: you're saying some strange things relative to my experience :) 16:21
huf nor does perl5 really work like a natural language at all, it just has a few quirks that look a bit like some of them
16:21 salv0 joined
PerlJam huf: perl has some good smoke and mirrors :) 16:22
16:22 Renan_ joined 16:23 Renan_ left, lestrrat joined, Alina-malina joined
hzhou321 OOP is fine when you are building a library that intend to be only used by others (not by poking around). Objects are difficult to poke around, that is even true for the manufacturer. I guess I am ranting, forgive me :) 16:23
PerlJam hzhou321: "how we think" is how we train ourselves to think. But some problems are more naturally solved in a FP style, and others may be OOPy. Perl (as always) doesn't force you to couch your problem in terms of how the Perl compiler writers think, but rather in how *you* think or how you want to solve the problem. 16:24
hzhou321 Any way, I guess my question is, does perl 6 library always written as an object? 16:25
PerlJam hzhou321: of course not.
hzhou321 PerlJam: that is good :)
FROGGS hzhou321: you can write a library that just exports subroutines if you want to do that 16:26
PerlJam hzhou321: were you over-exposed to Java or something? (that tends to poison people against OOP)
hzhou321 FROGGS: I always do that. I don't even export them.
PerlJam hzhou321: well, you'll have to be sure to declare them as "our" subs if you aren't going to export them. 16:27
16:27 gargamel joined
hzhou321 PerlJam, yes, any random programer you met on the street only knows Java :) 16:27
PerlJam (or, jump through other hoops to use them outside of your module)
hzhou321 PerlJam: yes, always. The package gives namespace protection anyway.
16:28 andreoss left
hzhou321 Thanks guys. It is nice to know there is a community here. I'll go ahead try Perl 6. 16:31
16:31 zakharyas left, andreoss joined
PerlJam wonders how hard it would be to make a module that makes any subs declared with the lexical scope default to "our" rather than "my" 16:31
hzhou321 PerlJam: our is a global space, you always want to be conscious about it. So why would you want that to be default? 16:32
lizmat PerlJam: perhaps we first need a COMPOSE phaser implementation :-) 16:33
PerlJam just 'cuz
lizmat then it should be rather trivial, I would think
psch a slang could do it too 16:34
16:35 brrt left 16:40 kaleem left 16:43 FROGGS left
hzhou321 I am reading the perl6 docs. It has more scalar types, and being enforced, that is nice! 16:44
PerlJam hzhou321: did you get at the docs via perl6.org/documentation ? 16:46
hzhou321: if not, look there for more resources
hzhou321 I am 16:47
PerlJam, so far I would agree that Perl6 makes a better language than perl 5. I think we only need a kill application to re-dominate the world :) 16:48
16:48 mvuets left
hzhou321 correction: [killer] 16:48
psch hm, at least i thought FROGGS++ work on slangs could help to get subs to auto-our, but i don't quite get there 16:49
PerlJam hzhou321: I dunno ... "killer app" sounds like a very short term thing. Perl 6 has always taken the long view. Perl 6 is being designed "for the next hundred years" or so 16:50
tadzik I hope it won't end up being designed for the next hundred years :P
16:51 slavik left
hzhou321 PerlJam: Yeah, like a rock! which never dies, but never going anywhere :) 16:51
PerlJam tadzik: why not? P5 has been in a constant state of flux its whole life. Why should P6 be any different? :)
tadzik ha, true :)
16:53 thilp joined
hzhou321 Guys, is there any good projects in Perl6 out there? 16:53
16:54 kjs_ left
andreoss hzhou321: rewriting Catalyst in perl6 16:54
PerlJam rewriting Mojo in Perl 6!
hzhou321 Has them being taken on?
PerlJam github.com/coke/mojo6 16:55
hzhou321 I see. But a port is a port, there not enough freedom in it.
muraiki I think a P6 killer app would be a web framework that shows use of types and concurrency. I think recreating mojo/catalyst will be a lot of work, but if we can get something simple that shows these two things, you could win over a lot of python/ruby devs looking at go, clojure, and scala 16:56
moritz \o
andreoss muraiki: mojo is pretty small itself, most of mojolicious code base are tests
16:57 jluis_ joined
muraiki andreoss: good to know; I wasn't aware of that 16:57
16:58 slavik joined
_sri andreoss: 8778 lines of code to be exact 16:59
super tiny
skids Personally I think P5 got its foot in the door as a better awk, and targetting use for small support scripts is essential to gaining mindshare.
hzhou321 I have a general source code framework currently written in perl 5. If anyone would join my cause, I'll be happy to change it to perl6. huizhou.gitbooks.io/programming-with-mydef/
muraiki but my point is that while mojo provides a lot of nice things, you need to consider the real pain points of web developers. give them concurrency and you can reduce the need to integrate with message queues. give them types because, well, everybody likes expressive types now right? :) 17:00
_sri muraiki: that's not how you woo web developers
we have good concurrency in perl5 already 17:01
muraiki you have to woo them enough to learn a whole other language, and to convince their business that it's worth using. non-blocking? use node, that's the hot stuff
_sri with perl6 you can give them parallelism... it's a powerful buzzword, but it will only get you so far
muraiki (I wasn't recommending node there, just simulating a manager :) 17:02
btyler particularly when well-architected web apps in p5 (and others) are already effectively parallelized by having multiple processes serving requests at once
_sri "but our developers have to learn javascript anyway!"
PerlJam muraiki: yes, managers *are* the right people to make technical decisions ;)
muraiki perljam: I'm just trying to take into account what a typical developer has to deal with, not the ideal solution 17:03
btyler maybe it's a failure of imagination on my part, but I'm not sure what you gain by having worker threads instead of worker processes in a webapp deployment
_sri it's quite amazing how quickly Go has found its niche 17:04
17:04 vendethiel left
btyler helps when google is funding :) 17:04
17:04 baest left
muraiki btyler: I think you need to look at the success of Go 17:04
PerlJam btyler: not always ... remember "google wave"? 17:05
tadzik lots of hype and being faster than python. Done
btyler I tend to agree with tadzik
muraiki disclaimer: I don't personally like Go
_sri it also helps that you can learn Go in a day
btyler go is pretty great, I have fun hacking in it, but I think its really big draw was "you can write not-awful looking code that runs dang fast"
I grant that being able to write async code without callbacks is also a big design plus 17:06
(at least it seems that way to me)
andreoss go was popularized by google, that's the secret of success 17:07
muraiki did google really do any sort of heavy marketing for go?
_sri a killer app like docker certainly helped too 17:08
17:08 vendethiel joined
andreoss muraiki: not directly 17:08
muraiki I think if you believe that "go is popular because of google," you need to figure out why so many dynamic language buffs flocked to a language with a not-so-great type system, one lacking even generics
btyler in terms of go's speed, there was a really cool talk at $work about a daemon implemented in both go and perl. perl used lots of forking and EV, go used goroutines. the perl implementation had higher latency at low loads, but killed go at high load (no gc spikes) 17:09
hoelzro is there something special one has to do to invoke a P6 routine with a Capture from NQP? |$c seems to just try and flatten $c
btyler the conclusion was "perl has some really great C libraries to talk to"
muraiki yeah
_sri btyler: very true, say what you will about ref counting in perl5, consistent performance is awesome 17:10
hzhou321 btyler: that is interesting, do you have reference?
btyler: what is $work? (excuse my ignorance)
17:11 KCL_ joined
muraiki so yes, going with go you get a single way to write async/parallel code without the pain of callbacks, vs perl 5's X number of event loops and C wizardry. maybe go's solution isn't ideal, but its certainly resolved enough pain points for devs to result them putting in the time to learn a new language and build stuff with it 17:12
andreoss muraiki: there were languages with same ideas from the same people available before go
japhb .ask andreoss re: irclog.perlgeek.de/perl6/2015-01-27#i_10012190 , please would you turn your benchmarks into tests for github.com/japhb/perl6-bench ?
yoleaux japhb: I'll pass your message to andreoss.
_sri gc in go is still evolving though
japhb Oh, and there he is. :-)
btyler hzhou321: it was an internal talk, but it would be interesting for the rest of the world. I can maybe ask around a bit on what the policy for publishing them is
(I didn't give it :)
hzhou321: I'm writing perl for a living in amsterdam, if that's enough of a clue :) 17:13
hzhou321 btyler: yes. thanks.
muraiki andreoss: yeah, so wouldn't it be nice if we had them in perl? heh.
japhb btyler: Gee, can't imagine who that would be .... :-)
PerlJam btyler: yeah, but are you writing *good* perl? ;) 17:14
japhb He's here, that's a start. ;-)
PerlJam japhb: an excellent point! :) 17:15
btyler no wizard, but I try my best...
andreoss muraiki: also, the main book about Go is about 100 pages. I wish Perl had this feature.
yoleaux 17:12Z <japhb> andreoss: re: irclog.perlgeek.de/perl6/2015-01-27#i_10012190 , please would you turn your benchmarks into tests for github.com/japhb/perl6-bench ?
_sri andreoss: on the other hand, go is a very boring language
btyler if err != nil { return nil, err } all day long 17:17
japhb And one in which you have to understand all the standard libraries in order to avoid wasting time anyway ... so claiming that the language is tiny is only half-ture.
*half-true
muraiki _sri: yeah, it's error handling leaves a lot to be desired. but apparently its other features are exciting enough to get people to stop and think.
another one to think about is clojure -- who thought a lisp would be being used in any serious enterprise in 2015?
disclaimer: I like parentheses
japhb Well, Pike ground an axe thoroughly on the error handling bit, but I can't fault him for having a strong belief about a technical design issue. 17:18
muraiki I could rant forever, so I'll just conclude by saying that if you want a p6 killer app to fuel adoption, think about what features and apps have made recent underdog languages successful. what pain points do they indicate for devs? how does p6 solve them, and how can you show that in an awesome way?
_sri perl6 will have to find its own niche 17:19
moritz agreed 17:20
skids Do we have a "perl6 one-liners" doc of some sort?
ab5tract skids: sillymoose has started a book
PerlJam I thought perl's niche was "everything" :)
ab5tract PerlJam++
btyler it's worth noting that go had a very consistent story on that front from the very start
ab5tract that's how i understood it too ;) 17:21
moritz btyler: my understanding was that Go was thought to be a replacement for C in some areas, and it turned out to be mostly used as a replacmenet for python :-)
muraiki moritz: yeah, the authors have said that 17:22
btyler moritz: fair, I understood it more as "systems programming/plumbing/network daemons"
17:22 baest joined
btyler and the most well-known go projects tend to fall in those areas 17:22
ab5tract i do agree that we are in the "next-gen" language territory. stuff like scala, clojure, go, rust, and perl 6... they are not all overlapping, of course, but i'd say they are all playing on the same field
btyler I mean, there's nothing about docker that you couldn't write in python or perl or ruby (that I know of?) 17:23
ab5tract ie, learning from the mistakes of the previous generation (C++,p5,python) and mostly working past them 17:24
muraiki ab5tract: exactly. there's a lot of competition out there. not that p6 has to "win," but it'd be nice if the hard work you guys have done was used. p6 provides a migration path for dynamic language devs to get these next-gen features, with a lot of thought put into past mistakes (not meaning only p5 mistakes)
ab5tract (all lists in the last two messages are necessarily missing elements)
muraiki btyler: there's nothing that you couldn't have written in assembly, either :) 17:25
dalek kudo/newio: 640c8b0 | lizmat++ | t/01-sanity/51-filetest.t:
Fix/Add some more FILETEST sanity tests
ab5tract muraiki: and also learning from the winners of the previous generation. i think rubyists will find a lot to love in p6, once they get over their sigilophobia ;) 17:26
then again i always considered ruby a daughter of perl anyway :)
muraiki btyler: but I think multiprocessor-exploiting goroutines would be more difficult in perl, python, and ruby. likewise, providing compile time type safety
btyler muraiki: of course -- so I'm kind of speaking to your earlier point about what sorts of things the langauge is good at. but perhaps we're veering into sapir-whorf territory, and the better angle is "someone smart and creative liked go, so they used their smarts and creativity to make something cool" 17:27
muraiki ab5tract: I don't know ruby, but that's also the impression I've gotten from other ruby devs. that being said, the author of "the pickaxe book" (the definitive book on ruby, apparently) has put his weight behind elixir, and that's probably a weight worth something
17:27 FROGGS joined
lizmat www.openwall.com/lists/oss-security/2015/01/27/9 # gethostbyname buffer overflow 17:27
muraiki btyler: well, your language can make some things really hard. but p6 seems to provide a lot of features for a great variety of creative people, from those who want simple concurrency, to those writing grammars, to those who want a powerful OO system 17:28
btyler muraiki: for sure, but docker (for example) isn't exactly a case of an application that needs maximum multiprocessor exploitation in order to be viable. in the early iterations it just fired up LXC and did some hashing here and there
17:29 b2gills left
muraiki btyler: see slide 22: www.slideshare.net/jpetazzo/docker-...cker-in-go 17:30
btyler: it's actually not terribly different than what p5 offers 17:31
17:31 abraxxa left
muraiki so why wasn't it written in p5? I guess the other slides explain more, shrug 17:31
ok, I have to eat lunch and get ready for a meeting. sorry if all this was offtopic; I apologize for ranting 17:32
btyler thanks for the link. anyways, yeah. it's all probabilistic, so pack your language with awesome tools and eventually people will make awesome things
(probably)
17:34 b2gills joined
espadrine muraiki: there's slide 28 though (go get). A faulty package system can really bug people out. 17:35
andreoss japhb: perl6-bench seems installing many different version of perl5
versions 17:36
17:38 rurban_ left
skids
.oO(what we need is a scene in a hollywood film where a hacker is using perl 6 on the screen)
17:40
PerlJam skids: I'd say that's exactly what we *don't* need. "Perl 6? Isn't that a language used by hackers? We can't have that in our serious, non-hacker, business!" 17:41
skids The managers wouldn't see that, it's only those obsessive enough to pause the movie to see what's being typed that would. 17:42
espadrine that's why they switched from assembly to jvm bytecode
PerlJam no, but they'd hear about it in conversation. Some random techie will be talking about it and the manager will overhear. 17:43
skids I think you're being overly worried. 17:44
17:44 telex left
PerlJam nah, just highly cynical 17:44
skids It isn;t like every language ever protraryed ina film got blacklisted.
moritz so, now that you've all discussed factors of language adoption, what is your personal conclusion for how you can help Perl 6?
espadrine write some crazy hack
PerlJam skids: though, if that hacker saved the world with perl 6 code, I'm all for it! :)
espadrine like a streaming VNC server to a browser tab or something 17:45
17:46 telex joined 17:48 Kristien joined
PerlJam After looking at those slides on why they chose to write Docker in Go, I have to wonder if they are insane. With all the drawbacks, Go does not seem like a good choice. 17:48
skids I think getting a newer rakudo, defaulting to moarvm, into Debian might be a really good thing.
El_Che hi, #perl6, how are the Fosdem talk going? 17:49
Kristien hi
17:49 xfix left
japhb PerlJam: Go is a decent language. It's just ... at an angle to many people's mindsets. You have to decide to try the Escher walk. 17:50
Kristien PerlJam: I always assume insanity when it comes to programmers.
17:51 obra left
japhb andreoss: What did you do with perl6-bench? 17:51
If you quickstart'ed with default options, you will end up extracting and building a number of compilers that people seem to like to do historical comparisons with. 17:52
PerlJam ls 17:53
oops
japhb None of them are installed outside the components tree, however. It's just making sure it has known builds without vendor interference and such.
hzhou321 Hi, guys. I am about to install perl 6. Is it recommended to install moar backend only? 17:54
PerlJam hzhou321: it's the easiest backend to use IMHO
skids That will be faster.
hzhou321 thanks. Which mean it is stable enough ? 17:55
El_Che skids: lists.debian.org/debian-devel-anno...00003.html
PerlJam hzhou321: sure.
17:55 dakkar left
El_Che skids: debian 8 is already frozen 17:55
japhb hzhou321: IT's probably the most stable for general stuff. JVM is most stable for highly-threaded work, because JVM.
El_Che skids: I think that providing an debian/ubuntu repository could do the trick in between debian releases. That way people have a recent release (debian stable is outdated fast) 17:56
hzhou321 japhb: thanks, that helps.
17:56 Rounin joined
skids bah. Also RHEL/CENTOS has these airlocks one must get through in time. 17:56
El_Che: yeah I often wonder why more projects don't have their own repo. 17:57
El_Che debian stable/rhel/centos is too fast out of date for dynamic projects 17:58
e.g. for openldap we use the openldap-ltb project repo instead of the rhel packages (a plus: openldap-ltb is run by a perl guy :) ) 17:59
hzhou321 Hi guys, another question: I configured using "perl Configure.pl --gen-moar --gen-nqp --backends=moar", I am about to "make install", where it will intall to?
moritz hzhou321: to ./install/ 18:00
hzhou321: ... as Configure.pl told you in its first three lines of output, I believe :-)
hzhou321 moritz: I see. So I just copy or add it to my $PATH?
moritz hzhou321: the latter
hzhou321: if you copy it, it still looks for the libraries in the old install dir, so you can't remove that 18:01
lizmat El_Che: jnthn and TimToady have been relatively absent the past days, so I guess they're working hard on the presentations :-)
hzhou321 moritz: I got it.
El_Che lizmat: hehe. That's a good sign!
18:02 skids left 18:03 pecastro left
b2gills Anyone know a golfed way to sort a list by numbers then lowercase then uppercase? 18:05
18:06 kjs_ joined
b2gills *.sort does numbers then uppercase then lowercase by default 18:06
moritz .sort(+*)>>.lc>>.uc
hzhou321 Hi all, I am little confused way about the name rakudo. Is it a distribution like ActivePerl, or is it the official devleopment tree for perl6? 18:07
18:07 asdf12z__ joined
asdf12z__ why does larry wall always wear the same shirt? 18:07
moritz hzhou321: it's a compiler, like gcc or clang
hzhou321: and it's not official, just like gcc or clang or icc aren't the "official" compilers for C 18:08
18:08 kjs_ left
b2gills moritz: no a list of strings that should be sorted so that '8aB' comes before 'aaB' combs before 'AaB' 18:09
m: say {('a'..'z','A'..'Z',^10).roll($^b).join xx$^a }(7,3).sort 18:10
camelia rakudo-moar 243c16: OUTPUT«Eor TrL UXO Xhc m7n p4R tvy␤»
asdf12z__ when will perl6 finally be officially released?
hzhou321 moritz: I guess that makes sense. But I mean, is it the code base that Larry Wall is at the helm or some other "official team"?
b2gills Rakudo is really the only one that is in active development
hzhou321 b2gills: thx, that is the answer I am looking for :) 18:11
PerlJam asdf12z__: what does that mean?
asdf12z__ fully implemented, mostly bug free 18:12
have a big splash and fancy announcement that goes along with that
hzhou321 Another question: Is Rakudo entirely in perl6?
PerlJam asdf12z__: oh, the "big splash" is slated for sometime this year.
asdf12z__ yea i've read that, but i've read the quote, but i can't find the video in which larry makes an announcement... to the eventual announcement 18:13
FROGGS asdf12z__: you might be able to watch it live this sunday 18:14
asdf12z__ where?
FROGGS at the fosdem website...
PerlJam asdf12z__: FASDEM if you're going :)
er, FOSDEM even
El_Che asdf12z__: fosdem.org/2015/schedule/event/get..._to_party/
FROGGS asdf12z__: fosdem.org/2015/schedule/event/get..._to_party/
asdf12z__ oh nice 18:15
FROGGS asdf12z__: though, I dunno how/where/when videos or streams will be available
18:16 pmurias joined
El_Che asdf12z__: the idea is to stream the video 18:16
PerlJam asdf12z__: btw, is perl 5 "fully implemented"? :)
TimToady it's more like we'll have a satisfactory subset that is unlikely to change much 18:17
so it's more about stability than feature-complete 18:18
FROGGS TimToady: that subset already is quite awesome :o)
TimToady as for shirts, some of them photograph better than others
FROGGS P5 + POE + trying to parallelize jobs made me cringe today 18:19
TimToady: you're shirts clearly have a high contrast :o)
PerlJam I seem to recall that P5 changed quite a bit in the early days. But then, it didn't have the long gestation that P6 has had.
18:19 raiph joined
El_Che TimToady: the one on the fosdem page is a photo I took. I hope it's ok 18:19
FROGGS El_Che: I like that photo fwiw 18:20
TimToady I don't care so much about official photos really; it's the people who come up and say "Can I get a photo with you?" that I want to have good shots
b2gills m: say +('a'..'aa'); say +('b'..'ab'); say +('b','c'...'ab') # should be 27␤27␤27␤ 18:22
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/tYMh_QlVrN␤Two terms in a row␤at /tmp/tYMh_QlVrN:2␤------> <BOL>⏏27␤ expecting any of:␤ infix stopper␤ infix or meta-infix␤ postfix␤ …»
TimToady hzhou321: rakudo and the original design have been on a convergent path for quite some time now
they both learn from each other :)
asdf12z__ TimToady: why do you always wear the same shirt?
TimToady I just answered that 18:23
b2gills m: say +('a'..'aa'); say +('b'..'ab'); say +('b','c'...'ab') #`( should be 27␤27␤27␤)
camelia rakudo-moar 243c16: OUTPUT«27␤0␤27␤»
asdf12z__ oh woops
TimToady hugme: hug asdf12z__ 18:24
hugme hugs asdf12z__
El_Che TimToady: well, we can organize a "have a pic with TimToady" at the perl booth... 18:25
TimToady: jk
hzhou321 TimToady: I am trying to figure this out myself, but since you are here, is it possible to summarize how it works? like "moar in c, and rakudo perl, and compiled into vm", or something that I am totally off.
FROGGS hzhou321: wait a sec, I'll find you a presentation about the architecture
PerlJam El_Che: Actually, I was thinking that might make a good fund-raiser for a YAPC :) 18:26
TimToady I suspect the folks...what FROGGS said...
hzhou321 FROGGS: that'll help. thanks.
TimToady is just the chief language designer
hzhou321 TimToady: that make a lot of sense. 18:27
PerlJam TimToady: So ... what do you think about "isa" for inheritance? :)
TimToady I think almost all traits are lower case, and almost all types are uppercase, so there's no problem with "is"
FROGGS hzhou321: that shows it: www.youtube.com/watch?v=XgPh5Li3k4g
PerlJam Hmm. Good point. 18:28
TimToady oops, my phone just told me it's time to leave for SEA -> AMS 18:29
18:29 espadrine left
El_Che TimToady: good flight! 18:29
FROGGS TimToady: see you there :o)
TimToady well, will probably check in again at SEA gate 18:30
asdf12z__ 14 or so years ago i had a giant book (the camel book) and then perl kind of went away in obscurity for me 18:39
so im pretty excited to see the talks coming out of this conference especially since perl6 is coming soon
FROGGS asdf12z__: I just got to Perl (5) around 2007 or so
asdf12z__ i wonder what kind of traction perl 6 will have more than anything 18:41
18:41 Sqirrel joined, virtualsue left 18:44 mr-foobar left, mr-foobar joined
Kristien I want to write a VM again. 18:49
FROGGS :S
pyrimidi_ lizmat: re: the comp issue, filed a bug on that: RT #123679 18:50
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123679
18:51 pyrimidi_ is now known as pyrimidine 18:53 pmurias_ joined 18:55 Kristien left 18:57 Sir_Ragnarok joined, gfldex joined 18:59 pmurias_ left 19:02 Sir_Ragnarok_ joined, Sir_Ragnarok left 19:06 Sir_Ragnarok joined, Sir_Ragnarok_ left 19:07 fhelmberger left 19:09 xfix joined 19:16 raiph left
pyrimidine asdf12z__: re: p6 traction, I think there will be the naysayers who will immediately dismiss it w/o trying, then there will be those who actually give it a go 19:17
19:17 thilp left
pyrimidine asdf12z__: I'm interested in seeing what those latter folks say 19:17
but in my experience I've been pretty happy w/ it
19:17 rurban_ joined
nine_ How large is the Perl devroom at FOSDEM? 19:18
FROGGS woolfy: --^ ?
El_Che nine_: 80 people
FROGGS ohh, nice :o) 19:19
El_Che (as big as the GO (they use the same room sunday), Java & Ruby
python and php have a bigger room
jdv79 is there live video or at least video after the fact?
nine_ So I only have to be twice as nervous as in London ;)
FROGGS nine_: *g*
El_Che jdv79: it should be streamed 19:20
19:20 skids joined
jdv79 nice 19:20
i remember the streams broke one YAPC not that long ago
El_Che nine_: don't worry, we'll have a gong to tell you when your time is over :)
jdv79: yeah, streaming is tricky
jdv79 was it houston?
and then years and years ago the videos would be released maybe 6 months later:( 19:21
jdv79 hopes for better this time
El_Che TimToady will speak in the big aula
19:22 Kristien joined
Kristien hi 19:23
El_Che Jason room (Not JSON, I know you read JSON) is 1400
skids o/
jdv79 oh neat how there's a docs.perl6.org and a doc.perl6.org. i finally know why its never what i think it is and fall back to googling...
moritz jdv79: I'll alias docs to doc 19:24
jdv79 well, right now docs is the synopsis index; more or less 19:25
but sounds like a welcome move
19:27 mvuets joined 19:28 andreoss left 19:31 andreoss joined
Kristien Does NQP deal with junctions? 19:33
19:33 KCL_ left
FROGGS Kristien: no 19:34
moritz jdv79: *.perl6.org should point/redirect to perl6.org, but it seems I've broken that :( 19:36
hoelzro nothing forbids method Str from taking additional arguments, but could that be regarded as a poor practice?
moritz hoelzro: if they are optional, why not?
hoelzro I *do* think 16.Str(:hex) could be handy, though
moritz: right, as long as they're optional 19:37
just thought I'd take the pulse of the community on this
maybe add some candidates for Numeric.Str
skids Well, there is already .base(16), but it lacks an "0x" and casing is not adjustible. 19:38
vendethiel Kristien: see the Junction class
b2gills Will this flatten after the GLR lands `my @c = ^10,@a,@b` ? 19:39
moritz b2gills: yes
skids hoelzro: Also of course there is .fmt('%x'); 19:40
b2gills Good then I don't have to put caveats in my answer to a code golf
hoelzro true
moritz public service announcement: the IRC logs will be down for a moment (reboot due to CVE-2015-0235) 19:41
19:41 ilbot3 left 19:42 moritz left
jdv79 any idea when the GLR will land? just curious cause it might be a perf boost for a use case of mine. 19:42
19:44 ilbot3 joined
hzhou321 FROGGS: thanks for the link to the prensentation. It is quite helpful. Do you know whether there is any documentation for nqp? 19:44
pmichaud GLR landing -- I'm planning to work on it mid-February. High probability of that occurring. 19:45
19:45 moritz joined
FROGGS hzhou321: that perhaps: edumentab.github.io/rakudo-and-nqp-...ls-course/ 19:46
pmichaud So, let's say "March release"
FROGGS O.o
hi pmichaud
that sounds quite awesome
pmichaud If it doesn't happen by March/April release, then someone else should take that task from me.
FROGGS March release sounds like a fine goal
hzhou321 FROGGS: thx.
FROGGS hzhou321: you're welcome 19:47
pmichaud good afternoon, #perl6 19:48
jnthn any('stomach bug', 'food poisoning)-- :/ 19:49
yoleaux 26 Jan 2015 21:59Z <lizmat> jnthn: the latest NQP bump broke parrot build with a segfault (On OS X)
26 Jan 2015 21:59Z <lizmat> jnthn: nqp 91f6f525b766 or earlier is bad
colomon pmichaud! \o/
FROGGS jnthn: /o\
jnthn o/ pmichaud, others :)
moritz \o
pmichaud jnthn: odd, I have a stomach ailment also. Just showed up last night.
jnthn Yeah, so did mine. :/ 19:50
pmichaud moritz: see my latest email to you regarding PARROT_REVISION
19:50 virtualsue joined
moritz pmichaud: yes, I've already that, thanks 19:50
jnthn survived the day's teaching, but scrapped the 6 hour trip home after it
I suspect I know what I forget when merging 6pe... 19:51
b2gills pmichaud: jnthn: It's a conspiracy to stop Perl6, I tell ya
moritz b2gills: I've recently heard that most conspiracy theories are actually initiated by the tin foil industry :-)
pmichaud Perl6? People are still working on that? ;-) 19:52
mst__ only until christmas
19:52 mst__ is now known as mst
pmichaud I would just like to note that as far as I know, I have yet to actually observe an actual piece of "tin foil" IRL. 19:52
19:52 mst left, mst joined
moritz pmichaud: well, it's usually aluminium foil 19:53
pmichaud s/actually// # too many "actuals", "actually"
moritz: yes... so I wonder about this mythical "tin foil" industry. Wait, I know... that's a conspiracy too!
mst rightpondian idiom uses it for any sort of cooking/baking foil
pmichaud msg: I think leftpondian does much the same. 19:54
s/msg/mst/ # arggh, can't type
I should probably take a nap.
moritz /mst I can't type either :-)
mst lol
paging hindley and milner, we have an emergency 19:55
pmichaud And after reading Wikipedia, I'm sure there's a conspiracy going on: "A tin foil hat is a hat made from one or more sheets of aluminium foil, [...]"
b2gills pmichaud: It's probably like calling lemon juice "lime-water" which was a remedy for scruvy
19:56 andreoss left
b2gills scurvy even 19:56
pmichaud There are at least 37 protons of difference involved between "aluminum" and "tin". This is an elemental mistake.
b2gills but is it a nuclear one? 19:57
moritz it's nucular
19:57 Mouq joined
FROGGS there is a German sketch about Poire belle Hélène being made of apple :o) 19:57
pmichaud decides to craft himself a tin foi.... er, aluminum foil top hat. 19:58
FROGGS "I will eat it but not under that name!" 19:59
pmichaud Okay, Wikipedia's entry on "tin foil hat" comes illustrated with "Man wearing a tin foil hat". Somehow I find that amusing, bizarre, or other.
FROGGS err... s1268.photobucket.com/user/venoid/m...e.jpg.html 20:00
pmichaud anyway, time to run again. Looking forward to seeing many of you this weekend! 20:02
b2gills FROGGS: I'm fairly certain that is 'shopped as I don't think a ham-operator would be that naive
pmichaud the ham operator might know something about his transmission equipment that others don't. :)
FROGGS *g* 20:03
skids I recall reading hat one of the longest running revert wars on Wikipedia was whether "arachnophobia" should have a big spider picture on it.
hzhou321 I see there is an Inline::Perl5, does that require perl5 installation or is it a perl5 compiler (parallel to perl6)?
FROGGS is ham still a TLA for "hold and modify" I remember from the good old Amiga days?
moritz hzhou321: it requires a perl5 compiler 20:05
FROGGS hzhou321: Inline::Perl5 needs a perl 5 library (you perhaps need to build it), and v5 would be a slang (a compiler module)
hzhou321 Thanks. Is that compiler simply an embedded perl5 or is it in perl6?
FROGGS Perl 5 20:06
hzhou321 I see. I wonder is it easy to have one just like how perl6 is.
FROGGS hzhou321: I cannot parse your question 20:07
20:07 gr33n7007h left
hzhou321 FROGGS: a compiler is just translation. So I wonder how perl6 technology is toward general translation. Perl 5 being very similar to perl6, so I wonder how that effort may be. 20:08
skids That's planned. Inline::P5 was quicker to implement, though. 20:09
hzhou321 FROGGS: the ability to let go of perl 5 dependency is also a point.
skids: that was what I figured, thanks for you confirmation. 20:10
skids Sure, but it's really not much of a dependency since it is everywhere.
hzhou321 skids: the idea is to have perl6 take over, right?
PerlJam hzhou321: take over what?
skids I think long-term perl6 might get good enough at running perl5 code that you would not need a perl5 installed, but that's long term. 20:11
Kristien The world!
hzhou321 PerlJam: such as a distribution with no perl 5, only perl 6, but still be able to run all legacy applications.
FROGGS take over COBOL /o/
Kristien I'm sure you can make valid Perl 6 code look like COBOL.
PerlJam hzhou321: why would we re-invent the P5 wheel, when we already have a perfectly good P5? 20:12
FROGGS hzhou321: that is not very likely
vendethiel Kristien: well, use COBOL is easy to do :P
just need a COBOL slang *g*
FROGGS vendethiel++
mst hzhou321: perl5 and perl6 are two separate languages, and perl5 will continue to be developed
vendethiel FROGGS: I'm sure you're just happy I use "*g*" all the time now :p 20:13
mst hzhou321: as such, referring to perl5 apps as 'legacy' is an error
nine_ I cannot imagine anything but perl 5 being able to run all legacy applications.
hzhou321 skids: why would that have to be a long term though? I was really thinking about the perl 6 technology of writing parser in perl6 and nqp, and whether that can be generalized.
mst personally, I'd rather be able to have an up to date perl6 and an up to date perl5 on my system
and have them talk to each other
20:13 darutoko left
skids hzhou321: I think mainly because its a matter of tuits. 20:14
(and priorities)
mst the only real advantage I can see is getting non-XS perl5 code onto e.g. the JVM
hzhou321 mst: having two similar language side by side is confusing. It is not about which is better or not, a less confusing guidance is good for general user.
FROGGS hzhou321: perl 6 already has grammars built in and lets you write parsers... though, reimplementing P5 is a huge task (I did quite a lot in that area)
PerlJam hzhou321: yeah, having C and C++ and C# is real confusing :)
vendethiel FROGGS++ 20:15
hzhou321 especially I believe perl5 habit will be in conflict with perl 6 habit.
mst hzhou321: sure, and that's why the perl6 developers should just have given up and gone home
vendethiel why?
mst no, wait, they shouldn't and didn't
vendethiel oh
FROGGS mst: arggh!
:P
tony-o_ mst: lol.
nine_ mst: I see a Perl 5 parser in Perl 6 as an exit strategy for a time when there's just no Perl 5 core maintainer available anymore
PerlJam FROGGS: maybe you can get hzhou321 to pick up where you left off?
vendethiel I don't think p5 and p6 are that much similar more than ruby and python. and I mean it... 20:16
FROGGS hzhou321: a normal does not care about the installed compilers... and programmers use the compilers they need/like - problem solved
hzhou321 PerlJam: C++ is having the trouble to maintain C compatibility. Perl 6 on the other hand, is not trying to be compatible to perl 5 at all, which can cause confusion.
mst nine_: if we ever get to the point where perl5 is no longer actively developed, then yes, that'll be necessary
but I don't see that point coming any time soon
FROGGS PerlJam: I have not let go off it yet... I just recently fixed several issues so that it is installable again :o)
mst and there's lots of more important things to do in the mean time, for both languages, I think 20:17
hzhou321 FROGGS: I was referring to normal programmers. But I always think normal users should know how to do basic programming.
FROGGS very true, P5 is quite healthy
nine_ mst: not soon, or even mid term. But long term it is a risk and I'm glad that there may be an alternative then.
FROGGS hzhou321: sure, I talk to my wife about her programming skills :D
mst I'm in favour of a future where we have two awesome perl family languages stealing ideas from each other 20:18
hzhou321 FROGGS: so I get you are working on P5?
FROGGS hzhou321: it is called v5: github.com/rakudo-p5/v5
mst nine_: sure. but that's orthogonal to hzhou321's attempt to pretend perl5 is automatically legacy and insult all the people still working on it
vendethiel hzhou321: c++ is having the trouble to maintain c++ compatibility ;-)
mst which is what I was trying to make obviously wrong
FROGGS hzhou321: I submitted like two or three patched to Perl 5, but only documentation and test suite fixes 20:19
mst I know too many people working on both to stand for such small minded thinking :)
20:19 kaare__ joined
Kristien Perl 5 is fun. 20:19
FROGGS better then most other languages, aye
(except when you have to use JS) 20:20
mst and, y'know, we stole a load of perl6 OO ideas to get Moose
FROGGS (or C for that matter)
mst and then perl6 stole a bunch of practical lessons from Moose
tony-o_ js is nice
mst I'm looking forward to many more years of us both repeating that sort of thing
FROGGS mst: that is how it should be, aye
nine_ mst: frankly, I do see some advantages to having a somewhat stable Perl 5 and a migration towards Perl 6 AKA the "legacy" viewpoint.
hzhou321 FROGGS: so if perl 6 programs have special signature that can be recognized, or perl 5 one's do, then in principle, we can have perl6 compiler/parser automatically load either into compatible internal structure and run them, then there will really no need to have perl5 installed anymore. 20:21
psch m: use 5.8;
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/7De3SDsdy8␤Undeclared routine:␤ use used at line 1␤␤»
hzhou321 When that happen, peopel have more inclination to pick up perl 6.
PerlJam hzhou321: if you say so.
mst nine_: that's probably because you didn't see the near-disaster we had around 08/09 when people were pushing that viewpoint
FROGGS hzhou321: the idea is nice, but the reality tells differently
mst what it nearly resulted in was a complete schism of the two communities
vendethiel m: use v5.8
camelia rakudo-moar 243c16: OUTPUT«===SORRY!===␤Could not find Perl5 in any of: /home/camelia/rakudo-inst-2/languages/perl6/lib, /home/camelia/rakudo-inst-2/languages/perl6␤»
hzhou321 mst: I did not. 20:22
FROGGS: I am having trouble imagine the problem of reality.
mst it was horrible, and messy, and divisive, and the 'sister languages' narrative was required to get things back to somewhere sensible
20:22 flussenc1 joined, integral_ joined, integral_ left, integral_ joined, yogan_ joined
PerlJam hzhou321: I think people will find other reasons to pick up Perl 6 that don't involve Perl 5 *at all*. 20:23
20:23 JimmyZ_ joined
hzhou321 mst: I guess is all depend on how stable is the perl 6 parsing perl 5 code. 20:23
mst hzhou321: no, it doesn't
nine_ mst: I'm absolutely convinced that the "sister languages" terminology saved both parts of our community. It was the right thing. I'm just wondering if it's the time to reevaluate it. Or if that time may be not that far away.
FROGGS hzhou321: the problem of reality is that the problematic P5 code is code that is written badly, decades ago und not bug free but runs on that old P5 it still runs on
PerlJam hzhou321: again, why would we re-invent the P5 wheel?
FROGGS hzhou321: you can't run that with a Perl 5 emulation mode in P6...
mst nine_: not yet, by a long way 20:24
FROGGS hzhou321: other stuff, smaller maintained projects / modules can be "easily" ported to Perl 6
hzhou321 FROGGS: are you referring to perl 5's "bugs as features"?
mst nine_: once there's a proven perl6 library ecosystem, if it turns into a good idea, I think people on the perl5 side will start suggesting it by themselves
FROGGS hzhou321: and there is benefit on both ends... the Perl 6 languages gets more used, and the resulting app is usually written better and more maintainable
20:25 brrt joined
mst nine_: but we're several years out from that, minimum 20:25
FROGGS hzhou321: I am talking about evolution, misuse of features that arn't meant that way and platform specificness
hzhou321 FROGGS: and it is too difficult to emulate those specificness somehow? 20:26
FROGGS hzhou321: I think so, yes
hzhou321 FROGGS: I see. I get it.
mst I think it's sufficiently difficult that anybody capable of making it work could probably better spend their time on something more useful 20:27
psch "Only perl can parse Perl." as they say
nine_ mst: you're very probably right. I'll just work on reducing that time as much as possible by building the best bridge between the languages. Maybe that will bring the community parts closer together again :)
FROGGS hzhou321: think about these old cobol applications in the financial industry... these run for several decades without being touched
mst nine_: that's why I want Inline::Perl6 in perl5
hzhou321 FROGGS: but do you still think it still worth the effort to try? It will be merely a side project to check the perl5 compatibility. 20:28
mst then we can stop playing stupid games about which one is 'primary'
FROGGS hzhou321: you cannot just write a parser, run that on a current intel processor and hope all will go well
mst and just accept that there's more than one way to do it
20:28 rurban_ left
mst and let the users vote with their editors, as it were 20:28
nine_ mst: give me a couple boring lighting talks and I may give it a shot ;)
FROGGS hzhou321: I'm not sure if v5 or Inline::Perl5 will get a real market...
hzhou321 FROGGS: I did not think it would that extreme. In the presentation you sent, he even talks about parsing other completely different languages. 20:29
mst FROGGS: I plan to embed perl6 code in perl5 code, and probably later on the other way around 20:30
hzhou321 They only need be comaptible at vm level.
nine_ hzhou321: parsing is about 10 % of what you need to run Perl 5 code
20:30 Rounin left
FROGGS hzhou321: we also have something like python, php and rubi in NQP... so, the parser and the VMs are up for it... it just takes a lot of time and hackers to do it 20:30
nine_ hzhou321: but without the missing 90 % you cannot even finish the parsing part
hzhou321 nine_: I see. You mean an entire object models 20:31
FROGGS mst: that is what I'd like to do from day to day
psch hzhou321: www.perlmonks.org/?node_id=663393 might be of interest 20:32
nine_ hzhou321: the runtime, the libraries, the C interface that exposes pretty much the whole implementation of Perl 5. They all have been used to influence the parser. To parse Perl you have to be able to execute it.
20:32 integral left, yogan left, flussence left, JimmyZ left, JimmyZ_ is now known as JimmyZ
hzhou321 nine_: right, that makes sense. 20:33
FROGGS one just have to think of PHP... you'd have to bind a gazillion of C-libraries and expose that via weird function names to provide a "real" PHP
the grammar is not that interesting or special for PHP, really
nine_ Or Python. There are alternative Python implementations. But none of them are 100 % compatible to CPython because of the C interface.
hzhou321 So mst's idea of embedding perl5 into perl 6 might work. Just have perl6 load perl5 upon perl 5 code.
20:34 lestrrat left
mst it's almost as if I've thought this through :P 20:34
nine_ hzhou321: that's Inline::Perl5. What's missing is rakudo automatically loading Inline::Perl5 if it detects Perl 5 code.
hzhou321 nine_: that is exactly I am thinking.
PerlJam nine_: so ... when will you have that feature completed? ;) 20:35
hzhou321 That should n't be difficult right?
FROGGS nine_: that would be just a matter about a few lines :o)
hzhou321 All perl 5 scripts have the #! lines
nine_ PerlJam: implementing use Foo:from<Perl5>; was surprisingly simple. So I guess autoloading Inline::Perl5 will be surprisingly difficult ;)
dalek kudo/nom: a7dc209 | Mouq++ | src/Perl6/Grammar.nqp:
Make iffy things :iffy<1>, as in STD.pm6. Fixes RT #120371
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120371
Kristien Detecting Perl 5 code is easy, just calculate the input entropy. 20:36
FROGGS nine_: no, v5 will already be loaded, and that just wants replacement
m: use v5;
camelia rakudo-moar 243c16: OUTPUT«===SORRY!===␤Could not find Perl5 in any of: /home/camelia/rakudo-inst-2/languages/perl6/lib, /home/camelia/rakudo-inst-2/languages/perl6␤»
FROGGS it tries to load that module...
and we can also let it do that for:
m: package Foo;
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/tDAowT4Iw_␤This appears to be Perl 5 code. If you intended it to be Perl 6 code, please use a Perl 6 style package block like "package Foo { ... }", or "module Foo; ...".␤at /tmp/tDAowT4Iw_:1␤…»
20:37 bjz left
FROGGS Kristien: *g* 20:37
dalek ast: e589dfb | Mouq++ | S03-metaops/not.t:
Test for RT #120371
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120371
nine_ FROGGS: I like what you're saying :)
FROGGS nine_: it is even specced
hzhou321 FROGGS: I am lost in the conversation. Is it still relavant to my question? 20:38
20:39 rindolf left
FROGGS hzhou321: I was more talking to nine++ here 20:39
20:39 lestrrat joined
hzhou321 FROGGS: I know, I want to know if it is related 20:39
dalek kudo/nom: 340b7a7 | jnthn++ | src/vm/parrot/guts/s (2 files):
Sync header files with NQP.

Should hopefully fix the r-p build.
jnthn sleep, hopefully & 20:40
FROGGS hzhou321: yes, because it is about autodetecting Perl 5 code and treating it like that
jnthn: sleep well :/
hzhou321 FROGGS: summary?
FROGGS hzhou321: what?
hzhou321 FROGGS: so is it easy or impossible? 20:41
PerlJam hzhou321: neither
FROGGS hzhou321: detecting some scripts as Perl 5 is easy :D
hzhou321 FROGGS: it has to be all.
mst I'm not sure I see the gain to autodetection, for me
FROGGS but... I often don't put a 'use 5.14' at the top
mst I'd be happy enough with lib/perl5 and lib/perl6
Kristien use strict and use warnings 20:42
lizmat FWIW, I would *NOT* like to see automatic loading of Perl5 binary interop
mst Kristien: which don't appear in most of my perl5 code
hzhou321 FROGGS: I am thinking if perl 6 from now require a special signature, that will make it trivial.
mst Kristien: because I either 'use Moo;', 'use Moose;' or 'use strictures;'
Kristien package
return 1; at the end :D
FROGGS lizmat: well, you'd have to explicitly install Inline::Perl5
Kristien: that'd be too late :o) 20:43
lizmat even then, I'm hesitant about it
Mouq std: /|&foo/
camelia std f9b7f55: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/aEBFq1caq2 line 1:␤------> /|⏏&foo/␤ expecting any of:␤ statement end␤ statement list␤Parse failed␤FAILED 00:00 134m␤»
lizmat you would need something *more* than just having Inline::Perl5 installed
Kristien PostgreSQL has a \| operator for square root
FROGGS lizmat: well, a 'use v5' is something more
Mouq m: /|&foo/
camelia rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/DxMXmRGBQd␤Undeclared routine:␤ &foo used at line 1␤␤» 20:44
mst still thinks having separate inc path lists for the two languages would be quite sufficient
lizmat FROGGS: but that would be the AST version of Perl 5, no?
PerlJam mst: indeed. Too much magic conjures dragons that eat you.
nine_ lizmat: why?
lizmat mst PerlJam: they *must* be different
hzhou321 mst: I agree for the library part. But there are scripts in the bin folder 20:45
lizmat nine_: because if we would have incorporated Perl 4 in Perl 5 like that, we would *still* have people running Perl 4 code
mst hzhou321: and those can use the correct #! line, or, in the case of perl5 scripts that want to be run under rakudo, an explicit 'use v5;'
hzhou321 mst: so the conclusion is trivial, right?
lizmat nine_: to this day
mst lizmat: actually, I'm pretty sure I know sites that still do 20:46
PerlJam lizmat: I'm sure there are still people running P4 code in their P5 compiler today :)
nine_ lizmat: we will never get rid of all Perl 5 code.
lizmat I'm ok with not getting rid of Perl 5 code
hzhou321 lizmat: especially after 20 years of accumulation. 20:47
lizmat I'n *nott* ok with having to support Perl5.lib ad infinitum
nine_ I'm just thinking, Perl 6 automatically executing Perl 5 code via Inline::Perl5 and this code can access Perl 6 without having to figure out which compiler/VM/whatever.
20:48 felher_ is now known as felher
mst lizmat: I see no problem with considering Inline::Perl5 to be another sort of inline - just like perl5 has e.g. Inline::Python 20:48
hzhou321 nine_: if the code is going to access perl 6, what is the reason for it to be writting in perl 5 ?
nine_ Wrapping on startup script of my Catalyst app in Inline::Perl5 is easy. Doing this for every single test file is tedious.
hzhou321: my use case is using a web framework that's written in Perl 5 for an app that's at least partly written in Perl 6. 20:49
lizmat I'm just worried that we will need to maintain the Perl 5 core codebase ad infinitum that way
and we will have fewer and fewer people willing and able to do that 20:50
hzhou321 nine_: I see, in that case, having the framework ported to perl 6 in important.
How difficult is to porting perl5 to perl 6 in general?
mst lizmat: I would prefer to worry about that problem when we get there 20:51
FROGGS lizmat: a 'use v5' loads whatever Perl5.pm there is, so if Inline::Perl5 ships a Perl5.pm, that is totally up to nine (and totally up to you choosing what Perl 5 implementation you want)
mst for the moment, making it easier for people to mix both languages is a net win for everybody
nine_ hzhou321: porting being important did nothing to speed up Python 2 -> 3 migration. I don't want to decide between these languages for several years. I want to use both.
FROGGS hzhou321: the biggest problem is that dependencies you use might not exist
mst also, something like DBIx::Class would *not* be fun to port 20:52
FROGGS hzhou321: for example, you are lost if you wanna do SOAP stuff... but I am working on that
mst: it is always fun, isnt it? :o)
hzhou321 FROGGS: right, the framework have to port that as well.
nine_ Why use an unfinished, buggy port of DBIx::Class when I can use the real thing right now and switch to an awesome replacement (designed with Perl 6 features in mind) a couple years down the road? 20:53
mst sloccount estimates that just DBIC is close to 20k lines
FROGGS hzhou321: right, the rest is just writing your code a little bit more nicely, comprehensive and readable
mst not including its dependencies
dalek kudo/nom: 2a3dc1e | lizmat++ | src/core/Any.pm:
Make DELETEKEY a more generically usable primitive
pyrimidine Speaking as someone who sits on a mound of crufty code called bioperl:
I think the important bits will make their way to perl6 naturally. the less useful ones will not be ported
FROGGS mst: so, we just have to write about 15k because P6 is not that verbose :P 20:54
lizmat nine_: I'm just worried that that Perl6 version of DBIx::Class will never happen
nine_: if we make it too easy to use the "old" one
FROGGS lizmat: it will happen... a v5 emulation/binding will never be perfect or good enough for all cases
20:55 andreoss joined
PerlJam lizmat: surely as more people are using P6, they'll get frustrated that the old module isn't very idiomatic to P6? 20:55
lizmat FROGGS: I hope so
PerlJam: I hope so
mst lizmat: equally, if you don't make it easy, then people won't get the hang of the stupidly rich feature set
lizmat: and what you'll get instead if a dozen poor reimplementations of CDBI
lizmat mst there's that
I wish nwc10 would chime in 20:56
hzhou321 PerlJam: I don't that will happen (more people come to perl6). People only come to what is in fashion,
FROGGS perhaps he's busy porting stuff :o)
mst also, honestly, every time you say something like this I start wondering if I even want to use perl6 - I'd much rather you convinced me to use perl6 because it's better than because you're actively trying to kill my current preferred language
as somebody who cares deeply about trying to avoid divides between the communities, it's really demoralising
nine_ lizmat: people will use DBIx::Class until something much better comes along. As a user and fan of DBIx::Class I can tell you that there is _so_ much room for improvement. And Perl 6 would be a natural fit for a better query language. 20:57
moritz knowing lizmat a bit, I'm pretty sure that's not her intention
mst I'm sure it isn't, but that's how it feels
FROGGS mst: in a few months you can judge... compare XML::LibXML and XML::Compile from P5 to P6...
20:58 bjz joined
lizmat mst: that was not my intent 20:58
japhb mst: Not having read the whole backlog (because sheesh), I would say I don't think I'm alone in 1. Not wanting to kill Perl 5, 2. Definitely wanting to make it extra-easy to glue to Perl 5.
FROGGS and in fact, P5 has to stay, a lot of my code needs it /o\
hzhou321 I think porting only can go so far. Perl 6 really need good application on its own to kick off.
lizmat I'm not talking about killing Perl 5 source code
I'm talking about the need to not have to maintain the Perl 5 core indefinitely 20:59
FROGGS hzhou321: that's always a point.... other langs have a wiki or a blog engine... and a Perl needs that too
skids Personally I don't weight the "killer app" idea very heavily.
lizmat If Inline::Perl5 is used indefinitely, then the Perl 5 core would need to be supported for almost as long
japhb mst: Also, as an -Ofun community, we try pretty hard not to be actively demoralizing on purpose ....
PerlJam lizmat: but that's p5p's problem, not ours.
mst japhb: I'm aware, which is why I mentioned it 21:00
japhb Fairy nuff
mst lizmat: what PerlJam said. stop prophesying our death and let us worry about that.
lizmat PerlJam: well, if we consider ourselves to be one community, it *is* our problem as well
hzhou321 About maintaing perl 5 to infinity, what will happen the maintainence just stop today?
mst lizmat: we're two sub-communities within one wider community.
lizmat ok, fair enuf
I've said what I wanted to say 21:01
andreoss El_Che: will be there a webcast of TimToady's talk?
woolfy FOSDEM video recording / streaming: we have two volunteers to do the "video duty": Theo van Hoesel (vanHoesel) and Jeff Goff (drforr). I hope that is enough. Any more volunteers are welcome.
PerlJam lizmat: If there is still love for P5, it still needs to be maintained. We shouldn't try to circumvent that.
(at least, that's how I see it)
japhb hzhou321: You'll have a great language in which people will slowly find bugs and no one will fix them. Thankfully very highly unlikely. c.f. Linux 2.4.
FROGGS and also, it is not only about maintaining P5, it is also about letting it evolve... a lot happened in the last releases and there is no reason to not keep it that way :o)
mst right. having said 'perl5 is the new perl4', it's clear that you don't love it anymore, which is completely fine so long as you let the people who do keep doing so 21:02
woolfy andreoss: yes, there will be videorecordings of his talk, but I am not sure if this is broadcast live, but I am sure that quite soon all the videos will be available online
hzhou321 japhb: well, for me, I have not updated my perl 5 for years with no problem.
mst I want the people who love perl6 and hate perl5 and the people who love perl5 and hate perl6 to be able to continue using their way to do it, basically
hzhou321 japhb: perl 5 is losing users anyway
mst I'm hoping I'll eventually end up being somebody who loves both
PerlJam hzhou321: citation?
Kristien I love Perl 5. 21:03
japhb hzhou321: For me, the lack of distro updates for years killed me. RHEL, I'm looking at you. With daggers in my eyes.
woolfy mst: there are more and more P5 people playing and working with P6, so I really feel the two communities are growing back together.
21:03 bjz left
PerlJam japhb: everybody knows that you have to build your own Perl on redhat! ;) 21:03
japhb PerlJam: *sigh* 21:04
mst woolfy: that's my hope, but if we let the 'perl6 replaces perl5 no matter what you think' narrative creep back, it'll fall apart again
hzhou321 japhb: yeah, but if RHEL tell you it is being forked and all effort is there, you would follow , right? Unless is legacy, then it will always stay, like cobol
mst woolfy: the narrative has to be 'we think perl6 is better and want to show you why so you fall in love with it too'
Kristien I once wrote a video game in COBOL.
woolfy mst: I don't know why you bring this up
Kristien I should do that in Perl.
nine_ lizmat: I'm building the best bridge between P5 and P6 that I can because I will need such a bridge if I hope to being able to use P6 at my company. A bit of compatability will just not do. 21:05
PerlJam Kristien: and Perl 6!
FROGGS Kristien: ohh nice... join #perl6-gaming :D
woolfy mst: who did that? Do I need to read backlog?
hzhou321 mst: IMHO, better is a propagada terms. It is hard to prove better.
japhb hzhou321: I've considered in the past making it a condition of employment that the department in question not be deploying onto RHEL. :-/
brrt Kristien: timotimo also did a game in perl6, iirc
japhb nine_++ for that 21:06
moritz tadzik++ did at least two, iirc
mst woolfy: lizmat's comments *felt* like that, even though I know that wasn't what she was meaning - I spent quite a while trying to avoid carnage after the 'perl5 is the new perl4' lightning talk :/
I'm trying to pre-file bugs against the communication protocols here
hzhou321 japhb: I guess I atypical, I always try to live with subset and having my own way.
mst so we don't end up with miscommunications that cause trouble between people who were never actually trying to be mean to each other
woolfy mst: well, don't you say again that lizmat does not love P5, because that's the language she has been working with for over 15 years. 21:07
japhb hzhou321: These days I think in that situation, I would just deploy VMs or containers with what I wanted in them. :-)
hzhou321 japhb: exactly.
21:08 bjz joined
woolfy mst: if it felt that she wrote what you thought what she wrote, it might be your hangup. You should know lizmat better than this. 21:08
mst woolfy: I'm *not* saying that. I'm saying "here are things that you are saying that I still manage to take personally, even though rationally I know that's not what you think"
japhb woolfy: I've got her beat on that front. It's the extra 4 years that really changes you. ;-)
woolfy japhb: lizmat is working 20 year with Perl now. At least 15 years with Perl5, and the last 3 years with Perl 6. 21:09
nine_ woolfy: nevertheless it looks quite clear like lizmat's heart is in Perl 6 nowadays and that's perfectly fine.
gfldex i had to use P5 at work today.
japhb woolfy: I'm teasing.
gfldex i fixed some unicode mess somebody else (who left the company years ago) behind for me
it was not fun
for me P5 is that old tool that still gets the job done 21:10
woolfy nine: lizmat's heart is indeed with P6. But the last couple of years we have been at enough workshops and conferences that were mostly (or even "only") P5, to show that our love for P5 is not gone.
pmurias bringing up the 'perl6 replaces perl5' narrative now seems ultra silly, Perl 6 should just get good enough first that all the perl 5 people will just want to figure out how migrate themself not feel forced too
japhb Though, wow, I can't believe I've been programming Perl variants for two decades ....
pmurias and that point feel far away now
gfldex it's a bit dirty and needs to be bannged against the wall every and then
but it's for sure not fun to work with
mst pmurias: right. I'm mentioning it because there are things people are saying that can easily pattern match to that narrative
FROGGS gfldex: that is also a point where I hope that P6 gets the job done in a way that I don't loose my mind... how easily do you de-/encode to WTF-8? 21:11
gfldex i would like to have fun with P6 at work
dalek c: 8c92426 | moritz++ | lib/Language/regexes.pod:
example for \S in regex
c: 09867b7 | moritz++ | lib/Language/regexes.pod:
Regexes: document :overlap and :exhaustive
mst especially for those of us who were around the last time we had a stupid pile of in-fighting over people misunderstanding each other
japhb infighting--
mst pmurias: and I don't want us to accidentally go back there, given it's obvious that nobody actually *intends* to
but that means we have to be careful not to accidentally talk past each other
open source is made of people. this is both its best, and worst, property :D 21:12
japhb
.oO( Only do it intentionally, with cheerleading megaphones )
pyrimidine mst++ # agreed
21:12 bjz left
FROGGS my talk at the FOSDEM will cover both Perls, so my duty will be done by then :o) 21:12
dalek c: 68edd4d | moritz++ | lib/Language/variables.pod:
Improve a heading (I hope)
21:13
pyrimidine Infighting is demoralizing on all sides
woolfy mst: P6 will only become a success if enough P5 people will also (!) work with P6. P6 will need P5. If only because of the enormous amount of modules that at some point have to be converted or rewritten, preferrably by the original authors.
gfldex that was the culprit btw: metacpan.org/pod/HTML::TreeBuilder#parse_file
easy to fix right? just change the default of that module to handle utf-8 21:14
sadly that might or might not break old code
moritz woolfy: I hope that we can attract programmers from other communities as well, not just from p5
woolfy Not many P6 authors will talk negative about P5. If they do, it is in a way as "P6 was once begun because P5 had some problems", and I think P5 still has several of those problems, and P6 fixes most of them.
moritz: I hope that too.
PerlJam "not many"?!?
woolfy PerlJam: ? 21:15
PerlJam I would think the number is closer to "none"
Unless you count the grousing about missing features or bugs or whatnot, but then die-hard P5 people will also say such things. 21:16
woolfy PerlJam: I've heard some... and they said some angry things... but it's like any relationship: it is not just roses and moonshine, sometimes we have to argue...
FROGGS today I hated Perl 5 (my application) for several hours... but the language is still fine ;o) 21:18
and yesterday I hated Perl 6 because NativeCall, circularities and too many types being involved did not play nice, not nice at all 21:19
woolfy Well, for me, I still love P5, and not just because it helped us with our company for so long, and it made life as a website developer so much easier. It is also because the people are so awesome. And with P6, programming seems even more wonderful, and the people are at least as awesome as the P5-people. 21:20
21:20 xfix left
vendethiel $awesome-people++ 21:21
hoelzro $hyphenated-variable-names++
FROGGS :P
PerlJam hugs #perl6
jdv79 i, as a majoratively p5 user for the last decade plus, would not mind never using p5 again if p6 repaced it. 21:22
both are cool; p6 is just cooler.
21:22 pierrot joined
Kristien how many percents cooler is it? 21:23
21:23 pierrot left
japhb Kristien: ALL THE PERCENTS 21:23
Kristien 6 - 5 = 1, and 1 is 20% of 5!
Perl 6 is 20% cooler!
PerlJam Kristien: you need the Kelvin scale to measure its coolness.
avar Just speaking as a lurking bystander who works on p5 daily, I just haven't yet seen the value proposition for me moving to p6 as opposed to some other unrelated language, seems like it still requires a FFI to interact with p5, and if I go down that route there's a lot of more mature stuff I could poke at.
avar 0.02 EUR
FROGGS avar++ 21:24
I don't want an interaction with Perl 5 I think... I just want to have the expressiveness of Perl 6 while still having all the deps I need :S 21:25
avar I mean, at work we do like 95% of our stuff in p5, like 4% of those is "just because I feel like it" and the remaining 1% are Java/C/Go or whatever for speed.
21:26 pierrot joined
jdv79 i agree. i'm more saying that once p6 hits a few points i'll be happy to transition mostly. 21:26
PerlJam avar: and you'd never do the "just because I feel like it" stuff in P6?
21:27 jluis_ left
moritz .tell jnthn bisecting of nqp tells me that your commit 98c0b61f8b5fee6e383b6ee03070139ebf04106f "Add parametricity bits to STable." causes the rakudo-parrot core compilation segfault 21:27
yoleaux moritz: I'll pass your message to jnthn.
avar PerlJam: Sure, but for that stuff I might be more likely to choose CL, Clojure, Go, Rust or whatever. The reason I stay with p5 is compatibility with existing stuff, not really the language per-se.
PerlJam yeah, figured. 21:28
pmurias avar: would having use Foo:from<perl5> working transparently still count as FFI?
PerlJam I've only rarely found projects that are divorced enough from our P5 code that I would consider trying P6 for them.
(though there is some P6 code as part of the deliverables to a project I did for the NOS) 21:30
avar pmurias: Yeah some of that new FFI stuff looks nice. In particular one sweet spot that we don't have now is being able to semi-transparently write blocks of code in a different language, but I guess Inline::* comes pretty close..
Any of you going to FOSDEM b.t.w.? I'll be there on Friday. 21:31
We at booking are slowly branching into other languages, it would be interesting to find if p6 is practical for stuff like that :) 21:32
mvuets avar: we have a jabber room (-; 21:33
muraiki can I use "is cached" with a multi?
avar #fosdem you mean?
mvuets avar: #perl6
Mouq muraiki: It's probably a better idea to use it on the multi's proto
muraiki mouq: thanks, I'm still learning, hehe
lizmat Mouq: muraiki: depends on your need 21:34
Mouq np, that's a good question :)
avar mvuets: You know that's here, right?:)
lizmat one MMD candidate might be better suited for caching than others
mvuets avar: sorry, i meant a Perl 6 _jabber_ room at work
avar: here is IRC, right? (-:
muraiki mouq: how do I write a proto? 21:35
avar Ah, I didn't know that
nine_ avar: you there on Saturday? I'll be giving a talk on Inline::Perl5 and Inline::Python. Suggestions for content still accepted ;)
mvuets speaking of Inline::Perl5: someone at work managed to use a DB layer from within Perl 6, kinda fun 21:36
Mouq m: proto foo is cached (|) { }; multi foo ($) { say "called!" }; foo; foo
camelia rakudo-moar 2a3dc1: OUTPUT«===SORRY!=== Error while compiling /tmp/ezwDqDozWx␤Missing block␤at /tmp/ezwDqDozWx:1␤------> proto foo is cached ⏏(|) { }; multi foo ($) { say "called!" }␤»
hoelzro mvuets: I still need to finish that bot for you all to use =)
FROGGS m: proto foo(|) is cached { }; multi foo ($) { say "called!" }; foo; foo 21:37
camelia ( no output )
mvuets hoelzro: aye, right (-:
mvuets parts
hoelzro o/
Mouq Oh
m: proto foo(|) is cached { }; multi foo ($) { say "called!" }; foo 4; foo 5; foo 4
camelia ( no output )
21:37 mvuets left
Mouq Hm 21:37
FROGGS m: proto foo(|) is cached { * }; multi foo ($) { say "called!" }; foo; foo
camelia rakudo-moar 2a3dc1: OUTPUT«===SORRY!===␤Calling 'foo' requires arguments (if you meant to operate on $_, please use .foo or use an explicit invocant or argument)␤ Expected any of: ␤ :(Any $)␤at /tmp/8O7C7CKukN:1␤------> { * }; multi foo ($) { s…»
FROGGS m: proto foo(|) is cached { * }; multi foo ($) { say "called!" }; foo 42; foo 42
camelia rakudo-moar 2a3dc1: OUTPUT«called!␤»
Mouq FROGGS++ 21:38
avar nine_: Yeah I'll be there, arriving on Friday evening, going to delirium
dalek c: 58ea8e9 | skids++ | lib/ (3 files):
Clean up my terminonology and whitspace from a few previous commits
21:39
FROGGS avar: I'll be there too, probably at the Perl booth :o)
avar Cool, meet you guys there
muraiki hrm, here's what I'm trying to do: gist.github.com/muraiki/1658a29e82d941507bb5 21:40
"Type check failed for return value; expected 'NonNegativeInt' but got 'Any'"
I guess I need to read more on protos
lizmat is glad seeing so many Perl5|Perl6 people around
FROGGS muraiki: put a * in the proto body
muraiki nice!! 21:41
FROGGS muraiki: which means: "dispatch to the candidates as usual"
muraiki man this is so great
woolfy Anybody here going to FOSDEM should please read wendyga.wordpress.com/2015/01/25/f...n1feb2015/ 21:42
21:42 khisanth_ is now known as Khisanth
woolfy and tell me if you want to join for dinner 21:42
We have dinner both Saturday and Sunday and all are welcome, but we have 70 resp.50 seats reserved, so please tell me (privately) if you want to be on the list for either or both dinners. 21:43
Thank you for your attention.
If you are a speaker, you are automatically on the list for both dinners. Please tell me if you want off the list.
21:44 virtualsue left
FROGGS \o/ 21:47
woolfy++
dalek p-js: 392de93 | (Pawel Murias)++ | src/vm/js/ (3 files):
Stub things so we can use a real NQPCORE.setting.
21:48
p-js: 8f534e5 | (Pawel Murias)++ | / (4 files):
Use the real NQPCORE.setting instead of mini-setting.
FROGGS pmurias++ # these are nice commit messages
21:51 espadrine joined
espadrine I feel like rakudo.org/ is dead, and downforeveryoneorjustme.com/http://rakudo.org/ agrees 21:53
FROGGS ewww 21:54
espadrine I know, it brings tears to my heart too
FROGGS I wonder who the host is
lizmat FROGGS: I see a 500 Internal Server Error
FROGGS lizmat: me too
bartolin_ dig rakudo.org # 74.200.73.219 21:56
dig -x 74.200.73.219 # pmichaud.com
21:57 obra joined
pmurias FROGGS: it turns out the op I was stubbing was a noop anyway ;) 21:57
FROGGS hehe
timotimo oh, rakudo.org 21:58
i was just logging into www.p6c.org m)
dalek kudo/nom: c377ff6 | lizmat++ | / (8 files):
Make adverbed slices up to 10% faster still

Some backstory: slicing was done by a large piece of code that handled both array slices and hash slices. At various places, a flag was checked to do either for instance an "at_pos" or an "at_key". By creating a P6 script in tools/build (makeSLICE.pl6) that templates that code to generate separate cases for list and hash slices, we effectively removed a lot of flag passing and checking. The generated code should be better optimizable / jittable. At the expense of a larger core setting, of course. Which is the reason I've done this as a single commit, so that we can revert easily if needed.
21:59
Mouq lizmat++ 22:00
timotimo looks cool :)
lizmat oddly enough, the templating turned out to be relatively trivial
using Q:a:to 22:01
lizmat just loves zen slices
timotimo <3
dalek kudo/nom: eea99e3 | Mouq++ | src/Perl6/Grammar.nqp:
Steal an error message from STD.pm6; fixes RT #79116
22:03
kudo/nom: b472a3e | Mouq++ | src/ (2 files):
Make a typed exception for RT #114748
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=79116
Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114748
dalek kudo/nom: 4603718 | Mouq++ | / (10 files):
Merge branch 'nom' of github.com/rakudo/rakudo into nom
ast: fc42158 | Mouq++ | S03-metaops/reduce.t:
Update test for RT #114748
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114748
pmurias jnthn: is there any need to setboolspec with mode 5 (MODE_NOT_TYPE_OBJECT) on NQPRoute and NQPRegex, as it appears to be the default anyway?
22:04 brrt left
bartolin_ Mouq++ 22:04
m: $_ = 10; s/1/2/; say $_; say $_.WHAT ## what would you expect here? 20\n(Str) or 20\n(Int)? 22:07
camelia rakudo-moar 2a3dc1: OUTPUT«Cannot call 'subst-mutate'; none of these signatures match:␤ in method subst-mutate at src/gen/m-CORE.setting:4247␤ in block <unit> at /tmp/m1HuXMlReX:1␤␤»
timotimo twitter.com/ObnoxiousJul/status/55...9903991811 - this could be something interesting to answer, perhaps? 22:09
like, having a nice little article about that
(but what's with the naked lady in the background? >_<)
gfldex it's a sexy pinup girl with a deformed bum 22:10
timotimo that'd explain it
at least it's not a total escher girl
Kristien yeah, she should be in the foreground. what a sexist! 22:13
hzhou321 Hi experts, if NQP is a subset of perl 6, why rakudo cannot be directly compiled by perl 6 but need nqp to bootstrap?
Kristien define "compiled by Perl 6"
hzhou321 Kristien: can perl 6 compile nqp code? 22:14
Kristien define "perl 6"
gfldex any language that isn't machine code needs at least a little bootstrepping
hzhou321 Yes, it can have a compiled perl 6 to do that.
timotimo hzhou321: it's not a fully true subset, there's some semantic differences that make it not possible
hzhou321 timotimo: thx 22:15
hoelzro is anyone opposed to Type($value) calling invoke/postcircumfix:<( )> with $value, rather than a Capture with $value in it? 22:16
I feel like it's more intuitive
gfldex hzhou321: the plan is to lose nqp at some point by teaching perl6 to be a compiler
hzhou321 gfldex: that ideed was my question. I see. 22:17
gfldex what leads to an interesting hen-egg-question: what was there fist, Perl 6 or Perl 6? 22:18
FROGGS a cross compiler probably 22:19
dalek c: 1f4b487 | skids++ | lib/Language/mop.pod:
Gloss some grammar, redo metamethod name conflicts

The example was obviously expecting .WHY to echo the class name. That does not in fact work. I tried to give the .WHY a Pod value, however, though the example is AFAICT correct, it does not compile as is, and also, the proposed "WHY"() trick does not in fact work anymore if it indeed ever did.
FROGGS gfldex: ... written in PIR IIRC 22:20
timotimo the earliest thing we had was written in PIR, that is correct 22:21
i think at the very beginning we had the Parrot Grammar Engine or what it was called. from that, NQP grew, if i understand correctly
FROGGS PGE, that rings a bell 22:22
skids Doesn't pugs predate PIR? Not that it was used to develop NQP.
geekosaur more that pugs didn't care much since it was not using parrot?
22:23 Mouq left 22:26 Kristien left
timotimo oh, i was just talking about nqp and rakudo here 22:27
pugs outputted, among other things, PIR
22:33 adu joined, telex left
skids I wonder if there's a better possible term than "type object" for type objects. 22:34
22:34 telex joined, pmurias left
lizmat uninstantiated object ? 22:35
good night, #perl6!
skids While that does embed the use of them as typed-undefined-values, often you want to emphasise that it is an object representing a type. 22:36
22:36 asdf12z__ left
skids "naked type" maybe. 22:37
FROGGS class
skids Well, there cam be MOP objects that are not classes. 22:38
masak ah, the ambiguaity of `is <Class>` and `is <trait>` in the backlog. interesting. 22:45
I find I don't mind so much. even if people mis-capitalize, there shouldn't be a trait with the same name as a class. 22:46
but the spec *should* be entirely clear on this: if you have both a class and a trait, which one wins in that case?
I don't remember reading anything about that.
because if *that* bit is spec and not implementation-dependent, then we're fine. even IDEs and similar can always tell what `[Dtis <something>` 22:47
what the `is <something>` means
andreoss: re pidgins and knowing both Perl 5 and Perl 6 -- nope, no problem there, in my experience. maybe being well-founded in programming syntax and semantics in general helps, though. fortunately, those who do Perl 5 often have many languages in their quiver. 22:51
22:51 kurahaupo1 joined
skids Hmm not for "type object," but "haplotype" is an perhaps nicely cross-purposed word. 22:52
22:53 davido__ left, raiph joined 22:54 davido__ joined 22:55 FROGGS left 23:04 lestrrat left 23:05 hzhou321 left 23:09 dj_goku left, kurahaupo1 left 23:11 lestrrat joined
dalek c: 16635bb | skids++ | lib/Language/glossary.pod:
Enhance "Type Object" definition to include undefinedness

In case a newbie gets a "type object" error message and then looks it up in the glossary.
23:12
timotimo i'd love to see something like jsfiddle for perl6 and having this mozilla-made collaboration thingie on top of it would be lovely, maybe even a must-have
23:13 BenGoldberg joined
timotimo does somebody want to try this with me? jsfiddle.net/#&togetherjs=qhMVrEFqOl 23:13
espadrine mozilla-made collaboration thingie? do you mean together.js?
timotimo that's the one
espadrine well, operational transformations 23:14
masak to all the people in the backlog who mumble "maybe it's time to reevaluate [the 'sister languages' message]" -- no. it's not time. you're wrong, and mst is right. I was there too. Perl 6 is great, but not yet stable/production enough to broadcast a "Perl 5 is obsolete" message. 23:15
and if you believe it is, consider that *mst* thinks you're wrong and *I* think you're wrong, and you shouldn't do that.
I cannot stress this enough: right now, the focus of the Perl 6 community should be making the language more ready. not claiming that the language is ready. 23:17
the world has seen enough high-aiming promises and plans. the way we impress them is with... y'know, actual implemented stuff.
gfldex how does together.js know that timotimo is my friend? o.0 23:18
jdv79 i think its just an unavoidable consequence of Larry's fosdem declaration. Relax - 2015 has just begun;) 23:19
masak jdv79: I fear you're right. 23:20
don't really know what to do about that. 23:21
timotimo gfldex: huh?
gfldex timotimo: it told me so and now i can see a little green hand with your name on it
skids It's in the URL. 23:22
gfldex anyway, i need to dream about a beginning xmas party. good night
skids Though of course, you could invite all your enemies to a collab, and it would say the same thing :-)
23:22 Alina-malina left 23:23 Alina-malina joined
timotimo i told together.js what my name is 23:24
gfldex: you are friendly fox?
23:26 gfldex left 23:27 kurahaupo joined 23:29 lestrrat left 23:31 hzhou321 joined
masak caught up with backlog 23:33
glad to see the p5-p6 discussion changed to something slightly less divisive
timotimo didn't backlog to it 23:34
23:34 lestrrat joined
masak the real nugget for me was probably irclog.perlgeek.de/perl6/2015-01-27#i_10015333 -- an actual p5 user chiming in about his reasons for *not* switching to Perl 6 yet. 23:34
if we can make the deal seem sweet to people like avar++... then we'll be onto something.
but we can't cheat our way there. we need to fill in some serious blanks. 23:35
heck, we need to start by *enumerating* the blanks, and prioritizing them.
avar masak: Are you coming to FOSDEM too? 23:37
23:37 adu left 23:38 kurahaupo left
ab5tract masak: don't worry, i'm working on avar ;) 23:39
dalek kudo-star-daily: 50ae687 | coke++ | log/ (9 files):
today (automated commit)
23:40
rl6-roast-data: f4d5a8e | coke++ | / (4 files):
today (automated commit)
ab5tract is leaving most of the backlog to $after-sleep
but i agree with your points masak. i was already wondering if we should craft a "before-6.0" checklist somewhere 23:41
avar haha
ab5tract items like "prune obsolete documentation that appears in google search results" 23:42
smaller things like that up to bigger things like nice-to-haves. but a backlog of sorts to get folks motivated 23:43
avar: you will be mine.. oh yes, you will be mine
avar haha 23:44
ab5tract hoelzro++ # after being once again helpfully cluebatted in the right direction by your "did you mean $!var" patch 23:45
23:47 hzhou321 left
timotimo ah, avar is still hanging out here 23:50
i'm still kind of at the point where perl6 performance is my biggest WANT 23:51
23:52 hzhou joined
avar timotimo: How does it compare to other stuff you've tried? 23:52
I.e. how does it fall on the C > Go > Java > (Perl|Python|Ruby) > * continuum ? 23:53
timotimo i haven't ever used Go or Perl or Ruby
masak avar: not going to be corporally at FOSDEM this year, no.
avar: I'll try to haunt you in spirit and on IRC, though ;)
timotimo sometimes it can suck very badly. we're working on it ;)
every other week we'll improve the speed of something or other by 10x or something :)
23:53 hzhou left
masak the facts are these: 6 is bigger than 5. of the (diminishing) Perl marketshare, Perl 5 is something like 99% of it. when I wrote that last sentence, I didn't go "hm, maybe it's just 90%", I went "I wonder how many 9s I should put in". 23:56
in that situation, it doesn't *matter* if Perl 6 is technically superior. not yet.
avar In any case the biggest growth market for any "sister" language is probably new users, not bringing the old users in. 23:57
masak the focus should be on filling in gaps, putting Perl 6 on parity with Perl 5 in as many ways as possible, having a story when people comes saying "hey, I wanted to try out Perl 6 but I couldn't X"
timotimo aye, i'm a new user and i like perl 6 a lot
avar What do people interested in occasional compiler hacking poke at in perl6 these days? Rakudo/MoarVM? I sometimes hack on perl5
masak and any "Perl 6 is clearly better than Perl 5 so therefore you should already be using it" should be backed up with *technical* argument, not just hot air 23:58
ab5tract avar: it caguely reminds me of running perl 5.0004 on an sgi o2 workstation in 1999 :)
timotimo rakudo, nqp and moarvm are compiler hacking targets
vendethiel timotimo: same here :/
ab5tract *vaguely
timotimo most of the compilation happens in NQP rather than rakudo itself
vendethiel and the toughest selling point
masak avar: yes, Rakudo/MoarVM, I'd say.
23:58 hzhou321 joined
avar Is rakudo still mainly on the "nom" branch? 23:59
timotimo avar: if you're into dynamic optimizations and such, moarvm will be your thing. if you're into static analysis based optimization, you can find an optimizer for NQP code in nqp and an optimizer for perl6 code in rakudo
ab5tract nom ~~ 'no other master' ? :)
timotimo and then there's the compilers for QAST to PIRT, MAST and JAST inside nqp
masak hzhou321: 你中国人吗?