Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-07-21

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:06 TEttinger joined #perl6
00:11 tinyblak joined #perl6
00:11 atroxaper joined #perl6
00:19 laouji joined #perl6
00:28 tinyblak_ joined #perl6
00:40 laouji joined #perl6
00:44 laouji joined #perl6
00:50 dalek rakudo/nom: 27f88c4 | coke++ | t/spectest.data:
00:50 dalek rakudo/nom: run these new (passing) tests
00:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/27f88c4d9c
00:55 rangerprice joined #perl6
00:55 llfourn joined #perl6
00:58 skids Thanks [Coke] that saved me a PR.
01:02 [Coke] sure
01:02 rangerprice hi
01:02 [Coke] hio
01:02 rangerprice What is your prefered Perl library ?
01:04 BenGoldberg joined #perl6
01:07 yeahnoob joined #perl6
01:09 tinyblak joined #perl6
01:09 cognominal joined #perl6
01:11 [Coke] rangerprice: FYI, this is a discussion about the development and usage of Perl 6, which is a different language than Perl 5.
01:12 rangerprice oh okay
01:12 [Coke] You're welcome to hang out. There's definitely some nifty Perl 6 modules.
01:14 rangerprice What do you mean when you say "hang out" (english is not my native language)
01:15 Hor|zon joined #perl6
01:17 skids It means to spend time here.
01:18 rangerprice oh
01:18 rangerprice you sure skids ?
01:19 rmgk_ joined #perl6
01:20 skids rangerprice: Yes, it's my native language.
01:24 Juerd hang out
01:24 Juerd v 1: spend time in a certain location or with certain people;
01:24 Juerd "She hangs out at the corner cafe"
01:24 rangerprice thanks !
01:24 Juerd rangerprice: dict is a great command line utility if you're learning/using English
01:24 Juerd I just did a 'dict "hang out"'
01:25 rangerprice juerd :d) i'll do the same in the future
01:27 rangerprice 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? )
01:27 japhb rangerprice: That is the intent, yes.
01:29 skids Well, it is certainly useful to us native English speakers :-)
01:31 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:33 skids I would think http://doc.perl6.org/ would be the first place to start translation efforts.  But someone will have to code in the glue.
01:35 bloomburgers joined #perl6
01:36 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:37 bloomburgers As a newbie though, do we have parametric types in Perl 6?
01:39 rangerprice You right skids, but me, i don't scare about code in the glue.
01:41 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:42 skids (But there are some pre-built like Array[Foo])
01:45 bloomburgers I'm very much new, what does MOP expand to?
01:45 skids Meta object protocol
01:45 skids Basically how to build new language constructs up from the underlying prmitives.
01:45 bloomburgers Is perl6 a little lispish in letting you make new language constructs?
01:45 dayangkun joined #perl6
01:46 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 ?
01:47 skids rangerprice: it draws a lot from Perl5+Moose but it is a ground-up rewrite.
01:47 [Coke] S99:PEG?
01:47 synbot6 Link: http://design.perl6.org/S99.html#PEG
01:48 skids (well Moose and 6 have both drawn from each other at times if I understand correctly)
01:49 [Coke] (code of conduct) just tripped over this: https://github.com/blog/2039-ad​opting-the-open-code-of-conduct
01:50 telex joined #perl6
01:54 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?
02:01 hoelzro bloomburgers: iirc, that's specced, but not implemented
02:01 hoelzro m: my Str|Int $si;
02:01 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 my␤at /tmp/QIgqyaFVJ8:1␤------> 3my Str7⏏5|Int $si;␤␤»
02:01 hoelzro hmm
02:01 hoelzro that's LTA
02:03 b2gills m: my subset StrInt of Any where Str | Int; say $_ ~~ StrInt for 5, 'str', 5.0
02:03 camelia rakudo-moar 27f88c: OUTPUT«True␤True␤False␤»
02:03 noganex_ joined #perl6
02:04 b2gills m: say $_ ~~ Str | Int for 5, 'str', 5.0
02:04 camelia rakudo-moar 27f88c: OUTPUT«True␤True␤False␤»
02:05 skids bloomburgers: That's marked as a post-6.0.0 feature.  The speculation for it is here: http://design.perl6.org/S12​.html#Multiple_constraints
02:13 llfourn joined #perl6
02:14 funjon joined #perl6
02:15 bloomburgers yeah it's looking like subsets are enough to encode algebraic data types
02:23 pullphinger joined #perl6
02:44 aborazmeh joined #perl6
02:44 aborazmeh joined #perl6
02:49 cschwenz joined #perl6
02:50 aborazmeh joined #perl6
02:50 aborazmeh joined #perl6
02:52 cschwenz left #perl6
02:54 FROGGS joined #perl6
03:02 flussence [Coke]: I prefer a more wtfpl-ish take on the idea: https://github.com/domgetter/NCoC
03:04 Hor|zon joined #perl6
03:05 * skids prefers this CoC: http://www.coc.com/   m/
03:12 cognominal joined #perl6
03:13 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:14 skids I dunno the topic has just been kicking around for some reason is all.
03:15 flussence no idea, I'm just responding to a line that's visible on screen :)
03:17 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:27 [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.
03:28 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:45 funjon left #perl6
03:52 xiaomiao people often want a CoC so they can apply these rules to others
03:53 xiaomiao e.g. silencing people that have diverging opinions
03:53 xiaomiao I don't like the current trend of adding more and more 'social rules'
03:56 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.
03:58 japhb .oO( "Don't make people uncomfortable"  -->  "Help everyone feel comfortable" )
03:59 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)
04:02 xiaomiao ShimmerFairy: doesn't the CoC discriminate against those then?
04:02 xiaomiao gets very loopy
04:02 nys "treat newcomers as if they're someone you need to solicit money from soon (i.e. with a basic level of respect)"
04:02 xiaomiao and I can insult you without triggering a CoC, I've been trained well ...
04:02 ShimmerFairy xiaomiao: yes, but that's the point. You aren't allowed to be a jerk towards other people, plain and simple.
04:02 xiaomiao ShimmerFairy: that's, like, your opinion, maaan ... ;)
04:03 xiaomiao ShimmerFairy: don't let lawyers structure your interactions
04:05 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.
04:05 japhb *any CoC
04:06 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 :)
04:06 xiaomiao rules boil down to (1) don't be stupid (2) don't assume others are stupid
04:07 xiaomiao 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.
04:07 xiaomiao it's a good way to get rid of contributors
04:07 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.
04:07 ShimmerFairy Not that simple; people with offensive viewpoints don't think they're being stupid.
04:07 xiaomiao ShimmerFairy: offense is taken, not given
04:07 [Coke] I really don't get the pushback against writing down rules that try to enforce what we've got here.
04:08 [Coke] 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.
04:08 xiaomiao [Coke]: more rules won't help
04:08 * xiaomiao has seen year-long campaigns that were definitely not slowed down by CoC, rules, etc.
04:08 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).
04:08 ShimmerFairy *its
04:08 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.
04:09 xiaomiao ShimmerFairy: #gentoo uses a language policy and "ops are always right" - works quite well
04:09 japhb ShimmerFairy: where did you come from?
04:09 ShimmerFairy japhb: I've been on BadnikNET for a while now. Certainly has been different from hanging out in #perl6 :)
04:10 [Coke] japhb: wow, without the context of her previous send, that sounded a little harsh.
04:10 [Coke] :)
04:10 japhb [Coke]: Oh, heh, yeah, I guess my response was very contextual, wasn't it?  :-)
04:10 [Coke] +1 from me on a simple CoC that has consequences for being an asshat.
04:11 [Coke] which we've demonstrably done well before the looming "September"
04:11 ShimmerFairy +1 on that as well
04:11 [Coke] er, *well enough without
04:11 [Coke] but as was mentioned earlier, it's not going to be the same after "Birthday" drops.
04:12 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 :)
04:13 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:14 japhb flussence: Yeah, I've actually seen that work here.
04:14 xinming joined #perl6
04:16 [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?
04:16 ShimmerFairy .oO(S42: Code of Conduct)
04:17 japhb S00 perhaps
04:18 skids It ain't spec unless its in the test siute :-)
04:20 japhb [Coke]: Oh wait, was it this one?  https://github.com/blog/2039-ad​opting-the-open-code-of-conduct
04:20 skids .oO(use Test: "hug me!'.say; ok lines[0] ~~ "hug")
04:23 [Coke] japhb: yes.
04:23 [Coke] m: lines.say
04:23 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 …»
04:23 ShimmerFairy [Coke]: atm I'm typing up a draft of how I think our CoC could go, in case you're interested in knowing :)
04:24 [Coke] m: say so lines ~~ 'hug'
04:24 camelia rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5KG0nzdSGi␤Expected 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'␤»
04:24 [Coke] m: say so (lines ~~ 'hug' )
04:24 camelia rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6a_vQeaXTS␤Expected 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' )␤»
04:24 [Coke] m: say so (lines() ~~ 'hug' )
04:24 camelia rakudo-moar 27f88c: OUTPUT«False␤»
04:26 flussence .oO( "avoid success at all costs" - maybe Haskell's on to something... )
04:28 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:33 japhb 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:34 xiaomiao japhb: but then I couldn't leverage my victim status
04:34 xiaomiao ;)
04:34 skids Wait we discriminate against the disabled?
04:34 skids :-)
04:34 xiaomiao skids: stop triggering me with such ableist statements!11
04:34 skids :)
04:34 xiaomiao (do not negotiate with terrorists. Scorched earth strategies are the only way to contain the plague)
04:35 * 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. :)
04:36 [Coke] 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.
04:37 [Coke] You have months.
04:41 tinyblak joined #perl6
04:42 [Coke] japhb: http://www.scorched3d.co.uk/
04:53 Hor|zon joined #perl6
04:54 kaare_ joined #perl6
05:02 laouji joined #perl6
05:04 japhb [Coke]: https://gist.github.com/japhb/b76f7d3a816df4d65108
05:05 lizmat joined #perl6
05:07 daxim_ joined #perl6
05:07 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 :)
05:07 japhb ShimmerFairy: Great, thanks for taking a look!
05:13 lizmat_ joined #perl6
05:21 atroxaper joined #perl6
05:21 atroxaper joined #perl6
05:27 nwc10 good *, #perl6
05:32 PerlJam nwc10: greetings!
05:39 PerlJam japhb: did you read the open code of conduct?
05:39 japhb PerlJam: Yes, why do you ask?
05:40 PerlJam Just curious.  Yours and theirs align well.
05:40 PerlJam The one thing missing from both though, is "be forgiving"
05:41 PerlJam oh, and ... japhb++  :)
05:43 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:45 darutoko joined #perl6
05:46 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 japhb Well, that wasn't very eloquent, but I hope you know what I mean.
05:46 PerlJam yep
05:50 PerlJam 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:53 PerlJam (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:58 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.
06:00 PerlJam yep.  japhb++  Our nascent CoC is in good hands it seems :)
06:01 ShimmerFairy I'm almost done with my draft, btw :)
06:03 * PerlJam waits
06:05 FROGGS joined #perl6
06:09 Hor|zon joined #perl6
06:09 ShimmerFairy japhb, PerlJam, [Coke]: Here's my idea for what the code of conduct could look like: https://gist.github.com/lue/6dfe2fec1579508dde30    (I don't expect this to be accepted verbatim)
06:14 dalek Inline-Perl5: a61cdc6 | (Stefan Seifert)++ | p5helper.c:
06:14 dalek Inline-Perl5: Hopefully fix the rare panic: MUTEX_LOCK in t/callables.t
06:14 dalek Inline-Perl5:
06:14 dalek Inline-Perl5: hoelzro++ finally discovered, what's going on here. His diagnosis:
06:14 dalek Inline-Perl5:
06:14 dalek Inline-Perl5: The issue seems to be that the Inline::Perl5 DESTROY submethod tears down
06:14 dalek Inline-Perl5: the Perl 5 interpreter and then the DESTROY submethod on a Perl5Callable
06:14 dalek Inline-Perl5: is invoked. The global data structures that perl uses (such as its op
06:14 dalek Inline-Perl5: mutex) have been taken down and are not in a usable state, so
06:14 dalek Inline-Perl5: pthread_mutex_lock sees the misconfigured mutex and freaks out, returning
06:14 dalek Inline-Perl5: EINVAL (which is the 22 we see)
06:14 dalek Inline-Perl5:
06:14 dalek Inline-Perl5: Fix by having p5_destruct_perl set a "destroyed" flag that p5_sv_refcnt_dec
06:14 dalek Inline-Perl5: checks. This is kind of a hot path, but doing this in C, I guess it will
06:14 dalek Inline-Perl5: still not have measurable performance impact. At least until we get better
06:14 dalek Inline-Perl5: performance out of NativeCall.
06:14 dalek Inline-Perl5:
06:15 dalek Inline-Perl5: Fixes GH #34
06:15 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/a61cdc6271
06:15 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.
06:16 ShimmerFairy Yeah, I can see that.
06:17 PerlJam ShimmerFairy++  I also really like that you called it something other than "code of conduct"
06:18 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:20 ShimmerFairy PerlJam: updated the points you mentioned, hopefully it doesn't sound as potentially threatening now.
06:21 PerlJam nice
06:22 PerlJam Well, it's bed time for me.  g'night all.
06:22 * PerlJam &
06:22 RabidGravy joined #perl6
06:22 japhb ShimmerFairy: Good job.
06:23 japhb ShimmerFairy++
06:23 RabidGravy marning
06:23 japhb o/ RabidGravy
06:23 ShimmerFairy g'night PerlJam o/
06:24 * japhb considers the distance along the time axis before he is asleep, and then considers shortening that distance
06:44 masak morning, #perl6
06:45 moritz \o masak, *
06:49 tinyblak joined #perl6
06:52 espadrine joined #perl6
06:54 Ven_ joined #perl6
06:59 jack_rabbit joined #perl6
07:00 zakharyas joined #perl6
07:02 domidumont joined #perl6
07:05 nightfrog joined #perl6
07:06 domidumont joined #perl6
07:07 domidumont joined #perl6
07:10 Hor|zon joined #perl6
07:13 brrt joined #perl6
07:15 dayangkun joined #perl6
07:20 llfourn joined #perl6
07:22 justin___ joined #perl6
07:28 abraxxa joined #perl6
07:32 rindolf joined #perl6
07:33 justin___ left #perl6
07:56 dakkar joined #perl6
07:57 atroxape_ joined #perl6
07:58 Hor|zon joined #perl6
08:00 Ven joined #perl6
08:02 g5 joined #perl6
08:02 dalek ecosystem: c0655ec | RabidGravy++ | META.list:
08:02 dalek ecosystem: Add Audio::Encode::LameMP3
08:02 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/c0655ec668
08:03 RabidGravy well that took longer than expected
08:06 Ven b2gills: "of Any" is implicit for subsets, btw :)
08:06 Ven also, o/ #perl6!
08:09 DrForr Mornin'.
08:11 Ven .tell flussence it's "avoid 'success at all cost'", the inner quotes are important :P.  http://irclog.perlgeek.de/p​erl6/2015-07-21#i_10928473
08:11 yoleaux Ven: I'll pass your message to flussence.
08:12 DrForr Eats, shoots and leaves.
08:14 dalek doc: 20f1ec5 | (Cédric Vincent)++ | lib/Language/nativecall.pod:
08:14 dalek doc: Initial documentation for cglobal.
08:14 dalek doc: review: https://github.com/perl6/doc/commit/20f1ec50f4
08:16 brrt i'm being pedantic, but it bothers me that the 'open code of conduct' says 'we're a community of professionals'
08:16 brrt we're also a community of amateurs, in a sense
08:21 cdc brrt: to me, "amateur" means "qui aime son travail" (who loves her/his work)
08:21 cdc brrt: so yes, there are a lot of amateur here :)
08:21 brrt that's what i mean too :-)
08:21 brrt professional is someone who is called to his work?
08:22 cdc amateur: [French, from Latin amātor, lover, from amāre, to love.] -- http://www.thefreedictionary.com/amateur
08:23 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
08:23 brrt actually, it's more complicated than that
08:24 cdc yes, you may love your $work too
08:24 cdc I mean $payjob
08:24 brrt the term 'professional' usually implies both a certain level of expertise, independence, and ethics
08:25 * [ptc] is currently at EuroPython, in Guido's keynote
08:25 brrt vocation does not imply the same, and 'job' certainly doesn't
08:25 nwc10 oooh. Is Guido saying anything interesting?
08:25 [ptc] he just discussed the p5, p6 "rift", *sigh*
08:25 nwc10 oh. that's interesting. He seems to be out of date.
08:26 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.)
08:26 [ptc] nwc10: I like Larry's talks better: he's more philosophical
08:26 nwc10 but there's no Python 2, Python 3 rift?
08:26 brrt .tell japhb i like that form of code-of-conduct, it's short, too the point, and human rather than policital
08:26 yoleaux brrt: I'll pass your message to japhb.
08:26 brrt *too the point
08:26 [ptc] cdc: https://www.youtube.com/c/EuroPythonConference
08:26 cdc [ptc]: thanks!
08:27 [ptc] nwc10: yeah, there's a rift there.  But they want to phase out py2, not have two sister languages
08:27 [ptc] cdc: the talk's almost finished.  sorry, should have mentioned this eariler
08:27 cdc [ptc]: oh, no problem :)
08:28 [ptc] nwc10: hence it's just a painful upgrade (they added e.g. utf8 to the language)
08:28 [ptc] nwc10: and the change is nowhere near so large as in p5->p6
08:28 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'.
08:28 brrt to me it means 'more serious', and that's ok, but it's not better
08:28 brrt amateurs probably have more fun
08:28 cdc brrt: the same.  I tend to trust amateurs, not professionals
08:29 [ptc] nwc10: they also just added '@' as a matrix multiplication operator in py3.5
08:29 brrt did they? hmm...
08:30 brrt when are they going to add an operator for the kronecker product :-P
08:30 [ptc] brrt: :-)
08:30 DrForr Don't tempt me :)
08:30 brrt fwiw, 'unicode in python3 omg' is really way overblown imho
08:31 inokenty joined #perl6
08:31 [ptc] coffee break, afk &
08:38 atroxaper joined #perl6
08:40 dalek doc: 826a758 | (Cédric Vincent)++ | lib/ (2 files):
08:40 dalek doc: Fix two typos.
08:40 dalek doc: review: https://github.com/perl6/doc/commit/826a75891a
08:44 [ptc] brrt: the thing is, that seems to be what everyone mentions as a "big thing" in the change from py2 -> py3
08:44 [ptc] especially as something one can trip over when making the switch
08:44 brrt well, yeah
08:45 [ptc] there are other many other smaller changes, but it's odd how many people mention the utf8 thing
08:46 brrt i know, especially considering the switch makes so much sense
08:46 brrt bytes are bytes, strings are strings, not the same hting
08:46 brrt thing
08:46 [ptc] nod
08:51 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 RabidGravy (or drink too much beer, whichever is the soonest.)
08:54 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 [Sno] joined #perl6
08:54 moritz may the yack always be with you.
08:58 RabidGravy o/ yackety yack, don't look back o/
08:58 * RabidGravy wishes for musical symbols on some compose sequence
08:59 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 :)
08:59 jnthn Well, so long as the low bar is well stocked...
09:01 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:02 RabidGravy 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:03 brrt morning jnthn
09:04 [ptc] morning jnthn
09:08 jnthn Whoa, I like Adnams Broadside the beer, I didn't know there was a spirit...
09:09 nwc10 there is not *a* spirit: http://adnams.co.uk/spirits/our-spirits/
09:10 jnthn oh.
09:10 jnthn :)
09:11 * masak .oO( enough for a seance )
09:14 amurf joined #perl6
09:15 nwc10 I forget which one(s) I've tried
09:16 nwc10 (at http://london.randomness.org.uk/​wiki.cgi?Bridge_House%2C_SE1_2UP )
09:18 Ven joined #perl6
09:21 gfldex joined #perl6
09:22 espadrine joined #perl6
09:25 RabidGravy nwc10, I specifically was referring to http://adnams.co.uk/spirits/our-​spirits/the-spirit-of-broadside/ ;-)  I think I need to get up to Southwold before the school holidays really kick in
09:26 Ulti might have asked this before but is there a way to have class level variables in Perl 6?
09:27 Ulti so something a bit like public static in java
09:27 Ulti so if you have a type object it can access the attribute more specifically as a scoped global
09:29 jnthn my $.thingy = 42;
09:32 Ulti orly
09:32 Ulti I just made a gross package level attribute
09:32 bin_005 joined #perl6
09:32 Ulti which you can't type for some reason?
09:33 mathw joined #perl6
09:33 jnthn Nope.
09:33 jnthn But you can type the above one.
09:34 Ulti yeah just did thanks a lot
09:34 jnthn np
09:34 RabidGravy are "subsets" supposed to be taken into account when selecting a multi?
09:34 Ulti might be worth a mention in the table http://doc.perl6.org/language/variables where it says lexically scoped but has a bit of a different meaning in a class?
09:36 jnthn RabidGravy: They serve as tie-breakers
09:36 jnthn Ulti: It's still lexically scoped, it's just you get an accessor method generated for it.
09:37 RabidGravy Hmm specifically I have:
09:37 RabidGravy 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>);
09:37 camelia rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/D_bdqolWYg␤Strange 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…»
09:38 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 RabidGravy and it don't work as I expected
09:40 nightfrog joined #perl6
09:40 inokenty1 joined #perl6
09:40 jnthn RawEncode @foo means an array *of* RawEncode
09:40 RabidGravy duh, yes of course it does
09:41 * RabidGravy not woken up
09:41 nwc10 quick! Emergency coffee infusion
09:42 RabidGravy or travel back in time and have one few punk ipa last night
09:42 RabidGravy ;-)
09:46 RabidGravy and now it all works like what I expected
09:50 JimmyZ_ joined #perl6
10:12 dalek rakudo/multidim: 2c47beb | jnthn++ | src/core/A (2 files):
10:12 dalek rakudo/multidim: Start preparing for multi-dim *-POS.
10:12 dalek rakudo/multidim:
10:12 dalek rakudo/multidim: We'll pass multiple indices to the [AT|ASSIGN|EXISTS...]-POS methods.
10:12 dalek rakudo/multidim: This will allow things that know how many dimensions they have to just
10:12 dalek rakudo/multidim: bind them directly to parameters, which will be efficient (and allow
10:12 dalek rakudo/multidim: the dynamic optimizer to inline, etc.). We'll be able to do some case
10:12 dalek rakudo/multidim: analysis on the indexer itself at optimization time to eliminte the
10:12 dalek rakudo/multidim: LoL in the commonest cases also.
10:12 dalek rakudo/multidim:
10:12 dalek rakudo/multidim: This patch simply adds fallbacks for the multi-indice case that dig
10:12 dalek rakudo/multidim: into the data structure a level at a time.
10:12 dalek rakudo/multidim: review: https://github.com/rakudo/rakudo/commit/2c47beb520
10:21 Ven joined #perl6
10:30 mr-foobar joined #perl6
10:37 Ven m: sub term:<o/> { ^5 }; for o/ { .say };
10:37 camelia rakudo-moar 27f88c: OUTPUT«0␤1␤2␤3␤4␤»
10:38 Ven *g* ( http://irclog.perlgeek.de/p​erl6/2015-07-20#i_10926108 )
10:39 hahainternet o7 Ven
10:39 hahainternet (ascii salute)
10:41 masak o٦ Ven
10:42 cdc '٦'.uniname
10:42 cdc m: '٦'.uniname.say
10:42 camelia rakudo-moar 27f88c: OUTPUT«ARABIC-INDIC DIGIT SIX␤»
10:44 hahainternet masak: british salute, very nice
10:44 cdc it seems western arabic salute is a little bit higher than the eastern arabic one.
10:44 hahainternet although to be honest it isn't
10:44 hahainternet both british and americans are elbow out as far as i know
10:45 hahainternet just different hand position and different action afterwards
10:45 hahainternet americans sweep up and sweep down, brits sweep up and straight down
10:45 DrForr Ask Rimmer?
10:46 hahainternet lovely reference, but I'm afraid they have repeatedly rejected his proposal :(
10:54 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.
10:54 jnthn .tell TimToady Well, .map *is* iterating, of course... :) I'm guessing the answers to all these are related, anyways.
10:54 yoleaux jnthn: I'll pass your message to TimToady.
10:55 ][Sno][ joined #perl6
10:56 telex joined #perl6
11:04 amurf joined #perl6
11:04 cdc DrForr: Ace Rimmer ;)
11:05 cognominal joined #perl6
11:05 hahainternet there's no-one slimmer?
11:10 jnthn lunch &
11:19 ][Sno][ joined #perl6
11:26 bin_005_g joined #perl6
11:29 tinyblak joined #perl6
11:41 RabidGravy joined #perl6
11:44 jaffa4 joined #perl6
11:44 jaffa4 hi all
11:44 RabidGravy boom!
11:45 Ven joined #perl6
11:48 sisar joined #perl6
11:50 sisar i'm getting the following error when trying to install rakudo in Cygwin: https://gist.github.com/Sid​dhant/12342fb623f95c788df4
11:50 sisar any solutions ?
11:50 FROGGS let's see
11:50 jaffa4 m: class m {  has $.a;   method m1() { $!("a") = 1;   } }   ; my $c = m.new();  $c.m1();
11:50 camelia rakudo-moar 27f88c: OUTPUT«Cannot find method 'Nil'␤  in method m1 at /tmp/MQnt5szKOI:1␤  in block <unit> at /tmp/MQnt5szKOI:1␤␤»
11:51 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␤␤»
11:51 FROGGS sisar: what if you create the directory /home/ssara29/rakudo/install and try again?
11:51 pdcawley joined #perl6
11:51 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␤␤»
11:51 masak jaffa4: no :)
11:52 jaffa4 What is the solution, masak?
11:52 FROGGS m: my $a; $::("a") = 5; say $a
11:52 camelia rakudo-moar 27f88c: OUTPUT«5␤»
11:52 masak m: my $a; ::<$a> = 5; say $a
11:52 camelia rakudo-moar 27f88c: OUTPUT«5␤»
11:52 FROGGS it works technically...
11:53 tinyblak joined #perl6
11:53 laouji joined #perl6
11:53 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␤␤»
11:53 FROGGS though, such an indirect lookup is a nightmare performance wise
11:53 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:54 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␤»
11:54 FROGGS ShimmerFairy: it works, as I'd shown
11:54 * masak submits rakudobug
11:54 jaffa4 m: class m {  has $.a;   method m1() { $!::<a> = 1;   } }   ; my $c = m.new();  $c.m1();
11:54 camelia rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1khEz3wS7M␤Confused␤at /tmp/1khEz3wS7M:1␤------> 3class m {  has $.a;   method m1() { $!:7⏏5:<a> = 1;   } }   ; my $c = m.new();  $c␤    expecting any of:␤        colon pair␤»
11:54 ShimmerFairy m: my $a; ::<$a> = 5; say $a
11:54 camelia rakudo-moar 27f88c: OUTPUT«5␤»
11:54 FROGGS jaffa4: no
11:54 ShimmerFairy m: my $a; $::<a> = 5; say $a
11:54 camelia rakudo-moar 27f88c: OUTPUT«===SORRY!===␤MVMArray: Index out of bounds␤»
11:54 ShimmerFairy FROGGS: ^ not there
11:54 FROGGS jaffa4: you can only move the sigil, not the twigil
11:55 FROGGS ShimmerFairy: yeah, should probably do the same as $::("a")
11:55 konsolebox joined #perl6
11:55 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␤»
11:55 FROGGS jaffa4: no!
11:56 ShimmerFairy m: my $a; $::{"a"} = 5; say $a  # also broken, at least to me
11:56 camelia rakudo-moar 27f88c: OUTPUT«===SORRY!===␤MVMArray: Index out of bounds␤»
11:56 tinyblak joined #perl6
11:57 tinyblak joined #perl6
11:57 masak m: $::<a>
11:57 camelia rakudo-moar 27f88c: OUTPUT«===SORRY!===␤MVMArray: Index out of bounds␤»
11:57 jaffa4 So how can I set the attribute of class?
11:58 FROGGS m: class m {  has $.a;   method m1() { $!a = 1;   } }   ; my $c = m.new();  $c.m1();
11:58 camelia rakudo-moar 27f88c: ( no output )
11:58 FROGGS jaffa4: is that an option?
11:58 jaffa4 dynamically
11:58 FROGGS why?
11:58 jaffa4 why not?
11:58 FROGGS heh
11:59 FROGGS because it is a design smell, and slow
11:59 jaffa4 it would not use it often
12:01 jaffa4 masak: Is it buggy?
12:03 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)␤»
12:05 jaffa4 ok FROGGS, should not the short version work?
12:05 FROGGS jaffa4: I don't know
12:06 FROGGS it is not a lexical, mind, it is an attribute of an instance... dunno how this should work when accessing it indirectly
12:08 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?
12:08 masak FROGGS: I could also argue it both ways.
12:09 masak FROGGS: I guess the answer depends on how much the ::{$lookup} syntax promises to take care of.
12:09 masak is it just lexicals, or is it other stuff as well?
12:09 FROGGS aye, which is the part I'm not sure about
12:17 jnthn The only way to set an attribute dynamically is through the MOP (the .^attributes thing)
12:17 moritz what's ::{}?
12:17 jnthn If you're going to do it a lot you can look the meta-attribute up once and cache it in a constant
12:17 moritz m: class A { has $!a; method x() { ::('$!a') = 42 } }; A.new.x
12:17 camelia rakudo-moar 27f88c: OUTPUT«===SORRY!===␤No such symbol '$!a'␤»
12:18 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
12:18 moritz (because it needs a 'self', where other such lookups don't)
12:19 jnthn Right
12:20 konsolebox joined #perl6
12:20 jnthn So what FROGGS++ show is the way to do it.
12:21 jnthn *showed
12:23 cognominal joined #perl6
12:25 masak decommute &
12:27 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: https://gist.github.com/lue/4ea15272ffe507a8106d
12:28 ShimmerFairy (those two concurrency tests failed before the change is introduced; I just put them in localtest.data for completeness)
12:31 Woodi hi #perl6
12:35 Woodi 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:36 Ven joined #perl6
12:36 jnthn What does "replace threads" even mean?
12:37 Woodi I was imagining barista serves coffe:  $mill = Supply{...}; $machine = Suply{...}; but cannot help myself and wanted to imagine: $barista = Actor{...}
12:38 Woodi jnthn: making threads yet less popular and unnecesary :)
12:38 Woodi I think "
12:39 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...
12:39 Woodi grr, s/signals/message sending/
12:40 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 :)
12:40 Woodi Intel was trying...
12:42 Woodi jnthn: just Supplies looks very high level
12:43 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:44 jnthn Woodi: Rx in .Net and RxJava have been used in plenty of high-throughput situations and are the same model.
12:44 jnthn 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.
12:45 jnthn It's just extremely conveneint sugar for setting up observers with some concurrency control factored out of your code.
12:45 llfourn joined #perl6
12:45 dalek doc: f75c070 | moritz++ | lib/Type/Supply.pod:
12:45 dalek doc: Mention that Supply is an implementation of the observer pattern, jnthn++
12:45 dalek doc: review: https://github.com/perl6/doc/commit/f75c070657
12:47 Woodi jnthn: that's good :) so I should actually try them :)
12:48 jnthn I should note that the current impl is not as fast as what we'll end up with
12:49 atroxaper joined #perl6
12:49 raiph joined #perl6
12:51 hoelzro good morning #perl6
12:51 lucasb joined #perl6
12:52 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)
12:52 jnthn Supplies are about async things...
12:53 pullphinger joined #perl6
12:54 DrForr Resisting an UHF joke here.
12:54 jnthn ShimmerFairy: ah, sorry, missed it...was distracted trying to impl multi-dim arrays :)
12:55 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
12:56 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
12:56 jnthn I don't immediately know why, sorry
12:57 ShimmerFairy jnthn: alright then, I was just wondering if I made a simple goof due to lack of Rakudo hacking experience :)
12:58 jnthn No, I don't see anything obvious after a few looks over it, I'm afraid
12:59 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.
13:00 cschwenz joined #perl6
13:01 cschwenz o/ #perl6
13:02 masak \o
13:02 [ptc] \o
13:03 masak czesc, cschwenz :)
13:03 cschwenz good * masak
13:03 nige1 joined #perl6
13:05 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:06 nine cschwenz: just the same
13:06 cschwenz hmm
13:06 jnthn Same, except you need {'foo'}{'bar'} or <foo><bar>
13:06 jnthn Since we don't auto-quote inside {...}
13:06 masak m: my %h = foo => { bar => 42 }; say %h<foo><bar>
13:06 camelia rakudo-moar 27f88c: OUTPUT«42␤»
13:06 masak cschwenz: ^^
13:06 cschwenz i'm getting postcircumfix:<{ }> not defined for type Parcel when doing %hash{"foo"}{"bar"}
13:07 masak cschwenz: then you're probably getting a Parcel out of %hash{"foo"}
13:07 masak cschwenz: maybe check why.
13:07 cschwenz hmm, okay
13:07 cschwenz what would generate a Parcel vs a plain hash?
13:08 masak m: say (1, 2).^name
13:08 camelia rakudo-moar 27f88c: OUTPUT«Parcel␤»
13:08 masak that, for example.
13:08 moritz %hash<foo> = (1, 2)
13:08 masak maybe for the purposes of this discussion, consider Parcel == List
13:08 Humbedooh joined #perl6
13:10 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?
13:10 moritz the comma makes a Parcel
13:11 moritz 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"}
13:11 moritz you need { ... } or %( ... )
13:11 moritz cschwenz: but there you're assigning to a hash, which is specical
13:11 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
13:11 jaffa4 How can I print current time?
13:11 ShimmerFairy so  %hash{"foo"} = {bar => 12, baz => 17}  would be the way to do what you mean to do.
13:11 moritz m: say now
13:11 camelia rakudo-moar 27f88c: OUTPUT«Instant:1437484350.793979␤»
13:11 moritz m: say time
13:11 camelia rakudo-moar 27f88c: OUTPUT«1437484319␤»
13:11 masak m: say DateTime.now
13:11 camelia rakudo-moar 27f88c: OUTPUT«2015-07-21T15:11:59+02:00␤»
13:12 moritz m: say Date.today
13:12 camelia rakudo-moar 27f88c: OUTPUT«2015-07-21␤»
13:12 moritz four options, depending on what you need
13:12 masak m: say Date.new
13:12 camelia rakudo-moar 27f88c: OUTPUT«2015-12-24␤»
13:12 cschwenz ah, okay.  i understand now.  thanks all!  :-)
13:12 masak or Christmas :)
13:12 moritz \o/ Christmas
13:12 jaffa4 WHat about ateTime.now without timezone?
13:12 masak /o\ Christmas
13:13 masak jaffa4: how could you not have a timezone?
13:13 masak jaffa4: the world is covered with timezones.
13:13 ShimmerFairy ☃ Christmas ☄
13:13 masak ShimmerFairy: :D
13:13 jaffa4 I mean without timezone info
13:13 moritz what about it?
13:14 moritz jaffa4: http://doc.perl6.org/type/DateTime has something about time zones
13:14 jaffa4 I would like to see 015-07-21T15:11:59
13:14 moritz ah, UTC
13:14 domidumont joined #perl6
13:14 ShimmerFairy masak: I still half-jokingly vote for snowman-comet to be the unquote delimiters :P
13:14 jaffa4 not utc, without timezone information
13:15 masak ShimmerFairy: thank you for providing me with a new worst alternative, beating out ¤
13:15 ShimmerFairy masak: aww, it'd be -Ofun though :)
13:21 [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:22 [Coke] You should be able to get the individual elements of the DateTime.
13:23 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␤»
13:23 masak jaffa4: ^^
13:23 jaffa4 I see
13:24 masak ...he said, disappointed. :)
13:24 FROGGS *g*
13:27 timotimo this NCoC thing is strange to me, but the very last piece of the FAQ-thing is a bit enlightening
13:28 dayangkun joined #perl6
13:29 jaffa4 How compilcated can this given be?
13:30 timotimo you can put an expression after "given", and the whole statement can still get more statement modifiers, like postfix "for"
13:30 JimmyZ_ joined #perl6
13:33 jaffa4 In perl6 eval , is it possible to redefined methods/
13:35 timotimo please be more specific
13:35 masak jaffa4: you mean like this?
13:35 masak > Int.^add_method("succ", method () { 42 })
13:35 masak Package 'Int' already has a method 'succ' (did you mean to declare a multi-method?)
13:36 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 khw joined #perl6
13:36 masak > Int.^find_method("succ").wrap(sub ($self) { 42 })
13:36 masak WrapHandle.new
13:36 masak > 5.succ
13:36 masak 42
13:36 masak jaffa4: or like this? ^
13:37 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
13:37 masak lucasb: Date is independent of DateTime, but a hypothetical Time kinda isn't.
13:37 masak lucasb: because of things like leap seconds.
13:38 masak labster: and daylight savings.
13:38 lucasb masak: oh, you are right
13:38 masak uhm, lucasb
13:40 jaffa4 masak: that is not eval... just pure Perl6
13:40 masak yep.
13:40 masak it's MOP, though.
13:40 masak > given Int.^find_method("succ").wrap(sub ($self) { 42 }) { say 5.succ; .restore; say 5.succ }
13:40 masak 42
13:40 masak 6
13:40 masak it's fun to play around with, though. :)
13:40 jaffa4 MOP?
13:41 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«42␤6␤»
13:41 masak jaffa4: yes, the `^` there indicates that it's the MOP.
13:41 masak jaffa4: "Meta-Object Protocol".
13:41 tadzik because it's getting me-up
13:41 * tadzik hides
13:41 masak jaffa4: it's a direct access to the object system and its internals.
13:45 Humbedooh joined #perl6
13:47 jaffa4 and is it possible to copy code from method to another?
13:48 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 masak jaffa4: but you can call other methods freely, and thus get a kind of indirect use of their code.
13:48 jnthn You can always install one method under a second name, too.
13:51 masak m: my $succ = Int.^find_method("succ"); Int.^add_method("sux", $succ); say 5.sux
13:51 camelia rakudo-moar 27f88c: OUTPUT«6␤»
13:51 masak like that.
13:52 tinyblak joined #perl6
14:01 dalek ecosystem: a969530 | Adriaan++ | META.list:
14:01 dalek ecosystem: added Avro
14:01 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/a969530d00
14:01 dalek ecosystem: 95c1bd6 | FROGGS++ | META.list:
14:01 dalek ecosystem: Merge pull request #50 from sylvarant/master
14:01 dalek ecosystem:
14:01 dalek ecosystem: added Avro
14:01 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/95c1bd6efc
14:02 cschwenz left #perl6
14:08 flussence dear lazyweb: this test failure makes absolutely no sense. http://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.  http://irclog.perlgeek.de/p​erl6/2015-07-21#i_10928473
14:10 brrt joined #perl6
14:10 skids joined #perl6
14:14 masak japhb: nice. https://gist.github.com/japhb/b76f7d3a816df4d65108
14:15 masak japhb: I agree fully, until the last sentence which feels slightly off for some reason.
14:16 masak japhb: the health and happiness of our community comes before unredeemable trolls, sure.
14:16 jscripter joined #perl6
14:16 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:17 masak (I know you likely didn't intend it that way, but it can be read that way)
14:19 DrForr Dropping 'first' on #5 might help toward that goal.
14:19 pullphinger15 joined #perl6
14:20 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 https://perl6advent.wordpress.com/2010/12/2​4/day-24-yule-the-ancient-troll-tide-carol/
14:21 jnthn ugexe: cute... :)
14:22 masak ugexe: you could even turn that into an operator, let's say ⇒, and then you could [⇒]
14:22 jnthn .oO( Promise.pipeline(...) )
14:22 jnthn .u ⇒
14:22 yoleaux U+21D2 RIGHTWARDS DOUBLE ARROW [Sm] (⇒)
14:22 tinyblak joined #perl6
14:22 jnthn Looks LTA in my font :(
14:22 masak get a better font :)
14:22 brrt how do you type that so easily
14:22 masak brrt: App::Uni
14:23 masak brrt: $ uni arrow | less
14:23 flussence whoa.
14:23 * flussence installs
14:23 masak :D
14:23 masak au++ for that one
14:23 ShimmerFairy <Multi_key> <=> «>» (or <=> <Right_Arrow> <Right_Arrow>) for me :P ⇒⇒
14:23 brrt very nice
14:24 flussence I've been limping by on gucharmap2 for a while, and thinking of writing a replacement for it in perl6... eventually
14:24 pullphinger joined #perl6
14:25 brrt 📲 this.. is an unicode character
14:25 masak .u 📲
14:25 yoleaux U+1F4F2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT [So] (📲)
14:25 masak the future will not be kind to the Unicode consortium.
14:26 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/wuNy4IldBO␤Variable '@a' is not declared␤at /tmp/wuNy4IldBO:1␤------> 3<BOL>7⏏5@a = 1,2,3,4,5,7;  say @a.gist;␤»
14:26 jnthn I...what :)
14:26 masak .u front-facing
14:26 yoleaux U+1F425 FRONT-FACING BABY CHICK [So] (🐥)
14:26 jaffa4 m: my @a = 1,2,3,4,5,7;  say @a.gist;
14:26 camelia rakudo-moar 27f88c: OUTPUT«1 2 3 4 5 7␤»
14:26 masak .u tears
14:26 yoleaux U+1F602 FACE WITH TEARS OF JOY [So] (😂)
14:26 yoleaux U+1F639 CAT FACE WITH TEARS OF JOY [So] (😹)
14:26 masak because cats can be joyously sad, too
14:26 brrt wat
14:27 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
14:27 yoleaux No characters found
14:27 brrt people would not be able to manage that
14:27 brrt .u ♝
14:27 yoleaux U+265D BLACK CHESS BISHOP [So] (♝)
14:29 dalek doc: 7448bf7 | hoelzro++ | bin/p6doc:
14:29 dalek doc: Use $*TMPDIR to create temporary files
14:29 dalek doc:
14:29 dalek doc: $*TMPDIR will follow the operating system's best practices for
14:29 dalek doc: temporary file management
14:29 dalek doc: review: https://github.com/perl6/doc/commit/7448bf7234
14:29 dalek doc: 490872a | PerlJam++ | bin/p6doc:
14:29 dalek doc: Merge pull request #103 from hoelzro/master
14:29 dalek doc:
14:29 dalek doc: Use $*TMPDIR to create temporary files
14:29 dalek doc: review: https://github.com/perl6/doc/commit/490872a9ce
14:30 jaffa4 Is it possible to have a stream into a String?
14:30 darutoko- joined #perl6
14:31 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 3␤Method 'match' not found for invocant of class 'Any'␤  in block <unit> at /tmp/4tVGcP3dfG:1␤␤»
14:32 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 ShimmerFairy * grep { /^\d/ }, @list
14:33 moritz grep /^\d/, @list
14:34 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 #perl6
14:35 ShimmerFairy moritz: yeah, I'm not sure what possessed the test to put the regex in a block like that (except maybe clarity??)
14:37 ugexe masak: thanks for that suggestion
14:37 PerlJam ShimmerFairy: maybe the lack of "weird magic" outside of map/grep is the bug :)
14:38 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.
14:38 masak ugexe: they're especially neat if you immediately turn around and do something like reduce on them.
14:40 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:41 amurf joined #perl6
14:42 masak ShimmerFairy: s/// without ~~ is pretty neat, though.
14:42 muraiki joined #perl6
14:42 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:43 dalek rakudo/multidim: 38fb1f7 | jnthn++ | src/core/Any.pm:
14:43 dalek rakudo/multidim: Fix a missing "is rw".
14:43 dalek rakudo/multidim: review: https://github.com/rakudo/rakudo/commit/38fb1f7c8c
14:43 dalek rakudo/multidim: 0c530d3 | jnthn++ | src/core/ (2 files):
14:43 dalek rakudo/multidim: Basic :shape(...) and *-POS multidim impl in Array
14:43 dalek rakudo/multidim:
14:43 dalek rakudo/multidim: The [...] indexer isn't updated yet to know about the new *-POS access
14:43 dalek rakudo/multidim: approach for multi-dim, so testing this out requires using AT-POS and
14:43 dalek rakudo/multidim: friends.
14:43 dalek rakudo/multidim: review: https://github.com/rakudo/rakudo/commit/0c530d39d4
14:43 ShimmerFairy masak: ~~ is almost the "regex match" operator to me, at times :P
14:43 masak ShimmerFairy: weird. sounds like you simultaneously over-remember and under-remember p5 :P
14:43 ShimmerFairy masak: I've never touched Perl 5 :P
14:44 dalek rakudo/socket-print-not-send: 98b3552 | hoelzro++ | src/core/IO/Socket.pm:
14:44 dalek rakudo/socket-print-not-send: Deprecate Socket.send in favor of Socket.print
14:44 dalek rakudo/socket-print-not-send:
14:44 dalek rakudo/socket-print-not-send: Users may confuse the send method (which is just a Str-friendly wrapper
14:44 dalek rakudo/socket-print-not-send: over write) with send(2), which is subtly different from write(2).  To
14:44 dalek rakudo/socket-print-not-send: avoid this confusion, and open up the possibility of a true send(2)
14:44 dalek rakudo/socket-print-not-send: analogue in the future, I think that the current send should be renamed
14:44 dalek rakudo/socket-print-not-send: to print (thanks to jnthn++ for the suggestion)
14:44 dalek rakudo/socket-print-not-send: review: https://github.com/rakudo/rakudo/commit/98b3552886
14:45 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.
14:45 ShimmerFairy 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:49 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/␤»
14:49 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 :)
14:51 PerlJam It's funny how two people can look at the same data and draw opposite conclusions.
14:51 PerlJam (clearly map is doing the wrong thing :)
14:52 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␤»
14:52 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
14:52 RabidGravy what does "Cannot call AUTOGEN(....)" mean?
14:53 lucasb m: my $re = { /\d/ }; $_ = 42; if $re { say 'yes' }
14:53 camelia rakudo-moar 27f88c: OUTPUT«yes␤»
14:53 lucasb Interesting that I didn't need to call $re() in that 'if', just mention it
14:53 ShimmerFairy m: my $re = { /\d/ }; $_ = "a"; if $re { say 'yes' }
14:54 camelia rakudo-moar 27f88c: OUTPUT«yes␤»
14:54 lucasb oh nevermind, my mistake
14:54 lucasb hehe :)
14:54 PerlJam m: my $non-re = { say "hi" };  if $re { say 'yes' }
14:54 camelia rakudo-moar 27f88c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nVfFBo3SDH␤Variable '$re' is not declared␤at /tmp/nVfFBo3SDH:1␤------> 3my $non-re = { say "hi" };  if 7⏏5$re { say 'yes' }␤»
14:54 PerlJam m: my $non-re = { say "hi" };  if $non-re { say 'yes' }
14:54 camelia rakudo-moar 27f88c: OUTPUT«yes␤»
14:54 PerlJam can't even type my own thoughts correctly
14:55 andreoss joined #perl6
14:56 llfourn is it possible to put a 5to6 warning? ...given that grep { /^\d/ } doesn't make sense?
14:57 * PerlJam thinks everyone is crazy now.
14:57 JimmyZ_ joined #perl6
14:57 PerlJam (either that or I'm crazy :)
14:58 masak llfourn: why wouldn't that make sense?
14:58 masak llfourn: oh, you mean without the colon?
14:58 llfourn No I think it does I thought that it had been decided that it didn't ( I missed a few messages )
14:58 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.)
14:59 masak ShimmerFairy: is the regex essential to that question?
15:00 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 #perl6
15:00 jnthn ShimmerFairy: I think you should just use the existing code-path for 1-arg forms
15:00 muraiki_ joined #perl6
15:00 jnthn ShimmerFairy: No reason we should make simple 1-arg grep more expensive
15:01 jnthn so if &callable.count == 1 { ...the orig thing... } else { ..the new thing... }
15:01 jnthn And that I guess magics away your new problem too :P
15:01 ShimmerFairy jnthn: OK. There was an explicit use of $_ in a grep that I saw break, so I would've had to anyway :)
15:01 ShimmerFairy masak: I guess because I never rely on implicit $_ (I always specify $_), I'm not very attached to things depending on it :)
15:03 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:04 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:06 FROGGS joined #perl6
15:07 masak ShimmerFairy: writing things as .foo instead of $obj.foo can be terribly convenient in some kinds of code.
15:07 masak ShimmerFairy: s/// without ~~ is part of that convenience package.
15:08 GgLaPoule joined #perl6
15:08 hobbified joined #perl6
15:08 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:10 ShimmerFairy masak: btw, did you notice my CoC draft while backlogging?
15:11 ShimmerFairy (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 #perl6
15:12 hoelzro ShimmerFairy++
15:12 ShimmerFairy moritz: https://gist.github.com/lue/6dfe2fec1579508dde30
15:12 PerlJam moritz: https://gist.github.com/lue/6dfe2fec1579508dde30
15:12 PerlJam oops, too slow
15:17 moritz somehow I get "The page isn't redirecting properly"
15:18 Ven joined #perl6
15:18 lsm-desktop joined #perl6
15:18 ShimmerFairy moritz: here's the raw version, see if this works: https://gist.githubusercontent.com/lue​/6dfe2fec1579508dde30/raw/d45cd7584676​dbffabc6a4190e7b790d3f89746b/coc.pod6
15:19 khw joined #perl6
15:21 moritz ShimmerFairy: I like it too
15:21 moritz but, there's always a but :-)
15:22 moritz 1) it's too long for my taste
15:23 moritz 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 moritz </critic>
15:24 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:25 [Coke] # TODO submix behavior still under discussion - assuming I should not unfudge these, then?
15:26 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
15:28 PerlJam ShimmerFairy: +1
15:30 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
15:30 japhb Thank you, brrt.
15:31 moritz japhb: where's your draft?
15:31 japhb moritz: https://gist.github.com/japhb/b76f7d3a816df4d65108
15:32 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.
15:32 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.
15:33 PerlJam japhb: yes, that would be very nice.
15:33 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
15:33 japhb PerlJam: Agree about the "playful mean", that can be a real problem.
15:34 ShimmerFairy moritz: updated the portion you mentioned so that it doesn't suggest that the attacked to walk away: https://gist.githubusercontent.com/lue​/6dfe2fec1579508dde30/raw/fc3a362ff1a2​d9ec675c9dd4f7b3f4d38d93a398/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.
15:34 raiph also, imo, the key is valuing equanimity and those who sustain it
15:34 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 #perl6
15:35 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 ShimmerFairy *S27 draft
15:35 moritz RabidGravy: writing a good package manager is surprisingly hard
15:35 RabidGravy I know
15:36 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/
15:36 ShimmerFairy japhb: sure, I could put it under SYNOPSIS in my draft for the time being if you prefer
15:37 japhb Yeah, actually, that WFM
15:37 PerlJam ShimmerFairy: I think you should go ahead and make a draft S27
15:39 PerlJam (though, whenever this makes it to "book" form, S27 really needs to be something closer to S01.5 or something
15:39 PerlJam )
15:39 masak PerlJam: agree fully about your "playing around" comment. this incident http://irclog.perlgeek.de/​perl6/2009-03-16#i_989917 remains my go-to example of that.
15:39 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.
15:40 llfourn ( trying to write some docs :) )
15:40 * japhb scans masak's example and winces
15:40 masak PerlJam: people might have a bad day; it's easy to assume meanness; language barriers make it worse; etc
15:41 PerlJam indeed.
15:43 nige joined #perl6
15:43 PerlJam I like that such an interaction could become a learning experience (not just for the participants)
15:43 dalek roast: 5425477 | coke++ | / (15 files):
15:43 dalek roast: reduce the scope of some fudges.
15:43 dalek roast: review: https://github.com/perl6/roast/commit/5425477851
15:44 PerlJam (though, like japhb, I too winced at first)
15:45 dalek specs: df43216 | ShimmerFairy++ | S27-perl-culture-draft.pod6:
15:45 dalek specs: Add draft of S27
15:45 dalek specs:
15:45 dalek specs: Initial contents by myself and japhb++ .
15:45 dalek specs: review: https://github.com/perl6/specs/commit/df43216c6a
15:45 ShimmerFairy By the way, I just noticed pod6-files . Is the tool mentioned therein just a temporary solution?
15:48 moritz ShimmerFairy: it's temporary if somebody replace it with something better
15:48 japhb Thank you ShimmerFairy++
15:48 ShimmerFairy moritz: yeah, I should really get back to the converter I was working on ages ago :)
15:50 ShimmerFairy no problem, japhb :)
15:50 brrt y does stage parse take so long these days?
15:51 brrt oh, no optimizations
15:52 * sjn likes ShimmerFairy's S27 proposal
15:53 sjn ShimmerFairy++ # codifying culture
15:53 nige joined #perl6
15:54 * masak wonders if "disarming" is a concrete enough phenomenon to be highlighted in that document
15:55 dalek rakudo/nom: bc01cae | ShimmerFairy++ | src/core/Any.pm:
15:55 dalek rakudo/nom: Allow blocks given to grep have multiple arguments.
15:55 dalek rakudo/nom:
15:55 dalek rakudo/nom: Fixes #71544
15:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bc01caeb4e
15:55 synbot6 Link:  https://rt.perl.org/rt3/Publ​ic/Bug/Display.html?id=71544
15:55 masak using humor to disarm trolls, I mean.
15:56 masak sometimes not taking ourselves all that seriously helps, too.
15:56 dalek roast: 3ddbccf | ShimmerFairy++ | S32-list/grep.t:
15:56 dalek roast: Unfudge test for #71544
15:56 dalek roast: review: https://github.com/perl6/roast/commit/3ddbccfc93
15:56 synbot6 Link:  https://rt.perl.org/rt3/Publ​ic/Bug/Display.html?id=71544
15:56 timotimo i'm not 100% on "our standard of behavior is awesome, if you are LTA, you'll be called out on it"
15:56 masak timotimo: oh, ugh. I see what you mean.
15:57 masak timotimo: that sounds like an impossible standard. :)
15:57 timotimo i do understand the intention behind it :)
15:57 ShimmerFairy masak: I do believe #71544 can be closed now :)
15:57 synbot6 Link:  https://rt.perl.org/rt3/Publ​ic/Bug/Display.html?id=71544
15:57 timotimo yes, indeed
15:57 lizmat joined #perl6
15:57 PerlJam ShimmerFairy: Are there tests for the multi-param grep/
15:57 PerlJam ?
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 :)
15:57 timotimo right
15:57 nys joined #perl6
15:57 ShimmerFairy PerlJam: there is one, which I just unfudged
15:58 PerlJam oh, I totalled missed that.
15:58 masak timotimo: maybe "...is tolerant; if you are LTT..."
15:58 lizmat good *, #perl6 from OSCON
15:58 masak hi, lizmat! \o
15:58 ShimmerFairy o/ lizmat
15:58 timotimo such an impossible standard invites the ability to throw out people selectively, because everybody potentially violites that standard
15:58 masak hi, OSCON!
15:59 lizmat T minus 3 for TheDamian's "Perl 6: Transparadigm Programming 101"
15:59 * masak briefly considers kicking timotimo for saying that :P
15:59 lizmat .oO( violites = senseless violins ? )
16:00 timotimo %)
16:00 colomon lizmat: where?  oscon?
16:00 colomon lizmat: nevermind, I see that
16:00 RabidGravy little violins, sold in packets in the supermarket
16:01 timotimo the violin players of the underground resistance force
16:01 timotimo the elite violites
16:01 * moritz wonders if those violin players are volatile
16:01 timotimo something the MicroSF/F twitter accound would tell a story about
16:01 rangerprice joined #perl6
16:02 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
16:02 tadzik eh
16:02 rangerprice hi
16:03 colomon We have an Audio::Encode::LameMP3?
16:03 timotimo RabidGravy: has been working on it
16:04 timotimo well, making it, really
16:04 tadzik RabidGravy: panda is going to change drastically soon
16:04 colomon OMG, smoker has finished three days in a row!!!!
16:04 tadzik for better or worse
16:04 * moritz hopes for better
16:04 masak in sickness and health
16:04 RabidGravy colomon, I put it in the ecosystem this morning
16:05 colomon \o/
16:05 colomon RabidGravy++
16:05 RabidGravy but I have a fear that it make not work properly when compiled for some reason
16:05 timotimo tadzik: whoa, dude. soon?
16:06 PerlJam tadzik: hopefully for better and not worse :)
16:08 RabidGravy tadzik, it is going bonkers reinstalling the same modules repeatedly on a rebootstrap
16:09 nige left #perl6
16:09 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:10 RabidGravy yeah, that's what I did
16:10 RabidGravy :)
16:10 tadzik RabidGravy: yeah, wonky revdep-rebuild :?
16:11 RabidGravy yep
16:13 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"
16:13 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:15 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:16 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
16:17 PerlJam ShimmerFairy: btw, consider using a parameterized role.  It cuts down on the code a bit.
16:18 ShimmerFairy I thought those were just for parameterizing types, so it didn't occur to me :)
16:18 yqt joined #perl6
16:21 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:24 japhb 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:25 ShimmerFairy m: multi foo() { say "OH HAI" }; multi foo(Int $a?) {}; multi foo(Str $a?) {}; foo  # RT #74900
16:25 synbot6 Link:  https://rt.perl.org/rt3/Publ​ic/Bug/Display.html?id=74900
16:25 camelia rakudo-moar bc01ca: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:()␤:(Int $a?)␤:(Str $a?)␤  in block <unit> at /tmp/UOU7YtguPC:1␤␤»
16:25 ShimmerFairy masak: do you still that foo() should be considered narrower, perchance? :)
16:25 japhb Thankfully, they say EQ can (and often does) rise without bound over one's life.
16:25 atroxaper joined #perl6
16:28 Hor|zon_ joined #perl6
16:33 b2gills ShimmerFairy: $S27 ~~ s/'Lost of times'/Lots of times/ ( I think 'A lot of the time' would be better though )
16:34 tinyblak joined #perl6
16:35 PerlJam S32/Containers:217
16:35 synbot6 Link: http://design.perl6.org/S3​2/Containers.html#line_217
16:36 PerlJam ShimmerFairy: that entry could use some language that talks about your updated grep
16:37 ShimmerFairy PerlJam: is Matcher supposed to name some kind of type?
16:38 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.
16:38 PerlJam (i.e. Matcher is NYI)
16:38 masak ShimmerFairy: `multi foo()` is more specific than `multi foo($something?)`, so it makes sense for it to be narrower.
16:39 masak 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)
16:39 RabidGravy anyone got a clue how I can debug this "Cannot invoke this object (REPR: Null, cs = 0)" malrkey?
16:40 RabidGravy it's beginning to annoy me
16:40 jaffa4 Can I make my own stream?
16:40 PerlJam weird ... this IRC window is the only connection outside my local network that is working now.
16:40 ShimmerFairy m: multi sub foo() { say "NO ARGS" }; multi sub foo(*@a) { say "MAYBE MANY ARGS" }; foo;
16:40 camelia rakudo-moar bc01ca: OUTPUT«NO ARGS␤»
16:40 masak jaffa4: "stream"?
16:40 ShimmerFairy masak: ^ you are correct
16:40 jaffa4 I would like to replace $*OUT
16:41 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.
16:41 masak jaffa4: oh yes, that's entirely possible.
16:41 masak jaffa4: just put some other object in $*OUT
16:41 masak jaffa4: and feel free to use `my` or `temp` as you see fit
16:42 jaffa4 what methods should have that object?
16:42 PerlJam flussence: I guess it's just new connections.
16:42 ugexe jaffa4: see IO::Capture::Simple
16:43 masak jaffa4: it's two methods, but I forgot their name. trial and error will get you there.
16:43 ugexe print and flush
16:43 flussence PerlJam: if I had to guess, it's probably a NAT router having a bad day then.
16:43 masak m: my $*OUT = role {}; say "OH HAI"
16:43 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 #perl6
16:43 masak hurh.
16:44 PerlJam flussence: luckily, it's close to lunch time for me, so it's a good excuse to leave :)
16:46 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:48 telex joined #perl6
16:49 [Coke] d~.
16:49 dalek perl6-roast-data: 52d52f1 | coke++ | / (9 files):
16:49 dalek perl6-roast-data: today (automated commit)
16:49 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/52d52f1594
16:50 dalek ecosystem: 290aac2 | jaffa4++ | META.list:
16:50 dalek ecosystem: Update META.list
16:50 dalek ecosystem:
16:50 dalek ecosystem: added log d
16:50 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/290aac29a0
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
16:51 RabidGravy though I'm easily distracted
16:52 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:53 dalek doc: 7541576 | (Nick Logan)++ | lib/Type/Scheduler.pod:
16:53 dalek doc: [typo] s/rew/rw/
16:53 dalek doc: review: https://github.com/perl6/doc/commit/7541576d1b
16:53 avuserow so your shoutcast work may end up very useful for that :)
16:54 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 ! *.*
16:55 rangerprice module*
16:55 tadzik speaking of coc: ┻━┻ ︵ヽ(`Д´)ノ︵ ┻━┻
16:55 tadzik huh, wrong paste
16:56 tadzik not the worst mispaste though, though it shows me from a different angle :)
16:56 tadzik anyway: http://todogroup.org/opencodeofconduct/
16:57 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 Hor|zon joined #perl6
16:58 jaffa4 Is there multithreaded support now?
16:58 tadzik oh :)
16:59 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 spider-mario joined #perl6
17:00 ShimmerFairy masak: wait, infix:<~~> is (supposed to be) chaining!? :)  https://rt.perl.org/Ticket/Display.html?id=81336
17:01 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)
17:01 yoleaux 10:54Z <jnthn> TimToady: Well, .map *is* iterating, of course... :) I'm guessing the answers to all these are related, anyways.
17:02 japhb TimToady: Do you have any opinion on the nascent S27 work yet?
17:04 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:05 TimToady japhb: haven't looked yet
17:05 TimToady rangerprice: we can fix that :)
17:05 RabidGravy right now I hate perl and I hate all the developers that work on it
17:05 TimToady we're trying to fix that too :)
17:06 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: http://irclog.perlgeek.de/p​erl6/2015-07-21#i_10928476
17:06 japhb (That's actually in the middle of the discussion yesterday.
17:06 japhb )
17:06 TimToady ShimmerFairy: an argument can be made for moving ~~ to Structural Infix
17:07 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)
17:09 TimToady in fact, ~~ was first put into chaining way back when we viewed it as a symmetrical operator
17:10 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
17:11 TimToady 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 :)
17:11 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
17:11 TimToady lemme run a spectest with it at Structural Infix and see if anything breaks in the test suite
17:13 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
17:14 TimToady ShimmerFairy: I'm intending to move it unless I see unexpected test fallout
17:14 RabidGravy yeah that works
17:14 jaffa4 m: if (2!=$a!=4) { say "h"; }
17:14 camelia rakudo-moar bc01ca: OUTPUT«5===SORRY!5=== Error while compiling /tmp/T3EI3u9L1f␤Variable '$a' is not declared␤at /tmp/T3EI3u9L1f:1␤------> 3if (2!=7⏏5$a!=4) { say "h"; }␤»
17:14 jaffa4 m: my $a = 2; if (2!=$a!=4) { say "h"; }
17:14 camelia rakudo-moar bc01ca: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/JQNzPM44Rp:1␤␤»
17:15 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:16 ShimmerFairy m: my $a = 2; if (2 != $a != 4) { say "h"; }
17:16 camelia rakudo-moar bc01ca: ( no output )
17:16 TimToady that would parse as $a == ($b ~~ $c) with this cahnge
17:16 TimToady just as $a == ($b cmp $c) does now
17:16 ShimmerFairy Huh, I wonder what kind of assignment op rakudo hopes != is without the spaces there
17:16 jaffa4 m: my $a = 2; if (3 != $a != 4) { say "h"; }
17:16 camelia rakudo-moar bc01ca: OUTPUT«h␤»
17:17 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:18 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
17:18 TimToady only private
17:19 ShimmerFairy m: my $a = 42; $a!=4; say $a
17:19 camelia rakudo-moar bc01ca: OUTPUT«4␤»
17:19 ShimmerFairy welp
17:19 TimToady or maybe not
17:20 TimToady m: my $a = 42; say $a!=4;
17:20 camelia rakudo-moar bc01ca: OUTPUT«False␤»
17:20 TimToady std: my $a = 42; say $a!=4;
17:20 camelia std 28329a7: OUTPUT«ok 00:00 138m␤»
17:20 TimToady hmm, I think assignments are supposed to be too fiddly to negate
17:21 ShimmerFairy m: my $a = 42; say $a!=0
17:21 camelia rakudo-moar bc01ca: OUTPUT«True␤»
17:21 TimToady in any case, it's an odd ambiguity
17:21 TimToady std: my $a = 42; say $a!+=0;
17:21 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⏏0;␤Parse failed␤FAILED 00:00 138m␤»
17:22 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⏏0;␤Parse failed␤FAILED 00:00 138m␤»
17:22 domidumont joined #perl6
17:22 TimToady curiouser and curiouser
17:23 ShimmerFairy There's a bug on this already, it seems: https://rt.perl.org/Ticket/Display.html?id=121108
17:23 TimToady std: my $a = 42; say $a!:=0;
17:23 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⏏0;␤Cannot negate := because list assignment operators are not iffy enough at /tmp/I6iA1kclsN line 1:␤--…»
17:23 * jnthn back for a bit
17:24 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 rakudo/nom: 52b6f29 | lizmat++ | src/core/QuantHash.pm:
17:24 dalek rakudo/nom: Make Set/Bag/Mix more hash-like wrt to .grep
17:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/52b6f29558
17:24 TimToady that's why [**] means that the official bounds of the array includes the leaves
17:25 brrt joined #perl6
17:25 brrt ok, i've thought about it over dinner, and i can see why alester was upset by masak's comment
17:26 brrt 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
17:26 TimToady we need both sets of semantics available
17:27 ShimmerFairy m: my $a = 42; say $a!+=0;
17:27 camelia rakudo-moar bc01ca: OUTPUT«False␤»
17:27 TimToady in the past I'd been thinking that .map was shallow, as apposed to .deepmap or .duckmap
17:27 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?
17:27 ShimmerFairy rakudo is apparently more consistent with it, at least :P
17:27 TimToady but I think of "shallow" as being the declared shape
17:27 brrt long time ago
17:28 TimToady not the top dimension
17:28 lizmat nwc10: basically no languages whatsoever...  :-(
17:28 nwc10 seems, no databases either
17:29 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
17:29 jnthn TimToady: And .unique and .pick are a whole interesting kettle of fish too; I guess they work on the leaves though...
17:30 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})
17:30 TimToady and the official declared shape is often the desired leafiness
17:31 jnthn ShimmerFairy: That case is shapeless so it's clear enough you get [1,2,3] and [4,5,6] :)
17:31 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 :)
17:31 jnthn Yeah
17:31 ShimmerFairy jnhtn: sure, though I was using that as a shortcut for an example shaped array :P
17:32 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: https://gist.github.com/per​lpilot/d1bda29d0928a4133a1e   I dunno if that is helpful or not, but I thought I'd share anyway
17:32 jnthn PerlJam: That will be fantastically expensive.
17:32 TimToady jnthn: like whether my @a[2;2] actually implies a .= new
17:33 TimToady or whether that can fall out of autoviv
17:33 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
17:34 jnthn Yeah, we'll have to treat those rather differently in the signature
17:34 jnthn I was going to compile that into a where clause
17:34 TimToady on @array[].shape I note that zen slices return self, not a list
17:34 jnthn That'd make it an MMD tie-breaker. I think it's to data-y to work out as an official type.
17:35 jnthn TimToady: That does @array{} return? :)
17:35 PerlJam ShimmerFairy: so ... perhaps my version is an example of what not to do :)
17:35 ShimmerFairy PerlJam: it's certainly the shinier example, and probably what you'd prefer if cost wasn't such a concern :)
17:36 jnthn TimToady: Uh, *What* :)
17:36 rindolf joined #perl6
17:37 TimToady I think the alternate indexing of arrays can fail for a zen slice
17:37 jnthn *nod*
17:38 jnthn I guess we pick a different method name for the hash-y shape...
17:38 TimToady AT-CUSTOM maybe
17:39 jnthn Oh, I didn't mean that, I meant to introspect it
17:40 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?
17:40 jnthn huh...is that even valid syntax? :)
17:40 TimToady hup
17:40 jnthn std: my %hash{Int}[2;2]
17:40 TimToady yup
17:40 camelia std 28329a7: OUTPUT«ok 00:01 139m␤»
17:40 jnthn urgh
17:41 jnthn That's a hash with Int keys where the values are shaped as [2;2], yes?
17:42 TimToady yes
17:42 jnthn I guess that won't work out too bad.
17:42 TimToady AoH/HoA are rather common in Perl-land
17:42 jnthn @array[2;2]{Str()} looks weird though :)
17:42 TimToady {Str()} is the default hash
17:42 jnthn *nod*
17:43 TimToady we just don't do it with Str() yet
17:43 TimToady (that I know of)
17:43 jnthn No, the coercion types thing came quite late to the party :)
17:43 TimToady that probably wants to get unified at some point
17:45 TimToady 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:46 jnthn Indeed...need to be a little careful on that.
17:46 jnthn Hmmm
17:46 Ven joined #perl6
17:46 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 TimToady (as p6)
17:47 jnthn The whole autovivifying whence thingy probably comes into this lot
17:49 TimToady praps, including the desire to optimize it away where possible
17:49 jnthn If we get that right we can
17:49 jnthn my @a[2;2]
17:49 jnthn Compile that to my @a := Array{ :shape(2;2) }
17:49 jnthn I've kinda hesitated on that whole thing though
17:50 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
17:50 PerlJam Is my @array[-->Some-Object] still meant to be?  (looking at S09 now)  If so, how does that play with multi-dim?
17:51 jnthn I figure if we want to implement it at all then it means we just give type objects a storage slot
17:51 jnthn Or maybe an invokable closure
17:51 jnthn But it's where to trap it
17:52 jnthn Since the WHENCE'd type object is meant to have the exact same type as the type object.
17:52 jnthn I can't see the "but WHENCE" desugar for it either really...
17:53 jnthn It feels more primitive than "just a role"
17:54 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 TimToady that would give a fast default of eager init
17:55 TimToady we'd like native shaped arrays to be fast, anyway
17:55 TimToady autoviv might be the wrong default for them
17:56 jnthn *nod*
17:56 jnthn Well, the way that
17:56 jnthn my @a;
17:57 jnthn 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:58 jnthn But we can't do that for shaped arrays since the shape can be late-bound.
17:58 jnthn None of this is going through any kind of official WHENCE mechanism like described in S12 though
17:59 RabidGravy https://gist.github.com/jonat​hanstowe/2d58157f05f100fca51d - 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.
18:00 jnthn But I still don't see it working out for arrays at all
18:01 jnthn 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.
18:02 brrt right
18:02 masak there are so many such discussions that go the other way, with the joker defending his joke.
18:02 masak which is totally not the point of jokes
18:03 jnthn I could imagine us deciding that Foo{...} lives, but only is given attention in certain contexts (basically, auto-viv related ones)
18:04 jnthn But yeah, this stuff is...fiddly
18:04 jnthn Guess this is why NSA was picked as one of the big 3 :P
18:04 TimToady ayup
18:05 masak jnthn: method calls, list assignment and commas are fiddly :P
18:05 masak oh, and ranges and conditionals, apparently
18:05 * brrt nod
18:05 brrt s
18:06 brrt it's easy to misunderstand one another on IRC
18:06 masak brrt: that's the most offensive thing I've ever heard!
18:06 masak :P
18:06 jnthn masak: smartass :P
18:06 brrt :-P
18:06 brrt bbl
18:07 masak oh dear, I chased him away... D:
18:07 tadzik oh, deer! I chased him away...
18:09 * masak .oO( no ay ay, deer! )
18:09 RabidGravy poor rudolf
18:09 TimToady ode ear, eye chaste him aweigh
18:09 jnthn D'oh! Oh deer! A fleeing dear...
18:09 masak RabidGravy: time to rein in the jokes :P
18:09 TimToady ode ear, eye chaste hymn aweigh
18:09 RabidGravy what noise do reindeer make anyway?
18:09 TimToady (I shoulda said)
18:10 leaderprice joined #perl6
18:10 TimToady jingle, jingle
18:10 tony-o they make sneering noises at rudolph
18:10 RabidGravy bstards
18:10 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...
18:10 leaderprice rangerprice: no one loves you
18:10 masak TimToady: I don't suppose "anguish languish" will be a new concept to you? :)
18:10 tony-o post santa they started jingling
18:10 rangerprice seriously
18:11 rangerprice ahahahahahaaa
18:11 TimToady jnthn: that's kinda why we had || special sugar for subscripts
18:11 masak rangerprice: oh, first time? wonderful. :)
18:11 masak rangerprice: this happens regularly here...
18:11 TimToady isn't clear that LoL is the best way to handle that
18:11 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.
18:12 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
18:12 rangerprice yes i understand masak
18:12 TimToady cause not all our optimizations want to be JIT
18:12 RabidGravy it has come to my attention that the:
18:12 RabidGravy m: multi trait_mod:<is>(Routine $r, :$foo!) { $r does Foo; }; class Bar { method boom() is foo {}; };
18:12 camelia rakudo-moar 52b6f2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/b12UAWJrQF␤Cannot invoke this object (REPR: Null, cs = 0)␤at /tmp/b12UAWJrQF:1␤»
18:13 leaderprice So leaderprice is actually… an international enterprise ? Damn it.
18:13 zakharyas joined #perl6
18:13 RabidGravy still does that,
18:13 jnthn RabidGravy: Is that one RT'd?
18:13 masak leaderprice: what brings you to #perl6, dear sir or madam?
18:14 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 atroxaper joined #perl6
18:14 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
18:14 masak rangerprice: depends if you're in the market for a ranger or a leader :P
18:15 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!"
18:15 masak leaderprice: it's too late. we've already made rangerprice one of us.
18:15 skarn joined #perl6
18:15 masak leaderprice: one of us! one of us! one of us!
18:16 rangerprice masak: yeah !!!!
18:16 * masak gets something wild in his look
18:16 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...
18:16 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.
18:16 jnthn TimToady: But I don't want to lose the assignment opt either :)
18:17 masak leaderprice: this is not something I have knowledge of, sorry.
18:17 rangerprice Who you are leaderprice ? :hap:
18:18 leaderprice masak: basically this http://sournoishack.com/upload​s/1036112996Jul_21_442x104.png on some French forum. _Very_ often.
18:18 leaderprice rangerprice: I am your shadow for you're not freed of your sins.
18:18 PerlJam that doesn't sound like evangelization to me.
18:18 rangerprice Do you are on the forum leaderprice ?
18:19 * masak suspects that leaderprice indeed does are on the forum
18:19 amurf joined #perl6
18:19 leaderprice Well, I could have screenshot his trials at getting people to come here, and his praises of Perl.
18:19 leaderprice I do are on the forum.
18:19 leaderprice Now if you excuse me, I'll have to leave.
18:19 rangerprice okay
18:19 leaderprice It was fun do areing with you.
18:19 rangerprice good bye
18:19 rangerprice my friend
18:20 PerlJam rangerprice: Are you an over-zealous evangelist?
18:20 masak leaderprice: sorry about your forum suffering.
18:21 rangerprice hum
18:21 masak rangerprice: you're not inconveniencing those poor forum users, are you?
18:22 rangerprice No i'm just a fanatic of Perl
18:23 rangerprice PerlJam: Yes i am an over-zealous of Perl 6
18:24 xinming joined #perl6
18:25 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:26 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/n​qp/lib/Perl6/BOOTSTRAP.moarvm::10)␤ from src/gen/m-main.nqp:40  (/home/camelia/rakudo-inst-1/share/perl6/run…»
18:26 rangerprice masak: Oh no, i talk about Perl and this IRC only on a forum dedicated to general discussing
18:27 jnthn raiph: Needs a FETCH/STORE providing; seems we want better error checking for that.
18:27 RabidGravy oh deary, deary me
18:28 RabidGravy 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!) ....   :)
18:29 masak rangerprice: I don't want to have to explain your behavior to leaderprice again, ok? :)
18:29 masak rangerprice: you're a grown lambdacamel, you should be able to make grown-up judgement calls...
18:30 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 PerlJam masak: also keep in mind that one data point does not a trend make  :)
18:30 [TuxCM] joined #perl6
18:31 masak oh, absolutely.
18:33 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.
18:33 masak 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.
18:34 masak 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 )
18:35 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:36 masak touché :)
18:36 masak er, I mean, how dare you!
18:36 rangerprice ahahahaha
18:36 masak whoever you are
18:36 TimToady those of us on the autistic spectrum are often surprised when our words don't do what they were supposed to :)
18:36 masak "when I use a word, it means exactly what I choose it to mean -- no more, no less"
18:37 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? :-)
18:37 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 :)
18:37 RabidGravy just not when it's compiled
18:38 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
18:38 TimToady I believe Humpty Dumpty was on first.
18:38 RabidGravy who's on first
18:39 TimToady HD was on first, but then he was off.
18:39 PerlJam puns and free-association ... it's what #perl6 is all about
18:40 masak it only looks like free-association to the untrained eye. #perl6 is really a substrate for quantum computations.
18:41 masak 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:43 PerlJam RabidGravy: I sometimes boggle that Jimi Hendrix died 45 years ago ;)
18:43 RabidGravy it wasn't me - I was only seven!
18:43 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
18:44 TimToady er, 6:15
18:44 RabidGravy so you can only measure one dimension at any given time?
18:44 TimToady it's a 3-D quantum computer
18:44 masak :P
18:45 masak imagine an entanglement cluster of those!
18:45 ShimmerFairy @ark[300;50;30]
18:45 TimToady and people wonder how they could get all those animals on board...
18:45 RabidGravy Galifreans involved
18:46 ShimmerFairy .oO(Clearly the ark was actually a Klein bottle!)
18:46 TimToady you have inside knowledge of that, eh?
18:47 RabidGravy o/ bottle of klein, fruit of the vine .. o/
18:47 ShimmerFairy If I do, then technically everyone does.
18:48 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
18:48 jnthn ooh, yeah, food
18:49 * jnthn stops hacking up slicing and goes to cook
18:49 rindolf joined #perl6
18:49 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
18:49 raiph jnthn: will do, enjoy nom
18:55 jnthn Well, gotta cook it first :)
18:55 jnthn l'oil is heating :)
18:56 RabidGravy jnthn stuck that one in as https://rt.perl.org/Ticket/Display.html?id=125662
19:00 domidumont joined #perl6
19:01 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.
19:01 raiph arlier today)
19:01 domidumont joined #perl6
19:04 FROGGS raiph: if you don't get a line number, you usually pass --ll-exception to your perl6 invocation
19:05 Hor|zon joined #perl6
19:06 RabidGravy FROGGS, with those surprising "Cannot invoke ..."  it almost always points into the core
19:06 lucasb m: int.()
19:06 camelia rakudo-moar 52b6f2: OUTPUT«Cannot invoke this object (REPR: P6int, cs = 0)␤  in block <unit> at /tmp/RX4PeuVfmY:1␤␤»
19:07 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/CVpfvvBblY␤Cannot invoke this object (REPR: Null, cs = 0)␤at /tmp/CVpfvvBblY:1␤»
19:07 RabidGravy yeah the REPR: Null - always in the cire
19:07 lucasb --ll-exception shows those <unit>, <unit-outer> things, so I wouldn't know where to look at those. I guess I can't
19:08 dalek rakudo/nom: dac0167 | PerlJam++ | src/core/Temporal.pm:
19:08 dalek rakudo/nom: Add comparison ops for DateTime (RT#125555)
19:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dac0167a17
19:08 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=125555
19:08 dalek roast: 29f336c | PerlJam++ | S32-temporal/DateTime.t:
19:08 dalek roast: Test DateTime comparison ops (RT#125555)
19:08 dalek roast: review: https://github.com/perl6/roast/commit/29f336cd0d
19:08 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=125555
19:09 raiph (RabidGravy: REPR: anything)
19:09 FROGGS RabidGravy: yes, and when it points to the core you know where to start hunting down that bug
19:10 FROGGS raiph: well, this example is kinda understandable me thinks
19:14 masak PerlJam++ # DateTime comparison ops
19:15 masak PerlJam: is != missing from that list...?
19:15 * [Coke] shares some pain:             <cfset currentDate = DateAdd("d", 1, currentDate)>
19:17 FROGGS [Coke]: that still better than <cfset currentDate = DateAdd("h", 24, currentDate)> :o)
19:17 FROGGS that's*
19:17 FROGGS ... or adding 86400 seconds
19:18 * 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 :
19:18 ShimmerFairy m: my $a = 1; say $a!=0; say $a;
19:18 camelia rakudo-moar 52b6f2: OUTPUT«True␤0␤»
19:19 zmikund joined #perl6
19:19 FROGGS - QAST::Op(call &METAOP_NEGATE)
19:19 FROGGS - QAST::Var(lexical &infix:<=> :decl())
19:19 FROGGS :o)
19:20 meisl joined #perl6
19:21 masak ShimmerFairy: yeah, I saw it flash by earlier.
19:21 masak ShimmerFairy: something weird with parsing, I bet.
19:21 ShimmerFairy I'd love to know what you could use negated assignment for, before it gets fixed :P
19:22 flussence quantum physics?
19:22 PerlJam masak: oops, != is missing.
19:22 masak PerlJam++ # got all the others :)
19:23 * ShimmerFairy imagines a weird interpretation where $a!=1 is the same as $a=none(1)  :P
19:24 PerlJam ShimmerFairy: careful saying "weird interpretation" ... next thing you know, it'll be canon  ;)
19:24 dalek rakudo/nom: e41624e | PerlJam++ | src/core/Temporal.pm:
19:24 dalek rakudo/nom: Add missing != DateTime comparison op
19:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e41624e41d
19:25 dalek roast: 7eabf40 | PerlJam++ | S32-temporal/DateTime.t:
19:25 dalek roast: Add test for DateTime !=
19:25 dalek roast: review: https://github.com/perl6/roast/commit/7eabf40763
19:26 ShimmerFairy I wonder if there's ever been a debate about an infix operator for making none() junctions.
19:27 masak m: say 1 ^ 2 ^ 3
19:27 camelia rakudo-moar 52b6f2: OUTPUT«one(1, 2, 3)␤»
19:27 dalek roast: a673b4f | PerlJam++ | S32-temporal/DateTime.t:
19:27 dalek roast: update plan
19:27 dalek roast: review: https://github.com/perl6/roast/commit/a673b4f288
19:28 PerlJam masak: he didn't ask if it existed, just if there was a debate about it  :)
19:29 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
19:29 masak PerlJam: right. :) I just forgot what it was infix:<^> did ;)
19:29 masak ShimmerFairy: oh, I guess infix:<!> would be the name of that op :)
19:30 yqt joined #perl6
19:30 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)
19:30 masak ShimmerFairy: and it's not really a collision with the infix-prefix ! metaop, since nothing comes after it...
19:31 masak ShimmerFairy: to be honest, I never even use infix:<^>
19:31 masak ShimmerFairy: I do use infix:<&> and infix:<|> occasionally
19:32 masak 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:33 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/qSFuZujLTS␤Negation metaoperator not followed by valid infix␤at /tmp/qSFuZujLTS:1␤------> 3on.new(@values, :type<none>); }; say 1 !7⏏5 2 ! 3  # boo :<␤    expecting any of:␤        infix␤     …»
19:33 masak heh, yeah. you're getting shadowed.
19:33 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
19:34 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)␤»
19:34 masak PerlJam: for some reason, that sounds like the mumblings of a raving character in an animated cartoon.
19:34 rindolf joined #perl6
19:34 ShimmerFairy masak: but then choosing a non-clashing symbol produces something not quite right.
19:34 ShimmerFairy (which is the second issue)
19:35 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:36 PerlJam masak: makes me think of Pinky and the Brain a little bit myself :)
19:37 espadrine joined #perl6
19:37 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
19:37 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=125663
19:37 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/n​qp/lib/Perl6/BOOTSTRAP.moarvm::10)␤ from src/gen/m-main.nqp:40  (/home/camelia/rakudo-inst-1/share/perl6/run…»
19:37 ShimmerFairy PerlJam: just seems weird to have left out none() from the infix party, is all :)
19:39 silug_ joined #perl6
19:39 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?
19:39 FROGGS I dont think so
19:40 lucasb The real reason problems don't get solved is because of lack of punctuation marks in ASCII :)
19:40 FROGGS :P
19:41 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: http://blogs.perl.org/users/flavio_s_glock/2015/0​7/a-perl5-to-java-compiler---first-benchmark.html
19:41 nwc10 curiously, MoarVM seems to be a factor of 2.77 faster than JVM
19:41 nwc10 but MoarVM is a factor of 7.4 *slower* than Perl 5
19:41 ShimmerFairy masak: we should leave out either one or none. Two is just too much :P
19:42 PerlJam ShimmerFairy: leaving out both one and none is balance!  Two in (any, all),  and two out (one, none)
19:43 ShimmerFairy It's an all or none choice as far as I'm concerned :P
19:46 espadrine_ joined #perl6
19:48 masak I see what you did there
19:48 TEttinger joined #perl6
19:51 bin_005 joined #perl6
19:52 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:53 hoelzro a/win1
19:53 hoelzro oops
19:53 masak meisl: that's a good point.
19:54 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 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
19:59 meisl ...but as far as gut feeling for "symmetry", or better "what to expect" goes - I'm kinda with ShimmerFairy ...I think
20:02 zakharyas joined #perl6
20:03 lizmat joined #perl6
20:06 meisl lucasb: 'many' would be 'at-least-two'?
20:06 brrt joined #perl6
20:06 Hor|zon joined #perl6
20:07 lucasb meisl: yes, but I was half joking :) I guess many can be expressed as any() + not one()
20:07 lucasb 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
20:08 meisl lucasb: was about saying this :)
20:08 brrt a-few()
20:08 lucasb yeah, some() is a good name too :)
20:09 meisl gimme-some-fair-amount-but-not-too-few
20:09 * PerlJam feels like taking an afternoon nap today
20:09 * moritz throws in the scottish "wee"
20:10 vendethiel joined #perl6
20:10 meisl ...aka DWIM
20:13 brrt masak: was walking :-)
20:15 meisl lucasb: (seriously now) let's push that a bit further - can we likewise derive an imaged "exactly-two"? (really, not joking)
20:16 masak brrt: you're back! :D
20:16 brrt of course :-)
20:16 brrt hmm, i have a question for you to ponder
20:17 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:18 brrt regarding communities
20:18 meisl lucasb: I'm pretty sure we cannot (derive "exactly-two")
20:19 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 brrt developers belonging to said minority group found out and requested the developer be removed from the project
20:20 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'
20:20 brrt right
20:20 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
20:20 lucasb *was
20:21 brrt (so i guess comments about ruby community misogyny are not entirely misplaced :-(..)
20:21 brrt anyway... how should a decent community solve such a thing?
20:21 lizmat joined #perl6
20:22 brrt \o lizmat
20:23 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
20:24 meisl lucasb: idk?
20:24 lucasb idk = i don't know
20:25 meisl oh... "exactly-0" = "none" = "all(not ...)"
20:26 meisl ..."not (all (not...))" = "exists"
20:27 meisl (= "at-least-one") - see?
20:27 mohij_mobile joined #perl6
20:32 brrt not all not is any
20:32 brrt yay, another use for syllogisms
20:33 meisl brrt: sorry, said "exists" but meant "any"
20:33 brrt :-)
20:33 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.
20:33 brrt hmmm
20:33 meisl some are even used to say "some" for "any" or "exists", you know
20:34 [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
20:34 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
20:34 vendethiel (github's new "code of conduct" seems a bit... "naive" and has been... criticized by some people already)
20:35 [Coke] if the dev stuck by what they said, I'd expect this community to err on the side of removing their privs.
20:36 brrt that's not what the opal community did, though
20:36 [Coke] we ain't them.
20:37 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 meisl (I think :)
20:37 [Coke] are we talking about exactly-N in terms of junctins?
20:37 meisl yes
20:38 [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
20:38 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.
20:39 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"
20:41 ShimmerFairy meisl: here it is :)    https://github.com/perl6/specs/blob​/master/S27-perl-culture-draft.pod6
20:42 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 brrt oh, yes, i'm going to be incredibly pedantic about that document, which i support, by the way
20:43 brrt the second item in the top list 'we don't discriminate ... kind and positive member of our community'
20:43 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)
20:44 brrt we may assume that anyone can be a kind and positive member, but for some people this is virtually impossible
20:44 brrt that is sad, i think
20:44 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
20:45 brrt 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
20:45 brrt anyway, i'm afk for now
20:45 brrt see you :-)
20:46 masak meisl: you're right; they're quite different.
20:46 masak oh no, I scared brrt away! D:
20:46 meisl masak: hey, I was planning to bother him as well...
20:47 masak meisl: he can take ∃! botherer...
20:47 pmurias joined #perl6
20:47 masak pmurias! \o/
20:48 pmurias hi
20:48 vendethiel o/
20:48 timotimo o/
20:50 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?
20:51 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
20:52 masak meisl: if perf was an issue, I would loop while keeping a variable, and break as soon as it > 2
20:52 masak pmurias: that's a really good question.
20:53 masak I second pmurias++' question. :)
20:53 RabidGravy I'm sre I've done an "any(...) && (something else)" to get a certain number
20:53 meisl masak: I don't know how to "grep brrt" for botherer-cability, so I keep trying your 2nd approach :)
20:53 lizmat joined #perl6
20:54 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
20:55 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
20:55 yoleaux jnthn: I'll pass your message to raiph.
20:58 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 `∃`?
20:59 meisl lucasb: if so, sorry for my saying "nono, ..."
21:00 jnthn masak: There's a hackathon *scheduled* *at* SPW :P
21:00 jnthn masak: Aren't you coming? :P
21:01 masak I... guess I am... :)
21:01 * masak should pay more attention to schedules.
21:01 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())
21:02 meisl lucasb: as for P6 - yes. in general - no, not two but *infinitely* many (that's where I'm trying to get to)
21:04 lucasb meisl: yes, I understand what you're saying :)
21:05 inokenty joined #perl6
21:05 meisl lucasb: cool :) let's say `∃!` is just shorthand for `∃!1`, so `∃!2` means "exactly-two" and so on
21:07 meisl lucasb: now obviously `∃!0` is NOT the same as `∃` but rather "exactly-zero" aka "none", as above
21:10 meisl lucasb: now let me ask: "but isnt't `∃` a 'special-cased-shorthand' just like `∃!` was?"
21:12 masak 'night, #perl6
21:12 meisl g'nite, masak
21:13 jnthn 'night, masak
21:14 lucasb meisl: ok, I can see that as special case for some imaginary exists() thing, if that's what you are saying
21:16 meisl lucasb: how about taking `∃` as short for (the imagined syntax) `∃1`, meaning "at-least-one"?
21:18 meisl lucasb: (you'll tell me if my style of asking "stupid questions" is annoying you, aren't you?)
21:19 Begi joined #perl6
21:19 lucasb meisl: It's ok. :) I just don't know where you are trying to get at
21:20 meisl lucasb: thx :) so: what'd `∃0` mean?
21:20 Begi Hey ! What's the easiest way to get data from a JSON file ?
21:20 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 )
21:20 lucasb meisl: it means none() to me
21:21 meisl lucasb: but wasn't that `∃!0` (*with* a bang) already?
21:22 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?
21:24 Begi jnthn yeah. I'm watching your slides 'Exploring Perl 6 Through Its Modules'. So, should I create my own grammar ?
21:25 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
21:26 jnthn Begi: You can find it (and loads of other modules) at http://modules.perl6.org/
21:27 meisl lucasb: (put in 1 for the 0, yielding `∃x.p(x)`, then try to transfer back to the 1-case)
21:29 meisl 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.
21:30 Begi jnthn : Ok thanks. I think it will works now :)
21:31 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 #perl6
21:32 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:34 meisl 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:35 meisl lucasb: so let me just say it: `∃0` is - nothing but "all(not ...)". Read it as "at-least-zero such that not ..."
21:41 raiph joined #perl6
21:49 atroxaper joined #perl6
21:50 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:51 meisl lucasb: hmm, hmm. not so sure myself now... sorry. let's have a break and think it over :)
21:52 TEttinger joined #perl6
21:55 Hor|zon joined #perl6
21:57 amurf joined #perl6
21:59 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.
22:00 jnthn RabidGravy: There's some in RT; I started digging into one of them last night...
22:01 jnthn (And fixed another nasty one a week or two back...)
22:01 jnthn Time for some rest &
22:01 RabidGravy cool
22:01 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:03 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 xinming_ joined #perl6
22:08 dha joined #perl6
22:10 bartolin joined #perl6
22:11 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:13 zacts joined #perl6
22:15 * 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:18 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 xnrand joined #perl6
22:18 dha I'm currently making a list of possibilities for this document, so I can figure out how best to structure it.
22:19 pRiVi joined #perl6
22:19 dha If you have any ideas/comments, that would be most helpful and appreciated.
22:19 dha Said list is at https://github.com/dha/perl5-to-perl6-do​cs/blob/master/SubjectsForEssentials.txt
22:21 PerlJam dha: sigil invariance is essential, but I didn't see it in the list
22:23 dha Yes!
22:24 dha It's now on the list. Thanks!
22:24 broquaint joined #perl6
22:24 dha That's EXACTLY the kind of input I need.
22:24 dha PerlJam++
22:24 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.
22:25 japhb 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:26 japhb (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:28 dha Yes. Excellent. thanks.
22:35 Exodist joined #perl6
22:36 felher joined #perl6
22:41 raiph joined #perl6
22:49 skids joined #perl6
22:50 lizmat joined #perl6
22:55 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.
23:01 khw joined #perl6
23:02 vendethiel joined #perl6
23:04 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:05 TimToady 1, but hopefully we also get enough info out of the lexer to not bother rematching things that don't need capturing
23:24 amurf joined #perl6
23:32 japhb Gotcha
23:34 dha joined #perl6
23:44 Hor|zon joined #perl6
23:51 mr-foobar joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo