»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
00:01 [Sno] left 00:11 aborazmeh joined, aborazmeh left, aborazmeh joined 00:12 mowcat left 00:14 timeless_ is now known as timeless 00:15 timeless left, timeless joined 00:17 aborazmeh left
guifa is blind. 00:34
Where is the .first() for Lists in rakudo source? I checked under Any.pm6 and List.pm6 and it’s not there
timotimo Any-Iterable-Methods perhaps?
guifa Ah, yup there it is. 00:38
I’m going to leave that on my to-do to add an $pos bit, matching Str.index() 00:40
01:16 MasterDuke left 01:20 Sgeo_ joined 01:24 Sgeo left 01:28 lucasb left 01:33 nepugia left 01:42 zakharyas joined 02:42 evalable6 left 02:47 evalable6 joined 03:47 evalable6 left 03:51 evalable6 joined 04:05 Ekho left 04:34 vike left 04:40 zakharyas left 04:41 zakharyas joined 04:42 vike joined 05:14 sauvin joined 05:53 xinming_ joined 05:56 xinming left 06:01 [Sno] joined 06:18 ravenousmoose joined 06:20 ravenousmoose left, ravenousmoose joined 06:41 sena_kun joined 06:42 holyghost left 06:43 sena_kun left
masak guifa: "teach a person how to fish" answer: `cd rakudo; git grep 'method first'` 06:56
guifa: if you add $pos, remember to also update the documentation -- kthx ;) 06:57
07:04 sena_kun joined, sena_kun left 07:07 aborazmeh joined, aborazmeh left, aborazmeh joined 07:11 rindolf joined 07:30 Ekho joined, nepugia joined 07:35 aborazmeh left 07:36 Manifest0 joined 07:39 reach_satori left 07:40 dakkar joined
Geth doc: d6f7e8e072 | (JJ Merelo)++ | doc/HomePage.pod6
Adds link to Chinese translation from front page, closes #2903
08:06
08:11 |Sno| joined 08:14 [Sno] left 08:27 sena_kun joined 08:30 domidumont joined 08:52 antoniogamiz joined 08:57 pecastro joined 08:59 dumarchie joined
dumarchie Hi there. I have a question about the intended and actual behavior of class Promise. 09:02
I can change the status of a Promise from Kept to Broken and vice versa. Is that intended behavior?
jnthn How? 09:03
m: my $p = Promise.new; $p.keep(1); $p.break("x")
camelia Access denied to keep/break this Promise; already vowed
in block <unit> at <tmp> line 1
09:04
dumarchie my $p = Promise.new; my $v = $p.vow; $v.keep(1); $v.break(2);
jnthn Ah, if you obtain the vow
Anyway, no, that's absolutely not something you should be doing. 09:05
09:05 pmurias joined
dumarchie Ehm, not something I should be doing, or not something that should be possible? 09:05
jnthn I'd argue that a future version of the spec should explicitly forbid it; for now it's undefined behavior. 09:06
09:06 cpup left
jnthn It costs something to enforce, but probably not much. 09:07
dumarchie I can try and make it impossible in the implementation.
jnthn That'd be nice. Also, an addition to the spectests repository so it's specified behavior would be good, if you've time/interest :) 09:08
dumarchie Is throwing an exception from a Lock.protect block okay?
jnthn Yes
It will release the lock
(protect uses LEAVE to make sure of that)
dumarchie Okay, I'll give it a try later today.
jnthn Nice, thanks. 09:15
dumarchie I'm not sure if an X::Promise::Vowed exception is appropriate, given the current documentation. 09:17
09:18 cpup joined
dumarchie doc.perl6.org/type/X::Promise::Vowed 09:18
Maybe introduce a new exception type X::Promise::Final ? 09:19
09:24 giraffe left
jnthn Hmm...not sure about final... X::Promise::Kept is kind of an option, though it's a bit odd in the broken case 09:33
X::Promise::Status could be reasonable as in "it's in the wrong status to perform this operation" 09:34
dumarchie I came up with "final" because it should only be possible to transition a promise from an initial Planned state to a final Kept or Broken state. 09:38
...and it's a bit shorter than X::Promise::IllegalTransition 09:40
09:41 pat_js joined 09:46 reach_satori joined, zakharyas left
dumarchie Okay, how about X::Promise::Vow::Exercised ? 09:52
...because it's about a Promise::Vow, which is documented as a object holding authority. 09:53
09:54 pilne left 09:59 reach_satori left 10:02 antoniogamiz left 10:04 Black_Ribbon left 10:06 k0Le joined 10:21 scimon joined
jnthn IllegalTransition is probably the clearest. I don't know that we need to go for shrot here. 10:22
10:28 pecastro left 10:32 ravenousmoose left, ravenousmoose joined 10:36 pecastro joined 10:46 Xliff joined 10:49 pecastro left
dumarchie Okay, X::Promise::IllegalTransition it will be. With a $.promise attribute and message "Illegal attempt to keep/break this Promise (status: $!status)". 10:50
Shall I create an issue for the record?
In github.com/rakudo/rakudo/issues I mean ? 10:53
jnthn Yes, please
Xliff \o
jnthn: How was Riga? 10:54
Have you had any time to look at: github.com/jnthn/p6-io-socket-asyn.../issues/44
11:01 abraxxa left 11:06 abraxxa joined 11:15 pat_js left 11:26 pat_js joined 11:48 pmurias left 11:59 abraxxa left 12:02 dumarchie left 12:04 ravenousmoose left 12:05 ravenousmoose joined 12:08 pecastro joined 12:10 robertle joined 12:11 lucasb joined
AlexDaniel she is adorable: imgur.com/a/5uc5R23 12:14
jnthn Xliff: Well, my course and talks seemed to go alright in Riga, but I also had a cold, which made it rather tiring, and I still barely feel I've recovered from it :) 12:21
Xliff: Didn't have time yet, alas 12:22
AlexDaniel jnthn: incorrect 12:24
jnthn: your keynote was amazing, not just alright :)
Xliff jnthn: Any recordings?
jnthn: And I hope you get over your code.
I have another potential MoarVM issue that will go up, soon.
El_Che Xliff: www.youtube.com/user/ShadowcatSystems/video on top
Xliff I keep putting it of....(hmmm) 12:25
AlexDaniel keynote: youtu.be/tenl6JEum5k?t=2748
ah, actually starts at youtu.be/tenl6JEum5k?t=2899 12:26
jnthn Xliff: I'm not sure I'll ever get over some of my code, but the cold hopefully ;) 12:27
AlexDaniel :D 12:28
jnthn
.oO( deopt.c /o\ )
12:29
12:30 pmurias joined 12:43 dumarchie joined, pmurias left 12:45 pmurias joined
Xliff jnthn: LOL! 13:01
I'm watching your talk ATM. I agree with AlexDaniel. And yes... s/code/cold/ -- Although your response was priceless. 13:02
And now I am encouraged to scour deopt.c for blackmail material.
:D
masak .oO( in this house, we don't scare our kids with the Bogeyman, but we _do_ scare them with deopt.c ) :P 13:11
tbrowder hi #perl6 13:17
13:17 dumarchie left, nepugia left 13:18 nepugia joined, nepugia left
tbrowder since python is so popular, and apparentl so rigid (only one way to do it), has anyone worked on a py2p6 translator? 13:19
sena_kun we do have a github.com/niner/Inline-Python 13:20
writing a translator is most likely not a very awesome idea 13:21
13:23 nepugia joined
tbrowder ah, thnx, that should help. i have been working on google apis and they show python code for most examples. some apis show raw rest examples, but not always. being able to python will help a lot. 13:24
note we do have the p6 module for Oauth2! 13:25
@nine's inlinep5 has served me well! 13:26
13:30 nepugia left 13:34 ravenousmoose left 13:35 ravenousmoose joined 13:37 pecastro left 13:42 pecastro joined
guifa masak++ and noted on documentation. I’m going to do some massive documentation work as soon as I’m done with the dissertation. Until then @sad-faces.».say 13:44
13:44 MilkmanDan left, MilkmanDan joined
masak jnthn: I looked in deopt.c and it was much cleaner than you gave me reason to expect :D 13:53
14:04 rupert160 joined 14:08 pecastro left 14:09 rupert160 left 14:10 pecastro joined 14:11 aborazmeh joined, aborazmeh left, aborazmeh joined 14:15 pecastro left 14:16 pecastro joined
Xliff tbrowder: I have been transcoding python in my head for a while. What Google APIs are you working on? 14:17
(want help?)
m: my @a = ('a' ... 's'); @a.»say 14:18
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing dot on method call
at <tmp>:1
------> 3my @a = ('a' ... 's'); @a.»7⏏5say
expecting any of:
postfix
Xliff m: my @a = ('a' ... 's'); @a».say
camelia a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
14:19 aborazmeh left 14:24 pecastro left
tbrowder Xliff: gmail at the moment. i have maps working fine (i lost service for a while when they closed out their original api). i would like to be able to manage my gmail contacts via the api. 14:28
my maps code is still p5 (but transcoding to p6 is on my todo list). my gmail code is p6, as will be any contacts code. 14:29
14:31 pmurias left 14:32 scimon left, ravenousmoose left 14:35 dakkar left, dakkar joined 14:56 scimon joined 15:02 scimon left 15:08 ravenousmoose joined 15:12 a3f left 15:16 Gurra joined 15:18 Gurra left, p_gurra joined 15:19 a3f joined
p_gurra how do i express the p5 idiom "use lib '.';" 15:19
tadzik how about `use lib '.';`? :) 15:21
timotimo is that relative to the source file in both languages? 15:22
p_gurra :-) i've tried, but the thing i get is "'use lib' may not be pre-compiled"
Yes
timotimo what problem are you trying to solve with "use lib '.'" right now? 15:23
p_gurra i have pm6 file that try to use another pm6 file 15:24
... in the same directory
timotimo so it'd be too much effort to set up a META6 and everything?
Grinnz it is relative to cwd in Perl 5, which is why it's discouraged 15:25
p_gurra ehhhh ... for me anyway ...
i've just stared my p6 journey ...
Grinnz see metacpan.org/pod/lib::relative
timotimo how's your setup look like, do you have one p6 script that includes that one module and the one module includes the other? 15:26
Grinnz i'm sure it could be made much prettier in p6 ;)
timotimo because if your script already has "use TheFirst" in it and TheFirst has "use TheSecond" in it, it's enough to "perl6 -I. script.p6" 15:27
and both will be found
and if the script has "use lib '.';" in it, no need for the -I either 15:28
p_gurra my call is one-liner -> pm6 ( -> pm6 ...)
timotimo so i think you can just leave out the "use lib '.'"
p_gurra i'll try ...
timotimo another way is to put "no precompilation;" in front of "use lib '.'" but i would really not recommend this 15:30
p_gurra when i remove the use-libs and my oneliner looks: "perl6 -I. ..." the modules isnt used 15:32
timotimo you may have to put some "is export" in your modules to make stuff available
p_gurra i know
timotimo i don't know how to interpret "isn't used" 15:33
p_gurra and the linter complains about not finding the module and trying to use ... 15:34
I am trying ...
timotimo oh, is the one liner also in the same folder the modules are in? 15:35
p_gurra the subs in the module are not found
in the samt folder, yes
timotimo just "use TheOther" will not cause "use TheOne" to also have everything from TheOther available 15:36
i.e. re-exporting isn't automatic
p_gurra so i have to declare all "usage" at the top call? 15:38
timotimo there's a specification for a "use and re-export", but it's not implemented yet 15:39
p_gurra well, dont bother. i¨ll try some other way by moving the files around. 15:40
timotimo your script could just use both modules
p_gurra i'll try that. thnxs 15:41
timotimo i should have thought of that right away, lol
15:43 mowcat joined, mowcat left
SmokeMachine timotimo: What is the specification for "use and re-export"? 16:07
timotimo i think it's something like "use Foo::Bar :EXPORT" 16:08
16:12 aborazmeh joined, aborazmeh left, aborazmeh joined 16:13 aborazmeh left 16:29 cpage left 16:35 dakkar left
tbrowder just watched @jnthn's talk at riga on concurrency--excellent--looks like a good p6 marketing talk as it is! 16:37
16:42 MasterDuke joined 16:43 pat_js left 16:44 robertle left
rba AlexDaniel: You have started thinking about p6lerts and alerts.perl6.org? 16:47
AlexDaniel: colabti.org/irclogger/irclogger_lo...06-22#l411 16:49
AlexDaniel: Any thought from your side?
16:51 pamplemousse joined
vrurg m: class Foo { has int $.a; }; use nqp; my $f := Foo.new; nqp::bindattr($f, Foo, q<$!a>, nqp::unbox_i(42)); say $f.a 16:53
camelia P6opaque: representation mismatch when storing value (of type Int) to attribute (of type int)
in block <unit> at <tmp> line 1
vrurg ^ anybody have an idea how to get this working?
tbrowder ref marketing: i'm trying to define a set of one or more videos to use to introduce p6 to programmers at a local venue. there are lots of linked on the p6 site, plus those at jnthn's site, but i would appreciate recommendations for the "best" knowing that is a tough request. if there is interest, maybe we could vote for an "approved" collection as a go-to resource for p6 marketers. 16:54
16:56 sena_kun left 17:00 pecastro joined 17:02 wildtrees joined 17:05 ChoHag left
jnthn vrurg: Must be nqp::bindattr_i 17:09
dinner &
vrurg slapping himself into forehead.
jnthn: thanks!
17:25 pecastro left 17:27 cpan-p6 left, cpan-p6 joined, cpan-p6 left, cpan-p6 joined
AlexDaniel rba: well, if we can easily bring it back up, then fine 17:29
rba: but otherwise I'd much rather have a simple git repo with an .md file 17:30
cpan-p6 New module released to CPAN! Gnome::Gtk3::Glade (0.8.7) by 03MARTIMM 17:32
rba Alexdaniel: I can try to bring it back. If I didn’t manage we can look for other options. 17:34
AlexDaniel cool
17:36 natrys joined 17:47 pecastro joined 17:50 robertle joined 18:14 Black_Ribbon joined 18:22 Itaipu left 18:28 sauvin left 18:35 pecastro left 18:36 Woodi left 18:38 sena_kun joined
cpan-p6 New module released to CPAN! Tomty (0.0.3) by 03MELEZHIK 18:49
18:57 domidumont left 19:01 pamplemousse left 19:02 pamplemousse joined 19:09 ravenous_ joined 19:13 __jrjsmrtn__ left, Kaiepi left, Kaiepi joined 19:14 __jrjsmrtn__ joined 19:17 Itaipu joined 19:24 natrys left 19:27 Ven``_ joined 19:30 Cabanossi left 19:33 ravenous_ left 19:38 Altai-man_ joined, Cabanossi joined 19:40 sena_kun left 19:43 pamplemousse left 19:44 tomaw left, Ven``_ left 19:45 Ven``_ joined 19:46 tomaw joined, khisanth_ left 19:54 Altai-man_ left
Geth problem-solving: AlexDaniel assigned to jnthn Issue Reconsider Rakudo build structure github.com/perl6/problem-solving/issues/94
AlexDaniel assigned to jnthn Issue Support for custom knowhows isn't generic enough github.com/perl6/problem-solving/issues/90

