»ö« 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 masak on 12 May 2015. |
|||
00:06
TEttinger joined
00:11
tinyblak joined,
atroxaper joined
00:16
atroxaper left
00:19
laouji joined
00:28
tinyblak_ joined
00:31
tinyblak left
00:36
yqt left
00:39
laouji left
00:40
laouji joined
00:44
laouji left,
cognominal left,
laouji joined
|
|||
dalek | kudo/nom: 27f88c4 | coke++ | t/spectest.data: run these new (passing) tests |
00:50 | |
00:55
rangerprice joined,
llfourn joined
|
|||
skids | Thanks [Coke] that saved me a PR. | 00:58 | |
01:00
llfourn left
|
|||
[Coke] | sure | 01:02 | |
rangerprice | hi | ||
[Coke] | hio | ||
rangerprice | What is your prefered Perl library ? | ||
01:04
BenGoldberg joined
01:07
tinyblak_ left,
yeahnoob joined
01:09
tinyblak joined
01:10
cognominal joined
|
|||
[Coke] | rangerprice: FYI, this is a discussion about the development and usage of Perl 6, which is a different language than Perl 5. | 01:11 | |
rangerprice | oh okay | 01:12 | |
[Coke] | You're welcome to hang out. There's definitely some nifty Perl 6 modules. | ||
rangerprice | What do you mean when you say "hang out" (english is not my native language) | 01:14 | |
01:15
Hor|zon joined
|
|||
skids | It means to spend time here. | 01:17 | |
rangerprice | oh | 01:18 | |
you sure skids ? | |||
01:19
rmgk left,
rmgk_ joined,
rmgk_ is now known as rmgk
01:20
Hor|zon left
|
|||
skids | rangerprice: Yes, it's my native language. | 01:20 | |
Juerd | hang out | 01:24 | |
v 1: spend time in a certain location or with certain people; | |||
"She hangs out at the corner cafe" | |||
rangerprice | thanks ! | ||
Juerd | rangerprice: dict is a great command line utility if you're learning/using English | ||
I just did a 'dict "hang out"' | |||
rangerprice | juerd :d) i'll do the same in the future | 01:25 | |
The wikipedia of perl 6 say that they have a chance that a official version of perl 6 will be released in december, true ? | 01:27 | ||
japhb | .oO( Who knew unix's English bias would actually be useful to someone? ) |
||
rangerprice: That is the intent, yes. | |||
skids | Well, it is certainly useful to us native English speakers :-) | 01:29 | |
rangerprice | I can write traduction in french if necessary, for a papers, documentations, or others. This is my way to involve me in Perl 6. | 01:31 | |
skids | I would think doc.perl6.org/ would be the first place to start translation efforts. But someone will have to code in the glue. | 01:33 | |
01:35
bloomburgers joined
|
|||
bloomburgers | Hey, so I recently attended a talk by Ovid, and coming from Standard-ML land, Perl 6 looked fantastic for compiler development, with built-in PEG's and all | 01:36 | |
As a newbie though, do we have parametric types in Perl 6? | 01:37 | ||
rangerprice | You right skids, but me, i don't scare about code in the glue. | 01:39 | |
skids | bloomburgers: There are parametric roles. Paramteric types are more a MOP thing -- you can do it but it's not an end-user API. | 01:41 | |
(But there are some pre-built like Array[Foo]) | 01:42 | ||
bloomburgers | I'm very much new, what does MOP expand to? | 01:43 | |
skids | Meta object protocol | ||
Basically how to build new language constructs up from the underlying prmitives. | 01:44 | ||
bloomburgers | Is perl6 a little lispish in letting you make new language constructs? | ||
01:45
dayangkun joined
|
|||
skids | bloomburgers: yes but it contains the damage by lexcally scoping them. | 01:46 | |
rangerprice | Perl 6 is a completely different language compared to Perl 5 ? | ||
skids | rangerprice: it draws a lot from Perl5+Moose but it is a ground-up rewrite. | 01:47 | |
[Coke] | S99:PEG? | ||
synbot6 | Link: design.perl6.org/S99.html#PEG | ||
skids | (well Moose and 6 have both drawn from each other at times if I understand correctly) | 01:48 | |
01:48
telex left
|
|||
[Coke] | (code of conduct) just tripped over this: github.com/blog/2039-adopting-the-...of-conduct | 01:49 | |
01:50
telex joined
|
|||
bloomburgers | I know we have the idea of value level superposition, but do we have type level superposition, something like `subset StrOrInt = Str | Int` which can have a string or integer value, but nothing else? | 01:54 | |
hoelzro | bloomburgers: iirc, that's specced, but not implemented | 02:01 | |
m: my Str|Int $si; | |||
camelia | rakudo-moar 27f88c: OUTPUT«5===SORRY!5===Type 'Str' is not declared. Did you mean 'str'?at /tmp/QIgqyaFVJ8:1------> 3my Str7⏏5|Int $si;Malformed myat /tmp/QIgqyaFVJ8:1------> 3my Str7⏏5|Int $si;» | ||
hoelzro | hmm | ||
that's LTA | |||
b2gills | m: my subset StrInt of Any where Str | Int; say $_ ~~ StrInt for 5, 'str', 5.0 | 02:03 | |
camelia | rakudo-moar 27f88c: OUTPUT«TrueTrueFalse» | ||
02:03
noganex_ joined
|
|||
b2gills | m: say $_ ~~ Str | Int for 5, 'str', 5.0 | 02:04 | |
camelia | rakudo-moar 27f88c: OUTPUT«TrueTrueFalse» | ||
skids | bloomburgers: That's marked as a post-6.0.0 feature. The speculation for it is here: design.perl6.org/S12.html#Multiple_constraints | 02:05 | |
02:06
noganex left
02:13
llfourn joined
02:14
funjon joined
|
|||
bloomburgers | yeah it's looking like subsets are enough to encode algebraic data types | 02:15 | |
02:17
cognominal left
02:23
pullphinger joined
02:44
aborazmeh joined,
aborazmeh left,
aborazmeh joined
02:49
cschwenz joined,
aborazmeh left,
FROGGS left
02:50
aborazmeh joined,
aborazmeh left,
aborazmeh joined
02:52
cschwenz left
02:54
FROGGS joined
03:01
gfldex left
|
|||
flussence | [Coke]: I prefer a more wtfpl-ish take on the idea: github.com/domgetter/NCoC | 03:02 | |
03:04
Hor|zon joined
|
|||
skids prefers this CoC: www.coc.com/ m/ | 03:05 | ||
03:09
Hor|zon left
03:12
cognominal joined
|
|||
japhb | I've missed the history here -- what are we looking to apply a CoC to? This channel? The mailing lists? Our meetups? Something else entirely? | 03:13 | |
skids | I dunno the topic has just been kicking around for some reason is all. | 03:14 | |
flussence | no idea, I'm just responding to a line that's visible on screen :) | 03:15 | |
ShimmerFairy | I don't like that NCoC thing; it reads like it was written by someone who just doesn't care about other people, and someone who wants the benefits of a community without the responsibility of one. | 03:17 | |
[Coke] | -1 on the ncoc | 03:27 | |
ShimmerFairy | I'm very tempted to write a very detailed breakdown of everything wrong with the ncoc, actually. | ||
flussence | yeah... it does read like someone who's burned out on dealing with nasty places. kinda saddening if that's the reason for making it... | 03:28 | |
03:37
rangerprice left
03:40
tinyblak left
03:45
laouji left,
funjon left
03:49
bloomburgers left
|
|||
xiaomiao | people often want a CoC so they can apply these rules to others | 03:52 | |
e.g. silencing people that have diverging opinions | 03:53 | ||
I don't like the current trend of adding more and more 'social rules' | |||
japhb | .oO( B&TCoC: Be EXCELLENT to each other! ) |
03:56 | |
flussence | being in here taught me a valuable thing: encouraging people to be good works a million times better than trying to discourage them from being bad. | ||
japhb | .oO( "Don't make people uncomfortable" --> "Help everyone feel comfortable" ) |
03:58 | |
ShimmerFairy | It's certainly alright to have diverging opinions, but the "diverging opinions" that discriminate against others are what codes of conduct set out to eliminate. | 03:59 | |
japhb | (Or un|welcome instead of un|comfortable, perhaps) | ||
xiaomiao | ShimmerFairy: doesn't the CoC discriminate against those then? | 04:02 | |
gets very loopy | |||
nys | "treat newcomers as if they're someone you need to solicit money from soon (i.e. with a basic level of respect)" | ||
xiaomiao | and I can insult you without triggering a CoC, I've been trained well ... | ||
ShimmerFairy | xiaomiao: yes, but that's the point. You aren't allowed to be a jerk towards other people, plain and simple. | ||
xiaomiao | ShimmerFairy: that's, like, your opinion, maaan ... ;) | ||
ShimmerFairy: don't let lawyers structure your interactions | 04:03 | ||
04:03
nys left
|
|||
ShimmerFairy | It's not about lawyering, it's about basic human decency. If you hold opinions that discriminate against people, don't be surprised when you get kicked out of places that like that whole "decency" thing. | 04:05 | |
japhb | You know, in a community that truly understands LTA, it seems like an CoC we use ought to include what we think is awesome, and how we turn LTA into A. | ||
*any CoC | |||
xiaomiao | ShimmerFairy: but for that you don't need a 12-page ruleset, just some decent moderators | 04:06 | |
ShimmerFairy | The ruleset gives everyone fair warning about what is considered unacceptable, however :) | ||
xiaomiao | rules boil down to (1) don't be stupid (2) don't assume others are stupid | ||
ShimmerFairy: I've seen the flamewars that happen when one tries to enforce such a ruleset | 04:07 | ||
[Coke] | xiaomiao: no, there's more to it than that. | ||
xiaomiao | it's a good way to get rid of contributors | ||
japhb | ShimmerFairy: It is perhaps a useful data point that we've not needed to think that way, and yet are widely regarded as one of the friendlier places on IRC. | ||
ShimmerFairy | Not that simple; people with offensive viewpoints don't think they're being stupid. | ||
xiaomiao | ShimmerFairy: offense is taken, not given | ||
[Coke] | I really don't get the pushback against writing down rules that try to enforce what we've got here. | ||
xiaomiao: Sounds like you've never dealt with someone toxic. | 04:08 | ||
ShimmerFairy | japhb: Sure, I love the way things are here. I think a CoC here, if taken, would simply improve things here. | ||
xiaomiao | [Coke]: more rules won't help | ||
xiaomiao has seen year-long campaigns that were definitely not slowed down by CoC, rules, etc. | |||
ShimmerFairy | xiaomiao: Coming from an IRC channel that's had it's fair share of drama, having an explicit set of rules is in fact really helpful (compared to before we had them). | ||
*its | |||
japhb | [Coke]: My only preference is that if we set down any rules, it should be mostly codifying our sense of awesome, not listing jerkish behaviors. In other words, I'd like to whitelist, not blacklist, I suppose. | ||
xiaomiao | ShimmerFairy: #gentoo uses a language policy and "ops are always right" - works quite well | 04:09 | |
japhb | ShimmerFairy: where did you come from? | ||
ShimmerFairy | japhb: I've been on BadnikNET for a while now. Certainly has been different from hanging out in #perl6 :) | ||
[Coke] | japhb: wow, without the context of her previous send, that sounded a little harsh. | 04:10 | |
:) | |||
japhb | [Coke]: Oh, heh, yeah, I guess my response was very contextual, wasn't it? :-) | ||
[Coke] | +1 from me on a simple CoC that has consequences for being an asshat. | ||
which we've demonstrably done well before the looming "September" | 04:11 | ||
ShimmerFairy | +1 on that as well | ||
[Coke] | er, *well enough without | ||
but as was mentioned earlier, it's not going to be the same after "Birthday" drops. | |||
japhb | Well, what have we done in the past? My (admittedly faded) memory is: hug first, but don't be afraid to say "that's not acceptable here; take it elsewhere". And kick or even kickban if the troll is completely unrepentant. | 04:12 | |
flussence | embarass them with kindness :) | ||
japhb | But man, gotta say, we've manage to hug out some trolls I never thought we'd be able to reach, so I want to keep that. | 04:13 | |
ShimmerFairy | [Coke]: that's what I assumed the sudden talk of a CoC has been about, and it makes sense. We'll be inviting a larger and more general audience in, so I imagine we'll need something better than just unwritten existing practice. | ||
04:13
xinming left
|
|||
japhb | flussence: Yeah, I've actually seen that work here. | 04:14 | |
04:14
xinming joined
|
|||
[Coke] | +1. I thought the github one I linked to was a good start, maybe even good enough to use without mods, but I'm happy if someone wants to make a simpler one and see if we get concensus. I think it'll be a net positive to have one. | 04:16 | |
japhb | [Coke]: I missed the GitHub link ... would you mind reposting the URL? | ||
ShimmerFairy | .oO(S42: Code of Conduct) |
||
japhb | S00 perhaps | 04:17 | |
skids | It ain't spec unless its in the test siute :-) | 04:18 | |
japhb | [Coke]: Oh wait, was it this one? github.com/blog/2039-adopting-the-...of-conduct | 04:20 | |
skids | .oO(use Test: "hug me!'.say; ok lines[0] ~~ "hug") |
||
[Coke] | japhb: yes. | 04:23 | |
m: lines.say | |||
camelia | rakudo-moar 27f88c: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll; Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí I mo dhiaidh bhí gleanntáin ghlas’ Ghaoth …» | ||
ShimmerFairy | [Coke]: atm I'm typing up a draft of how I think our CoC could go, in case you're interested in knowing :) | ||
[Coke] | m: say so lines ~~ 'hug' | 04:24 | |
camelia | rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5KG0nzdSGiExpected a term, but found either infix ~~ or redundant prefix ~ (to suppress this message, please use a space like ~ ~)at /tmp/5KG0nzdSGi:1------> 3say so lines ~~7⏏5 'hug'» | ||
[Coke] | m: say so (lines ~~ 'hug' ) | ||
camelia | rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6a_vQeaXTSExpected a term, but found either infix ~~ or redundant prefix ~ (to suppress this message, please use a space like ~ ~)at /tmp/6a_vQeaXTS:1------> 3say so (lines ~~7⏏5 'hug' )» | ||
[Coke] | m: say so (lines() ~~ 'hug' ) | ||
camelia | rakudo-moar 27f88c: OUTPUT«False» | ||
flussence | .oO( "avoid success at all costs" - maybe Haskell's on to something... ) |
04:26 | |
japhb | [Coke]: Hmmm. The "Open Code of Conduct" certainly seems well-intentioned, and a good example of the class of CoCs that it resembles, but I can't help but feel that it's heavyweight in a community that manages to be better than most by wielding a light touch. | 04:28 | |
Case in point: it almost feels like listing every currently-recognized protected class when discussing discrimination is weaker than just saying "We don't discriminate on any basis other than ability to be a kind, positive member of our community." | 04:33 | ||
xiaomiao | japhb: but then I couldn't leverage my victim status | 04:34 | |
;) | |||
skids | Wait we discriminate against the disabled? | ||
:-) | |||
xiaomiao | skids: stop triggering me with such ableist statements!11 | ||
skids | :) | ||
xiaomiao | (do not negotiate with terrorists. Scorched earth strategies are the only way to contain the plague) | ||
japhb misses playing Scorched Earth on his old dorm PC back in college ... | 04:35 | ||
[Coke] | japhb: fair enough. I'm lazy, however, and probably won't bother writing something from scratch. :) | ||
but making a sixperl version of that or somethign liek it seems like a fine thing. | 04:36 | ||
japhb considers whether he can be cogent enough right now to produce something worth discussing. | |||
[Coke] | You have months. | 04:37 | |
04:41
tinyblak joined
|
|||
[Coke] | japhb: www.scorched3d.co.uk/ | 04:42 | |
04:42
aborazmeh left
04:45
tinyblak left
04:50
BenGoldberg left
04:53
Hor|zon joined
04:54
kaare_ joined
04:58
Hor|zon left
05:02
lizmat left
05:03
laouji joined
|
|||
japhb | [Coke]: gist.github.com/japhb/b76f7d3a816df4d65108 | 05:05 | |
05:05
lizmat joined
05:07
daxim_ joined
|
|||
japhb | Also, thanks for the Scorched 3D link. :-) | 05:07 | |
ShimmerFairy | japhb: Looks good, I'll keep these in mind as I'm writing up my own draft :) | ||
japhb | ShimmerFairy: Great, thanks for taking a look! | ||
05:07
skids left
05:13
lizmat_ joined,
lizmat left
05:21
atroxaper joined,
atroxaper left,
atroxaper joined
|
|||
nwc10 | good *, #perl6 | 05:27 | |
05:32
raiph left
|
|||
PerlJam | nwc10: greetings! | 05:32 | |
japhb: did you read the open code of conduct? | 05:39 | ||
japhb | PerlJam: Yes, why do you ask? | ||
05:40
FROGGS left
|
|||
PerlJam | Just curious. Yours and theirs align well. | 05:40 | |
The one thing missing from both though, is "be forgiving" | |||
oh, and ... japhb++ :) | 05:41 | ||
japhb | Well, as I was finishing my ideas, I checked to make sure there was nothing in the OCoC that I was clearly missing, so there's probably a little alignment from that. | 05:43 | |
05:45
darutoko joined
|
|||
japhb | The forgiving part takes some care. There's a bit of that in the troll-hugging I mentioned, but I fear going to far undermines the point that sometimes someone just goes too far. | 05:46 | |
Well, that wasn't very eloquent, but I hope you know what I mean. | |||
PerlJam | yep | ||
for forgiveness, I was thinking of those times when someone may have had a bad day or inadvertently says something that may be unkind, we call them on it, but also be forgiving/understanding to their circumstance | 05:50 | ||
(also, it's a powerful thing. Some people can't see beyond a person's worst action (maybe even the person who committed the act even). But we're human; we make mistakes; we learn) | 05:53 | ||
japhb | Sure, I can get behind that. We just need to be careful not to codify a wishy-washy attitude. To err is human, to forgive divine ... but that doesn't mean we will ignore the error, or not expect an apology. | 05:58 | |
PerlJam | yep. japhb++ Our nascent CoC is in good hands it seems :) | 06:00 | |
ShimmerFairy | I'm almost done with my draft, btw :) | 06:01 | |
PerlJam waits | 06:03 | ||
06:05
FROGGS joined
06:08
llfourn left
06:09
Hor|zon joined
|
|||
ShimmerFairy | japhb, PerlJam, [Coke]: Here's my idea for what the code of conduct could look like: gist.github.com/lue/6dfe2fec1579508dde30 (I don't expect this to be accepted verbatim) | 06:09 | |
06:13
Hor|zon left
|
|||
dalek | line-Perl5: a61cdc6 | (Stefan Seifert)++ | p5helper.c: Hopefully fix the rare panic: MUTEX_LOCK in t/callables.t hoelzro++ finally discovered, what's going on here. His diagnosis: The issue seems to be that the Inline::Perl5 DESTROY submethod tears down the Perl 5 interpreter and then the DESTROY submethod on a Perl5Callable is invoked. The global data structures that perl uses (such as its op mutex) have been taken down and are not in a usable state, so pthread_mutex_lock sees the misconfigured mutex and freaks out, returning EINVAL (which is the 22 we see) Fix by having p5_destruct_perl set a "destroyed" flag that p5_sv_refcnt_dec checks. This is kind of a hot path, but doing this in C, I guess it will still not have measurable performance impact. At least until we get better performance out of NativeCall. Fixes GH #34 |
06:14 | |
PerlJam | ShimmerFairy: minor nit ... the last sentence of the second to last paragraph sounds vaguely like a threat. And, I'd remove "as long as you do" from the very last sentence. | ||
ShimmerFairy | Yeah, I can see that. | 06:16 | |
PerlJam | ShimmerFairy++ I also really like that you called it something other than "code of conduct" | 06:17 | |
ShimmerFairy | PerlJam: yeah, I was wondering if that was going too nice, but I felt "Code of Conduct" is a bit... authoritarian for what we want. | 06:18 | |
PerlJam: updated the points you mentioned, hopefully it doesn't sound as potentially threatening now. | 06:20 | ||
PerlJam | nice | 06:21 | |
Well, it's bed time for me. g'night all. | 06:22 | ||
PerlJam & | |||
06:22
RabidGravy joined
|
|||
japhb | ShimmerFairy: Good job. | 06:22 | |
ShimmerFairy++ | 06:23 | ||
RabidGravy | marning | ||
japhb | o/ RabidGravy | ||
ShimmerFairy | g'night PerlJam o/ | ||
japhb considers the distance along the time axis before he is asleep, and then considers shortening that distance | 06:24 | ||
masak | morning, #perl6 | 06:44 | |
moritz | \o masak, * | 06:45 | |
06:49
tinyblak joined
06:52
espadrine joined
06:53
mr-foobar left
06:54
Ven_ joined
06:59
jack_rabbit joined
07:00
zakharyas joined
07:02
domidumont joined
07:05
nightfrog joined,
domidumont left
07:06
domidumont joined
07:07
domidumont left,
domidumont joined
07:10
Hor|zon joined
07:13
dayangkun left
07:14
brrt joined
07:15
Hor|zon left,
dayangkun joined
07:20
llfourn joined
07:22
justin___ joined
07:26
amurf left
07:28
abraxxa joined
07:32
rindolf joined
07:33
justin___ left
07:42
lizmat_ is now known as lizmat
07:46
Ven_ left
07:56
dakkar joined
07:57
atroxape_ joined,
atroxaper left
07:58
Hor|zon joined
08:00
Ven joined,
atroxape_ left
08:02
g5 joined
|
|||
dalek | osystem: c0655ec | RabidGravy++ | META.list: Add Audio::Encode::LameMP3 |
08:02 | |
RabidGravy | well that took longer than expected | 08:03 | |
Ven | b2gills: "of Any" is implicit for subsets, btw :) | 08:06 | |
also, o/ #perl6! | |||
DrForr | Mornin'. | 08:09 | |
Ven | .tell flussence it's "avoid 'success at all cost'", the inner quotes are important :P. irclog.perlgeek.de/perl6/2015-07-21#i_10928473 | 08:11 | |
yoleaux | Ven: I'll pass your message to flussence. | ||
DrForr | Eats, shoots and leaves. | 08:12 | |
dalek | c: 20f1ec5 | (Cédric Vincent)++ | lib/Language/nativecall.pod: Initial documentation for cglobal. |
08:14 | |
brrt | i'm being pedantic, but it bothers me that the 'open code of conduct' says 'we're a community of professionals' | 08:16 | |
we're also a community of amateurs, in a sense | |||
cdc | brrt: to me, "amateur" means "qui aime son travail" (who loves her/his work) | 08:21 | |
brrt: so yes, there are a lot of amateur here :) | |||
brrt | that's what i mean too :-) | ||
professional is someone who is called to his work? | |||
cdc | amateur: [French, from Latin amātor, lover, from amāre, to love.] -- www.thefreedictionary.com/amateur | 08:22 | |
ShimmerFairy | In English, "amateur" is the opposite of "professional", where a professional is someone who gets paid for what they do, essentially. | 08:23 | |
brrt | in dutch, it's the same | ||
actually, it's more complicated than that | |||
cdc | yes, you may love your $work too | 08:24 | |
I mean $payjob | |||
brrt | the term 'professional' usually implies both a certain level of expertise, independence, and ethics | ||
[ptc] is currently at EuroPython, in Guido's keynote | 08:25 | ||
brrt | vocation does not imply the same, and 'job' certainly doesn't | ||
nwc10 | oooh. Is Guido saying anything interesting? | ||
[ptc] | he just discussed the p5, p6 "rift", *sigh* | ||
nwc10 | oh. that's interesting. He seems to be out of date. | ||
cdc | [ptc]: is there a live streaming somewhere? | 08:26 | |
ShimmerFairy | Yeah, the professional is basically considered better (more knowledge/experienced/etc.) than the amateur, and that's the only distinction between the two. (That's my understanding.) | ||
[ptc] | nwc10: I like Larry's talks better: he's more philosophical | ||
nwc10 | but there's no Python 2, Python 3 rift? | ||
brrt | .tell japhb i like that form of code-of-conduct, it's short, too the point, and human rather than policital | ||
yoleaux | brrt: I'll pass your message to japhb. | ||
brrt | *too the point | ||
[ptc] | cdc: www.youtube.com/c/EuroPythonConference | ||
cdc | [ptc]: thanks! | ||
[ptc] | nwc10: yeah, there's a rift there. But they want to phase out py2, not have two sister languages | 08:27 | |
cdc: the talk's almost finished. sorry, should have mentioned this eariler | |||
cdc | [ptc]: oh, no problem :) | ||
[ptc] | nwc10: hence it's just a painful upgrade (they added e.g. utf8 to the language) | 08:28 | |
nwc10: and the change is nowhere near so large as in p5->p6 | |||
brrt | i'd agree that 'amateur' implies non-professionalism, or at least the possibility of not-being-a-professional. but i disagree that 'professional' means 'better'. | ||
to me it means 'more serious', and that's ok, but it's not better | |||
amateurs probably have more fun | |||
cdc | brrt: the same. I tend to trust amateurs, not professionals | ||
[ptc] | nwc10: they also just added '@' as a matrix multiplication operator in py3.5 | 08:29 | |
brrt | did they? hmm... | ||
when are they going to add an operator for the kronecker product :-P | 08:30 | ||
[ptc] | brrt: :-) | ||
DrForr | Don't tempt me :) | ||
08:30
jack_rabbit left
|
|||
brrt | fwiw, 'unicode in python3 omg' is really way overblown imho | 08:31 | |
08:31
inokenty joined
|
|||
[ptc] | coffee break, afk & | 08:31 | |
08:34
espadrine left
08:38
atroxaper joined
|
|||
dalek | c: 826a758 | (Cédric Vincent)++ | lib/ (2 files): Fix two typos. |
08:40 | |
[ptc] | brrt: the thing is, that seems to be what everyone mentions as a "big thing" in the change from py2 -> py3 | 08:44 | |
especially as something one can trip over when making the switch | |||
brrt | well, yeah | ||
[ptc] | there are other many other smaller changes, but it's odd how many people mention the utf8 thing | 08:45 | |
brrt | i know, especially considering the switch makes so much sense | 08:46 | |
bytes are bytes, strings are strings, not the same hting | |||
thing | |||
[ptc] | nod | ||
08:49
[Sno] left
|
|||
RabidGravy | speaking of bytes, I'd better fix Audio::Libshout to take a CArray[uint8] before I lose interest in the whole enterprise | 08:51 | |
(or drink too much beer, whichever is the soonest.) | |||
DrForr | And now that uint* is in the core I should add support for the rest of the uint stuff in perl6-Readline. Too many yaks to shave, not enough time. | 08:54 | |
08:54
[Sno] joined
|
|||
moritz | may the yack always be with you. | 08:54 | |
RabidGravy | o/ yackety yack, don't look back o/ | 08:58 | |
RabidGravy wishes for musical symbols on some compose sequence | |||
jnthn | morning, #perl6 | 08:59 | |
yoleaux | 20 Jul 2015 23:33Z <TimToady> jnthn: S17 gist seems sane to me, but that's a pretty low bar today :) | ||
jnthn | Well, so long as the low bar is well stocked... | ||
RabidGravy | I think our "low bar" has Adnam's Broadside spirit, Hierbas and Laphroig for reference. (that's the lowest shelf on the booze shelves) | 09:01 | |
and I'd definitely recommend the Broadside spirit - on paper it should be like a whisky but it's actually more like Brandy to my, admittedly jaded, palate | 09:02 | ||
brrt | morning jnthn | 09:03 | |
09:03
cognominal left
|
|||
[ptc] | morning jnthn | 09:04 | |
jnthn | Whoa, I like Adnams Broadside the beer, I didn't know there was a spirit... | 09:08 | |
nwc10 | there is not *a* spirit: adnams.co.uk/spirits/our-spirits/ | 09:09 | |
jnthn | oh. | 09:10 | |
:) | |||
masak .oO( enough for a seance ) | 09:11 | ||
09:14
amurf joined
|
|||
nwc10 | I forget which one(s) I've tried | 09:15 | |
09:15
Ven left
|
|||
nwc10 | (at london.randomness.org.uk/wiki.cgi?B...2C_SE1_2UP ) | 09:16 | |
09:18
Ven joined,
Ven left
09:19
amurf left,
mathw left
09:21
gfldex joined
09:22
espadrine joined
|
|||
RabidGravy | nwc10, I specifically was referring to adnams.co.uk/spirits/our-spirits/th...broadside/ ;-) I think I need to get up to Southwold before the school holidays really kick in | 09:25 | |
Ulti | might have asked this before but is there a way to have class level variables in Perl 6? | 09:26 | |
so something a bit like public static in java | 09:27 | ||
so if you have a type object it can access the attribute more specifically as a scoped global | |||
09:28
yeahnoob left
|
|||
jnthn | my $.thingy = 42; | 09:29 | |
Ulti | orly | 09:32 | |
I just made a gross package level attribute | |||
09:32
bin_005 joined
|
|||
Ulti | which you can't type for some reason? | 09:32 | |
09:33
mathw joined
|
|||
jnthn | Nope. | 09:33 | |
But you can type the above one. | |||
Ulti | yeah just did thanks a lot | 09:34 | |
jnthn | np | ||
RabidGravy | are "subsets" supposed to be taken into account when selecting a multi? | ||
Ulti | might be worth a mention in the table doc.perl6.org/language/variables where it says lexically scoped but has a bit of a different meaning in a class? | ||
jnthn | RabidGravy: They serve as tie-breakers | 09:36 | |
Ulti: It's still lexically scoped, it's just you get an accessor method generated for it. | |||
RabidGravy | Hmm specifically I have: | 09:37 | |
m: se NativeCall; subset RawEncode of Array where ($_.elems == 2 ) && ($_[0] ~~ CArray[uint8]) && ($_[1] ~~ Int); multi foo(@foo) { say @foo.perl; say "other version"; } multi foo(RawEncode @foo) { say "RawEncode version"; } foo([CArray[uint8].new, 1]); foo(<1 2 3>); | |||
camelia | rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/D_bdqolWYgStrange text after block (missing semicolon or comma?)at /tmp/D_bdqolWYg:1------> 3 { say @foo.perl; say "other version"; }7⏏5 multi foo(RawEncode @foo) { say "RawEnc expecting an…» | ||
RabidGravy | m: use NativeCall; subset RawEncode of Array where ($_.elems == 2 ) && ($_[0] ~~ CArray[uint8]) && ($_[1] ~~ Int); multi foo(@foo) { say @foo.perl; say "other version"; }; multi foo(RawEncode @foo) { say "RawEncode version"; }; foo([CArray[uint8].new, 1]); foo(<1 2 3>); | 09:38 | |
camelia | rakudo-moar 27f88c: OUTPUT«[IntTypedCArray[uint8].new, 1]<>other version("1", "2", "3")other version» | ||
09:38
nightfrog left
|
|||
RabidGravy | and it don't work as I expected | 09:38 | |
09:40
nightfrog joined,
inokenty1 joined,
inokenty left
|
|||
jnthn | RawEncode @foo means an array *of* RawEncode | 09:40 | |
RabidGravy | duh, yes of course it does | 09:41 | |
RabidGravy not woken up | |||
nwc10 | quick! Emergency coffee infusion | ||
RabidGravy | or travel back in time and have one few punk ipa last night | 09:42 | |
;-) | |||
09:43
TEttinger left
|
|||
RabidGravy | and now it all works like what I expected | 09:46 | |
09:50
JimmyZ_ joined
|
|||
dalek | kudo/multidim: 2c47beb | jnthn++ | src/core/A (2 files): Start preparing for multi-dim *-POS. We'll pass multiple indices to the [AT|ASSIGN|EXISTS...]-POS methods. This will allow things that know how many dimensions they have to just bind them directly to parameters, which will be efficient (and allow the dynamic optimizer to inline, etc.). We'll be able to do some case analysis on the indexer itself at optimization time to eliminte the LoL in the commonest cases also. This patch simply adds fallbacks for the multi-indice case that dig into the data structure a level at a time. |
10:12 | |
10:21
Ven joined
10:22
dayangkun left
10:23
RabidGravy left
10:30
mr-foobar joined
|
|||
Ven | m: sub term:<o/> { ^5 }; for o/ { .say }; | 10:37 | |
camelia | rakudo-moar 27f88c: OUTPUT«01234» | ||
Ven | *g* ( irclog.perlgeek.de/perl6/2015-07-20#i_10926108 ) | 10:38 | |
hahainternet | o7 Ven | 10:39 | |
(ascii salute) | |||
masak | o٦ Ven | 10:41 | |
cdc | '٦'.uniname | 10:42 | |
m: '٦'.uniname.say | |||
camelia | rakudo-moar 27f88c: OUTPUT«ARABIC-INDIC DIGIT SIX» | ||
hahainternet | masak: british salute, very nice | 10:44 | |
cdc | it seems western arabic salute is a little bit higher than the eastern arabic one. | ||
hahainternet | although to be honest it isn't | ||
both british and americans are elbow out as far as i know | |||
just different hand position and different action afterwards | 10:45 | ||
americans sweep up and sweep down, brits sweep up and straight down | |||
DrForr | Ask Rimmer? | ||
hahainternet | lovely reference, but I'm afraid they have repeatedly rejected his proposal :( | 10:46 | |
jnthn | .tell TimToady S09 seems rather silent on what happens if you .map a multi-dim array, or .values, or .pairs, or... :) Also what happens if you iterate (which in turn I guess answers what things like map/grep/unique/squish are doing) | 10:54 | |
yoleaux | jnthn: I'll pass your message to TimToady. | ||
jnthn | .tell TimToady Well, .map *is* iterating, of course... :) I'm guessing the answers to all these are related, anyways. | ||
yoleaux | jnthn: I'll pass your message to TimToady. | ||
10:54
tinyblak left,
telex left
10:55
[Sno] left,
][Sno][ joined
10:56
][Sno][ is now known as [Sno],
telex joined
11:04
amurf joined
|
|||
cdc | DrForr: Ace Rimmer ;) | 11:04 | |
11:05
cognominal joined
|
|||
hahainternet | there's no-one slimmer? | 11:05 | |
11:08
amurf left
|
|||
jnthn | lunch & | 11:10 | |
11:19
][Sno][ joined,
[Sno] left,
][Sno][ is now known as [Sno]
11:26
bin_005_g joined
11:28
bin_005 left
11:29
tinyblak joined
11:37
tinyblak left
11:39
bin_005_g left
11:40
pullphinger left,
cognominal left
11:41
RabidGravy joined
11:44
jaffa4 joined
|
|||
jaffa4 | hi all | 11:44 | |
RabidGravy | boom! | ||
11:45
Ven left,
Ven joined
11:48
atroxaper left,
sisar joined
|
|||
sisar | i'm getting the following error when trying to install rakudo in Cygwin: gist.github.com/Siddhant/12342fb623f95c788df4 | 11:50 | |
any solutions ? | |||
FROGGS | let's see | ||
jaffa4 | m: class m { has $.a; method m1() { $!("a") = 1; } } ; my $c = m.new(); $c.m1(); | ||
camelia | rakudo-moar 27f88c: OUTPUT«Cannot find method 'Nil' in method m1 at /tmp/MQnt5szKOI:1 in block <unit> at /tmp/MQnt5szKOI:1» | ||
jaffa4 | m: class m { has $.a; method m1() { $("!a") = 1; } } ; my $c = m.new(); $c.m1(); | 11:51 | |
camelia | rakudo-moar 27f88c: OUTPUT«Cannot modify an immutable Str in method m1 at /tmp/kjcJ6dfqgp:1 in block <unit> at /tmp/kjcJ6dfqgp:1» | ||
FROGGS | sisar: what if you create the directory /home/ssara29/rakudo/install and try again? | ||
11:51
pdcawley joined
|
|||
jaffa4 | m: my $a; $("a") = 5; | 11:51 | |
camelia | rakudo-moar 27f88c: OUTPUT«Cannot modify an immutable Str in block <unit> at /tmp/QjaFjxavVA:1» | ||
masak | jaffa4: no :) | 11:52 | |
jaffa4 | What is the solution, masak? | ||
FROGGS | m: my $a; $::("a") = 5; say $a | ||
11:52
laouji left
|
|||
camelia | rakudo-moar 27f88c: OUTPUT«5» | 11:52 | |
masak | m: my $a; ::<$a> = 5; say $a | ||
camelia | rakudo-moar 27f88c: OUTPUT«5» | ||
FROGGS | it works technically... | ||
11:53
tinyblak joined,
laouji joined
|
|||
jaffa4 | m: class m { has $.a; method m1() { $<!a"> = 1; } } ; my $c = m.new(); $c.m1(); | 11:53 | |
camelia | rakudo-moar 27f88c: OUTPUT«Attempted to ASSIGN-KEY to Nil. in method m1 at /tmp/707ZlWLFWN:1 in block <unit> at /tmp/707ZlWLFWN:1» | ||
FROGGS | though, such an indirect lookup is a nightmare performance wise | ||
11:53
konsolebox left
|
|||
FROGGS | jaffa4: you really need the double colon to talk about indirections | 11:53 | |
ShimmerFairy | Shouldn't something like $::<a> work too? ISTR not necessarily needing the sigil inside the name | ||
11:53
tinyblak left
|
|||
jaffa4 | m: class m { has $.a; method m1() { $::<!a"> = 1; } } ; my $c = m.new(); $c.m1(); | 11:54 | |
camelia | rakudo-moar 27f88c: OUTPUT«===SORRY!===MVMArray: Index out of bounds» | ||
FROGGS | ShimmerFairy: it works, as I'd shown | ||
masak submits rakudobug | |||
jaffa4 | m: class m { has $.a; method m1() { $!::<a> = 1; } } ; my $c = m.new(); $c.m1(); | ||
camelia | rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1khEz3wS7MConfusedat /tmp/1khEz3wS7M:1------> 3class m { has $.a; method m1() { $!:7⏏5:<a> = 1; } } ; my $c = m.new(); $c expecting any of: colon pair» | ||
ShimmerFairy | m: my $a; ::<$a> = 5; say $a | ||
camelia | rakudo-moar 27f88c: OUTPUT«5» | ||
FROGGS | jaffa4: no | ||
ShimmerFairy | m: my $a; $::<a> = 5; say $a | ||
camelia | rakudo-moar 27f88c: OUTPUT«===SORRY!===MVMArray: Index out of bounds» | ||
ShimmerFairy | FROGGS: ^ not there | ||
FROGGS | jaffa4: you can only move the sigil, not the twigil | ||
ShimmerFairy: yeah, should probably do the same as $::("a") | 11:55 | ||
11:55
konsolebox joined
|
|||
jaffa4 | m: class m { has $.a; method m1() { $::!<a> = 1; } } ; my $c = m.new(); $c.m1(); | 11:55 | |
camelia | rakudo-moar 27f88c: OUTPUT«===SORRY!===MVMArray: Index out of bounds» | ||
FROGGS | jaffa4: no! | 11:56 | |
ShimmerFairy | m: my $a; $::{"a"} = 5; say $a # also broken, at least to me | ||
camelia | rakudo-moar 27f88c: OUTPUT«===SORRY!===MVMArray: Index out of bounds» | ||
11:56
tinyblak joined,
tinyblak left
11:57
tinyblak joined
|
|||
masak | m: $::<a> | 11:57 | |
camelia | rakudo-moar 27f88c: OUTPUT«===SORRY!===MVMArray: Index out of bounds» | ||
jaffa4 | So how can I set the attribute of class? | ||
FROGGS | m: class m { has $.a; method m1() { $!a = 1; } } ; my $c = m.new(); $c.m1(); | 11:58 | |
camelia | ( no output ) | ||
FROGGS | jaffa4: is that an option? | ||
jaffa4 | dynamically | ||
FROGGS | why? | ||
jaffa4 | why not? | ||
FROGGS | heh | ||
because it is a design smell, and slow | 11:59 | ||
jaffa4 | it would not use it often | ||
masak: Is it buggy? | 12:01 | ||
FROGGS | m: class m { has $.a is rw; method m1() { self.^attributes.first(*.name eq '$!a').set_value(self, 42) } } ; my $c = m.new(); $c.m1(); say $c | 12:03 | |
camelia | rakudo-moar 27f88c: OUTPUT«m.new(a => 42)» | ||
jaffa4 | ok FROGGS, should not the short version work? | 12:05 | |
FROGGS | jaffa4: I don't know | ||
it is not a lexical, mind, it is an attribute of an instance... dunno how this should work when accessing it indirectly | 12:06 | ||
masak | jaffa4: the "MVMArray: Index out of bounds" error shouldn't happen, and that's a bug, yes. | 12:08 | |
jaffa4 | When trying to set the attribute of class dynamically? | ||
masak | FROGGS: I could also argue it both ways. | 12:09 | |
FROGGS: I guess the answer depends on how much the ::{$lookup} syntax promises to take care of. | |||
is it just lexicals, or is it other stuff as well? | |||
FROGGS | aye, which is the part I'm not sure about | ||
12:10
konsolebox left
|
|||
jnthn | The only way to set an attribute dynamically is through the MOP (the .^attributes thing) | 12:17 | |
moritz | what's ::{}? | ||
jnthn | If you're going to do it a lot you can look the meta-attribute up once and cache it in a constant | ||
moritz | m: class A { has $!a; method x() { ::('$!a') = 42 } }; A.new.x | ||
camelia | rakudo-moar 27f88c: OUTPUT«===SORRY!===No such symbol '$!a'» | ||
jnthn | I don't recall anything in the design docs suggesting ::('$!a') should work, and I'm not especially inclined to make it do so... | 12:18 | |
moritz | aye; it would be pretty magical | ||
(because it needs a 'self', where other such lookups don't) | |||
jnthn | Right | 12:19 | |
12:19
sisar left
12:20
konsolebox joined
|
|||
jnthn | So what FROGGS++ show is the way to do it. | 12:20 | |
*showed | 12:21 | ||
12:23
cognominal joined
12:24
Ven left
|
|||
masak | decommute & | 12:25 | |
12:26
llfourn left
|
|||
ShimmerFairy | So, while trying to fix that grep arity bug the other day, I've run into some new spectest failures that I have been unable to figure out the cause of. It's certainly my code at fault, though I can't tell why: gist.github.com/lue/4ea15272ffe507a8106d | 12:27 | |
(those two concurrency tests failed before the change is introduced; I just put them in localtest.data for completeness) | 12:28 | ||
Woodi | hi #perl6 | 12:31 | |
about Suplies: if they want to replace threads in many applications they need to be low level constructs... it means: fast. that implies "simple" or maybe there should be two kinds of async constructs | 12:35 | ||
12:36
Ven joined
|
|||
jnthn | What does "replace threads" even mean? | 12:36 | |
Woodi | I was imagining barista serves coffe: $mill = Supply{...}; $machine = Suply{...}; but cannot help myself and wanted to imagine: $barista = Actor{...} | 12:37 | |
jnthn: making threads yet less popular and unnecesary :) | 12:38 | ||
I think " | |||
jnthn | Woodi: I guess what you really mean is more like, if we want people to work at high levels of abstraction when working on concurrent programming, then we abstractions need to perform well. In which case, yes, I'd agree. | 12:39 | |
Woodi | ...signals in OO means: objects are async thingies... | ||
grr, s/signals/message sending/ | |||
jnthn | Threads won't go away in so far as they're the primitive that gets you onto multiple cores/CPUs. But working directly with them for 99% of problems should indeed not be needed. | 12:40 | |
Woodi | until CPU supports them natively :) | ||
Intel was trying... | |||
jnthn: just Supplies looks very high level | 12:42 | ||
jnthn | Woodi: They're just a thread-safe implementation of the observer pattern, which is just calls, which we should be able to make decently fast. | 12:43 | |
Woodi: Rx in .Net and RxJava have been used in plenty of high-throughput situations and are the same model. | 12:44 | ||
Woodi: So I'm not too concerned. Sure we have nicer syntax sugar with the proposal I wrote up, but that doesn't change the fundemental nature of things. | |||
It's just extremely conveneint sugar for setting up observers with some concurrency control factored out of your code. | 12:45 | ||
12:45
llfourn joined
|
|||
dalek | c: f75c070 | moritz++ | lib/Type/Supply.pod: Mention that Supply is an implementation of the observer pattern, jnthn++ |
12:45 | |
Woodi | jnthn: that's good :) so I should actually try them :) | 12:47 | |
jnthn | I should note that the current impl is not as fast as what we'll end up with | 12:48 | |
12:49
atroxaper joined,
raiph joined
|
|||
hoelzro | good morning #perl6 | 12:51 | |
12:51
lucasb joined
|
|||
Woodi | jnthn: I have one more thing or impression. sometimes I thinked that examples could be replaced with function call with state varible... and Suplies should be totally about async thingies. but that just impression | 12:52 | |
ShimmerFairy | jnthn: anything obviously wrong in how I tried fixing that bug, by chance? (If it's not something obvious I'll continue bug hunting myself) | ||
jnthn | Supplies are about async things... | ||
12:53
atroxaper left,
pullphinger joined
|
|||
DrForr | Resisting an UHF joke here. | 12:54 | |
jnthn | ShimmerFairy: ah, sorry, missed it...was distracted trying to impl multi-dim arrays :) | ||
ShimmerFairy | jnthn: no worries, multi-dim arrays are kind of a bigger thing :) | 12:55 | |
jnthn | ShimmerFairy: I'd not worry too much over the Async socket one, I doubt that is your fault | ||
ShimmerFairy | jnthn: yeah, like I said, the concurrency-related tests failed before, and that's whenever I do TEST_JOBS (so it's not too surprising) | 12:56 | |
jnthn | The other two look like something's wrong though | ||
I don't immediately know why, sorry | |||
ShimmerFairy | jnthn: alright then, I was just wondering if I made a simple goof due to lack of Rakudo hacking experience :) | 12:57 | |
jnthn | No, I don't see anything obvious after a few looks over it, I'm afraid | 12:58 | |
ShimmerFairy | Yeah, it's definitely a weird one. And I've done enough messing around to know that it's specifically the role mixin that introduces the problem. | 12:59 | |
13:00
cschwenz joined
13:01
xinming left
|
|||
cschwenz | o/ #perl6 | 13:01 | |
masak | \o | 13:02 | |
[ptc] | \o | ||
masak | czesc, cschwenz :) | 13:03 | |
cschwenz | good * masak | ||
13:03
nige1 joined
|
|||
cschwenz | a request for help (from anyone): how do you access a hash-of-a-hash in perl6? (perl 5 is $hash{foo}{bar}, perl6 is ???) i've tried searching the docs and online, but have turned up only how to access a hash. :-/ | 13:05 | |
nine | cschwenz: just the same | 13:06 | |
cschwenz | hmm | ||
jnthn | Same, except you need {'foo'}{'bar'} or <foo><bar> | ||
Since we don't auto-quote inside {...} | |||
masak | m: my %h = foo => { bar => 42 }; say %h<foo><bar> | ||
camelia | rakudo-moar 27f88c: OUTPUT«42» | ||
masak | cschwenz: ^^ | ||
cschwenz | i'm getting postcircumfix:<{ }> not defined for type Parcel when doing %hash{"foo"}{"bar"} | ||
13:06
Humbedooh left
|
|||
masak | cschwenz: then you're probably getting a Parcel out of %hash{"foo"} | 13:07 | |
cschwenz: maybe check why. | |||
cschwenz | hmm, okay | ||
what would generate a Parcel vs a plain hash? | |||
masak | m: say (1, 2).^name | 13:08 | |
camelia | rakudo-moar 27f88c: OUTPUT«Parcel» | ||
masak | that, for example. | ||
moritz | %hash<foo> = (1, 2) | ||
masak | maybe for the purposes of this discussion, consider Parcel == List | ||
13:08
Humbedooh joined
|
|||
cschwenz | ah, so i'm doing %hash{"foo"} = bar => 12, baz => 17; but that's weird that it's creating a parcel instead of a hash | 13:10 | |
moritz | why would that be weird? | ||
the comma makes a Parcel | |||
my $x = (bar => 12, baz => 17) # would you expect that to make a hash? | 13:11 | ||
cschwenz | because %hash = foo => 1, bar => 2; creates a hash and can be referenced by %hash{"foo"} | ||
moritz | you need { ... } or %( ... ) | ||
cschwenz: but there you're assigning to a hash, which is specical | |||
13:11
JimmyZ_ left
|
|||
masak | cschwenz: %hash is a hash, but %hash{"foo"} is an item. | 13:11 | |
moritz | assigning to a hash element isn't special, because a hash element doesn't have to be a hash | ||
jaffa4 | How can I print current time? | ||
ShimmerFairy | so %hash{"foo"} = {bar => 12, baz => 17} would be the way to do what you mean to do. | ||
moritz | m: say now | ||
camelia | rakudo-moar 27f88c: OUTPUT«Instant:1437484350.793979» | ||
moritz | m: say time | ||
camelia | rakudo-moar 27f88c: OUTPUT«1437484319» | ||
masak | m: say DateTime.now | ||
camelia | rakudo-moar 27f88c: OUTPUT«2015-07-21T15:11:59+02:00» | 13:12 | |
moritz | m: say Date.today | ||
camelia | rakudo-moar 27f88c: OUTPUT«2015-07-21» | ||
moritz | four options, depending on what you need | ||
masak | m: say Date.new | ||
camelia | rakudo-moar 27f88c: OUTPUT«2015-12-24» | ||
cschwenz | ah, okay. i understand now. thanks all! :-) | ||
masak | or Christmas :) | ||
moritz | \o/ Christmas | ||
jaffa4 | WHat about ateTime.now without timezone? | ||
masak | /o\ Christmas | ||
jaffa4: how could you not have a timezone? | 13:13 | ||
jaffa4: the world is covered with timezones. | |||
ShimmerFairy | ☃ Christmas ☄ | ||
masak | ShimmerFairy: :D | ||
jaffa4 | I mean without timezone info | ||
moritz | what about it? | ||
13:14
domidumont left
|
|||
moritz | jaffa4: doc.perl6.org/type/DateTime has something about time zones | 13:14 | |
jaffa4 | I would like to see 015-07-21T15:11:59 | ||
moritz | ah, UTC | ||
13:14
domidumont joined
|
|||
ShimmerFairy | masak: I still half-jokingly vote for snowman-comet to be the unquote delimiters :P | 13:14 | |
jaffa4 | not utc, without timezone information | ||
masak | ShimmerFairy: thank you for providing me with a new worst alternative, beating out ¤ | 13:15 | |
ShimmerFairy | masak: aww, it'd be -Ofun though :) | ||
[Coke] | You'd have to write your own code to print that out. We don't have a mini date formatting language, like, say, SQL's to_date() | 13:21 | |
You should be able to get the individual elements of the DateTime. | 13:22 | ||
masak | m: say sprintf "%d-%02d-%02dT%02d:%02d:%02d", .year, .month, .day, .hour, .minute, .second given DateTime.now | 13:23 | |
camelia | rakudo-moar 27f88c: OUTPUT«2015-07-21T15:23:25» | ||
masak | jaffa4: ^^ | ||
jaffa4 | I see | ||
masak | ...he said, disappointed. :) | 13:24 | |
FROGGS | *g* | ||
timotimo | this NCoC thing is strange to me, but the very last piece of the FAQ-thing is a bit enlightening | 13:27 | |
13:28
dayangkun joined
|
|||
jaffa4 | How compilcated can this given be? | 13:29 | |
timotimo | you can put an expression after "given", and the whole statement can still get more statement modifiers, like postfix "for" | 13:30 | |
13:30
laouji left,
JimmyZ_ joined
|
|||
jaffa4 | In perl6 eval , is it possible to redefined methods/ | 13:33 | |
13:35
g5 left
|
|||
timotimo | please be more specific | 13:35 | |
masak | jaffa4: you mean like this? | ||
> Int.^add_method("succ", method () { 42 }) | |||
Package 'Int' already has a method 'succ' (did you mean to declare a multi-method?) | |||
lucasb | Oh, I just thought if there was a Timeish role, than DateTime could be 'does Dateish does Timeish'; but maybe you have already considered and rejected this :) | 13:36 | |
13:36
khw joined
|
|||
masak | > Int.^find_method("succ").wrap(sub ($self) { 42 }) | 13:36 | |
WrapHandle.new | |||
> 5.succ | |||
42 | |||
jaffa4: or like this? ^ | |||
lucasb | Then it could exist a Time does Timeish class too; idk, maybe just to factor things out of DateTime | 13:37 | |
jaffa4 | last one | ||
masak | lucasb: Date is independent of DateTime, but a hypothetical Time kinda isn't. | ||
lucasb: because of things like leap seconds. | |||
labster: and daylight savings. | 13:38 | ||
lucasb | masak: oh, you are right | ||
masak | uhm, lucasb | ||
13:38
tinyblak left
13:39
Humbedooh left
|
|||
jaffa4 | masak: that is not eval... just pure Perl6 | 13:40 | |
masak | yep. | ||
it's MOP, though. | |||
> given Int.^find_method("succ").wrap(sub ($self) { 42 }) { say 5.succ; .restore; say 5.succ } | |||
42 | |||
6 | |||
it's fun to play around with, though. :) | |||
jaffa4 | MOP? | ||
masak | m: given Int.^find_method("succ").wrap(sub ($self) { 42 }) { say 5.succ; .restore; say 5.succ } | 13:41 | |
camelia | rakudo-moar 27f88c: OUTPUT«426» | ||
masak | jaffa4: yes, the `^` there indicates that it's the MOP. | ||
jaffa4: "Meta-Object Protocol". | |||
tadzik | because it's getting me-up | ||
tadzik hides | |||
masak | jaffa4: it's a direct access to the object system and its internals. | ||
13:45
Humbedooh joined,
brrt left
13:46
JimmyZ_ left
|
|||
jaffa4 | and is it possible to copy code from method to another? | 13:47 | |
masak | jaffa4: generally, once you have created a routine of any kind, it's a black box as far as its code is concerned. so, no. | 13:48 | |
jaffa4: but you can call other methods freely, and thus get a kind of indirect use of their code. | |||
jnthn | You can always install one method under a second name, too. | ||
masak | m: my $succ = Int.^find_method("succ"); Int.^add_method("sux", $succ); say 5.sux | 13:51 | |
camelia | rakudo-moar 27f88c: OUTPUT«6» | ||
masak | like that. | ||
13:52
tinyblak joined
13:56
tinyblak left
|
|||
dalek | osystem: a969530 | Adriaan++ | META.list: added Avro |
14:01 | |
osystem: 95c1bd6 | FROGGS++ | META.list: Merge pull request #50 from sylvarant/master added Avro |
|||
14:02
cschwenz left
|
|||
flussence | dear lazyweb: this test failure makes absolutely no sense. testers.perl6.org/reports/65263.html | 14:08 | |
yoleaux | 08:11Z <Ven> flussence: it's "avoid 'success at all cost'", the inner quotes are important :P. irclog.perlgeek.de/perl6/2015-07-21#i_10928473 | ||
14:10
brrt joined,
skids joined
14:14
dayangkun left
|
|||
masak | japhb: nice. gist.github.com/japhb/b76f7d3a816df4d65108 | 14:14 | |
japhb: I agree fully, until the last sentence which feels slightly off for some reason. | 14:15 | ||
japhb: the health and happiness of our community comes before unredeemable trolls, sure. | 14:16 | ||
14:16
jscripter joined
|
|||
masak | japhb: also, the whole point 5 sounds a bit like "you get one hug and one chance, and then you're out", which fortunately isn't true | 14:16 | |
(I know you likely didn't intend it that way, but it can be read that way) | 14:17 | ||
DrForr | Dropping 'first' on #5 might help toward that goal. | 14:19 | |
14:19
jscripter left,
pullphinger15 joined
14:20
pullphinger left
|
|||
ugexe | im really digging being able to do like: my $todo = @promises.reduce(-> $a, $b { $a = $a.then({ $b }) }) | 14:20 | |
cdc thought Perl 6 CoC was perl6advent.wordpress.com/2010/12/...ide-carol/ | |||
jnthn | ugexe: cute... :) | 14:21 | |
masak | ugexe: you could even turn that into an operator, let's say ⇒, and then you could [⇒] | 14:22 | |
jnthn | .oO( Promise.pipeline(...) ) |
||
.u ⇒ | |||
yoleaux | U+21D2 RIGHTWARDS DOUBLE ARROW [Sm] (⇒) | ||
14:22
tinyblak joined
|
|||
jnthn | Looks LTA in my font :( | 14:22 | |
masak | get a better font :) | ||
brrt | how do you type that so easily | ||
masak | brrt: App::Uni | ||
brrt: $ uni arrow | less | 14:23 | ||
flussence | whoa. | ||
flussence installs | |||
masak | :D | ||
au++ for that one | |||
ShimmerFairy | <Multi_key> <=> «>» (or <=> <Right_Arrow> <Right_Arrow>) for me :P ⇒⇒ | ||
brrt | very nice | ||
14:23
pullphinger15 left
|
|||
flussence | I've been limping by on gucharmap2 for a while, and thinking of writing a replacement for it in perl6... eventually | 14:24 | |
14:25
pullphinger joined,
nige1 left
|
|||
brrt | 📲 this.. is an unicode character | 14:25 | |
masak | .u 📲 | ||
yoleaux | U+1F4F2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT [So] (📲) | ||
masak | the future will not be kind to the Unicode consortium. | ||
jaffa4 | m: @a = 1,2,3,4,5,7; say @a.gist; | 14:26 | |
camelia | rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wuNy4IldBOVariable '@a' is not declaredat /tmp/wuNy4IldBO:1------> 3<BOL>7⏏5@a = 1,2,3,4,5,7; say @a.gist;» | ||
jnthn | I...what :) | ||
masak | .u front-facing | ||
yoleaux | U+1F425 FRONT-FACING BABY CHICK [So] (🐥) | ||
jaffa4 | m: my @a = 1,2,3,4,5,7; say @a.gist; | ||
camelia | rakudo-moar 27f88c: OUTPUT«1 2 3 4 5 7» | ||
masak | .u tears | ||
yoleaux | U+1F602 FACE WITH TEARS OF JOY [So] (😂) | ||
U+1F639 CAT FACE WITH TEARS OF JOY [So] (😹) | |||
masak | because cats can be joyously sad, too | ||
brrt | wat | ||
flussence | .oO( I wish they'd stop faffing around and allocate a "GUI Symbols" codeplane so everyone would stop cramming things into the private use area for that... ) |
14:27 | |
masak | .u pirate | ||
yoleaux | No characters found | ||
brrt | people would not be able to manage that | ||
.u ♝ | |||
yoleaux | U+265D BLACK CHESS BISHOP [So] (♝) | ||
dalek | c: 7448bf7 | hoelzro++ | bin/p6doc: Use $*TMPDIR to create temporary files $*TMPDIR will follow the operating system's best practices for temporary file management |
14:29 | |
c: 490872a | PerlJam++ | bin/p6doc: Merge pull request #103 from hoelzro/master Use $*TMPDIR to create temporary files |
|||
jaffa4 | Is it possible to have a stream into a String? | 14:30 | |
14:30
FROGGS left,
darutoko- joined
|
|||
ShimmerFairy | m: my $a = { /^\d/ }; my @a = 1,2,3,"abc"; say @a.map: { next unless $a($_); $_ }; say @a.map: -> $Z { next unless $a($Z); $Z } # jnthn: this is where the day23 test failure comes from, I believe | 14:31 | |
camelia | rakudo-moar 27f88c: OUTPUT«1 2 3Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/4tVGcP3dfG:1» | ||
ShimmerFairy | I'm _very_ tempted to say you shouldn't expect grep { /^\d/ } @list to work, but I don't know what the general consensus is. | 14:32 | |
* grep { /^\d/ }, @list | |||
moritz | grep /^\d/, @list | 14:33 | |
14:33
darutoko left
|
|||
ShimmerFairy | m: my $a = { /^\d/ }; $_ = 12; say $a($_) # weird magic doesn't work outside of a map, btw | 14:34 | |
camelia | rakudo-moar 27f88c: OUTPUT«/^\d/» | ||
14:34
baest_ joined
|
|||
ShimmerFairy | moritz: yeah, I'm not sure what possessed the test to put the regex in a block like that (except maybe clarity??) | 14:35 | |
ugexe | masak: thanks for that suggestion | 14:37 | |
PerlJam | ShimmerFairy: maybe the lack of "weird magic" outside of map/grep is the bug :) | ||
masak | ugexe: I'm a big fan of "utility ops", kind of like small local utility functions, except they're ops. | 14:38 | |
ShimmerFairy | PerlJam: well, my current bugfix for the arity of grep breaks that weird magic expectation, and the only way to fix it, it seems, would be to introduce an ugly, ugly 1-arg special case. | ||
masak | ugexe: they're especially neat if you immediately turn around and do something like reduce on them. | ||
ShimmerFairy | OK, it _seems_ like both new failures are because of that expectation of magic, which I'm personally against (I've never liked usages of m// and such without ~~ , btw). It's either fixing the tests or an ugly workaround | 14:40 | |
14:41
amurf joined
|
|||
masak | ShimmerFairy: s/// without ~~ is pretty neat, though. | 14:42 | |
14:42
muraiki joined
|
|||
ShimmerFairy | masak: I'm sure it is, but I'm _so_ used to the $thing ~~ s/// form that I've been weirded out by the omission of ~~ ever since I first discovered that was possible :) | 14:42 | |
dalek | kudo/multidim: 38fb1f7 | jnthn++ | src/core/Any.pm: Fix a missing "is rw". |
14:43 | |
kudo/multidim: 0c530d3 | jnthn++ | src/core/ (2 files): Basic :shape(...) and *-POS multidim impl in Array The [...] indexer isn't updated yet to know about the new *-POS access approach for multi-dim, so testing this out requires using AT-POS and friends. |
|||
ShimmerFairy | masak: ~~ is almost the "regex match" operator to me, at times :P | ||
masak | ShimmerFairy: weird. sounds like you simultaneously over-remember and under-remember p5 :P | ||
ShimmerFairy | masak: I've never touched Perl 5 :P | 14:44 | |
dalek | kudo/socket-print-not-send: 98b3552 | hoelzro++ | src/core/IO/Socket.pm: Deprecate Socket.send in favor of Socket.print Users may confuse the send method (which is just a Str-friendly wrapper over write) with send(2), which is subtly different from write(2). To avoid this confusion, and open up the possibility of a true send(2) analogue in the future, I think that the current send should be renamed to print (thanks to jnthn++ for the suggestion) |
||
geekosaur | that's interesting because your grep typo earlier was a perl5-ism | 14:45 | |
ShimmerFairy | I think the real question is if &a = { /regex/ }; &a($_) is supposed to ever be that magical. | ||
geekosaur: the missing comma? That was just me not used to typing paren-less subs :) (except of course for things like 'say' , which are almost more like keywords than subs in my mind) | |||
14:46
amurf left
|
|||
ShimmerFairy | m: my @a = 1,2,3,"abc"; say @a.grep: {/^\d/}; say @a.map: {/^\d/} | 14:49 | |
camelia | rakudo-moar 27f88c: OUTPUT«1 2 3/^\d/ /^\d/ /^\d/ /^\d/» | ||
ShimmerFairy | ^ I think that settles it as grep doing the wrong thing. I'll fix the tests unless someone can give me a good explanation otherwise :) | ||
PerlJam | It's funny how two people can look at the same data and draw opposite conclusions. | 14:51 | |
(clearly map is doing the wrong thing :) | |||
lucasb | m: my @a = 1,2,3,"abc"; say @a.map: { /^\d/ ?? 'y' !! 'n' } | 14:52 | |
camelia | rakudo-moar 27f88c: OUTPUT«y y y n» | ||
ShimmerFairy | PerlJam: that's combined with the previous show of $_ magic not happening. I conclude that it's not supposed to happen in general, it's just a quirk of the current grep implementation for Callables | ||
RabidGravy | what does "Cannot call AUTOGEN(....)" mean? | ||
lucasb | m: my $re = { /\d/ }; $_ = 42; if $re { say 'yes' } | 14:53 | |
camelia | rakudo-moar 27f88c: OUTPUT«yes» | ||
lucasb | Interesting that I didn't need to call $re() in that 'if', just mention it | ||
ShimmerFairy | m: my $re = { /\d/ }; $_ = "a"; if $re { say 'yes' } | 14:54 | |
camelia | rakudo-moar 27f88c: OUTPUT«yes» | ||
lucasb | oh nevermind, my mistake | ||
hehe :) | |||
PerlJam | m: my $non-re = { say "hi" }; if $re { say 'yes' } | ||
camelia | rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nVfFBo3SDHVariable '$re' is not declaredat /tmp/nVfFBo3SDH:1------> 3my $non-re = { say "hi" }; if 7⏏5$re { say 'yes' }» | ||
PerlJam | m: my $non-re = { say "hi" }; if $non-re { say 'yes' } | ||
camelia | rakudo-moar 27f88c: OUTPUT«yes» | ||
14:54
tinyblak left
|
|||
PerlJam | can't even type my own thoughts correctly | 14:54 | |
14:55
andreoss joined
|
|||
llfourn | is it possible to put a 5to6 warning? ...given that grep { /^\d/ } doesn't make sense? | 14:56 | |
PerlJam thinks everyone is crazy now. | 14:57 | ||
14:57
JimmyZ_ joined
|
|||
PerlJam | (either that or I'm crazy :) | 14:57 | |
14:57
Ven left
|
|||
masak | llfourn: why wouldn't that make sense? | 14:58 | |
llfourn: oh, you mean without the colon? | |||
llfourn | No I think it does I thought that it had been decided that it didn't ( I missed a few messages ) | ||
ShimmerFairy | jnthn: should grep({ /^\d/ }) work like grep(/^\d/) ? If so, I'd have to add a workaround for passing $_ to 1-arg uses of grep? (Looks like I might need it anyway, though.) | ||
masak | ShimmerFairy: is the regex essential to that question? | 14:59 | |
ShimmerFairy | yep, that's where the test failures I've encountered happen, using useless {} around a regex | 15:00 | |
masak | ShimmerFairy: or do you just dislike *all* implicit uses of $_ in a grep block? | ||
15:00
][Sno][ joined
|
|||
jnthn | ShimmerFairy: I think you should just use the existing code-path for 1-arg forms | 15:00 | |
15:00
muraiki_ joined
|
|||
jnthn | ShimmerFairy: No reason we should make simple 1-arg grep more expensive | 15:00 | |
so if &callable.count == 1 { ...the orig thing... } else { ..the new thing... } | 15:01 | ||
And that I guess magics away your new problem too :P | |||
ShimmerFairy | jnthn: OK. There was an explicit use of $_ in a grep that I saw break, so I would've had to anyway :) | ||
masak: I guess because I never rely on implicit $_ (I always specify $_), I'm not very attached to things depending on it :) | |||
masak | ShimmerFairy: well, with the implementor hat on, you have to cater to the needs of people who don't code like you do ;) | 15:03 | |
ShimmerFairy | masak: sure, it's just that I only found the expectation of implicit $_ in one case I tried to work as meaning it was a possible bug in the original code :) | 15:04 | |
15:06
FROGGS joined
|
|||
masak | ShimmerFairy: writing things as .foo instead of $obj.foo can be terribly convenient in some kinds of code. | 15:07 | |
ShimmerFairy: s/// without ~~ is part of that convenience package. | |||
15:08
GgLaPoule joined,
hobbified joined
|
|||
ShimmerFairy | masak: Yeah, I'm not saying implicit $_ is a terrible thing, just something I don't use often. So I may be a bit too eager to toss it at times by mistake :P | 15:08 | |
15:09
muraiki left,
khw left,
[Sno] left,
dg left,
skarn left,
lsm-desktop left,
hobbs left
|
|||
ShimmerFairy | masak: btw, did you notice my CoC draft while backlogging? | 15:10 | |
(adding the original code as a 1-arg case appears to have fixed the new errors I encountered; running full spectest now to be sure) | 15:11 | ||
moritz didn't. WHere is it? | |||
15:11
dg joined
|
|||
hoelzro | ShimmerFairy++ | 15:12 | |
ShimmerFairy | moritz: gist.github.com/lue/6dfe2fec1579508dde30 | ||
PerlJam | moritz: gist.github.com/lue/6dfe2fec1579508dde30 | ||
oops, too slow | |||
moritz | somehow I get "The page isn't redirecting properly" | 15:17 | |
15:18
Ven joined,
lsm-desktop joined
|
|||
ShimmerFairy | moritz: here's the raw version, see if this works: gist.githubusercontent.com/lue/6df...b/coc.pod6 | 15:18 | |
15:19
JimmyZ_ left,
khw joined
|
|||
moritz | ShimmerFairy: I like it too | 15:21 | |
but, there's always a but :-) | |||
1) it's too long for my taste | 15:22 | ||
2) I don't like the idea to walk away (even if for a small time) if you're being attacked by a troll. If being nice towards a troll doesn't work, we should ban them, before our contributors walk away. Even if they only walk away for a short time. | 15:23 | ||
</critic> | |||
ShimmerFairy | moritz: 1) is I think because my draft goes a ways to explain things, rather than simply state. And that's where 2) comes from; it's meant to offer general advice about how to handle conflicts (but I did consider the problem of discouraging contributors when writing that portion) | 15:24 | |
15:25
zakharyas left,
lizmat left
|
|||
[Coke] | # TODO submix behavior still under discussion - assuming I should not unfudge these, then? | 15:25 | |
ShimmerFairy | I think a code of conduct would be a (near-)perfect fit for S27 , by the way ("Perl culture") | 15:26 | |
tadzik | oh, I'd like if it was a part of it | ||
PerlJam | ShimmerFairy: +1 | 15:28 | |
japhb | masak: Yeah, agree about #5 in my CoC attempt; I've removed the first 'first' as suggested by DrForr++, and I agree that's an improvement. | 15:30 | |
yoleaux | 08:26Z <brrt> japhb: i like that form of code-of-conduct, it's short, too the point, and human rather than policital | ||
japhb | Thank you, brrt. | ||
moritz | japhb: where's your draft? | 15:31 | |
japhb | moritz: gist.github.com/japhb/b76f7d3a816df4d65108 | ||
brrt | you're welcome, japhb | 15:32 | |
PerlJam | The hard part about maintaining our culture is not the egregious problems that most codes of conduct seek to address (discrimmination, sexism, etc.), but the little things that gradually erode it. Like, being intentionally mean in a "playing around" sort of way. Too much of that and then you can't tell when playing around crosses a line. | ||
moritz | japhb: ooh, +2 | 15:33 | |
japhb | I wonder if a short-style CoC the way I did it can be the TL;DR, and then a longer explanatory-style one like ShimmerFairy's, can be united into a single document to satisfy a greater set of audience needs. | ||
PerlJam | japhb: yes, that would be very nice. | ||
raiph | i'd much prefer coc/codb losing such titles and independent status and s27, with the title being "culture" or somesuch, being the #perl6 goto url that discusses behavior | ||
japhb | PerlJam: Agree about the "playful mean", that can be a real problem. | ||
ShimmerFairy | moritz: updated the portion you mentioned so that it doesn't suggest that the attacked to walk away: gist.githubusercontent.com/lue/6df...8/coc.pod6 | 15:34 | |
japhb | raiph: I'm fine with that. I'm using the CoC name as a recognized tag, not as a title I prefer. | ||
raiph | also, imo, the key is valuing equanimity and those who sustain it | ||
RabidGravy | deary, deary me panda. Reinstalling the same modules over and over again because of "Reverse Dependencies" is really not clever | ||
15:35
JimmyZ_ joined
|
|||
ShimmerFairy | japhb: I could put my draft in the specs as a kind of S27 , if you think having a collaborate-able document would be helpful by this point | 15:35 | |
*S27 draft | |||
moritz | RabidGravy: writing a good package manager is surprisingly hard | ||
RabidGravy | I know | ||
japhb | ShimmerFairy: Maybe paste both into the same doc (mine in some sort of TL;DR or Overview or what have you at the top), and let the community iterate? | 15:36 | |
raiph | s/those/supporting those/ | ||
ShimmerFairy | japhb: sure, I could put it under SYNOPSIS in my draft for the time being if you prefer | ||
japhb | Yeah, actually, that WFM | 15:37 | |
PerlJam | ShimmerFairy: I think you should go ahead and make a draft S27 | ||
(though, whenever this makes it to "book" form, S27 really needs to be something closer to S01.5 or something | 15:39 | ||
) | |||
masak | PerlJam: agree fully about your "playing around" comment. this incident irclog.perlgeek.de/perl6/2009-03-16#i_989917 remains my go-to example of that. | ||
llfourn | is sub EXPORT always meant to work with is export? Right now they work together until the importer passes a positional. But if you pass a positional and :ALL it works. | ||
( trying to write some docs :) ) | 15:40 | ||
japhb scans masak's example and winces | |||
masak | PerlJam: people might have a bad day; it's easy to assume meanness; language barriers make it worse; etc | ||
PerlJam | indeed. | 15:41 | |
15:43
nige joined
|
|||
PerlJam | I like that such an interaction could become a learning experience (not just for the participants) | 15:43 | |
dalek | ast: 5425477 | coke++ | / (15 files): reduce the scope of some fudges. |
15:44 | |
PerlJam | (though, like japhb, I too winced at first) | ||
dalek | ecs: df43216 | ShimmerFairy++ | S27-perl-culture-draft.pod6: Add draft of S27 Initial contents by myself and japhb++ . |
15:45 | |
ShimmerFairy | By the way, I just noticed pod6-files . Is the tool mentioned therein just a temporary solution? | ||
moritz | ShimmerFairy: it's temporary if somebody replace it with something better | 15:48 | |
japhb | Thank you ShimmerFairy++ | ||
ShimmerFairy | moritz: yeah, I should really get back to the converter I was working on ages ago :) | ||
15:49
nige left
|
|||
ShimmerFairy | no problem, japhb :) | 15:50 | |
brrt | y does stage parse take so long these days? | ||
oh, no optimizations | 15:51 | ||
sjn likes ShimmerFairy's S27 proposal | 15:52 | ||
ShimmerFairy++ # codifying culture | 15:53 | ||
15:53
nige joined
|
|||
masak wonders if "disarming" is a concrete enough phenomenon to be highlighted in that document | 15:54 | ||
dalek | kudo/nom: bc01cae | ShimmerFairy++ | src/core/Any.pm: Allow blocks given to grep have multiple arguments. Fixes #71544 |
15:55 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=71544 | ||
masak | using humor to disarm trolls, I mean. | ||
15:56
brrt left
|
|||
masak | sometimes not taking ourselves all that seriously helps, too. | 15:56 | |
dalek | ast: 3ddbccf | ShimmerFairy++ | S32-list/grep.t: Unfudge test for #71544 |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=71544 | ||
timotimo | i'm not 100% on "our standard of behavior is awesome, if you are LTA, you'll be called out on it" | ||
masak | timotimo: oh, ugh. I see what you mean. | ||
timotimo: that sounds like an impossible standard. :) | 15:57 | ||
timotimo | i do understand the intention behind it :) | ||
ShimmerFairy | masak: I do believe #71544 can be closed now :) | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=71544 | ||
timotimo | yes, indeed | ||
15:57
lizmat joined
|
|||
PerlJam | ShimmerFairy: Are there tests for the multi-param grep/ | 15:57 | |
? | |||
masak | timotimo: I think the sentence should be phrased in some other way, and then it will say what I first read it as :) | ||
timotimo | right | ||
15:57
nys joined
|
|||
ShimmerFairy | PerlJam: there is one, which I just unfudged | 15:57 | |
PerlJam | oh, I totalled missed that. | 15:58 | |
masak | timotimo: maybe "...is tolerant; if you are LTT..." | ||
lizmat | good *, #perl6 from OSCON | ||
masak | hi, lizmat! \o | ||
ShimmerFairy | o/ lizmat | ||
timotimo | such an impossible standard invites the ability to throw out people selectively, because everybody potentially violites that standard | ||
masak | hi, OSCON! | ||
lizmat | T minus 3 for TheDamian's "Perl 6: Transparadigm Programming 101" | 15:59 | |
masak briefly considers kicking timotimo for saying that :P | |||
lizmat | .oO( violites = senseless violins ? ) |
||
timotimo | %) | 16:00 | |
colomon | lizmat: where? oscon? | ||
lizmat: nevermind, I see that | |||
RabidGravy | little violins, sold in packets in the supermarket | ||
timotimo | the violin players of the underground resistance force | 16:01 | |
the elite violites | |||
moritz wonders if those violin players are volatile | |||
timotimo | something the MicroSF/F twitter accound would tell a story about | ||
16:01
rangerprice joined
|
|||
timotimo | moritz: they play their violins with hair from volatails | 16:02 | |
RabidGravy | nope panda is definitely going to die, this is the sixth time it has attempted to install Audio::Encode::LameMP3 this time twice in a row for now apparent reason | ||
tadzik | eh | ||
rangerprice | hi | ||
16:02
][Sno][ left
|
|||
colomon | We have an Audio::Encode::LameMP3? | 16:03 | |
timotimo | RabidGravy: has been working on it | ||
well, making it, really | 16:04 | ||
tadzik | RabidGravy: panda is going to change drastically soon | ||
colomon | OMG, smoker has finished three days in a row!!!! | ||
tadzik | for better or worse | ||
moritz hopes for better | |||
masak | in sickness and health | ||
RabidGravy | colomon, I put it in the ecosystem this morning | ||
colomon | \o/ | 16:05 | |
RabidGravy++ | |||
RabidGravy | but I have a fear that it make not work properly when compiled for some reason | ||
timotimo | tadzik: whoa, dude. soon? | ||
PerlJam | tadzik: hopefully for better and not worse :) | 16:06 | |
RabidGravy | tadzik, it is going bonkers reinstalling the same modules repeatedly on a rebootstrap | 16:08 | |
16:09
nige left
|
|||
timotimo | RabidGravy: fortunately, you can ctrl-c rebootstrap at that point and still be left with a working panda (though not necessarily all working modules) | 16:09 | |
RabidGravy | yeah, that's what I did | 16:10 | |
:) | |||
tadzik | RabidGravy: yeah, wonky revdep-rebuild :? | ||
RabidGravy | yep | 16:11 | |
japhb | timotimo: I understand what you mean about the awesome behavior standard. I wrote that with my already-in-the-community blinders on. | 16:13 | |
RabidGravy | and just so no-one feels left out "Cannot invoke this object (REPR: Null, cs = 0) in block at lib/OO/Monitors.pm:28" | ||
japhb | I don't think 'awesome' -> 'tolerant' captures all I wanted to say, but I am very open to suggestions, and I'll let it percolate at the back of my mind. | ||
16:14
GgLaPoule left
|
|||
PerlJam | ShimmerFairy: It occurs to me that grep-index, first, and first-index should probably get similar treatment as grep. (Though, considering the *-index variants makes me think once again that they should go away) | 16:15 | |
ShimmerFairy | I'm not even familiar with the -index varieties; they basically return an index instead of an element, right? | 16:16 | |
PerlJam | ShimmerFairy: yes, or for your patch multiple indices | ||
ShimmerFairy: btw, consider using a parameterized role. It cuts down on the code a bit. | 16:17 | ||
ShimmerFairy | I thought those were just for parameterizing types, so it didn't occur to me :) | 16:18 | |
16:18
yqt joined
|
|||
japhb | Re: the awesome behavior standard, it occurs to me that I want to also indicate that A) we know it's an aspirationally-high bar, and B) we aim to help people grow on their way to that goal. | 16:21 | |
I'd wager that most of the people who've been here for a long time can find instances where their EQ (emotional/social intelligence) rose because of the community's supportive environment. | 16:24 | ||
ShimmerFairy | m: multi foo() { say "OH HAI" }; multi foo(Int $a?) {}; multi foo(Str $a?) {}; foo # RT #74900 | 16:25 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=74900 | ||
camelia | rakudo-moar bc01ca: OUTPUT«Ambiguous call to 'foo'; these signatures all match::():(Int $a?):(Str $a?) in block <unit> at /tmp/UOU7YtguPC:1» | ||
ShimmerFairy | masak: do you still that foo() should be considered narrower, perchance? :) | ||
japhb | Thankfully, they say EQ can (and often does) rise without bound over one's life. | ||
16:25
atroxaper joined
16:28
Hor|zon_ joined
16:30
atroxaper left
16:31
Hor|zon left
|
|||
b2gills | ShimmerFairy: $S27 ~~ s/'Lost of times'/Lots of times/ ( I think 'A lot of the time' would be better though ) | 16:33 | |
16:34
tinyblak joined
|
|||
PerlJam | S32/Containers:217 | 16:35 | |
synbot6 | Link: design.perl6.org/S32/Containers.html#line_217 | ||
PerlJam | ShimmerFairy: that entry could use some language that talks about your updated grep | 16:36 | |
ShimmerFairy | PerlJam: is Matcher supposed to name some kind of type? | 16:37 | |
16:37
JimmyZ_ left
|
|||
PerlJam | I'm not sure. It seems to be used as a generic title right now rather than a type | 16:38 | |
masak | ShimmerFairy: yes. | ||
PerlJam | (i.e. Matcher is NYI) | ||
masak | ShimmerFairy: `multi foo()` is more specific than `multi foo($something?)`, so it makes sense for it to be narrower. | ||
ShimmerFairy: IIRC, `multi foo()` is already narrower than `multi foo(*@stuff)` | 16:39 | ||
ShimmerFairy | masak: and I think I'd agree with you :) (In fact, I was designing a toy language for fun a while back, and I think my own overload resolution rules would say foo() is narrower) | ||
RabidGravy | anyone got a clue how I can debug this "Cannot invoke this object (REPR: Null, cs = 0)" malrkey? | ||
it's beginning to annoy me | 16:40 | ||
jaffa4 | Can I make my own stream? | ||
PerlJam | weird ... this IRC window is the only connection outside my local network that is working now. | ||
ShimmerFairy | m: multi sub foo() { say "NO ARGS" }; multi sub foo(*@a) { say "MAYBE MANY ARGS" }; foo; | ||
camelia | rakudo-moar bc01ca: OUTPUT«NO ARGS» | ||
masak | jaffa4: "stream"? | ||
ShimmerFairy | masak: ^ you are correct | ||
jaffa4 | I would like to replace $*OUT | ||
flussence | PerlJam: something dropping new connections, or did older ones break too? | 16:41 | |
masak | ShimmerFairy: that one was argued for and implemented several years ago. maybe 2009 or 2010. | ||
jaffa4: oh yes, that's entirely possible. | |||
jaffa4: just put some other object in $*OUT | |||
jaffa4: and feel free to use `my` or `temp` as you see fit | |||
jaffa4 | what methods should have that object? | 16:42 | |
PerlJam | flussence: I guess it's just new connections. | ||
ugexe | jaffa4: see IO::Capture::Simple | ||
masak | jaffa4: it's two methods, but I forgot their name. trial and error will get you there. | 16:43 | |
ugexe | print and flush | ||
flussence | PerlJam: if I had to guess, it's probably a NAT router having a bad day then. | ||
masak | m: my $*OUT = role {}; say "OH HAI" | ||
camelia | rakudo-moar bc01ca: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in any at src/gen/m-Metamodel.nqp:1677 in block <unit> at /tmp/yY4bHCHiGu:1» | ||
16:43
][Sno][ joined
|
|||
masak | hurh. | 16:43 | |
PerlJam | flussence: luckily, it's close to lunch time for me, so it's a good excuse to leave :) | 16:44 | |
16:45
domidumont left,
abraxxa left
|
|||
avuserow | RabidGravy: I notice that you've been working on a bunch of audio related modules. Is there a particular goal you're building toward? I'm asking because I'm occasionally interested in music-related programming and wondering if we have similar interests here :) | 16:46 | |
16:47
telex left
16:48
telex joined
|
|||
[Coke] | d~. | 16:49 | |
dalek | rl6-roast-data: 52d52f1 | coke++ | / (9 files): today (automated commit) |
||
osystem: 290aac2 | jaffa4++ | META.list: Update META.list added log d |
16:50 | ||
RabidGravy | avuserow, about a year ago I started making a new radio station software in P5 and a few months ago I decided I would make it instead in P6 | ||
though I'm easily distracted | 16:51 | ||
avuserow | Several years ago, I wrote a network jukebox in P5, and have been wanting to write a version in P6 that can take advantage of things like nativecall and parallelism rather than only subprocesses | 16:52 | |
dalek | c: 7541576 | (Nick Logan)++ | lib/Type/Scheduler.pod: [typo] s/rew/rw/ |
16:53 | |
avuserow | so your shoutcast work may end up very useful for that :) | ||
16:53
dakkar left
|
|||
RabidGravy | yeah, it might ;-) though I may revert to using liquidsoap for some of this stuff | 16:55 | |
rangerprice | Omg i really love the LWP library ! *.* | ||
module* | |||
tadzik | speaking of coc: ┻━┻ ︵ヽ(`Д´)ノ︵ ┻━┻ | ||
huh, wrong paste | |||
not the worst mispaste though, though it shows me from a different angle :) | 16:56 | ||
anyway: todogroup.org/opencodeofconduct/ | |||
ShimmerFairy | tadzik: yeah, I think that was one of the starters of the discussion in fact :) . Haven't given it a close read, however. | 16:57 | |
16:57
Hor|zon joined
|
|||
jaffa4 | Is there multithreaded support now? | 16:58 | |
tadzik | oh :) | ||
ShimmerFairy | tadzik: at least, [Coke] sharing a link to github's blog post on it is when I first noticed the discussion :P | 16:59 | |
16:59
spider-mario joined
17:00
Hor|zon_ left
|
|||
ShimmerFairy | masak: wait, infix:<~~> is (supposed to be) chaining!? :) rt.perl.org/Ticket/Display.html?id=81336 | 17:00 | |
TimToady | it's at the chaining precedence level | 17:01 | |
yoleaux | 10:54Z <jnthn> TimToady: S09 seems rather silent on what happens if you .map a multi-dim array, or .values, or .pairs, or... :) Also what happens if you iterate (which in turn I guess answers what things like map/grep/unique/squish are doing) | ||
10:54Z <jnthn> TimToady: Well, .map *is* iterating, of course... :) I'm guessing the answers to all these are related, anyways. | |||
japhb | TimToady: Do you have any opinion on the nascent S27 work yet? | 17:02 | |
rangerprice | I love the community of Perl, i love Perl, i love every developers that work on, and i love everybody in this IRC. | 17:04 | |
TimToady | japhb: haven't looked yet | 17:05 | |
rangerprice: we can fix that :) | |||
RabidGravy | right now I hate perl and I hate all the developers that work on it | ||
TimToady | we're trying to fix that too :) | ||
ShimmerFairy | Where should tests for chained smartmatch go? I don't there are any atm. | 17:06 | |
japhb | tadzik: Yeah, I read the OCoC; this was my response: irclog.perlgeek.de/perl6/2015-07-21#i_10928476 | ||
(That's actually in the middle of the discussion yesterday. | |||
) | |||
TimToady | ShimmerFairy: an argument can be made for moving ~~ to Structural Infix | ||
ShimmerFairy | I think I can see that, so I won't be too eager to add chaining tests :) . | 17:07 | |
TimToady | (if we decide it doesn't really make sense for it to chain or associate) | ||
in fact, ~~ was first put into chaining way back when we viewed it as a symmetrical operator | 17:09 | ||
ShimmerFairy | I wonder if anyone out there is somehow depending on stuff like $a == $b ~~ $c meaning ($a == $b) ~~ $c ... | 17:10 | |
TimToady | I doubt it | ||
if so, we should break it sooner rather than later... | 17:11 | ||
ShimmerFairy | TimToady: considering this only came up when I was browsing through old bugs (and one that has no updates since the initial report), I'm guessing people don't expect it to be chaining already :) | ||
avuserow | RabidGravy: I'm not tied to shoutcast or anything, but I am interested in having portable audio streams so if I have multiple sets of speakers, then I can reroute audio without needing to restart things | ||
TimToady | lemme run a spectest with it at Structural Infix and see if anything breaks in the test suite | 17:12 | |
ShimmerFairy | TimToady: now that I think about it, it would make a lot more sense to group ~~ with the other non-Bool comparison ops, instead of the Bool ones :) | 17:13 | |
avuserow | RabidGravy: though right now I'm focusing on the metadata side of audio. let me know if you have any thoughts on that side of thing. I'm also looking into additional webservices that can be useful. MusicBrainz is higher on my list | ||
TimToady | ShimmerFairy: I'm intending to move it unless I see unexpected test fallout | 17:14 | |
RabidGravy | yeah that works | ||
jaffa4 | m: if (2!=$a!=4) { say "h"; } | ||
camelia | rakudo-moar bc01ca: OUTPUT«5===SORRY!5=== Error while compiling /tmp/T3EI3u9L1fVariable '$a' is not declaredat /tmp/T3EI3u9L1f:1------> 3if (2!=7⏏5$a!=4) { say "h"; }» | ||
jaffa4 | m: my $a = 2; if (2!=$a!=4) { say "h"; } | ||
camelia | rakudo-moar bc01ca: OUTPUT«Cannot modify an immutable Int in block <unit> at /tmp/JQNzPM44Rp:1» | ||
ShimmerFairy | TimToady: even then, I'd only prevent it on some more serious kinds of fallout fallout :) (for example not precedence-expecting things like $a == $b ~~ $c) | 17:15 | |
m: my $a = 2; if (2 != $a != 4) { say "h"; } | 17:16 | ||
camelia | ( no output ) | ||
TimToady | that would parse as $a == ($b ~~ $c) with this cahnge | ||
just as $a == ($b cmp $c) does now | |||
ShimmerFairy | Huh, I wonder what kind of assignment op rakudo hopes != is without the spaces there | ||
jaffa4 | m: my $a = 2; if (3 != $a != 4) { say "h"; } | ||
camelia | rakudo-moar bc01ca: OUTPUT«h» | ||
17:16
espadrine left
|
|||
ShimmerFairy | TimToady: yeah, so things like expecting $a == $b ~~ $c to mean ($a == $b) ~~ $c I wouldn't consider show-stoppers, esp. since I don't anticipate them to be common occurrences :) | 17:17 | |
RabidGravy | I really do need to get a handle on this "Cannot invoke this object (REPR: Null, cs = 0)" it's beginning to upset me - I haven't a clue where to even start to look | 17:18 | |
TimToady | it's probably parsing it like $obj.=method | ||
only private | |||
ShimmerFairy | m: my $a = 42; $a!=4; say $a | 17:19 | |
camelia | rakudo-moar bc01ca: OUTPUT«4» | ||
ShimmerFairy | welp | ||
TimToady | or maybe not | ||
m: my $a = 42; say $a!=4; | 17:20 | ||
camelia | rakudo-moar bc01ca: OUTPUT«False» | ||
TimToady | std: my $a = 42; say $a!=4; | ||
camelia | std 28329a7: OUTPUT«ok 00:00 138m» | ||
TimToady | hmm, I think assignments are supposed to be too fiddly to negate | ||
ShimmerFairy | m: my $a = 42; say $a!=0 | 17:21 | |
camelia | rakudo-moar bc01ca: OUTPUT«True» | ||
TimToady | in any case, it's an odd ambiguity | ||
std: my $a = 42; say $a!+=0; | |||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Cannot negate += because assignment operator operators are not iffy enough at /tmp/6JuFg1nzpK line 1:------> 3my $a = 42; say $a!+=7⏏050;Parse failedFAILED 00:00 138m» | ||
TimToady | std: my $a = 42; say $a!=>0; | 17:22 | |
camelia | std 28329a7: OUTPUT«5===SORRY!5===Cannot negate => because item assignment operators are not iffy enough at /tmp/l1RH5Dn4Cf line 1:------> 3my $a = 42; say $a!=>7⏏050;Parse failedFAILED 00:00 138m» | ||
17:22
domidumont joined
|
|||
TimToady | curiouser and curiouser | 17:22 | |
ShimmerFairy | There's a bug on this already, it seems: rt.perl.org/Ticket/Display.html?id=121108 | 17:23 | |
TimToady | std: my $a = 42; say $a!:=0; | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Cannot negate := because list assignment operators are too fiddly at /tmp/I6iA1kclsN line 1:------> 3my $a = 42; say $a!:=7⏏050;Cannot negate := because list assignment operators are not iffy enough at /tmp/I6iA1kclsN line 1:--…» | ||
jnthn back for a bit | |||
TimToady | jnthn: the historical intent was that .map produce another thing like the original, where the declared bounds of the array are the scope of the mapping | 17:24 | |
dalek | kudo/nom: 52b6f29 | lizmat++ | src/core/QuantHash.pm: Make Set/Bag/Mix more hash-like wrt to .grep |
||
TimToady | that's why [**] means that the official bounds of the array includes the leaves | ||
17:25
brrt joined
|
|||
brrt | ok, i've thought about it over dinner, and i can see why alester was upset by masak's comment | 17:25 | |
not that it matters now, of course | 17:26 | ||
TimToady | however, it's not clear whether the default .map should have those semantics or some other semantics that ignore the official shape of the array | ||
we need both sets of semantics available | |||
ShimmerFairy | m: my $a = 42; say $a!+=0; | 17:27 | |
camelia | rakudo-moar bc01ca: OUTPUT«False» | ||
TimToady | in the past I'd been thinking that .map was shallow, as apposed to .deepmap or .duckmap | ||
nwc10 | lizmat: what's OSCON like this year? From the schedule, it looks like it's pivoting away from "hardcore" programming. Does it feel different, on the ground? | ||
ShimmerFairy | rakudo is apparently more consistent with it, at least :P | ||
TimToady | but I think of "shallow" as being the declared shape | ||
brrt | long time ago | ||
TimToady | not the top dimension | 17:28 | |
lizmat | nwc10: basically no languages whatsoever... :-( | ||
nwc10 | seems, no databases either | ||
jnthn | TimToady: Yeah, question is even if .map isn't deep what it's getting :) | 17:29 | |
TimToady | lizmat: that's why I didn't go, though turns out to be a good thing cuz I've had some medical shenanigans | ||
jnthn | TimToady: And .unique and .pick are a whole interesting kettle of fish too; I guess they work on the leaves though... | ||
TimToady | but it's the whole what's-a-leaf question | 17:30 | |
ShimmerFairy | TimToady: at first I'd say .map simply applies the function on each set of values (as determined by number of args), but that kinda breaks down with trying, for example, [[1,2,3],[4,5,6]].map({$^a + $^b}) | ||
TimToady | and the official declared shape is often the desired leafiness | ||
jnthn | ShimmerFairy: That case is shapeless so it's clear enough you get [1,2,3] and [4,5,6] :) | 17:31 | |
17:31
Ven left
|
|||
jnthn | TimToady: Yes, "official declared shape" is what I was thinking of for leafiness too | 17:31 | |
TimToady | yes, the default shape is [*] or so :) | ||
jnthn | Yeah | ||
ShimmerFairy | jnhtn: sure, though I was using that as a shortcut for an example shaped array :P | ||
jnthn | TimToady: There's loads of little things we'll have to hash out the semantics of, anyways... | 17:32 | |
PerlJam | ShimmerFairy: now that I have reliable network again ... here's how I would have coded your patch to grep: gist.github.com/perlpilot/d1bda29d0928a4133a1e I dunno if that is helpful or not, but I thought I'd share anyway | ||
jnthn | PerlJam: That will be fantastically expensive. | ||
TimToady | jnthn: like whether my @a[2;2] actually implies a .= new | ||
or whether that can fall out of autoviv | 17:33 | ||
17:33
rindolf left
|
|||
PerlJam | jnthn: probably. I don't have a feel for "expensive" or not these days | 17:33 | |
TimToady | noting that @a[2;2] in a signature does not .= new, but is just a constraint | ||
jnthn | Yeah, we'll have to treat those rather differently in the signature | 17:34 | |
I was going to compile that into a where clause | |||
TimToady | on @array[].shape I note that zen slices return self, not a list | ||
jnthn | That'd make it an MMD tie-breaker. I think it's to data-y to work out as an official type. | ||
TimToady: That does @array{} return? :) | 17:35 | ||
PerlJam | ShimmerFairy: so ... perhaps my version is an example of what not to do :) | ||
ShimmerFairy | PerlJam: it's certainly the shinier example, and probably what you'd prefer if cost wasn't such a concern :) | ||
jnthn | TimToady: Uh, *What* :) | 17:36 | |
17:36
rindolf joined
|
|||
TimToady | I think the alternate indexing of arrays can fail for a zen slice | 17:37 | |
jnthn | *nod* | ||
I guess we pick a different method name for the hash-y shape... | 17:38 | ||
TimToady | AT-CUSTOM maybe | ||
jnthn | Oh, I didn't mean that, I meant to introspect it | 17:39 | |
TimToady | one thing to plan for is HoA and AoH though, with declarations like %hash{Int}[2;2] and @array[2;2]{Str()} | 17:40 | |
jnthn | I was going to just have arrays with custom indexing implement AT-KEY...is there any reason not to do it that way? | ||
huh...is that even valid syntax? :) | |||
TimToady | hup | ||
jnthn | std: my %hash{Int}[2;2] | ||
TimToady | yup | ||
camelia | std 28329a7: OUTPUT«ok 00:01 139m» | ||
jnthn | urgh | ||
That's a hash with Int keys where the values are shaped as [2;2], yes? | 17:41 | ||
TimToady | yes | 17:42 | |
jnthn | I guess that won't work out too bad. | ||
TimToady | AoH/HoA are rather common in Perl-land | ||
jnthn | @array[2;2]{Str()} looks weird though :) | ||
TimToady | {Str()} is the default hash | ||
jnthn | *nod* | ||
TimToady | we just don't do it with Str() yet | 17:43 | |
(that I know of) | |||
jnthn | No, the coercion types thing came quite late to the party :) | ||
TimToady | that probably wants to get unified at some point | ||
but if we don't get to it before 6.0, that's probably okay, as long as we don't corner ourselves into a paint | 17:45 | ||
jnthn | Indeed...need to be a little careful on that. | 17:46 | |
Hmmm | |||
17:46
Ven joined
|
|||
TimToady | iirc default hash keys are one of the reasons we realized we had a built-in that couldn't be expressed succinctly | 17:46 | |
(as p6) | |||
jnthn | The whole autovivifying whence thingy probably comes into this lot | 17:47 | |
TimToady | praps, including the desire to optimize it away where possible | 17:49 | |
jnthn | If we get that right we can | ||
my @a[2;2] | |||
Compile that to my @a := Array{ :shape(2;2) } | |||
I've kinda hesitated on that whole thing though | |||
TimToady | I can argue it both ways | 17:50 | |
jnthn | As it implies every method dispatch has to care about if it's being called on a whence-y thing | ||
PerlJam | Is my @array[-->Some-Object] still meant to be? (looking at S09 now) If so, how does that play with multi-dim? | ||
jnthn | I figure if we want to implement it at all then it means we just give type objects a storage slot | 17:51 | |
Or maybe an invokable closure | |||
But it's where to trap it | |||
Since the WHENCE'd type object is meant to have the exact same type as the type object. | 17:52 | ||
I can't see the "but WHENCE" desugar for it either really... | |||
It feels more primitive than "just a role" | 17:53 | ||
TimToady | another approach is to avoid whence by default for shaped arrays, and require special declaration for any shaped array that should autoviv | 17:54 | |
that would give a fast default of eager init | |||
we'd like native shaped arrays to be fast, anyway | 17:55 | ||
autoviv might be the wrong default for them | |||
17:56
Ven left
|
|||
jnthn | *nod* | 17:56 | |
Well, the way that | |||
my @a; | |||
Is that we make an instance at compile time, install it in the static lexpad, and flag it as needing to be cloned on first access | 17:57 | ||
But we can't do that for shaped arrays since the shape can be late-bound. | 17:58 | ||
None of this is going through any kind of official WHENCE mechanism like described in S12 though | |||
RabidGravy | gist.github.com/jonathanstowe/2d58...f100fca51d - a) what is AUTOGEN and b) why doesn't the signature match what it obviously matches the last one | 17:59 | |
jnthn | We simply don't have that. I guess there may be some trick involving STables and lies to get us a reasonably efficient failover-style implementation of what S12 wants. | ||
But I still don't see it working out for arrays at all | 18:00 | ||
As we don't store lexpad -> scalar -> array, just lexpad -> array | 18:01 | ||
masak | brrt: I remember even as that discussion with alester happened, that I thought it was a very small thing to get upset about. but I also decided not to bring that up at all -- simply because diminishing his hurt would have been a thing *I* would have regretted afterwards. | ||
brrt | right | 18:02 | |
masak | there are so many such discussions that go the other way, with the joker defending his joke. | ||
which is totally not the point of jokes | |||
jnthn | I could imagine us deciding that Foo{...} lives, but only is given attention in certain contexts (basically, auto-viv related ones) | 18:03 | |
But yeah, this stuff is...fiddly | 18:04 | ||
Guess this is why NSA was picked as one of the big 3 :P | |||
TimToady | ayup | ||
masak | jnthn: method calls, list assignment and commas are fiddly :P | 18:05 | |
oh, and ranges and conditionals, apparently | |||
18:05
yqt left
|
|||
brrt nod | 18:05 | ||
s | |||
it's easy to misunderstand one another on IRC | 18:06 | ||
masak | brrt: that's the most offensive thing I've ever heard! | ||
:P | |||
jnthn | masak: smartass :P | ||
brrt | :-P | ||
bbl | |||
18:06
brrt left
|
|||
masak | oh dear, I chased him away... D: | 18:07 | |
tadzik | oh, deer! I chased him away... | ||
18:08
Hor|zon left
|
|||
masak .oO( no ay ay, deer! ) | 18:09 | ||
RabidGravy | poor rudolf | ||
TimToady | ode ear, eye chaste him aweigh | ||
jnthn | D'oh! Oh deer! A fleeing dear... | ||
masak | RabidGravy: time to rein in the jokes :P | ||
18:09
domidumont left
|
|||
TimToady | ode ear, eye chaste hymn aweigh | 18:09 | |
RabidGravy | what noise do reindeer make anyway? | ||
TimToady | (I shoulda said) | ||
18:10
leaderprice joined
|
|||
TimToady | jingle, jingle | 18:10 | |
tony-o | they make sneering noises at rudolph | ||
RabidGravy | bstards | ||
jnthn | The postcircumfix candidate taking a LoL is a wonderful bit of work that sadly won't adapt easily at all to us having real multi-dim arrays... | ||
leaderprice | rangerprice: no one loves you | ||
masak | TimToady: I don't suppose "anguish languish" will be a new concept to you? :) | ||
tony-o | post santa they started jingling | ||
rangerprice | seriously | ||
ahahahahahaaa | 18:11 | ||
TimToady | jnthn: that's kinda why we had || special sugar for subscripts | ||
masak | rangerprice: oh, first time? wonderful. :) | ||
rangerprice: this happens regularly here... | |||
TimToady | isn't clear that LoL is the best way to handle that | ||
jnthn | TimToady: Well, it's more that it assumes you access one dimension at a time so leaves all the hard work to the one-dim-at-a-time candidates. | ||
masak | (the puns, I mean. not someone coming and saying "no one loves you", that's new...) | 18:12 | |
TimToady | jnthn: yes, we'd like to know more before dispatch time | ||
rangerprice | yes i understand masak | ||
TimToady | cause not all our optimizations want to be JIT | ||
RabidGravy | it has come to my attention that the: | ||
m: multi trait_mod:<is>(Routine $r, :$foo!) { $r does Foo; }; class Bar { method boom() is foo {}; }; | |||
camelia | rakudo-moar 52b6f2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/b12UAWJrQFCannot invoke this object (REPR: Null, cs = 0)at /tmp/b12UAWJrQF:1» | ||
leaderprice | So leaderprice is actually… an international enterprise ? Damn it. | 18:13 | |
18:13
zakharyas joined
|
|||
RabidGravy | still does that, | 18:13 | |
jnthn | RabidGravy: Is that one RT'd? | ||
masak | leaderprice: what brings you to #perl6, dear sir or madam? | ||
RabidGravy | I thought I did and I thought it was fixed, but I'll check and if not will add, else re-open | 18:14 | |
18:14
atroxaper joined
|
|||
jnthn | TimToady: Yeah. One option we have is trying to steal back postcircumfix:<[ ]>(@a, 1, 2, 3) to be what @a[1;2;3] compiles into | 18:14 | |
rangerprice | Rangerprice is better than Leaderprice | ||
masak | rangerprice: depends if you're in the market for a ranger or a leader :P | ||
leaderprice | masak: I want to ask rangerprice to stop trying to get people to come here and evangelize other people. He might not look like it but he's quite the fanatic outside of this place. | 18:15 | |
jnthn | TimToady: Trouble is, at some point I really wanted an efficient way to do assignment that shortcutted the whole auto-viv, introduced ASSIGN-POS, and then needed a cheap way to dispatch to it and figured "ah, 3-arg postcircumfix:<[ ]> multi candidate is just the ticket!" | ||
masak | leaderprice: it's too late. we've already made rangerprice one of us. | ||
18:15
skarn joined
|
|||
masak | leaderprice: one of us! one of us! one of us! | 18:15 | |
18:16
tinyblak left
|
|||
rangerprice | masak: yeah !!!! | 18:16 | |
masak gets something wild in his look | |||
jnthn | TimToady: I'm not sure if that's why we ended up with the LoL there today. I agree it's costly to construct them... | ||
leaderprice | Well I guess "we" will have to make him… not of one us. It was fun having him shitpost on other forums at 4am about Perl, though. | ||
jnthn | TimToady: But I don't want to lose the assignment opt either :) | ||
masak | leaderprice: this is not something I have knowledge of, sorry. | 18:17 | |
rangerprice | Who you are leaderprice ? :hap: | ||
leaderprice | masak: basically this sournoishack.com/uploads/1036112996...42x104.png on some French forum. _Very_ often. | 18:18 | |
rangerprice: I am your shadow for you're not freed of your sins. | |||
PerlJam | that doesn't sound like evangelization to me. | ||
rangerprice | Do you are on the forum leaderprice ? | ||
masak suspects that leaderprice indeed does are on the forum | 18:19 | ||
18:19
amurf joined
|
|||
leaderprice | Well, I could have screenshot his trials at getting people to come here, and his praises of Perl. | 18:19 | |
I do are on the forum. | |||
Now if you excuse me, I'll have to leave. | |||
18:19
atroxaper left
|
|||
rangerprice | okay | 18:19 | |
leaderprice | It was fun do areing with you. | ||
rangerprice | good bye | ||
my friend | |||
PerlJam | rangerprice: Are you an over-zealous evangelist? | 18:20 | |
masak | leaderprice: sorry about your forum suffering. | ||
18:20
leaderprice left
|
|||
rangerprice | hum | 18:21 | |
masak | rangerprice: you're not inconveniencing those poor forum users, are you? | ||
rangerprice | No i'm just a fanatic of Perl | 18:22 | |
18:23
amurf left
|
|||
rangerprice | PerlJam: Yes i am an over-zealous of Perl 6 | 18:23 | |
18:24
xinming joined
|
|||
masak | rangerprice: leaderprice made it seem like you were fanatic in a way that could be perceived as bothersome to the other forum users. | 18:25 | |
raiph | m: Proxy.new | 18:26 | |
camelia | rakudo-moar 52b6f2: OUTPUT«Unhandled exception: Cannot invoke this object (REPR: P6opaque, cs = 0) at src/gen/m-BOOTSTRAP.nqp:1288 (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::10) from src/gen/m-main.nqp:40 (/home/camelia/rakudo-inst-1/share/perl6/run…» | ||
rangerprice | masak: Oh no, i talk about Perl and this IRC only on a forum dedicated to general discussing | ||
jnthn | raiph: Needs a FETCH/STORE providing; seems we want better error checking for that. | 18:27 | |
RabidGravy | oh deary, deary me | ||
getting "Frame has no lexical with name '$?PACKAGE'" if I look at this problem in a different way | 18:28 | ||
PerlJam | rangerprice: as long as you're doing unto others as you would have them do unto you (or us!) .... :) | ||
masak | rangerprice: I don't want to have to explain your behavior to leaderprice again, ok? :) | 18:29 | |
rangerprice: you're a grown lambdacamel, you should be able to make grown-up judgement calls... | |||
RabidGravy | who knows these days | 18:30 | |
masak | rangerprice: something tells me that you can rise above the level of "shitposts at 4am"... | ||
18:30
andreoss left
|
|||
PerlJam | masak: also keep in mind that one data point does not a trend make :) | 18:30 | |
18:30
[TuxCM] joined
|
|||
masak | oh, absolutely. | 18:31 | |
rangerprice | masak: yes i understand, and i very sorry for the convenience. The modo of the forum hate me apparently | 18:33 | |
masak | that's one interpretation of it. | ||
rangerprice: you have a good heart. and I can tell that your zealotry is true. I guess it's up to you to ponder leaderprice's words. | |||
rangerprice: even if you think he's wrong, he *is* the modo. consider that well. :) | 18:34 | ||
masak .oO( even a ranger must listen to his leader sometimes ) | |||
TimToady | well, we're all on the learning curve of understanding when our words will have the intended effect, and how to avoid our words having unintended effects | 18:35 | |
masak | touché :) | 18:36 | |
er, I mean, how dare you! | |||
rangerprice | ahahahaha | ||
masak | whoever you are | ||
TimToady | those of us on the autistic spectrum are often surprised when our words don't do what they were supposed to :) | ||
masak | "when I use a word, it means exactly what I choose it to mean -- no more, no less" | ||
TimToady | the question is, who's to be master, that's all... | 18:37 | |
moritz | TimToady: when our words dont do what they were supposed to, that's when you uncovered a copmiler error, right? :-) | ||
RabidGravy | but in better news it does actually appear that Audio::Encode::LameMP3 is actually quick enough to encode 512 frames of PCM in less than the time it takes to stream it :) | ||
just not when it's compiled | |||
PerlJam | TimToady: I thought who was to be the doctor | 18:38 | |
RabidGravy | I take back what I said earlier I only hate perl a little bit | ||
TimToady | I believe Humpty Dumpty was on first. | ||
RabidGravy | who's on first | ||
TimToady | HD was on first, but then he was off. | 18:39 | |
PerlJam | puns and free-association ... it's what #perl6 is all about | ||
masak | it only looks like free-association to the untrained eye. #perl6 is really a substrate for quantum computations. | 18:40 | |
a bad pun can mean a whole week's results are destroyed | 18:41 | ||
RabidGravy | geez, I can't believe I made this set I'm streaming two years ago | ||
18:41
rindolf left
|
|||
PerlJam | RabidGravy: I sometimes boggle that Jimi Hendrix died 45 years ago ;) | 18:43 | |
RabidGravy | it wasn't me - I was only seven! | ||
TimToady | This is how you are to make it: the length of the ark three hundred qubits, its breadth fifty qubits, and its height thirty qubits. Genesis 8:15 | ||
er, 6:15 | 18:44 | ||
RabidGravy | so you can only measure one dimension at any given time? | ||
TimToady | it's a 3-D quantum computer | ||
masak | :P | ||
imagine an entanglement cluster of those! | 18:45 | ||
ShimmerFairy | @ark[300;50;30] | ||
TimToady | and people wonder how they could get all those animals on board... | ||
RabidGravy | Galifreans involved | ||
ShimmerFairy | .oO(Clearly the ark was actually a Klein bottle!) |
18:46 | |
18:46
inokenty1 left
|
|||
TimToady | you have inside knowledge of that, eh? | 18:46 | |
RabidGravy | o/ bottle of klein, fruit of the vine .. o/ | 18:47 | |
ShimmerFairy | If I do, then technically everyone does. | ||
TimToady | well, it's lunchtime, catch you on the flip-side of the Möbius strip | 18:48 | |
masak suddenly feels the onset of nonorientability | |||
jnthn | ooh, yeah, food | ||
jnthn stops hacking up slicing and goes to cook | 18:49 | ||
18:49
rindolf joined
|
|||
raiph | jnthn: I can file a bug for that (Proxy.new). (Please confirm that would be helpful.) | 18:49 | |
jnthn | raiph: Please do, it's a crappy failure mode | ||
raiph | jnthn: will do, enjoy nom | ||
jnthn | Well, gotta cook it first :) | 18:55 | |
l'oil is heating :) | |||
RabidGravy | jnthn stuck that one in as rt.perl.org/Ticket/Display.html?id=125662 | 18:56 | |
18:56
zakharyas left
19:00
domidumont joined,
domidumont left
|
|||
raiph | .ask jnthn the Proxy.new was an exemplar of getting "Cannot invoke this object". And your response illustrates the quick approach to debugging, namely getting your attention. ;) But do you have generic advice for how to debug things for oneself if one gets that message? (eg cf 125662 or Proxy.new or RabidGravy++'s "Cannot invoke this object" from e | 19:01 | |
yoleaux | raiph: I'll pass your message to jnthn. | ||
raiph | arlier today) | ||
19:01
domidumont joined
|
|||
FROGGS | raiph: if you don't get a line number, you usually pass --ll-exception to your perl6 invocation | 19:04 | |
19:05
Hor|zon joined
|
|||
RabidGravy | FROGGS, with those surprising "Cannot invoke ..." it almost always points into the core | 19:06 | |
lucasb | m: int.() | ||
camelia | rakudo-moar 52b6f2: OUTPUT«Cannot invoke this object (REPR: P6int, cs = 0) in block <unit> at /tmp/RX4PeuVfmY:1» | ||
raiph | m: multi trait_mod:<is>(Routine $r, :$foo!) { Bar }; sub boom is foo {} # FROGGS, I mean when this sort of thing happens | 19:07 | |
camelia | rakudo-moar 52b6f2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/CVpfvvBblYCannot invoke this object (REPR: Null, cs = 0)at /tmp/CVpfvvBblY:1» | ||
RabidGravy | yeah the REPR: Null - always in the cire | ||
lucasb | --ll-exception shows those <unit>, <unit-outer> things, so I wouldn't know where to look at those. I guess I can't | ||
dalek | kudo/nom: dac0167 | PerlJam++ | src/core/Temporal.pm: Add comparison ops for DateTime (RT#125555) |
19:08 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125555 | ||
dalek | ast: 29f336c | PerlJam++ | S32-temporal/DateTime.t: Test DateTime comparison ops (RT#125555) |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125555 | ||
raiph | (RabidGravy: REPR: anything) | 19:09 | |
19:09
jaffa4 left,
Hor|zon left
|
|||
FROGGS | RabidGravy: yes, and when it points to the core you know where to start hunting down that bug | 19:09 | |
raiph: well, this example is kinda understandable me thinks | 19:10 | ||
masak | PerlJam++ # DateTime comparison ops | 19:14 | |
PerlJam: is != missing from that list...? | 19:15 | ||
[Coke] shares some pain: <cfset currentDate = DateAdd("d", 1, currentDate)> | |||
FROGGS | [Coke]: that still better than <cfset currentDate = DateAdd("h", 24, currentDate)> :o) | 19:17 | |
that's* | |||
... or adding 86400 seconds | |||
FROGGS feels sorry about doing that when he was stupidier | 19:18 | ||
ShimmerFairy | masak: that reminds me, in case you missed it earlier, here's a mean bug/trick :P : | ||
m: my $a = 1; say $a!=0; say $a; | |||
camelia | rakudo-moar 52b6f2: OUTPUT«True0» | ||
19:19
zmikund joined
|
|||
FROGGS | - QAST::Op(call &METAOP_NEGATE) | 19:19 | |
- QAST::Var(lexical &infix:<=> :decl()) | |||
:o) | |||
19:20
meisl joined
|
|||
masak | ShimmerFairy: yeah, I saw it flash by earlier. | 19:21 | |
ShimmerFairy: something weird with parsing, I bet. | |||
ShimmerFairy | I'd love to know what you could use negated assignment for, before it gets fixed :P | ||
flussence | quantum physics? | 19:22 | |
PerlJam | masak: oops, != is missing. | ||
masak | PerlJam++ # got all the others :) | ||
ShimmerFairy imagines a weird interpretation where $a!=1 is the same as $a=none(1) :P | 19:23 | ||
PerlJam | ShimmerFairy: careful saying "weird interpretation" ... next thing you know, it'll be canon ;) | 19:24 | |
dalek | kudo/nom: e41624e | PerlJam++ | src/core/Temporal.pm: Add missing != DateTime comparison op |
||
ast: 7eabf40 | PerlJam++ | S32-temporal/DateTime.t: Add test for DateTime != |
|||
19:25
rindolf left
|
|||
ShimmerFairy | I wonder if there's ever been a debate about an infix operator for making none() junctions. | 19:26 | |
masak | m: say 1 ^ 2 ^ 3 | 19:27 | |
camelia | rakudo-moar 52b6f2: OUTPUT«one(1, 2, 3)» | ||
dalek | ast: a673b4f | PerlJam++ | S32-temporal/DateTime.t: update plan |
||
PerlJam | masak: he didn't ask if it existed, just if there was a debate about it :) | 19:28 | |
nwc10 | java-- # SIGSEGV (0xb) at pc=0x00007f13d6165961, pid=2888, tid=139722564007680 | 19:29 | |
ShimmerFairy tried implementing her own infix<!> for it a short while back, but it for some reason wouldn't work like the other junction ops | |||
masak | PerlJam: right. :) I just forgot what it was infix:<^> did ;) | ||
ShimmerFairy: oh, I guess infix:<!> would be the name of that op :) | 19:30 | ||
19:30
yqt joined
|
|||
ShimmerFairy | masak: that's what I would assume too, but I imagine there has to be some sort of parsing related reason for why we don't have it. | 19:30 | |
nwc10 | (too many TEST_JOBS and it goes kaboomy) | ||
masak | ShimmerFairy: and it's not really a collision with the infix-prefix ! metaop, since nothing comes after it... | ||
ShimmerFairy: to be honest, I never even use infix:<^> | 19:31 | ||
ShimmerFairy: I do use infix:<&> and infix:<|> occasionally | |||
ShimmerFairy: I guess the demand for infix:<!> is low because, if you read things in one pass as a human, getting to the `!` makes you feel tricked because you have to mentally negate the lhs. | 19:32 | ||
ShimmerFairy | m: sub infix:<!>(**@values) { Junction.new(@values, :type<none>); }; say 1 ! 2 ! 3 # boo :< | 19:33 | |
camelia | rakudo-moar 52b6f2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qSFuZujLTSNegation metaoperator not followed by valid infixat /tmp/qSFuZujLTS:1------> 3on.new(@values, :type<none>); }; say 1 !7⏏5 2 ! 3 # boo :< expecting any of: infix …» | ||
masak | heh, yeah. you're getting shadowed. | ||
PerlJam | or perhaps it's something like "none of this, and none of this, and none of this, and none of this ..." becomes mentally taxing | ||
ShimmerFairy | m: sub infix:<‽>(**@values) { Junction.new(@values, :type<none>); }; say 1 ‽ 2 ‽ 3 | 19:34 | |
camelia | rakudo-moar 52b6f2: OUTPUT«none(none(1, 2), 3)» | ||
masak | PerlJam: for some reason, that sounds like the mumblings of a raving character in an animated cartoon. | ||
19:34
rindolf joined
|
|||
ShimmerFairy | masak: but then choosing a non-clashing symbol produces something not quite right. | 19:34 | |
(which is the second issue) | |||
raiph | FROGGS: Troo. But... is there a debugging doc, and if not, would it be helpful if I/someone started one, perhaps as a new design.perl6.org synopsis? | 19:35 | |
PerlJam | masak: makes me think of Pinky and the Brain a little bit myself :) | 19:36 | |
19:37
espadrine joined
|
|||
PerlJam | ShimmerFairy: the real reason we don't have the infix none is that there are too many problems to solve and no one cares enough to solve them :) | 19:37 | |
raiph | m: Proxy.new # filed as RT#125663 | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125663 | ||
camelia | rakudo-moar 52b6f2: OUTPUT«Unhandled exception: Cannot invoke this object (REPR: P6opaque, cs = 0) at src/gen/m-BOOTSTRAP.nqp:1288 (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::10) from src/gen/m-main.nqp:40 (/home/camelia/rakudo-inst-1/share/perl6/run…» | ||
ShimmerFairy | PerlJam: just seems weird to have left out none() from the infix party, is all :) | ||
19:39
silug_ joined
|
|||
FROGGS | raiph: I'm not sure if a debugging guide should live in the synopses | 19:39 | |
raiph | FROGGS: OK, but does such a guide exist? | ||
FROGGS | I dont think so | ||
lucasb | The real reason problems don't get solved is because of lack of punctuation marks in ASCII :) | 19:40 | |
FROGGS | :P | ||
masak | ShimmerFairy: for all I care, we could leave out one() from the infix party too ;) | 19:41 | |
nwc10 | sadly Rakudo (currently) is nowhere near the performance of Perlito for this benchmar: blogs.perl.org/users/flavio_s_glock...hmark.html | ||
curiously, MoarVM seems to be a factor of 2.77 faster than JVM | |||
but MoarVM is a factor of 7.4 *slower* than Perl 5 | |||
ShimmerFairy | masak: we should leave out either one or none. Two is just too much :P | ||
19:41
lizmat left
|
|||
PerlJam | ShimmerFairy: leaving out both one and none is balance! Two in (any, all), and two out (one, none) | 19:42 | |
ShimmerFairy | It's an all or none choice as far as I'm concerned :P | 19:43 | |
19:46
espadrine_ joined,
espadrine left
|
|||
masak | I see what you did there | 19:48 | |
19:48
TEttinger joined
19:51
bin_005 joined
|
|||
meisl | PerlJam: sorry for horning in, but can't you express any of (any, all, none) in terms of any other from there + "not" - whereas you cannot do so for "one"? | 19:52 | |
hoelzro | a/win1 | 19:53 | |
oops | |||
masak | meisl: that's a good point. | ||
ShimmerFairy | masak: It's not like my code is littered with none()s all over the place and if only I had an infix op, it's simply an annoying lack of symmetry or whatever that none() is the only one without an infix equivalent. | 19:54 | |
hoelzro needs to script irssi to check for and warn about messages that have "/win" in them | |||
19:55
rangerprice left
|
|||
lucasb | I remember I once suggested the 'many' junction with the meaning of "exists, and it's not only one" | 19:55 | |
meisl | just thinking, not opting (yet) for any choice re which infix opts to offer or not | ||
...but as far as gut feeling for "symmetry", or better "what to expect" goes - I'm kinda with ShimmerFairy ...I think | 19:59 | ||
20:02
zakharyas joined
20:03
lizmat joined
20:05
pullphinger left
|
|||
meisl | lucasb: 'many' would be 'at-least-two'? | 20:06 | |
20:06
brrt joined,
Hor|zon joined
|
|||
lucasb | meisl: yes, but I was half joking :) I guess many can be expressed as any() + not one() | 20:07 | |
but then I guess someone suggested that the value could be changed, some like "at least" and "at most" | 20:08 | ||
brrt | that might better be called 'some()' maybe | ||
meisl | lucasb: was about saying this :) | ||
brrt | a-few() | ||
lucasb | yeah, some() is a good name too :) | ||
meisl | gimme-some-fair-amount-but-not-too-few | 20:09 | |
PerlJam feels like taking an afternoon nap today | |||
moritz throws in the scottish "wee" | |||
20:10
vendethiel joined
|
|||
meisl | ...aka DWIM | 20:10 | |
20:10
darutoko- left,
Hor|zon left
|
|||
brrt | masak: was walking :-) | 20:13 | |
20:14
lizmat left
|
|||
meisl | lucasb: (seriously now) let's push that a bit further - can we likewise derive an imaged "exactly-two"? (really, not joking) | 20:15 | |
masak | brrt: you're back! :D | 20:16 | |
brrt | of course :-) | ||
hmm, i have a question for you to ponder | |||
lucasb | meisl: I don't have the skills for it, but maybe taking a look at Junction.pm and trying to implement it as a module wouldn't be that hard | 20:17 | |
brrt | regarding communities | 20:18 | |
meisl | lucasb: I'm pretty sure we cannot (derive "exactly-two") | ||
20:18
TEttinger left
|
|||
brrt | some time ago, there was a ruffle about a particlar project developer who was being an asshole on twitter against some socially-not-completely-accepted minority groups | 20:19 | |
developers belonging to said minority group found out and requested the developer be removed from the project | |||
lucasb | brrt: is that the opal project, isn't it? that github issue as long | 20:20 | |
brrt | now, i don't think that was a reasonable request, but the community responded with a very insensitive (and naive, imho) 'software is just technical' | ||
right | |||
meisl | lucasb: actually I was trying to hint at that -given a specialized "exactly-n" ("exactly-one" here) we get "at-least-(n+1)" automatically | ||
lucasb | *was | ||
brrt | (so i guess comments about ruby community misogyny are not entirely misplaced :-(..) | 20:21 | |
anyway... how should a decent community solve such a thing? | |||
20:21
lizmat joined
|
|||
brrt | \o lizmat | 20:22 | |
meisl | lucasb: just put in 0 for n - what does that give you? | 20:23 | |
lucasb | meisl: idk if I understand you, but yes, I think exactly-N is a generalized case of exactly-1 | ||
meisl | lucasb: idk? | 20:24 | |
lucasb | idk = i don't know | ||
meisl | oh... "exactly-0" = "none" = "all(not ...)" | 20:25 | |
..."not (all (not...))" = "exists" | 20:26 | ||
(= "at-least-one") - see? | 20:27 | ||
20:27
kaare_ left,
mohij_mobile joined
|
|||
brrt | not all not is any | 20:32 | |
yay, another use for syllogisms | |||
meisl | brrt: sorry, said "exists" but meant "any" | 20:33 | |
brrt | :-) | ||
mohij_mobile | @brrt: I suspect the deeper question is where the borders of a community are. And respectively for which parts of the life of an individual the community takes responsibility. | ||
brrt | hmmm | ||
meisl | some are even used to say "some" for "any" or "exists", you know | ||
[Coke] | in an ideal world, you'd get the developer to apologize, the community would note that their behavior was unacceptable, and everyone would move on. | 20:34 | |
vendethiel | brrt: I think rust's community has been going to a good place | ||
brrt | my feeling is that not being an asshole in public in a relatable way to your project would be a decent thing to ask | ||
vendethiel | (github's new "code of conduct" seems a bit... "naive" and has been... criticized by some people already) | ||
[Coke] | if the dev stuck by what they said, I'd expect this community to err on the side of removing their privs. | 20:35 | |
brrt | that's not what the opal community did, though | 20:36 | |
[Coke] | we ain't them. | ||
brrt | no :-) | 20:37 | |
meisl | lucasb: are you still with me? coz in way yes, "exactly-N" is a an abstraction of "exactly-1" BUT this abstraction is "different in kind", like "orthogonal" to what (I think) you'd expect | ||
20:37
rindolf left
|
|||
meisl | (I think :) | 20:37 | |
[Coke] | are we talking about exactly-N in terms of junctins? | ||
meisl | yes | ||
20:37
][Sno][ left
|
|||
[Coke] | that seems more like a set or bag question. | 20:38 | |
lucasb | meisl: sorry, I was trying to hunt down on the internet that existential quantifier with a bar on the right | ||
ShimmerFairy | [Coke]: if you didn't catch it, there's an S27 draft in the specs repo now, based on japhb and mine's work earlier. | ||
meisl | ShimmerFairy: do you have a link at hand, for the lazy plz? | 20:39 | |
lucasb | I remember learning that existential quantifier in discrete mathematics class, and it means "exists, and *only* one" | ||
ShimmerFairy | meisl: here it is :) github.com/perl6/specs/blob/master...draft.pod6 | 20:41 | |
meisl | lucasb: nono, the classical bare "reversed E" just means "at-least-one" and is dual to the upside-down A, ie: Ex.p(x) <=> not (Ax.not(p(x))) | 20:42 | |
20:42
domidumont left
|
|||
brrt | oh, yes, i'm going to be incredibly pedantic about that document, which i support, by the way | 20:42 | |
the second item in the top list 'we don't discriminate ... kind and positive member of our community' | 20:43 | ||
20:43
FROGGS left
|
|||
masak | meisl: "exists exactly one" is written `∃!` or something | 20:43 | |
meisl | ShimmerFairy: thx (I thought it was about the junctions discussion - but still thx) | ||
brrt | we may assume that anyone can be a kind and positive member, but for some people this is virtually impossible | 20:44 | |
that is sad, i think | |||
20:44
muraiki_ left
|
|||
masak | brrt: I first read that as "a kind and positive number", and was about to look up what "kind numbers" are again... :P | 20:44 | |
brrt | lol | ||
kind number are those with sufficient friends and social skills | 20:45 | ||
meisl | masak: yes thx, I am not good at putting non-ASCII stuff here. My point was that `∃` is kinda basic and different from `∃!` - *quite* different | ||
brrt | anyway, i'm afk for now | ||
see you :-) | 20:46 | ||
20:46
brrt left
|
|||
masak | meisl: you're right; they're quite different. | 20:46 | |
oh no, I scared brrt away! D: | |||
meisl | masak: hey, I was planning to bother him as well... | ||
20:47
lizmat left
|
|||
masak | meisl: he can take ∃! botherer... | 20:47 | |
20:47
pmurias joined
|
|||
masak | pmurias! \o/ | 20:47 | |
pmurias | hi | 20:48 | |
vendethiel | o/ | ||
timotimo | o/ | ||
20:50
zakharyas left
|
|||
pmurias | any hackathons planned around YAPC::EU? | 20:50 | |
meisl | masak: ic. how would you write "at-least-two" - and then how to implement that wrt brrt and the botherers? | ||
RabidGravy | There's definitely a pre-compilation problem with one or both of Audio::Libshout and Aidio::Encode::LameMP3 - code that consumes both will crap out with the aforementioned "Can't invoke ...." when loading pre-compiled versions | 20:51 | |
masak | meisl: if perf wasn't an issue, I would grep and then test for 2 elements | ||
meisl: if perf was an issue, I would loop while keeping a variable, and break as soon as it > 2 | 20:52 | ||
pmurias: that's a really good question. | |||
I second pmurias++' question. :) | 20:53 | ||
RabidGravy | I'm sre I've done an "any(...) && (something else)" to get a certain number | ||
meisl | masak: I don't know how to "grep brrt" for botherer-cability, so I keep trying your 2nd approach :) | ||
20:53
lizmat joined
|
|||
jnthn | I thought hackathoning was a SPW thing more than a YAPC::EU one this year :) | 20:54 | |
yoleaux | 19:01Z <raiph> jnthn: the Proxy.new was an exemplar of getting "Cannot invoke this object". And your response illustrates the quick approach to debugging, namely getting your attention. ;) But do you have generic advice for how to debug things for oneself if one gets that message? (eg cf 125662 or Proxy.new or RabidGravy++'s "Cannot invoke this object" from e | ||
RabidGravy | every day's a hackathon | 20:55 | |
jnthn | .tell raiph generally one of --ll-exception or set a breakpoint in Moar where it throws that if you need to dig deeper; trouble is that error is pretty much always telling you that some *other* thing is wrong | ||
yoleaux | jnthn: I'll pass your message to raiph. | ||
masak | jnthn: any hackathons planned around SPW? :P | 20:58 | |
meisl | lucasb: maybe I misread what you said; guess by "that existential quantifier" you were stressing "that", ie you were referring to `∃!` as opposed to `∃`? | ||
lucasb: if so, sorry for my saying "nono, ..." | 20:59 | ||
21:00
lizmat left
|
|||
jnthn | masak: There's a hackathon *scheduled* *at* SPW :P | 21:00 | |
masak: Aren't you coming? :P | |||
masak | I... guess I am... :) | 21:01 | |
masak should pay more attention to schedules. | |||
lucasb | meisl: yeah, as I understand there is 2 existential quantifiers, with and without the "pipe" at the right; unfortunately unicode only has a character for one. (In P6, their meanings are any() and one()) | ||
meisl | lucasb: as for P6 - yes. in general - no, not two but *infinitely* many (that's where I'm trying to get to) | 21:02 | |
lucasb | meisl: yes, I understand what you're saying :) | 21:04 | |
21:05
inokenty joined
|
|||
meisl | lucasb: cool :) let's say `∃!` is just shorthand for `∃!1`, so `∃!2` means "exactly-two" and so on | 21:05 | |
lucasb: now obviously `∃!0` is NOT the same as `∃` but rather "exactly-zero" aka "none", as above | 21:07 | ||
lucasb: now let me ask: "but isnt't `∃` a 'special-cased-shorthand' just like `∃!` was?" | 21:10 | ||
masak | 'night, #perl6 | 21:12 | |
meisl | g'nite, masak | ||
jnthn | 'night, masak | 21:13 | |
21:14
pmurias left
|
|||
lucasb | meisl: ok, I can see that as special case for some imaginary exists() thing, if that's what you are saying | 21:14 | |
21:15
skids left
|
|||
meisl | lucasb: how about taking `∃` as short for (the imagined syntax) `∃1`, meaning "at-least-one"? | 21:16 | |
lucasb: (you'll tell me if my style of asking "stupid questions" is annoying you, aren't you?) | 21:18 | ||
21:19
Begi joined
|
|||
lucasb | meisl: It's ok. :) I just don't know where you are trying to get at | 21:19 | |
meisl | lucasb: thx :) so: what'd `∃0` mean? | 21:20 | |
Begi | Hey ! What's the easiest way to get data from a JSON file ? | ||
yoleaux | 10 Jul 2015 18:45Z <b2gills> Begi: This is how I might have started: `loop {prompt('> ') ~~ /^ \h* $<d> = ['-'?\d+] \h* $<s> = <[CF]> \h* $/;given $<s> {when 'C' { say "$<d> °C = { $<d> * (9/5) + 32 } °F" }when 'F' { say "$<d> °F = { ($<d> - 32) * (5/9) } °C" }default { last }}}` ( What you have is perfectly fine as well ) | ||
lucasb | meisl: it means none() to me | ||
meisl | lucasb: but wasn't that `∃!0` (*with* a bang) already? | 21:21 | |
jnthn | Begi: The JSON::Tiny module is a popular choice for that | 21:22 | |
lucasb | meisl: yeah; I made a mistake; it doesn't mean none(); it means tautology, always true; do you agree? | ||
Begi | jnthn yeah. I'm watching your slides 'Exploring Perl 6 Through Its Modules'. So, should I create my own grammar ? | 21:24 | |
meisl | lucasb: no. counter-example: `∃0x.p(x)` - this is not a tautology, provided that p(x) is ...? | 21:25 | |
jnthn | Begi: No, just install/use the existing module | ||
Begi: You can find it (and loads of other modules) at modules.perl6.org/ | 21:26 | ||
meisl | lucasb: (put in 1 for the 0, yielding `∃x.p(x)`, then try to transfer back to the 1-case) | 21:27 | |
lucasb: ("transfer back to the *0*-case", sorry) | 21:29 | ||
lucasb | meisl: sorry, this is getting too abstract for me :) I was just suggesting random ideas when I said about junctions. If you want to take a look at the code I would suggest you to see the implementation of Junction.Bool in the core. | ||
Begi | jnthn : Ok thanks. I think it will works now :) | 21:30 | |
meisl | lucasb: sorry, too. I'm not after implementations (yet). But I think we | 21:31 | |
Begi | I've got an another unnecessary question : when I use for exemple say from-json('{ "a": 42 }').perl, what's the utility of the .perl ? | ||
21:31
][Sno][ joined
|
|||
meisl | lucasb: sorry, too. I'm not after implementations (yet). But I do think you've hit an interesting question/void maybe in P6 design space. | 21:32 | |
lucasb: I do concede that the discussion I'm after is on a rather abstract level, and am trying to establish it with you :) | 21:34 | ||
21:35
Begi left
|
|||
meisl | lucasb: so let me just say it: `∃0` is - nothing but "all(not ...)". Read it as "at-least-zero such that not ..." | 21:35 | |
21:38
raiph left
21:41
raiph joined
21:49
atroxaper joined
|
|||
RabidGravy | so does anyone have a handle on the other modules that are experiencing pre-compilation problems? I'd like to check them out to see if there are common patterns | 21:50 | |
meisl | lucasb: hmm, hmm. not so sure myself now... sorry. let's have a break and think it over :) | 21:51 | |
21:52
TEttinger joined
21:54
atroxaper left
21:55
Hor|zon joined
21:57
amurf joined
|
|||
meisl | lucasb: I really have to apologize - `∃0` must be interpreted as "at-least-zero" which is indeed a tautology. Sorry for having confused you with my flawed attempt at "syntax-directed" insight-gaining. | 21:59 | |
22:00
Hor|zon left
|
|||
jnthn | RabidGravy: There's some in RT; I started digging into one of them last night... | 22:00 | |
(And fixed another nasty one a week or two back...) | 22:01 | ||
Time for some rest & | |||
RabidGravy | cool | ||
meisl | lucasb: but still, I feel there's something interesting wrt to "which is the right way to abstract" here. Would love to get back to it later :) | ||
22:01
amurf left
22:02
mohij_mobile left
|
|||
lucasb | meisl: ok. It was interesting, meisl++. Thanks for the talk; I'll be away now | 22:03 | |
meisl | lucasb: thx for standing me, cu :) | ||
22:05
lucasb left,
xinming_ joined
22:08
xinming left
22:09
dha joined,
felher left,
bartolin left
22:10
bartolin joined
|
|||
japhb | .ask brrt I don't understand -- were you saying you liked the wording of S27 SYNOPSIS item 2 ("kind, positive member of our community") or did *not* like it? And if the latter, what would you prefer? | 22:11 | |
yoleaux | japhb: I'll pass your message to brrt. | ||
22:14
zacts joined
|
|||
japhb giggles at a proposed wording for #3: 'Our standard of behavior is "awesome". If your behavior is LTA (Less Than Awesome), we will offer you a patch for your behavior module.' | 22:15 | ||
dha | So, one of my next p5->p6 docs is going to be a list of the essentials... the changes from p5 to p6 that will be most likely to be useful. I.e. You really need to know that method calls are made with C<.> rather than C<< -> >>, but chances are, most people don't need go know right off the bat that the bit shift operators have changed. | 22:18 | |
22:18
xnrand joined
|
|||
dha | I'm currently making a list of possibilities for this document, so I can figure out how best to structure it. | 22:18 | |
22:19
pRiVi joined
|
|||
dha | If you have any ideas/comments, that would be most helpful and appreciated. | 22:19 | |
Said list is at github.com/dha/perl5-to-perl6-docs...ntials.txt | |||
22:20
zmikund left,
bin_005 left
|
|||
PerlJam | dha: sigil invariance is essential, but I didn't see it in the list | 22:21 | |
22:22
RabidGravy left
|
|||
dha | Yes! | 22:23 | |
It's now on the list. Thanks! | 22:24 | ||
22:24
broquaint joined
|
|||
dha | That's EXACTLY the kind of input I need. | 22:24 | |
PerlJam++ | |||
japhb | dha: Consider explaining the general form of changes. For example, operators that had separate boolean and numeric forms became ?op and +op, and global special variables gained twigils indicating static compile time or dynamic runtime behavior. | ||
Knowing some of those general rules will help them understand your more detailed docs, I think, because it will give them a mental structure to hang the details on. | 22:25 | ||
(And has the side effect of showing off that the design of the language is based on these kinds of general rules, rather than happenstance and history.) | 22:26 | ||
22:27
spider-mario left
|
|||
dha | Yes. Excellent. thanks. | 22:28 | |
22:32
Exodist left
22:35
Exodist joined
22:36
felher joined,
felher is now known as Guest28157
22:40
raiph left
22:41
raiph joined
22:43
meisl left
22:49
skids joined
22:50
khw left,
lizmat joined
22:51
espadrine_ left
|
|||
TimToady | .tell jnthn on average, the lexers visit each character in the setting about 4.3 times, due to relexing at each level of proto/alternation (and that's not counting the extra pass to actually match the data), so I suspect we can speed up the parser considerably by not rerunning sublexers when a superlexer already determined how the sublexer would turn out | 22:55 | |
yoleaux | TimToady: I'll pass your message to jnthn. | ||
22:57
vendethiel left
23:02
khw joined,
vendethiel joined
|
|||
japhb | TimToady: Wow, that's a very telling statistic. Given your parenthetical comment about the "extra pass to actually match the data", is the ideal case that the 4.3 number drops to 0, or to 1? | 23:04 | |
TimToady | 1, but hopefully we also get enough info out of the lexer to not bother rematching things that don't need capturing | 23:05 | |
23:24
amurf joined,
vendethiel left
23:31
dha left
|
|||
japhb | Gotcha | 23:32 | |
23:35
dha joined
23:44
Hor|zon joined
23:48
Hor|zon left
23:49
mr-foobar left
23:51
pdcawley left,
mr-foobar joined
|