AlexDaniel | MasterDuke: do you remember what was the right way to run ./recompress ? | 01:17 | |
ah | |||
it's written in the file | |||
ok nvm | 01:18 | ||
(also, wrong channel) | |||
[TuxCM] | This is Rakudo version 2016.11-100-gc38f1ad57 built on MoarVM version 2016.11-27-g3171dbbe | 08:13 | |
csv-ip5xs 3.343 | |||
test 14.438 | |||
test-t 6.495 | |||
csv-parser 14.440 | |||
gfldex | m: my $a; say $a.VAR.of | 11:16 | |
camelia | rakudo-moar 843a6b: OUTPUT«(Mu)» | ||
gfldex | what does .of actually mean in this case? | ||
jnthn | The type constraint on the container | 11:17 | |
psch | m: say Any.of | ||
camelia | rakudo-moar 843a6b: OUTPUT«No such method 'of' for invocant of type 'Any' in block <unit> at <tmp> line 1» | ||
jnthn | m: my Int $a; say $a.VAR.of | ||
camelia | rakudo-moar 843a6b: OUTPUT«(Int)» | ||
psch | jnthn: but then Mu is wrong, isn't it? | ||
jnthn | No, it's correct | ||
m: my $a = Mu; | |||
camelia | ( no output ) | ||
psch | oh, right, constraint vs default value | ||
jnthn | Aye. :) | ||
gfldex | m: my $a of Any; say $a.VAR.of | 11:19 | |
camelia | rakudo-moar 843a6b: OUTPUT«(Any)» | ||
jnthn | lunch, meeting & | ||
gfldex | m: my $a of Any; say $a.VAR.of; $a = Nil; | ||
camelia | rakudo-moar 843a6b: OUTPUT«(Any)» | ||
gfldex | m: my $a of Any; say $a.VAR.of; $a := Nil; say $a; say $a.VAR.of | 11:20 | |
camelia | rakudo-moar 843a6b: OUTPUT«(Any)NilNil» | ||
psch | well, binding gives you a new container descriptor | ||
gfldex | I don't think I like that | ||
psch | and that's what holds default and of and all those things | ||
gfldex | mostly because I have to doc it :-> | ||
psch | what? binding trashing the container? | ||
gfldex | variable != container | ||
psch | a variable is a reference to a container, isn't it | 11:21 | |
specifically, a scalar variable in this case | 11:22 | ||
a container has a container descriptor, which knows about e.g. constraints and defaults | |||
timotimo | i wonder what rurban means by "MOP crazyness, which is spreading like wildfire"? | 11:24 | |
gfldex | psch: no, variables are just a name and a grammar category. They can hold a container or a value and are mutable. In contrast to a constant, that is immutable at runtime. | 11:26 | |
at least that's how I understand Perl 6 | |||
and Perl 6 tends to mumble from time to time | |||
psch | gfldex: ah, yes, you're right. since you can bind a value to a scalar variable it doesn't always have to be a container | ||
s/be/reference/ | 11:27 | ||
gfldex | the docs are still quite shitty in many places. I hope the book authors know this. | 11:28 | |
psch | m: constant \foo := $; say foo++ while foo < 5 # constants can have containers too though | ||
camelia | rakudo-moar 843a6b: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 101234» | ||
psch | but yes, the point as made is generally true | ||
as in, it has to be the initializer that binds a container to a constant and we can't do it at runtime | 11:29 | ||
timotimo: i mostly wonder what 'MOP crazyness' is. i cannot say if it's spreading | 11:30 | ||
timotimo | well, me too | 11:31 | |
i added the latter part to maybe help clarify what he means | |||
psch | where is that statement, ooc? maybe context helps..? | ||
timotimo | that recent reddit thread | 11:34 | |
let me grab it from my history | |||
www.reddit.com/r/perl6/comments/5f..._from_the/ | 11:35 | ||
psch | looks like it's about having a MOP at all which is clearly bad because it didn't work out for ruby..? | 11:39 | |
babydrop wonders who rurban is .... | |||
psch | one of the longest-lasting parrot maintainers | ||
afaik at least | |||
arnsholt | And the last one, IIRC | 11:40 | |
babydrop | I totally agree with Ulti's comment about focusing on new programmers rather than Perl 5 people. | 11:42 | |
I always found it a bit bizzare that Perl 6 spent so much energy on luring Perl 5 programmers. | 11:43 | ||
nine | "Perl 6 is decidedly not backwards compatible." Apparently my message has yet to arrive in the general population :/ | 11:45 | |
babydrop | What's the message? | ||
nine | That this sentence is just wrong. | ||
babydrop | Why not? Because of Inline::Perl5? | 11:46 | |
nine | exactly | ||
Or even more correct: because of the S01 tests in roast which _mandate_ backwards compatibility. | |||
babydrop | I wouldn't call it wrong. We just have good interop that's mandated by the spec. One still has to know how to build special Perl 5 with -fPIC and know its tooling to get the modules, etc | 11:47 | |
If you don't already know it, it may as well be Inline::Ruby: you have to learn the language and all its bits | 11:48 | ||
nine | Yes, one has to know how to build software to use it. Or use distro packages or installers or whatever. Perl 6 with Perl 5 backwards compatibility is no different than any other software. | 11:49 | |
babydrop | That's interoperability. | 11:51 | |
Backwards compatibility is I can download the dumb mail.pl script from 1990s and run it in perl 5.24.0 and it'll work | 11:52 | ||
hurh | Perl 5 people don't adopt Perl6 not because they are die hard, but because they care about performances and stability | 11:53 | |
scimon | I've got a multi million line perl5 app I need to maintain. I'm not planning on running that on a perl 6 implementation any time soon. | ||
hurh | and they do not care about a Javalike VM, they do not care about crossplatform compability and huge nonstandard library | 11:54 | |
gfldex | m: my $a of Int; | ||
camelia | ( no output ) | ||
gfldex | is ^^^ this `of` a trait? | ||
arnsholt | scimon: For a second, I read s/app/script/ and was very, very worried =) | ||
scimon | Lots of modules. running on mod_perl | ||
babydrop shudders | 11:55 | ||
scimon | Currently hanndling 2400 requests per second. | ||
(over a number of servers) | |||
babydrop | hurh: indeed, I don't see Perl 6 as a "natural path" for Perl 5 people to "upgrade | 11:56 | |
scimon | and I'm expecting it to hit 5K this evening and near 10K RPS at the weekend as people buy all the things. | ||
babydrop | " to. | ||
gfldex | jnthn: is of in `my $a of Int` a trait? | ||
hurh | babydrop : you should appease Java programmers (sarcasm) | 11:57 | |
arnsholt | gfldex: Yeah, of is a trait | ||
babydrop | :) | ||
scimon | I'm trying to appease the people who want to HIRE Java developers as they are cheaper and easier to find. And I can't be bothered job hunting again. | 11:58 | |
gfldex | i can't find where Rakudo defines it (or better what candidate it picks) | ||
hurh | by the way, while I guess it is true that Perl6 took so long just because it was difficult to implement; now it is just a question of people working on it | ||
gfldex | think I got it | 11:59 | |
arnsholt | gfldex: The code is trait_mod:<of> | ||
gfldex | trait_mod:<of>(Mu:U $target, Mu:U $type) | ||
arnsholt | Yup | ||
The places you can apply it are defined in the grammar | |||
Ah, wait. I had it backwards: All traits can appear in the same places | 12:02 | ||
What differs is what can come *after* the trait | |||
In the case of trait_mod:<of> it's a typename | |||
psch | ah, that one's probably pretty easy | 12:06 | |
the NPE in t/nqp/059-nqpop.t that is | |||
babydrop | sweet | ||
psch | apparently coerce_si isn't null-safe | ||
and i am, again, taking the easy way out there :P | 12:09 | ||
VMNull might still be the better solution, but adding a null check is waay easier | |||
the fact that we've been doing that for, well, years aside | 12:10 | ||
gfldex | .tell lizmat please add to the next weekly that the commits 19169cc, 3ffdc37, b9a6dc8, 0bf8b18, c7b14ae, ce7c9f6 clarify the relationship between containers, default types and type constraints -- what used to be a rich source of confusion | 12:12 | |
yoleaux2 | gfldex: I'll pass your message to lizmat. | ||
nine | babydrop: exactly. Backwards compatibility is when you can still use your old code. Which you can with Inline::Perl5 in most cases. | ||
I now have a patch allowing for you to pass Perl 6 regexes to Perl 5 code and it will be able to use that for matching :) | 12:13 | ||
psch | ah, zu früh gefreut :/ | 12:16 | |
as in, both nqp::null_s and nqp::null are actually equal on nqp-j | |||
or, well, they do result in the same byte code at least o.o | 12:18 | ||
oohkay | 12:24 | ||
scimon | Sounds weird. | ||
psch | apparently, nqp-j does a smart stringify, while nqp-m just checks "do we have a str value in that register" | ||
for nqp::isnull_s that is | |||
scimon: well, both nqp::null and nqp::null_s map to aconst_null, as their JAST instruction | 12:25 | ||
scimon: curiously though, they apparently aren't the same because nqp::isnull(nqp::null_s) is false | |||
scimon: and nqp::isnull is just 'public static isnull(SixModelObject obj) { return obj == null ? 1 : 0; }' | 12:26 | ||
+long | |||
which, yeah, is a bit weird :) | 12:27 | ||
arnsholt | Yeah, there are some odd divergences in JVM | 12:32 | |
Check with jnthn++, but I suspect moving the JVM code to be more in line with Moar won't be wrong | 12:33 | ||
psch | yeah, it's a matter of "how much work" and "how many workarounds have to be dialed back" though... :) | 12:36 | |
i mean, VMNull is a big one in that regard, considering it'd mean touching pretty much every '== null' check we have in Ops and similar | |||
jnthn | In meeting but briefly: MoarVM got VMNull because real NULLs will SEGV the VM, and letting various errors fall out of polymorphism is cheaper than null checks everywhere. | 12:39 | |
The JVM doesn't have the first of those problems. | |||
OK, need to pay attention again :) | 12:40 | ||
psch | eh, it only has half of the first of those problems i'd say | 12:42 | |
we still need all the null checks, otherwise the VM dies as well :) | |||
but yes, in constast to C we can actually do that, or even recover from it | 12:44 | ||
*contrast | |||
cygx | o/ | 12:58 | |
I come bearing gifts: github.com/rakudo/rakudo/pull/933 | |||
babydrop | sweet | 13:07 | |
cygx: what does it do? | |||
We made enums list values on purpose... | |||
Ah, I see. | 13:08 | ||
dalek | kudo/nom: 34deb15 | cygx++ | src/core/Main.pm: Fix usage message for boolean flags They may be enums, but should not list their values |
||
kudo/nom: abc6439 | (Zoffix Znet)++ | src/core/Main.pm: Merge pull request #933 from cygx/fix-usage Fix usage message for boolean flags |
|||
cygx | babydrop++ | 13:09 | |
babydrop | cygx: will the gifts come with tests too? :) | ||
gfldex | lizmat_: could you change «Perl 6» in «Something cool about Perl 6 every day» to a link to perl6.org in the theme of perl6advent please? | 13:10 | |
cygx | ...I think I left something on the stove... | 13:11 | |
I'll be right back | |||
babydrop | heh | ||
gfldex: we can't | 13:13 | ||
gfldex | :( | ||
babydrop | Markup just shows up as regular text: i.imgur.com/p9C9xAc.png | 13:14 | |
gfldex | well, we got a whole year to come up with a solution how to write advent posts in pod6 | 13:15 | |
babydrop | ewwww | 13:16 | |
timotimo | you know you can just copy-paste html-ed stuff from one browser tab into the wordpress editor, right? | ||
gfldex | i did that by writing stuff as .md and still had problems | 13:17 | |
babydrop | you know that tomato is a fruit? :) | ||
dalek | p: 097c901 | peschwa++ | t/nqp/059-nqpop.t: Add messages to a few tests |
13:18 | |
p: e9b96f6 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Fix a few NPEs |
|||
psch | misread the last test in that file, so coerce_s2i didn't actually matter, istrue was the problem there | ||
gfldex | babydrop: it's a berry | ||
babydrop | Aren't berries also fruits? :) | 13:19 | |
psch | "fruit is a gastronimcal category, berries is a botanical category" is how i've heard this discussion laid to rest | 13:20 | |
*gastronomical | |||
babydrop | heh | ||
gfldex | it's more fun to call it a berry tho | ||
because if you are asked how you know you can say: "I watch QI" | 13:21 | ||
timotimo | astronomical fruit! | 13:22 | |
DrForr | So what do you think of Sandi taking over for Stephen? I'm all for it myself. | 13:23 | |
babydrop | who? what? | 13:24 | |
ilmari | I like it | ||
but I have scandi bias :) | |||
DrForr | Well, you would :) | ||
I've just seen the first episode (now that I'm no longer in the Isles I have to watch on YT like everyone else) but it's going to be fun. | 13:26 | ||
ilmari | I've seen all of them, it's good | 13:27 | |
she picks less on poor alan | |||
DrForr | oo, that's right, I'm going to be in London tomorrow, and my hotel room has a 40" LCD TV. | 13:28 | |
ilmari | I hope sue perkins will be a guest this season | 13:29 | |
DrForr | Yeah, that could easily descend into Top Gear levels of slagging, but I know she won't let it get that far. | ||
scimon | ilmari: when's the next London Perl Mongers? Ben keeps telling me I need to go. | 13:30 | |
DrForr | scimon: Just come on down to LPW on Saturday. | ||
scimon | Ah... Saturday I'm at a games convention. | ||
ilmari | scimon: there's a heretical social this evening, LPW pre-drinks tomorrow, LPW post-drinks (and food) on saturday, and official social next thursday | ||
twitter.com/lpmsoc/status/803991511524380672 | 13:31 | ||
DrForr | And I can finaly get to pre-drinks. | ||
ilmari | twitter.com/lpmsoc/status/803992351500812288 | ||
ilmari == @lpmsoc | |||
DrForr | *finally # god *DAMN* keyboard. | ||
ilmari | when I'm wearing my pub minion hat | 13:32 | |
scimon | Grand | ||
babydrop | timotimo: so what you're saying is I can write my Advent in Markdown, render it with syntax highlighting on GitHub and copy-paste it into Advent blog post thing and it'll magically work? | 13:35 | |
tadzik | babydrop: or in your commandline, with 'markdown', if installed :) | 13:37 | |
I write most of the stuff this way, wordpress editor is horrible | 13:38 | ||
babydrop | and this markdown command line has Perl 6 highligher :/ | ||
OK. Well, glad I don't have to use Wordpress editor | |||
tadzik | ah, right, maybe only github knows that | 13:39 | |
scimon | psch: That's great. Currently putting time aside to go through the nqp slides. I have time off over the holiday :) | 13:45 | |
timotimo | babydrop: it should work, yeah | 14:11 | |
FROGGS | o/ | 18:56 | |
dalek | ar/zef: c7c5ead | (Steve Mynott)++ | modules/MODULES.txt: fix deps for zef |
19:39 |