»ö« 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. |
|||
raschipi | Can also mean any language that's not a low-level one, which would be an assembler. | 00:00 | |
00:26
nuk9 left
00:29
Cabanossi left
00:32
Cabanossi joined
00:33
bisectable6 left,
unicodable6 left,
squashable6 left,
benchable6 left,
committable6 left,
bloatable6 left,
coverable6 left,
evalable6 left,
releasable6 left,
quotable6 left,
statisfiable6 left,
greppable6 left,
nativecallable6 left
00:38
ChoHag left
00:41
ufobat left
|
|||
Geth | ecosystem: 147e3a9538 | (Tom Browder)++ | META.list make maintenance easier |
01:03 | |
01:15
u-ou- joined
01:19
u-ou- left
01:22
u-ou- joined
01:27
skids joined
01:28
u-ou- left
01:31
committable6 joined,
ChanServ sets mode: +v committable6,
quotable6 joined,
ChanServ sets mode: +v quotable6,
nativecallable6 joined,
coverable6 joined,
bisectable6 joined,
bloatable6 joined,
greppable6 joined,
ChanServ sets mode: +v greppable6,
releasable6 joined,
evalable6 joined,
ChanServ sets mode: +v releasable6,
ChanServ sets mode: +v evalable6,
unicodable6 joined,
ChanServ sets mode: +v unicodable6
01:32
benchable6 joined,
ChanServ sets mode: +v benchable6,
statisfiable6 joined,
ChanServ sets mode: +v statisfiable6,
squashable6 joined
01:42
mcmillhj joined
01:45
mcmillhj_ joined,
ilbot3 left
01:47
mcmillhj left
01:51
ilbot3 joined,
ChanServ sets mode: +v ilbot3,
mcmillhj_ left,
dj_goku joined
01:53
mcmillhj joined
01:57
itaipu joined
02:00
cdg joined
02:04
cdg left
02:05
mcmillhj left
02:06
raschipi left
02:17
mcmillhj joined
02:20
noganex joined
02:23
noganex_ left
02:24
dogbert2 left
02:31
tokage left
02:40
mcmillhj left
02:44
brimonk_ left,
brimonk_ joined,
brimonk_ is now known as brimonk
03:00
Cabanossi left
03:01
kyan joined
03:02
Cabanossi joined
03:07
u-ou- joined
|
|||
u-ou- | I have an Int and want to make an int32 out of its value. How do I do that? | 03:07 | |
m: int32.new(1).WHAT.say | 03:16 | ||
camelia | (Int) | ||
u-ou- | :I | ||
OK that wasn't even my problem I was just missing an argument | 03:22 | ||
the conversion seems to happen automatically now | |||
03:33
itaipu left
03:38
u-ou- left
03:48
khw left
03:49
mcmillhj joined
|
|||
samcv | ugexe, use a typed variable | 03:51 | |
m: my int32 $thing = 10; say $thing.WHAT | |||
camelia | (Int) | ||
samcv | also yes the conversion happens when you display it | ||
it's still an int32 though | |||
AlexDaniel | uhhhh int32… | 03:53 | |
(RT #131994) | 03:54 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131994 | ||
04:00
Cabanossi left
04:01
Cabanossi joined
04:02
Cabanossi left
04:03
Cabanossi joined
04:06
Cabanossi left,
Cabanossi joined
|
|||
samcv | well | 04:09 | |
m: my int64 $a; say $a.WHAT | |||
camelia | (Int) | ||
samcv | m: my int16 $a; say $a.WHAT | ||
camelia | (Int) | ||
samcv | m: my int16 $a = 999999; say $a.WHAT; say $a | ||
camelia | (Int) 16959 |
||
04:10
zakame joined
04:14
mcmillhj left
04:15
cdg joined
|
|||
lizmat | afk until probably much later today& | 04:17 | |
04:17
lizmat left
04:20
cdg left
04:25
kerframil left
04:28
kyan left
04:30
Guest79042 is now known as masak
04:35
zakame left
04:36
zakame joined
04:46
BenGoldberg left
05:09
skids left
05:14
Cabanossi left
05:16
Cabanossi joined
05:21
domidumont joined
05:27
domidumont left
05:28
domidumont joined,
committable6 left
05:48
nadim_ joined
05:50
zakame left
05:59
Cabanossi left,
wamba joined
06:01
Cabanossi joined
06:03
KDr2__ joined
06:07
ufobat joined
06:12
espadrine joined
06:16
lowbro joined,
lowbro left,
lowbro joined
06:28
Cabanossi left
06:31
Cabanossi joined
06:33
abraxxa joined
06:41
leont joined
06:47
domidumont left
06:50
domidumont joined
06:51
nadim_ left,
espadrine left
06:55
ChoHag joined,
darutoko joined
06:58
Cabanossi left
07:01
Cabanossi joined
07:12
robertle left
07:29
Cabanossi left
07:31
wamba left,
Cabanossi joined
07:32
leont left
07:36
TimToady left
07:38
TimToady joined
07:39
dakkar joined
07:52
sproctor joined
07:56
sproctor left,
nattefrost joined
07:57
sproctor joined
07:58
Cabanossi left,
sproctor left,
sproctor joined
07:59
xinming left,
sproctor left
08:00
sproctor joined
08:01
Cabanossi joined,
zakharyas joined
08:02
jonas1 joined
08:12
TreyHarris left
08:13
KDr2__ left
08:18
wamba joined
08:20
zakharyas left
08:25
TreyHarris joined
08:30
Cabanossi left
08:31
Cabanossi joined,
shady0wl_ joined
08:33
pmurias joined
08:34
char_var[buffer] left
08:42
rurban joined,
domidumont left
08:43
domidumont joined
08:58
Aaronepower left
08:59
Cabanossi left,
Sgeo_ left
09:01
Cabanossi joined,
TEttinger left
09:03
Sound joined
09:13
lowbro left,
Skarsnik joined
09:18
Ven`` joined
|
|||
Ven`` | wow, I stop looking for a few days, and we now have a JSX slang :o. pmurias++ | 09:20 | |
09:20
pmurias left
|
|||
Ven`` | Not me. | 09:21 | |
09:22
pmurias joined
09:25
Sgeo joined
09:26
llfourn left
09:28
Cabanossi left
09:31
Cabanossi joined
09:42
pmurias left
09:48
pmurias joined
09:50
domidumont left
09:56
ChoHag left
09:58
ChoHag joined
09:59
Ven`` left
10:00
matthias__ joined
10:03
zakharyas joined
10:16
robertle joined
10:20
shady0wl_ left
10:26
ShalokShalom_ joined
10:29
ShalokShalom left,
Cabanossi left,
lowbro joined,
lowbro left,
lowbro joined
10:30
ShalokShalom_ is now known as ShalokShalom
10:31
Cabanossi joined
10:39
Gothmog_ joined
|
|||
BooK | surely perl6 has an equivalent for AUTOLOAD? | 10:39 | |
moritz | BooK: look for FALLBACK in the docs | 10:40 | |
timotimo | that's only for methods on classes, though. not for packages in general | ||
(because we don't use package lookup for method dispatch in perl6) | |||
10:44
someuser joined
|
|||
BooK | thanks | 10:48 | |
10:51
sftp left
10:52
Sound left,
sftp joined
10:55
eliasr joined
|
|||
pmurias | m: | 11:01 | |
11:18
rurban left,
rindolf joined,
piojo2 joined
|
|||
BooK | timotimo: if I wanted to add a small section about it in a 5to6 page on doc.perl6.org, which one would that be? | 11:22 | |
since there's no 5to6-perlobj, I was thinking maybe 5to6-nutshell#Functions | 11:23 | ||
11:24
sena_kun joined
|
|||
moritz | or start a 5to6-perlobj :-) | 11:24 | |
BooK | I was afraid someone would say that :-) | 11:25 | |
moritz | moritz: speaking out loud what everybody else was sensible enough not to say since around 1988 :-) | 11:26 | |
BooK | it's just that he perlobj toc is scary if you have to write it in perl6 :-) | 11:34 | |
11:34
domidumont joined
|
|||
moritz | it doesn't need to be complete by any measure | 11:39 | |
BooK | what about I make a file with all the headers, fill in the AUTOLOAD one, and let someone else figure it out ? | 11:44 | |
An Object is Simply a Data Structure / A Class is Simply a Package / A Method is Simply a Subroutine # the first three sound like fun | |||
moritz | Objects are Instances of Classes / Classes are Firs-Class Citizen / Methods Are A Real Thing :-) | 11:45 | |
Skarsnik | hm, what is the clever to give a replacement pattern in a conf file (something that get EVAL)? I want to pass something like 'LibFoo::*::Binding' and have the * replaced? | 11:49 | |
11:51
rurban joined
|
|||
moritz | where does the replacement come from? | 11:51 | |
from within the config file? or from the application? | |||
Skarsnik | the app | 11:52 | |
I mean I can do a s/*/$stuff/ probably | 11:53 | ||
moritz | then do it | 11:54 | |
nothing easier than that | |||
11:58
nksr joined
|
|||
[Coke] | MasterDuke: I know that HLL means "High Level Language" it doesn't make sense in terms of the text I was referring to. | 12:01 | |
Sorry I was not clear. | 12:02 | ||
(the only HLL here that it could mean is Rakudo. And this is on the docs site and we're talking about Perl 6 already. | 12:03 | ||
12:03
nksr left
12:04
nksr joined
|
|||
nksr | JOIN | 12:04 | |
Zoffix | Join successful | 12:05 | |
Skarsnik | hm, is there a concensus about circular dependancy btw? | ||
Zoffix | I thought it was something impossible; 'cause one-pass-parse and what not | 12:06 | |
[Coke] | Skarsnik: github.com/perl6/doc/issues/1419 ? | ||
12:07
committable6 joined
|
|||
Skarsnik | I had legit need for circular dependancy in Discord, since I like to type thing | 12:07 | |
moritz | it's possible within a compunit | 12:09 | |
jnthn | I think the general principle is that if two things are so tightly related as to have a circular dependency, they probably belong in the same compilation unit. Thus there's ways to handle circular deps within a compilation unit, but not between them. | ||
moritz | I don't like that restriction, but there are hard technical problems to solve if we want to lift that | 12:10 | |
jnthn kinda likes it | |||
moritz | any IMHO it's not worth the effort, compared to other areas we can put effort in | ||
Zoffix is neutral about it | |||
Skarsnik | I think last time I tried it stuck rakudo in an infinite loop | 12:11 | |
Zoffix | The first time I came across it, I just dropped type contraints and moved on :P (gradual typing)++ | ||
Skarsnik: there should be a mechanism preventing that and complaining about circular dependency. If it hangs again, that's a bug | |||
nksr | better make mediator to avoid cir...deps | 12:12 | |
12:12
Skarsnik_ joined
|
|||
Skarsnik_ | github.com/Skarsnik/perl6-discord/...d/User.pm6 some field need Discord::Channel but Discord::Channel need Discord::User x) | 12:13 | |
full typing is usefull for IDE for example | 12:14 | ||
12:16
Skarsnik left,
Skarsnik_ is now known as Skarsnik
|
|||
nksr | up vote 2 down vote For purely object-oriented code, there is no circular dependency problem. You can quite happily have something like: # AAAA.pm package AAAA; use strict; use warnings; use BBBB; sub new { my $class = shift; my ($i) = @_; bless { b => $i > 0 ? BBBB->new($i-1) : $i }, $class; } 1; # BBBB.pm package BBBB; use strict; use warnings; use AAAA; sub new { my $class = shift; my ($i) = @_; | 12:18 | |
stackoverflow.com/questions/270935...th-require | |||
soory dooooooddddd..... | |||
the link may help you | 12:19 | ||
Skarsnik | it's for perl5 code x) | 12:20 | |
nksr | k | 12:21 | |
Skarsnik | maybe beable able to write 'class B {*}; class A { blablalb}' could be a workaround? | ||
12:26
raschipi joined
12:27
rurban1 joined
12:28
rurban2 joined,
rurban2 left
12:29
Cabanossi left
12:30
rurban left
12:31
Cabanossi joined,
rurban1 left
|
|||
Zoffix | Skarsnik: what does {*} do in that case? | 12:32 | |
Skarsnik | dunno, like with NC native routine. 'this is not real code, but something elsewhere'? | ||
Zoffix | Looks to be just a * as a term inside class's body. | 12:33 | |
Skarsnik: we have class B {…} where you can provide the body elsewhere in the file, but that doesn't solve the problem if it's in another file. | 12:34 | ||
And the * doesn't seem to be needed in NC routines. I don't know why people put it in. The {*} is a thing in protos tho | 12:35 | ||
m: use NativeCall; sub fork is native {}; fork; $*PID.say | |||
camelia | 20800 20798 |
||
Zoffix | m: proto foo { say "before"; {*}; say "after }; multi foo { say "♥" | 12:36 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3; {*}; say "after }; multi foo { say "♥"7⏏5<EOL> expecting any of: postfix statement end statement modifier state… |
||
Zoffix | m: proto foo { say "before"; {*}; say "after }; multi foo { say "♥" }; foo | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in double quotes; couldn't find final '"' at <tmp>:1 ------> 3say "after }; multi foo { say "♥" }; foo7⏏5<EOL> expecting any of: horizontal whitespace… |
||
Zoffix | m: proto foo { say "before"; {*}; say "after" }; multi foo { say "♥" }; foo | 12:37 | |
camelia | before ♥ after |
||
Zoffix | m: proto foo { {*}; say "before"; {*}; say "after"; {*} }; multi foo { say "♥" }; foo | ||
camelia | ♥ before ♥ after ♥ |
||
Zoffix | ^_^ | ||
12:37
itaipu joined
|
|||
Zoffix | m: proto foo { {*} xx {*} }; multi foo { "♥".say but 70 }; foo | 12:40 | |
camelia | ♥ ♥ |
||
Zoffix | kinda expected it to make 70 hearts | ||
or 71 rather | |||
Ah, it's coercing to Num | 12:43 | ||
jnthn | m: proto foo { {*} xx {*} }; multi foo { "♥".say; 70 }; foo | ||
camelia | ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ … |
||
Zoffix | m: proto foo { {*} xx {*} }; multi foo { "♥".say but role { method Num { 70e0 } } }; foo | ||
camelia | ♥ ♥ |
||
jnthn | Numeric maybe? | ||
Oh but | 12:44 | ||
.say returns Bool | |||
Zoffix | m: proto foo { {*} xx {*} }; multi foo { "♥".say but role { method Num { 70e0 }; method Int { 70 } } }; foo | ||
camelia | ♥ ♥ |
||
jnthn | Bool | ||
is an Int | |||
as it's an enum | |||
So it'll just go and unbox the 1 | |||
Zoffix | It goes through Num() coercer here: github.com/rakudo/rakudo/blob/4b02...t.pm#L1507 | ||
And then gets .Int called on it | 12:45 | ||
jnthn | There's an Int candidate below: github.com/rakudo/rakudo/blob/4b02...t.pm#L1517 | ||
Zoffix | Oh | ||
s: &infix:<xx>, \(42, ("42".uc but 42)) | |||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/4b02...t.pm#L1507 | ||
Zoffix | I used ^ that because .say interfered with the bot :P | 12:46 | |
s: &infix:<xx>, \(42, ("42".so but 42)) | |||
12:46
nksr left
|
|||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/4b02...t.pm#L1517 | 12:46 | |
Zoffix | *phew* mistery solved :) | ||
jnthn returns to his spesh mystery :) | |||
Geth | doc/rafaelschipiura-mention-close-in-5to6: f4cd255c17 | rafaelschipiura++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6 Mention importance of closing handles in 5to6 |
12:50 | |
BooK | jnthn: actually Bool is not realy an enum, but faking it well (from what I've seen/understood of the code) | ||
Geth | doc: rafaelschipiura++ created pull request #1537: Mention importance of closing handles in 5to6 |
||
BooK | or, is an enum in a different way than other enums :-) | ||
jnthn | m: say Bool.HOW.^name | ||
camelia | Perl6::Metamodel::EnumHOW | ||
jnthn | It needs a bit of bootstrap screwery, but it really is using the enum meta-object :) | 12:51 | |
It used to be much more cheaty | |||
BooK | m: say Bool.enums; say Order.enums | ||
camelia | {False => 0, True => 1} Map.new((:Less(-1),:More(1),:Same(0))) |
||
jnthn | Hm, interseting discrepancy | 12:52 | |
BooK | nine is going to show me around on Thursday evening, this is on my map | ||
jnthn | :) | ||
BooK | the rough plan is to see if we can make Bool do the Enumeration role | 12:53 | |
jnthn | Aha | 12:54 | |
BooK | the real plan is that I know more at the end than I did at the beginning :-) | ||
Altreus | can someone confirm my understanding here? In the docs for but, it gives this example: «say 42 but 'forty two';» Does this take 'forty two'.^name, which is Str, then override 42.Str with that, so that say calls 42.Str and actually gets the object we butted it with? | ||
jnthn | Altreus: Yes | ||
Altreus | ace | ||
thanks :) | |||
jnthn | Or something like that | ||
BooK | perl6 is really handwavy :-) | 12:55 | |
Altreus | say calls .gist, right? so it's probably .gist calling .Str | ||
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/fnSQjv4agP Bogus p… |
||
Altreus, Full output: gist.github.com/cdd583b99fd4c667d9...1d579ccfd9 | |||
Altreus | no thank you eval bot | ||
jnthn | Actually, almsot exactly that: github.com/rakudo/rakudo/blob/f1b0...ors.pm#L84 | ||
s/almost// :) | 12:56 | ||
raschipi | Altreus: In the other hand, it's written in Perl6, so after learning Perl6 you can go and easily know exactly what's happening. | ||
Altreus | Yeah once I understand it all fully I can finally start to learn it | 12:58 | |
Zoffix | say calls .Str on the object we butted it with, not on 42 :) | ||
evalable6 | (exit code 1) 04===SORRY!04=== Argument to "say" seems to be malformed at /t… |
||
Zoffix, Full output: gist.github.com/f316a20bdf419285f0...00475ea122 | |||
Zoffix | evalable6: shoo! | ||
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/cw37llz1IJ Bogus p… |
||
Zoffix, Full output: gist.github.com/f500e8cd21ffadc8fb...61433d8752 | |||
Zoffix | m: { Bool.enums<bar> = 42 }; say Bool.enums | 13:00 | |
camelia | {False => 0, True => 1, bar => 42} | ||
Zoffix | m: enum Foo <a b c>; Foo.enums.^name.say | 13:01 | |
camelia | Map | ||
Zoffix | Easy fix. Just need a .Map on here: github.com/rakudo/rakudo/blob/nom/...ool.pm#L37 same as it's here: github.com/rakudo/rakudo/blob/4b02...tion.pm#L6 | 13:02 | |
Who wants to do it? :D | |||
cd $(mktemp -d); git clone github.com/rakudo/rakudo/ . ; edit src/core/Bool.pm ; perl Configure.pl --gen-moar --gen-nqp --backends=moar; make; make install; make test; make spectest; git commit src/core/Bool.pm -m 'Make Bool.enums consistent with Enumeration.enums'; git push; | 13:04 | ||
change github.com/rakudo/rakudo/ to the URL of your fork; click "Submit PR" button on GitHub after last step :) | 13:05 | ||
Zoffix & | |||
Altreus | Zoffix: that was my understanding! | ||
oh | |||
thanks then :) | |||
13:05
cosimo left
|
|||
Zoffix | I meant that by the time it arrives to say, it's already the new object. | 13:06 | |
And more specifically, it's .gist that gets called. So `say $blah but "foo"` will only print "foo" for objects whose .gist calls .Str. And also, since `say Str:D` doesn't call anything and just unboxes it, it won't work then | 13:07 | ||
13:07
cosimo joined
|
|||
Zoffix | m: say "orig" but "no workie" | 13:07 | |
camelia | orig | ||
Zoffix | m: say [] but "no .Str for you" | ||
camelia | [] | ||
Zoffix | m: say [] but role { method gist { "no .Str for you" } } | 13:08 | |
camelia | no .Str for you | ||
Zoffix & | |||
wictory[m] | Hi! so this code hastebin.com/ulalikuvir gives me this error hastebin.com/pegezaxali what am I doing wrong? | 13:09 | |
(I want a NEXT phaser in the outer loop) | |||
Geth | doc/rafaelschipiura-mention-close-in-5to6: f000fe2a4f | rafaelschipiura++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6 Remove mention of phaser. |
13:10 | |
doc/rafaelschipiura-mention-close-in-5to6: 83e87839fa | rafaelschipiura++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6 Mention the close docs. |
13:11 | ||
Zoffix | wictory[m]: looks like a bug to me | 13:15 | |
m: FOO: for 1 { next FOO } | 13:17 | ||
camelia | ( no output ) | ||
Zoffix | m: FOO: for 1 { NEXT {}; next FOO } | ||
camelia | labeled next without loop construct in block <unit> at <tmp> line 1 |
||
Zoffix looks at sauce | |||
13:18
silug left
|
|||
Geth | doc/rafaelschipiura-mention-close-in-5to6: 9979c173c6 | rafaelschipiura++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6 Change to a link to the close routine. |
13:18 | |
doc: 0f8ba22ff0 | rafaelschipiura++ (committed by Zoffix Znet) | doc/Language/5to6-perlfunc.pod6 Mention importance of closing handles in 5to6 (#1537) * Mention importance of closing handles in 5to6 * Remove mention of phaser. * Mention the close docs. * Change to a link to the close routine. |
|||
wictory[m] | Zoffix: ok, nice so I wasn't crazy. There is not much documentation on how to use phasers, so I wasn't sure if I had written it correctly. | 13:19 | |
Zoffix | k, it's over my head :) Gonna file a bug report | ||
Skarsnik | hm how do I append a hash in a @ but without it trying to make the % a list? | 13:20 | |
m: my %h = a => 'b', b => 'c'; say %h; my @a; @a.append(%h); say @a.elems | |||
camelia | {a => b, b => c} 2 |
||
wictory[m] | Zoffix: thanks | ||
Skarsnik | like I want 1 elem ^^ | ||
Zoffix | wictory[m]: filed: rt.perl.org/Ticket/Display.html?id=132034 | 13:21 | |
It's probably a 1-line fix. Just need to know where to put that one line :P | |||
m: my %h = a => 'b', b => 'c'; say %h; my @a; @a.append($%h); say @a.elems | |||
camelia | {a => b, b => c} 1 |
||
Skarsnik | ooh $ | ||
Zoffix | Yeah, Hash does Iterable, so need to shove it into scalar container for it to be treated as one item | 13:22 | |
Skarsnik | damn I think I will run into a circular dependancy stuff with libxml2 binding | 13:23 | |
since I can't not type field in c struct | 13:24 | ||
Zoffix | wictory[m]: once you learn more about phasers than what the docs say, you could improve the docs. Just need to edit this file: github.com/perl6/doc/blob/master/d...asers.pod6 | ||
:) | |||
Zoffix & | |||
13:25
travis-ci joined
|
|||
travis-ci | Doc build passed. rafaelschipiura 'Mention importance of closing handles in 5to6' | 13:25 | |
travis-ci.org/perl6/doc/builds/272040793 github.com/perl6/doc/commit/f4cd255c17b5 | |||
13:25
travis-ci left
|
|||
Geth | doc: 8c00cec776 | rafaelschipiura++ (committed by Zoffix Znet) | doc/Language/variables.pod6 “my” docs mentioning dynamic variables (#1522) * “my” docs mentioning dynamic variables Explains the relationship between lexical/package and normal/dynamic scope a bit more. Asked in #1082 ... (6 more lines) |
13:26 | |
13:27
travis-ci joined
|
|||
travis-ci | Doc build errored. rafaelschipiura 'Change to a link to the close routine.' | 13:27 | |
travis-ci.org/perl6/doc/builds/272051218 github.com/perl6/doc/compare/83e87...79c173c62a | |||
13:27
travis-ci left
|
|||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually. | 13:27 | |
13:27
Kyo91_ joined
13:41
travis-ci joined
|
|||
travis-ci | Doc build passed. rafaelschipiura 'Mention the close docs.' | 13:41 | |
travis-ci.org/perl6/doc/builds/272048583 github.com/perl6/doc/compare/f000f...e87839fa88 | |||
13:41
travis-ci left
|
|||
Skarsnik | hm I kinda screw... xmlio.h use xmlparser.h and xmlparser.h use xmlio.h | 13:42 | |
13:44
S007 left
|
|||
timotimo | that's what #ifdef is for :P | 13:45 | |
Skarsnik | yep in C | ||
but how I work around that in Perl 6 ? | |||
timotimo | stub classes? move shared things to a third module? | ||
Skarsnik | I mean I could generate a bug huge binding, but kinda meh | 13:46 | |
or I should write a circular dependancy detection and merge all files involved | 13:47 | ||
13:48
travis-ci joined
|
|||
travis-ci | Doc build passed. rafaelschipiura 'Remove mention of phaser.' | 13:48 | |
travis-ci.org/perl6/doc/builds/272048231 github.com/perl6/doc/compare/f4cd2...00fe2a4f77 | |||
13:48
travis-ci left,
cosimo left
13:49
S007 joined,
ruoso___ joined
13:50
silug joined
13:51
skids joined
|
|||
Skarsnik | timotimo, I probably should bother people to allow for circular dependancy x) | 13:54 | |
It will probably be common with C/C++ binding | 13:55 | ||
timotimo | could very well be :| | 13:56 | |
Skarsnik | since it's a place you can't avoid typing | 13:57 | |
13:58
Cabanossi left
14:00
Cabanossi joined
14:03
zakharyas left
14:04
zakharyas joined
14:05
cosimo joined
|
|||
Skarsnik | Should it be closed rt.perl.org/Ticket/Display.html?id=126688 ? it does not run indefinitly now | 14:12 | |
14:12
zakharyas left
14:13
nattefrost left
|
|||
Zoffix | Skarsnik: does it report "circular something something detected"? | 14:15 | |
Skarsnik | skarsnik@devel:~/perl6/gptrixie$ ../rakudo/install/bin/perl6 -I. -e 'use A;' | ||
===SORRY!=== | |||
Circular module loading detected trying to precompile /home/skarsnik/perl6/gptrixie/A.pm | |||
with the last example | |||
moritz | python should really do the same | ||
instead of just saying "cannot import name " | 14:16 | ||
timotimo | it'd probably be neat if it could output a little graph/tree of what parts are involved | ||
if the circle is bigger than just two modules | |||
Skarsnik | could probably tell what in A trigger the circular? | ||
Zoffix | Skarsnik: I marked the ticket as TESTNEEDED now | ||
buggable: tag TESTNEEDED | 14:17 | ||
buggable | Zoffix, There are 42 tickets tagged with TESTNEEDED; See fail.rakudo.party/t/TESTNEEDED for details | ||
Zoffix | ^ lots of low-hanging contibuting potential if anyone wants to jump in :) | ||
Skarsnik | dunno what you call testneeded? a test in roast? | 14:18 | |
Zoffix | Skarsnik: yes. All bugs receive a test covering them, so we don't fix the same bug twice. | 14:19 | |
(and other impls don't make the same mistakes we did :P) | |||
14:20
wamba left
|
|||
[Coke] | .tell lizmat forgot to use tell ; your use of HLL in recent doc patch; it trips the spell checker, but rather than just add it, wondering if we can eliminate its use, since the only HLL we have is Perl 6 and that's what we're writing the docs for. | 14:26 | |
yoleaux | [Coke]: I'll pass your message to lizmat. | ||
[Coke] | (docs are otherwise xt clean) | ||
is there an alternative to 'rakudobrew build moar nom' to get the latest version, but tied to its own dir-by-commit-sha? | 14:27 | ||
would probably help eliminate some of the already-compiled-but-not-what-you-wanted module issues I've been having with zef. | 14:28 | ||
(nuke before build, maybe?) | |||
Zoffix | Do you even need rakudobrew? | 14:29 | |
[Coke] | No, I could write my own shell script that does what I want. | ||
Or I could try to make RB a little better. | |||
Zoffix | There's a minimally-tested bash alias for building latest rakudo: github.com/zoffixznet/r#linux | ||
[Coke] | Trying to be a good citizen. | ||
thanks. | 14:30 | ||
14:30
Cabanossi left
14:31
Cabanossi joined
14:32
sumdoc joined
|
|||
Zoffix | And I've been using this for clean update with rakudobrew: rm -fr ~/.perl6; rm -fr ~/.zef; rm -fr ~/.rakudobrew/; git clone github.com/tadzik/rakudobrew ~/.rakudobrew; rakudobrew build moar; rakudobrew build zef; zef install TAP::Harness; | 14:32 | |
14:32
sumdoc left
|
|||
[Coke] | I will work on one that does a bunch of nukes and updates in place so we don't have to redownload the rakudo/nqp/moarvm repos. | 14:39 | |
(but this is fine for how often I need to do this.) danke. | |||
14:44
pmurias left
14:54
Kyo91 joined
14:57
Kyo91_ left,
margeas joined
15:13
dj_goku left
15:14
zakharyas joined
15:15
dj_goku joined
15:17
cdg joined
15:24
lowbro left
15:25
cdg_ joined
15:28
cdg left
15:31
dj_goku_ joined,
dj_goku_ left,
dj_goku_ joined,
dj_goku left
|
|||
Geth | doc/polymod-digits: 7c52912dbb | rafaelschipiura++ (committed using GitHub Web editor) | doc/Type/Int.pod6 Update Int.pod6 |
15:41 | |
doc: 1fd4b0f3bf | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Type/Int.pod6 Document the use of polymod for base conversion Attempt to resolve issue #1436. |
|||
doc: 7c52912dbb | rafaelschipiura++ (committed using GitHub Web editor) | doc/Type/Int.pod6 Update Int.pod6 |
|||
doc: d9929798de | rafaelschipiura++ (committed using GitHub Web editor) | doc/Type/Int.pod6 Merge pull request #1487 from perl6/polymod-digits Document the use of polymod for base conversion |
|||
15:43
khw joined,
wamba joined
15:47
lizmat joined
|
|||
Geth | doc/any-clarification: 537bea1613 | rafaelschipiura++ (committed using GitHub Web editor) | doc/Type/Any.pod6 Missing ) |
15:50 | |
15:52
zakharyas left
|
|||
Geth | doc/any-clarification: df2a8b917f | rafaelschipiura++ (committed using GitHub Web editor) | doc/Type/Any.pod6 Missing ) |
15:53 | |
raschipi | dejavu | ||
15:53
yqt joined
|
|||
sena_kun | SHA is different though. | 15:53 | |
perlpilot | Is LISP silently stealing ) from the P6 docs? | 15:54 | |
raschipi | The ) added in the first one is summed in the second | ||
15:55
abraxxa left
|
|||
lizmat clickbaiits p6weekly.wordpress.com/2017/09/04/...a-reading/ | 15:57 | ||
yoleaux | 14:26Z <[Coke]> lizmat: forgot to use tell ; your use of HLL in recent doc patch; it trips the spell checker, but rather than just add it, wondering if we can eliminate its use, since the only HLL we have is Perl 6 and that's what we're writing the docs for. | ||
raschipi | That pull request just need a decision for what to do about .sum Should it stay or should it go? | ||
m: my $a; $a.sum; | 15:59 | ||
camelia | Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1 |
||
raschipi | m: my $a.=new; $a.sum; | ||
camelia | Cannot resolve caller Numeric(Any: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at <tmp> line 1 |
||
16:01
mcmillhj joined,
mcmillhj left
|
|||
sena_kun | raschipi, and `reduce` with `produce` explanations. Along with `collate` and `cache`. | 16:04 | |
raschipi | Can't there be new pull requests when someone writes them? | 16:05 | |
16:05
skids left
|
|||
sena_kun | Dunno. Maybe it can. | 16:05 | |
m: say Any.sum; | 16:06 | ||
camelia | Use of uninitialized value of type Any in numeric context 0 in block <unit> at <tmp> line 1 |
||
sena_kun | It actually produces "0". | ||
raschipi | I see now that you actually removed the sum method from there. | 16:09 | |
sena_kun | Should I return it? | 16:10 | |
raschipi | If you think so, you can create a new pull request. | ||
This way we can merge it right now. | |||
sena_kun | `This method treats Any as 1-item list and sums it, returning 0, throwing a by-design error alongside(don't mind it too much)` | 16:11 | |
Geth | doc/master: 4 commits pushed by Altai-man++, rafaelschipiura++ | 16:12 | |
16:15
sumdoc joined
|
|||
sumdoc | Is there "dataframe" like data structure in Perl 6? Like this pandas.pydata.org/pandas-docs/stabl...#dataframe | 16:15 | |
Zoffix | If it's a lot different from 2D array, then nothing in core. | 16:18 | |
16:18
SHODAN joined
|
|||
Zoffix | or hash of arrays | 16:18 | |
16:18
jonas1 left
|
|||
timotimo | it's different enough to a 2d array | 16:19 | |
but a hash of arrays could do what you want | |||
just doesn't have the many constructors and labeling features and functions to work with them and such | |||
Zoffix | m: my %h = :one(1…3), :index<a b c>; %h<one>[1].say | 16:20 | |
camelia | 2 | ||
16:20
skids joined
|
|||
piojo2 | m: grammar F { token TOP { ^ <.indent(0)> 'foo' $ }; proto token indent(Int $level) {*}; token indent:sym<spaces>(Int $level) { ' ' ** {$level * 4} } }; say so F.parse(' foo'); | 16:21 | |
camelia | Too few positionals passed; expected 2 arguments but got 1 in regex indent:sym<spaces> at <tmp> line 1 in regex indent at <tmp> line 1 in regex TOP at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
piojo2 | It seems like with a proto token, my arguments get eaten | 16:22 | |
regex token arguments work fine without a proto token | 16:23 | ||
16:23
Sound joined
|
|||
Zoffix | piojo2: I see a ticket with that rt.perl.org/Ticket/Display.html?id...et-history | 16:24 | |
piojo2 | Zoffix: yeah, looks the same | 16:25 | |
Zoffix | m: grammar F { token TOP { ^ :my $*level = 0; <.indent> 'foo' $ }; proto token indent(|) {*}; token indent:sym<spaces> { ' ' ** {$*level * 4} } }; say so F.parse(' foo'); | ||
camelia | False | ||
piojo2 | Wow, since 2014?? | ||
Zoffix | possible workaround ^ | ||
piojo2: well, 2015 was about getting ready for first stable release; 2016 was about making performance usable; 2017 was about polishing various things like IO and stuff. :) | 16:26 | ||
And it's not a painful feature (like, there's a workaround like above) | |||
16:27
sproctor left
16:28
domidumont left
|
|||
piojo2 | Zoffix: thanks. Will that workaround nest like an equivalent lexical variable, as each new "my" hides the previous one? | 16:28 | |
Zoffix | piojo2: yeah | 16:29 | |
piojo2 | thanks | ||
16:31
robertle left,
okl joined
16:32
llfourn joined
16:38
araujo left
16:39
araujo joined,
araujo left,
araujo joined
|
|||
piojo2 | Zoffix: I wish I were experienced enough to implement that feature myself. It's so seemingly small (since it's analogous to features that already exist) | 16:41 | |
Zoffix | Yeah, I know the feeling :) Kinda wish we had chips in brains you could download knowledge onto :) | 16:42 | |
16:42
dakkar left
|
|||
piojo2 | :) | 16:43 | |
16:43
Sgeo_ joined
16:44
Kyo91_ joined,
sumdoc left
16:45
Kyo91 left,
Sgeo left
16:47
lizmat left
16:50
piojo2 left
16:57
andrzejku joined
17:02
rindolf left
17:03
kybr joined
17:06
SHODAN left
17:08
piojo2 joined
|
|||
piojo2 | m: grammar G { token TOP { :my $*val = 0; <match1(0)> }; token match1($val) { :my $*val = $*val+1; <recursive-match> }; token recursive-match { . } }; say so G.parse('x'); | 17:10 | |
camelia | Use of uninitialized value of type Any in numeric context True in regex match1 at <tmp> line 1 |
||
17:10
SHODAN joined
|
|||
piojo2 | Apparently dynamic variables don't work the way I thought they did... | 17:10 | |
m: grammar G { token TOP { :my $*val = 0; <match1> }; token match1 { :my $*val = $*val+1; <recursive-match> }; token recursive-match { . } }; say so G.parse('x'); | 17:11 | ||
camelia | Use of uninitialized value of type Any in numeric context True in regex match1 at <tmp> line 1 |
||
piojo2 | what am I doing wrong? Shouldn't I be able to create a new "my $*val" to shadow the old "$*val"? | 17:12 | |
17:12
rindolf joined
|
|||
perlpilot | piojo2: variables are available immediately upon declaration. so, in "my $x = $x + 1", the second $x is the same as the first $x | 17:15 | |
[Coke] | ugexe++ for zef install --serial (and for not making it the default) | 17:16 | |
piojo2 | m: grammar G { token TOP { :my $*val = 0; <match1> }; token match1 { :my $oldval = $*val; :my $*val = $oldval+1; <recursive-match> }; token recursive-match { . } }; say so G.parse('x'); | 17:20 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Illegal post-declaration of dynamic variable '$*val'; earlier access must be written as CALLERS::<$*val> if that's what you meant at <tmp>:1 ------> 3 match1 { :my $oldval = $*val; :my $*val7⏏… |
||
piojo2 | perlpilot: thanks. Is this new error happening because "my" affects the whole block, so it's illegal to refer to both the old $*val and the new "my $*val"? | 17:21 | |
m: grammar G { token TOP { :my $*val = 0; <match1> }; token match1 { :my $oldval = CALLERS::<$*val>; :my $*val = $oldval+1; <recursive-match> }; token recursive-match { . } }; say so G.parse('x'); | 17:22 | ||
camelia | True | ||
perlpilot | pretty much. Though it does give you the info you needed to make it work like you want. | ||
piojo2 | whoa, that error message was so crazy looking I actually didn't believe it! Next time, I won't think I'm smarter than the compiler... | 17:23 | |
perlpilot | piojo2: you could have also said: ":my $*val = CALLERS::<$*val> + 1;" btw | ||
piojo2 | Yeah, it's just inertia to change things. Thanks! | ||
perlpilot | piojo2: any time. | ||
17:25
devmikey joined
|
|||
perlpilot | piojo2: btw, is your nick spanish or is that just a coincidence? | 17:26 | |
17:26
zakharyas joined
|
|||
piojo2 | Yeah, some Mexican guys used to call me that :P | 17:26 | |
I guess it's less rude than the English version would be | 17:27 | ||
17:27
okl left
17:33
itaipu left
|
|||
perlpilot wonders how hard it would be to make "my $x = <some expression involving $x>" generate that CALLERS message rather than what it currently does. | 17:33 | ||
piojo2 | perlpilot: It's not always wrong | 17:39 | |
echo -n 'hello\nworld' | perl6 -ne 'my $*line //= 0; say "line {$*line++}";' | |||
perlpilot | piojo2: in an initializer, it's probably not what the programmer intended. | 17:40 | |
piojo2 | perlpilot: yeah, I'm still a little fuzzy on the rules. Especially since "my" changed a little bit between perl 5 and 6 (particularly, what it does with -n or -p) | 17:44 | |
don't take me as an example of what real programmers do :) | |||
17:45
matthias__ left
17:47
P6steve joined
|
|||
P6steve | hullo - do we have ::T type variables yet? (REPL seems to barf if I go my ::T = Int;) ?? | 17:48 | |
raschipi | docs.perl6.org/type/Any Looks much better. I wonder if we should leave it like it was because it's what motivated me to contribute to the docs. | ||
ugexe | m: sub foo(::T $val) { say "type: {T}"; say "value: {$val}" }; foo("1"); foo(1); | 17:49 | |
camelia | Use of uninitialized value of type Str in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. type: value: 1 type: value: 1 in sub foo at <tmp> line 1 Use of uninitialized value of … |
||
17:49
konsolebox left
|
|||
raschipi | m: sub awoo ( ::T $a) { say ::T }; awoo 1; | 17:49 | |
camelia | (Int) | ||
ugexe | m: sub foo(::T $val) { say "type: {T.^name}"; say "value: {$val}" }; foo("1"); foo(1); | ||
camelia | type: Str value: 1 type: Int value: 1 |
||
geekosaur | P6steve, at present if something doesn;t work in the REPL then the first thing to do is see if it works in file or perl6 -e | 17:50 | |
because the REPL is filled with edge cases and hacks | |||
P6steve | aha - thanks! | ||
17:51
konsolebox joined
|
|||
Zoffix | m: grammar { token TOP { :my $*v = 42; <foo> }; token foo { {dd $*v } <bar> }; token bar { :temp $*val = 100; <bez> }; token bez { {dd $*val } .+ } }.parse: "foo" | 17:51 | |
camelia | Int $*v = 42 Can only use 'temp' on a container in regex bar at <tmp> line 1 in regex foo at <tmp> line 1 in regex TOP at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Zoffix | ... and I'm using it on... ? | ||
piojo2: well, that would've been ^ a better solution, but apparently that's also broken :P | |||
Oh, wait | 17:52 | ||
m: grammar { token TOP { :my $*v = 42; <foo> }; token foo { {dd $*v } <bar> }; token bar { :temp $*v = 100; <bez> }; token bez { {dd $*v } .+ } }.parse: "foo" | |||
camelia | Int $*v = 42 Int $*v = 100 |
||
Zoffix | It works if you name your variables right :P | ||
geekosaur | that error seems a trifle LTA | 17:53 | |
Zoffix | Well, it gets a Failure | 17:54 | |
m: temp Failure.new | 17:55 | ||
camelia | Can only use 'temp' on a container in block <unit> at <tmp> line 1 |
||
piojo2 | haha | ||
Zoffix | m: say $*v.exception.^name | 17:59 | |
camelia | X::Dynamic::NotFound | ||
Zoffix | maybe it could inspect stuff and explain or maybe that's overreach | 18:00 | |
18:01
Actualeyes left
|
|||
piojo2 | Zoffix: :temp definitely works. But strangely, I'm gonna keep :my $*val = CALLERS::<$*val>, because that's the option I'm more afraid of forgetting | 18:02 | |
I strongly prefer :temp, though | |||
thanks! | |||
Zoffix | use temp then :) | ||
piojo2 | I'm too new. I'm using whatever there's the most danger of me forgetting about. | ||
I have just a few scripts. I'll be able to grep them later and refresh my memory about how to do things. | 18:03 | ||
Zoffix | If it's something you forget, it's not worth remembering :P But for record, that's a Pseudo Package and there's a bunch of them: docs.perl6.org/language/packages#P...o-packages | ||
18:06
zakharyas left
|
|||
perlpilot | Zoffix: I occasionally forget the implicit *% in method signatures and that is totally worth remembering. | 18:07 | |
18:08
espadrine joined
|
|||
Zoffix | yeah, could bite you. The other day I made datetime object passing :0h :0m and :0s for time and it "worked" because I wanted that time... but then I changed the values and realized the names were wrong :) | 18:09 | |
18:10
cdg joined
18:11
pilne joined
18:12
cdg__ joined,
setty1 joined,
cdg left
18:13
cdg_ left
18:15
Kyo91_ left
18:18
Sound left,
cdg joined
18:21
cdg__ left
|
|||
AlexDaniel | hmmmm | 18:23 | |
LEAVE try close $fh; | |||
what about LEAVE .close with $fh; | |||
18:24
ash_gti joined
|
|||
Zoffix | what about LEAVE $fh andthen .close; | 18:25 | |
:) | 18:26 | ||
LEAVE $fh.?close | |||
(unless you typed $fh with IO::Handle :P) | 18:27 | ||
Actrually, `my $fh does auto-close = "foo".IO.open` is what the cool kids use these days. | 18:28 | ||
I think lizmat++ has plans to improve this area. | 18:29 | ||
buggable: eco Trait::IO | |||
buggable | Zoffix, Trait::IO 'Helper IO traits': github.com/zoffixznet/perl6-Trait-IO | ||
18:30
Kyo91_ joined
|
|||
Zoffix | (discussion about this topic in #moarvm: irclog.perlgeek.de/moarvm/2017-09-05#i_15119697 ) | 18:30 | |
AlexDaniel | huggable: irc unicode colabti.org/irclogger/irclogger_log/perl6 | 18:31 | |
huggable | AlexDaniel, nothing found | ||
AlexDaniel | huggable: irc unicode :is: colabti.org/irclogger/irclogger_log/perl6 | ||
huggable | AlexDaniel, Added irc unicode as colabti.org/irclogger/irclogger_log/perl6 | ||
AlexDaniel | 🍕🍕🍕 | ||
Zoffix | The comparison with Perl is overhyped IMO. You don't deal with handles in Rakudo as often as you do in Perl. Most common operations can be done with IO::Path that does the closing for you. | ||
AlexDaniel: did everyone give up trying to fix our "official" log site? :) | 18:32 | ||
mst | same as in sensible perl you'd use IO::All or these days Path::Tiny | 18:33 | |
Zoffix uses Mojo::File | |||
mst | which is pretty much mojo's version of Path::Tiny | 18:34 | |
18:34
cdg_ joined
|
|||
Zoffix | :) | 18:34 | |
mst | (my mojo code totally uses Mojo::File, my non-mojo code uses Path::Tiny) | ||
AlexDaniel | Zoffix: well, I looked at it, to me it seems like it's broken on *saving* the data, so I guess we've missed unicode characters of these couple of months | ||
and then I didn't have time to look any further… but I need irc logs with unicode | 18:35 | ||
18:36
cdg left
18:37
P6steve left
18:38
cdg_ left
|
|||
AlexDaniel | greppable6: LEAVE | 18:38 | |
18:38
scottchiefbaker joined
|
|||
greppable6 | AlexDaniel, gist.github.com/aeb9f154fec340d8ba...f0752dde39 | 18:38 | |
Zoffix reads IO::All docs with jelousy | 18:39 | ||
AlexDaniel | :S | ||
Zoffix | backwards reading... in-place editing. Sounds really cool. | ||
mspo | reading backwards rocks | 18:43 | |
Zoffix | mst: do you read all the channels you're in or do you have a highlight for word "Perl"? :) | 18:44 | |
18:45
Kyo91 joined
|
|||
mst | Zoffix: not all, but I often read in here because it's slowly teaching me more rakudo by osmosis | 18:47 | |
Zoffix | Ah :) | ||
mst | and then if somebody's mentioning a low-level perl5 thing and there's a decent high-level one, I mention it so (a) you can better compare (b) if we've got any ideas you haven't you can steal them | ||
mst still v. glad TWEAK made it in, for example | 18:48 | ||
18:48
dogbert2 joined,
Kyo91_ left
|
|||
mst | it seemed excessively silly to me that there was a case where rakudo's OO was blantaly inferior to the giant pile of duct tape we use in perl5 :) | 18:48 | |
Zoffix | mst: someone showed me a picture of you being hugged. I don't know how I should feel about it. Is it a good picture because you're getting a hug, or is it a bad picture because of the slide accompanying it: www.flickr.com/photos/hercynium/5892245323/ | 18:49 | |
mst | that was *hilarious* at the time, he jumped up from the audience to do it | ||
also piers gives excellent hugs | 18:50 | ||
Zoffix | lol :D | ||
mspo | www.flickr.com/photos/hercynium/58...otostream/ | ||
Zoffix | hehe :) | ||
mspo | nice use of > and >> operators in that IO::All | 18:51 | |
piojo2 | I'm trying to parse YAML, and perl just told me "Cannot resolve caller <my token name>", then I put in some print statements, and the problem goes away whenever I print debug output, and comes back when I remove it | 18:52 | |
rakudo bug ⇒ time for bed | 18:53 | ||
timotimo | did you put { } into your regex to do the printing? | ||
piojo2 | timotimo: yes, why? | ||
timotimo | that has an influence on longest token matching semantics | ||
piojo2 | timotimo: this part doesn't have any branches. It's just in a [ <token1> <token2> ] +% '\n' | 18:55 | |
but thanks for pointing that out--I wouldn't have thought of it. | |||
18:56
SU85 joined
|
|||
piojo2 | I'll submit a rakudobug after I clean the junk out of the script and get permission to share the input file | 18:57 | |
19:07
darutoko left
|
|||
moritz | \o | 19:08 | |
I've created a small grammar that parses an indention-based language (mini-python): gist.github.com/moritz/46b8ff0a9f4...9bbf63a90e | 19:09 | ||
Zoffix | \o/ | 19:10 | |
Skarsnik | :) | ||
19:11
piojo2 left
19:12
nadim joined
|
|||
moritz | I think somebody mentioned interest in such a thing... who was it? maybe raschipi? | 19:13 | |
Zoffix | m: gist.github.com/moritz/46b8ff0a9f4...9bbf63a90e | 19:14 | |
camelia | True Inconsistent indentation: expected at most 0, got 4 spaces Inconsistent indentation: expected at most 4, got 8 spaces Unexpected indentation level: 2. |
||
Zoffix | moritz: dunno; though I saw piojo2 ask question about a grammar that had <indent> token | 19:15 | |
19:16
ash_gti left,
Sound joined
19:18
ash_gti joined,
kyan joined
19:24
r7c joined
19:26
yqt left
|
|||
raschipi | Not me. | 19:28 | |
Yuck, semantic whitespace. | 19:29 | ||
Zoffix | .oO( b-b-but Rakudo has it! ) |
19:30 | |
19:31
zakharyas joined
|
|||
El_Che | Zoffix: shut it. | 19:32 | |
:) | |||
moritz | it's called "parse it." :-) | ||
Zoffix | m: sub foo ($, $a?) { "There's {$a ?? "no" !! "a"} space between the name and (".say }; foo(1, 2); foo (1, 2); | 19:33 | |
camelia | There's no space between the name and ( There's a space between the name and ( |
||
Zoffix | :) | ||
m: dd <1/2>; dd <1/2 > | 19:34 | ||
camelia | 0.5 RatStr.new(0.5, "1/2") |
||
Skarsnik | haha | 19:35 | |
it create a list | |||
? | |||
Zoffix | m: say "e ehehe hehehe hehe" ~~ / [ \S+ ]**4/ | ||
camelia | 「ehehe」 | ||
Zoffix | m: say "e ehehe hehehe hehe" ~~ /:s [ \S+ ]**4/ | ||
camelia | 「e ehehe hehehe hehe」 | ||
Zoffix | Not to mention semantic whitespace after } :) | 19:36 | |
Skarsnik: no, <1/2> is a Rat literal, <1/2 > is a RatStr literal | |||
m: dd <1/2>.^name; dd <1/2 >.^name; # a bit more clear | |||
camelia | "Rat" "RatStr" |
||
Skarsnik | this is confusing x) | 19:37 | |
Zoffix | Not really | ||
Skarsnik | m: "1/2".say | ||
camelia | 1/2 | ||
Skarsnik | m: "1/2".Rat.say | ||
camelia | 0.5 | ||
Skarsnik | m: "1/2 ".Rat.say | ||
camelia | 0.5 | ||
Zoffix | Skarsnik: if there's an operator needed to produce a literal, you can wrap it into <> to make a literal-literal (without any operators). So Complex and Rat do that. But <> construct makes allomorphs, so if you meant to make an allomorph add moar whitespace to indicate you want the allomorph and not the literal | 19:38 | |
raschipi | A little bit of semantic whitespace is fine, for obvious reasons. | ||
Zoffix | <42> for example is IntStr, not an Int, because you don't need an operator to make it (so there's no reason to write <42> instead of 42 if you meant an Int) | ||
19:39
Sound left
|
|||
Zoffix | m: <1*2**2>.^name.say | 19:39 | |
camelia | IntStr | ||
Zoffix | And in that form you need operators, but it's a crazy lookin' thing so you get an IntStr instead of just an Int anyway | 19:40 | |
19:40
andrzejku left
|
|||
Zoffix | m: <-42>.^name.say | 19:43 | |
camelia | IntStr | ||
Zoffix | Bah. The operator-based explanation don't work :P | ||
AlexDaniel loves the < > construct. It's just a thing that keeps on giving. | 19:45 | ||
AlexDaniel: I have another present for you | |||
AlexDaniel | \o/ | ||
Zoffix | m: say +<1*-2**2> | ||
camelia | 4 | ||
Zoffix | m: say +1*-2**2 | ||
camelia | -4 | ||
Zoffix | :) | ||
AlexDaniel | but… but | ||
19:46
lizmat joined
|
|||
Zoffix | m: say (1*(-(2**2))) | 19:46 | |
camelia | -4 | ||
Zoffix | TBH, I don't know what the <1*2**2> form is even doing in there. | 19:47 | |
AlexDaniel | committable6: all say +<1*-2**2> | ||
Zoffix | Is there some programming niche where this form is in common use or something? | ||
AlexDaniel | let's see how fresh it is | 19:48 | |
committable6 | AlexDaniel, ¦all (44 commits): «4» | ||
AlexDaniel | okay | ||
Zoffix | I'm guessing it's some mathematical trick that mathematicians appreciate. | ||
moritz | I think it's mainly useful for something like 6.022*10**23 | ||
Zoffix | Ah | ||
Right. moritz++ | |||
moritz | and then we couldn't help but generalize it to all bases and such | ||
because 6.022e23 would be too easy, and not give a Rat, or something | 19:49 | ||
Zoffix | AlexDaniel: but wait! There's more! | ||
m: say <1*—2**2>.^name | |||
camelia | Str | ||
Zoffix | :) | ||
BooK | say (6.022*10**23).WHAT | ||
evalable6 | (Rat) | ||
BooK | uh | ||
19:49
Xal left
|
|||
BooK | ah yes, Num are with explicit e notation | 19:50 | |
Zoffix | Oh, U+2212 minus doesn't work at all in <...>. | ||
19:51
Xal joined
|
|||
AlexDaniel | can you make <> execte arbitrary code? | 19:52 | |
then we can call it <>lang | |||
… and have a separate documentation for its features /o\ | |||
quotable6: AlexDaniel .* present | 19:53 | ||
moritz | AlexDaniel: I don't think so | ||
Skarsnik | AlexDaniel, plz stap | 19:54 | |
quotable6 | AlexDaniel, gist.github.com/055d419703a367f3e2...7c0d29e794 | ||
19:55
ufobat left
|
|||
AlexDaniel | Skarsnik: stop doing what exactly? | 19:55 | |
AlexDaniel is in the middle of doing 5 things at once | 19:56 | ||
greppable6: \x4C\x45\x41\x56\x45 | 19:57 | ||
greppable6 | AlexDaniel, gist.github.com/879cec80dcdf381e98...f219625988 | ||
AlexDaniel | argh | 19:58 | |
19:58
Cabanossi left,
ggoebel joined
|
|||
Skarsnik | AlexDianelable6, foo | 19:59 | |
don't mind me I am just tired x) | |||
AlexDaniel | okay I'll make greppable6 case-sensitive | 20:00 | |
if you need it to be case-insensitive, stick (?i) into it | |||
20:00
greppable6 left
20:01
Cabanossi joined,
ash_gti left,
greppable6 joined
|
|||
AlexDaniel | greppable6: LEAVE | 20:01 | |
greppable6 | AlexDaniel, gist.github.com/63cd9da70c23a9886f...71ab239489 | 20:02 | |
AlexDaniel | greppable6: (?i)password | ||
greppable6 | AlexDaniel, gist.github.com/ef29995428d5b02253...59d994e806 | ||
Geth | whateverable: d2f8ffda3f | (Aleks-Daniel Jakimenko-Aleksejev)++ | bin/Greppable.p6 Drop -i flag in greppable It's easier to add (?i) when you need it. |
20:07 | |
whateverable: cac6af2a98 | (Aleks-Daniel Jakimenko-Aleksejev)++ | t/quotable.t Enable quotable tests Malformed UTF-8 issue has been resolved, so now it's ok. |
|||
20:07
r7c left
20:09
cdg joined,
cdg_ joined
20:13
cdg left
20:15
perlpilot left
20:21
AlexDaniel left
20:24
kyan left,
konsolebox left
20:31
konsolebox joined
|
|||
samcv | good * | 20:32 | |
moritz | \o samcv | 20:33 | |
20:33
SU85 left
|
|||
raschipi | m: ('𝄵'.ord.uniname / 2).say | 20:36 | |
camelia | Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5MUSICAL SYMBOL CUT TIME' (indicated by ⏏) in block <unit> at <tmp> line 1 |
||
raschipi | Showing the string is very nice. | ||
samcv | m: say "FIVE"/10 | 20:44 | |
camelia | Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5FIVE' (indicated by ⏏) in block <unit> at <tmp> line 1 |
||
samcv | :P | ||
20:55
setty1 left
21:07
skids left
21:12
Rawriful joined,
Skarsnik left
21:13
raschipi left
21:31
leah2 left
|
|||
teatime has flash-backs to marching band | 21:31 | ||
21:37
sena_kun left,
zakharyas left
21:38
Kyo91 left,
AlexDaniel joined
21:43
nadim left
|
|||
rindolf | samcv: hi | 21:45 | |
21:46
cpage_ left
21:50
TEttinger joined
21:52
espadrine left,
Rawriful left
21:59
Cabanossi left
22:01
Cabanossi joined
22:08
cpage_ joined
|
|||
samcv | hey rindolf | 22:16 | |
rindolf | samcv: sup? | 22:20 | |
samcv | not much. moarvm hacking | 22:22 | |
teatime | if I was gonna use a command-line spell-checker on *nix which one is current... aspell/ispell/etc. | ||
22:25
someuser left
|
|||
samcv | i use aspell | 22:28 | |
22:33
raschipi joined
|
|||
teatime | thanks | 22:34 | |
22:35
zapwai joined
22:38
kyan joined
22:42
skids joined
22:43
eater left
|
|||
MasterDuke | that's what my kubuntu 17.04 machine defaults to | 22:53 | |
23:01
devmikey left
23:04
rindolf left
23:06
cdg joined
23:08
Cabanossi left
23:09
cdg_ left
23:10
cdg left,
Cabanossi joined
23:11
margeas left
|
|||
japhb | Zoffix: FWIW, val(Str:D) is a bit ... overpowered. The notation you found is only a fraction of its disturbing power. ;-) | 23:12 | |
23:15
ash_gti joined
|
|||
Zoffix eyes docs.perl6.org/routine/val | 23:17 | ||
If the power is not documented, I'd say it's not a power, but a bug :P | |||
raschipi | Where are ou guys using val? | 23:22 | |
23:22
committable6 left
|
|||
Zoffix | m: <\qq[{say "Pwned lulz!"}]> | 23:22 | |
camelia | Pwned lulz! | ||
Zoffix | AlexDaniel: moritz ^ you *can* execute arbitrary code in < > | 23:23 | |
AlexDaniel | okay | ||
very good | |||
Zoffix | raschipi: it's what the < > uses under the hood | ||
IIRC | |||
AlexDaniel | Zoffix: how did you find this? | 23:25 | |
Zoffix | AlexDaniel: I new \qq[] escape existed in "" quotes, so I tried it out in <> | 23:26 | |
AlexDaniel | oh | ||
didn't know both | |||
Zoffix++ | |||
Zoffix | raschipi: and I think japhb++ is the implementor of this stuff | ||
AlexDaniel | TIL ← so that you can find it in IRC logs :) | 23:27 | |
Zoffix | AlexDaniel: oh, then it might be new to you that it also works in single quotes | ||
m: my $x = "Look mah!, I'm interpolating \\o/"; say '\qq[$x]' | |||
camelia | Look mah!, I'm interpolating \o/ | ||
AlexDaniel | well, I hate single quotes tbh | ||
Zoffix | :) | 23:28 | |
AlexDaniel | thinking about autoreplacing them all to 「」 | ||
it's really weird that you can do crazy stuff like this but not \n | |||
Zoffix | :) | ||
AlexDaniel | ‘useless quotes’ | ||
MasterDuke | i think ShimmerFairy implemented one of the vals | 23:30 | |
raschipi | japhb: Tell us more about the power of val... | 23:31 | |
Zoffix | .oO( the power of val compells you! ) |
23:32 | |
s: &val | |||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/c39d...hs.pm#L151 | ||
Zoffix | m: dd ":36[1,2,3]".&val.Numeric | 23:34 | |
camelia | 1371 | ||
Zoffix | That's the only other magik I see in the sauce that I didn't know it did :) | 23:36 | |
m: say <−42>.Numeric | |||
camelia | -42 | ||
Zoffix | m: say <10*10**−42>.Numeric | ||
camelia | Type check failed in binding; expected Int but got Num (1e-41) in block <unit> at <tmp> line 1 |
||
Zoffix | k, so it's my fault for not fixing the − thoroughly enough :P | 23:37 | |
23:40
eater joined
23:43
ash_gti left
23:46
cdg joined
23:50
cdg left,
zoll_ joined
23:51
zoll_ left
|