»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 May 2018.
Zoffix Don't see anything in design.perl6.org/S02 either 00:01
m: dd Q:c/\1/
camelia "\\1"
Zoffix m: dd Q:cc/\1/
camelia "1"
Zoffix It clearly has some effect
00:02 rindolf left
Zoffix Doesn't look like there are any spectests for `:cc` 00:18
00:21 fake_space_whale joined 00:37 vrurg left 00:40 vrurg joined 00:44 vrurg left 00:45 vrurg joined 00:54 vrurg_ joined, vrurg left, vrurg_ is now known as vrurg 00:57 benjikun joined
benjikun Howdy all 00:57
lookatme o/
00:59 lizmat left
Zoffix .tell AlexDaniel just a data point. Ran 4 stresstests on 2018.06-237-g0357454. One SEGV on t/spec/S32-io/pipe.t One SEGV on t/spec/S24-testing/8-die_on_fail.t. The other two runs were successful. Also, the runs were around 180s, compared to usual ~160s runs. Unsure if it's just my VM being slow right now or if it's something real in rakudo 01:09
yoleaux Zoffix: I'll pass your message to AlexDaniel.
AlexDaniel Zoffix: thanks
yoleaux 01:09Z <Zoffix> AlexDaniel: just a data point. Ran 4 stresstests on 2018.06-237-g0357454. One SEGV on t/spec/S32-io/pipe.t One SEGV on t/spec/S24-testing/8-die_on_fail.t. The other two runs were successful. Also, the runs were around 180s, compared to usual ~160s runs. Unsure if it's just my VM being slow right now or if it's something real in rakudo
AlexDaniel SEGVs are not cool, I'll try to check if these existed before 01:11
Geth doc: 012076c936 | Coke++ | doc/Language/phasers.pod6
fix word choice
01:13
doc: 03ada72132 | Coke++ | doc/Language/phasers.pod6
whitespace
synopsebot Link: doc.perl6.org/language/phasers
01:22 HaraldJoerg1 left, plutes_ joined 01:23 vrurg left, vrurg joined 01:24 plutes left, spycrab0 left
timotimo the charts library i was using for moarperf seemed pretty cool, until i ran into a bug ... their issue tracker has 400 open tickets :| 01:43
Kaiepi ffs i spent 12 hours waiting for make spectest to finish before i noticed netbsd doesn't support multithreading in qemu 01:47
the tests that actually do fail are all floppers
but that's a good thing
timotimo so it was only running a single task at once, but switched them around all the time?
Kaiepi possibly 01:48
the warning wasn't very descriptive
qemu-system-x86_64: Guest not yet converted to MTTCG - you may get unexpected results 01:49
01:54 stmuk_ joined
timotimo hah 01:54
raschipi Kaiepi: QEMU on Linux also doesn't support multithreading, but there it's usually used with KVM which makes that a small problem. On Linux, QEMU only lock everything while it's running, after it generates the code, it sends control back to KVM which can execute that code in multiple threads. 01:56
Kaiepi tcg's the only accel option available on openbsd 01:57
i'm gonna try xen on freebsd though
01:57 jameslenz left, stmuk joined
raschipi KVM is so much better than Xen, but NetBSD seems bent on keeping it. Good luck to them. 01:58
01:59 stmuk_ left 02:05 Xliff joined 02:06 Xliff left
[Coke] Zoffix: see questions about toronto p6 gathering in review. With luck and notice, I could drive out to one of those. 02:11
02:11 eliasr left
raschipi Could I drive there if it wasn't for the Darién Gap? 02:13
02:26 benjikun left 02:32 [particle] left 03:27 raschipi left 04:03 [particle] joined 04:22 Sgeo joined 04:24 molaf joined 04:30 MilkmanDan left 04:34 PotatoGim joined 04:39 wamba joined 04:40 molaf left 04:42 rindolf joined 04:52 curan joined 04:59 MilkmanDan joined
jmerelo releasable6: status 05:01
releasable6 jmerelo, Next release will happen when it's ready. 6 blockers. 0 out of 238 commits logged (⚠ 79 warnings)
jmerelo, Details: gist.github.com/cb9e20522793aa5827...4dfceeb263
05:12 stmuk_ joined
[Coke] Zoffix: i see it's sooner than I can probably make it happen. break a leg and have fun without me. :) 05:13
(the toronto meeting)
05:15 stmuk left
jmerelo I'm going to Los Angeles in a month. Anyone in that area would be interested in a meetup? 05:22
05:30 Sgeo_ joined 05:33 Sgeo left 05:38 fake_space_whale left 05:40 xtreak joined 05:47 [particle] left 06:01 wamba left 06:04 xtreak left, xtreak joined 06:24 spycrab0 joined 06:29 psychoslave_ joined 06:43 MasterDuke left, robertle joined 06:52 [particle] joined 06:56 hami joined 06:57 [particle]1 joined 06:58 [particle] left 07:01 pecastro joined 07:05 wamba joined 07:08 hami left
stmuk_ warriors: I noticed that type error with p6doc, I think recent doc changes probably broke it. I usually test and fix p6doc during the Star release so try again in a week or two 07:10
jmerelo stmuk_: can you please open an issue in perl6/doc so that you don't have to fix it all over again? 07:11
stmuk_ jmerelo: if you want an issue you open one
07:17 domidumont joined 07:18 domidumont left 07:19 domidumont joined 07:22 domidumont left 07:23 domidumont joined 07:39 sena_kun joined 07:41 wamba left 07:42 zakharyas joined 07:46 warriors left 07:47 wamba joined 07:59 scimon joined 08:04 zakharyas left 08:06 dakkar joined 08:07 dakkar left 08:08 wamba left, lizmat joined 08:09 zakharyas joined 08:13 dakkar joined 08:30 xtreak left 09:02 xtreak joined 09:04 zakharyas left 09:06 zakharyas joined 09:12 molaf joined
jmerelo stmuk_: but I don't know exactly what's the issue, other than you fix it for the Star releases. If you point me to the code you use to fix it, I can do it yourself. 09:40
El_Che "I can do it yourself" 09:41
I am so confused now :)
jmerelo El_Che: I can do it myself...
El_Che: but it would _really_ help if we would know of these things so that we can fix them. 09:42
10:03 zakharyas left 10:04 scimon left 10:15 scimon joined 10:16 wamba joined 10:35 scimon left 10:36 scimon joined, zakharyas joined 10:38 telex joined
Zoffix Man, the day I announce my P6 talk in Toronto someone shoots up the place! These Python zealots have gone too far. 10:46
(too soon? :) 10:47
jmerelo Zoffix: shooting? In Toronto?
Zoffix Yeah, some guy killed 14 people
jmerelo Zoffix: wow. Thought that only happened in the US. Sorry to hear that. 10:48
Zoffix Or shot 14 peope, dunno how many ded
lizmat the news this morning was: 1 dead, 1 critically injured, 12 injured
and the shooter also no longer among us 10:49
Zoffix ah
10:52 Ven`` joined
timotimo time until people say "the us doesn't need gun regulations, because torronto just had a shooting even though they have gun regulations": ... 10:52
10:52 Ven`` left
timotimo why does Test have isnt instead of isn't? 10:54
Zoffix Because it was added before ' was allowed in names
timotimo wow
well, it makes sense to have that very early
Zoffix But yeah, I wondered that myself, that there should probably be an alias to `isn't`, 'cause we're cool and have apostrophes
jmerelo I'm having trouble again with the multithreaded stuff. In this program github.com/JJ/p6-algorithm-evoluti...gorithm.p6 the more threads I add, the slower. 11:00
I think that the problem might be that I'm converting Channels to supplies and back to channel, but I need that to read from the Channels in batches, I guess. 11:01
timotimo i think your line with "my $selection = ..." is wrong 11:02
you repeat the assignment ^$thread times, so you'll only have the last result in the variable
jmerelo timotimo: just the line?
timotimo that's just the first thing i saw 11:03
jmerelo timotimo: I do that for every one of them...
11:03 Ven`` joined
timotimo ah, indeed 11:03
11:03 zakharyas left
jmerelo timotimo: but that would mean it would be waiting for the last one, right? It's still starting the threads 11:03
timotimo i don't see your code actually awaiting the results, though?
jmerelo timotimo: in line 57, it's awaiting for $evaluation 11:04
timotimo ah, yes
jmerelo How would I wait on a set of threads and not just the one?
timotimo: and anyway, that wouldn't explain the fact that it gets slower with the number of threads... Except that the probability of finding the solution in the particular thread it's waiting would be lower... 11:05
But still.
11:05 zakharyas joined 11:07 plutes_ is now known as plutes
jmerelo OK, I know how to to wait on an array of threads. Just use an array. But I don't think that's slowing down with the number of threads. 11:09
timotimo have you tried with "use v6.d.PREVIEW"?
jmerelo timotimo: no. Why would it make it faster?
timotimo that allows code that awaits other code to be moved back to the thread pool's work queue 11:10
i.e. non-blocking await
Zoffix jmerelo: github.com/perl6/marketing/blob/ma...896495.pdf
11:11 wamba left
Zoffix m: await ^10 .map: { start await ^25 .map: { start await Promise.in: 1 } }; say "It took $(now - ENTER now) seconds to run"; 11:11
camelia MoarVM panic: Could not spawn thread: errorcode -11
Zoffix m: await ^10 .map: { start await ^25 .map: { start await Promise.in: 1 } }; say "It took $(now - ENTER now) seconds to run";
camelia MoarVM panic: Could not spawn thread: errorcode -11
timotimo "executable file" %)
Zoffix right
timotimo: windows
timotimo a pdf is executable on windows?
11:12 markoong joined
Zoffix No idea, but it makes all files executable, like .pdf and .jpg 11:12
liek if you make them on windows and then look at them on Linux
jmerelo timotimo: I'm trying that, but it does not feel faster. I fact, it looks like it's a bit slower
timotimo: OK, it's faster, at least with two threads. Let's try 4 11:13
11:15 Zoffix left
jmerelo timotimo: so you think that using many threads was actually creating deadlocks and making the code slower? 11:15
timotimo: that actually put a spring in its step... time is not cut in half, but it's reduced quite a bit. 11:16
timotimo hmm 11:18
i wonder if you're accidentally giving all the work to all workers
instead of every worker taking "their own" piece of work 11:19
jmerelo timotimo: I might. What's the difference. Really, I have no idea.
8 threads, BTW, is giving a lousy result again. 11:20
11:20 plutes left
timotimo right now i'm writing test code for my feature, later i can have a look 11:20
jmerelo timotimo: OK. Thanks anyway.
timotimo putting lines 37 and 50 back in, do the lines get more when you increase the number of threads? 11:22
lizmat jmerelo: how many CPU's do you have ? 11:23
jmerelo timotimo: It takes more time overall, but it does not change with the number of threads. I thought that was it, but it's not.
lizmat: 8 CPUs
lizmat 8 *real* cpu's, or 4 x 2 hyperthreaded ?
jmerelo lizmat: no idea. Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz is the model. I'll check. 11:24
El_Che laptop? 11:25
jmerelo timotimo: overall, it's a slight improvement in the sense that it does not get much worse when increasing the number of threads. It's not getting better either.
El_Che 1 cpu
2 cores
8 threads
lizmat jmerelo: yeah, if you let more than 4 CPU's do the same kind of work, they'll compete for resources, causing slowdown
jmerelo lizmat: any idea how to fix that? 11:26
lizmat: 4 cores, 8 subprocesses
lizmat: it's not getting better with 2 threads either...
lizmat jmerelo: I'm atm working on the P6W, will look more in depth after that 11:28
jmerelo lizmat: OK, thanks. 11:29
11:29 raschipi joined
timotimo huh, 2 cores but 8 threads? i thought hyperthreading only doubles the cores 11:29
jmerelo timotimo: is that a physical limit to the number of threads you can reasonably use? In fact, htop reveals hundreds of threads at the same time... 11:30
timotimo having many more threads than cores in the system is normal, since they don't all have work to do all the time 11:31
by cores i mean logical cores, i.e. 2x cores if hyperthreading (or apparently 4x?)
El_Che ark.intel.com/products/75122/Intel...o-3_90-GHz
that's his cpu
timotimo but if you have cpu-bound work like your code, you shouldn't go past the number of logical cores you have available 11:32
jmerelo timotimo: that is, 8
timotimo i see "4 cores, 8 threads" there
11:32 araraloren joined
jmerelo Problem is before I was multiplying the number of threads by 3 because I was doing three different processes in threads. 11:32
so it was either 1, or 6, or 12 threads. 11:33
timotimo it's always a question of tuning, but i would say 50% over isn't terribly bad
hm. 50% is a bad guideline
11:33 psychoslave_ left
timotimo let's say 4 work threads over the number of cpu threads perhaps 11:34
11:34 pmurias joined
timotimo because if you have 64 threads in your machine, you don't want to go up to 96 11:34
El_Che if you use channels and supplies may cause a bottleneck moving data from a to b (maybe)
jmerelo timotimo: problem is that one process is limited by the other. You need one thread to feed the channel that other channel reads from.
timotimo yeah, if the work itself is very short per batch, that'll slow things down significantly
how big are your batches? 11:35
64 items?
no, each chromosome is 64 bases long
jmerelo timotimo: 4 11:36
timotimo: batches of 4 chromosomes that are evaluated and compared to select the best
timotimo how long does each take, roughly? 11:37
jmerelo you mean the whole thing?
15 repetitions by ~4k evaluations, around 2 minutes in my computer
timotimo no, each item of work
i.e. each piece from "receive work" to "send result to next worker" 11:38
jmerelo timotimo: it's summing 64 bits. I don't think it's much.
timotimo then you're probably spending more time sending and receiving than working 11:39
jmerelo timotimo: hum.
timotimo so by increasing the number of threads you'd increase the overhead even more, when the time spent working is already miniscule in comparison
jmerelo timotimo: so, more difficult problem, right?
timotimo or bigger batches
jmerelo timotimo: evaluation is done in single items 11:40
timotimo fun times: it segfaults on my machine
right
but you can still change how many are sent in each Channel.send 11:41
raschipi Using multiple threads only makes sense if they will have non-trivial work to do, because setting it all up takes resources itself.
jmerelo timotimo: I guess so. 11:42
timotimo: let me try that
timotimo what version of rakudo are you running? 11:43
jmerelo timotimo: 2018.06
Come to think of it, maybe later. I've got to turn this paper in like, today. 11:44
timotimo uh oh :)
why does it crash, though
(on my machine with latest HEAD of everything)
jmerelo timotimo: it does not in my version, fortunately... 11:45
timotimo: right, 2018.06
timotimo anyway, turning on those debug says lets me see the individual work items are far too small to get a benefit from your setup 11:48
11:48 zakharyas left
timotimo if there's like two to four outputs per second, that'd probably be okay 11:49
but it looks more like a hundred or two hundred per second
even when run in valgrind it's still going by so fast
well, not as fast, of course, but still faster than ideal 11:50
Geth doc: AlexDaniel assigned to timo Issue IO::Socket::Async and listening to a system-defined (unspecified) port github.com/perl6/doc/issues/2207
febec4159f | (Tom Browder)++ (committed using GitHub Web editor) | writing-docs/CREATING-NEW-DOCS.md
11:51
AlexDaniel timotimo: :) 11:52
timotimo yeah, i wanted to write a doc for that, too
"a" doc %)
AlexDaniel cool now you have a ticket! Convenience :)
ownTheLibs yay 11:56
araraloren How can I decalre a Range not using the default step ? 11:57
AlexDaniel araraloren: you need a sequence
m: say (1, 3, 5 … ∞)[^20]
camelia (1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39)
araraloren yeah, I know ... can generate a Seq for me
timotimo .say for (^100).rotor(1=>1)
evalable6 (0)
(2)
(4)
(6)
(8)
(10)
(12)
(14)
(16)
(18)
(20)
(22)
(24)
(26)
(28)
(30)
(32)
(34)
(36)
timotimo, Full output: gist.github.com/da47220624fc5b2ec2...18afbc9847
timotimo you get a list of lists there, but such is like 11:58
araraloren so we have no equ按
timotimo such is life*
AlexDaniel araraloren: a range object doesn't have a “step”, it's just a start point and end point
daemon hey guys and gals, if I whacked a quick module together with module-starter where do I need to place a script that I wanted to be treated as a direct executable need to be located in the source tree, presuming , is the module-name I would have thought ./bin/my-executable-name
araraloren equal things to range(1, 5, 2) in pyton ?
python
timotimo daemon: putting it in bin should work, yeah
araraloren AlexDaniel oh, thanks
daemon timotimo++ # nice one thank you
araraloren I think it should in bin/your-script 11:59
timotimo isn't that what they said? 12:00
daemon App-MyApp/bin/do_something :) yep I was only checking incase there was somewhere else I was meant to or such
araraloren yeah
daemon I also presume I should set the execute bit on it 12:01
araraloren daemon , no
daemon oh make install will handle that then 12:02
araraloren The real executable things is not your script
AlexDaniel araraloren: now I'm curious. In python, can you get the step value out of a range object?
araraloren AlexDaniel IDK :)
daemon well no, the executable is perl; but perl is instructed to load my script via #!/usr/bin/env perl 12:03
it still needs to be chmod +x though
araraloren I am not a expert of python
daemon the question is wether it should be in the source
or wether make install will automatically set that for a user installing it
timotimo correct me if i'm mistaken but i think zef takes care of that
araraloren daemon, no, they will generate a script for u
timotimo i think it even installs a .bat if you're on windows
araraloren yeah, zef take care of that
you don't need to care about that 12:04
daemon I thought I was in #perl -_-"
raschipi m: 2.5 ~~ 2..3; # araraloren: Ranges really are just a start and end point.
camelia ( no output )
AlexDaniel araraloren: because if not, then the … operator is pretty much equivalent to the range() sequence in python
raschipi m: say 2.5 ~~ 2..3;
camelia True
araraloren AlexDaniel you are right
it's the similiar things
they are
AlexDaniel maybe one difference would be that equivalence testing of range sequences in python is immediate while in perl 6 I guess you can't do that quickly 12:06
araraloren hmm
AlexDaniel but then, in Perl 6 you can go up to ∞ :) 12:07
araraloren I was watching something write in python, and we plan make a module like Numpy 12:08
yeah, Perl 6 is powerful obviously
AlexDaniel and stackoverflow suggests range(sys.maxsize**10) for that in python, heh
araraloren than python
AlexDaniel ( stackoverflow.com/questions/988421...-in-python )
timotimo that's cute
12:09 wamba joined
timotimo it'll take you a long long time to iterate to that end 12:09
12:09 Ven`` left
araraloren haha 12:09
timotimo if your program can run for a few hundred years before it inexplicably fails, it's no longer your problem
AlexDaniel timotimo: you sure about that? Say you have an empty body in the for loop, isn't it possible that it'll optimize it away? 12:10
12:10 Ven`` joined
timotimo i don't think it will 12:10
AlexDaniel yeah, but potentially
araraloren so how long my perl6 script will runing `for 1..* { .say }`
jmerelo araraloren: give it a try... :-) 12:11
araraloren yeah, In C it will optimized
good idea, I will give it a try XD
12:13 wamba left
AlexDaniel timotimo: because, I'm thinking, if it is known that the range is finite, and if it's known that there's nothing to do with its elements… surely you can throw it all away and move on? :) 12:13
timotimo: I understand that things are not that smart, but… :) 12:14
timotimo the question is: do you want to ruin code that uses big loops to busy-wait or not 12:15
El_Che is there some thought given to obsolence of features? E.g. will 6c be supported for ever, or will be the codepath be remove when we hit, e.g., 6.e? 12:23
12:30 Ven`` left, uzl joined
uzl good morning all! 12:32
yoleaux 22 Jul 2018 06:25Z <jmerelo> uzl: for big translations, using some software really helps speed up the process
pmurias El_Che: doesn't it depend on the cost of maintaining 6.c and the amount of code that uses it 12:33
12:34 andrzejku joined
andrzejku araraloren hey! 12:34
AlexDaniel El_Che: we haven't released v6.d yet and you're talking about removing v6.c support :) 12:35
uzl .tell jmerelo Unfortunately I wasn't aware of this ;). But doing without it wasn't that hard for me so I guess this possibly benefit a potential reviewer instead.
yoleaux uzl: I'll pass your message to jmerelo.
araraloren andrzejku hey
12:36 Ven`` joined, plutes joined
jmerelo uzl: OK, got it. Great work, anyway. 12:37
yoleaux 12:35Z <uzl> jmerelo: Unfortunately I wasn't aware of this ;). But doing without it wasn't that hard for me so I guess this possibly benefit a potential reviewer instead.
12:38 psychoslave joined, lizmat left
El_Che AlexDaniel: exactly 12:39
AlexDaniel: most projects think about that when it's de facto too late 12:40
cfr the discussions about experimental features on Perl 5
uzl jmerelo: Thanks! I'm going over myself but I guess it doesn't qualify as a proper revision. After all, it's hard to spot your own errors/mistakes.
AlexDaniel interesting read: perldoc.perl.org/perlpolicy.html#B...EPRECATION
uzl I'm trying to extract Pod from module in the root directory and being unable to do so. This is the file structure: 12:42
Module/lib/ENIGMA/Machine/Factory.pm6
Module/lib/ENIGMA/Machine/Data.pm6
El_Che yet, every policy doc is useless if not enforced
uzl With this: perl6 --doc=Markdown lib/ENIGMA/Machine/Factory.pm6 > output.md 12:43
12:43 [particle]1 left
uzl And getting this: Could not find ENIGMA::Machine::Data at line 50 in: 12:43
AlexDaniel El_Che: another thing is that it's up to a compiler to support some or all language versions 12:44
El_Che AlexDaniel: in an ideal world, sure 12:45
AlexDaniel El_Che: so basically you want to know when we're going to drop support for v6.c in Rakudo… ideally never :)
El_Che But as long there is only Rakudo, what Rakudo does is what Perl 6 does 12:46
AlexDaniel from p5 docs: It is very important that existing software written in Perl continue to work correctly” – I think this is a good standard
and technically we're getting there
El_Che A bloated compiles for statically compiled languages is not the same as a bloated runtime, I assume
12:47 dogbert2 joined
El_Che AlexDaniel: if desired that a good goal. However, it probably kept perl5 from going forward 12:47
12:51 wamba joined 12:52 Ven`` left
ecocode Hi. I'm missing a backlog. Did anybody answer my question yesterday concerning role inherintance ? 12:54
or, is perl6 irc chan archived somewhere ?
sena_kun ecocode, colabti.org/irclogger/irclogger_logs/perl6 12:55
ecocode sena_kun++
sena_kun ecocode, see channel topic. :)
masak ecocode: your question is here: colabti.org/irclogger/irclogger_log...07-22#l652
ecocode: I'd say the answer is "yes" 12:56
as in, if you can get away with deriving a new role from the old one and adding your own method, then that seems to be the best way 12:58
12:59 psychoslave left
pmurias El_Che: keeping backwards compability impedes progress, but it keeps stuff from bitrotting 13:00
ecocode so, say I add a method in my RoleA which 'does RoleB' and then the author of RoleB also adds the same method to RoleB. what will happen ?
El_Che pmurias: if you run 10y old code, you could probably use an older package, e.g. one provided by a LTS distro 13:01
13:01 uzl left 13:02 plutes left
AlexDaniel El_Che: that's harder than it sounds 13:03
you can't just go and install that, as it will uninstall the newer package 13:04
El_Che AlexDaniel: *everything* is harder than it sounds in IT
AlexDaniel which you probably need to run newer code
raschipi Even P5 CPAN module authors that try to keep long backwards compatibility only do so for 10 years, I think. Currently that means supporting perl > 5.10.
13:04 Ven`` joined
raschipi Anyone that needs to use p5 older than that has to also use older modules. 13:04
El_Che raschipi: my perl 5 code on the latest centos can't use signatures in 2018
raschipi El_Che: why? 13:05
El_Che listening to "while my guitar gently weeps" from the beatles
old perl
13:06 plutes joined
timotimo was just listening to some If These Trees Could Talk 13:06
raschipi And there's not an old version of a module that does what you need? 13:07
El_Che I mean the one in core
raschipi Right, if you need new features, you'll need to upgrade.
pmurias El_Che: breaking back compat is a tradeoff 13:08
timotimo we'll hopefully be supporting 6.c for a long long time, but surely soon-ish after 6.d is the default we'll swap around which one is the "base" and which is the "extended" setting 13:09
raschipi I think 10 years is a good long time for support. People that want to keep code older than that running will have to keep an old rakudo around too.
timotimo i.e. most code will move from the 6.c to the 6.d folder, and the 6.c folder will have only a bunch of augments and such in it
which is just an implementation detail, really
BBIAB
pmurias also modules not supporting old rakudos is a different thing from rakudo not supporting old modules 13:10
13:11 plutes left
raschipi pmurias: How? 13:11
pmurias lunch& 13:12
El_Che pmurias: agreed 13:15
raschipi El_Che: how is it different?
El_Che what pmurias says? I agree it's a tradeoff 13:16
you win some, you loose some
raschipi right. I meant how is it different than with modules. I agree it's a tradeoff. 13:17
El_Che yes, modules will break
raschipi If modules drop support for old versions, what's the point of keeping those versions anyway? 13:20
El_Che there is no suck things as "modules" of course
people will break support on different times
however, if something like zef breaks, it's a big bang 13:21
Geth doc: 4277945d0b | (Tom Browder)++ (committed using GitHub Web editor) | writing-docs/CREATING-NEW-DOCS.md
add valid and invalid examples
13:22
13:22 zakharyas joined
raschipi For p5, if a module doesn't support old perl, it will be avoided like the plague. 13:22
13:23 Ven`` left
tbrowder_ .ask uzl is your bad pod extraction example shown somewhere? 13:26
yoleaux tbrowder_: I'll pass your message to uzl.
13:29 skids joined 13:30 stmuk joined 13:31 pmurias left, pmurias joined, stmuk_ left 13:34 Ven`` joined
Geth doc: tbrowder++ created pull request #2209:
move i18n files to newsubdir
13:36
13:37 plutes joined 13:42 xtreak left 13:48 lizmat joined 13:49 epony joined 13:58 [particle] joined 13:59 Ven`` left 14:02 molaf left 14:03 molaf joined 14:11 plutes left 14:17 plutes joined 14:22 diakopter joined, raschipi left 14:30 xtreak joined 14:36 uzl joined
tobs m: (^10)[2.polymod($_ xx *).map($_ ** *) »%» *] with 1 14:38
camelia (signal SEGV)
tobs I know the parameter `with 1` makes it bonkers but a segfault is a problem anyway, right? I can't seem to golf it down further 14:39
uzl Do declarator blocks allow for newline-separated paragraphs? docs.perl6.org/language/pod#Declarator_blocks
yoleaux 13:26Z <tbrowder_> uzl: is your bad pod extraction example shown somewhere?
tbrowder_ uzl: i think they are allowed, but i they are eventially normalized to a single string, but i'll have to look closer...later 14:42
jnthn tobs: Yes, please report it. 14:43
tbrowder_ *i think they
tobs jnthn: already on it o7
uzl tbrowder_: That's what I noticed. Everything in it is jumbled it into one single line as far as I can see. 14:44
tbrowder_: Pod extraction example here: 14:50
Factory.pm6 => pastebin.com/raw/XxipTqLB
Data.pm6 => pastebin.com/raw/kSqEyGqf
The file structure is as follows:
Module/lib/ENIGMA/Machine/Factory.pm6
Module/lib/ENIGMA/Machine/Data.pm6
I'm trying to extract the Pod running the
command inside the Module directory.
tobs m: (^10)[2.polymod($_ xx *) »%» *] with 1
camelia (timeout) 14:51
tobs m: (^10)[2.polymod(1 xx *).map(1 ** *) »%» *]
camelia (timeout) 14:52
tbrowder_ uzl: i don't have much time at the moment, but youcould lool at the original specs and see what was intended, then look at roast tests to see what is "specced", then file an issue or feature request with the rakudo project if appropriate and desired 14:53
14:54 Schepeers joined
uzl tbrowder_: I was able to extract the pod by commenting out all the executable code in the module. 14:54
14:54 curan left
uzl That's fine! I'll take a look when I have the time. 14:55
tbrowder_ regarding your pod gist, i don't see a declarator block; and it *may* be valid pod but i don't think it's good practice to start with a =head and then start =begin pod later
please disregard my last statement 14:56
but i didn't see a declarator block 14:57
SmokeMachine hi! had anyone tried github.com/FCO/SeqSplitter to compare with `.toggle`? 14:58
14:58 plutes left, fake_space_whale joined
tbrowder_ also try to reduce to ("golf") a small example to better see the problem to file with any issue; problem also could be with p6doc 14:59
uzl tbrowder_: the pod gist was related to this compilation error: Could not find ENIGMA::Machine::Data.pm6 when running perl6 --doc=Markdown lib/ENIGMA/Machine/Factory.pm6 > output.md inside Module 15:01
15:01 ExtraCrispy joined 15:02 jmerelo joined
uzl I'll do what you advised and see what happens. 15:02
jmerelo releasable6: status
releasable6 jmerelo, Next release will happen when it's ready. 4 blockers. 78 out of 241 commits logged
jmerelo, Details: gist.github.com/5e3db23d036398d071...ca489de75f
tbrowder_ uzl: gotta go...back later 15:04
AlexDaniel jmerelo: don't hold your breath, will be ready by the end of the week
15:04 zakharyas left
AlexDaniel m: (^10)[2.polymod($_ xx *).map($_ ** *) »%» *] with 1 15:04
camelia (signal SEGV)
AlexDaniel c: 2018.06,HEAD (^10)[2.polymod($_ xx *).map($_ ** *) »%» *] with 1
jmerelo AlexDaniel: great.
committable6 AlexDaniel, ¦2018.06: ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» ¦HEAD(c47e368): « «exit signal = SIGSEGV (11)»»
AlexDaniel bisect: 2018.06,HEAD (^10)[2.polymod($_ xx *).map($_ ** *) »%» *] with 1 15:05
bisectable6 AlexDaniel, Using old=2018.06 new=HEAD in an attempt to DWIM
AlexDaniel, Bisecting by exit signal (old=2018.06 new=c47e368). Old exit signal: 1 (SIGHUP)
15:05 raschipi joined
tobs oh that's nice ^ 15:05
bisectable6 AlexDaniel, bisect log: gist.github.com/877477f4b5c00bee50...a68a0818ea
AlexDaniel, (2018-07-09) github.com/rakudo/rakudo/commit/c2...356201cc21
AlexDaniel c: c2446b03f^,c2446b03f (^10)[2.polymod($_ xx *).map($_ ** *) »%» *] with 1 15:06
committable6 AlexDaniel, ¦c2446b03f^: ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» ¦c2446b0: « «exit signal = SIGSEGV (11)»»
AlexDaniel Geth: ver github.com/rakudo/rakudo/commit/c2...356201cc21
Geth AlexDaniel, version bump brought in these changes: github.com/perl6/nqp/compare/2018....6-g39f1057
AlexDaniel Geth: ver github.com/perl6/nqp/commit/39f105...5b2ce19e8b
Geth AlexDaniel, version bump brought in these changes: github.com/MoarVM/MoarVM/compare/2...1-gcae4731
AlexDaniel tobs: thanks, I left a comment 15:09
uzl tbrowder_: see you!
15:09 uzl left
raschipi thanks tobs 15:13
15:13 pmurias left 15:17 limarfrek joined, wbn_ joined 15:19 pnu__ joined, mithaldu_ joined, |oLa| left 15:20 kerframil left, alpha6 joined
buggable New CPAN upload: Algorithm-Evolutionary-Simple-0.0.5.tar.gz by JMERELO modules.perl6.org/dist/Algorithm::E...an:JMERELO 15:20
15:20 esh_ joined 15:21 obfusk_ joined, |oLa| joined
raschipi Nice, someone fixed the CPAN upload notices to link to the module page instead of the tarball. 15:21
15:22 peteretep joined, hoelzro joined 15:23 mrsolo joined, iviv joined, BertolucciTalks joined, kipd joined 15:25 roguelazer joined 15:27 mephinet joined 15:29 wamba left
scimon Is it possible to define associative variables in a prototype for a multi sub that takes positional and associative inputs? 15:38
eg : multi sub test( $a, :$mute=False ) { note $a unless $mute; $a * 5 } 15:39
I don't think I can defined $mute in a prototype. (Unless I'm doing it wrong)
(I generally assume I am) 15:40
raschipi The proto can't modify arguments.
jmerelo scimon: you probably can, but since it's not instantiated, it would be little use... 15:41
15:42 pmurias joined
scimon m: proto test(Bool :$mute=False, |) { * };multi test(:$mute, Int :$a) { say $a unless $mute };test(:a(1),:mute) 15:43
camelia ( no output )
scimon proto test(Bool :$mute=False, |) { * };multi test(:$mute, Int :$a) { note "a {$a}" unless $mute; $a +5 };say test(:a(1));say test(:a(2),:mute)
evalable6 a 1
6
7
scimon But if I wanted $a to be a positional instead of Associative it goes squiffy. 15:44
pmurias raschipi: there isn't a lot of point in keeping old versions of Rakudo around
scimon (On no.... I figured out what I'd done.) 15:45
Right... Back to the slides.
34 done so far.
jmerelo m: proto test(Bool :$mute="Viriviri", |) { * };multi test(:$mute, Int :$a) { note "a {$a}" unless $mute; $a +5 }; say test(:a(2),:mute)
camelia 5===SORRY!5=== Error while compiling <tmp>
Default value 'Viriviri' will never bind to a parameter of type Bool
at <tmp>:1
------> 3proto test(Bool :$mute="Viriviri"7⏏5, |) { * };multi test(:$mute, Int :$a) {
expecting any of:
pmurias the v6.c stuff support is usefull for running existing code but generally people should be using new Rakudo version not old ones
jmerelo m: proto test(:$mute="Viriviri", |) { * };multi test(:$mute, Int :$a) { note "a {$a}" unless $mute; $a +5 }; say test(:a(2),:mute)
camelia 7
scimon m: proto test(Bool :$mute=False, |) { * };multi test(Int $a, :$mute) { note "a {$a}" unless $mute; $a +5 };say test(1);say test(2,:mute) 15:46
camelia a 1
6
7
jmerelo m: proto test(:$mute="Viriviri", |) { * };multi test(:$mute, Int :$a) { note "a {$a}" unless $mute; $a +5 }; say test(:a(2))
camelia a 2
7
raschipi Modules should work at least with the rakudo versions shipped on stable distros for a few years, I think. People will get stuck on old Rakudo just the same they get stuck on old perl.
jmerelo scimon: so it's really using the value... I know nothing 15:47
15:47 araraloren left
scimon I just had the order wrong. 15:47
15:48 robertle left, zakharyas joined
timotimo bisect: (^10)[2.polymod($_ xx *).map($_ ** *) »%» *] with 1 15:48
oh, was already bisected 15:50
pmurias raschipi: we shouldn't teach people to use old distro rakudos
raschipi pmurias: not up to you, sorry. If you break old code, people will just get to the conclusion it's not worth it. 15:53
[Coke] I think if we got everyone updated to <today> that would be a discussion to have, but there are distros with very-old-rakudos today that a lot of modern stuf isn't going to work on. 15:54
pmurias raschipi: depends on the language, like in node.js community supports the debian node.js
[Coke] I think it's not an either or though: getting distros to more regularly update is something we should _also_ be doing.
raschipi Now, if you are talking about an initial time frame, I agree. Right now, it shouldn't. But for Perl 6 to be a viable language, at some point it will have to be a feature.
pmurias * nobody 15:55
raschipi I don't think any versions before rakudo is declared stable should be recommended, but that has to come someday. 15:56
16:00 lizmat left
pmurias it's a tradeoff between not using stuff from new Rakudos in modules and the ease of use for users 16:01
but node.js succeeded with debian actively hindering it 16:02
16:02 domidumont left
pmurias obviously getting as new rakudos as possible in distros is best 16:03
16:03 lizmat joined, zakharyas left
raschipi Perl 6 will most probably have users like Perl 5 has. The amount of users with shiny perl is very small. 16:04
People don't want to rewrite code all the time. Node is activelly harful because people just use old, unsupported versions. 16:06
What they won't do is keep rewriting code as new compiler versions are released. 16:07
pmurias we aren't not talking about rewriting code
just upgrading your rakudo when new modules come out 16:08
16:08 bisectable6 joined
AlexDaniel timotimo: yeah, but bot pinged out :( 16:09
16:09 plutes joined
raschipi If that is consensus, it's good to write it in stone right now so that I can stop wasting my time, then. 16:10
I want a Perl, not node.
16:15 [particle] left, lizmat left
jmerelo One of the things I have been missing on my navigation through academia and Perl 6 is papers on Perl 6 architecture: the three tiers, the JIT, so on and so forth. 16:16
16:16 lizmat joined
jmerelo In Arnhem, during the Perl workshop there, I asked for help writing some papers on the subject. Or a paper. Something. Right now, I'm referencing Audrey Tang's paper in 2006? and moritz's book 16:16
Having a paper published in some software engineering journal or conference would help establish currency among academia. It could serve as a whitepaper also to explain architecture of the language to newcomers. 16:18
Maybe all of us in academia could try and prepare that kind of paper, with input from the people actually doing the stuff.
What do you think?
16:19 nativecallable6 joined, benchable6 joined, squashable6 joined
raschipi jmerelo: People dislike academia a little, don't want to bring their attention. They will ruin everything, always complaining. 16:20
lizmat jmerelo: FWIW, I think that's an excellent idea
jmerelo The paper "An overview of the Scala programming language", for instance, was published as a lab report, but still has 651 citations.
lizmat: so are you in? :-) 16:21
masak jmerelo: go for it!
lizmat Yeah, I'm in (I think)
jmerelo Go, for instance, has a paper by R. Pike. 16:22
Would it be OK if I create a repo called "paper" in the perl6 org? 16:23
(I don't know if I can)
16:23 scimon left
pmurias raschipi: it's up to each module author how old rakudos he wants to support 16:23
jmerelo Well, I aparently can. So let's go ahead with this.
pmurias raschipi: rakudo tries not to break modules (as opposed to node.js) 16:24
raschipi Well, if module authors don't support old rakudos, there's no point, they will just break my code. 16:25
donpdonp the http cro lib is very nice. feels like ruby's sinatra.
16:25 fake_space_whale left 16:26 [particle] joined
jmerelo OK, team created and lizmat added to it. Anyone else wants in, just let me know. 16:26
raschipi Anyway, if my predictions are true, that people will come to Perl 6 expecting a Perl, module authors will have to support old rakudos or they won't have any users at all.
[Coke] raschipi: maybe you should frame this discussion in terms of core support of old rakudos? 16:27
because module authors are on their own.
In terms of what they want to support.
that said, we've tried to be very good about that sort of thing, but core doesn't have a LTS model at the moment, that I'm aware of. 16:28
16:29 Khisanth joined
raschipi I think I have to think more about why people get 16:30
stuck in old perl.
16:32 hami joined 16:33 wamba joined, dogbert17 joined 16:34 hami left
jkramer Why is there such a difference between those two variants? bpaste.net/show/a096e34c419d 16:35
16:35 greppable6 joined, plutes left
jkramer The only thing I changed is "my $sqrt = $n.sqrt.Int; for 1..$sqrt ..." vs "for 1..$n.sqrt.Int ..." 16:36
16:36 xtreak left
jmerelo jkramer: good question. 16:37
m: my $sqrt = $n.sqrt.Int; say ^$sqrt; say ^$n.sqrt.Int 16:38
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$n' is not declared
at <tmp>:1
------> 3my $sqrt = 7⏏5$n.sqrt.Int; say ^$sqrt; say ^$n.sqrt.In
jmerelo m: my $sqrt = $n.sqrt.Int; say ^$sqrt; say ^($n.sqrt.Int)
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$n' is not declared
at <tmp>:1
------> 3my $sqrt = 7⏏5$n.sqrt.Int; say ^$sqrt; say ^($n.sqrt.I
jmerelo m: my $n=99999; my $sqrt = $n.sqrt.Int; say ^$sqrt; say ^($n.sqrt.Int) 16:39
camelia ^316
^316
jmerelo jkramer: ah, OK, the difference is in time.
16:40 dakkar left
jkramer Yes :) 16:40
jmerelo jkramer: I guess you're simply computing $n.sqrt.Int after every step. You're not guaranteed that $n stays the same during the loop. In the first case the loop limit is precomputed.
jkramer That's what I suspected too but sqrt is only called once 16:41
lizmat yeah, I'm pretty sure it only gets to be called once
jkramer I just checked actually :)
lizmat jkramer: I suggest running each version separately with --profile and see what / where the differences are
16:42 warriors joined
jkramer Ok, I'll try :) 16:42
Hmm ok I don't really know what this is telling me. :) pste.eu/p/uUtV.html vs pste.eu/p/7HDs.html 16:52
jmerelo Click on routines 16:53
sqrt is called 1000 times in both cases
jkramer Yup, I saw that
16:54 plutes joined
warriors thanks stmuk_ :) i will 16:57
jmerelo jkramer: there's a 10 ms difference. That could be easily random error. 16:58
sena_kun jmerelo, it is more, actually. Like ~7 seconds. For my machine it is `16.4` and `21.6` seconds respectively. 17:02
17:02 Zoffix joined
Zoffix m: say 40.787/40.339 17:02
camelia 1.011106
Zoffix jkramer: they're basically identical in time.
jkramer jmerelo: It was a 7 second difference in the paste above, I just reduced the number of tests to 1000 for profiling so it's faster :) 17:03
Zoffix jkramer: and you're just measuring them in the same program, so by the time the second one runs, some time is spent cleaning up the stuff from the first one
but you're measuring that cleanup as if it were runtime of the second version
jkramer Hmm ok let me try again
DrForr Benchmarking is a black art :)
Zoffix When I run both of them at the same time, I get: 37.8769816 vs 43.0141966 17:04
17:05 kaare__ left
Zoffix And now I reversed them (so second one runs first), and the times are: 40.22015629 vs. 44.73378747 17:06
You have to measure them separately, to avoid the GC times intefering. (I think sticking `use nqp; nqp::force_gc` between runs can also help) 17:07
jkramer Yeah seems like it was due bad benchmarking :) I ran both seperately now and the second one was slightly faster than the first this time :) 17:08
DrForr I'm looking for foldcase in the docs, I'd swear we had this feature. Save that, something that's a Unicode-safe way of comparing two strings with different case sensitivity. 17:09
Zoffix With nqp::force_gc before measurement of each variant, I got: [divs3] 41.12811823 vs. [divs2] 46.1526554. Doesn't look like it helps much
DrForr: .fc
DrForr Aha, thanks. 17:10
Zoffix m: say "ß".fc eq "SS".fc
camelia True
DrForr Is there a way to add aliases for short names like that?
(for the website, I mean.)
17:11 molaf left
Zoffix DrForr: yeah, stick X<|foldcase> near where it's documented (I may be wrong about exact syntax, just search for other X<...>s) 17:11
DrForr Hrm. I may submit an issue/patch for that.
17:13 kaare_ joined
jmerelo Hi, DrForr ! 17:20
17:20 yoleaux joined, ChanServ sets mode: +v yoleaux
DrForr Hola, JJ! ?Como estas? 17:20
jmerelo DrForr: Bien. ¿Y tú?
DrForr (sorry for the Unicode fail, I don't have \N[STAND-ON-YOUR-HEAD-AND-TYPE-QUES] on my keyboard :) 17:21
Bien. Esperando para una llamada de mi trabajo nuevo.
jmerelo DrForr: ¡Buena suerte! 17:22
DrForr Gracias.
jmerelo DrForr: I'll try to do your Origami BoF in Glasgow. Hope it's not too difficult for beginners 17:23
DrForr Heh. I've learned a few lessons, it won't be.
Geth doc: bfbbb62095 | (JJ Merelo)++ | writing-docs/CREATING-NEW-DOCS.md
Deleting whitespace before @coke sees it and adding some letters
17:26
DrForr They had a management shakeup a few weeks back *and* I found out that what was supposed to be remote work wasn't. I think they're deciding whether they should offer me the pay raise for working from the home office, or just abandon the process, throw away the money they've spent on my visa and leave me high-n-dry. The rational thing to do is give me the GBP10K increase I'd get for commuting to London and go on with life, but companies can be weir 17:28
17:29 plutes left
El_Che you would move to London? Expensive 17:30
17:31 Zoffix left
lizmat El_Che: it would be worse: it would be moving back to London *again* 17:31
DrForr Hence the pay raise I'd expect.
I'm thinking positive here, because the pay raise is only what I'd expect for working in London, and since I've proven myself to be able to do something the previous management hasn't, there might even be a better position in the offering. 17:33
El_Che DrForr: if the plan is to stay in the EU, an other place of residence may be more useful
DrForr I'm well aware of that, but I don't have that many options as a non-EU resident. 17:34
El_Che DrForr: yeah, that the rational thing to do. Companies are weird though, as you say
your legal residence in CZ/RO ended (papers wise)? 17:35
DrForr: good luck, anyway
DrForr That's another story. It ended June 2nd when I was told it ended in December. I had to vacate the premises rather precipitiously, and roundly cursed the CZ legal department when they "made a mistake" which looked to me like "lied to cover their asses". 17:37
17:37 wamba left 17:38 wamba joined, statisfiable6 joined
DrForr Thanks. I ... have not had good luch with HR over there, which leads me to think along lines I shouldn't. I will assume that they choose to treat their workers fairly, in the absence of proof. 17:38
17:48 limarfrek left
DrForr (even though I'm not technically working there yet...) 18:01
El_Che DrForr: when is the verdict due? 18:04
18:10 stmuk_ joined 18:12 stmuk left 18:13 epony left 18:17 epony joined 18:21 jmerelo left 18:27 giraffe joined 18:28 TreyHarris left 18:29 pmurias left 18:30 pmurias joined 18:40 TreyHarris joined
tbrowder_ jmerelo: count me in if i can help 18:41
18:41 Ven`` joined 18:46 dct joined
SmokeMachine .tell Zoffix Is there any generic `App::Lang::*::VerbTrainer`? that would be great to "change the rules" and make a `App::Lang::Portuguese::VerbTrainer` 18:50
yoleaux SmokeMachine: I'll pass your message to Zoffix.
AlexDaniel .seen zostay 18:52
yoleaux I saw zostay 15 Jul 2018 02:38Z in #perl6: <zostay> $dom.find('DocumentFiscalPeriodFocus').grep({ .namespace eq 'xbrl.sec.gov/dei/2014-01-31' });
18:53 xiaomiao joined
AlexDaniel zostay: are you around? :) 18:53
18:54 Zoffix joined
Zoffix . 18:54
yoleaux 18:50Z <SmokeMachine> Zoffix: Is there any generic `App::Lang::*::VerbTrainer`? that would be great to "change the rules" and make a `App::Lang::Portuguese::VerbTrainer`
Zoffix SmokeMachine: no, and I kinda gave up on the French module too because there are plenty of online tools already that can do irregular verbs too (mine cant)
18:55 pmurias left
Geth ecosystem: 90a780e057 | (Zoffix Znet)++ (committed using GitHub Web editor) | META.list
Remove App-Lang-French-VerbTrainer

It's no longer in development
18:55
SmokeMachine :(
Zoffix: had you takken a look at SeqSplitter? I really prefer those 6 methods than `.toggle`... 18:57
Zoffix grrrrrrrr 18:58
a pox on whoever came up with Ctrl+Q shortcut in the shell >_< 18:59
timotimo for some reason i haven't had to ctrl-s in what feels like ten years
Zoffix Accidentally pressed that instead of Ctrl+W while writing a commit message :)
19:00 Ven`` left
Zoffix SmokeMachine: nope 19:00
SmokeMachine: that's kinda the problem with that method in the first place: there's no great usecase.
SmokeMachine: and kinda why in 6.d I want implementation of a module to be a requirement for majority of features. 19:01
If no one cares about using a feature with a module, chances are it's not important enough to be in core. 19:02
SmokeMachine wasnt the ifconfig a good example?
moritz occasionally I use Ctrl+S to freeze a terminal, intentionally
timotimo oh, ctrl-q is the one that unfreezes?
correct my message from above, then
moritz mostly when I read some logs of a running program, and don't want the terminal to auto-scroll when it generates more lines 19:03
Zoffix SmokeMachine: I'd just split on blank lines, as I've said: say qx/ifconfig/.split("\n\n").first: *.starts-with: "lo" 19:04
AlexDaniel uh, ctrl+s? But that's just search?
Zoffix SmokeMachine and that's a lot more descriptive than some weird .toggle with repeated regex
SmokeMachine Zoffix: not on Mac... there are no blanklines between the interfaces... 19:05
19:06 limarfrek joined
Zoffix SmokeMachine: fine: say qx/ifconfig/.split(/^^)>\S+/).first: *.starts-with: "lo" 19:10
SmokeMachine: in other words, your toggle with two regexes is replaced by a split with a single regex
SmokeMachine: another way, with the `ff` op: .say if /^lo/ ff !/\s+/ for qx/ifconfig/.lines 19:11
nqp: nqp::say(+@(nqp::create(QAST::Node))) 19:12
camelia 0
Zoffix Are there any QAST::* that can't be @(...) ?
timotimo do you mean from an implementation standpoint, or just "are there qast nodes that never have children"? 19:13
Zoffix timotimo: I mean if I have `if nqp::istype($qast, QAST::Node) { for @($quast) { ... } }`
Will taht ever explode because some nodes can't do @() 19:14
timotimo i haven't checked, but i'd be surprised if it did
on the other hand, exception handlers that never run are cheap
Zoffix k. I tried nodes based on filenames in nqp/src/QAST with nqp::say(+@(nqp::create(QAST::____))) and none crashed, so I think I'm safe. 19:16
timotimo you're building an amazing optimization? 19:17
or working on the migrator?
oh you already committed
19:18 dct left
Zoffix m: use Test; is-deeply ((1..10)[2.polymod($_ xx 1000).map($_ ** *) »%» *] with 1), 2 xx 1001, "no SEGV in curries + with" 19:18
camelia ok 1 - no SEGV in curries + with
Zoffix uhh
it covered the bug on my box
m: use Test; is-deeply ((1..10)[2.polymod($_ xx 3000).map($_ ** *) »%» *] with 1), 2 xx 1001, "no SEGV in curries + with"
camelia not ok 1 - no SEGV in curries + with
# Failed test 'no SEGV in curries + with'
# at <tmp> line 1
# expected: $(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
Zoffix m: use Test; is-deeply ((1..10)[2.polymod($_ xx 3000).map($_ ** *) »%» *] with 1), 2 xx 3001, "no SEGV in curries + with"
camelia ok 1 - no SEGV in curries + with
Zoffix crap 19:19
m: use Test; is-deeply ((1..10)[2.polymod($_ xx *).map($_ ** *) »%» *] with 1), 2 xx 3001, "no SEGV in curries + with"
camelia (timeout)
Zoffix e: use Test; is-deeply ((1..10)[2.polymod($_ xx *).map($_ ** *) »%» *] with 1), 2 xx 3001, "no SEGV in curries + with"
evalable6 (signal SIGSEGV)
Zoffix e: use Test; is-deeply ((1..10)[2.polymod($_ xx 1000).map($_ ** *) »%» *] with 1), 2 xx 1001, "no SEGV in curries + with" 19:20
evalable6 (signal SIGSEGV)
Zoffix OK, it does cover it :) Camelia is just weird
But yeah, fixed that bug.
19:22 Zoffix left
xinming_ anyone here would give hints on how I can get easier to remember | vs || in regex? 19:23
some hint, otherwise, I'll always get confused.
moritz are you aware that in regular code, || short-circuits?
same for regexes
m: say 1 || say("never executed") 19:24
camelia 1
zostay AlexDaniel: periodically
xinming_ Ah, so, || will always matched in order, and will be short-circuited
thanks, that'll be much easier to remember. 19:25
zostay btw, a random one-liner that was useful to me recently: perl6 -MCro::HTTP::Server -MCro::HTTP::Router -e 'my $s=Cro::HTTP::Server.new(:host("127.0.0.1"), :4321port, :application(route { post -> *@_ { content "text/plain", ""; note request.Str ~ await request.body-text } }));$s.start;react {whenever signal(SIGINT) {$s.stop;exit}}'
jnthn++ :)
AlexDaniel zostay: so I'm looking at github.com/zostay/p6-Path-Router
zostay: it is currently failing some tests, can you take a look at it?
zostay uh... sure. I'll see if I can get to that later tonight. That was the first thing I ported to Perl 6 while I was still figuring the language out. 19:26
AlexDaniel zostay: cool, thanks! Let me know if you can't do it and I'll attempt to golf it myself 19:27
zostay: I'm not sure what's going on there, could be a bug in rakudo
zostay going back to the one-liner, the context: i was trying to access an Amazon API and something was going badly wrong, so I just needed to compare the AWS CLI request to do what I wanted with what my code was generating and that just dumps whatever is sent to the POST request onto $*ERR 19:31
DrForr Speaking of cro-related bugs, IO::Socket::Async::SSL fails to install because it's unable to find libssl.so when it should (now) be looking for an explicit version - I'm going to abstract what I have for Readline into LibraryFind that returns a path to a working library module. 19:32
I really don't want to follow that approach, I'd much prefer to have LibraryCheck do the work for me but it can't run inside an 'is native(...)' adverb call. 19:35
raschipi Everyone thank Gordon Bell for the XON and XOFF control codes. 19:37
Invented in 1960, everyone that used ^q and ^s for something else later are doing it wrong. 19:38
AlexDaniel zostay: oh, here
c: 2018.06 gist.github.com/AlexDaniel/a0248b1...b86c9fb79f
committable6 AlexDaniel, gist.github.com/a4f56fe861aab3735d...7435364d44
AlexDaniel c: HEAD gist.github.com/AlexDaniel/a0248b1...b86c9fb79f
committable6 AlexDaniel, gist.github.com/b1e80fa3cfceb99182...32e9460392
AlexDaniel bisect: old=2018.06 gist.github.com/AlexDaniel/a0248b1...b86c9fb79f 19:39
bisectable6 AlexDaniel, Bisecting by output (old=2018.06 new=8549589) because on both starting points the exit code is 0
AlexDaniel hmmm that doesn't sound right
bisectable6 AlexDaniel, bisect log: gist.github.com/6b090c89c62d9f629c...c1d2d9a281
AlexDaniel, (2018-07-16) github.com/rakudo/rakudo/commit/98...8ba8212719
DrForr Grr, C-s is a minor reason why I switched to tmux - C-a was too close to C-s and I kept hitting it. Yes, you can disable it but then you lose flow control when you need it. Or you can move the main control key to C-b or something, but by that point... 19:40
AlexDaniel zostay: very likely a rakudo bug I'd say 19:41
SmokeMachine Zoffix, the ff solution will run forever if its a infinite list, right?
AlexDaniel but can't know for sure without a golf
zostay ok 19:43
SmokeMachine .tell Zoffix the ff solution will run forever if its a infinite list, right? the SeqSplitter wont... 19:44
yoleaux SmokeMachine: I'll pass your message to Zoffix.
19:58 benjikun joined 20:00 pmurias joined
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/07/23/...cate-guts/ 20:01
20:02 hami joined
raschipi Yay 20:06
moritz lizmat++ 20:07
tweeted
20:11 molaf joined 20:12 Ven`` joined
El_Che thx, lizmat. Always a pleasure to read the weekly 20:13
ownTheLibs holy crap that german workshop 20:14
moritz these germans, such workshop 20:18
currently Erlangen.pm is discussing brining the 2020 GPW to the Erlangen/Nürnberg area again 20:19
lizmat moritz: how about a TPCiE ? 20:20
moritz lizmat: we are discussing if that is an option as well
us doing the local stuff, and the Frankfurt.pm guys the general org / CFP etc. 20:21
lizmat hopes it gets to be a proposal 20:22
El_Che "I want propo..." 20:25
granted
Erlangen is the best place for an Erlang conference 20:26
lizmat
.oO( ik denk dat we meer kunnen verlangen )
20:27
El_Che :) 20:28
20:30 hami left 20:31 lizmat left
pmurias we definitely need some Erlang/Perl 6 interop talks for Erlangen 20:31
20:33 lizmat joined 20:34 MasterDuke joined 20:36 hythm_ joined 20:38 Ven` joined 20:40 Ven`` left
buggable New CPAN upload: PDF-Class-0.2.7.tar.gz by WARRINGD modules.perl6.org/dist/PDF::Class:cpan:WARRINGD 20:40
hythm_ p6: use JSON::Class; class C does JSON::Class { }; my @a = C.new, C.new; to-json @a; # @a>>.to-json does not produce correct json 20:41
camelia ===SORRY!===
Could not find JSON::Class at line 1 in:
/home/camelia/.perl6
/home/camelia/rakudo-m-inst-2/share/perl6/site
/home/camelia/rakudo-m-inst-2/share/perl6/vendor
/home/camelia/rakudo-m-inst-2/share/perl6
CompUn…
20:43 [particle] left 20:45 [particle] joined
ownTheLibs www.youtube.com/watch?v=CH6Hmc9liRs 20:49
20:50 Ven` left
diakopter _o_ 20:51
er I mean.
20:53 MasterDuke left, MasterDuke joined 21:00 x[LGWs4x4i]uG2N0 joined 21:06 Kaiepi left 21:10 Possum joined
timotimo lizmat: i think you may want to remove the "host" part of the explanation from my feature thing 21:12
21:12 hythm_ left, skids left 21:17 raschipi left
SmokeMachine Im having problem installing SeqSplitter from ecosystem... but it's installing from filesystem... 21:27
www.irccloud.com/pastebin/YHxTIVLU/
www.irccloud.com/pastebin/zY79qS7Z/ 21:28
21:35 Zoffix joined
Zoffix hythm_, the built-in to-json stuff is not for end users and doesn't support many features, like your custom class. Use one of the ecosystem JSON modules, like JSON::Fast 21:36
timotimo JSON::Fast doesn't yet have support for JSON::Class, i don't think? 21:37
SmokeMachine I have no idea why its happening... is it happening with someone else?
timotimo SmokeMachine: maybe zef can be updated? 21:38
benjikun SmokeMachine: can't open irccloud link, do you get `No such method 'IO' for invocant of type 'Any'` 21:39
SmokeMachine timotimo: I just `zef update Zef`... and Im still having the same issue...
benjikun if so, I'm getting the same thing
SmokeMachine benjikun: yes! thats the problem!
timotimo interesting
SmokeMachine and I can install other modules...
timotimo try perl6 --ll-exception (which zef) install SeqSplitter 21:40
Zoffix timotimo: that gives this: gist.github.com/zoffixznet/8637849...25bc5852b8
benjikun: are you getting that for SeqSplitter or some other module?
benjikun SeqSplitter
SmokeMachine timotimo: www.irccloud.com/pastebin/9wY3dwRk/ 21:41
timotimo this is all apparently related to Zef::Client; is that what grabs stuff from the ecosystem?
that'd make sense given it works if you install via filesystem
benjikun That's what I was thinking timotimo 21:42
timotimo oh, hm, but it's actually going through the CompUnit::Loader, too
but that's on top of the stack? o_O
Zoffix ohlol
SmokeMachine: you didn't put source-url into your META
SmokeMachine Zoffix: yes, again! 21:43
I'm sorry! thank you all!
timotimo maybe a little check could go into the zef source
to check for this?
or is it the comp unit loader that stumbles over it?
Zoffix shrugs 21:44
I think $candi.uri being Any somewhere here is what's crashing github.com/ugexe/zef/blob/master/l...t.pm6#L183
And a fix could be c....
Zoffix just tries it
benjikun Did zef recently speed up significantly?
Just typing in `zef` before took a second to respond with the help message, but now it's faster 21:45
21:46 dct joined
Zoffix Sent a PR github.com/ugexe/zef/pull/259 21:48
SmokeMachine: there are tools for module making BTW... App::Mi6 and I think there are others too 21:49
eco: App::Mi6
buggable Zoffix, App::Mi6 'minimal authoring tool for Perl6': modules.perl6.org/dist/App::Mi6:cpan:SKAJI
Zoffix eco: Test::META
buggable Zoffix, Test::META 'Test a distributions META file': modules.perl6.org/dist/Test::META:g...h.co.uk%3E
SmokeMachine Zoffix: I used mi6... 21:50
Zoffix And I think ^ that module tests meta file (though I stopped using it because once it had a regression in it and a billion of modules stopped installing)
SmokeMachine: oh.. dunno, report missing source URL as a bug? :)
Does it have --release command or something?
SmokeMachine only for cpan, I think...
donpdonp m: my List $list = [1,2,3]; my Array[Int] $typed_list = Array[Int].new($list) 21:51
camelia Type check failed in assignment to ; expected Int but got Array ($[1, 2, 3])
in block <unit> at <tmp> line 1
donpdonp how can i convert a List of objecs to a typed array? 21:52
Zoffix m: my List $list := [1,2,3]; my Array[Int] $typed_list = Array[Int].new($list)
camelia ( no output )
Zoffix huggable: decont
huggable Zoffix, Article on containers and decont: perl6advent.wordpress.com/2017/12/...oneandonly
timotimo there's also App::Assixt 21:53
Zoffix donpdonp: ^ it's a bit of a long article, but it kinda explains why you had your behaviour. You were sticking the first array into a Scalar container, so it was treated as one item
instead of many items
timotimo and one more, also a TLA if i don't misremember
Zoffix donpdonp: and I changed assignment to binding, so that way it doesn't give you the free Scalar container
donpdonp Zoffix: wow okay thx. #unexpected
Zoffix :)
lizmat++ # good weekly 21:56
donpdonp hmm i thought my example was a good recreation of the error, but the fix (using assignment) isnt applicable to this
21:57 pecastro left, Ven`` joined, markoong left
donpdonp sub headers_dump(List $headers) { my $typed_list := Array[Cro::HTTP::Header].new($headers); ... => Type check failed in assignment to ; expected Cro::HTTP::Header but got List ($(Cro::HTTP::Header.n...) 21:57
Zoffix m: my List $list = [1,2,3]; my Array[Int] $typed_list = Array[Int].new($list<>)
camelia ( no output )
Zoffix donpdonp: how about this? The <> at the end (it deconts)
timotimo i think you'll "just" want to make the LHS of the assignment have a @( ) around it 21:58
so that it does list assignment rather than item assignment
m: my $foo = Array.new(1, 2, 3); $foo = 9; 21:59
camelia ( no output )
timotimo m: my $foo = Array.new(1, 2, 3); $foo = 9; say $foo
camelia 9
timotimo m: my $foo = Array.new(1, 2, 3); $foo = 9; say $foo.perl
camelia 9
timotimo m: my $foo = Array.new(1, 2, 3); @($foo) = 9; say $foo.perl
camelia $[9]
donpdonp my $typed_list = Array[Cro::HTTP::Header].new($headers<>); => Type check failed in binding to parameter '$headers'; expected Array[Cro::HTTP::Header] but got Array[Cro::HTTP::Header].new(Cro::HTTP::Heade...
timotimo see how in the last one it remains an array
Zoffix donpdonp: so looks like it's already an Array[Cro:...] 22:00
donpdonp: how come you parametarize everything like this?
22:00 Ven`` left
Zoffix Makes the code a lot more verbose, no? 22:01
22:01 markoong joined
donpdonp i just want some simple type checking. i find it catches lots of problems. 22:01
22:01 markoong left
donpdonp i would expect the error to mean, in general terms, expected T1 but got T2. Array[X] looks like a type but how is Array[X].new(X) a type?? 22:01
Zoffix Wonder if it's RT#132525 22:02
synopsebot RT#132525 [open]: rt.perl.org/Ticket/Display.html?id=132525 [REGRESSION][PRECOMP] type constraints to Array[Pair] don't work when precompiled
Zoffix donpdonp: are you using any modules? Is sticking `no precompilation` in the help the problem? 22:03
donpdonp modules beyond Cro? no.
Zoffix ok 22:04
The error talks about binding to $headers, but you're not binding to $headers on that line.
timotimo "parameter", eh? 22:05
it's not from the .new call, right?
donpdonp i see.
timotimo does it actually have more text after where you cut it off?
donpdonp im using a line of code that has been failing, and attaching it to an error that is actually new.
timotimo i mean did you cut it off or did rakudo do that
donpdonp sorry this is a lot of new perl6 knowledge to absorb at once 22:06
Zoffix :)
donpdonp goes back to look some more
sub header_find(Array[Cro::HTTP::Header] $headers, str $header_name) is the line, the error is Type check failed in binding to parameter '$headers'; expected Array[Cro::HTTP::Header] but got Array[Cro::HTTP::Header].new(Cro::HTTP::Heade... (its perl6 truncating that error) 22:07
where its saying Array[X].new() as if it were a type... 22:08
Zoffix This works for me:
$ perl6 -MCro::HTTP::Header -e 'sub headers_dump (List $headers) { my $typed_list := Array[Cro::HTTP::Header].new($headers<>); }; headers_dump (Cro::HTTP::Header.new(:name<Meow>, :value),)'
22:08 limarfrek left
Zoffix donpdonp: do you have that code in a repo somewhere? 22:08
This succeeds: 22:10
$ perl6 -MCro::HTTP::Header -e 'sub header_find(Array[Cro::HTTP::Header] $headers) { }; header_find Array[Cro::HTTP::Header].new: Cro::HTTP::Header.new(:name<Meow>, :value)'
donpdonp Zoffix: nest.pijul.com/donpdonp/actpub:mas...f4762acd07 line 87
timotimo oh, neat, fediverse 22:11
22:11 andrzejku left
donpdonp timotimo: thx. i just got it to speak enough mastodon to 'friend' someone. 22:12
Zoffix: your example works for me too and the perl cli. im still puzzled but it gives me something to go on.
22:12 andrzejku joined
timotimo the real reward is the friends you made along the way 22:12
donpdonp lulz. 22:13
Zoffix donpdonp: can you put `dd [$typed_list, $name];` before line 90 and run the program and pastebin the output along with the full error? 22:15
donpdonp Zoffix: re: paramerizing everything, my earlier problem with a Seq in a Seq was passing the old signature of header_find(Seq $list, str $item), but if its paramterized, the compilter can catch it. just for example.
Zoffix: yup one sec 22:16
Zoffix: (sorry for the long url) gist.githubusercontent.com/donpdon...tfile1.txt 22:17
22:17 pmurias left
Zoffix oh heh 22:18
oh nm, it's the added array in dd
weird 22:20
22:20 pmurias joined 22:21 rindolf left
donpdonp well I can go back to Seq. i got other fish to fry. thx for the help. 22:21
22:23 MasterDuke left
Zoffix donpdonp: yeah, I got no idea and can't reproduce the problem :/ 22:24
It feels like a bug in rakudo
FWIW, I was trying with 2018.06
Zoffix g2g
22:24 Zoffix left
donpdonp same here 2018.06. 22:25
22:29 [particle] left 22:32 MasterDuke joined 22:41 ExtraCrispy left 22:48 dct left 22:52 dct joined 22:54 [particle] joined 23:03 Kaiepi joined 23:09 pmurias left 23:18 Zoffix joined
Zoffix Why is :ratchet adverb called that way? 23:18
This it? youtu.be/gzJjXg67D80?t=1m44s 23:21
^_^
23:23 sena_kun left
Zoffix "A ratchet is a mechanical device that allows continuous linear or rotary motion in only one direction while preventing motion in the opposite direction." 23:25
Ah, ok. That makes sense
23:26 kerframil joined
timotimo i always find it fascinating what words people miss in their vocabulary when they learn another language 23:26
Zoffix :)
Well, I knew what a ratchet is as in socket wrench, but I never thought of it as only allowing motion in one direction 23:27
Oh this is too called a ratchet: en.wikipedia.org/wiki/Ratchet_(device) 23:28
ok
Geth doc: 0c3f7628cb | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/regexes.pod6
Add mnemonic for ratchet

  (I didn't know if it)
23:30
synopsebot Link: doc.perl6.org/language/regexes
23:32 Zoffix left 23:33 dct left 23:50 wamba left