»ö« 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
|