»ö« 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 23710.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/0D481pW9JVTwo terms in a rowat /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 NOCannot 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«Nilcan'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/2X3zVQPoANUnable 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«1234» | ||
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«0123» | ||
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«0123» | ||
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_0Undeclared 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/CExhyTDCGFTwo terms in a rowat /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_ha5IYpWlUndeclared 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/zppNNwuaqAComma 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/uvjXyXwFtmUndeclared 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«420» | ||
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«NaN6.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/iJOecHEByCUnable 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/l3t77HWSaBVariable '$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 parensat /tmp/y6JP181KBu:1------> if⏏( 1 ) { say 42 } # also this oneUnexpected 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 272727 | 18:22 | |
camelia | rakudo-moar 243c16: OUTPUT«===SORRY!=== Error while compiling /tmp/tYMh_QlVrNTwo terms in a rowat /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 272727) | ||
camelia | rakudo-moar 243c16: OUTPUT«27027» | ||
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/7De3SDsdy8Undeclared 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 listParse failedFAILED 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/DxMXmRGBQdUndeclared 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/ezwDqDozWxMissing blockat /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: 你中国人吗? |