»ö« 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:03 mcmillhj left 00:08 Cabanossi left 00:11 Cabanossi joined 00:14 mcmillhj joined 00:16 araraloren joined
araraloren morning 00:16
00:23 mcmillhj left 00:28 astj joined 00:33 astj left, jonh left 00:38 Cabanossi left 00:39 rindolf left 00:41 Cabanossi joined 00:44 pilne joined 01:10 Cabanossi left 01:11 Cabanossi joined 01:15 Rawriful left 01:18 zengargoyle joined 01:26 raschipi joined 01:32 cdg joined 01:36 cdg left 01:39 Cabanossi left 01:40 Cabanossi joined 01:46 ilbot3 left 01:51 ilbot3 joined, ChanServ sets mode: +v ilbot3 01:55 aeruder left, aeruder joined 01:56 nattefrost left, lowbro left 01:58 araraloren_ joined 01:59 cdg joined 02:01 araraloren left 02:04 cdg left 02:05 mcmillhj joined 02:09 Cabanossi left 02:10 mcmillhj left 02:11 Cabanossi joined 02:15 raschipi left 02:19 astj joined 02:21 mcmillhj joined
[Coke] .tell zofffix the docs for that are in EXAMPLE.md, linked to from CONTRIBUTING.md 02:23
yoleaux 18 Aug 2017 20:28Z <Zoffix> [Coke]: I fixed what xtests I could, per our fix-them-on-release agreement, but I can't find any docs on what new code pod tags were added to shut it up about undeclared variables, so those are still failing
[Coke]: I'll pass your message to zofffix.
18 Aug 2017 20:44Z <Zoffix> [Coke]: never mind. Found the docs. .oO( maybe all of these separate .md's should be in one place )
02:24 astj left
[Coke] .tell zoffix you asked to split up CONTRIBUT* because it was too big, so I started on that with this. See github.com/perl6/doc/issues/1302 02:25
yoleaux [Coke]: I'll pass your message to zoffix.
02:29 mcmillhj left
Geth doc: a52ea3d4c8 | (Will "Coke" Coleda)++ | util/xt-recent-aspell.sh
hacky fix to hacky script
02:33
02:36 pierre_ joined 02:40 pierre_ left 02:41 noganex_ joined 02:44 noganex left 02:53 Cabanossi left 02:55 Cabanossi joined 03:00 cdg joined
Geth doc: 71fe3a3f0d | (Will "Coke" Coleda)++ | doc/Type/Any.pod6
Correct return type of minmax

Try to clarify min/max/minmax slightly.
Closes #1455
03:03
03:04 mr-fooba_ left 03:05 cdg left 03:07 Cabanossi left 03:08 mr-foobar joined 03:09 Cabanossi joined 03:11 mr_ron left 03:17 nalley joined 03:18 nalley left, nalley joined
Geth doc: 2615849dd0 | (Will "Coke" Coleda)++ | template/search_template.js
remove verbose console output
03:20
03:27 pilne left 03:34 mr-foobar left, mid_home joined
nalley hello guys, I watched this video(www.youtube.com/watch?v=5pa1AryylpM) and tried this :( (sqrt(50)+7)**(1/3) +(7-sqrt(50))**(1/3), which should be 2 ) with rakudo. When I use **(1/3) for cube root, the result is NAN; When I use .roots(3), i got 6. Anyone know why? (sorry for my poor English) 03:37
03:37 mr-foobar joined
nalley p6: (7-sqrt(50))**(1/3) 03:38
camelia WARNINGS for <tmp>:
Useless use of "**" in expression "(7-sqrt(50))**(1/3)" in sink context (line 1)
TEttinger m: say (7-sqrt(50))**(1/3) 03:39
camelia NaN
TEttinger m: say (7-sqrt(50))
camelia -0.0710678118654755
TEttinger m: say cbrt(8) 03:41
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
cbrt used at line 1
TEttinger wasn't sure if it was a thing
m: say (7+sqrt(50))**(1/3)
camelia 2.41421356237309
TEttinger m: -8 ** (1/3) 03:42
camelia WARNINGS for <tmp>:
Useless use of "-" in expression "-8 **" in sink context (line 1)
TEttinger m: say -8 ** (1/3)
camelia -2
TEttinger well... it works for some negative numbers. strange
nalley m: say (-27) ** (1/3) 03:45
camelia NaN
nalley m: say -27 ** (1/3)
camelia -3
TEttinger that one's... very weird 03:47
geekosaur precedence
TEttinger m: say((7 - sqrt(50)) ** (1/3))
camelia NaN
geekosaur not sure why unary - isn't higher precedence
TEttinger geekosaur: so -27 is actually - being called on 27, not the integer -27? 03:48
nalley oh, I see
geekosaur it's doing - (27 ** (1/3))
TEttinger there's some math discussion over whether the 1/3 power is defined for negative numbers 03:49
geekosaur for wharever reason the precedence of unary - is lower than exponentiation, so the expression result is being negated instead of the number
and yes, there are questions about that 03:50
more precisely, see math.stackexchange.com/questions/2...ve-numbers 03:53
we often cheat in this case and consider the real root the "only" root
also note, relevantly, the discussion about the _principal root_ 03:56
since the principal cube root of -8 is complex, something that works in terms of principal roots must produce NaN 03:57
er, real principal roots
nalley I understand now, thank you guys. so for that question i can do this
m: say (7+sqrt(50)) ** (1/3) + -(-(7-sqrt(50)))**(1/3)
camelia 2
04:05 nalley left 04:08 mcmillhj joined 04:13 mcmillhj left 04:14 BenGoldberg left
[Coke] working on a fix for Rat not being searchable on the doc site. 04:14
feels like htmlify got faster. 04:16
04:16 BenGoldberg joined 04:21 wamba joined
Geth doc: 71f40b4457 | (Will "Coke" Coleda)++ | template/search_template.js
Don't blindly trim to 50 results on search

Instead, preferentially keep exact matches and prefix matches.
Closes #1477 by making "Rat" searchable again.
04:29
[Coke] gfldex: searching for "Rat" now shows Rat & RatStr (and other stuff) 04:31
04:34 mr-foobar left 04:38 mr-foobar joined 04:46 cpage_ left 05:00 khw left 05:02 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 05:04 mr-foobar left, skids left 05:09 mr-foobar joined
Geth doc: 1437b0ee22 | (Will "Coke" Coleda)++ | util/trigger-rebuild.txt
trigger rebuild
05:10
05:16 cdg joined 05:18 skids joined 05:20 cdg left 05:26 cpage_ joined 05:30 cpage_ left 05:39 Cabanossi left 05:40 Cabanossi joined 05:42 skids left 05:53 pierre_ joined, eliasr left 05:56 astj joined 05:58 mcmillhj joined 06:00 astj left 06:02 mcmillhj left 06:05 mr-foobar left, mr-foobar joined 06:17 pecastro joined 06:20 mid_home left 06:32 pecastro left, ShalokShalom_ joined 06:35 ShalokShalom left, lizmat left 06:36 mr-foobar left 06:40 mr-foobar joined 06:43 lizmat joined 06:54 darutoko joined
gfldex [Coke]: nice 06:59
06:59 jeek left
BenGoldberg So if you add space to, and remove space from, that file, does the doc build happen in reverse? ;) 07:05
gfldex BenGoldberg: no, if you add space the universe gets bigger
07:05 mr-foobar left 07:06 mr-foobar joined 07:10 BenGoldberg left 07:14 ShalokShalom_ is now known as ShalokShalom 07:16 parv joined 07:17 cdg joined 07:19 gigavinyl joined 07:21 cdg left 07:26 gigavinyl left 07:31 pharv joined 07:33 dct joined 07:36 mr-foobar left, mr-foobar joined 07:39 BooK joined 07:48 smls joined
smls bisectable6: say <a b>.any ~~ m/a/; 07:48
bisectable6 smls, On both starting points (old=2015.12 new=e3e29c5) the exit code is 0 and the output is identical as well
smls, Output on both points: «False»
zorin-os is it possible to compile only perl's -Pe function into a C program so that its regex can be used in C programs (instead of using c regex libs and h's that ADD regex to ur application but dont actually SUPPORT using its syntax inside of the .c itself (eg using s/hello/bo/ in a .c file) 07:54
BooK I was wondering, are there any authoring tools for Perl6 modules at the moment? 08:01
timotimo there's mi6 and ddt 08:02
i haven't tried either of those yet
there's also miroku
08:03 cdg joined, zorin-os left
timotimo buggable: eco Ddt 08:03
buggable timotimo, Ddt 'Distribution Development Tool similar to mi6': github.com/kalkin/Ddt 2 other matching results: modules.perl6.org/s/Ddt
timotimo 1) why is Ddt in there twice, 2) why does it say "2 other results" when it already showed one of the two?
08:04 cdg_ joined, mr-fooba_ joined 08:05 domidumont joined 08:06 cdg__ joined 08:07 mr-foobar left 08:08 cdg left, Cabanossi left 08:09 Cabanossi joined, cdg_ left 08:10 domidumont left, domidumont joined 08:11 cdg__ left 08:14 wamba left 08:15 ufobat joined
BooK I have a "unit module" with defines a sub and a class (so that the class can use the sub internally) 08:31
can I access the sub from the outside? 08:32
and if so, under what name?
ufobat BooK, docs.perl6.org/type/Sub#index-entr..._%28Sub%29 08:34
is this what you're looking for?
08:36 wamba joined 08:37 Cabanossi left
BooK I guess 08:37
08:39 mcmillhj joined 08:40 Cabanossi joined
ufobat git status 08:40
oups sorry
BooK ufobat: so with our sub foo, the sub becomes accessible, but is not exported. what under what name can I call it? 08:42
timotimo ClassName::foo
m: class MyClass { our sub foo { say "this is foo!" } }; MyClass::foo()
camelia this is foo!
BooK doesn't seem to work for me, I guess my definition is wrong
ufobat m: module Foo { my sub a {say "a"}; our sub b {say "b"}}; Foo::b(); Foo::a() 08:43
camelia b
Could not find symbol '&a'
in block <unit> at <tmp> line 1
BooK unit module Git::Version; our sub normalize {} ; class Git::Version is Version; # the relevant bits (I think) 08:44
ufobat is "module" like a "namespace" for subs and stuff which is usually not used in combination with classes?
timotimo oh, i thought you put the sub inside the class
BooK maybe my use^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HI didn't really know what I was doing then
(bad network connection: I'm in a train) 08:45
ufobat isn't it now Git::Version::normalize() ?
08:45 mcmillhj left
BooK $ perl6 -Ilib -MGit::Version -e 'say Git::Version::normalize(@*ARGS.shift)' 1.0.2 08:46
Could not find symbol '&normalize'
ufobat m: module Foo { my sub a {say "a"}; our sub b {say "b"}; class Foo {has $.a}}; Foo::b(); say Foo::Foo.new() 08:47
camelia b
Foo::Foo.new(a => Any)
ufobat looks like your class Git::Version in the module Git::Version is now having the name Git::Version::Git::Version from the outside
BooK ufobat: yeah, I've seen messages with that name 08:49
so, what did I do wrong?
ufobat dont know, it works for me 08:51
nopaste.me/view/3b787bd7
BooK ok, thanks. I'll keep exploring/learning 09:00
09:09 eroux joined 09:23 espadrine_ joined 09:25 domidumont left 09:27 Skarsnik joined
Skarsnik Hello 09:27
09:31 pharv left 09:33 nadim joined 09:43 andreoss left, andreoss joined 10:02 TEttinger left, Rawriful joined
leont .tell Zoffix I managed to fix the other Test.pm bug, will PR soon 10:18
yoleaux leont: I'll pass your message to Zoffix.
10:22 cdg joined 10:24 mr-fooba_ left 10:27 cdg left
Xliff_ Does Perl 6 support reloading code? 10:27
10:27 Xliff_ is now known as Xliff 10:33 mr-foobar joined
Skarsnik Not really 10:33
lizmat Xliff: you can mix in roles at runtime, which is almost as good ? 10:37
10:38 Cabanossi left 10:39 Cabanossi joined
leont If I have a file descriptor to a pipe, how can I create an IO::Pipe for it? 10:47
10:49 dct left
lizmat leont: the attribute is called $!on-native-descriptor; 10:51
10:52 Skarsnik_ joined
leont How do I use that? 10:54
(and actually, I want a supply for the pipe, and thought IO::Pipe.Supply was the obvious way) 10:55
10:55 Skarsnik left
leont that attribute looks useful for native-descriptor(), but I want to use it in the opposite direction 10:56
lizmat perhaps Zoffix has an idea 10:58
andreoss m: macro infix:<foo>($a, $b) { quasi {{{{$b}}}}} ; say (1 foo 2); 10:59
camelia 5===SORRY!5=== Error while compiling <tmp>
Use of macros is experimental; please 'use experimental :macros'
at <tmp>:1
------> 3macro7⏏5 infix:<foo>($a, $b) { quasi {{{{$b}}}}}
andreoss m: use experimental :macros; macro infix:<foo>($a, $b) { quasi {{{{$b}}}}} ; say (1 foo 2);
camelia WARNINGS for <tmp>:
Useless use of constant integer 1 in sink context (line 1)
Useless use of constant integer 2 in sink context (line 1)
2
andreoss are infix macros NYI?
11:00 wamba left 11:02 nadim left 11:07 rindolf joined
leont I have a suspicion the answer is "it's NYI" 11:07
Both for the synchronous and the asynchronous case 11:08
11:08 setty1 joined
leont I think it would require inventing IO::Pipe::Async, as well as adding a few small functions to nqp::async* 11:11
11:11 wamba joined
jnthn leont: What do you want to do, take a descriptor and use it as stdin for a process or some such? 11:12
11:12 andrzejku joined
jnthn (or stdout, or stderr) 11:13
leont Pretty sure how to do the former, less so about the latter
jnthn We could just add multi candidates taking an int to github.com/rakudo/rakudo/blob/nom/...nc.pm#L228 and similar
Since all it does is extract the integer descriptor anyway 11:14
leont I get a file descriptor in an environmental variable, and want to react on every byte I can read (for implementing gnu make job server protocol)
jnthn s/descriptor/handle/
Oh, so you don't even want anything to do with processes. 11:15
11:15 cdg joined
jnthn There's not yet a way to do that yet, but it should be relatively easy to add. 11:15
I've considered using it for $io-handle.Supply to make it actually start an async reader or some such 11:16
leont What I think I need is for NQP to expose a few uv_pipe functions (mainly uv_pipe_open, but init, connect and bind sound useful too), building an IO::Pipe::Async on top of that should be fairly straightforward given IO::Socket::Async 11:17
And an IO::Pipe on top of that should also be straightforward
11:18 ufobat left
jnthn Yeah, IO::Socket::Async and the way it does its VM binding would be probably a good thing to copy 11:18
11:20 cdg left 11:30 wamba left 11:34 wamba joined
leont Seems my moarvm checkout is 4 years out of date, time flies :-D 11:35
Geth ecosystem: dcad25b9d3 | (Moritz Lenz)++ | META.list
New module Grammar::ErrorReporting
11:37
11:51 Skarsnik_ is now known as Skarsnik 11:53 Cabanossi left 11:54 Cabanossi joined
smls Is there a way to have a role add an attribute that is initialized on object cnstruction, i.e. `has $.a = ...;` but allow a class which composes the role to override that initialization expression? 12:02
12:02 BenGoldberg joined
smls Attributes cannot be overridden, so simply writing `my $.a = NEW-EXPRESSION` in the class is out. 12:04
Doing the initialization in TWEAK and then overriding that also does not work, because the class doesn't have access to `$!a`, only to `$.a`... and virtual method calls are not allowed in TWEAK. 12:07
leont Doing this well would probably require a refactor so the socket and pipe systems can share most of their implementations 12:10
12:10 eliasr joined
Skarsnik m: use nqp; say nqp::can(num.HOW, "nativesize") && num.^nativesize == 0 12:11
camelia Cannot resolve caller infix:<==>(NQPMu, Int); none of these signatures match:
($?)
(\a, \b)
(Real \a, Real \b)
(Int:D \a, Int:D \b)
(int $a, int $b)
(Num:D \a, Num:D \b --> Bool)
(num $a, num $b --> Bool)
(…
12:11 ilbelkyr left
leont Suspect this is over my head for now 12:11
Skarsnik hm someone tell me how to fix this with nqp, but I don't remember how x)
leont It seems no one is running the spectest without having an installed perl6. It's failing on a plain checkout 12:12
12:14 ilbelkyr joined 12:15 wamba left 12:17 araralonre__ joined, araralonre__ is now known as araraloren
smls Oh, `self.foo` calls *do* work inside TWEAK... only `$.foo` calls fail ("Virtual method call $.foo may not be used on partially constructed object")... 12:19
12:19 atroxaper joined
smls Is that a bug? 12:19
12:19 araraloren_ left
moritz no 12:22
smls What's the difference between those method call syntaxes? 12:24
12:31 nattefrost joined 12:34 atroxaper left, atroxaper joined
smls It doesn't seem to matter if `foo` is an auto-accessor or a manually declared method... `self.foo` works in TWEAK, but `$.foo` doesn't. 12:34
12:36 araraloren_ joined
smls p6doc doesn't seem to describe any intentional difference between the syntaxes. It claims "Within methods, $.origin works the same as self.origin": docs.perl6.org/language/objects#self 12:36
Geth doc: 4a2bc0eaba | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/testing.pod6
Document Test.pm is not thread safe and likely won't be

There are plans to make Testo.pm thread safe, but the module is still in alpha stage; just mention "ecosystem modules" as a possible solution for threadiness for now.
12:37
doc: 72cb637a05 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/testing.pod6
s/that/the/;
smls Then again, that p6doc section also claims that `self` is a type object inside BUILD, which isn't the case: 12:39
m: class A { submethod BUILD { say self.defined } }; A.new;
camelia True
12:40 araraloren left, nadim joined 12:42 domidumont joined
smls moritz: Should't I RT that discrepancy between the `$.method` and `self.method` syntaxes? 12:44
jnthn smls: It's by design.
(self.foo is an escape hatch for when you're sure you know you want to make a virtual call) 12:45
smls Why wouldn't one want to make a virtual call?
moritz because the BUILD of subclasses hasn't run yet 12:46
so the object isn't fully initialized
and methods from child classes might not work yet 12:47
smls Ah.
12:51 rightfold joined 12:52 Cabanossi left 12:54 Skarsnik_ joined, araralonre__ joined, Cabanossi joined 12:55 araralonre__ left
smls And TWEAK is just a second round of BUILD? No differenced between them? 12:56
i.e: BUILD (superclass) --> BUILD (subclass) --> TWEAK (superclass) --> TWEAK (subclass) ?
*differences
12:56 araraloren joined 12:57 araraloren_ left, Skarsnik left 12:58 domidumont left 13:02 Skarsnik_ is now known as Skarsnik 13:06 eroux left
atroxaper Hello all. Am I right that I can 'use' something only from .pm file but not from .p6? I wanted create .p6 with sub declaration. And .t which imports the sub and tests it. 13:07
leont .pm6 13:08
atroxaper As I understand I have to write NAME.pm file with declaration of NAME module. After that I can import NAME module and it's exports. 13:09
Skarsnik yes 13:10
well prefer .pm6 ^^
atroxaper Ok. Asked just for sure ^^
And what extension is prefered for scripts? .p6 or .pl6? I see different examples on the github. 13:12
Skarsnik I use p6
but if it's clear it's not perl 5 it's fine I guess ^^
atroxaper I will then. Thanks. 13:13
smls I use .p6 for scripts and .pm for modules, because I like 2-letter suffixes... :) 13:14
I make sure to add the line `use v6;` at the top of every module though, so no-one thinks it's Perl 5.
13:16 Skarsnik_ joined 13:19 Skarsnik left
andreoss is there a way to specify into which class a role will be mixed in? 13:22
(known as self-type in Scala) 13:23
hahainternet i'm interested in how you could /not/ specify which class, but i don't know enough about p6 to help, intrigued by the problem though 13:24
13:25 atroxaper left
Skarsnik_ hm 13:27
13:27 nadim left, Skarsnik_ is now known as Skarsnik
leont possibly ::?CLASS 13:28
13:29 araraloren left, Skarsnik_ joined, araraloren joined
araraloren smls,actual it is use v6.c; 13:30
smls araraloren: Good point, I should use that instead.
13:30 Skarsnik__ joined
araraloren and you can use v6.d.PREVIEW 13:32
13:32 Skarsnik left 13:33 Skarsnik_ left
andreoss m: class Z {...}; role F { submethod BUILD(::?CLASS:D $self: |c where $self ~~ Z) { } } ; class Z does F {} ; Z.new.say 13:34
camelia Z.new
andreoss is it even possible to know stuff like that at compile time? 13:36
13:36 Skarsnik__ is now known as Skarsnik
andreoss i.e which class is using this role 13:36
Skarsnik Not really since you can compose at run time 13:37
13:37 parv left 13:38 Cabanossi left
Skarsnik m: class A {}: role R {}; my A $a; $a does R; say $a ~~ R; 13:38
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3class A {}:7⏏5 role R {}; my A $a; $a does R; say $a ~
expecting any of:
colon pair
Skarsnik m: class A {}; role R {}; my A $a; $a does R; say $a ~~ R; 13:39
camelia Cannot use 'does' operator with a type object.
in block <unit> at <tmp> line 1
andreoss m: class A {}; role R {}; my A $a .=new ; $a does R; say $a ~~ R;
camelia True
13:40 Cabanossi joined 13:43 marciogm joined, pilne joined 13:51 domidumont joined
andreoss m: sub infix:«>>»($a, $b) { $a +> $b } ; say (1 >> 2); 13:51
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of >> to do right shift; in Perl 6 please use +> or ~>
at <tmp>:1
------> 3ix:«>>»($a, $b) { $a +> $b } ; say (1 >>7⏏5 2);
13:52 domidumont left
andreoss can i turn it off? 13:52
13:57 setty1 left 14:00 Zoffix joined
Zoffix Is dnmfarrell aka David Farrell here? 14:00
14:00 dmaestro joined
Zoffix andreoss: not at the moment 14:01
14:06 wamba joined
AlexDaniel .seen dnmfarrell 14:07
yoleaux I saw dnmfarrell 16 Nov 2016 21:47Z in #perl6: <dnmfarrell> hey folks, thought you might like to know there is a new kickstarter project for "Learning Perl 6" written by brian d foy and published by O'Reilly www.kickstarter.com/projects/14228...ing-perl-6
Zoffix But anyway: the problem is dnmfarrell silently deleted 4 modules off github; we just wanted to know how to proceed. Currently gonna recover from forks and copies and store them in perl6-community-modules 14:13
Geth ecosystem: 5bde1116ee | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
System::Passwd is gone, move to perl6-community-modules
14:24
AlexDaniel here's one 14:25
14:37 Cabanossi left 14:38 lucasb joined 14:40 Cabanossi joined
Geth ecosystem: 0f6fc54807 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
URI::Encode is gone, move to perl6-community-modules
14:43
14:48 skids joined
lucasb I have no idea what atomicint is for, just saw the name... Wasn't there bikeshed to name it something shorter like "aint" ? 14:49
Zoffix lucasb: atomicint is an int of size that can be safely operated on atomically 14:51
using new atomic ops
m: my atomicint $x = 42; say $x⚛++; say $x 14:52
camelia 42
43
lucasb Zoffix: right, thanks. I was just wondering about the huffmanization of the name, but I guess "atomicint" is ok
Zoffix As for "aint"... other than a chuckle about its similarity to the slang for "am not", it's a terrible name.
lucasb I guess you are right :) 14:53
jnthn Also atomicuint isn't an unreasonable future request, and I don't think we want auint :P 15:02
I think in terms of Perl 6 users who will actually use this feature, we're talking a fraction of a percent, so the huffman argument for aint ain't existent :) 15:03
15:06 ufobat joined 15:08 Cabanossi left 15:10 Cabanossi joined 15:13 atroxaper joined 15:14 pmurias joined
pmurias why is it atomicint rather than atomic-int? 15:15
jnthn *sigh* 15:16
Why is it uint rather than u-int? Why is it FatRat rather than Fat-Rat? 15:17
Because we consistently don't hyphen type names.
pmurias ok, seems like a decent reason ;) 15:19
15:26 skids left 15:40 nadim joined 15:53 pierre_ left 15:54 [particle] left, pierre_ joined, [particle] joined 15:56 [particle]1 joined, [particle] left 15:57 andrzejku left 15:58 andrzejku joined 16:02 llfourn joined 16:09 zacts joined
moritz I need some idea for my module 16:14
I've published github.com/moritz/Grammar-ErrorReporting earlier today
it's basically a role that produce an "error" method, much like rakudo's "panic", which does some fancy error formating etc. 16:15
and also a FAILGOAL method
now I'm considering how to optionally use the high-water mark method as illustrated in gist.github.com/moritz/9c8e1a5f48f...45a999a66c 16:16
and still have it fit into a mostly unobstrusive interface
should it be a separate role? or
or only the option to use those dynamic variables in error reporting, and force people to write their own methods for setting the dynamic variables? 16:17
smls moritz: I don't suppose it can be made so that name of the nearest parent rule that would have become part of the AST, is printed to the user? 16:26
e.g. if `TOP` calls `<foo>` which calls <.bar>, and an error happens in rule `bar`, it would print "error in rule foo" 16:27
Because `bar` was called with the dot that excludes it from the AST.
moritz smls: I don't know how to do that 16:30
smls: but what's in the gist works pretty well
it's the name of the last rule that advanced the parse and called ws 16:31
16:31 lucasb left
smls How about a trait that can be applied to user-facing rules (i.e. ones whose names should be printed in that way)? 16:35
moritz that could work 16:37
callframe(1).code gives access to the code object
and a trait could mix in a role that we can check 16:38
smls And you could walk the callstack and find the next-highest one that has the trait, right?
moritz yes, though that might get expensive 16:39
16:39 Cabanossi left 16:40 Cabanossi joined
smls Can you merely store a reference to the call stack in $*LASTRULE, and do the walking once an actual error has occured? 16:40
16:40 khw joined
moritz no, at that point the stack frames don't exist anymore 16:42
MasterDuke moritz: it would be nice to see the error output in the example given in README.md for github.com/moritz/Grammar-ErrorReporting 16:43
smls moritz: Approached from the other direction: Maybe the trait initialization code could hack the $*HIGHWATER and $*LASTRULE modification code directly into the rules it's applied to, thus not making the precudure dependent on `ws`? 16:44
moritz smls: don't know if that's possible, but probably worth investigating 16:45
MasterDuke: done
MasterDuke cool 16:46
16:46 andrzejku left
smls indeed :) 16:46
[Coke] If no one is looking at docs.perl6.org right now, I'll get back on that. 16:47
16:47 andrzejku joined
Zoffix I don't think anyone is. There was some unicode problem in MoarVM, so samcv didn't have time. 16:48
[Coke] ok. I am going to skip apt-get and do it the hard way. 16:50
Zoffix++ for getting it as far as it did get.
16:56 Aaronepower left
Geth ecosystem: 24f489f949 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
These modules simply no longer exist