Add one more template
If this looks alright, I'll add one for every label.
19:54
19:54 sena_kun joined 19:55 sena_kun left 19:58 ravenousmoose left 19:59 ravenousmoose joined
19:59 khisanth_ joined
problem-solving: 8e2376159a | (Aleks-Daniel Jakimenko-Aleksejev)++ | .github/ISSUE_TEMPLATE/issue-template-language.md
Fix template name
20:16
20:17 [Sno] joined 20:20 |Sno| left
Geth problem-solving: 1d70626aa9 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 8 files
Add issue templates for every label
20:29
20:35 pmurias joined 20:36 reach_satori joined
pmurias tbrowder: python isn't really that rigid 20:38
tellable6 2019-08-22T13:34:18Z #perl6-dev <vrurg> pmurias: Could you check if R#3131 didn't break JS build? I can't because my nodejs is broken and I have no time to fight with it.
synopsebot R#3131 [closed]: github.com/rakudo/rakudo/pull/3131 Add p6clientcore ops
pmurias vrurg: I'll check it
20:47 pecastro joined 21:00 k0Le left
tbrowder pmurias: thnx, i was just referencing something i think i heard jnthn say at riga 21:01
21:04 nekomune left 21:05 pilne joined 21:18 k0Le joined
discord6 <Scimon> Working with python Devs they consider (there's one way to do it) to be a strength. Lots of time is spent in code reviews discussing the most pythonic way to do something. 21:21
tadzik hehe 21:22
so clearly it's not working
discord6 <Scimon> Plus PEP8 which mandates how you space your code and mandates an 80 character line limit...
<Scimon> It's tedious
<Scimon> Like the language
jnthn tbrowder: Hm, I don't recall making a comment like that... 21:23
pmurias tbrowder: the language philosophy encourages rigidness but it's a dynamic "scripting language" 21:25
tbrowder: so translating it would be hard
discord6 <Scimon> It's got type "hints" now. They are basically useless.
<Scimon> I first saw them just after writing my talk on signatures. I was not whelmed. 21:26
tbrowder jnthn: sorry, i just heard or saw the phrase somewhere recently.
excellent talk on concurrency, btw. 21:27
discord6 <Scimon> Perl6 signatures and multi call is just so powerful and useful everything else feels anaemic.
jnthn tbrowder: I did mention Python a bit in the performance talk, but I don't recall saying anything about it from a design perspective. :) 21:29
Well, other than "it has complex numbers built in" and other such :)
tbrowder sorry, just my brain cramp 21:31
jnthn No worries. 21:32
Though if the claim is "rigid" then it's arguable in various directions. :)
Certainly Perl 6 makes some kinds of static analysis a bit easier. 21:33
21:34 irco joined 21:37 Cabanossi left 21:43 Cabanossi joined 21:54 pmurias left 21:56 pmurias joined, epony left 22:03 Ven``_ left
masak tadzik: I don't know if "so clearly it's not working" is the obvious conclusion to jump to there 22:11
tadzik masak: I'd say if the goal is to have one, obvious way to do things and then if you have to spend time arguing which one is it, then it's not really an obvious way ;) 22:12
masak tadzik: my personal summary has been that although "there should be one obvious way to do it" is clearly a "false" or unattainable ideal, the way the Python community makes that a goal is still beneficial
22:13 pmurias left
tadzik nodnod 22:13
masak I'll also note that I heard important Perl 5 people kvetch about perldoc's inability to give _one_ good way to do things, for beginners who aren't ready for details/depth
...during the Riga conf 22:14
I mean, I also agree with you that time spent arguing can get excessive 22:16
but there's a cost also to never arriving at a consensus way, or a cost to having a hundred different ways to do the same thing but no coherence 22:17
Grinnz indeed, and I think perlfaq is a good resource in that direction but unfortunately the new perldoc site has removed the ability to search it *grumble* 22:18
masak .oO( "we all value individual freedom and expressiveness" -- "great! how do you see that benefiting the community" -- "well, it depends quite a bit..." )
Grinnz but that's why i put perlfaq results first on perldoc.pl...
easy problems easy and hard problems possible, but preventing the likely worse ways from being chosen, that's the tough part 22:23
masak yes. 22:24
I really like the idea of the "pit of success" that's been popularized in the past decades 22:25
Grinnz meaning?
masak that is, if you're not sure what you're doing, the system you're using will most likely make your attempt successful
detailed knowledge is not required for success
Grinnz ah. that sounds like DWIM 22:26
masak whereas older systems were often designed (implicitly) with a "pit of failure"
I don't think "pit of success" is exactly the same as "DWIM"
DWIM has a dark side to it, that's why we coined "every DWIM has an equal and opposite WAT"
Grinnz the counter argument is that making suboptimal choices fail makes the suboptimal parts more obvious, where otherwise they may not be discovered until it's too late 22:27
22:28 sortiz joined
masak aye -- that's why I like Perl's `my` better than Python/Ruby's "just auto-create a variable, whether there was a typo or not" 22:30
Grinnz in the end, the best APIs and designs sit in the gray area between these philosophies, IMO
masak I think failure is a good thing when errors are statically detectable 22:31
"error: this will never work"
mismatch between argument list and function signature is another good example of that
Grinnz sure. but there was a movement especially in older CPAN modules to accept arguments in a way that wasn't even documented, and doing a best-guess, which usually just led to problems 22:32
at the least, hugely overcomplicated argument parsing
masak that sounds like "bad DWIM" to me 22:33
Grinnz indeed
masak again, I take "pit of success" to be a somewhat less lead-infused version of DWIM 22:34
22:34 bloatable6 left
masak something akin to "if the user doesn't specify what they want, give them a default that is likely to succeed" 22:35
whereas DWIM is more "if the user doesn't specify what they want, try to guess, even if guessing is likely to go wrong"
22:36 Ven`` joined
Grinnz proper defaults can make a big difference in usability indeed 22:37
22:40 Ven`` left
masak bringing it back to Python: I simultaneously believe that Python's ideal is unattainable, and that it's beneficial to try shooting for 22:41
jast what's a Python 22:42
22:43 pecastro left
timotimo a miserable pile of scales 22:43
jast (I may or may not write Python for a living) 22:44
sortiz \o
masak Python is an OK, if somewhat restricted, dialect of Perl 22:47
jast with some interesting black magic on topic
Python's descriptors are seriously weird 22:48
as are its metaclasses
timotimo descriptors, you mean how methods are detached from their instances but still remember them? or is that something totally different? 22:49
masak no, descriptors are what make that work
although they also do other things, such as attribute validation 22:50
they're kinda like proxies in a way
jast descriptors are basically class attributes (if that's what they call it) that magically turn into virtual attributes on instances with a __get__ and __set__ impl in the background
e.g. Django uses them to turn something like "class Foo(Model): [...] name = CharField()" into something they can parse into a model and monitor for changes and stuff 22:51
Geth whateverable: 981ab6f582 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META6.json
Fix provides
22:52 nekomune joined
masak __get__ and __set__ and __delete__ 22:54
22:55 epony joined
masak (the last one which I personally think is one freedom too far on object attributes) 22:55
23:02 rindolf left
masak 'night, #perl6 23:16
timotimo night masak
23:16 adu left 23:42 ChoHag joined