»ö« 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.
tobs tbrowder: you mean single-pass parsing? That's a necessity if you allow code execution at compile time like Perl 6 does. 00:05
If you parse a `use` statement which modifies the grammar by installing a slang, for example, how would you do the second parsing pass? 00:06
tobs You have to have figured out that this is a use statement when you first see it, because the rest of its lexical scope will want to be parsed in that slang, in this example. 00:09
tobs tbrowder: I found this historical piece about it github.com/perl6/specs/blob/master...ss-parsing 00:19
tbrowder tobs: thnx 00:46
tbrowder ah, good, that is exactly what i needed! the pod parsing is effectively a slang so, once in it, i think the rules in S02 allow a little flexibility for what i think needs to be done. thanks again! 00:51
ugexe fwiw i dont interpret that as "slangs don't have to follow one-pass parsing" 00:53
then again i dont interpret it as slangs cannot follow one-pass parsing 01:06
s/cannot/must/
tbrowder what i'm looking at is how "one-pass parsing" applies in regard to pod. after tokenizing, is further processing or manipulation o a 01:30
*of the token breaking the rule if the 01:31
*breaking the rule?
can one do things like pushing a token on a stack and using it later? etc. 01:33
jmerelo releasable6: status 06:31
yoleaux 15 Jun 2019 23:39Z <tbrowder> jmerelo: can we see a link to survey results, please?
releasable6 jmerelo, Next release in ≈4 days and ≈12 hours. 3 blockers. 221 out of 623 commits logged (⚠ 1 warnings)
jmerelo, Details: gist.github.com/d6fc2acd08d92d0c98...c09209b7e5 06:32
jmerelo .tell tbrowder here's how it's going drive.google.com/file/d/1g5apFhF8e...sp=sharing 06:34
yoleaux jmerelo: I'll pass your message to tbrowder.
jmerelo m: say $*PERL.compiler 06:44
camelia rakudo (2019.03.1.385.ga.643.b.8.be.1)
jmerelo m: say $*PERL.compiler.id 06:45
camelia 183058C667FD52BEB3000F4773908F835DD6F330
jmerelo m: say $*PERL.compiler.release
camelia
jmerelo commit: releases say $*PERL.compiler.release 06:50
committable6 jmerelo, ¦releases (37 commits): «␤»
jmerelo commit: releases say $*PERL.compiler.codename 07:02
committable6 jmerelo, ¦releases (37 commits): «␤» 07:02
jmerelo commit: releases say $*PERL.compiler.build-date 07:05
committable6 jmerelo, gist.github.com/5a386b470458762c60...f7149d4f23
elcaro a 07:11
jmerelo elcaro: hi 07:23
tbrowder .tell jmerelo thnx. suggestion for next survey: list of p6 features (including kebab-case) and allow user to add an integer to rank them in importance. probably not a good idea for most surveys, but i get the feeling the actual audience is pretty much in the p6 camp so it might be of value for future. 10:09
yoleaux 06:34Z <jmerelo> tbrowder: here's how it's going drive.google.com/file/d/1g5apFhF8e...sp=sharing
tbrowder: I'll pass your message to jmerelo.
jmerelo tbrowder: I'll share it with you, it's already prepared. 10:20
yoleaux 10:09Z <tbrowder> jmerelo: thnx. suggestion for next survey: list of p6 features (including kebab-case) and allow user to add an integer to rank them in importance. probably not a good idea for most surveys, but i get the feeling the actual audience is pretty much in the p6 camp so it might be of value for future.
Xliff Is there anything out there that will pretty print a gist? 11:25
timotimo Xliff: i'd recommend DDT actually 11:25
lizmat Data::Dump::Tree ? 11:26
Xliff Hrm. 11:28
Need it to work with diag
timotimo there should be a way to get that to work :) :) 11:30
this is perl6 after all
Xliff Yeah. Trying something. One mo' 11:31
timotimo if you're working with your unit tests, i guess just wrap diag, go nuts, the world is yours
Xliff Yeah. That's what I ended up doing. 11:49
Skarsnik Hello 13:13
AlexDaniel`, did you manage to update Gumbo with zef? the version is * for the module. I don't remember if that still work xD 13:14
Kaiepi greppable6, If two astronauts were on the moon and one bashed the other's head in with a rock would that be fucked up or what? 13:18
greppable6 Kaiepi, Found nothing!
Kaiepi fuck i could've sworn i shitposted in a unit test somewhere in the ecosystem
timotimo i also seem to recall reading that somewhere 13:20
Xliff m: $*PERL.compiler.version.say
camelia v2019.03.1.385.ga.643.b.8.be.1
Xliff m: $*VM.version.say
camelia v2019.03.110.g.081823.ffc
Kaiepi maybe it was in rakudo 13:21
Xliff Anyone running a fresh rakudo from git? What's the version?
timotimo v2019.03.1.602.g.8.a.37.b.9311 13:26
Xliff Thanks! 13:29
AlexDaniel . 14:39
Skarsnik: I don't remember, I think you need to --force it or something
vrurg I was just asked why trigonometry functions are based on floating point instead of libtommath which is obiously compiled into moar? 14:43
yoleaux 15 Jun 2019 15:32Z <SmokeMachine> vrurg: I've answered your PR and your issue there... Do you have any idea what should we do?
vrurg .tell SmokeMachine Sorry, I saw your replies but was preparing/commuting and now attending the conference. Will asnwer ASAP. 14:45
yoleaux vrurg: I'll pass your message to SmokeMachine.
timotimo vrurg: i'm not aware of anything libtommath does that's not full decimals tbh 15:10
vrurg timotimo: thanks! 15:14
timotimo on the other hand 15:20
i haven't actually looked closely
it's just that to me libtommath is "the library for handling mp_int" which is big integers
Xliff m: class A {}; my A @a; @a = () 15:48
camelia ( no output )
Xliff m: class A {}; my A @a; @a = (); @a = Nil 15:49
camelia ( no output )
Xliff m: class A {}; class B {}; my A @a; @a = (A.new, B.new); @a = Nil
camelia Type check failed in assignment to @a; expected A but got B (B.new)
in block <unit> at <tmp> line 1
Xliff m: class A {}; class B {}; my A @a; @a = A.new xx 3; @a = Nil; 15:55
camelia ( no output )
Xliff Looks like there may be a slowdown issue with 3.685 16:23
I'm running extensive unit tests on my latest and those tests slow WAAAAY down as they proceed.
jmerelo squashable6: status 16:29
squashable6 jmerelo, Next SQUASHathon in 18 days and ≈11 hours (2019-07-06 UTC-14⌁UTC+20). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel jmerelo: still I recommend to make a math sequence squashathon 16:33
the one about the ecosystem is not very actionable
jmerelo AlexDaniel: I'd love the Math one. But unfortunately, few else will.
AlexDaniel ? Why?
sena_kun likes the math sequence idea
jmerelo AlexDaniel: and we need to do something about the ecosystem, even if it's only moving issues somewhere else. 16:34
AlexDaniel it sounds fun – you pick a sequence, write a few lines of code, submit a pull request
that's what most potential contributors will be able to do
and the ecosystem one… there are 29 tickets and I'm not sure if I can solve even one
jmerelo AlexDaniel: they need to be solved, even if it's not fun 16:35
AlexDaniel what's the point of having a squashathon that is not fun? 16:35
last time I checked core contributors were not very active anyway
sena_kun I wouldn't say it is about "fun", but about being approach-able in an event-style fashion. e.g. in doc repo there are tickets like "Write an example" and "Rewrite the whole documentation system". The first one suits for a one-day event, the second one - totally not. 16:36
jmerelo AlexDaniel: Well, it's a community squashathon. We should at least focus on something that is community-maintained
AlexDaniel sena_kun: please help :) 16:37
jmerelo AlexDaniel: we can do it the previous weekend, or the next, or something.
sena_kun AlexDaniel, we need enforcements in this sector? :) 16:38
jmerelo We can have every month the SuperFunSquashathon on some topic, or module, or whatever. But you said yourself the ecosystem is coming apart at the seams.
Sewing it back together is my idea of fun...
AlexDaniel also it will be after the release, so a great time to get new people on board 16:39
jmerelo AlexDaniel: did you see this news.perlfoundation.org/2019/06/gra...-38519722, BTW? 16:40
sena_kun there are cases when you have 10 tasks that can be solved by a single person in a hour or two, so can be parallelized, and there are tasks that can be solved by a single person in 10 or 20 hours, these can't be parallelized.
jmerelo AlexDaniel: is the author on board? Will you be able to get him to set the hook so that we keep track of who's done what? Is he or she going to be there to accept PRs during the weekend? 16:41
AlexDaniel jmerelo: IIRC the author made a blog post with a call for contributors, so I think they'll be happy to accept contributions. But yes, if we want to do it next month, we should get in touch with them 16:42
jmerelo AlexDaniel: please do that and if the author is on board, we'll think about it. 16:42
uzl .tell jmerelo For next year survey, P6 favorite features could be make into a listicle that the community agree on. Though an 'other' field could be there too. 16:44
yoleaux 14 Jun 2019 05:30Z <jmerelo> uzl: I have no idea how to do any of that. Can someone do that for me? Can you?
uzl: I'll pass your message to jmerelo.
jmerelo uzl: I'm right here. tbrowder also suggested to vote on features. 16:45
yoleaux 16:44Z <uzl> jmerelo: For next year survey, P6 favorite features could be make into a listicle that the community agree on. Though an 'other' field could be there too.
Xliff jmerelo: I've also suggested extending the length of these squashathons so that it's not so Euro-centric. Are you still thinking about that? 16:46
jmerelo Xliff: I already did. They take a few hours more, start earlier, end later.
Xliff Ah! Thanks.
uzl That's a great idea too. As of now, many of the features repeat (e.g., Grammars).
Xliff Anyone have some time to take a quick look at this slowdown issue I am noticing 16:47
jmerelo uzl: OK
Xliff Yes... it involves cloning one of my projects. It's just a shy under 19kLOC! It's not like it's GTK or anything! :)
(and I promise... fairly standalone)
jmerelo Xliff: post the URL
Xliff One sec. system wants to buffer me... 16:48
AlexDaniel jmerelo: github.com/ajs/perl6-Math-Sequences/issues/30 16:49
Xliff [email@hidden.address]
then: "git checkout -b obj-testing"
Er... oops 16:50
github.com/Xliff/p6-Amazon-AWS-EC2.git
Xliff Once checked out, do: 16:50
Xliff perl6 -Ilib t/01-types.t --unit=CapacityReservation --number=1000 16:50
Mine takes about 1m35 seconds to run. You WILL notice the slowdown as time progresses. 16:51
Do not know if that is a sign of a performance issue or a memory leak.
jmerelo Xliff: prior to that, zef install --deps-only .
Xliff Um... oops.
No META6.json, yet
jmerelo agh, no meta
Xliff One sec 16:52
zef install Base64::Native Cro::HTTP::Client DateTime::Format Digest Digest::HMAC Digest::SHA256::Native File::Find Method::Also XML::Class
perl6 -Ilib t/01-types.t --unit=ClientVpnEndpoint --number=1000 16:53
# Takes 7.5 minutes!!
jmerelo Xliff: do I need an Amazon ID or something? 16:54
Xliff No
Well, you do if you want to start and stop EC2 instances.... which are working, currently! :)
jmerelo fails with usage message about --unit being wrong or something 16:56
Xliff: you sure that's the branch? it does not even have a --number option in MAIN 16:57
Xliff git checkout -b obj-testing
AlexDaniel Skarsnik: that gumbo issue… 17:00
Xliff Yeah. This is definitely a slowdown issue. 17:01
There's nothing in these tests that should bog the code down over time.
AlexDaniel Skarsnik: first of all, it seems like the it is so much faster now
Skarsnik: I mean gumbo itself
Skarsnik: or the perl6 glue, something, I don't know, but it feels faster
Skarsnik: and yes, IT NO LONGER CRASHES!!!!!!!
AlexDaniel ffaaaaaaantaaaastiiic 17:07
jmerelo Xliff: good luck then 17:08
Xliff
.oO( well, at least someone can be happy about the hard work they've put in over the weekend... )
jmerelo: Were you not able to get the branch?
jmerelo yep, what I was not able was to run the script. See above 17:09
Xliff Can you fpaste the error?
jmerelo Xliff: usage message: t/01-types.t [--unit=<Any>] 17:10
Skarsnik AlexDaniel, yes I made some improvment like 6 months-1 year ago. Added an opti in xml module and removed some nativecast
Xliff Can you gist or fpaste the error?
Hrm. That's old 17:11
Way old.
jmerelo Xliff: exactly as above. Usage:
Also, t/01-types does not use --number
Xliff Yes. Means it's not the right version.
jmerelo: This is how MAIN should look... 17:14
github.com/Xliff/p6-Amazon-AWS-EC2...01-types.t
jmerelo Xliff: lots of conflicts when I pull now 17:18
Xliff :(
jmerelo Xliff: never mind, you already confirmed there's a slowdown, right?
Xliff Yep.
I should bug it, but I am buried in this ATM
But I do take your initial point. I want to get a META written by tomorrow. 17:19
pmurias AlexDaniel: your grant Perl 6 course comment seems like a bit mean spirited, but I do heavily agree we better docs rather then more disparate introductory material 18:28
* we need
jmerelo pmurias: we need better everything. 18:33
pmurias: and more everything.
El_Che readings jmerelo's comment on the grant
moritz not more bugs :D
jmerelo moritz: we need more people finding bugs, though.
El_Che: tell me what you think when you do 18:34
leont Apparently I'm good at running into them -_-
El_Che I need to think about it, but it correponds to my gut feeling I had
but more eloquently in your case :)
jmerelo pmurias: I don't think it's mean spirited at all. It comes through as a bit angry, byt raises valid points.
El_Che: thanks. 18:35
El_Che the question that popped in my head right away is "what's wrong with "Learning Perl6", moritz's books or andrews book to learn the language 18:36
(but I need to think about it)
moritz well, my has no excercises (which you'd expect from a course), but Think Perl 6 has them 18:37
El_Che (I always skip excercies, so difficult to weight their importance) 18:37
(I pick a small project as an alternative)
how wonder about the video remark 18:40
jmerelo moritz: a course is so much more than exercises. For starters, you need someone to correct them. 18:41
El_Che I have an account on oreilly and I must say I haven't watched manu videos
I watch conference talks on youtube once in a while
but video course are too slow, most of the time
(I watched DrForr's, and it was fun, for the record :) )
jmerelo moritz: exercises, by themselves, do not add much value. You need to actually have some incentive to solve them. That incentive might be a certificate, for instance.
El_Che maybe younger people watch more video 18:42
jmerelo: my incentive is the small itch I try to solve with the new tech
something tangible
jmerelo El_Che: yep, but I find things like the perl challenge a better incentive.
El_Che indeed! 18:43
jmerelo An exercise that is not going to be corrected or from which you are not going to get any feedback does not really have much value. You can just read a book and say "Maybe I can do this"
dha I'm watching DrForr right now. Live! :-) 18:44
jmerelo reminds everyone who has not done so to fill the survey docs.google.com/forms/d/e/1FAIpQLS...g/viewform 18:45
El_Che: I tend to not like watching videos to learn either. Plus it's very difficult to do them correctly. Most learning platforms have a set of quality tests for videos before they are posted. 18:46
moritz videos are also very hard to update, so you need to have a very good script upfront 18:48
lizmat weekly: digitalbarbedwire.com/2019/06/16/p...d-numbers/ 18:54
notable6 lizmat, Noted!
jmerelo moritz: in general, producing and running an online course is a difficult affair. I have recorded a couple of them, and from the pedagogic design to the actual delivery of the class, it involves lots of iterations to get right, as well as persons that are versed in it
dha lizmat++
jmerelo Not to mention you need an actual course delivery platform where you have some tutoring, peer correction of exercises, and help when you get stuck. 18:55
lizmat weekly: www.quora.com/unanswered/What-woul...-for-today 18:56
notable6 lizmat, Noted!
vrurg is watching DrForr too. It's an interactive video, BTW... ;) 18:57
tadzik Related Questions: Are Roman roads still in use today? :D 18:58
dha Yeah, but you can't throw things at him. :-)
moritz jmerelo: I can imagine
vrurg dha: yeah, that'd be very inpolite of me! 18:59
*impolite 19:00
jmerelo lizmat: answered
lizmat jmerelo++
dha vrurg - I admit I've managed to resist so far.
El_Che ok, comment is on the moderation queue 19:01
antoniogamiz mmm can you think of a situation when a once block is not executed? 20:45
AlexDaniel antoniogamiz: when you try to execute it the second time? :)
antoniogamiz AlexDaniel: haha yep, that's one 20:46
say statements in once blocks should be printed right? 20:50
(yep, I'm using says statements for debugging :D)
AlexDaniel yes, of course
antoniogamiz: are you getting anything out of that block at least once?
also, to make sure it's not some kind of a buffering issue, what about `exit;` ? 20:51
antoniogamiz AlexDaniel: nop, that's the weird thing
oh I will try that
I have added exit; inside once block and it behaves the same way than before 20:52
AlexDaniel oh that's “awesome”
antoniogamiz it is? haha 20:53
timotimo dang, i really need to make the debugger cli more user friendly and make it known widely ... 20:55
or tell people to use comma, of course :)
antoniogamiz mmm I will have to try that, I have a very strange recursive function 20:59
and for some reason it is not executing a once block
timotimo it's supposed to run only a single time per program execution if i'm not mistaken 21:00
maybe it just doesn't match your expectationg 21:01
sena_kun .tell samcv hi! can you, please, try to remember where a script that generates gist.github.com/samcv/9177c43f2a78...54c63d28e5 can be found? I am doing kinda archeology at github.com/perl6/ecosystem/issues/324 and would like to revive it for a bit. no problem if not, I'll just write it then
yoleaux sena_kun: I'll pass your message to samcv.
antoniogamiz em that's correct?
I though once blocks were executed each time I called the function :o 21:02
timotimo aha!
antoniogamiz every*
mmmmmmmm
timotimo ah
it works per clone of containing code objects though
says the docs
m: ({ once 42.say } xx 3).map: {$_(), $_()}; 21:03
camelia 42
42
42
lizmat antoniogamiz: it works the same as state variables
timotimo recursion doesn't cause new code object clones, though
antoniogamiz mmmm ok, I will think about it and try to fix it 21:05
but at least the say statements inside the once block should be executed one right?
antoniogamiz well, I am going to get some sleep and will try tomorrow! nights o/ 21:09
AlexDaniel once blocks are very hard to read, IMO 21:10
AlexDaniel cuz it's always “once per what?” 21:11
AlexDaniel timotimo: it is not per program execution, that's for sure 21:12
m: sub foo { for ^5 { once { say ‘once!’ } } }; foo; sleep 1; start foo; sleep 1
camelia once!
once!
ugexe it is based on state, so not thread safe
AlexDaniel yes, and the question is why we have a once block that can be called more than once 21:14
also it's weird, like: 21:15
m: sub foo($x) { for ^5 { once { say ‘once!’ } }; ‘a’ }; say <a b c>.hyper.map(&foo)
camelia once!
once!
once!
(a a a)
AlexDaniel m: sub foo($x) { once { say ‘once!’ }; ‘a’ }; say <a b c>.hyper.map(&foo) 21:16
camelia once!
(a a a)
AlexDaniel a, you don't even need hyper, right right
m: sub foo($x) { for ^5 { once { say ‘once!’ } }; ‘a’ }; say <a b c>.map(&foo)
camelia once!
once!
once!
(a a a)
AlexDaniel if this intuitively makes sense to anyone I'd be surprised 21:17
lizmat m: once say "what?" 21:21
camelia what?
lizmat m: once say "what?" for ^2
camelia what?
what?
lizmat m: for ^2 { once say "what?" } 21:22
camelia what?
lizmat hmmm
lizmat m: state $foo = say "what?" for ^2 21:23
camelia ( no output )
lizmat m: state $foo = say "what?" 21:23
camelia what?
lizmat hmmm 21:23
AlexDaniel greppable6: once\s+\{ 21:24
greppable6 AlexDaniel, 36 lines, 13 modules: gist.github.com/27b2558b1f25ed4cac...6d654a4fdc
AlexDaniel lizmat: github.com/perl6/problem-solving/issues/41 21:37
ugexe the first example you give doesnt use once 21:39
or are you saying that is the better way to do it?
yes that must be it since the second example also does that 21:40
ugexe although those require just as much understanding by the caller as once { } 21:41
AlexDaniel ugexe: what do you mean doesn't use once? 21:42
ugexe i misunderstood; your links were alternatives to once { } 21:43
timotimo lizmat: i think in that one example it's once (say what for ^2) so it outputs twice, and does that once 21:44
ugexe github.com/moritz/perl6-all-module...izer.t#L30 although this example isn't really an alternative to once { } 21:45
AlexDaniel ugexe: why not? 21:46
ugexe because everytime you call test-example() it will run the code 21:47
AlexDaniel ahhh, good point
ugexe the second example seems the same
AlexDaniel same with the second example, actually
yeah 21:48
maybe it should be `once per sub {}` `once per run {}` `once per thread {}` ? 21:49
ugexe well what about a sub inside a sub or whatnot 21:49
thats likely why its once per closure clone as it is now
AlexDaniel I'm fine with `once per closure clone` 21:50
:)
it doesn't feel like it should be the default, though
ugexe i think the default that would satisify the most people would need to involve a lock or atomics or something 21:51
a "only once ever"
but that would be quite different use cases. like what about role Foo { method { once { say $?CLASS } }; class Bar1 does Foo { }; class Bar2 does Foo { }; 21:52
i wonder if syntax like `once :closure, { ... }` `once :global, { ... }` etc would/could make sense or work 21:56
AlexDaniel it's definitely readable and clear 21:59
AlexDaniel .tell jmerelo github.com/ajs/perl6-Math-Sequences/issues/30 23:13
yoleaux AlexDaniel: I'll pass your message to jmerelo.