Nothing depends on them, so we are not going to restore them in perl6-community-modules.
Those who are interested should feel free to fork.
16:57
17:00 bonf joined 17:07 domidumont joined, pharv joined
moritz btw I've started Grammar::ErrorReporting with ddt, github.com/kalkin/Ddt 17:08
nice user experience so far 17:09
mst Grammar::ErrorReporting ? something to give useful responses on failed parses? 17:14
pmurias moritz: Grammar::ErrorReporting is GPL licenced? :/
moritz mst: yes, that's the plan
pmurias: what would you prefer?
pmurias: if you want something more liberal, send a PR :-) 17:15
mst that would be excellent
moritz it has annoyed me for quite some time that Perl 6 has all that awesome stuff, but doesn't expose it to the user 17:16
and now I want something that I can use in examples in my book :-) 17:17
and it seems that TimToady++ has started going down that road too, with exposing highwater stuff in failed matches
mst :D 17:18
I found it a little disappointing too, but didn't have time to learn enough to figure out if I could help (sorry)
moritz no worries 17:19
I was much deeper entrenched, and hadn't bothered earlier
[Coke] looks like we also had a doc build going for 24h or so. I *think* I have cleared the blockage, will know in 10s of minutes. 17:23
tyil[m] pmurias: whats wrong with being gpl licensed? 17:26
17:26 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 17:29 Skarsnik_ joined 17:32 Skarsnik left 17:37 Cabanossi left, Skarsnik__ joined 17:39 Aaronepower joined, Cabanossi joined 17:40 Skarsnik_ left 17:42 Skarsnik_ joined 17:43 Skarsnik_ is now known as Skarsnik 17:45 Skarsnik__ left, Skarsnik_ joined 17:48 Skarsnik left
bonf hello, can someone help me out with NativeCall? I'm trying to figure out how to define a fixed size array in a CStruct. 17:48
[Coke] looks like docs has been updated. 17:54
17:54 silug joined
Geth doc: 75bb88a139 | (Will "Coke" Coleda)++ | CONTRIBUTING.md
note npm dep

