»ö« 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.
araraloren morning 00:16
[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 )
[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.
Geth doc: a52ea3d4c8 | (Will "Coke" Coleda)++ | util/xt-recent-aspell.sh
hacky fix to hacky script
02:33
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
Geth doc: 2615849dd0 | (Will "Coke" Coleda)++ | template/search_template.js
remove verbose console output
03:20
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
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
[Coke] working on a fix for Rat not being searchable on the doc site. 04:14
feels like htmlify got faster. 04:16
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
Geth doc: 1437b0ee22 | (Will "Coke" Coleda)++ | util/trigger-rebuild.txt
trigger rebuild
05:10
gfldex [Coke]: nice 06:59
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
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
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?
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?
BooK I guess 08:37
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() ?
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
Skarsnik Hello 09:27
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.
Xliff_ Does Perl 6 support reloading code? 10:27
Skarsnik Not really 10:33
lizmat Xliff: you can mix in roles at runtime, which is almost as good ? 10:37
leont If I have a file descriptor to a pipe, how can I create an IO::Pipe for it? 10:47
lizmat leont: the attribute is called $!on-native-descriptor; 10:51
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
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?
leont I have a suspicion the answer is "it's NYI" 11:07
Both for the synchronous and the asynchronous case 11:08
leont I think it would require inventing IO::Pipe::Async, as well as adding a few small functions to nqp::async* 11:11
jnthn leont: What do you want to do, take a descriptor and use it as stdin for a process or some such? 11:12
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
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
jnthn Yeah, IO::Socket::Async and the way it does its VM binding would be probably a good thing to copy 11:18
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
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
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
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)
(…
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
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
smls Is that a bug? 12:19
moritz no 12:22
smls What's the difference between those method call syntaxes? 12:24
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
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
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.
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
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.
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
Skarsnik_ hm 13:27
leont possibly ::?CLASS 13:28
araraloren smls,actual it is use v6.c; 13:30
smls araraloren: Good point, I should use that instead.
araraloren and you can use v6.d.PREVIEW 13:32
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
andreoss i.e which class is using this role 13:36
Skarsnik Not really since you can compose at run time 13:37
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
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);
andreoss can i turn it off? 13:52
Zoffix Is dnmfarrell aka David Farrell here? 14:00
Zoffix andreoss: not at the moment 14:01
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
Geth ecosystem: 0f6fc54807 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
URI::Encode is gone, move to perl6-community-modules
14:43
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
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
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
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
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
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
smls indeed :) 16:46
[Coke] If no one is looking at docs.perl6.org right now, I'll get back on that. 16:47
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.
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
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
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
Geth doc: 75bb88a139 | (Will "Coke" Coleda)++ | CONTRIBUTING.md
note npm dep

Closes #1457
18:01
Skarsnik_ bonf, you can't 18:09
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
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
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
Skarsnik huggable, module App::GPTrixie 18:18
huggable Skarsnik, nothing found
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 :)
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?
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
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
[Coke] docs not quite right yet; working from shell, but not cron. 18:39
Skarsnik I am confused x) 18:40
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
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
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
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
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
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
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
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
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
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 :)
ijneb tyil: No hard feelings 19:53
tyil <3
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
dmaestro moritz: Thanks, I'll try fixing that when I get a chance :-) 20:14
Geth doc: dmaestro++ created pull request #1460:
Add documentation of loose xor operator
21:43
[Coke] dmaestro: thanks for trying to keep the discussion on topic. :) 23:27
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