»ö« 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 moritz on 22 December 2015. |
|||
00:00
chenryn left
00:07
cdg left
00:08
cdg joined
|
|||
TEttinger | .u SELFIE | 00:10 | |
yoleaux | No characters found | ||
00:10
RabidGravy left
00:12
cdg left
00:17
skingsbu left
00:21
Ven left
|
|||
geekosaur | not till the next unicode update :p | 00:21 | |
00:22
BenGoldberg joined,
Zoffix left
00:23
BenGoldberg left,
Zoffix joined
00:24
BenGoldberg joined
00:29
BenGoldberg left
00:30
BenGoldberg joined
00:32
BenGoldberg left
00:33
BenGoldberg joined
00:38
BenGoldberg left
00:40
BenGoldberg joined
00:42
BenGoldberg left
00:43
BenGoldberg joined
00:44
BenGoldberg left
00:45
BenGoldberg joined
|
|||
skink | Is there an official way to make arbitrary syscalls yet? | 00:53 | |
00:56
BenGoldberg left
00:57
yqt left,
BenGoldberg joined
00:59
kurahaupo left
|
|||
BenGoldberg | skink, You can call arbitrary library functions using NativeCall. | 01:03 | |
skink | BenGoldberg, It's not in a library file :) | 01:04 | |
01:04
BenGoldberg left
01:05
Zoffix__ joined
01:06
BenGoldberg joined
01:07
Zoffix__ is now known as sexy-coder-girl
|
|||
skink | BenGoldberg, It's not in a library file :) | 01:09 | |
01:09
Zoffix left
01:10
sexy-coder-girl is now known as Zoffix,
Zoffix left,
Zoffix joined
|
|||
BenGoldberg | How would you perform this syscall from a C program? | 01:10 | |
skink | man7.org/linux/man-pages/man2/getrandom.2.html | 01:11 | |
01:11
kurahaupo joined
|
|||
geekosaur | syscalls can't really be invoked portably | 01:12 | |
01:12
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
01:16
kurahaupo_ joined,
kurahaupo` joined
01:17
espadrine left,
BenGoldberg left
01:18
kurahaupo left
01:19
BenGoldberg joined
|
|||
skink | geekosaur, I already separated OS-specific functionality into separate modules | 01:19 | |
01:20
kurahaupo_ left
|
|||
geekosaur | man7.org/linux/man-pages/man2/syscall.2.html | 01:25 | |
01:28
huggable left
|
|||
skink | Disgusting :) | 01:28 | |
01:28
huggable joined,
kurahaupo` left
01:32
_4d47 left
01:33
Zoffix left
01:34
TimToady left
01:35
Zoffix joined,
BenGoldberg left,
jdv79 left,
ggoebel115 left,
Celelibi left,
jdv79 joined
01:36
remmie left,
ggoebel115 joined,
BenGoldberg joined
01:37
Praise left,
pierrot_ joined,
BenGoldberg left
01:39
BenGoldberg joined,
Praise joined,
Praise left,
Praise joined,
BenGoldberg left
01:40
TimToady joined
01:41
BenGoldberg joined,
Celelibi joined,
pierrot left,
skink left,
tbrowder joined
|
|||
tbrowder | back again, ref pod and docs | 01:42 | |
01:42
BenGoldberg left
01:43
BenGoldberg joined,
araujo_ left
01:46
ilbot3 left,
remmie joined
|
|||
tbrowder | pmurias: current p6 pod is not handled completely, e.g., tables. after loking at some other markup langs again, I think, given the present state of things, p6 pod (and tools) is okay but needs more attention. I have just submitted an e-mail to the perl6 users presenting my simple take on my impression of p6 pod and some possible projects. I would appreciate any commennts on that thread. | 01:47 | |
01:47
BenGoldberg left,
ilbot3 joined
|
|||
tbrowder | bye all | 01:48 | |
01:48
tbrowder left,
kurahaupo joined,
BenGoldberg joined
01:49
BenGoldberg left
01:50
BenGoldberg joined
01:51
molaf left
|
|||
Zoffix | Any response to this FB thread? www.facebook.com/groups/1595443877...%22R%22%7D | 01:55 | |
"Looks like C++ is not supported yet. Is that correct?" "Yep, thats what I was referring to. It did not work for me. May be it is work in progress?" | |||
01:55
BenGoldberg left
01:57
BenGoldberg joined,
kanishka left
01:59
ssotka left
02:04
molaf joined
02:05
jack_rabbit joined,
kurahaupo left,
noganex joined
02:08
noganex_ left
02:11
kid51 left
|
|||
tailgate | are there examples of how to make a class/static method in a perl6 class? | 02:12 | |
02:12
dimon__ joined
|
|||
dimon__ | hey, what's the difference between "unit module Aaa;" and "unit package Aaa;" ? | 02:13 | |
geekosaur | tailgate, our method foo(...) { ... } | ||
02:19
BenGoldberg left
02:20
dimon__ left,
BenGoldberg joined
02:21
dimon__ joined
|
|||
dimon__ | hey, what's the difference between "unit module Aaa;" and "unit package Aaa;" ? | 02:21 | |
02:21
BenGoldberg left
02:22
BenGoldberg joined
02:23
pierre_ joined
|
|||
Zoffix | Goood question. | 02:25 | |
The speculation on the subject seems a bit outdated: "package Foo; ... This form is illegal in a Perl 6 file. If you wish to have a file-scoped package, either use the brace form or declare it with the module keyword instead." | 02:26 | ||
(and we now have `unit` keywords) | |||
02:29
pierre_ left
|
|||
dimon__ | Zoffix: I see. | 02:29 | |
And if I have file1.pm6 and file2.pm6 in my library MyComp::MyLib, what should be the 1st on those file? | |||
unit module MyComp::MyLib; | |||
or | |||
unit module MyComp::File1Class; | |||
assuming that | |||
I define those classes as | 02:30 | ||
classMyComp::MyLib::File1Class | |||
within those 2 modules | |||
02:30
BenGoldberg left
|
|||
dimon__ | correction: class MyComp::MyLib::File1Class { .... } | 02:30 | |
or | |||
class MyComp::MyLib::File2Class { .... } | |||
sorry for the typos | 02:31 | ||
02:31
BenGoldberg joined
02:32
jack_rabbit left
02:35
BenGoldberg left
02:36
BenGoldberg joined
02:47
BenGoldberg left
02:48
BenGoldberg joined
02:53
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
02:55
dimon__ left
02:56
BenGoldberg left
02:58
BenGoldberg joined
02:59
BenGoldberg left
03:00
BenGoldberg joined
03:01
|2701 left
03:08
cdg joined
03:12
cdg left
03:15
BenGoldberg left
03:16
BenGoldberg joined
03:17
BenGoldberg left
03:18
BenGoldberg joined
03:19
BenGoldberg left
03:21
BenGoldberg joined
03:22
ssotka joined
03:27
BenGoldberg left,
dimon_ joined
|
|||
dimon_ | when I'm using a file-class declaration "unit class MyModule::Class1", how can I write "does RoleX" for Class1? | 03:28 | |
03:28
BenGoldberg joined
|
|||
timotimo | m: unit class FooBar; also does Positional; | 03:29 | |
camelia | ( no output ) | ||
dimon_ | timotimo: and if I need to export the module where "Positional" is defined? say, it's defined in MyModule | 03:31 | |
then this won't compile also does Positional; | 03:32 | ||
timotimo | export? you mean import? | ||
you can put "use MyModule" in front | |||
dimon_ | neither this also does MyModule2::Positional; | ||
I mean, MyModule2, not Module for Positional | |||
timotimo | i'm not sure how you mean that | ||
dimon_ | I mean, this won't compile "; also does MyModule2::Positional;" | 03:33 | |
timotimo | so why not put "use MyModule2" in between? | ||
03:33
khw left
|
|||
timotimo | oh, you mean you want Positional to be available as a member of the unit class' package? | 03:33 | |
dimon_ | tnx | ||
timotimo | you'd have to do something like "my \Positional is export = Positional" | 03:34 | |
or something like that | |||
dimon_ | nope, I meant how to "use" MyModule2::Positional | ||
before "also does MyModule2::Positional" | |||
timotimo | the thing after "use" is the file you want rakudo to look for in the filesystem | ||
so if you want to get MyModule2::Positional, you'd usually "use MyModule2" | 03:35 | ||
03:36
BenGoldberg left
03:37
BenGoldberg joined
|
|||
dimon_ | tnx | 03:38 | |
03:38
dimon_ left,
BenGoldberg left
03:40
BenGoldberg joined,
dimon_ joined,
pierre_ joined
|
|||
dimon_ | by the way, if my library is available in "panda", and if I update its source code at github, will it be updated in panda automatically? | 03:41 | |
03:41
BenGoldberg left
|
|||
dimon_ | does panda use code from github of a package? | 03:41 | |
timotimo | panda always pulls the code directly from github, yeah | ||
dimon_ | ok | ||
03:41
dimon_ left
|
|||
timotimo | we will have something different in the future that's more similar to cpan and PAUSE | 03:41 | |
03:42
BenGoldberg joined
03:43
BenGoldberg left
03:45
BenGoldberg joined
03:48
BenGoldberg left
03:50
BenGoldberg joined
03:51
BenGoldberg left
03:52
BenGoldberg joined
03:53
pierre_ left
03:54
BenGoldberg left
03:55
BenGoldberg joined
03:56
BenGoldberg left
03:57
BenGoldberg joined
03:58
BenGoldberg left
04:05
ssotka left
04:06
BenGoldberg joined
04:07
BenGoldberg left
04:08
BenGoldberg joined
04:10
BenGoldberg left,
mtj_ left
04:11
BenGoldberg joined
04:14
BenGoldberg left,
mtj_ joined
04:15
BenGoldberg joined
04:17
BenGoldberg left
04:18
BenGoldberg joined
04:27
BenGoldberg left
04:32
BenGoldberg joined
04:39
dmc00 left
04:48
BenGoldberg left
04:50
Cabanossi left
04:51
Cabanossi joined
04:53
espadrine joined
04:54
BenGoldberg joined,
pierre_ joined
04:58
BenGoldberg left
05:00
pierre_ left
|
|||
dalek | line-Perl5: 0dbc189 | (Zoffix Znet)++ | README.md: Newer version of P5 available now |
05:02 | |
line-Perl5: 9d70afd | lizmat++ | README.md: Merge pull request #62 from zoffixznet/patch-1 Newer version of P5 available now |
|||
05:03
wamba joined,
BenGoldberg joined
05:04
mr-foobar left
05:05
BenGoldberg left,
dmc00 joined
05:07
dmc00 left
05:10
BenGoldberg joined
05:14
dmc00 joined,
CIAvash joined
05:16
BenGoldberg left
05:21
dmc00 left
05:22
BenGoldberg joined
05:23
BenGoldberg left
05:28
huggable left,
huggable joined
05:29
BenGoldberg joined
05:31
BenGoldberg left
05:36
BenGoldberg joined
05:39
BenGoldberg left
05:44
BenGoldberg joined
05:47
kaare_ joined
05:49
BenGoldberg left
06:01
domidumont joined
06:06
domidumont left
06:07
domidumont joined
06:21
spider-mario joined
06:23
grondilu joined
06:26
lizmat joined
06:27
espadrine left
06:32
kaare_ left
06:42
telex left
06:44
telex joined,
wamba left
06:53
lizmat left
06:59
jack_rabbit joined
07:07
CIAvash left
07:16
molaf left
07:18
CIAvash joined
07:57
firstdayonthejob joined
08:10
RabidGravy joined
08:15
darutoko joined
08:16
kaare_ joined
08:20
Ven joined
08:30
grassass left
08:36
rindolf joined
08:38
grassass joined
08:41
pierre_ joined,
sortiz left
08:44
Emeric joined
09:03
pierre__ joined,
pierre_ left,
Ven left
09:06
cpage_ joined
|
|||
masak | good almost-noon, #perl6 | 09:21 | |
09:22
espadrine joined,
buharin joined
|
|||
RabidGravy | our cat decided it was time for us to get up an hour and a half ago | 09:22 | |
buharin | hiho | ||
09:27
lue joined
09:28
huggable left,
huggable joined,
espadrine left,
ShimmerFairy left,
lue is now known as ShimmerFairy
|
|||
grondilu | just adding a 'BEGIN say "hi";' in one of my modules make it fail. Go figure. | 09:33 | |
can't reproduce it with a one liner though. | 09:34 | ||
m: module A { our @a is export = rand xx * }; import A; say "ok"; | |||
camelia | rakudo-moar ad8265: OUTPUT«ok» | ||
grondilu | m: module A { our @a is export = rand xx * }; BEGIN say "hi"; import A; say "ok"; | ||
camelia | rakudo-moar ad8265: OUTPUT«hiok» | ||
grondilu | something like that | ||
it's for my clifford module (github.com/grondilu/clifford). I was trying to do some precomputation with a BEGIN block but even the simplest BEGIN generates: ==SORRY==Variable '@e' is not declared | 09:36 | ||
also after this error removing the BEGIN say "hi"; is not enough. I have to manually remove the .precomp directory. | 09:39 | ||
very LTA | |||
RabidGravy | grondilu, iirc doing IO in a module that may be precompiled causes badness | ||
grondilu | aren't all module susceptible to be precompiled? | 09:40 | |
*modules | |||
RabidGravy | that is if the IO will happen at compile time | ||
yes | |||
grondilu | oh | ||
hang on | |||
grondilu tries with 'BEGIN sleep 1;' | 09:41 | ||
nope, BEGIN sleep 1 causes the same error and requires manual remove of .precomp just the same. | 09:42 | ||
grondilu wonders if BEGIN {} would just be ignored. | 09:43 | ||
no, it's not ignored and it causes the error as well. | 09:44 | ||
09:45
CIAvash left
09:47
buharin left,
cpage_ left
09:49
CIAvash joined
09:50
zakharyas joined
|
|||
grondilu | :q | 09:50 | |
but seriously I have hard times figuring why adding 'BEGIN {}' in a module could make any difference whatsoever. | 09:54 | ||
09:54
TEttinger left,
skingsbu joined
|
|||
dalek | rl6-most-wanted: b49b9f9 | titsuki++ | most-wanted/modules.md: Fix a Text-Tabs-Wrap link |
09:56 | |
rl6-most-wanted: 53ac1e0 | titsuki++ | most-wanted/modules.md: Merge pull request #31 from titsuki/fix-not-working-link Fix a Text-Tabs-Wrap link |
|||
masak | grondilu: I'd be quite interested to see a golf of what you're observing. | ||
RabidGravy | yeah I deeply suspect there is something else going on | ||
llfourn | writing to stdout during compile time used to be a problem but I thought it was more or less fixed now | 09:57 | |
09:57
kaare_ left
|
|||
llfourn | I always use BEGIN note "recompiling"; for that reason | 09:58 | |
grondilu | masak: so would I. I've tried to make one but I failed. | 10:01 | |
I could try harder I guess. | |||
10:01
pierre__ left
10:02
pierre_ joined
|
|||
grondilu | last time I tried I gave up when I realized the code I was executing was not the code I had typed because of the .precomp issue. | 10:02 | |
m: BEGIN say "compiled on " + now | 10:08 | ||
camelia | rakudo-moar ad8265: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GRX4YX4MEyAn exception occurred while evaluating a BEGINat /tmp/GRX4YX4MEy:1Exception details: Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5compile…» | ||
10:08
pmurias joined
|
|||
grondilu | silly me | 10:08 | |
m: BEGIN say "compiled on " ~ now | |||
camelia | rakudo-moar ad8265: OUTPUT«compiled on Instant:1463306963.554297» | ||
grondilu | ^I guess I could use somethink like that to check that my code is up-to-date or something. | 10:09 | |
dogbert17 | good day #perl6 | 10:10 | |
pmurias | dogbert17: hi | ||
dogbert17 | pmurias: hi | 10:11 | |
noob question of the day, what does this syntax mean: my class X::Seq::Consumed { ... } # from src/core/Seq.pm | |||
grondilu | it's the standard way of making an exception IIRC | 10:12 | |
10:12
cpage_ joined
|
|||
dogbert17 | shouldn't ther be an 'is Exception' in there somewhere? | 10:13 | |
grondilu | I think it was not considered necessary | 10:14 | |
there is no Exception class in Perl 6 | 10:15 | ||
m: say Exception | |||
camelia | rakudo-moar ad8265: OUTPUT«(Exception)» | ||
grondilu | oh there is | ||
my bad | |||
I don't know then. | 10:16 | ||
RabidGravy | dogbert17, that is a "forward declaration" | 10:18 | |
bartolin | dogbert17: I think that is a stub definition for that class, which get fully defined in src/core/Exception (and there you get 'is Exception' as you expected) | 10:19 | |
RabidGravy | it's actually defined in src/core/Exception.pm | ||
dogbert17 | RabidGravy++ bartolin++ many thanks | ||
grondilu++ as well | 10:20 | ||
RabidGravy | it can do it like that (in separate files) because of the way that the CORE setting is compiled | ||
dogbert17 | aha, the reason for asking is that I want to try to fix github.com/perl6/doc/issues/515 | 10:21 | |
hadn't seen the syntax before and thought, for some reason it meant 'not yet implemented' | 10:22 | ||
RabidGravy | yeah I was going to respond to that, I think the time is very soon that the exceptions should have their own section in the docs, on the grounds that if they are *all* documented it will swamp all the other types | ||
dogbert17, it means "not implemented here" :) | 10:23 | ||
or "yet" | |||
dogbert17 | RabidGravy: :) | 10:24 | |
and I'm guilty as charged :), have added several 'missing' exceptions to the docs in the last few days | 10:25 | ||
RabidGravy | that is to say that if by the time the whole thing is finished compiling there isn't a complete definition a "he following packages were stubbed but not defined" will be thrown | ||
arnsholt | In user code, you'd end up using that syntax if you have two types that depend on each other | ||
10:26
araujo joined
|
|||
arnsholt | Like "class B {...}; class A { has B $.b; }; class B { has A $.a }" | 10:26 | |
bartolin | dogbert17: you can read more about stub declarations in the speculations: design.perl6.org/S06.html#Stub_declarations | ||
arnsholt | (And no, that can't be split into two separate files) | ||
dogbert17 | thx all, very interesting discussion | 10:27 | |
10:27
aries_liuxueyang left
10:29
aries_liuxueyang joined
|
|||
RabidGravy | the thing with "document all the exceptions" is that there are greater than 250 defined in src/core/Exception.pm which is roughly more than the rest of the types | 10:30 | |
so a) the types page becomes rather large and b) they are mostly not all that interesting except in the context of *where* they are thrown | 10:31 | ||
so having them in a separate section would prevent a) and allow the linking from the documentation for the things that throw them | 10:33 | ||
dogbert17 | RabidGravy: maybe I should hold off then until we have a solution ? | 10:34 | |
RabidGravy | I'd carry on to be honest | 10:35 | |
dogbert17 | RabidGravy: ok will do :) | 10:36 | |
RabidGravy | I'd say that people agreeing will take forever or until someone just does it and it's better that things are documented, it can be re-arranged later | ||
dogbert17 | RabidGravy: how about =SUBTITLE 'Error due to trying to reuse a consumed sequence' is that intelligible or just bad english? | 10:39 | |
10:44
buharin joined
10:45
Actualeyes joined
10:47
kaare_ joined
|
|||
gfldex | the optimisations of the last 2 weeks have shaved off 13% execution time of my pod renderer | 10:55 | |
you totally improved my productivity! | |||
11:01
Roamer` left
11:02
fildon joined
|
|||
RabidGravy | yay! | 11:10 | |
dalek | c: 9728090 | (Jan-Olof Hendig)++ | / (2 files): Added docs for X::Seq::Consumed |
11:11 | |
RabidGravy | yay! | ||
dogbert17 | :) | ||
yesterday an odd thing happened when writing some docs, after having run htmlify.p6 my changes weren't there, i.e. in the generated html files. Had to nuke the 'precompiled' directory in order to make it work! | 11:15 | ||
teatime waves g'morning. | |||
dogbert17 | o/ teatime | 11:16 | |
11:17
kid51 joined
11:18
kaare_ left
11:19
[TuxCM] joined
11:23
zakharyas left
11:27
pierre_ left
11:32
mr-foobar joined
11:36
nightfrog left
11:40
grassass left
|
|||
llfourn | hmm I have to keep deleting .precomp because I get "Missing or wrong version of dependency" often. Seems to have only started today. | 11:46 | |
I will see if I can bisect it | 11:47 | ||
11:50
kurahaupo joined
|
|||
llfourn | seems to happen on 2016.03 as well o.o | 11:56 | |
RabidGravy | :-\ | 11:57 | |
llfourn | not using git so hard to know what I did to trigger it. | ||
12:00
snarkyboojum joined
12:01
snarkyboojum left
12:04
mr-foobar left
|
|||
Zoffix | I was getting that when I installed a module and stuff depending on it and then got a local copy of the module to hack on. So basically the installed, precompiled modules were precompiled against the "old" installed module, not my local copy. | 12:06 | |
llfourn | hmmm that interesting because a few of the compunits in what I'm working on do have the same name as some that are installed | 12:07 | |
Zoffix | And I reported it: rt.perl.org/Ticket/Display.html?id=128088 | ||
12:08
snarkyboojum joined
12:12
pierre_ joined
|
|||
tailgate | if I have ((a -1) (e -5) (d -4) (c -3) (b -2)) how do I make it a hash of the form a => -1 e => -5 etc? | 12:12 | |
12:13
mr-foobar joined
|
|||
llfourn | tailgate: I'm not sure what you have there but try .hash | 12:13 | |
if it's a list of lists which is what it looks like you may have to flatten them first | |||
12:13
_4d47 joined
|
|||
llfourn | m: ( <a,b>,<c d> ).perl.say | 12:14 | |
camelia | rakudo-moar ad8265: OUTPUT«("a,b", ("c", "d"))» | ||
llfourn | ... | ||
m: ( <a b>,<c d> ).perl.say | |||
camelia | rakudo-moar ad8265: OUTPUT«(("a", "b"), ("c", "d"))» | ||
llfourn | m: ( <a b>,<c d> ).hash.say | ||
camelia | rakudo-moar ad8265: OUTPUT«{a b => (c d)}» | ||
llfourn | m: ( <a b>,<c d> ).map(|*).hash.say | 12:15 | |
camelia | rakudo-moar ad8265: OUTPUT«{a => b, c => d}» | ||
llfourn | ^ seems to do the trick | ||
m: hash( (<a b>,<c d>) ).say | 12:16 | ||
camelia | rakudo-moar ad8265: OUTPUT«{a => b, c => d}» | ||
llfourn | ^ better | ||
tailgate | ah, I was using .Hash | 12:17 | |
llfourn | m: %( (<a b>,<c d>) ).say # also works I think | ||
camelia | rakudo-moar ad8265: OUTPUT«{a b => (c d)}» | ||
llfourn | m: %( |(<a b>,<c d>) ).say # or this perhaps? | ||
camelia | rakudo-moar ad8265: OUTPUT«{a b => (c d)}» | ||
llfourn | ..nevermind | 12:18 | |
.Hash should work too I think | |||
m: ( <a b>,<c d> ).map(|*).Hash.say | |||
camelia | rakudo-moar ad8265: OUTPUT«{a => b, c => d}» | ||
llfourn | at least there it does | ||
12:19
snarkyboojum left
12:20
CIAvash left,
[Tux] joined
|
|||
tailgate | what do | and |* mean? | 12:21 | |
llfourn | | means turn the thing after it into a Slip ( an auto-flattening list ) | ||
* in this case means $_, which means each item in the map | |||
so .map(|*) is short for .map({ |$_ }) | 12:22 | ||
the problem is without it the .Hash gets two Lists as arguments where as what you want it four elements which will then pair up as key-values. | 12:23 | ||
s/want it/want is/ | |||
12:33
pierre_ left
12:35
[TuxCM] left
12:46
mr-foobar left
|
|||
tailgate | thanks llfourn | 12:47 | |
llfourn | np :) | ||
12:47
mr-foobar joined
12:52
pierre_ joined
12:56
kanishka joined
13:00
Ven joined
|
|||
Zoffix | (╯°□°)╯︵ ┻━┻ | 13:06 | |
zef fails to install Inline::Perl5 with a non-descript error... tried with panda and it fails while trying to install prereqs because they're already installed -_- | 13:07 | ||
timotimo | hey zoffzoff | ||
Zoffix | hey | ||
13:11
kaare_ joined
|
|||
Zoffix | Oh, pffftt... I forgot to perlbrew switch to proper perl, that's why Inline::Perl5 is failing. panda++ (actually showing the error) | 13:13 | |
13:14
CIAvash joined
|
|||
teatime | I am curious about how exactly Inline::Perl5 works / is implemented. | 13:15 | |
Zoffix | I think it uses NativeCall to call into Perl5's C lib that handles XS. | ||
RabidGravy | yeah, it's something like that | 13:18 | |
teatime | cool. | 13:21 | |
timotimo | it might be easier to understand how Inline::Python works. i bet the python API is simpler than XS is :P | ||
RabidGravy | well the P5 "embedding" API is quite well documented perldoc.perl.org/perlembed.html | 13:22 | |
13:24
domidumont left
13:28
huggable left,
huggable joined
13:29
Zoffix left
13:30
Zoffix joined
|
|||
Zoffix | What's a good monospace font that has good unicode support and doesn't look like shit? | 13:30 | |
RabidGravy | just in case anyone is on a "search and document" mission for exceptions I've created github.com/perl6/doc/issues/517 to cover off the rest of them as there are loads | ||
teatime | Zoffix: PragmataPro, but it's not free, and actually is kindof expensive IMO. | 13:31 | |
Zoffix | :( | ||
I like free | |||
13:31
kaare_ left
|
|||
teatime | Zoffix: Are you more interested in various scripts, or in Latin (and maybe Greek, Cryllic) + *symbols* ? | 13:31 | |
timotimo | and emoji! | ||
Zoffix | Well, I'm interested in not seeing boxes with numbers in them: ¯\_(ツ)_/¯(╯°□°)╯︵ ┻━┻ | 13:32 | |
nine | I think the basic parts of Inline::Perl5 and Inline::Python are equally easy to read | ||
teatime | Zoffix: Is this (primarily) for use in a terminal emulator (like xterm or rxvt-unicode)? | 13:33 | |
Zoffix | This is what I see with the above: i.imgur.com/0G0HF0l.png | ||
timotimo | Zoffix: so no support for those boxed numbers emoji? | ||
Zoffix | I have 'Monospace' font that seems to have better support than Deja Vu, but it looks atrocious. | 13:34 | |
timotimo | as a kid i loved "fixedsys" | 13:35 | |
but unicode wasn't so much a thing back then :P | |||
teatime | if you were on Linux, "monospace" would be a, like, "virtual" font, and inside the (terribly over-complicated) fontconfig config files (which you can customize via iirc ~/.fonts.conf), there would be defined a primary font and then a series of fallback fonts used to implement it. but I have nfc how that works on windows. | 13:37 | |
(it wouldn't surprise me if, for once, the Windows way to accomplish the same thing was actually more sane than the Linux way) | |||
mst | oh gods fonts | 13:38 | |
timotimo | fonts are a Mighty Sucky Thing, aren't they, mst? :) | 13:40 | |
geekosaur | I would suspect windows does much the same but through the registry and using uuids | ||
13:42
Su-Shee joined
|
|||
Su-Shee | good afternoon. who's the person to talk to about the buildscript of rakudo-star? | 13:42 | |
Zoffix | \o | 13:43 | |
Su-Shee | Zoffix: is that a "it's me"? :) | ||
Zoffix | That's a hello :) | ||
Su-Shee | Zoffix: :) | 13:44 | |
Zoffix | I dunno if there's one person. Just ask the question, I guess. | ||
There's also #perl6-release, I believe. | |||
Su-Shee | Zoffix: too long, I just wanted to prepare said person(s) for a well not quite bug report, but for some buildscript cleanup thing mr shee is on the way of submitting to github... | ||
CIAvash | Zoffix: In my editor, it's falling back to DroidSansFallback to show those characters | 13:45 | |
Su-Shee | Zoffix: or, rather not too long "something with DESTDIR support is broken" - but what exactly is too long :)) | ||
13:45
jameslenz joined
|
|||
Zoffix | :) | 13:45 | |
mst | Su-Shee: heh, DESTDIR fixes are what got my first patch in | 13:46 | |
Su-Shee | he tried to fix stuff, but after one fix the next problem came up so he stopped ;) | ||
mst | also didn't somebody create a perl6-dev channel for rakudo hacking? | ||
timotimo | we have #p6dev | ||
mst | oh for fuck's sake that's why I couldn't find it | ||
can people please try and get the naming right? | 13:47 | ||
mst sobs | |||
timotimo | right, it deviates from the ... :D | ||
oh my | |||
geekosaur | iirc the release script was on a "this quick hack worked for me, if it breaks for you then you get to keep the pieces" basis | ||
Zoffix | +1 I too couldn't find it the first time for the same reason | ||
RabidGravy | there there, have a ponie | ||
Su-Shee | mst: I'm not quite up2date, I essentially just politely wanted to warn $person or if it is somebody I know, directly point person A to person B. ;) | ||
13:47
Zoffix left
|
|||
mst | Su-Shee: oh, yeah, totally | 13:48 | |
Su-Shee | geekosaur: well it DOES build things, but it has quirks making it hard to make proper packages with the use of DESTDIR. that's all. | ||
13:48
Zoffix joined
|
|||
Su-Shee | I only know because I just made mr shee shorten the 5km long report. ;) | 13:49 | |
mst | lol | ||
timotimo | Zoffix: perl6.party runs on rakudo? it seems surprisingly snappy compared to last we spoke | ||
mst | I don't think it does anymore | ||
there was a memory leak, so he rewrote everything | |||
Su-Shee | mst: yeah well he was in the middle of explaining what pkgsrc is/does and putting in footnotes and that's never a good sign ;) | ||
timotimo | dang. | 13:50 | |
mst | Su-Shee: probably not strictly necessary, we do actually know what DESTDIR is, it just doesn't always get exercised as often as it should | ||
Zoffix | timotimo, yeah huge memory leaks (irclog.perlgeek.de/perl6/2016-05-08#i_12449184), I saved the P6 version in a separate branch and rewrote the whole thing with Mojolicious. | 13:51 | |
Su-Shee | mst: I'll just let him submit his stuff, what do I care if netbsd has a proper rakudo package build process :)) | ||
Zoffix | Well, that and the fact that you can't have async stuff with Bailador. The in-browser code samples could take up to 20 seconds to run | 13:52 | |
timotimo | Zoffix: were you still evaling the templates every time a page was requested? | ||
13:52
Ven left
|
|||
Zoffix | CIAvash, the one download I found tells me "Doesn't look like a valid font file" when I try to install it on Windows :( | 13:53 | |
mst | Su-Shee: do tell me once the PR's in, I'm something of a netbsd/pkgsrc fan and I'd quite like to keep an eye on it | ||
Zoffix | timotimo, yeah. Though first I had is cached trait on sub that gave me rendered templates. But it's not just that app that leaks. huggable leaks. Its restarter script leaks | 13:54 | |
timotimo | mhm | ||
Zoffix | At least leaked at that time. I've not re-tried after the fixes you pushed to MoarVM | ||
mst | I'd've rewritten the restarter script in p5 | ||
timotimo | the fixes i made were almost exclusively to fix --full-cleanup to give better results, fwiw | 13:55 | |
13:55
[Tux] left
|
|||
Zoffix | Ah | 13:55 | |
timotimo | not for regular running | ||
13:55
_mg_ joined
|
|||
timotimo | so you could use valgrind more helpfully | 13:55 | |
13:55
kurahaupo left
|
|||
timotimo | but i do agree we're not doing extremely well with memory usage at the moment | 13:55 | |
i guess i'll check out huggable and look if i find something obvious in the heap explorer | 13:57 | ||
CIAvash | Zoffix: I'm using this package for Arch Linux, www.archlinux.org/packages/communi...ttf-droid/ | ||
Zoffix | It seems the leakage happens when she's addressed and generates a response | ||
timotimo | oh lord | 13:58 | |
cloned huggable, "panda installdeps ." | |||
SSSPPPPAAAAAAAMMMMMmmmmmmm | |||
CIAvash | Zoffix: Not sure it helps, www.archlinux.org/packages/communi.../download/ | ||
mst | SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM | ||
timotimo | ==> huggable depends on IRC::Client, IRC::Client, huggable, IRC::Client::Plugin::Factoid, IRC::Client | ||
who sees the problem here .. | |||
13:59
JustinHitla joined
|
|||
Su-Shee | mst: oh, it seems the problem is already reported at least twice. | 13:59 | |
tadzik | I do :) | ||
timotimo | huggable depends on ...Plugin::Hug, which is provided by huggable | ||
Zoffix | huh | ||
tadzik | it's fixed in a branch, fwiw | ||
wait what | |||
13:59
kurahaupo joined
|
|||
Su-Shee | mst: github.com/rakudo/star/issues/65 and the link to the "Open" thing "Rakudo Star: Installation of modules doesn't respect DESTDIR" | 13:59 | |
timotimo | IRC::Client::Plugin::Hug is in its depends section | ||
Zoffix | Oh, I confused provides with depends :) | ||
timotimo | hah | ||
RabidGravy | doh | ||
mst | Zoffix: you always were a little backwards | 14:00 | |
Zoffix | Fixed... | ||
timotimo | xiffoz | ||
fixfoz | |||
fixzof | |||
JustinHitla | I have some text, and I want to get all words from it that contains only specific lettes, "a b c d e f g h i j k l m n" so words that fit are "leaf, leen" but not "leave, noun" | 14:01 | |
Zoffix | JustinHitla, .words.grep: /<[tehletters]>/ | ||
timotimo | so you'll write a regex like / << <[a b c d e f g h i j k l m n]> >> / | ||
or that | |||
kurahaupo | "leave" would appear to contain both a and e. | ||
JustinHitla | so I don't even need perl ? I can use grep tool ? | ||
Zoffix | heh | 14:02 | |
JustinHitla, I guess... but .grep is a method in Perl 6 | |||
JustinHitla | kurahaupo: yes, a and e are allowed | ||
kurahaupo | JustinHitla: do you mean "starts with"? | ||
JustinHitla | no, contains any of "allowed" letters | ||
Zoffix | m: say 'The stuff with words'.words.grep: /<[wu]>/ | ||
camelia | rakudo-moar ad8265: OUTPUT«(stuff with words)» | ||
JustinHitla | I mean "consist" of | ||
kurahaupo | JustinHitla: so explain your "not" example | 14:03 | |
timotimo | i forgot to put in a + after the <[ ... ]> in my regex | ||
JustinHitla | kurahaupo: other way around, if a word contains at least one letter not in the allowed list it doesn't fit | ||
Zoffix | for "consists of" just negate the match to exclude words that have letters you don't own | ||
timotimo | kurahaupo: leave contains v, which is not in the list of allowed letters | ||
teatime pokes Zoffix | |||
kurahaupo | oh, comprises only those letters. just search for anything else and exclude the word | ||
14:04
pierre_ left
|
|||
kurahaupo | like ! <[^a-n>] | 14:04 | |
> | |||
timotimo | no, we spell that <-[a-n]> | ||
Zoffix: what's with the "use lib" in bin/huggable.p6? | 14:05 | ||
kurahaupo | grep -v '[o-z]' on the command line | 14:06 | |
timotimo | oh | ||
Zoffix | timotimo, I was hacking on IRC::Client | ||
timotimo | won't "use lib 'lib'" in a bin/foo.p6 actually point to bin/lib? | 14:07 | |
JustinHitla | kurahaupo: but first I need to split the text word by word then | ||
Zoffix | timotimo, I start it with perl6 bin/foo.p6 | ||
14:07
pierre_ joined
|
|||
Zoffix | timotimo, actually IRC::Client has a bug that might prevent you joining: github.com/zoffixznet/perl6-IRC-Cl...nt.pm6#L31 | 14:08 | |
Sometiems messages get split onto multiple lines and that MOTD end message never gets reporter | |||
*ed | |||
This new keyboard is starting to get on my nerves :( | |||
I don't know why there are such giant gaps between the keys | 14:09 | ||
14:09
Su-Shee left
|
|||
Zoffix | (and keys themselves tiny) | 14:09 | |
timotimo | hmm | ||
JustinHitla | Zoffix: you can always look at keyboard when typing | ||
Zoffix watches timotimo descend into piles of half-arsed Zoffix-ware :) | 14:10 | ||
timotimo | the heap dump profile segfaults because it's stumbling over a somehow-invalid object | ||
Zoffix | JustinHitla, no thanks :) | ||
RabidGravy | over-rated | 14:11 | |
timotimo | wonder how long it'll take my huggable to join my channel when run under valgrind | ||
14:11
_mg_ left
|
|||
timotimo | aha! | 14:12 | |
14:12
_4d47 left
|
|||
timotimo | i now see it sloooowly process each individual message :D | 14:12 | |
Zoffix | :) | 14:15 | |
timotimo | it's about 1/2 into the initial welcome stuff | ||
Zoffix | How are you gonna kill it? | 14:16 | |
timotimo | ctrl-c should be enough | ||
i actually forgot --full-cleanup | |||
that's not smart | |||
Zoffix | Won't doing that make valgrind show everything as leaked? | ||
¯\_(ツ)_/¯ | |||
Zoffix loves the new single-key emoticons :D | 14:17 | ||
timotimo | i was hoping it'd show what or how the object got b0rked. but maybe i'll actually perl6-valgrind-m --profile=heap to get the crash reproduced guaranteed | ||
kurahaupo | JustinHitla: If you already have your words in a Perl (version 6) data structure, then this is the channel to ask. If they're in a file somewhere, ask #bash. If you don't know which version of Perl you're using, you're probably in the wrong place | ||
timotimo | the thing is, it's probably not the kind of leak valgrind would show that happens in the huggable case | ||
it's probably objects being kept alive by something we've not thought about clearing out properly | 14:18 | ||
for example, when spesh analyzes a piece of code, it'll log a bunch of values. if that piece of code doesn't run often enough to be fully specialized, that record will stick around until the program exits, keeping alive all those intermediate values that are otherwise uninteresting | |||
i didn't have to kill huggable | 14:20 | ||
14:20
|2701 joined
|
|||
timotimo | it took too long to respond to a PING and the connection was closed | 14:20 | |
Zoffix | heh | ||
CIAvash, thanks. Got the files, but they still don't install on Windows. | 14:21 | ||
14:21
mr-foobar left
|
|||
Zoffix | teatime, heh, PragmataPro only costs 200 euros. That's not expensive for a font :) | 14:27 | |
At $work, I'm using Galaxy Polaris, costs $300 and we used to use Helios, which costs like $500 for all styles :) | 14:28 | ||
timotimo | so crashy :\ | ||
14:30
hotel_california joined
|
|||
Zoffix | Crashy :S | 14:30 | |
14:31
hotel left
|
|||
timotimo | we shouldn't be encountering b0rked objects in the heap profiler. something must have a pointer that's invalid and wouldn't be used normally but the heap analyzer is stumbling over it for some reason .. or something like that? | 14:31 | |
like, if the heap collector crashes, the regular GC should be crashing at the same point in a very similar way | |||
14:32
Zoffix left,
Zoffix joined
14:33
CIAvash left
14:43
cdg joined
14:44
crucialr_ joined,
crucialr_ left,
khw joined
14:45
Zoffix left,
cdg left,
Zoffix joined,
crucialr_ joined
|
|||
timotimo | ooooh | 14:47 | |
could it be the heap profiler doesn't know about "reframe" yet? | |||
14:47
kurahaupo left
|
|||
timotimo | that could totally be a thing | 14:47 | |
14:47
JustinHitla left
|
|||
timotimo | hm, but it mostly re-uses what the gc uses, too ... | 14:48 | |
in any case, it crashes reliably :P | |||
Zoffix | :) | 14:49 | |
14:51
pierre_ left
|
|||
RabidGravy | Oooh, I've found the original code to interface with www.velleman.eu/products/view/?coun...;id=351346 - so it might be able to knock something up without needing to bind all of libusb | 14:52 | |
Zoffix | Heh: "You may write custom Windows (98SE, 2000, Me, XP) applications in Delphi" | 14:54 | |
14:57
darutoko left
|
|||
RabidGravy | I made some code years ago in P5 that used Device::USB but it never quite worked right and I was never sufficiently motivated to work out why | 14:58 | |
15:13
wamba joined
15:27
kanishka left
15:29
sortiz joined
15:30
kurahaupo joined
|
|||
sortiz | \o #perl6 | 15:31 | |
RabidGravy | harr! | 15:37 | |
15:40
itcharlie joined
|
|||
RabidGravy | github.com/jonathanstowe/Device-Ve...055-Native - but I think it would be easier just compile a little helper | 15:40 | |
15:43
pmurias left
15:48
dmc00 joined
15:49
dmc00 left
|
|||
MadcapJake | I wonder how difficult it would be to implement this for Perl 6: blog.skylight.io/introducing-helix/ | 15:50 | |
15:51
sena_kun joined,
sena_kun left
|
|||
mst was planning to do that for perl5 at some point | 15:52 | ||
glad somebody made me some prior art | |||
teatime | Zoffix: fair enough; I'm not a designer (but I am quite interested in design and typography, just not well educated about them), nor do I ever buy fonts. But since most people only really want it for use in their own personal development environment (and not for use in print layouts, or as a webfont, or for embedding in an application they distribute), $200 seems kinda steep. However, it does have a very | 15:53 | |
accomodating (for a non-free font) license which allows all of the things I mentioned. | |||
MadcapJake | heh, yeah I have no experience with Rust but the author makes a great point that if you're going to provide a module that has some native extensions, shouldn't it be something that you can guarantee will not segfault? | 15:54 | |
teatime | Zoffix: fwiw, I do beleive it's worth the price, like, intrinsically. just maybe not worth it for all of the people who would like to use it, if it were free. | ||
RabidGravy | MadcapJake, where would the fun in that be | 15:57 | |
MadcapJake | haha | 15:58 | |
teatime | Zoffix: also, I know you said it was OBE, but I sent you an add'l privmsg a while back. | 16:01 | |
16:04
stmuk_ is now known as stmuk,
buharin left
16:08
cognominal joined
16:09
buharin joined
16:22
Zoffix left,
Zoffix joined
16:44
itaipu joined
|
|||
mspo | how can you guarantee it won't segfault if the c code accesses memory it should not? | 16:46 | |
crashing is good | |||
mst | mspo: eh? | ||
mspo: this is a thin C layer that binds to rust, where the compiler prevents 'accesses memory it should not' | 16:47 | ||
mspo | mst: okay | ||
mst: what does it do when libfoo attempts to read outside? | |||
mst | what | 16:48 | |
mspo | nevermind :) | ||
mst | helix is ruby -> (small C shim) -> rust | ||
there is no libfoo involved | |||
mspo | k | 16:49 | |
16:50
skingsbu left
|
|||
mst | the whole point here is to have what would otherwise have been implemented in C, instead implemented in rust, so the compiler can slap you if you mess up your memory management | 16:52 | |
16:52
itcharlie left
16:53
crucialr_ left,
itaipu left
|
|||
|2701 | I like ruby, but ruby and rust are so sjw now | 16:54 | |
mst | fortunately, if you stay focused on the code, the politics of the people are basically irrelevant no matter where on the spectrum they fall | 16:56 | |
MadcapJake | mspo: Rust is designed to be very safe and yes as mst states, this is about implementing something in *your* project in Rust for performance (and safety versus implementing it in C) | 16:57 | |
|2701 | also, rakudo is already on top of llvm, would a helix-esque product actually make p6 any faster? | ||
mst tends to regard ruby as a shinier, prettier perl5 except with terribly limited OO | |||
|2701: um. you use the approach to optimise CPU bound stuff | |||
MadcapJake | rakudo is not on top of llvm | ||
|2701 | oh | 16:58 | |
I thought it was | |||
mst | perl6 is built for expressiveness, obviously a language like rust is going to perform better for the tight spots | ||
|2701 | well shit we should fix that | ||
mst | so even if it was using llvm, your question makes no sense | ||
MadcapJake | |2701: moarvm.org | 16:59 | |
mst | rakudo uses moarvm, which is written in C, I'm not sure why you think 'on llvm' is a thing? | ||
llfourn | I've never heard of 'on llvm' either but this post sorta implies it's a thing wrt rakudo: brrt-to-the-future.blogspot.com.au/...-news.html | 17:04 | |
RabidGravy | oh llvm can be an abstract JIT layer for compilers? cool | 17:07 | |
MadcapJake | |2701: yes a helix-esque product used when some Perl 6 code bottlenecks would definitely improve your application's performance. The nice things about Rust vs NativeCall would be: [a] Rust is very safe, [b] Rust's compiler allows "zero-cost abstractions", and [c] Rust is modern and around the same performance of C. | 17:08 | |
|2701 | rust is soaked in sjw nonsense though. it's possible to leverage llvm without resorting to Rust | 17:09 | |
17:09
itaipu joined
|
|||
llfourn | I think that the point is to use Rust not LLVM? | 17:09 | |
MadcapJake | |2701: seriously that's the most ridiculous argument to not use a technology | ||
|2701 | ok | 17:10 | |
RabidGravy | I'm not quite sure what the sjw thing has to do with any software | ||
mst | |2701: there are a couple of rust contribs who are visibly oriented in that direction ... and lots who aren't | ||
put the tinfoil hat down and back away slowly | |||
RabidGravy | (I had to goofle mind) | ||
mst | it doesn't | 17:11 | |
there are apparently people out there who will refuse to use a piece of software because it doesn't have a code of conduct that aligns with their politics | 17:12 | ||
|2701 | absolutely | ||
MadcapJake | I'm not well-versed in LLVM but I don't think you can just "use" it, you have to create your project entirely around it and its tools. | ||
mst | |2701 is merely demonstrating that reversed stupidity is not intelligence by doing the exact same thing from the other direction | ||
|2701 | to call someone stupid because they disagree with you is itself stupid | 17:13 | |
but thanks | |||
17:13
CIAvash joined
|
|||
|2701 | I never called you stupid nor insinuated anything of the sort | 17:13 | |
mst | I didn't call you stupid | ||
I called 'refusing to use a piece of software because it has an insufficiently $politics code of conduct' stupidity | 17:14 | ||
I don't regard boycotting a piece of software for being "too SJW" as making sense any more than boycotting it for being "insufficiently SJW" | 17:16 | ||
it's software, for flying fornication's sake | |||
|2701 | all the more reason politics should be kept out of it, imo | ||
mst | which is why your position is silly, yes :) | ||
MadcapJake | On top of that, to take a few people's outside-of-work perspective on life/liberty and equate it with an *entire* language project is also silly | ||
17:16
notbenh left
|
|||
|2701 | mst, we can talk or you can call me names, but not both | 17:17 | |
i dont *particularly* care which | |||
mst | I'm not calling you names. if you want to be a professional offence taker by twisting words, go join feminist tumblr | ||
|2701 | its childish | ||
you are though | |||
llfourn | he called "your position" silly.... | ||
mst | precisely | ||
MadcapJake | How about we just leave this discussion completely off the table, it has *nothing* to do with Perl 6 and basically *nothing* to do with programming in general. | ||
|2701 | except that people are catching lawsuits and losing their jobs for not going along with this nonsense | 17:18 | |
mst | ok, we're done here. this is not remotely on-topic. | ||
|2701 | so you *don't* want to sit around and call me names? | ||
just want to be clear here | 17:19 | ||
mst | we're done here. this is not remotely on-topic. | ||
MadcapJake | |2701: no clarity needed, the discussion is over. | ||
17:19
notbenh joined,
damnlie left
|
|||
RabidGravy | but while we are being totally off-topic does someone want to bring me about ten grey doepfer patch cables (50cm) as I'm all out | 17:20 | |
MadcapJake | In Wisconsin, this is about the time someone would say "How bout them Packers, eh?" | ||
RabidGravy | "weather's turned out nice again" | ||
MadcapJake | lol | ||
psch .oO( did you see that ludicrous display last night? ) | |||
17:20
damnlie joined
|
|||
arnsholt | I got to show an American friend epic sax guy for the first time last time | 17:21 | |
Lulz were had! | |||
MadcapJake | arnsholt: what's epic sax guy? | ||
MadcapJake googles | |||
arnsholt | www.youtube.com/watch?v=apav8vgfxMQ | 17:22 | |
mst | MadcapJake: I hear they go well with binders | ||
RabidGravy | I hate to to think, puts me in mind of one of those Kenny G on ketamine with a delay pedal that always seem to pitch up at trance events | 17:23 | |
(see also crazy bongo guy at house clubs) | 17:24 | ||
17:24
firstdayonthejob left
|
|||
mst | I believe the trick is to be on similar amounts of ketamine yourself | 17:24 | |
17:25
firstdayonthejob joined
|
|||
RabidGravy | :-O | 17:25 | |
MadcapJake | lol arnsholt that is hilarious | ||
grondilu | damn eurovision is so silly | 17:26 | |
MadcapJake | speaking of ketamine, apparently it's now going to be an anti-depressant :P | ||
17:28
huggable left
|
|||
grondilu | how do I enumerate the elements of an enum? | 17:30 | |
RabidGravy | .enums | ||
grondilu | m: my enum abc <a b c>; say abc.enums | ||
camelia | rakudo-moar ad8265: OUTPUT«Map.new((:a(0),:b(1),:c(2)))» | ||
grondilu | ok | ||
llfourn | m: my enum abc <a b c>; .say for abc::.keys # this too | 17:31 | |
camelia | rakudo-moar ad8265: OUTPUT«acb» | ||
grondilu | interesting syntax | ||
m: my enum abc <a b c>; say abc::.WHAT | 17:32 | ||
camelia | rakudo-moar ad8265: OUTPUT«(Stash)» | ||
grondilu | never seen a (Stash) before | ||
llfourn | :: is just like .WHO | ||
m: my enum abc <a b c>; .say for abc.WHO.keys # this too | |||
camelia | rakudo-moar ad8265: OUTPUT«acb» | ||
grondilu actually never quite tried to understand what WHO does | |||
llfourn | m: my enum abc <a b c>; say abc::c # this too | ||
camelia | rakudo-moar ad8265: OUTPUT«c» | ||
llfourn | gives you all child symbols of a package | 17:33 | |
grondilu | k | ||
llfourn | m: .say for CompUnit::.keys | ||
camelia | rakudo-moar ad8265: OUTPUT«HandlePrecompilationDependencyLoaderDependencySpecificationRepositoryRegistryPrecompilationUnitRepositoryPrecompilationStorePrecompilationIdPrecompilationRepository» | ||
grondilu | not related at all, but I find it slightly confusing that the correct syntax for a multi-arg pointy block is -> $a, $b {...} while the syntax for a for loop with two parameters is for @a X @b -> ($x, $y) {...} | 17:36 | |
llfourn | you don't need the ( ) do you? | 17:37 | |
grondilu | I think you do | ||
RabidGravy | it unpacks differently | ||
llfourn | m: for ^10 -> $a,$b { } | ||
camelia | ( no output ) | ||
llfourn | ah | ||
m: for flat 5 X ^ 5 -> $a,$b { say $a,$b } # then do this? | 17:38 | ||
camelia | rakudo-moar ad8265: OUTPUT«5051525354» | ||
RabidGravy | they are different things | ||
so yeah, all good, not confusing at all | 17:39 | ||
psch | m: my @a = ^2 X ^2; for @a -> $a, $b { say "$a $b"; }; for @a -> ($a, $b) { say "$a $b" } | 17:40 | |
llfourn | yeah it's kinda cool that you can unpack like that :) | ||
camelia | rakudo-moar ad8265: OUTPUT«0 0 0 11 0 1 10 00 11 01 1» | ||
psch | m: my %h = :1a, :2b; for %h -> (:$key, :$value) { say "$key => $value" } # my fav example for unpacking | 17:41 | |
camelia | rakudo-moar ad8265: OUTPUT«a => 1b => 2» | ||
grondilu | oh ok the syntax without the parens is ok but with a different semantics then? I'm fine with that. | ||
it's easy to make mistake though | 17:42 | ||
llfourn | psch: oh you can unpack pairs :) | ||
it's impossible not to learn new things about p6 every day. It's kinda scary >.<. | |||
17:43
_mg_ joined
|
|||
ugexe | everytime i learn something new in perl6 though it forces me to forget some other perl6 thing | 17:43 | |
llfourn | lol | ||
it depends how strangely consistent the new thing is I think | |||
RabidGravy | until yesterday I hadn't realised that there were zippy meta-ops | 17:45 | |
i.e. | |||
m: say <1 2 3 4> Z+ <5 6 7 8> | 17:46 | ||
camelia | rakudo-moar ad8265: OUTPUT«(6 8 10 12)» | ||
RabidGravy | which is cool | ||
grondilu | not related either : say I have cached function like sub f($n) { state $ //= do-stuff($n) }; does it make sense to evaluate it in void context in a BEGIN block to store precomputed values in the compiled file? Like BEGIN { f($_) for ^10 } ? | 17:47 | |
llfourn | Z+ was one of the first bits of magic I ever saw | ||
grondilu | I mean the optimizer is not going to ignore the void context, is it? | ||
llfourn | m: say eager [1], -> @prev { [0, |@prev Z+ |@prev, 0] } ... 10; # pascals triangle | ||
camelia | rakudo-moar ad8265: OUTPUT«([1] [1 1] [1 2 1] [1 3 3 1] [1 4 6 4 1] [1 5 10 10 5 1] [1 6 15 20 15 6 1] [1 7 21 35 35 21 7 1] [1 8 28 56 70 56 28 8 1] [1 9 36 84 126 126 84 36 9 1])» | ||
grondilu guesses not | |||
llfourn | grondilu: yeah sure why not? But that's what constant $x = ... is for | 17:48 | |
psch | grondilu: note that this specific example will only assign $ for f(0) (unless that returns Any) | 17:49 | |
grondilu: i'm assuming that's because it's a minimized example :) | |||
llfourn | oh right. nvm me I didn't get you. | ||
grondilu | well yeah I badly edited that example. More (state @)[$n] = ... | 17:50 | |
well doing precomp was much easier than I thought in the end. | |||
17:52
cognominal left
|
|||
llfourn | grondilu: I was going to suggest using a lazy list but then I remembered RT #127858 :( | 17:53 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127858 | ||
llfourn | o/ #night | 17:55 | |
grondilu | m: my enum abc <a b c>; say $_ ~~ abc for abc::.enums | 17:56 | |
camelia | rakudo-moar ad8265: OUTPUT«Method 'enums' not found for invocant of class 'Stash' in block <unit> at /tmp/zVMqMbrbxs line 1» | ||
grondilu | m: my enum abc <a b c>; say $_ ~~ abc for abc.enums | ||
camelia | rakudo-moar ad8265: OUTPUT«FalseFalseFalse» | ||
grondilu | ^how do I get the list of elements of type abc? | ||
psch | m: my enum abc <a b c>; say ::($_.key) ~~ abc for abc.enums | 17:59 | |
camelia | rakudo-moar ad8265: OUTPUT«TrueTrueTrue» | ||
psch | i don't know if that does what's asked - i don't really understand the question | ||
i also think it looks a bit horrible :S | |||
grondilu | m: my enum abc <a b c>; say ::(.key) for abc.enums | 18:00 | |
camelia | rakudo-moar ad8265: OUTPUT«acb» | ||
grondilu | that looks fine to me. Thanks. | ||
grondilu is a bit surprised by the different order though. | 18:01 | ||
psch | grondilu: it's a Map, which is an immutable Hash, which are unordered | ||
grondilu | yeah | ||
psch | ...well, conceptually it's an immutable Hash, not in the isa sense | 18:02 | |
grondilu | still it's a bit unexpected for an "enumeration" | ||
mst | m: my enum abc <a b c>; say ::(.key) for abc.enums.sort | 18:03 | |
camelia | rakudo-moar ad8265: OUTPUT«abc» | ||
sortiz | m: my enum abc <a b c>; .perl.say for abc::.values; # grondilu, may be what you are looking for? | 18:15 | |
camelia | rakudo-moar ad8265: OUTPUT«abc::aabc::cabc::b» | ||
18:16
domidumont joined
|
|||
sortiz | m: my enum abc <a b c>; say $_ ~~ abc for abc::.values; | 18:17 | |
camelia | rakudo-moar ad8265: OUTPUT«TrueTrueTrue» | ||
18:18
pmurias joined
18:19
BenGoldberg joined
|
|||
grondilu | m: my enum abc <a b c>; .say for abc.values | 18:20 | |
camelia | ( no output ) | ||
grondilu | m: my enum abc <a b c>; .say for abc::.values | ||
camelia | rakudo-moar ad8265: OUTPUT«acb» | ||
grondilu | yep that's good too | 18:21 | |
sortiz | m: my enum abc <a b c>; .perl.say for abc.^enum_value_list; # Or this? | ||
camelia | rakudo-moar ad8265: OUTPUT«abc::aabc::babc::c» | ||
18:23
a3r0 joined
|
|||
sortiz | grondilu, that last is ordered ^^ | 18:23 | |
18:27
dwarring joined
|
|||
pmurias | |2701: a helix like project wouldn't make Perl 6 itself any faster. It would allow using fast Rust code | 18:28 | |
|2701 | I was making the point that LLVM is desired but Rust is not, due to sjw influence. it was already discussed, mst threw a temper tantrum and stomped off. | 18:29 | |
but yes, you are right | 18:30 | ||
sortiz | m: my enum abc <a b c>; say "$_ is { +$_ }" for abc.^enum_value_list; # Shows both numeric value and symbol name. | 18:31 | |
camelia | rakudo-moar ad8265: OUTPUT«a is 0b is 1c is 2» | ||
BenGoldberg | m: my enum abc <a b c>; a.WHAT.say; | 18:32 | |
camelia | rakudo-moar ad8265: OUTPUT«(abc)» | ||
pmurias | |2701: he was right in that bringing up sjw stuff has no place in the Perl 6 community | 18:37 | |
|2701 | I disagree | 18:38 | |
but w/e | |||
I actually can't use perl6 anyways since it's on github | |||
grondilu | (wth) | 18:39 | |
^scrap that, sorry | |||
mst | |2701: we already said the SJW stuff was done with. please do not attempt to restart the conversation again. | 18:42 | |
|2701 | pmurias asked about it, I responded with a summary | ||
mst | you could have summarised the on-topic parts and skipped the politics | 18:43 | |
in future, please do so | |||
18:43
BenGoldberg left
|
|||
|2701 | the conversation was ABOUT the politics, can you elaborate how I would've done that? | 18:44 | |
what would your phrasing have been> | |||
mst | "my objections to rust are non-technical and the channel has already decided that means they're off topic, so please let's not go there" | ||
not difficult | |||
pmurias feels guilty for bringing up that subject again :/ | 18:45 | ||
|2701 | no need to feel guilty, mst is the only one making a fuss over a conversation that was finished hours ago | ||
18:45
BenGoldberg joined
|
|||
|2701 | you specifically brought it up again to whine about it and ask me not talk about it after I wasn't anyways | 18:45 | |
18:46
ChanServ sets mode: +q *!*@gateway/web/irccloud.com/x-jkxdsvxreqinfjvh
|
|||
mst | the only thing more annoying than irrational crusading feminists is irrational crusading anti-feminists | 18:46 | |
18:48
_nadim left
|
|||
mspo | github is political? | 18:52 | |
18:52
firstdayonthejob left
|
|||
RabidGravy | who knows? I'm completely confused | 18:52 | |
mst | I've no idea what his problem with github was - should you care, you're welcome to /msg him to find out | ||
mspo | maybe that HR slideshow thing | 18:53 | |
could also be extreme GNU | |||
mst | I don't care | ||
mspo | whatevs ;) | ||
mst | I'm a great believer in there being more than one way to do it when it comes to personal politics too, and I'm not interested in anybody who wants to get absolutism all over the technology for whatever reason | ||
grondilu | amen | 18:56 | |
18:57
firstdayonthejob joined
19:02
MasterDuke joined,
Actualeyes left
|
|||
MasterDuke | are there any heuristics for what makes faster nqp code? | 19:04 | |
timotimo | that's difficult to say without knowing more about what you're looking at | 19:05 | |
pmurias | MasterDuke: native types: 'my int $foo' | ||
MasterDuke | e.g., in Perl 6 (at least right now), getting rid of curlies by making things postfix if possible | ||
grondilu | MasterDuke: are you talking about pure nqp or nqp-doped Perl 6? | 19:06 | |
MasterDuke | pure nqp | ||
timotimo | in pure nqp, our optimizer is better about removing curlies, for example | 19:07 | |
MasterDuke | yeah, i've tried postifixing things and converting to ternaries where possible, no difference | ||
timotimo | are you looking at the output of --target=optimize to guide your experiments? | 19:08 | |
MasterDuke | i'm timing 'perl6 --profile -e' | 19:09 | |
19:09
damnlie left
|
|||
timotimo | in that case you're not writing pure nqp code | 19:09 | |
you're still writing perl6 code, just using nqp ops directly | |||
MasterDuke | i'm trying to make the writing of the profile data to file faster | 19:10 | |
timotimo | the optimization strategy for that is quite different | ||
oh, that | |||
OK | |||
a c-level profile may also be interesting here. like with "perf record -g" | |||
to see if it's doing something silly | |||
sometimes we have profiles that end up spending 50% or more of the total time in just a single C function implemented in moarvm | |||
19:10
damnlie joined
|
|||
psch .oO( perl6 --profile -e'exec "$*PERL $program"' ) | 19:10 | ||
oh wait | 19:11 | ||
needs another --profile in the Str :P | |||
timotimo | that was the case when we were very sub-optimal about files with extremely long lines, for example | ||
MasterDuke | turtles all the way down | ||
timotimo | the profiler output was also quite a bit slower when it was concatenating the gigantic json string in place, whereas now it prints pieces to the output file and keeps bits in an array | 19:12 | |
that made a big difference, if i recall correctly | |||
BTW, if you're okay with writing C instead of NQP, you could try picking up my (very old by now) moarvm branch "finite_callgraph_depth" and making that work | 19:13 | ||
MasterDuke | i tried concatenating a string and printing it occasionally, couple percent slower | ||
timotimo | i could never get it to output sensible values :( | ||
pmurias | MadcapJake: it seems rust allows making functions callable from C code (so NativeCall should work on them) | 19:14 | |
MasterDuke | that's unlikely to work out well for either the code or me, i'm not a huge fan of c (nor very good at writing it) | ||
timotimo | OK | ||
i've gotta go AFK for a bit | |||
MasterDuke | but thanks, it's at least something to investigate | 19:15 | |
timotimo | it's about summing up data in the callgraph when nodes reach a certain depth | ||
in theory, that calculation could be done in the nqp code that pre-processes the call graph | 19:16 | ||
19:16
mr-foobar joined
|
|||
timotimo | it takes longer to recompile nqp, though, to get that code into action .. and on top of that you also have to recompile rakudo after nqp | 19:17 | |
when you change moarvm, you don't need to recompile nqp or rakudo | |||
19:18
jack_rabbit left
19:24
pecastro left
19:26
pecastro joined
19:33
ssotka joined
19:34
domidumont left
19:38
pecastro left
19:39
pecastro joined
|
|||
MadcapJake | pmurias: that's interesting! I'll have to give it a try. | 19:40 | |
19:41
ssotka left
|
|||
pmurias | MadcapJake: the interesting/hard part would be automatic things so it's not necessary to manually write the wrapper (like with c libs) | 19:42 | |
19:45
dalek left,
dalek joined,
ChanServ sets mode: +v dalek,
dalek left
|
|||
timotimo | o_O | 19:45 | |
19:46
dalek joined,
ChanServ sets mode: +v dalek,
dalek left
|
|||
timotimo | *seriously* | 19:46 | |
19:47
dalek joined,
ChanServ sets mode: +v dalek,
dalek left
19:48
dalek joined,
ChanServ sets mode: +v dalek
|
|||
timotimo removed a few auto-join channels | 19:48 | ||
we're potentially using a very old version of this botnix thing, but ... damn, that's *stupid* | 19:49 | ||
mst | insufficient throttling | 19:50 | |
and, yes, yes it is | |||
timotimo | mst: what's a sensible value for its throttlebps value? currently it was set to 8768, i reduced it to 4096, but the comment says the default value is 256 | 19:52 | |
mst | I'd maybe try setting it to 3600 or so, for 'safely below 4096' and see where you get | 19:53 | |
it varies between networks, and of course getting reconnected to a closer server can suddenly make a previous throttle insufficient | |||
19:54
ilbot3 left
19:55
ilbot3 joined
19:56
hotel joined
19:57
aries_liuxueyang left,
hotel_california left
|
|||
timotimo | hm. dalek probably doesn't pick up configuration changes just because it gets kicked for excess flood | 19:58 | |
19:58
aries_liuxueyang joined
|
|||
timotimo | i'd have to reconnect, re-root, and reboot dalek ... and also add back these other channels to see if it still gets kicked | 19:58 | |
20:04
BenGoldberg left
|
|||
arnsholt | timotimo++ # looking into fixing dalek | 20:07 | |
timotimo | arnsholt: i'm not going to touch the bot's code with a very long stick, though :) | ||
arnsholt | Even config changes count! =) | 20:08 | |
20:09
BenGoldberg joined
|
|||
moritz | I know that when I moved dalek from feather to hack, I tried a clean setup first | 20:10 | |
failed | |||
20:10
buharin left,
_mg_ left
|
|||
moritz | and then simply rsync'ed the directory over | 20:10 | |
a nasty mix of git and svn repos with lots of local modifications and untracked files | |||
grepped for some paths, adjusted them to the new directory, and it worked | |||
20:15
BenGoldberg left,
xfix joined
20:17
itaipu left
20:18
wamba left
|
|||
timotimo | yeah, urgh ;( | 20:20 | |
20:23
pecastro left
20:30
cpage_ left
20:35
rindolf left
20:38
cognominal joined
20:39
rindolf joined
20:44
_nadim joined
20:49
Emeric left
20:56
yqt joined
21:20
hotel_california joined,
hotel left
21:30
CIAvash left
21:33
TEttinger joined
21:41
gobol joined
|
|||
RabidGravy | better actually find the K8055 board in the morning to actually test that this code works | 21:42 | |
21:44
_dolmen_ joined
21:48
itcharlie joined
21:50
ssotka joined
21:54
_dolmen_ left
22:07
hotel joined,
hotel_california left
22:16
cognominal left,
pmurias left
22:17
skink joined
22:21
RabidGravy left
22:46
hotel_california joined,
hotel left
|
|||
dalek | c: 6e28573 | (Jan-Olof Hendig)++ | doc/Language/classtut.pod: More broken links fixed |
22:47 | |
grondilu | m: my $x; say $x.WHERE; say -> $y { $y }($x).WHERE; | 22:48 | |
camelia | rakudo-moar ad8265: OUTPUT«4346528843465288» | ||
grondilu | m: my $x; ; my $p = -> $y { -> { $y } }($x); my $x = pi; say $p($x)(); | 22:49 | |
camelia | rakudo-moar ad8265: OUTPUT«Potential difficulties: Redeclaration of symbol $x at /tmp/NRiDHZJGvc:1 ------> 3; my $p = -> $y { -> { $y } }($x); my $x7⏏5 = pi; say $p($x)();Too many positionals passed; expected 0 arguments but got 1 in block <unit> at /t…» | ||
grondilu | m: my $x; ; my $p = -> $y { -> { $y } }($x); $x = pi; say $p($x)(); | ||
camelia | rakudo-moar ad8265: OUTPUT«Too many positionals passed; expected 0 arguments but got 1 in block <unit> at /tmp/Pw89P_KaJI line 1» | ||
grondilu | m: my $x; my $p = -> $y { -> { $y } }($x); $x = pi; say $p(); | 22:50 | |
camelia | rakudo-moar ad8265: OUTPUT«(Any)» | ||
grondilu was expecting pi here somehow | |||
22:51
|2701 left
|
|||
skink | Odd. I'm passing a C function a CStruct and its contents seem to get written all out of order, without a consistent pattern | 22:51 | |
Zoffix | grondilu, you're closing over it before it has any value | 22:52 | |
well, not over *it* by over the $y with value of $x from when $x isn't yet a pie | |||
m: my $x; $x = pi; my $p = -> $y { -> { $y } }($x); say $p(); | |||
camelia | rakudo-moar ad8265: OUTPUT«3.14159265358979» | ||
Zoffix | m: my $x; $x = π; my $p = -> $y { -> { $y } }($x); $x = τ; say $p(); | 22:53 | |
camelia | rakudo-moar ad8265: OUTPUT«3.14159265358979» | ||
grondilu | yeah but precisely I want to build a closure over an undefined value. | ||
Zoffix | Mission accomplished then :) You do get an undefined value back :D | ||
grondilu | m: my $x; $x = π; my $p = -> $y { -> { $y } }($x); $x = τ; say $p(); $x = sqrt(2); say $p(); | 22:54 | |
camelia | rakudo-moar ad8265: OUTPUT«3.141592653589793.14159265358979» | ||
Zoffix | m: my $x; my $p = -> { $x }; $x = π; say $p(); | ||
camelia | rakudo-moar ad8265: OUTPUT«3.14159265358979» | ||
Zoffix | Did you mean this instead? | ||
grondilu | in my last example I was expecting pi and then sqrt'(2) | ||
well I was not expecting it with that code but that illustrats my goal. | 22:55 | ||
Zoffix | That expectation is incorrect. You're passing undefined $x as $y parameter to a block that closes over *that $y*, which is undefined, and that block will always return that value. It's no longer linked to $x | ||
My last example is how to close over $x and still keep getting new values when it changes. Your version is a construct made precisely to break that link. | 22:56 | ||
grondilu | hang on | ||
that looks a lot like what I was trying to do in my first example. | 22:57 | ||
22:57
Sgeo_ joined,
caymanboy joined
|
|||
grondilu | m: my $x; my $p = -> $y { -> { $y } }($x); $x = pi; say $p(); | 22:57 | |
camelia | rakudo-moar ad8265: OUTPUT«(Any)» | ||
grondilu | because I want the closure to be returned by a function. | 22:58 | |
22:58
firstdayonthejob left
|
|||
Zoffix | Interesting. Apparently my fancy keyboard doesn't support 𝑒 :/ | 22:58 | |
.u 𝑒 | |||
yoleaux | U+1D452 MATHEMATICAL ITALIC SMALL E [Ll] (𝑒) | ||
Zoffix | Nothing happens when I assign it to a key :/ (and it's not rendering in my font) | 22:59 | |
grondilu | that is I was expecting -> { $x } to behave exactly like -> $y { -> { $y } }($x) | ||
22:59
caymanboy left
|
|||
Zoffix | grondilu, the first closes over $x, the second closes over $y. The first will return different results when $x changes. The second won't, because $y doesn't change., | 23:00 | |
geekosaur | is that your keyboard or some other part of the system not handling it? | ||
Zoffix | m: my $x; $x = pi; my $p = -> $y is rw { -> { $y } }($x); $x = τ; say $p(); | ||
camelia | rakudo-moar ad8265: OUTPUT«6.28318530717959» | ||
23:00
rindolf left
|
|||
Zoffix | grondilu, now this ^ works because $y is directly tied to $x due to is rw | 23:00 | |
geekosaur, well, I assigned it to the key the same way as I assigned π and τ and nothing happens when I press the key :) | 23:01 | ||
grondilu | oh yeah I had thought of using is rw at some point but forgot about it somehow | ||
Zoffix++ thanks | |||
23:01
Sgeo left
|
|||
geekosaur | right, my point is if it also doesn't render when displayed, it may be generated fine by the keyboard and something else in the OS chokes on it | 23:02 | |
23:02
|2701 joined
|
|||
geekosaur | (or thinks it's something else, like a multimedia keycode or something silly like that) | 23:02 | |
23:03
caymanboy joined
|
|||
Zoffix | grondilu, err... the `is rw` was just an example for explanation -> $y is rw { -> { $y } }($x); is just a convoluted way to write -> { $x } | 23:04 | |
grondilu | it's not uselessly convoluted. | 23:05 | |
Zoffix | grondilu, what's the use then? | ||
grondilu | my initial intent was to write multi candidate algebraic operators for undefined numeric values. | ||
basically a idea for a polynomials module. | 23:06 | ||
something like: use Polynomials; my Real $x; my $P = 1 + $x*$x; say $P($_) for rand xx *; | 23:07 | ||
Zoffix | k | ||
𝑒𝑒𝑒𝑒 | 23:08 | ||
geekosaur++ changing from "Typing" to "Copy/pasting" mode fixed it. I guess it doesn't know how to "type" a char it doesn't recognize | |||
grondilu | I get an ambiguous call when I try to define multi infix:<*>(Real:U $a, Real:U $b) though. | 23:09 | |
geekosaur | well, or can type it but the OS won't read it (or something else won't; this comes up a lot with vnc or other remote desktop things, when the remote OS can't figure out what it was just sent_ | ||
copy/paste hacks around those os shortcomings | 23:10 | ||
Zoffix | I now have all of these set up as single-key typings: :D πτ𝑒×÷−…∞≅»””’‘¯\_(ツ)_/¯(╯°□°)╯︵ ┻━┻ | ||
grondilu, yeah, it'll conflict with the core ones, unfortunately | |||
geekosaur | it's even more fun when you type one key and the OS reads it as something else, which also happens a lot with vnc and non-Western keys :/ | ||
Zoffix | You can either use a different char or shadow the core ones by avoiding the multi | ||
grondilu | it works with prefix:<+>(Real:U $) though. Why the difference? | 23:11 | |
Zoffix | m: &prefix:<+>.^candidates.say | 23:12 | |
camelia | rakudo-moar ad8265: OUTPUT«Method 'candidates' not found for invocant of class 'Perl6::Metamodel::ClassHOW' in block <unit> at /tmp/LQoLF8h6nF line 1» | ||
Zoffix | m: &prefix:<+>.candidates.say | ||
camelia | rakudo-moar ad8265: OUTPUT«(sub prefix:<+> (\a) { #`(Sub|55734360) ... })» | ||
Zoffix | m: &prefix:<*>.candidates.say | ||
camelia | rakudo-moar ad8265: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PPrDBD5UheUndeclared routine: prefix:<*> used at line 1. Did you mean 'prefix:<~>', 'prefix:<->', 'prefix:<+>', 'prefix:<!>', 'prefix:<|>'?» | ||
Zoffix | m: &infix:<*>.candidates.say | ||
camelia | rakudo-moar ad8265: OUTPUT«(sub infix:<*> ($x = 1) { #`(Sub|59403080) ... } sub infix:<*> (\a, \b) { #`(Sub|59405208) ... } sub infix:<*> (Real \a, Real \b) { #`(Sub|59404752) ... } sub infix:<*> (Int:D \a, Int:D \b --> Int) { #`(Sub+{Callable[Int]}|59403536) ... } sub infix:<*> (in…» | ||
Zoffix | grondilu, ^ there's no ambiguity with prefix + | 23:13 | |
grondilu | oh ok | ||
23:13
caymanboy left
|
|||
Zoffix | It would be handy to have a way to explicitly resolve ambiguities in multies.. Like "if something's ambiguous, use this one" | 23:13 | |
So you could shadow a specific multi without shadowing all of the multies | |||
grondilu | I don't want to shadow anything. | ||
actually I thought I understood but I don't. There is no double undefined candidate for infix:<*> in the core, is there? | 23:14 | ||
Zoffix | sub infix:<*> (Real \a, Real \b) { #`(Sub|59404752) ... } | 23:16 | |
grondilu | m: multi f(Real $) { rand }; multi f(Real:U $) { pi }; say f(my Real $);' | ||
camelia | rakudo-moar ad8265: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QlZZMM1vNPUnable to parse expression in single quotes; couldn't find final "'" at /tmp/QlZZMM1vNP:1------> 3i f(Real:U $) { pi }; say f(my Real $);'7⏏5<EOL> expecting any of: sing…» | ||
grondilu | m: multi f(Real $) { rand }; multi f(Real:U $) { pi }; say f(my Real $); | ||
camelia | rakudo-moar ad8265: OUTPUT«Ambiguous call to 'f'; these signatures all match::(Real $):(Real:U $) in block <unit> at /tmp/0p3_nkR8Qh line 1» | ||
grondilu | oh I see now | ||
I thought Real:U is narrower than Real | 23:17 | ||
Zoffix | I think resolution by smiley is NIY | ||
grondilu | m: multi f(Real $) { rand }; multi f($ where !*.defined) { pi }; say f(my Real $); | 23:18 | |
camelia | rakudo-moar ad8265: OUTPUT«0.154839716764005» | ||
grondilu | ^I guess I could do that. | ||
Zoffix | neat | ||
grondilu | well except it did not work | ||
Zoffix | m: multi f(Real $) { rand }; multi f(Real $ where !*.defined) { pi }; say f(my Real $); | ||
camelia | rakudo-moar ad8265: OUTPUT«3.14159265358979» | ||
Zoffix | m: multi f(Real $) { rand }; multi f(Real $ where !*.defined) { pi }; say f(my Real $); say f(my Real $ = 42.0) | ||
camelia | rakudo-moar ad8265: OUTPUT«3.141592653589790.782998108723283» | ||
grondilu | oh yeah forgot the Real | 23:19 | |
Zoffix | Seems to work fine | ||
grondilu | cool | ||
basically I can do: subset Monome of Real where !*.defined | |||
(though it's "Monomial" in proper English) | 23:20 | ||
23:27
spider-mario left
23:32
cpage_ joined
23:34
gobol left
23:52
sufrostico joined
|