Closes #1457
18:01
18:03 wamba left
Skarsnik_ bonf, you can't 18:09
18:09 Skarsnik_ is now known as Skarsnik
Skarsnik I mean you can put the size 18:09
*can't
it will just be a CArray[mytype]
Geth doc: f1ae818e9e | (Will "Coke" Coleda)++ | template/footer.html
bust browser cache
18:10 BenGoldberg left
bonf my current solution is having a CArray[uint8] instead of the entire struct :/ 18:10
Skarsnik ? 18:11
You can have class A is repr('CStruct') { has CArray[uint8] $foo} 18:12
18:12 atroxaper left
bonf I mean, let's say my c struct is something like {char str[10]; int n;} 18:12
Skarsnik I should do a gptable bot x) 18:13
well it will be class A { has Pointer[int8] $.str; has int32 $.n}; 18:15
*CArray
not Pointer
bonf let me check again, but I couldn't get it to work this way 18:16
18:16 zakharyas joined 18:17 wamba joined
Skarsnik huggable, module App::GPTrixie 18:18
huggable Skarsnik, nothing found
18:19 zakharyas left
Skarsnik huggable, help 18:19
huggable Skarsnik, nothing found
AlexDaniel buggable, eco App::GPTrixie
buggable AlexDaniel, App::GPTrixie 'Generate NativeCall code from C headers file': github.com/Skarsnik/gptrixie 18:20
Skarsnik thx :)
18:21 zakharyas joined, wamba left
Geth doc: 5a07da9d19 | (Will "Coke" Coleda)++ | xt/words.pws
add words, sort
18:25
doc: 187290e984 | (Will "Coke" Coleda)++ | doc/Language/glossary.pod6
Link to the community page.

