»ö« 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:01
ryn1x left
00:02
ryn1x joined
00:05
Kyo91_ joined
00:06
ryn1x left
00:08
ryn1x joined
00:09
Kyo91_ left
|
|||
Geth | doc/master: 7 commits pushed by (Will "Coke" Coleda)++ | 00:09 | |
[Coke] | make xtest now also checks that the type-graph.txt file matches what's in rakudo. | 00:10 | |
00:13
john51 joined,
ryn1x left
00:33
evalable6 left,
evalable6 joined
00:41
ryn1x joined
00:46
ryn1x left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:48
ryn1x joined
00:49
gmichel joined
00:50
dj_goku joined
00:53
ryn1x left
00:56
itaipu joined
00:59
Cabanossi left
01:00
pilne joined,
Cabanossi joined
01:01
cdg joined,
BenGoldberg joined
01:02
Kyo91_ joined
01:05
cdg left
|
|||
MasterDuke | [Coke]++. gonna convert htmlify.p6 to hyper/race now they're working? | 01:06 | |
01:09
gmichel left
01:19
bitrauser joined
01:24
Kyo91_ left
01:32
llfourn joined
01:37
llfourn left
01:39
cdg joined,
mr-foobar left
01:41
mr-foobar joined
01:43
cdg left
01:47
aborazmeh left
01:48
Herby__ joined
01:51
llfourn joined
01:55
lizmat joined
01:56
ilbot3 joined,
ChanServ sets mode: +v ilbot3
01:57
raschipi joined,
Cabanossi left
01:59
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
Cabanossi joined
02:06
aborazmeh left,
ivans left
02:13
ufobat_ joined
02:17
ryn1x joined
02:19
noganex_ joined
02:30
ivans joined
02:37
lizmat left
02:40
mr-foobar left
02:42
mr-foobar joined
02:43
raschipi left
02:45
cdg joined
02:50
cdg left
02:57
Cabanossi left
02:59
Cabanossi joined
03:02
Herby__ left
03:09
mr-foobar left
03:10
mr-foobar joined
03:19
khw left
03:21
wamba joined
03:25
lizmat joined
03:36
stux|RC joined
03:40
mr-foobar left,
stux|RC left
03:42
Cabanossi left
03:43
Cabanossi joined,
mr-foobar joined
03:45
bwisti left
03:48
stux|RC joined
03:52
cdg joined
03:57
cdg left
03:59
darkmorph joined
04:10
mr-foobar left
04:12
itaipu left
04:15
mr-foobar joined
04:25
BenGoldberg left
04:26
Cabanossi left
04:28
cdg joined
04:29
Cabanossi joined
04:33
cdg left
04:37
wamba left
04:54
darkmorph left
04:57
ryn1x left
05:02
HoboWithAShotgun left
05:05
cdg joined
05:09
cdg left
05:15
grumble joined
05:17
albastev joined
05:23
Exodist joined,
ryn1x joined
05:27
Cabanossi left
05:28
ryn1x left
05:29
Cabanossi joined
05:30
wamba joined,
ryn1x joined
05:35
ryn1x left
05:37
darutoko joined
05:39
sena_kun joined
05:40
mr-foobar left
05:43
mr-foobar joined
05:50
Actualeyes joined
05:58
Cabanossi left
05:59
Cabanossi joined,
Piotr_ joined
06:01
ryn1x joined
|
|||
Geth | mu: albastev++ created pull request #26: Add to advent schedule |
06:10 | |
06:21
evalable6 left,
evalable6 joined,
ChanServ sets mode: +v evalable6
06:25
wamba left
06:27
cdg joined,
Cabanossi left
06:29
Cabanossi joined
06:31
cdg left,
ryn1x left
06:37
nadim_ joined,
albastev left
06:40
domidumont joined
06:42
wamba joined
06:43
domidumont left
06:45
domidumont joined
06:46
domidumont left,
wamba left
06:47
domidumont joined
06:54
wamba joined
06:56
Cabanossi left
06:58
ryn1x joined
06:59
Cabanossi joined
07:01
jonas1 joined
07:02
ufobat joined,
ufobat_ left
07:03
ryn1x left
07:09
plicease left
07:11
mr-foobar left
07:13
mr-foobar joined
07:15
plicease joined
07:17
astj joined
07:18
astj left,
astj joined
07:19
sena_kun left
07:28
napo1eon joined
07:31
dakkar joined
07:33
pmurias joined
07:34
ryn1x joined
07:36
cdg joined
07:41
cdg left
07:50
zakharyas joined
07:54
wamba left
07:55
zakharyas left,
zakharyas joined
08:00
cdg joined,
wander joined
|
|||
wander | m: my $formatted-text = "Fourscore and seven years ago...".indent(8); say $formatted-text; | 08:00 | |
camelia | Fourscore and seven years ago... | ||
08:04
lowbro joined,
lowbro left,
lowbro joined,
cdg left
08:06
ryn1x left
08:10
Ven joined
08:11
Ven is now known as Guest84182
|
|||
Geth | mu: 4a24cb5e81 | albastev++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Add to advent schedule "Tackling a Big Grammar in Perl 6" would be a blog post about how Perl 6 allowed me to successfully build and test a modular Modelica Grammar. |
08:11 | |
mu: bd8945164d | lizmat++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Merge pull request #26 from albastev/master Add to advent schedule |
|||
wander | how does adverb work on pod6? | 08:15 | |
some like `=for code :allow<B L> :preamble<my $formatted-text;>' | |||
08:15
knight__ joined,
parv joined
|
|||
wander | what's the different between such a code block and just indent the code | 08:16 | |
and is `:preamble ' for passing tests? | 08:17 | ||
08:19
cdg joined
|
|||
DrForr | {..} introduces a new scope. And though I'm not sure, I'm guessing :preamble has nothing to do with passing tests, it's just a comment to the effect that 'my $formatted-test;' appears before the start of some code. | 08:19 | |
08:23
cdg left
08:28
Cabanossi left,
Cabanossi joined
|
|||
wander | m: my uint64 $a = 42; say $a.^name; # | 08:33 | |
camelia | Int | ||
lizmat | m: my int64 $a = 42; dd $a.^mro | 08:36 | |
camelia | (Int, Cool, Any, Mu) | ||
lizmat | a native is not really an object: if you treat it like an object, it mimics its HLL counterpart | ||
m: my str $a = "foo"; dd $a.^mro | |||
camelia | (Str, Cool, Any, Mu) | ||
wander | no problem. just to get a rakudo-moar output | ||
:P | |||
lizmat | m: say 42 | 08:37 | |
camelia | 42 | ||
lizmat | :-) | ||
08:39
grumble left
08:40
grumble joined
08:41
mr-foobar left
08:42
knight__ left
08:43
Guest84182 left
08:44
mr-foobar joined
08:47
Aaronepower joined,
ryn1x joined
|
|||
AlexDaniel` | uh. Just yesterday I was enjoying fallen leaves and stuff, and overnight we have like 20 cm of snow files.progarm.org/IMG_20171026_114002.jpg | 08:47 | |
the kids are sledging right in front of my house :) | 08:48 | ||
08:52
ryn1x left
08:55
Aaronepower left
08:57
wander left
09:07
wander joined
|
|||
ufobat | wow | 09:08 | |
cool | |||
where are you from AlexDaniel? | |||
AlexDaniel` | Estonia | ||
tadzik | nice :D | ||
DrForr | Hoo boy, we're gonna get it here in Prague soon then. | 09:09 | |
Geth | doc: 45af77b021 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/tables.pod6 fix spelling |
09:10 | |
synopsebot | Link: doc.perl6.org/language/tables | ||
wander | DrForr, finally I find the explanation of :preamble at perl6/doc/EXAMPLES.md | 09:13 | |
it's about Writing Examples | |||
DrForr | Ah. | 09:15 | |
ufobat | i wanted to go hicking with the kids this weekend, but the weatherforecast is not so good :/ | 09:16 | |
09:22
cdg joined
09:26
cdg left
09:27
ryn1x joined
|
|||
Geth | doc: 46e6c137ee | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/tables.pod6 clarify restrictions vs bad practice |
09:28 | |
synopsebot | Link: doc.perl6.org/language/tables | ||
Geth | doc: 91eb48a83d | (Alex Chen)++ (committed using GitHub Web editor) | doc/Language/objects.pod6 Unified format of code block and delete redundant links |
09:30 | |
synopsebot | Link: doc.perl6.org/language/objects | ||
09:35
rindolf joined
09:42
mr-foobar left
09:44
mr-foobar joined,
itaipu joined
09:48
piojo joined,
wamba joined
|
|||
piojo | When I initialize DBIish in a module, I'm getting "SORRY! This type (NQPMu) does not support associative operations" when I include that module in other files | 09:50 | |
DbConn.pm6 contains: use DBIish; DBIish.connect('Pg'); | |||
Importer.pm6 contains: use DbConn; | |||
and I'm running: perl6 -I. -MImporter -e 'say 5' | |||
Does this seem like a DBIish problem, or rakudo? | 09:51 | ||
It seems like it's all about the depth of includes I have--if there is just one include, it works. But two levels (either the CLI version I pasted, or adding a .p6 script that includes Importer, so there are two levels of "using") | 09:53 | ||
moritz | does it work if you run DbConn.pm6 directly? | ||
piojo | moritz: yes | 09:54 | |
Also fine to run code in Include.pm6 directly | |||
(It happens on both Linux and Windows, so I think it's not a personal problem) | 09:56 | ||
09:57
Aaronepower joined
|
|||
piojo | If you test, please be sure to delete ./.precomp. Otherwise it may run even when the test case will normally fail | 09:57 | |
10:00
ryn1x left
|
|||
piojo | Err, I meant it's fine to run "Import.pm6" directly. Didn't mean to introduce another class | 10:01 | |
I'm rebooting, be back in a minute | 10:03 | ||
10:03
piojo left
10:05
piojo joined,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
10:07
ivans left
10:18
ivans joined
|
|||
piojo | I'm also getting a "Missing serialize REPR function for REPR ConditionVariable (Lock::ConditionVariable)" when I come up with any workaround for the previous error | 10:20 | |
10:21
steeznson joined
|
|||
piojo | Though if I cram it all into one script, it works fine | 10:23 | |
Geth | ecosystem: 5b7cf09a7e | (Alexey Melezhik)++ (committed using GitHub Web editor) | META.list Sparrowdo gets uploaded to CPAN |
10:25 | |
10:27
Cabanossi left
10:28
Cabanossi joined
|
|||
buggable | New CPAN upload: Sparrowdo-0.0.35.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/....35.tar.gz | 10:36 | |
10:40
ryn1x joined
10:44
ryn1x left
10:45
margeas joined
|
|||
Geth | mu: JJ++ created pull request #27: Requesting a slot for the Advent Calendar |
10:48 | |
mu: 2f74350439 | (JJ Merelo)++ | misc/perl6advent-2017/schedule Requesting a slot for the Advent Calendar It can be moved up and down at will; I just greedily took the first spot available. It will be about how I tried to make scripts to take my Perl6 book to production easily and ended up working on the Perl 6 Text::Markdown module. |
10:52 | ||
mu: d173b3ffa9 | (Zoffix Znet)++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Merge pull request #27 from JJ/master Requesting a slot for the Advent Calendar |
|||
10:53
lowbro left
10:54
lowbro joined,
lowbro left,
lowbro joined
10:56
wamba left
|
|||
piojo | moritz: Can you tell whether DBIish only working in one file is a rakudo or DBIish bug? | 11:05 | |
11:14
Grimy joined
11:18
ryn1x joined
11:27
Cabanossi left
11:28
parv left
11:29
Cabanossi joined
|
|||
Grimy | The docs say “=== uses the WHICH method to obtain the object identity”, but what does this mean? Sometimes $a !== $b even though $a.WHICH eq $b.WHICH, so === must be doing something else. | 11:29 | |
Looking at rakudo’s source, it looks like there are many overloads of ===, but only infix:<===>(Any, Any) is documented. | 11:31 | ||
AlexDaniel | uh, !==? you mean !=== ? | 11:36 | |
11:37
raschipi joined
|
|||
Grimy | Uh, yes, that’s what I meant | 11:39 | |
raschipi | Can you give an example? | 11:42 | |
Grimy | m: my ($a, $b) = (1e0, 1e0 + 4e-15); $a === $b, $a.WHICH eq $b.WHICH | 11:44 | |
camelia | ( no output ) | ||
Grimy | m: my ($a, $b) = (1e0, 1e0 + 4e-15); say $a === $b, $a.WHICH eq $b.WHICH | ||
camelia | FalseTrue | ||
geekosaur | Num is not using WHICH, it's using an overload to compare actual values. .WHICH is only needed for non-value types | 11:47 | |
11:47
sproctor joined
|
|||
geekosaur | and then the vagaries of IEEE floating point will get in the way and confuse things (and may well be confusing the .WHICH) | 11:48 | |
m: dd (1e0+4e-15).WHICH | |||
camelia | ObjAt.new("Num|1") | ||
geekosaur | uh | ||
Grimy | So the issue is just that WHICH on Nums isn’t using enough precision? | 11:49 | |
geekosaur | apparently | ||
but again, for value types it doesn;t bother with .WHICH because it can compare the values | |||
Grimy | Well ideally both should give the same results | ||
geekosaur | there is no reason to build an ObjAt for a number, generally | ||
11:53
ryn1x left
11:56
eliasr joined
|
|||
Geth | mu: ac6b925c8b | (Jonathan Stowe)++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Update schedule I have some vague stuff about messaging patterns sketched out somewhere :) |
12:03 | |
12:12
mr-foobar left
12:14
mr-foobar joined
12:17
ivans left
12:20
itaipu left
12:21
ivans joined
|
|||
wander | It said "Unlike Subroutines, additional named arguments will not produce compile time or runtime errors." | 12:26 | |
I wonder how additional named arguments produce compile time or runtime errors on Subroutines | 12:27 | ||
lizmat | m: use nqp; dd nqp::unbox_n(1e0); dd nqp::unbox_n(1e0 + 4e-15) # geekosaur: the source of the issue | 12:30 | |
camelia | 1e0 1e0 |
||
lizmat | m: use nqp; dd nqp::unbox_n(1e0); dd nqp::unbox_n(1e0 + 4e-14) # one order of magnitude larger and we're ok | ||
camelia | 1e0 1.00000000000004e0 |
||
12:32
Aaronepower left
|
|||
raschipi | lizmat: Is this floating point error? | 12:32 | |
lizmat | I'm not sure: I'm just saying that the problem is not in rakudo, but lies deeper, probably in MoarVM | 12:33 | |
as the JVM backend does not have this issue, I'm told | |||
j: say 42 | |||
camelia | Error while reading '/home/camelia/p6eval-token': No such file or directory at /home/camelia/rakudo-j-inst/bin/eval-client.pl line 10. | ||
lizmat | alas, we can't test that easily :-( | 12:34 | |
[Coke] | MasterDuke: (hyper/race) or something. :) | ||
12:35
Ven joined,
Ven left
|
|||
[Coke] | (docs, preamble) github.com/perl6/doc/blob/master/E...#preambles | 12:35 | |
Geth | doc: aa93bc2a41 | (Alex Chen)++ (committed using GitHub Web editor) | doc/Language/objects.pod6 unified format and add note about default constructor |
12:36 | |
synopsebot | Link: doc.perl6.org/language/objects | ||
12:37
zakharyas left
|
|||
[Coke] | DrForr: it's *exactly* about making the code compile without having to show all the work (which is sometimes helpful from a teaching standpoint) | 12:39 | |
(all the work has to be there, but the preamble isn't rendered, it's just used to make the code snippet compile.) | |||
DrForr | Oh, that. Hrm, that I could actually use. | 12:41 | |
wander | m: my $x = 42; say "$x.^name"; say "$x.^name()"; | 12:42 | |
camelia | 42.^name Int |
||
12:42
Cabanossi left
|
|||
wander | interesting.. | 12:42 | |
Geth | mu: e5615cbf29 | (Brian Duggan)++ | misc/perl6advent-2017/schedule Advent calendar: Dec 10 I propose to write an advent post involving the use of Rats/fractions for measurement. |
||
12:43
steeznson left
|
|||
[Coke] | wander: if you have a question about what'll get interpolated, use {} | 12:43 | |
wander | I see | ||
[Coke] | m: my $x = 42; say "{$x.^name}hi | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in double quotes; couldn't find final '"' (corresponding starter was at line 1) at <tmp>:1 ------> 3my $x = 42; say "{$x.^name}hi7⏏5<EOL> expecting any of: … |
||
[Coke] | m: my $x = 42; say "{$x.^name}hi" | ||
camelia | Inthi | ||
12:44
Cabanossi joined
|
|||
wander | always I use {}, but how it actually works, I means without {} | 12:44 | |
[Coke] | docs.perl6.org/language/quoting#In...lation:_qq | 12:45 | |
12:47
aborazmeh left,
itaipu joined
|
|||
wander | thank you | 12:49 | |
DrForr | Specifically that sounds useful if I can get around to writing the pod => HTML + checker code. | 12:54 | |
Grimy | m: dd all(1, 2) != 1, one(1, 2) != 1 | 12:55 | |
camelia | Bool::True Bool::False |
||
Grimy | That’s the opposite of DWIM. Exactly one of (1, 2) is != 1. | ||
12:57
jonas1 left
|
|||
ugexe | Use a different operator | 12:57 | |
12:57
jonas1 joined
|
|||
wander | m: say 1 ~~ one(1, 2); | 12:57 | |
camelia | True | ||
wander | say 1 ~~ all(1, 2) | 12:58 | |
evalable6 | False | ||
Grimy | m: say 1 ~~ one(1, 2) | ||
camelia | True | ||
Grimy | m: say 1 !~ one(1, 2) | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of !~ to do negated pattern matching; in Perl 6 please use !~~ at <tmp>:1 ------> 3say 1 !~ 7⏏5one(1, 2) |
||
Grimy | m: say 1 !~~ one(1, 2) | ||
camelia | False | ||
Grimy | Same issue | ||
1 is !~~ exactly one of (1, 2), yet 1 !~~ one(1, 2) returns False. | 12:59 | ||
raschipi | As 1 ~~ one(1, 2) is true, the inverse of that is false | ||
wander | m: say one(1, 2) ~~ 1 | 13:00 | |
camelia | True | ||
[Coke] | m: say ! (all(1,2) == 1) | ||
camelia | True | ||
[Coke] | docs say this: | 13:01 | |
"Negated operators are special-cased when it comes to autothreading. $a !op $b is rewritten internally as !($a op $b). The outer negation collapses any junctions, so the return value always a plain Bool. | |||
" | |||
El_Che | !release | ||
!next | |||
computer says no | 13:02 | ||
[Coke] | Not sure if != counts as a negated operator. | ||
Grimy | Yeah, it’s documented, but that doesn’t make it less counter-intuitive. | ||
wander | m: say ?all(map (* != 1), [1,2]); | 13:04 | |
camelia | False | ||
13:05
mr-foobar left,
ryn1x joined
|
|||
Grimy | m: say [&&] ([1, 2] «!=» 1) | 13:05 | |
camelia | False | ||
13:07
cdg joined,
bdmatatu joined
13:15
cdg_ joined
|
|||
wander | it makes Junctions work strangely | 13:15 | |
that $a !op $b converted into !($a op $b) | 13:16 | ||
13:18
cdg left
|
|||
raschipi | what would you expect? | 13:21 | |
Grimy | I expect “1 != any(1, 2)” to be the same as “any(1 != 1, 1 != 2)” | 13:24 | |
That’s how most operators work with junctions | |||
13:25
sena_kun joined
13:27
Cabanossi left
13:29
Cabanossi joined
|
|||
raschipi | But junctions collapse in boolean context | 13:33 | |
Grimy | Well yeah. The problem is that it collapses to the negation of the value I’d expect. | 13:34 | |
13:41
number8 joined
|
|||
El_Che | when is the next releases planned (af the delay)? When it's ready or is there a target date? | 13:41 | |
raschipi | m: say 1 == any(1, 2); say 1 != any(1, 2); say so any(True, False); | ||
camelia | any(True, False) False True |
||
13:41
ryn1x left
|
|||
number8 | Hello, everybody! I'm only starting with Perl 6, and really enjoying it, however I'm kinda confused about IO objects and how to handle them... For example, if I list a directory's contents with dir()... | 13:43 | |
13:43
mson joined
|
|||
number8 | ...and want to rename a file (that may have spaces in it, for example), how do I treat the result, which is something like filename.jpg.IO? | 13:44 | |
can I treat it as if it were just the filename as a string, ignoring the .IO? | 13:45 | ||
raschipi | m: say '.'.IO.dir | ||
camelia | (".cpanm".IO ".local".IO ".npm".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".bash_history".IO ".bashrc".IO "mbox".IO ".lesshst".IO "evalbot.log".IO ".cpan".IO "dalek-queue".… | ||
El_Che | number8: "la la".IO.rename("lele") | 13:46 | |
jast | and you can just directly use .rename on the elements you get from dir | 13:47 | |
number8 | El_Che, thanks! So whenever I get a file or directory as a result with the .IO appended to it, I could just treat it as if it *didn't* have it as a suffix (i.e. as if it were a simple string)? | 13:48 | |
El_Che | well, in practice yes. In reality you're getting an IO object you can use methods on | 13:49 | |
number8 | Cool, thanks, jast! | ||
raschipi | No, you treat it as the IO object it is. | ||
jast | if you treated it as a string that would mean more effort. since it's an IO object you can use all the fancy IO methods on it | ||
El_Che | exactly | ||
number8 | Ok, I understand now, thanks you guys! | 13:50 | |
El_Che | you're welcome | ||
AlexDaniel | El_Che: hello | ||
El_Che: it was delaying because we found some bugs that had to be fixed. Right now it looks good so the release will happen soon | 13:51 | ||
El_Che: fwiw you can ask releasable6, but it has a little bug and currently shows the wrong date :) | |||
delayed* | 13:52 | ||
El_Che | Thx AlexDaniel | ||
AlexDaniel | El_Che: if you're holding your breath, then in 24 hours is a reasonable estimation, but that's just an estimation, not a promise :) | 13:53 | |
El_Che | AlexDaniel: I'll keep lurking so I can start the build | ||
13:55
Piotr_ left
|
|||
jdv79 | m: say "*a" ~~ /(.*\*.*?)/ | 13:57 | |
camelia | 「*」 0 => 「*」 |
||
jdv79 | shouldn't that match the a there? | 13:58 | |
jast | non-greedy matching matches as little as possible | ||
jdv79 | say "*a" ~~ /\*.*?/ | 13:59 | |
evalable6 | 「*」 | ||
jast | "as little as possible" means "nothing" here :) | ||
if you anchor it to end of string it will match the 'a' | |||
13:59
cdg_ left
|
|||
jdv79 | i have other optional snippets before the anchor | 14:01 | |
14:01
cdg joined
|
|||
jdv79 | huh. been a while since i regexed it seems | 14:01 | |
14:01
cdg left
14:02
cdg joined,
zakharyas joined
|
|||
jdv79 | ah, ok. forgot the anchor. duh. | 14:02 | |
thanks | |||
14:04
zakharyas left
14:06
zakharyas joined,
ryn1x_ joined
|
|||
ryn1x_ | Is Inline::Python compatible with windows? I can use it just fine on macOS and Ubuntu, but can not even install on windows... | 14:07 | |
14:09
Grimy left
14:10
ryn1x joined
14:14
Ven`` joined
14:15
khw joined
|
|||
number8 | Oh guys, one last quick question: I'm really interested in getting some modules in, particularly Damian's Form, but haven't been able to use zef successfully at all, any thoughts? | 14:16 | |
raschipi | what error are you getting? | 14:17 | |
put in a gist and give us the link | 14:18 | ||
14:20
itaipu left,
COMBORICO joined
|
|||
number8 | I don't know if I just need to do some extra configuring, but I often get a message from zef as if it were searching in my local Rakudo directory for the module I'm trying to install, and then tells me it can't find it. | 14:23 | |
That's after I do 'zef install <module>' | |||
I'm not on my main computer right now, so I can't get the exact error message :( | 14:24 | ||
raschipi | later then | ||
number8 | raschipi: Thanks. :) | 14:25 | |
14:29
lowbro left
14:39
ryn1x left
|
|||
timotimo | it wouldn't surprise me if Form was already bitrotted beyond recognition, number8 | 14:41 | |
14:41
Cabanossi left
|
|||
timotimo | okay, it got fixed up after the GLR at least, that was october 2015 | 14:42 | |
oh, maybe that isn't what you're refering to; mathw made this one | |||
but there is only one module named "Form" | 14:43 | ||
14:44
Cabanossi joined
|
|||
timotimo | okay, it does pass its test suite on an up-to-date rakudo | 14:44 | |
Geth | doc: b5a893922c | (Alex Chen)++ (committed using GitHub Web editor) | doc/Language/objects.pod6 Update objects.pod6 Unify format and fix links |
14:46 | |
synopsebot | Link: doc.perl6.org/language/objects | ||
timotimo | so false alarm | ||
14:48
jonas1 left
14:51
st_elmo joined
|
|||
ryn1x_ | Submitted my install problem and the "--debug" output here: github.com/niner/Inline-Python/issues/27 . I know not many peole are using windows, but unfortunately many of the lab computers at my work have to be windows to run some commercial software. | 14:52 | |
14:53
darkmorph joined
14:55
Piotr_ joined,
domidumont left
|
|||
timotimo | could you put ``` before and after the big pasted text? | 14:57 | |
oh | 14:58 | ||
you're just missing the python2-dev stuff | |||
14:58
piojo_ joined
|
|||
timotimo | aha, they don't offer python2-config on windows | 15:01 | |
but it looks like all you need is -L to the Python/libs folder and then -lpython27 or what version you have | 15:02 | ||
ryn1x_: ^ | |||
15:04
nhywyll joined
15:06
zakharyas left,
cdg left
15:07
zakharyas joined
15:08
cdg joined
15:09
number8 left,
itaipu joined
15:10
cdg left
|
|||
ryn1x_ | timotimo: I was trying to do something like that, but have not suceeded yet.. should I try to modify config.pl6, make file, or just do it all manually in the terminal to accomplish this? | 15:10 | |
timotimo | i have no clue how Inline::Python builds its stuff; i'd look for the earliest place to change how it does stuff | 15:11 | |
15:11
mr-foobar joined
|
|||
timotimo | maybe find where it fails to find python2-config and substitute the right values there | 15:11 | |
ryn1x_ | ok. thanks for pointing me in the right direction. | ||
timotimo | good luck! | ||
i'll be afk soon | 15:12 | ||
15:14
ryn1x joined
15:16
cdg joined
15:26
ChoHag left
15:30
callyalater joined
15:37
itaipu left
15:44
ChoHag joined
|
|||
sproctor | Been playing about with Cro again for a REST API Aggregation layer. Really liking it. Now looking at a very unwritten slide deck and trying to work out what to write. | 15:47 | |
Hmmmm. | |||
15:48
ryn1x left
15:49
ryn1x joined
15:54
ryn1x left
15:56
Cabanossi left,
pecastro joined
|
|||
wander | m: my %seen of Int = (0 but role :: { method Str() {'NULL'} }); say Int.new(%seen<not-there>); | 15:56 | |
camelia | Odd number of elements found where hash initializer expected: Only saw 1 element in block <unit> at <tmp> line 1 |
||
wander | m: my %seen of Int is default(0 but role :: { method Str() {'NULL'} }); say Int.new(%seen<not-there>); | 15:57 | |
camelia | 0 | ||
15:57
troys joined
|
|||
wander | is ^^ a new feature? | 15:58 | |
on my env it says "NULL" | |||
This is Rakudo version 2017.07 built on MoarVM version 2017.07 implementing Perl 6.c. | |||
15:58
Cabanossi joined
|
|||
ugexe | bisect: old=2017.07 my %seen of Int is default(0 but role :: { method Str() {'NULL'} }); say Int.new(%seen<not-there>); | 16:00 | |
bisectable6 | ugexe, Bisecting by output (old=2017.07 new=2aaa32c) because on both starting points the exit code is 0 | ||
ugexe, bisect log: gist.github.com/2db30cea7a543be4b8...12b4bfb154 | |||
ugexe, (2017-09-19) github.com/rakudo/rakudo/commit/08...1a4f5186dd | |||
wander | k | 16:01 | |
16:02
Ven`` left
16:04
Herby_ joined
|
|||
Herby_ | o/ | 16:04 | |
ilmari | m: say Int.new(0 but role :: { method Str() {'NULL'} }) | 16:05 | |
camelia | 0 | ||
ugexe | don't create a new Int | 16:09 | |
m: my %seen of Int is default(0 but role :: { method Str() {"NULL"} }); say %seen<not-there>.Int; | |||
camelia | NULL | ||
Geth | doc: 9518b15910 | (Alex Chen)++ (committed using GitHub Web editor) | doc/Language/objects.pod6 add example about Pecking order and unify format, fix typo |
16:11 | |
synopsebot | Link: doc.perl6.org/language/objects | ||
16:15
wamba joined
16:17
setty1 joined
16:21
sproctor left
16:23
nhywyll left
16:24
ryn1x joined
16:25
napo1eon left
16:27
Cabanossi left
16:28
Kyo91_ joined,
Cabanossi joined,
zakharyas left
16:29
ryn1x left,
zakharyas joined
16:33
mson left
16:36
nhywyll joined
|
|||
ryn1x_ | I can get Inline::Python to compile on windows now by manually adding the -I -L and -l, but the tests fail. Anyone see anything obvious for me to try? github.com/niner/Inline-Python/iss...-339723621 | 16:42 | |
16:45
raschipi left
16:46
number8 joined
|
|||
number8 | guys, what should be the "type" in a sub signature for an object that is a (Path)? | 16:47 | |
16:47
Xliff joined
|
|||
Xliff | \o | 16:47 | |
Getting an error from DBDish: | |||
===SORRY!=== Error while compiling /home/cbwood/projects/p6-webservice-eveo nline/data/site#sources/4AC2B2490C5004AC37B710EF9240DBA21B048857 (DBDish::m ysql::Native) | 16:48 | ||
Can't use unknown trait 'is native' in a method declaration. | |||
number8 | is it sub my_sub(Path $filename) {...}? | ||
Xliff | Tried to update using zef, but zef says latest is already installed. | ||
16:49
dakkar left
16:50
wamba left
16:57
itaipu joined,
ryn1x joined
|
|||
sena_kun | sub my_sub($filename) {...} is fine too. | 16:57 | |
but you can use sub my_sub(IO::Path) {...} | |||
number8, ^^ | |||
if this is what you want. | 16:58 | ||
16:59
piojo_ left
|
|||
number8 | sena_kun: Thanks! | 17:00 | |
17:04
zakharyas left,
zakharyas joined
|
|||
Xliff | m: enum RM <GET PUT HEAD DELETE>; RM::HEAD.say; | 17:06 | |
camelia | HEAD | ||
17:08
zakharyas left
17:09
ilmari joined
|
|||
Xliff | Uhh... Is this supposed to happen? | 17:10 | |
Unhandled exception: getexpayload needs a VMException, got P6opaque (X::AdHoc) | |||
at SETTING::src/core/Exception.pm:395 (/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:print_exception) | |||
from SETTING::src/core/Exception.pm:452 (/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:<anon>) | |||
^^ Occurring in stage parse. | 17:12 | ||
AlexDaniel | Xliff: can you try again with a clean setup? | 17:20 | |
17:26
ryn1x_ left
|
|||
Xliff | AlexDaniel: Define "clean setup" | 17:28 | |
Dost that mean completely blowing away all existing modules and starting over? | |||
17:30
troys is now known as troys_,
ryn1x left
|
|||
AlexDaniel | Xliff: well, this is not supposed to happen, but at the same time I don't know what we can do | 17:30 | |
Xliff: but I was just wondering if you can't compile at all or if there's something else at play | 17:31 | ||
Xliff | So what precisely do I need to obtain a "clean setup"> | ||
rm -rf moar-nom/install/share ? | 17:32 | ||
AlexDaniel | ok, what commands are you using exactly? Or is that with rakudobrew? | ||
Xliff | rakudobrew | ||
17:32
number8 left
|
|||
Xliff | Please don't tell me "rm -rf ~/.rakudobrew" -- I'd cry. | 17:32 | |
AlexDaniel | I think with rakudobrew you can do “rakudobrew nuke moar-nom” and that will nuke the whole thing | ||
Xliff | *sob* | ||
AlexDaniel | :( sorry | 17:33 | |
maybe someone else will have a better suggestion | |||
17:33
domidumont joined
|
|||
Xliff | And I just rakudobrew'd this morning. | 17:34 | |
[Coke] | have you been building "moar-nom" ? | ||
Xliff | "rakudobrew build moar" | ||
And now I need to reinstall all dependent modules. *sigh* | |||
[Coke] | yes, known issues with using rakudobrew to deploy a different version into the same rakudobrew build. | 17:35 | |
Xliff | Well, I never "build moar-nom", just "moar" | ||
[Coke] | you could build moar-<sha>, or kill the current version and install a new one. You can tell zef before you do this to list all the installed modules and then use that list to re-install. | 17:36 | |
Xliff: I think that's functionally the same. | |||
if you're not saying you want "this released version", I think you get "latest dev commit" | |||
Xliff | And "latest dev commit" was what I intended. | 17:37 | |
Fun. Stage parse in the build is over 90 seconds. | 17:38 | ||
17:38
ryn1x joined,
Rawriful joined
|
|||
[Coke] | gist.github.com/coke/c13e55d56c17f...0bf9dba0b4 - based on something from zoffix | 17:38 | |
ugexe | i think people usually want moar-blead, which includes nqp/moar at latest dev commit as well | 17:39 | |
[Coke] | that's what I run instead of 'rakudobrew build nom'. Some of that probably isn't necessary, but I've had almost no problems since I cut over to using that. | ||
ugexe: I typically want the latest commit, not nqp=master and moar=master. but YMMV. | 17:40 | ||
er, the latest sha in the rakudo config | |||
17:40
setty1 left
|
|||
[Coke] | basically, *i* only bump when rakudo does. | 17:40 | |
17:41
setty1 joined
17:42
st_elmo left
17:44
Ven joined
17:45
Ven is now known as Guest6907
17:48
Zoffix joined
17:49
darkmorph left
|
|||
Zoffix | number8, FWIW, the reason you thought it's object "(Path)" is because you used `say` to dump it, which only shows the short-name. The full name is IO::Path and you can get it by using .^name method instead; e.g.: $obj.^name.say. You can also just use `IO` as the type for this type. It's shorter to write and includes IO::Special type that kinda-like-IO::Path | 17:51 | |
I don't use rakudobrew on anything but my home dev box. | 17:52 | ||
huggable: sauce | |||
huggable | Zoffix, Install untested latest development version of Rakudo from source: github.com/zoffixznet/r#table-of-contents | ||
Zoffix | ^ that script does the job for me and is much faster to upgrade rakudo than with rakudobrew setup 'cause you don't need to re-install modules (or nuke anything) | ||
Xliff: "etting an error from DBDish" Is that on latest rakudo? | 17:54 | ||
17:56
wamba joined
17:58
troys_ is now known as troys
|
|||
Zoffix | Grimy: for every DWIM there's a WAT. It's a bit unwanted that `1 != one <1 1 3>` is True but there's a much more common case: `1 != 1|3` which without tweaked semantics would always be True and be both rather confusing and useless | 18:05 | |
18:05
mson joined
18:07
COMBORICO left
|
|||
Zoffix | m: sub foo {}; foo :meow | 18:07 | |
camelia | Unexpected named argument 'meow' passed in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Zoffix | wander: ^ that's how they produce errors | ||
in contrast, methods ignore nameds they don't recognize | |||
wander | got it | 18:08 | |
18:09
ryn1x left,
domidumont left,
eroux joined
18:10
Guest6907 left
|
|||
Zoffix | m: class One { method meow (:$foo) { say "foo is $foo" } }; class Two is One { method meow { nextsame } }.new.meow: :foo' | 18:10 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3ethod meow { nextsame } }.new.meow: :foo7⏏5' expecting any of: infix infix stopper postfix statement end … |
||
Zoffix | m: class One { method meow (:$foo) { say "foo is $foo" } }; class Two is One { method meow { nextsame } }.new.meow: :foo | ||
camelia | foo is True | ||
Zoffix | Ignored so you could do stuff like that ^ without having to care about extra args one class might be taking or having to shovel args around just to keep it from crashing from unknown args a subclass might be taking | 18:11 | |
piojo: did you sort out the DBIish issue? If not, what rakudo version are you on? | 18:12 | ||
18:13
COMBORICO joined
|
|||
Xliff | Zoffix / AlexDaniel: "clean install" fixed everything. | 18:14 | |
Thanks. | |||
Zoffix | great | ||
El_Che | Does someone know if the random failing test after a succesful build is fixed on the upcoming release? | 18:16 | |
Zoffix | El_Che: which test? | ||
El_Che | let me check the logs | ||
Zoffix | m: '/tmp/z4211'.IO.mkdir.add('Foo.pm6').spurt: 'constant z = Lock.new.condition'; use lib </tmp/z4211>; use Foo | 18:18 | |
camelia | ===SORRY!=== Missing serialize REPR function for REPR ConditionVariable (Lock::ConditionVariable) |
||
El_Che | Zoffix: travis-ci.org/nxadm/rakudo-pkg/job...7896#L1551 | ||
Zoffix | piojo: ^ that's one of the errors. Don't know if it makes sense to serialize that variable or what. | ||
Like chaging it from constant to `my` would fix it | |||
m: '/tmp/z4211'.IO.mkdir.add('Foo.pm6').spurt: 'my \z = Lock.new.condition'; use lib </tmp/z4211>; use Foo | 18:19 | ||
camelia | ===SORRY!=== Missing serialize REPR function for REPR ConditionVariable (Lock::ConditionVariable) |
||
Zoffix | m: '/tmp/z4211'.IO.mkdir.add('Foo.pm6').spurt: 'my \z = Lock.new.condition'; use lib </tmp/z4211>; use Foo | ||
camelia | ===SORRY!=== Missing serialize REPR function for REPR ConditionVariable (Lock::ConditionVariable) |
||
Zoffix | ok then :P | ||
Well, I think it'd fix it and just my eval sucks | 18:20 | ||
El_Che: yeah, I think that's fixed. Haven't seen any floppers in make test recently | 18:23 | ||
El_Che | Zoffix: great to hear. I had someone send a PR, test failed so he thinked his PR is faulty :) | 18:24 | |
just rerun the test :) | |||
Zoffix | El_Che: looks like Oct 6 is the last time nativecall tests flopped: irclog.perlgeek.de/perl6-dev/searc...p;q=travis | 18:25 | |
El_Che | I'll be happy to see the new release then :) | 18:26 | |
Zoffix | Yeah, it's a good realease :) Lots of work | ||
m: use nqp; nqp::getcomp("perl6").version | 18:27 | ||
camelia | This is Rakudo version 2017.09-522-g2aaa32c96 built on MoarVM version 2017.09.1-621-g27f91344c implementing Perl 6.c. |
||
Zoffix | c: 2017.09~1 nqp::getcomp("perl6").version | ||
committable6 | Zoffix, ¦2017.09~1: «04===SORRY!04=== Error while compiling /tmp/SzxKFCeEvMCould not find nqp::getcomp, did you forget 'use nqp;' ?at /tmp/SzxKFCeEvM:1------> 03nqp::getcomp("perl6")08⏏04.version «exit code = 1»» | ||
Zoffix | c: 2017.09~1 use nqp; nqp::getcomp("perl6").version | ||
committable6 | Zoffix, ¦2017.09~1: «This is Rakudo version 2017.08-174-gb4ba33af4 built on MoarVM version 2017.09.1implementing Perl 6.c.» | ||
Zoffix | ~174 commits in past reelease; 522 commits this release :) Even more on MoarVM; 2 years of work in the for of new JIT backened were merged | 18:28 | |
18:28
Ven_ joined
18:29
chakli joined
|
|||
AlexDaniel | everyone++ | 18:30 | |
Herby_ | \o | ||
Zoffix | \o | ||
18:31
cdg_ joined,
Khisanth joined,
cdg_ left
18:34
cdg left
18:35
cdg joined
18:37
aindilis left
18:39
cdg left
18:44
ChoHag left,
ryn1x joined
18:47
chakli_ joined
18:48
chakli left
18:49
chakli_ left
18:53
Aceeri joined
|
|||
lowin | I'm starting out with learning perl6, but many popular editors seem to be lacking perl6 support. Is there a recommended gui editor out there? Preferably with autocomplete support. | 18:54 | |
Zoffix | huggable: atom ide | ||
huggable | Zoffix, github.com/perl6/Atom-as-a-Perl6-IDE | ||
Zoffix | lowin: unsure about autocompletion. | ||
moritz | vim! | 18:55 | |
dunno about autocompletion as well :-) | |||
also: visual studio code with github.com/sergot/vscode-perl6 | |||
Aceeri | Is there a way to get a better "backtrace/stacktrace" than this? pastebin.com/raw/cfErskyF | 18:56 | |
18:56
ChoHag joined
|
|||
moritz | Aceeri: this looks very much like a Perl 5 warning. Please try #perl | 18:56 | |
Aceeri | Ah whoops, sorry | ||
lowin | Zoffix, moritz, Alright I'll give atom and vs code a try. Thank you. | 18:57 | |
AlexDaniel | huggable: editors | ||
huggable | AlexDaniel, There is a list of editors and IDEs usable with perl6 here: perl6.org/whatever/ | ||
AlexDaniel | lowin: ↑ | ||
18:58
itaipu left
19:04
darutoko left
19:09
Ven_ left
19:15
Ven joined,
Ven is now known as Guest20545
|
|||
Zoffix | piojo: managed to repro your DBIish issue, but failing to golf it down for now. I get the "This type (NQPMu) does not support associative operations" when this condition is met: I call DBIish.connect with wrong args; then fix the error and try running the script again. And the mu error remains until you blow away the precomp | 19:17 | |
|2h try DBIish golf: github.com/zoffixznet/debug/tree/master/dbiish irclog.perlgeek.de/perl6/2017-10-26#i_15355892 | |||
19:17
ryn1x left
|
|||
ZofBot | Zoffix, Will remind you on 2017-10-26T17:17:35.340511-04:00 about try DBIish golf: github.com/zoffixznet/debug/tree/master/dbiish irclog.perlgeek.de/perl6/2017-10-26#i_15355892 | 19:17 | |
Zoffix & | |||
19:17
Zoffix left
|
|||
moritz | sounds like a rakudo bug | 19:17 | |
timotimo | are you perchance trying to precompile a db connection? | ||
moritz | that won't work | 19:18 | |
AlexDaniel | wasn't it already explained in github.com/perl6/DBIish/issues/106 ? | ||
rindolf | hi all | 19:19 | |
AlexDaniel | o/ | ||
rindolf | i noticed i had fewer difficulties porting a py euler program to perl 6 this time around | ||
19:20
Thrush joined
|
|||
Herby_ | \o | 19:20 | |
Thrush | Hi! I've got some questions for Perl 6. Here's one: If I have a string (say, "Hello"), how do I separate it into a list of characters? | 19:21 | |
Juerd | Thrush: "Hello".comb | ||
Herby_ | m: "Hello".comb | ||
camelia | ( no output ) | ||
Herby_ | m: say "Hello".comb | ||
camelia | (H e l l o) | ||
Thrush | Excellent! Thank you! | ||
m: say 'Hello, World!'.comb | 19:22 | ||
camelia | (H e l l o , W o r l d !) | ||
Juerd | Thrush: For inspiration: docs.perl6.org/type/Str | ||
19:22
Guest20545 left
|
|||
Thrush | Here's another question: If I have an object/class (like "Hello"), is there a way I can list all of its methods? (Kind of like "Hello".methods.sort in Ruby.) | 19:22 | |
Herby_ | m: "abcdefghijk".comb(3).perl | 19:23 | |
camelia | ( no output ) | ||
Herby_ | m: say "abcdefghijk".comb(3).perl | ||
camelia | ("abc", "def", "ghi", "jk").Seq | ||
bdmatatu | m: say "Hello".^methods | 19:24 | |
camelia | (BUILD Capture Int Num chomp starts-with ends-with substr-eq contains indices index rindex pred succ comb match subst-mutate subst ords lines parse-base parse-names samecase samemark samespace word-by-word trim-leading trim-trailing trim words encode … | ||
Thrush | Nice! Thank you! .^methods works great! | ||
El_Che | I hope to make it easier to download the latest rakudo release by using github pages, next to the releases tab, eg. : nxadm.github.io/rakudo-pkg/latest-...arch=amd64 | ||
Juerd | Thrush: Getting a list of methods is mostly useful when you're learning the language. And I think the documentation is a better starting point than a bare list :) | ||
19:26
Ven_ joined
|
|||
Thrush | Okay, another question: Is there some sort of in-interpreter help system that I can get documentation at my fingertips? Like help(String.comb) -- similar to what I can do in Python. | 19:26 | |
El_Che | and the checksum as well: nxadm.github.io/rakudo-pkg/latest-...arch=amd64 | ||
Juerd | Thrush: No. But there's doc.perl6.org/ | 19:27 | |
AlexDaniel | m: say Str.WHY | 19:28 | |
camelia | No documentation available for type 'Str'. Perhaps it can be found at docs.perl6.org/type/Str » | ||
Juerd | Thrush: Please reply in the channel instead of privately :) | 19:29 | |
Also, you're welcome :) | |||
19:30
troys is now known as troys_
|
|||
Thrush | Another question: I learned that I can do: my @a = lazy 1 .. 10; to create a lazy list. But once I do that, it's always hidden from me until I traverse it. (That is, when I type "@a" I see "[...]". My question is: Can I "un-lazify" @a so that it shows the numbers from 1 to 10? Sort of like this in Python: a = list(a) | 19:30 | |
Oh, sorry about replying privately. I thought you were talking to me in private, so I thought I was replying in kind. | 19:31 | ||
Juerd | Thrush: Nah, I'm just beginning lines with your name :) | ||
AlexDaniel | m: my @a = lazy 1 .. 10; say eager @a | ||
camelia | [1 2 3 4 5 6 7 8 9 10] | ||
AlexDaniel | Thrush: maybe you want “eager” | ||
Juerd | Note that either @a.eager or eager @a will work | 19:32 | |
Or @a.eager() or eager(@a) if you like parentheses | |||
Thrush | That's great, AlexDaniel and Juerd. That answers my question perfectly. | ||
AlexDaniel | Thrush: also, if that's just for debugging, maybe dd can give you better results | 19:33 | |
m: my @a = lazy 1 .. 10; dd @a | |||
camelia | Array @a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10... lazy list) | ||
Thrush | I've been searching for a while for those answers, and I couldn't find it anywhere, not even on StackOverflow. | ||
AlexDaniel | Thrush: if there are any specific pages on docs.perl6.org/ where you expected this information, we can improve the docs | 19:34 | |
Thrush | What's "dd", and where can I read about it? | ||
"dd" is for debugging, I assume. | |||
AlexDaniel | Thrush: docs.perl6.org/programs/01-debuggi...unction_dd | ||
19:35
setty1 left,
epony left,
epony joined
19:37
setty1 joined
19:39
callyalater left
|
|||
Herby_ | are there any good examples or libraries that I can look at for functional programming in perl 6? | 19:41 | |
19:41
Cabanossi left
|
|||
Thrush | Okay, another question: Is there native support to have a Perl6 program to detect a keyboard press without having to press ENTER? | 19:43 | |
19:44
Cabanossi joined
19:45
Ven_ left
|
|||
Thrush | I searched on modules.perl6.org/ for "keypress", but I couldn't find anything. Is there any way I can read a keypress (without hitting ENTER) using Perl 6? | 19:47 | |
19:48
darkmorph joined
|
|||
Thrush | As for docs.perl6.org , I wouldn't mind seeing mention of "eager" on the "lazy" page at docs.perl6.org/routine/lazy . Even if it's just a footnote like 'See also "eager".' | 19:50 | |
19:51
perlpilot joined
|
|||
Thrush | And for that matter, it would be good if the "eager" page ( docs.perl6.org/routine/eager ) had a link to "lazy". Just by reading the "eager" page, I would not make the connection that "eager" 'undoes' "lazy". | 19:51 | |
In Perl 6, are there functions/methods similar to Perl5's ucfirst() and lcfirst() ? All I see is tclc(), which is nice, but not exactly like ucfirst() and lcfirst() . | 19:54 | ||
19:57
thundergnat joined
|
|||
AlexDaniel | m: say ‘hello’.tc | 19:57 | |
camelia | Hello | ||
thundergnat | Thrush: re read from keyboard without enter, Term::termios may do what you need. See rosettacode.org/wiki/2048#Perl_6 for an example. | 19:58 | |
19:58
Ven joined
|
|||
Thrush | If I create a function that uses gather/take, I notice that the returned list won't be lazy unless it is called (by the caller code) with the lazy keyword. My question is: Is there any way to force the return value to be a lazy list, even if the caller does not use the "lazy" keyword? | 19:58 | |
19:59
Ven is now known as Guest34872,
thundergnat left
|
|||
Thrush | Thanks, thundergnat. According the Rosettacode page, it's only going to work on POSIX terminals. Is there a way I can do it under Windows platforms as well? | 20:00 | |
jnthn | Thrush: Can just make it lazy in the sub too | ||
lazy gather { ... } | 20:01 | ||
Thrush | jnthn: Huh... It never occurred to me to do that. Thanks! | 20:05 | |
What's the best way to make a deep copy of something? Like, say, a list of lists of lists. | 20:07 | ||
How can I see the type/class of an object? I'm looking for something like: "hello".class() or (5).type() | 20:11 | ||
sena_kun | m: say 'boom'.^name | ||
camelia | Str | 20:12 | |
sena_kun | m: say 1.^name | ||
camelia | Int | ||
sena_kun | Thrush, ^ | ||
20:13
Cabanossi left
20:14
Cabanossi joined,
perlpilot left
|
|||
Herby_ | whats a good Perl 6 way to count how many times the word "Sam" appears in $string? | 20:17 | |
a functional way | |||
Thrush | sena_kun: Thanks! 'hello'.^name works great. I notice that there are a lot of methods that begin with "^", but they don't show up when I type "Hello".^methods . Is there any way for me to see them? | ||
Herby_: Will this do? 'Hello, mellow fellow'.comb('llo').elems # returns 3 | 20:19 | ||
m: 'Hello, mellow fellow'.comb('llo').elems | |||
camelia | ( no output ) | ||
Herby_ | m: say "This is a Sam string, count the Sam".comb('Sam').elems | 20:20 | |
camelia | 2 | ||
Herby_ | that works. thanks! | ||
Thrush | m: 'Hello, mellow fellow'.comb('llo').elems.say | ||
camelia | 3 | ||
20:20
darkmorph left
|
|||
sena_kun | Thrush, well, these methods are related to meta-object protocol, so I am not the best person to ask, but you can refer to docs.perl6.org/language/mop.html for general knowledge. As for methods, you can refer to docs.perl6.org/type/Metamodel::ClassHOW | 20:21 | |
Thrush | Thanks, sena_kun | ||
sena_kun | about showing on on tab completion, if you asked about it, it probably wants(or not) an issue. | ||
s/on on/it on/ | 20:22 | ||
20:22
ryn1x joined
20:23
cdg joined
|
|||
jnthn | Thrush: $obj.^foo is actually $obj.HOW.foo($obj) - that is, shorthand for doing a call on the meta-object. So the methods you call with .^ are not on the object itself, but on the meta-object | 20:24 | |
20:25
TEttinger joined
20:28
Guest34872 left
20:29
troys_ is now known as troys,
cdg left
20:31
cdg joined
|
|||
Geth | doc: 7ojo++ created pull request #1633: Added Dockerfile and instructions to CONTRIBUTING.md |
20:37 | |
El_Che | in bash, there is a -o pipefail option. Does the perl 6 shell function have something similar? (pipefail: error exit status of command before a pipe not overwriiten by later success) | 20:38 | |
(workaround would be bash -c ... | 20:39 | ||
20:48
sena_kun left
|
|||
Geth | doc/master: 5 commits pushed by (Jarkko Haapalainen)++ | 20:49 | |
20:56
ryn1x left,
obra left
20:57
obra joined
21:03
ryn1x joined
21:07
tojo joined
21:08
ryn1x left
21:11
Cabanossi left
21:13
wamba left
21:14
Cabanossi joined,
rindolf left
|
|||
Geth | mu: 59567e2d49 | (Zoffix Znet)++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Change post I'm gonna write Thought about it and don't think I'd write anything that's actually interesting to read for the original article idea. |
21:14 | |
21:17
Piotr_ left
|
|||
Thrush | Question: How can I type the "∈" character (in: say so 'bar' ∈ @a;) on a keyboard that doesn't have that character? I tried "say so 'bar' elem @a;" but that's giving me an error. | 21:18 | |
21:19
bdmatatu left
21:20
margeas left
21:21
ryn1x joined
|
|||
Thrush | m: say so 'bar' ∈ @a; | 21:21 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '@a' is not declared at <tmp>:1 ------> 3say so 'bar' ∈ 7⏏5@a; |
||
geekosaur | m: my @a = <a b c d>; say so 'c' (elem) @a | ||
camelia | True | ||
21:21
espadrine joined
|
|||
geekosaur | the parens are part of the operator name | 21:21 | |
Thrush | m: @a = <foo bar>; say so 'bar' ∈ @a; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '@a' is not declared at <tmp>:1 ------> 3<BOL>7⏏5@a = <foo bar>; say so 'bar' ∈ @a; |
||
21:22
margeas joined
|
|||
geekosaur | how you'd type in the Unicode one depends on OS (and on Linux may depend on your windowing/desktop environment) | 21:23 | |
docs.perl6.org/language/unicode_entry | |||
Thrush | The page docs.perl6.org/language/unicode_entry says that the ascii equivalent of "∈" is "elem", but I substitute "elem" and I see it doesn't work. | 21:25 | |
21:25
ryn1x left
|
|||
geekosaur | it says the equivalent is (elem) | 21:25 | |
the parens are *part of the name* | |||
Thrush | Oh! I gotta use the parentheses! | ||
geekosaur | (in general perl 6 uses operators wrappedin parens for 'set-like' operators) | ||
I even showed it earlier | 21:26 | ||
[26 21:21:26] <geekosaur> m: my @a = <a b c d>; say so 'c' (elem) @a | |||
Thrush | I'm surprised (and embarrassed) that I didn't realize that they (the parentheses) were needed (for the ∈ operator). Wow! (Thanks for your help, geekosaur!) | 21:27 | |
21:27
ryn1x joined
|
|||
geekosaur | it could stand being made more obvious | 21:27 | |
but I'm not sure how you;d do that; perl 6's flexibility means it allows thinngs like that, but unles syou already know how perl 6 'works' you are likely to miss the point | 21:28 | ||
especially if you;re coming to it from a lnaguage like Haskell where () around an operator means you re talking about it as a function, or etc. | |||
maybe a column for a short example | 21:29 | ||
Thrush | Well, there are examples that use the '∈' operator. It wouldn't hurt to have the exact same example by each one, with the only difference being that (elem) is used. | 21:30 | |
[Coke] | in general, we don't want to list every way to do it on every example. | 21:31 | |
AlexDaniel | any ideas for the next squashathon? | 21:32 | |
21:33
evalable6 left
|
|||
AlexDaniel | no repo was chosen yet | 21:33 | |
21:33
evalable6 joined,
ChanServ sets mode: +v evalable6
|
|||
AlexDaniel | squashable6: next | 21:33 | |
squashable6 | AlexDaniel, Next SQUASHathon in 7 days and ≈12 hours (2017-11-04 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
Thrush | Is there a way to force a string to an int? Like maybe "123".int() | ||
AlexDaniel | m: say "123".Int | ||
camelia | 123 | ||
Thrush | Also, is there a way to test a string to see if it looks like an int or a float? | ||
[Coke] | m: say +"123" | ||
camelia | 123 | ||
[Coke] | m: say (+"123").^name | 21:34 | |
camelia | Int | ||
AlexDaniel | [Coke]: that's not guaranteed to be an Int tho | ||
21:34
ryn1x left,
niceperl joined
|
|||
geekosaur | m: say ?"123a".Int | 21:34 | |
camelia | False | ||
[Coke] | m: +"borf" | ||
camelia | WARNINGS for <tmp>: Useless use of "+" in expression "+\"borf\"" in sink context (line 1) Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5borf' (indicated by ⏏) in block <unit> at <tmp> line 1… |
||
geekosaur | m: say ?"123".Int | ||
camelia | True | ||
[Coke] | AlexDaniel: no, but there's what he's asking and what he needs. Yes, + gives you a numeric value back, not necessarily an Int. | 21:35 | |
AlexDaniel | :) | ||
Thrush | m: say ?"123.4".Int | ||
camelia | True | ||
[Coke] | s/he/they/ oops | ||
the ? is checking if the numeric value is true | |||
m: say ?"0".Int | 21:36 | ||
camelia | False | ||
geekosaur | hm, point, it goes further than just translating the Failure | ||
Thrush | m: ?"0.0".Int() | ||
camelia | WARNINGS for <tmp>: Useless use of "?" in expression "?\"0.0\".Int()" in sink context (line 1) |
||
AlexDaniel | m: .say with "0".Int | ||
camelia | 0 | ||
Thrush | m: say ?"0.0".Int() | ||
camelia | False | ||
AlexDaniel | m: .say with "abc".Int | ||
camelia | ( no output ) | ||
21:37
ryn1x joined
|
|||
Thrush | "abc".Int throws an exception, I think. Is there a way I can have it just return Nil? | 21:40 | |
AlexDaniel | m: say try "abc".Int | ||
camelia | Nil | ||
Thrush | I know in Ruby I can say: n = Integer('4') rescue nil | 21:41 | |
Okay, 'try "abc".Int' seems to work. But it also works for 'try "4.75".Int' (which evaluates to 4). Is there anyway I can detect that '4.75' is not an Int? | 21:42 | ||
AlexDaniel | m: say try +"abc" | 21:43 | |
camelia | Nil | ||
AlexDaniel | m: my $x = try +"4.75"; say $x.WHAT | ||
camelia | (Rat) | ||
21:43
ryn1x left
|
|||
AlexDaniel | m: my $x = try +"4.75"; say $x ~~ Int | 21:43 | |
camelia | False | ||
AlexDaniel | m: my $x = try +"4.0"; say $x ~~ Int | ||
camelia | False | ||
AlexDaniel | m: my $x = try +"4"; say $x ~~ Int | ||
camelia | True | ||
21:44
ryn1x joined
21:45
mson left
|
|||
Thrush | That works, AlexDaniel. Thanks. | 21:46 | |
21:49
setty1 left,
ryn1x left
21:50
niceperl left
21:51
setty1 joined
|
|||
Thrush | m: 'hello'.say ; 'hello'.put # What's the difference between .put() and .say() ? | 21:55 | |
camelia | hello hello |
||
geekosaur | .put invokes .Str, .say invokes .gist | 21:56 | |
Thrush | Thanks, geekosaur. | ||
21:56
Rawriful left
21:57
Cabanossi left
21:58
cdg left,
Cabanossi joined
21:59
cdg joined
|
|||
Thrush | I like the "once" block (as documented in docs.perl6.org/language/control#once ). Is there a convenient way to do the opposite, as in do something everytime EXCEPT for the first time? | 21:59 | |
ugexe | m: sub foo { if $++ { say 42 } }; foo(); foo(); foo() | 22:00 | |
camelia | 42 42 |
||
Geth | doc: db2e07bfb7 | (Jarkko Haapalainen)++ | doc/Type/Proc/Async.pod6 Added example on piping with Proc::Async (refs #1580) Note that methods .bind-stdin, .bind-stdout and .bind-stderr still needs documentation. |
||
synopsebot | Link: doc.perl6.org/type/Proc/Async | ||
ugexe | m: sub foo { if (state $foo += 1) > 1 { say 42 } }; foo(); foo(); foo(); # expanded to show you what its doing | 22:02 | |
camelia | 42 42 |
||
22:02
setty1 left
22:03
ryn1x joined
22:04
cdg left
|
|||
Thrush | I don't think a state variable is what I'm looking for. I'm looking for something more like an else-part of a once-statement. | 22:05 | |
geekosaur | 'once is actually a bit hacky and has enough gotchas that it's often not what you want; state variables are more likely to give you the expected behavior | 22:06 | |
22:07
ryn1x left
|
|||
geekosaur | if $++ { #`{ first time } } else { #`{ other times } } | 22:07 | |
Thrush | Sure, but I want them to reset the next time I call the code they're in. | 22:08 | |
ugexe | its a state var, you can control that with whatever level of closure clone | ||
Thrush | I want to do something like this: for 1 .. 5 { my $sep = ' '; once {$sep=''}; print $sep; .print }; say '' | ||
m: for 1 .. 5 { my $sep = ' '; once {$sep=''}; print $sep; .print }; say '' | 22:09 | ||
camelia | 1 2 3 4 5 | ||
ugexe | well for a loop i would use FIRST to do that | ||
Thrush | So many coders do it like this instead: for 1 .. 5 { .print; print ' ' }; say '' | 22:10 | |
m: for 1 .. 5 { .print; print ' ' }; say '' | |||
camelia | 1 2 3 4 5 | ||
Thrush | Note the space after the 5. | ||
AlexDaniel | why not .join ? | ||
ugexe | m: for 1..5 { KEEP " ".print; .print; } | 22:11 | |
camelia | 12345 | ||
ugexe | hm | ||
Thrush | No .join, because it's in a loop that's reporting info by printing. | ||
AlexDaniel | I see | 22:12 | |
ugexe | i expected .print; to fire the KEEP | ||
AlexDaniel | m: for 1 .. 5 { print ' ' if $++; .print }; | 22:13 | |
camelia | 1 2 3 4 5 | ||
ugexe | m: for 1..5 { KEEP " ".print; .print; 0; } | ||
camelia | WARNINGS for <tmp>: 1 2 3 4 5 Useless use of constant integer 0 in sink context (line 1) |
||
Thrush | Basically, I want something like: for 1 .. 5 { not_the_first_time {print ' '}; .print }; say '' | ||
22:14
lizmat left
|
|||
Thrush | Where can I read about FIRST ? | 22:15 | |
AlexDaniel | docs.perl6.org/language/phasers | ||
Thrush | Ah! Found it here: docs.perl6.org/language/phasers#phasers_FIRST | 22:16 | |
ugexe | m: sub foo { for 1..5 { if $++ { say $_ } } }; foo(); foo(); foo(); # $++ works like you want | ||
camelia | 2 3 4 5 2 3 4 5 2 3 4 5 |
||
Thrush | ugexe: Apparently you're right. But if $ is a state variable, shouldn't we have to decrement it (back to 0) for it to work the next time? | 22:19 | |
ugexe | its state is per closure clone | 22:20 | |
Thrush | That is, shouldn't $ keep its state across calls to foo() ? | ||
I guess I don't know what a closure clone is. | 22:21 | ||
ugexe | its a state variable of for { }, not foo { } essentially | ||
Thrush | Well, thanks. It appears to work for what I need: for 1 .. 5 { print ' ' if $++; .print }; say '' | 22:27 | |
m: for 1 .. 5 { print ' ' if $++; .print }; say '' | |||
camelia | 1 2 3 4 5 | ||
22:29
itaipu joined
|
|||
Thrush | When I do "[].^methods", I'd like to see the methods in sorted order. But this doesn't work: say [].^methods.sort | 22:30 | |
m: say [].^methods.sort | |||
camelia | Method object coerced to string (please use .gist or .perl to do that) in block <unit> at <tmp> line 1 Method object coerced to string (please use .gist or .perl to do that) in block <unit> at <tmp> line 1 Method object coerced to string (… |
||
MasterDuke | m: say [].^methods.sort(*.name) | 22:31 | |
camelia | (ACCEPTS Method+{is-nodal}.new Method+{is-nodal}.new Method+{is-nodal}.new Method+{is-nodal}.new BIND-POS BIND-POS BUILDALL BUILDALL Method+{is-nodal}.new Method+{is-nodal}.new Bool CALL-ME Capture Method+{is-nodal}.new Method+{is-nodal}.new FLATTENAB… | ||
AlexDaniel | m: say [].^methods.sort(*.name.fc) | 22:32 | |
camelia | (ACCEPTS Method+{is-nodal}.new Method+{is-nodal}.new append Method+{is-nodal}.new Method+{is-nodal}.new Method+{is-nodal}.new Method+{is-nodal}.new Method+{is-nodal}.new Method+{is-nodal}.new BIND-POS BIND-POS Bool BUILDALL BUILDALL CALL-ME Capture cl… | ||
AlexDaniel | there's a ticket for that actually | 22:33 | |
RT#132290 | |||
synopsebot | RT#132290 [new]: rt.perl.org/Ticket/Display.html?id=132290 [LTA] .gist of a Method does not always show the its .name (.say for <a b c>.^methods) | ||
jnthn | m: say [].^methods.sort(*.name.fc).map(*.name) | 22:34 | |
camelia | (ACCEPTS antipairs append append Array ASSIGN-POS AT-POS AT-POS Bag BagHash BIND-POS BIND-POS Bool BUILDALL BUILDALL CALL-ME Capture clone combinations default DELETE-POS dynamic eager elems end EXISTS-POS flat flat FLATTENABLE_HASH FLATTENABLE_LIST F… | ||
22:37
ryn1x joined
22:41
troys is now known as troys_,
pmurias left
22:42
ryn1x left
22:48
Zoffix joined,
espadrine left
|
|||
Zoffix | There should be anotehr ticket for it too. I remember debugging this | 22:49 | |
Thrush | Is there a Perl6 way to iterate through a list and apply some code to each element, in a non-map way? Kind of like this in Ruby: (1..5).each {|n| puts n} | ||
I can do this: (1..5).map: {.say} | |||
m: (1..5).map: {.say} | 22:50 | ||
camelia | 1 2 3 4 5 |
||
Thrush | but it uses map() instead of each() | ||
Zoffix | m: .put for 1..5 | ||
jnthn | Why do you need a non-map way? | ||
camelia | 1 2 3 4 5 |
||
Thrush | It sort of does what I want, but I'd rather not map() it, if I can get away with just each()ing each element. | ||
Doesn't map() construct a new Array/List? | 22:51 | ||
jnthn | Not in sink (void) context, no | ||
Now I understand why you were asking though :) | |||
AlexDaniel | El_Che: :) | 22:52 | |
Zoffix | Ah RT#132149 | ||
synopsebot | RT#132149 [new]: rt.perl.org/Ticket/Display.html?id=132149 [BUG] Some Method objects use wrong .gist method | ||
Thrush | Thanks, jnthn. | ||
Is there a way to grep() through a list, knowing each element's index in the list? Kind of like Ruby's each_with_index, or map.with_index | 22:53 | ||
22:53
mson joined
|
|||
AlexDaniel | m: say <a b c d>.grep(‘c’, :kv) | 22:54 | |
camelia | (2 c) | ||
AlexDaniel | m: say <a b c d c z>.grep(‘c’, :kv) | ||
camelia | (2 c 4 c) | ||
AlexDaniel | or | ||
m: say <a b c d c z>.grep(‘c’, :p) | |||
camelia | (2 => c 4 => c) | ||
AlexDaniel | or just :k also | ||
m: say (for 1..5 { $_ * 100 }) | 22:56 | ||
camelia | (100 200 300 400 500) | ||
Zoffix | m: <a b c d>.kv.grep: { $^v eq "c" or next; say "Got $v at index $^i" } | ||
camelia | Got c at index 2 | ||
22:56
Zoffix left
|
|||
jnthn | Or if you want the index inside of the map, then: | 22:56 | |
m: ('a'..'g').kv.map: -> $idx, $val { say "$val is at $idx" } | |||
camelia | a is at 0 b is at 1 c is at 2 d is at 3 e is at 4 f is at 5 g is at 6 |
||
22:57
nhywyll left
|
|||
Thrush | Say I have a list of strings, and I want to .grep/.map them so that I return only the strings at even-numbered indeces. How would I do that? | 22:59 | |
I tried: say <a b c d>.kv.grep: -> $k,$v {$k %% 2} .map: {$_[1]} | |||
m: say <a b c d>.kv.grep: -> $k,$v {$k %% 2} .map: {$_[1]} | |||
camelia | () | ||
Thrush | but for some reason it's returning an empty list. | 23:00 | |
ugexe | m: say <a b c d>.kv.grep(-> $k,$v {$k %% 2}).map: {$_} | ||
camelia | ((0 a) (2 c)) | ||
jnthn | tbh, I'd just use the $++ %% 2 anon state-var trick for that | 23:01 | |
But to do it the .kv way would be something like .map: -> $, $v { $v } to discard the indexes | 23:02 | ||
Thrush | "say <a b c d>.kv.grep(-> $k,$v {$k %% 2}).map: {$_}" looks good, but I don't want the index, just the element. | ||
jnthn | May be neater to do .pairs.grep(*.key %% 2).map(*.value) | ||
ugexe | you can do $_[1] still, it wasn't working before because of the grep missing ( ) | ||
23:02
Kyo91_ left
|
|||
jnthn | Sleep time for me. o/ | 23:02 | |
Thrush | m: say <a b c d>.kv.grep(-> $k,$v {$k %% 2}).map: {$_[1]} | 23:03 | |
camelia | (a c) | ||
Thrush | Okay, I think that worked. Apparently I had to use the () form for the grep (instead of the : form). | ||
ugexe | it fixes what .map gets called on | 23:04 | |
23:04
BenGoldberg joined
23:08
ryn1x joined
23:13
ryn1x left,
Kyo91_ joined
23:15
itaipu left
|
|||
timotimo | m: .say for <a b c d e f g>.rotor(1 => 1) | 23:20 | |
camelia | (a) (c) (e) (g) |
||
timotimo | Thrush: with : it'll put everything until the end of the line as the arguments to what you put the : in front of, so if you wanted to do something more with the result you'll either have to put () around the whole thing (so you can still use the : form) or use .method(foo) form instead | 23:21 | |
23:25
ryn1x joined
23:28
Kyo91_ left
23:30
troys_ is now known as troys
23:33
cpage_ joined
23:46
ryn1x left
23:47
ryn1x joined
|
|||
Geth | evalbot: b74b19f122 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 4 files “nom” → “master” tweak Removes mentions of “nom”. Basically, this was not needed because it is using the default branch anyway. But we will not need “nom” shortcut anymore so it can be named “master” instead. This commit also removes two parrot scripts. |
23:49 | |
23:51
ryn1x left,
nadim_ left
23:52
darkmorph joined
23:56
ryn1x joined
23:57
margeas left
|