Closes #1001
bonf Skarsnik, doesn't work, I get random garbage in my string. It does work if I define 10 "has uint8 $.char1; has uint8 $.char2 ..." instead of the CArray. 18:27
Skarsnik this should not work, since it's a pointer
hm try using HAS ?
nvm 18:28
what is your original struct?
bonf {char str[10]; int n;} 18:29
it's a dummy struct, the actual one has a larger buffer
Skarsnik this is weird. can you to a sizeof() the struct?
18:31 wamba joined
bonf 16 :O 18:31
alignment issue I guess?
leont Yeah, that is sensible alignment 18:32
bonf well nativecall was smart enough to figure it out when I had 10 separate uint8s 18:33
Skarsnik you can do a nativesizeof to compare in perl6 code 18:34
[Coke] ffn 18:35
18:35 wamba left
bonf well nativesizeof is 16 but that doesn't change if I change the array size 18:36
is it important when I init the CArray? 18:37
18:38 TEttinger joined
[Coke] docs not quite right yet; working from shell, but not cron. 18:39
Skarsnik I am confused x) 18:40
18:40 notostraca joined
Skarsnik bonf, I am confused, Did C really inlined all the content of the array in the struct? 18:41
bonf yes 18:42
because it's a char[] and not a char*
pmurias tyil[m]: most of the Perl 6 ecosystem thus far is Artistic 2 18:43
18:43 TEttinger left, raschipi joined
tyil pmurias: thats not an argument against gpl 18:43
I dont see why "but its not what everything else is" is bad tbhh 18:44
unless "everything else" is an actual standard thats being followed
pmurias tyil: the argument is that gpl for a library is potential trouble for someone that will try to use it from a closed source app that he distributes 18:45
Skarsnik bonf, oh right. I think it's something NYI
18:45 ijneb joined
pmurias tyil: everyone using the same license is a benefit as we have less things to worry about 18:45
ijneb What would you guys recommend as a graphics library for writing a raytracer with?
So far I've found Cairo to be the fastest 18:46
tyil I personally dislike closed source very much, so I dont see that as anything bad
bonf Skarsnik, I see
18:46 Zoffix left
tyil if the author dislikes people (ab)using their software for proprietary use, why should they not use the gpl 18:46
moritz in this case, I'm fine with a more liberal license. PRs will be accepted. 18:47
tyil moritz: to me its more of a moral point
bonf Skarsnik, thanks for the help anyway 18:48
tyil if you want to (ab)use software for personal gain only, you can always make it yourself if you hate the community so much
Skarsnik bonf, a workaround could be to create a type that has a nativesize of the array 18:50
pmurias tyil: hating the community? you know that you can contribute to an open source library while using it in a closed source project or even in somethin straight up evil? 18:54
tyil yes, and you are assured of that using gpl 18:55
[Coke] as someone who just went through this on the c ommercial side, the gpl is a non-starter. If that's your goal, then sure, GPL.
tyil the only thing a "more liberal" license would do here is enabling the bad aspects
Skarsnik m: use NativeCall::Types; foo is Int is ctype("long") is repr("P6int") is nativesize(128){ }; my foo $a; say $a.nativesize(); 18:57
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3use NativeCall::Types; foo is Int7⏏5 is ctype("long") is repr("P6int") i
expecting any of:
infix
infix stopper
p…
Skarsnik m: use NativeCall::Types; my native foo is Int is ctype("long") is repr("P6int") is nativesize(128){ }; my foo $a; say $a.nativesize();
camelia 5===SORRY!5=== Error while compiling <tmp>
MVMP6int: Unsupported int size (128bit)
at <tmp>:1
Skarsnik damn 18:58
m: use NativeCall::Types; my native foo is repr("P6int") is nativesize(128){ }; my foo $a; say $a.nativesize();
camelia 5===SORRY!5=== Error while compiling <tmp>
MVMP6int: Unsupported int size (128bit)
at <tmp>:1
ugexe a more liberal license enables more potential usage
Skarsnik m: use NativeCall::Types; my native foo is nativesize(128){ }; my foo $a; say $a.nativesize(); 18:59
camelia 5===SORRY!5=== Error while compiling <tmp>
P6opaque: missing attribute protocol in compose of foo
at <tmp>:1
Skarsnik whatever xD
[Coke] battery about to die here; I'll at least run the doc build manually this evening again if needed, getting it to run in cron again should be doable. 19:00
b2gills m: sub bar(UInt:D @nums) {...}; my UInt:D @nums = (1, 2); bar @nums # stackoverflow.com/q/45774740 19:02
camelia Constraint type check failed in binding to parameter '@nums'; expected UInt but got Array[UInt:D] (Array[UInt:D].new(1, 2))
in sub bar at <tmp> line 1
in block <unit> at <tmp> line 1
pmurias tyil: you can still use gpl code in closed source apps provided you don't distribute your application 19:04
tyil: and in say Perl 5 I would guess most apps aren't distributed as they run on the backend size 19:05
s/size/side
MasterDuke b2gills: looks like rt.perl.org/Ticket/Display.html?id=131381 is related 19:06
Geth ecosystem: 3f8cce4753 | (Moritz Lenz)++ | server/updatelist.pl
use JSON::MaybeXS; closes #362
tyil pmurias: then why not keep it gpl
so the community can benefit from improvements by guarantee of the license
Skarsnik I think only the gplv3 has close for stuff run on vm/interpreter? 19:07
bonf Skarsnik, I'm not sure how to pull off what you're suggesting there, but I just use one big CArray instead of the struct for now 19:08
pmurias tyil: the gpl doesn't guarantee that it just a random annoyance for the people who will want to have say a closed source Perl 6 *desktop app* or whose legal departament doesn't like GPL
19:09 reu joined
b2gills MasterDuke: Thanks, I added a comment pointing to it on stackoverflow.com/q/45774740 19:10
raschipi But the point tyil is making is that this is his exact objective, pmurias.
MasterDuke b2gills++ 19:11
tyil I despise closed source software on moral grounds, you can make a desktop app with open source just fine
and gpl licensed software seems very able to become popular as well
pmurias raschipi: if you want to annoy people you don't like then I agree that GPL has a benefit 19:12
tyil theyre choosing to be annoyed by it, chosing a license isnt done with the intent to annoy
19:12 setty1 joined, notostraca is now known as TEttinger
tyil they are annoyed by it due to a faulty moral compass imo 19:12
but the fact is they are the ones deciding to be annoyed by it, not me or whoever else set the license 19:13
raschipi In my opinion, the entire fault lies on the copyright system itself, it only purpose is to annoy. Anyway, you have a problem with someone who witholds some rights but not with people that hithhold all of them, pmurias? 19:15
tyil raschipi: the copyright system is faulty at its core, yes. the gpl is a way to get to a situation thats better by playing with the rules that have been set 19:17
b2gills I think BSD software has a larger ability to improve all of software, because it can be used in closed source software.
I also like GPL because it makes it harder for companies to “abuse” the freedom like the can with BSD.
Basically I try not to think about it or my neural net might fuse ^w^w^w^w I mean it might give me a headache.
pmurias raschipi: I dislike closed source libraries a lot more and I wouldn't develop any closed source stuff for free 19:18
raschipi: and I would hesitate in even using a closed source library a lot
19:18 bonf left
ugexe programmers can be annoyed at the stuff their overlords make them use 19:19
tyil they can be annoyed at my choice to use tabs for indentation (its objectively the only choice after all), but that doesnt mean I should not use it 19:20
ugexe you said they are choosing it despite being annoyed by it. im saying they are not choosing it in most cases 19:21
additional mind share at the cost of software morality. and the software morality bit only really holds if you have the backing to pursue enforcement 19:23
b2gills If programmers aren't allowed to use GPL code. They might dislike it being GPL, because that makes it so they have to use a worse closed-source version
raschipi If people care about software freedom at all, they certainly should avoid improving software working against it. 19:24
If they are writing closed source software, they are annoying me an tyil, how do you guys suggest we fix that? 19:26
ugexe one gives you the freedom to do what you want, the other gives you the freedom but only under certain circumstances
raschipi There's other type that doesn't give any freedoms, so we're working against it. 19:27
ugexe the answer to no freedom isn't total freedom, but partial freedom? 19:28
pmurias raschipi: do you think hurting closed source software at the expense of open source software is a benefit? 19:29
tyil its a freedom that disallows you taking away freedom from others
dmaestro I prefer to help good people do the right thing, even if it helps "bad" people do the wrong thing. The latter will usually find a way anyway, and we need to encourage the former.
tyil pmurias: you're not hurting closed source software in my opinion, but it is still a benefit even if it were to me
ugexe so is the react license 19:30
dmaestro So I'm for letting the author decide, and not judge too harshly.
raschipi Yes, each author has to make their own mind. 19:31
tyil dmaestro: the gpl is allowing good people to do the right thing without helping the bad people doing the wrong thing
sounds like a win/win to me
ugexe because you are ignoring the price the programmes who DONT get a choice pay
19:31 wamba joined
dmaestro tyil: pmurias already spoke to that. 19:32
tyil they'll get paid more by having to implement an alternative because their boss wanted to be a jerk, ugexe?
ugexe i dont know, im not the boss of every company 19:33
pmurias tyil: as someone who is writing Artistic 2 stuff, GPL licenses on libraries are an annoyance to me
19:33 darutoko left, smls left
ugexe i dont find punishing programmer is worth it just to punish the company 19:33
tyil as someone who wants to work to make a better place, libraries being used in proprietary software are an annoyance to me with a total disrespect for the community of the library 19:34
and end-users
dmaestro Anyone know the status of the 'xor' op? It's mentioned in operators, and seems to work fine, but not documented along with its neighbors 'or' and 'orelse' ... 19:35
tyil ugexe: if they cant use any libs because of gpl fear and find that making everything themselves is too costy they might consider going along with playing nice
ugexe or they will just use your gpl lib anyway because i doubt you have the means to enforce it 19:36
pmurias tyil: if say a contributor to my project can't use the library we are writing together in his closed project because I have used a GPL dependency it's a loss to me
tyil how so?
what are you losing?
ugexe: thats a flaw of the judicial system then, not of the license chosen 19:37
pmurias tyil: he will stop contribute less because he can't use what he helps create
tyil pmurias: or he will reconsider and play nice
pmurias * he will contribute
raschipi ugexe: The Free Software Conservancy will enforce licenses for free software developers, you don't need to worry about that.
tyil its not a given that he'll contribute less either
ugexe my point is you only ever punish the programmer for a theoretical victory
tyil punishing by rewarding more money due to increased development time? 19:38
raschipi ugexe: Punishing closed-source software developers is exactly the objective.
ugexe ifyou dont care what you are programming (ever programmer I know does), sure
tyil raschipi: I dont see it as a punishment unto them at all, they have the choice to use it or not after all, they can talk to their boss if needs be 19:39
if they decide not to use it, thats their choice and the dev in question will be able to rake in more money
if they do decide to use it, the free software ecosystem gains from it 19:40
ugexe thats certainly one way to get less mindshare
raschipi Or they can approach you and buy a licese that's aceptable for them.
tyil or that, then you gain money which you can use to fund further free development, though I'd morally oppose to do that myself :p 19:41
19:42 domidumont left
tyil you can license it LGPL to allow unaltered use in closed source as well 19:42
if they improve it, the improvements will at least come through 19:43
maybe that's an acceptable compromise
dmaestro I agree the LGPL is acceptable, where it applies 19:44
pmurias tyil: I don't buy that increased development time actually helps the developers
tyil thats how hourly wage works 19:45
pmurias nope?
tyil you get paid by the hour, you make more hours so you get paid more 19:46
ugexe by the hour... lol
tyil not much to nope about tha
dmaestro pmurias++ time is intrinsically valuable (and scarce), and it's a shame to waste it
tyil dmaestro: indeed, which is where free software shines
ugexe tyil: you are not from the US I take it?
tyil luckily not 19:47
ijneb why luckily?
ugexe I think in the US the hurdles are much greater than elsewhere
tyil ijneb: I see no benefits in living in the USA 19:48
ijneb Where do you live currently?
tyil Netherlands
where net neutrality is a thing that ISPs actually fight for
ijneb I'm glad I live in the USA as opposed to living in Africa or any 3rd world shithole
but yeah, the US has its own problems too
tyil the USA is no 3rd world shithole?
thats news to me 19:49
ugexe oh come on
ijneb The crimerate is drastically lower than everywhere in South America
tyil from the eyes of people in the first world, the USA is just a laughing stock of stupid decisions but with way too much nukes to actually tell them
ijneb I'm not, by any means, saying the US is perfect (it's definitely not), but the US is actually a pretty great place to live 19:50
tyil ijneb: and the incarceration rate is higher than anywhere in the world
people get arrested for having the wrong kinds of plants in their garden
ugexe its ok to be arrested for plants only if you have more than the alloted amount i guess?
tyil school shootings are a normal thing
ijneb School shootings aren't a normal thing lmao 19:51
tyil gun violence is dramatic
ijneb You're blowing this out of proportion
raschipi Oh, someone from Europe criticizing the uS for terrorist attacks, that's flame i can get behind...
jnthn If I kick the lot of you talking about stuff that's not Perl 6 for the last ages, is that out of proportion?
ijneb meh, I agree 19:52
this isn't on topic at all
tyil jnthn: with all due respect, the license part was about a perl 6 module, but I agree we're getting way off topic here, sorry
jnthn Yeah, fair enough. I'm just cranky today :)
19:52 Cabanossi left
ijneb tyil: No hard feelings 19:53
tyil <3
19:54 Cabanossi joined 20:06 mr-foobar left 20:07 mr-foobar joined, andrzejku left 20:08 andrzejku joined, nadim left
dmaestro Asking again: Anyone know the status of the 'xor' op? It's mentioned in operators, and seems to work fine, but not documented along with its neighbors 'or' and 'orelse' ... 20:09
moritz dmaestro: if it's not documented, that's an omission that should be fixed 20:10
20:10 TreyHarr1 joined 20:11 TreyHarris left, TreyHarr1 is now known as TreyHarris
dmaestro moritz: Thanks, I'll try fixing that when I get a chance :-) 20:14
20:17 nadim joined 20:36 mr-fooba_ joined 20:37 mr-foobar left 20:41 char_var[buffer] joined 20:43 zakharyas left 21:06 Skarsnik left 21:09 mr-fooba_ left 21:33 geekosaur joined 21:37 rindolf left 21:38 Cabanossi left 21:39 Cabanossi joined
Geth doc: dmaestro++ created pull request #1460:
Add documentation of loose xor operator
21:43
22:02 BenGoldberg joined 22:10 andrzejku left 22:13 ufobat left 22:30 wamba left 22:43 nadim left, BenGoldberg left, Rawriful left 22:53 Cabanossi left 22:55 Cabanossi joined 23:03 Rawriful joined 23:08 leont left 23:23 entonian joined
[Coke] dmaestro: thanks for trying to keep the discussion on topic. :) 23:27
23:31 pierre_ left, pierre_ joined 23:39 entonian left 23:44 eliasr left 23:46 araraloren left
Geth doc: c285114582 | (Will "Coke" Coleda)++ | util/update-and-sync
Allow admins to force a build update.

  $ touch ~/force-update
to make the next crontab run kick off a fresh build, even if there isn't a pending commit.
23:47
23:52 Cabanossi left 23:55 Cabanossi joined