»ö« 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.
andreoss exit code 11 00:02
timotimo if it segfaults after a plan and a few "ok" or "nok" lines it's that output
or, er, the other one?
if someone with a hackernews account wants to clarify something: 00:04
there's someone with a piece of code that's really slow 00:05
someone else put a piece of code up that's really really fast, but sadly also wrong
andreoss how do i investigate segfaults with Perl 6? gdb?
timotimo yes, gdb is a good start; you'll likely want to run perl6-gdb-m with the env var MVM_JIT_DISABLE=yes set
timotimo the code is about substituting the first y on each line into a n; sadly, the faster code only replaces the first y in each ~65k block into an n and is therefore not equivalent 00:06
andreoss: when you're attached to moar, there's a few nice debug helpers, but you'll definitely want to rebuild your moarvm to have debug symbols and less optimization, i.e. --debug=3 --optimize=0 in moarvm's Configure.pl
andreoss: one of the debug helpers is MVM_dump_backtrace(tc) - you can pretty much always go "up" a few frames to find one that has tc available 00:07
andreoss is "has $.value" substitutable with `method value` or it will cause problems? 00:11
timotimo if it's not rw, and you're not using introspection on your class, then yeah. should be fine 00:11
m: class A { has $.foo }; say A.^attributes 00:12
camelia (Mu $!foo)
timotimo m: class A { method foo { } }; say A.^attributes
camelia ()
timotimo of course you can keep the attribute $!foo because it doesn't clash with the method
oh
timotimo i forgot about the important thing, which is that if you have "has $.foo" you can set the value for that in the constructor, and the default .perl will also output it 00:13
andreoss m: role F { has $.v = 1 }; role G { method v { 2 }} ; role H does F does G {} ; H.v.say
camelia 2
andreoss m: role F { has $.v = 1 }; role G { method v { 2 }} ; role H does G does F {} ; H.v.say
camelia 2
andreoss m: role Abs { method v {...} }; role F does Abs { has $.v = 1 }; role G does Abs { method v { 2 }} ; role H does G does F {} ; H.v.say 00:14
camelia 2
andreoss $.v is considered as method here
timotimo of course, $.v is sugar for $(self.v)
the attribute is actually $!v 00:15
andreoss but 00:15
jdv79 i kinda agree with mr. miller on a few of his points
andreoss m: role Abs { method v {...} }; role F does Abs { has $.v = 1 }; role G does Abs { has $.v = 2 } ; role H does G does F {} ; H.v.say
camelia Attribute '$!v' conflicts in role composition
in any protect at gen/moar/stage2/NQPCORE.setting line 1033
in block <unit> at <tmp> line 1
andreoss so i can use `has $.v` only once
timotimo m: role WithPriv { has $!whoa }; class A does WithPriv { method foo { say $!whoa } }; A.new.foo 00:16
camelia (Any)
ugexe how else would it work?
jdv79 the curly brace thing, lack of default grammar diagnostics, the odd whatever star rules, the odd itemization rules - they are all a but unseemly
timotimo ^- you can put private attributes into classes with a role
andreoss ugexe: i keep `has $.v = ...` in Abs and can have several of those in different roles 00:18
timotimo jdv79: default grammar diagnostics may actually be coming ~soon
i don't think the whatever star rules are especially odd
zengargoyle must read the miller thing instead of just comments. :)
timotimo if sqrt(*) would be the same as *.sqrt, that'd make whatever stars pretty much useless 00:19
zengargoyle i don't see how grammar can be smart enough to give actual errors.
timotimo <a b c d>.map(* ~ "foo") would do what?
it would give you a function that gives you a four element list of whatever-you-passed concatenated with "foo"
ugexe so use a method - an attribute is not meant to be an analog for a method even though it gets a getter/setter method 00:20
timotimo zengargoyle: it can give you the high water mark, i.e. the furthest it has gotten
jdv79 but iirc its weird that * doesn't work in all cases that $_ does
zengargoyle and isn't that just in the $/ that comes back that failed?
timotimo jdv79: i'd have to look at the article again, or do you have an example ready to paste?
jdv79 i don't. sorry.
zengargoyle i always wondered exactly how * + * worked.... is it left to right? 00:21
or right to left....
timotimo jdv79: the difference between $_ vs * is that with $_ you have explicit curlies to denote the scope
you use the whatever star if the rules for what scope you'll get are clear enough to make them useful 00:22
on top of that, we want to be able to pass just * to a bunch of things, like .roll(*)
a whatever in an argument list doesn't curry to contain the function call it's in, same for .[] and .{} which arguably are also argument lists 00:23
timotimo zengargoyle: i'm not sure why you're confused about * + * tbh? the rule is textual order gives argument order 00:25
if you need something else, use the R metaop if it doesn't cause confusion, or "upgrade" to curlies and $^a, $^b, ...
zengargoyle gotcha, i just think i've only seen multiple * in things like + or *(multiply) where it wasn't clear.... 00:26
timotimo ugh, i think i sound a bit grumpy; please excuse the tone, i've got a bit of a headache
ugexe regex? foo ** 0..2 00:27
timotimo ah, sure. i haven't looked, but i'd expect the docs cover this. if not, doc bug please
timotimo ugexe: i'm confused, what's that an answer to? 00:28
TimToady already has a patch for the default grammar diagnostics, but has to think about ecosystem damage first 00:28
timotimo gives a littl cheer 00:30
zengargoyle i might check, but i find re-reading and re-reading and re-reading docs to see what's changed headache inducing. :)
timotimo that sounds fair, but whatever star currying hasn't changed since i got onto the project :D
timotimo except if you mean only changes in the docs as to what's covered and what isn't 00:30
in which case, yeah, that's fair 00:31
not really something that can be fixed :|
zengargoyle yeah, release and p6delta or such, but for now... "gah, it wasn't there last week" is a PITA. :) 00:32
lookatme morning 00:37
moop_ morning 00:38
zengargoyle woot 00:39
timotimo noot 00:40
zengargoyle m: my @f = 1, 2, * - * ... Inf;say @f[^10] 00:42
camelia (1 2 -1 3 -4 7 -11 18 -29 47)
zengargoyle half of my brain says that should be 1,2,2-1, ... the other half thinks it's just $^a - $^b :S 00:43
timotimo well, it's 1 - 2 which is -1, then it's 2 - -1 which is 3, then it's -1 - 3 which is -4 00:47
er, i think that's what you meant?
zengargoyle yeah, it folds the wrong way... i'd think the first * would grab the 2 and curry and the second * would grab the 1 and it would be 2-1 00:48
andreoss m: sub foo($m) { temp $*t = $m.WHAT }; foo(1).say
camelia Can only use 'temp' on a container
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
timotimo well, you can totally do that with R- 00:49
m: my @f = 1, 2, * R- * ... Inf;say @f[^10]
camelia (1 2 1 -1 -2 -1 1 2 1 -1)
zengargoyle instead it's like 2 * == $^a and $^b and you count the * and go back and find that many arguments.
timotimo the reason the first * gets the 1 and the second * gets the 2 is because the ... operator gives you a "sliding window"
zengargoyle yeah, i think the often use of curry doesn't quite fit in my head. first * shoule be 2, second * should be 1. folding instead of sliding... 00:53
timotimo ah, i see where you're coming from 00:54
yeah, currying is kind of different here from what it's usually used for 00:55
zengargoyle but nah, i haven't thought about it that much yet.... :)
timotimo i.e. a function with two arguments being turned into a func of 1 arg returning another func of 1 arg returning the result
zengargoyle right....
timotimo i'm not actually sure where exactly the name "whatever currying" came from and what the thought process was exactly 00:56
zengargoyle i can get both ways, maybe 'curry' isn't something that should really be used to describe whatever *.
but i haven't really thought about any other cases than the common Inf Seq thing.... or trivial single use whatever in method calls... 00:57
timotimo fun fact: before i made an optimization, we used to generate multiple cascading calls when we parsed multiple whatever stars in one thingie
zengargoyle heh 00:58
timotimo bedtime, bye! 01:11
lookatme timotimo, bye 01:15
TimToady the design docs actually try to avoid the word "currying", and talk about autopriming instead 01:17
but it's hard to get people to use words differently than they do
TimToady partial function applicatoin is not really the same thing as currying, but people confuse them all the time 01:18
TimToady *tion 01:20
TimToady has checking in a grammar failure message patch, now we'll see if it blows up the ecosystem...
zengargoyle TimToady: i'll try and read up on partial application vs currying and begin the crusade to stamp out 'currying' as not quite right. 01:24
Geth doc: 3afe181824 | (Will "Coke" Coleda)++ | doc/Language/faq.pod6
remove trailing whitespace
01:57
doc: 9575dd6798 | (Will "Coke" Coleda)++ | doc/Language/faq.pod6
avoid double the
brimonk How do I get the value for pi (3.141592...) in perl6?
andreoss m: say π 01:58
camelia 3.14159265358979
brimonk m: say pi 01:59
camelia 3.14159265358979
brimonk I think that 'pi' makes more sense.
I don't have a 'π' key on my keyboard :)
lookatme Nobody have a π on keyboard. 02:03
andreoss Greeks do
lookatme :) except geeks 02:05
geekosaur <compose> p i
and Greeks was literal there
lookatme yes, you are right 02:06
andreoss m: sub infix:">>="($a, $b) {$b}; say (1 >>= 2) 02:11
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3sub infix:7⏏5">>="($a, $b) {$b}; say (1 >>= 2)
andreoss m: sub infix:«>>=»($a, $b) {$b}; say (1 >>= 2)
camelia 2
BenGoldberg brimonk, Depending on your keyboard, you might be able to type pi by typing ALT-(277) 02:12
s/277/227/
andreoss this doesn't work in REPL for some reason 02:15
lookatme m: sub infix:<<">>=">>($a, $b) {$b}; say (1 >>= 2) 02:18
camelia 2
andreoss echo 'sub infix:«>>=»($a, $b) {$b}; '; echo ; echo 'say 1 >>= 2;' | perl6
doesnt work if newline involved
lookatme No, because it not get first line 02:21
the sub define
the sub definition
andreoss { echo 'sub infix:«>>=»($a, $b) {$b}; '; echo ; echo 'say (1 >>= 2);'; }| perl6 02:22
my bad
lookatme echo 'sub infix:<<">>=">>($a, $b) {$b}'"\n\n"'say 1 >>= 2;' | perl6 02:24
but this not work too
echo 'sub infix:<<">>=">>($a, $b) {$b}; say 1 >>= 2;' | perl6 02:25
this form work
andreoss I guess it's Readline issue 02:26
lookatme seems like it not see the sub definition
echo 'sub infix:<<">>=">>($a, $b) {$b};'"\n"'say &[+>];'"\n"'say &[>>=]' | perl6 02:28
AlexDaniel lookatme: “Nobody have a π on keyboard.” ?? O_o 02:29
lookatme AlexDaniel, it's my mistake, forget it :) 02:30
AlexDaniel I wonder what has to be done to get rid of the common misconception that keyboard layouts are unmodifiable 02:31
andreoss can i know which type a function defined to return from inside of it? 02:32
::?ROUTINE? 02:33
AlexDaniel m: sub foo(--> Int) { say &?BLOCK.returns }; foo
camelia (Int)
AlexDaniel m: sub foo(--> Int) { say &?ROUTINE.returns }; foo
camelia (Int)
andreoss i see 02:34
AlexDaniel I'm thinking about removing π from a dedicated key (and instead having nothing at all there). 「Compose * p」 is good enough considering how often I need π 02:35
andreoss there's no &?CALLER or something like that? 02:38
ugexe docs.perl6.org/language/5to6-perlfunc#caller 02:39
docs.perl6.org/language/variables#..._variables 02:40
BenGoldberg m: sub foo(--> Int) { say callframe }; foo 02:52
camelia <tmp> at line 1
BenGoldberg m: sub foo(--> Int) { say callframe(0) }; foo
camelia <tmp> at line 1
BenGoldberg m: sub foo(--> Int) { say callframe(-1) }; foo
camelia SETTING::src/core/CallFrame.pm at line 55
BenGoldberg m: sub foo(--> Int) { dd callframe.code }; foo 02:54
camelia Sub+{Callable[Int]} foo = sub foo ( --> Int) { #`(Sub+{Callable[Int]}|61861736) ... }
BenGoldberg m: sub foo(--> Int) { dd callframe.code.returns }; foo
camelia Int
BenGoldberg andreoss, ^
ugexe that and an explanation is in the first link 03:00
andreoss multi's have strange call stacks 03:07
Xliff 'lo 03:14
lookatme o/
Xliff What is the best way to upgrade all perl6 modules on a system? 03:15
$ panda list --installed | grep -v panda | awk -e '{print $1}' | xargs panda install
^^ Should work, but panda doesn't check the version until install time, and installing the same version of a module is a fatal error (and really shouldn't be if more than one module is specified on the command line) 03:16
lookatme Hmm, panda is obsolete
Xliff Yet rakudobrew stll installs it... :p
lookatme why you not use zef ? 03:17
Xliff Coz rakudobrew installs panda. 03:17
lookatme zef --upgrade
Xliff Installing now
lookatme this will update all module
Xliff And zef install doesn't install it in the right path, it looks like. 03:19
Resol Hi there! Is there something special one needs to do to get Proc::Async to work on Windows? 03:21
Trying to run the simple example from the Proc::Async page on docs.perl6.org ... runs fine on MacOS
Doesn't work on Windows 03:22
Both systems using Rakudo 2017.07
lookatme What's the rakudo complaint ? 03:25
Xliff zef wrapper needs "#!/usr/bin/env perl6" at the top or it doesn't run.
lookatme Xliff, It should install module to the local repo
I don't know much about it
Resol, What's the rakudo complaint ? 03:26
Xliff lookatme: It does, but it is not in any shape to be executable at install-time.
I know this because I just had to do it.
1) Installs in wrong place.
Resol Ultimately it says "no such file or directory" 03:27
Xliff 1a) Solution: "cd ~/.rakudobrew/bin; ln -sf ../moar-nom/zef/bin/zef; chmod a+x ~/.rakudobrew/moar-nom/zef/bin/zef"
Xliff 2) Does not invoke perl6 in command line mode, so it doesn't run without "#!/usr/bin/env perl6" at the top of ~/.rakudobrew/moar-nom/zef/bin/zef 03:28
Resol but given that I'm just using 'echo' in the Proc::Async.new('echo', 'foo', 'bar'); that seems odd
lookatme Resol, which example are you trying run? 03:29
Xliff lookatme: Also, the command is "zef upgrade" not "--upgrade" ;)
lookatme Xliff, oh, type mistake, sorry
Resol Hi Lookatme 03:29
Xliff lookatme: No worries. I got it working after all that. 03:30
lookatme Actually I never use that upgrade command
Resol I'm trying to run the echo foo bar one.
To exit type 'exit' or '^D' > my $proc = Proc::Async.new('echo', 'foo', 'bar'); Proc::Async.new(path => "echo", args => ["foo", "bar"], w => Any, enc => "utf8", translate-nl => Bool::True, started => Bool::False) > $proc.stdout.tap(-> $v { print "Output: $v" }, quit => { say 'caught exception ' ~ .^name }); Tap.new > $proc.stderr.tap(-> $v { print "Error: $v" }); Tap.new > my $promise = $proc.start; Promise.new(scheduler => ThreadPoolSche
It works like a champ on my Mac, but not on Windows :-(
I guess I pasted too much into the line 03:31
Xliff Resol: I don't think that example will run on Windows without some changes.
Resol my $proc = Proc::Async.new('echo', 'foo', 'bar');
Hi Xliff ... okay, fair enough ... 03:32
can you recommend the changes?
Resol The error message at the bottom is: 03:33
caught exception X::AdHoc Unhandled exception in code scheduled on thread 6 > no such file or directory
lookatme If you mean the example under `class Proc::Async`, it should be run correctly 03:35
Resol Hi Lookatme ... yes, that's the one. 03:35
Xliff "echo" is not a binary command. It's part of cmd.exe
Resol If i put it into Rakudo on my Mac, works fine.
If I do it on Rakudo on my Windows 10 machine, it doesn't work 03:36
Xliff Yes, because OSX runs a POSIX command line where echo is an actual command..
Resol Okay, so the Proc::Async has to be an executable?
I can try a different executable in place of echo
Xliff try "my $proc = Proc::Async.new('cmd.exe', '/k', 'foo', 'bar');
Or
try "my $proc = Proc::Async.new('cmd.exe /k', 'foo', 'bar'); 03:37
I think the first should work.
I don't have perl6 installed on my Windows host.
lookatme I don't use that win32 installation 03:38
I use bash on win10
Resol Okay, got it ... I swapped out the echo for another executable and it worked fine.
I'll try your way too ...
Xliff Toldja. ;)
lookatme okay, Resol that make sense
Xliff Resol: You must remember, Windows is an entirely different environment than Unix-ish 03:39
So many examples will have to be rewritten for it.
Resol Hi Xliff, yes, I know its different, but I was hoping that the examples would work. 03:40
I'm trying to convince some folks to consider using Perl6 at work, and we're an all Windows shop.
So I started running through some examples ...
I know I'll never convince anyone to give it a try if the examples on the site don't work. 03:41
lookatme yeah, echo is both a binary and a command in bash
Resol And it's not like I can convince them to move to Linux of MacOS.
lookatme we should mark it not working on windows 03:42
Xliff Resol: You could try using CygWin
It compiles on Windows and provides a unix-ish environment.
Most examples from the web page should then be doable.
lookatme bash on win10 is better than Cygwin
Xliff And I think "rakudobrew" will work on it. 03:43
Win 10 bash != bash
Win 10 bash is not a POSIX environment.
Cygwin is.
lookatme no, I mean `bash on win10`
Xliff I know what you meant. :p
lookatme a linux subsystem
Xliff Hrm.
Resol Is there a way for me to mark things as not working as I run through examples?
Xliff If it is a Linux subsustem, then it should run the examples properly. 03:44
Resol Or is it best to ask questions here?
geekosaur the problem there is, if it's a native build, echo is a cmd built-in not a command you can launch that way
Xliff My thinking is that you are still running windows environment by default when you use Proc::Async
geekosaur 'cmd', '/c', 'echo foo bar'
yes, because there is no echo.exe
it is a cmd built-in
Xliff geekosaur: Yeah. I told him that
lookatme Xliff, yeah, it works perfectly like Linux does. That subsystem is base on Ubuntu
Xliff lookatme: Not perfectly, as your initial attempts prove. 03:45
lookatme Xliff, yeah, maybe but better than cmd 03:46
lunch time bye
geekosaur windows is not an os x, it is not a posix, it is not a linix
Xliff Since I think it will start a cmd, not a bash shell
geekosaur yes
lookatme I recommend open that feature on win10. 03:47
geekosaur the first should work 03:48
after the executable, it pretty much doesn't matter how you break it up, it has to be reassembled for windows to pass it anyway 03:49
Resol yes, the 'cmd.exe', '/c', 'echo foo bar' works great
Makes a lot of sense to me now ...
And would be great to be able to update that section of the docs with this little tip. 03:50
Certainly had me scratching my head.
geekosaur if that's on the doc site, you should report a bug so the example can either be rewritten or a windows example provided 03:51
Resol Okay, sure ... how do I report a bug? 03:52
I'm happy to try to do that
geekosaur we need more windows contributors 03:56
that's not really a solution for a windows shop
geekosaur seriously, we are supposed to be leaving behind older perl's unix mindset 03:58
suggesting that people who want to use perl 6 on windows install a bad linux emulation on windows is not a solution
hve another window open and file doc bugs as you run across non-working examples 03:59
this should be _fixed_
Resol Well, for this problem, since it's just a different format of the example, I can add a bug report on it ... I just need to know how to report bugs. 04:00
geekosaur but yes, also ask here and hopefully we can give you examples that work natively 04:01
Resol Gotcha ...
I found the GitHub site and will report the issue now 04:02
geekosaur huggable, doc bugs 04:08
huggable geekosaur, github.com/perl6/doc/issues
abdef1 This is a really simple question -- but how do I exist a subroutine ahead of it actually finishing 04:28
geekosaur return 04:28
geekosaur (this is actually listed as a function/routine, because in perl 6 it works by throwing a control exception. which also means you can use it as a method on the return value!) 04:29
abdef1 ohh 04:30
I didn't know you could return nothing 04:31
thanks
geekosaur righ, just return without a value if you don't have a return value. you can also advertise this in the signature: sub foo (Int --> ) 04:32
abdef1 Is there another way to clear an array 04:40
other than @a = Nil;
lookatme @a = []; 04:43
Xliff "zef upgrade" is busted (it is beta) 05:04
Filing bug.
marcusramberg hey, tried installing perl6 and zef from arch AUR, but seems the zef package has invalid sha256sum, and zef-without-alacryd dies with Malformed UTF-8 at line 6 col 412 06:05
CIAvash[m] marcusramberg: It's easy to install zef manually if you want to github.com/ugexe/zef#manual 06:14
marcusramberg CIAvash[m]: cool, thanks. unfortunately that also fails with the Malformed UTF-8 error. Possibly it's the Rakudo in arch that's to blame. 06:15
gist.github.com/marcusramberg/2b33...71ee5c39f8 06:16
marcusramberg (rakudo-2017.01-1) I see there's another arch package called rakudo-star that is 2017.07-2 06:17
lookatme maybe you can report a zef issue 06:21
marcusramberg think I might try rakudobrew instead of arch packages. the rakudo-star package also failed sha512sums 06:22
CIAvash[m] marcusramberg: The latest version of rakudo on aur is 2017.07, is this the one you installed? aur.archlinux.org/packages/rakudo/ 06:25
marcusramberg CIAvash[m]: yes. aur/rakudo 2017.07-1 (52) 06:25
aur/rakudo-star 2017.07-2 (14) failed to install 06:26
CIAvash[m] hmm, I have that rakudo installed and zef installs without any problems for me 06:26
marcusramberg CIAvash[m]: from the zef package? 06:27
marcusramberg btw aur.archlinux.org/packages/zef/?comments=all seems somone else is also seeing that malformed utf-8 package 06:27
CIAvash[m] Didn't try that one, manually it installs fine
marcusramberg (from the commens)
marcusramberg hmm, maybe it's my env that's causing the utf-8 error then. 06:28
guess I can open an issue on github zif
samcv so i have boyer-moore string search working on MoarVM. 07:00
my $string = 'a' x 100000000 ~ 'b'; nqp::index($string, 'aaaaaaaaaaaaaaaaab', 0);
samcv before 28.0579458s after 2.94111041s 07:00
obviously this is a skewed case that shows off the algorithm
lookatme samcv, so `before` is normal search ? 07:05
samcv before is before i added the algorithm
but both i tested with nqp::index operator just to make sure i know what is going on
and this case is more extreme than others since it causes it to skip all the repeated a's 07:06
lookatme oh I see
samcv but brute force it has to iterate through the needle 'aaaaaaaaaaab' on every single part of the haystack 07:07
lookatme yeah, do we have multi string search algorithm ?
samcv but with the algorithm it does not
samcv what is multi string search algorithm 07:07
lookatme use different algorithm for different case 07:08
samcv spectest passes. neat
uh
well we use memmem which does krunth-morris pratt on linux but ONLY if both are flat blob strings of the SAME storage type
lookatme oh 07:09
samcv if one is a strand then it doesn't work, and if the needle and haystack are different bits, one 8 and one 32 then it doesn't work. and reverts to brute force
we didn't implement it ourselves but relied on memmem in either glibc on linux, or we compiled in freebsd's libc version on mac and windows
(i added that like forget when, 4 months ago?) 07:10
not that long ago
lookatme oh
samcv and that just searches within one blob of memory for another piece of memory
which is why it only works for same type of string, and both have to be flat
CIAvash[m] samcv: Is the slides for the "High End Unicode in Perl 6" talk available somewhere? 07:11
lookatme I'm not get it the different type of string
samcv yep 07:12
cry.nu/YAPC-EU-2017
lookatme Does string have different type ?
samcv start here: cry.nu/YAPC-EU-2017/MoarVM-Internals/#/9 07:12
to learn about moarvm strings
CIAvash[m] samcv: thanks 07:13
samcv from the internals talk. the start of the talk is about collation, so i jumped to the other part
lookatme oh
samcv collation probably should have come last, but
andreoss samcv: this link doesn't work for some reason 07:20
ufobat both work for me 07:27
samcv andreoss, maybe copy it manually? 07:32
and make you sure have javascript enabled
andreoss I guess it uses spdy or something like that which icecat/iceweasel doesn't support 07:33
moritz upgrade to HTTP/2 and other fancy stuff should be only after successful transport negotiation 07:40
works for me in firefox and chromium
samcv cool knuth morris pratt algorithm is now PR'd :) 07:49
just randomly did that cause i was bored
but it turned out to be productive
andreoss works in midori though 07:56
moritz samcv++ # boredom-driven algorithm implementation :-) 08:09
the true hallmark of a software geek
anybody want to implement <commit> in regexes? You'll earn a special mention in my upcoming book! :-) 08:11
moritz decided not to do it himeself because morphing the language into what I want it to be for the book is a sure way to slip deadlines 08:12
samcv <commit> ? 08:13
moritz if the regex backtracks past a <commit> rule, it'll fail, and recursively fail all calling regexes too 08:14
much like the [ expected || <.panic("oh noes")> ] pattern 08:15
samcv do we not have that yet?
is that something planned NYI?
moritz it's been specced all along, but not yet implemented
it's basically a more declarative way of reporting parse errors in regexes, and I'd really like to include it in my chapter on generating good parse error messages 08:16
but it needs to work first :-)
andreoss how do i re-export symbols? 08:25
zengargoyle samcv++ woot faster 08:34
samcv :-)
zengargoyle andreoss: what do you mean by 're-export symbols'? 08:46
andreoss the thing :EXPORT should do, i.e make imported stuff exportable 08:47
zengargoyle so B uses C which exports c() into B, and then if A uses B you still want c() in A? 08:49
andreoss yes 08:50
lookatme This not implement in Perl 6 08:50
andreoss i could re-export classes by augmenting them, is there a work-around for roles? 08:51
zengargoyle i think of B implementing it's own export function so it can export it's own exports and export the c(). 08:55
zengargoyle how hacky are you willing to try? 09:00
zengargoyle this line of questioning reminds me that i still want to know how to Test a Class/Module/Package 's internal functions that are private and not exported. 09:05
you can't test my-bit-of-refactored-code() unless it's actually exported so you can see it.... 09:06
unlike p5 where almost anything is possible if you try hard enough. i guess i don't know the appropriate magic yet. :) 09:08
samcv hmm i wonder if the spec has an NFKC regex adverb 09:37
samcv if anyone saw my unicode talk or saw the slides these font varients cry.nu/YAPC-EU-2017/High-End-Unicode/#/18 when gotten the NFKC forms get compatibility form 09:38
m: "ℍ".NFKC.Str.say
camelia H
samcv even if there isn't one i will probably want to add it 09:39
yeah :nfkc is one option 09:40
so is :nfd and :nfc and :nfg. not sure how nfc would be different than nfc... but eh design specs
samcv and :nfkd just sounds like ignoremark + nfkc. i think they're exactly the same 09:41
samcv though i guess you save one step since it's combined into one 09:44
i'm not sure how to add regex adverbs in the grammar 09:46
if someone tells me how i will add it to moarvm 09:47
samcv oh nice i just found the `file-icons` package for Atom editor 09:48
it adds logos for each filetype to the tabs. and perl6 files show as a butterfly 09:49
pics: i.imgur.com/M4s6xgW.png 09:50
zengargoyle samcv: how is Atom? i am long-long-long time vi/text user and fear GUI like things.... 10:01
samcv i like it
there's a readme for setting it up for perl 6 github.com/perl6/Atom-as-a-Perl6-IDE
i'll have to add this module i found for the icons to the list
zengargoyle i might have to give it a try... see if my brain can handle it without screaming OMG it's not vim all the time. :P 10:08
sena_kun if my role A does role B, it cannot use attributes of B, right? And there is no way to overcome it? 10:19
zengargoyle m: my role A { has $.a; }; my role B does A { has $.b; }; my class C does A { has $.c; method foo() { say self.a }; }; my $c = C.new; $c.foo(); 10:25
camelia (Any)
zengargoyle m: my role A { has $.a = "woot"; }; my role B does A { has $.b; }; my class C does A { has $.c; method foo() { say self.a }; }; my $c = C.new; $c.foo(); 10:26
camelia woot
sena_kun oh, self.a actually works, because it's a method... I've tried $! instead. thanks, zengargoyle!
moritz and if you need write access, you can model that through a private "is rw" method, iirc 10:27
zengargoyle role and class are mostly same, there is some difference, but mostly same. 10:29
zengargoyle moritz: i swear i'll actually read my dead tree p6 fundamentals :) 10:32
moritz zengargoyle: though it doesn't talk about roles in that detail 10:37
moritz Perl 6 OO is a topic that can fill a book on its own :-) 10:41
zengargoyle moritz: nah, that was like an aside... book looks really nice, but i probably read your RSS feed. :) 10:43
zengargoyle really liked the colored graphs and diagrams and code highlighting and such on multiple flipping-through looks. 10:46
andrzejku moritz, whats happend to your book?:D
moritz andrzejku: to which? 10:48
andrzejku by example
moritz andrzejku: it's now called "Perl 6 Fundamentals", and has been published by Apress 10:48
andrzejku moritz, is it the same? 10:49
stmuk how's the formating in the kindle version? wondering whether to get ebook or physical? 10:50
zengargoyle the dead tree is really pretty looking. :)
moritz andrzejku: apress took over when it was 80% finished
andrzejku moritz, ohh 10:51
moritz andrzejku: so there's a bit more in P6F than in "by examples", and then there's typesetting, proof reading etc
stmuk: I only know the PDF and the dead tree version, not the kindle version, so I can't comment
andrzejku moritz, I still prefer Perl6 by Example :D 10:52
moritz andrzejku: it describes the book better, but the publisher was afraid it sounded like it contained only examples 10:53
stmuk I wonder if Wendy is bringing any copies to Swiss Workshop 10:54
moritz she bought 20 copies in bulk and brought them to TPC in Amsterdam, but I heard they were all sold/given away 10:55
but if she learns there is interest, maybe she places a second bulk order :-)
stmuk: maybe shoot her an email and ask? :-)
zengargoyle that's really cool. :) 10:57
moritz and apress will also publish my Perl 6 Regex book 10:58
likely Q1/Q2 2018
moritz manuscript submission deadline is Dec. 1 for me :-) 10:58
andrzejku moritz, I don't like Apress publisher :P 10:59
moritz, my favorite one is No starch press 11:00
moritz andrzejku: I tried :-) they turned down the idea 11:01
too small of a market, they said
andrzejku moritz, ohh but they announce very cool things 11:02
zengargoyle let's teach them a lesson raar :P
moritz has no hard feelings 11:03
andrzejku moritz, I think it is better to print book undergound
moritz, and then sell them out
moritz I greatly appreciate any publisher who actually takes the time to consider a proposal, and respond
from many publishers I never got any answer
andrzejku: I considered this, but I don't really enjoy publishing as much as I enjoy writing 11:04
zengargoyle i can't even imagine the publish part, so moritz++
andrzejku :) 11:05
www.nostarch.com/gtfo
moritz also having a book published by a major house makes for a *very* nice line on a resume
even if it often doesn't pay off financally
ckraniak I figured out a way to re-export anyway
zengargoyle ckraniak: ??? 11:07
stmuk andrzejku: but the dead trees doesn't execute :) 11:08
ckraniak Not great but better than flat nothing 11:09
ckraniak Put use in an arbitrary package 11:09
zengargoyle heh, i have this seed of an idea of a P6 module with POD6 that executes and self-documents and is a 'book' of sorts... 11:10
ckraniak So if module C has our sub foo()
zengargoyle so if it compiles and tests OK it's a good book. :) 11:11
ckraniak B can do "package hammerspace { use B::C; }
... our sub foo() is export { B::C::foo(); } 11:12
zengargoyle ckraniak: did you change your nick?
ckraniak ?
It logged me off for a bit yesterday but no
zengargoyle ah, nm, somebody had very similar question a short while ago. 11:13
ckraniak I had that question day before. Its why I have an answer now :-)
zengargoyle i thought you were somebody else..... :) 11:14
zengargoyle how did you do it? somebody else might be interested if you figured something out.... 11:14
ckraniak ... 11:15
see above
Its the functionality I was mostly after for re-exporting
zengargoyle ah, gotcha. i think the person/question i was thinking about wanted automagic A uses B (exports c()) and then F uses A and they want c() in F (because A re-exported). 11:19
ckraniak Yeah I don't know that
zengargoyle yeah, my bad, it just sounded so similar. 11:20
ckraniak Maybe twiddling with OUR:: could get you there but I did not try that
zengargoyle and i missed your day-ago.
araraloren Perl 5 has similar feature, I think 11:22
zengargoyle yes, i'm pretty sure it's doable if you try hard enough, but there's no magic 'use B <foo> and re-export' syntax or anything that makes it trivial.
ckraniak S-11 talked about a possible :EXPORT tag I think 11:23
Like "use B :EXPORT" 11:24
zengargoyle heh, :EXPORT was what the previous questioner mentioned... :)
i guess they tried it and it didn't work yet.... 11:25
pmurias zengargoyle: re self executing book, you mean something like literate programming? 11:25
ckraniak I tried it also and it does not work 11:26
:-)
zengargoyle pmurias: yeah, just half baked idea since POD and code and #| comments and all that is code and introspectable and it seems neat to have a book that self-tests and self-publishes... 11:28
zengargoyle it's just an extension of having 'MAIN("test");" to run tests and 'MAIN("doc"); 11:30
zengargoyle or Notebooks if we can ever do that sort of thing. 11:33
zengargoyle couldn't figure out how to make $=data actually work.... if POD6 is ever not NYI it seems possible. 11:35
zengargoyle the making $=data be available by default, i had module that parsed and created data sections but couldn't navigate nqp and settings and just making $=data a thing that just worked. :/ 11:41
pmurias zengargoyle: is POD6 really NYI? I remember using it?
moritz it sorta kinda works, occasionally :-)
zengargoyle pmurias: by the spec..... there's tons of neat things that don't exist yet.
moritz docs.perl6.org is all rendered from pod6 sources, so it exists at least that much 11:42
but integration with the rest of the language could be better
zengargoyle there's like =data
and =alias
where you can have your <DATA> sections named like many p5 modules and just get at them with $=data<section> 11:43
pmurias wonders what would encourage more people to work on docs.perl6.org 11:45
on the content specifically
zengargoyle nice deltas so you don't have to re-read them over and over and over. 11:47
some better than "use github and clicky at things" instructions/workflow.
and easy 'perl6 someprog my-doc' so you can proof your edits. 11:48
i need to be able to do a quick look at all of my L<> I<> B<> yadda POD formatting to make sure it's decent and working before thinking about a PR request. 11:52
modulo spelling mistakes or such...
pmurias zengargoyle: by nice deltas you mean the sort of thing you have on say wikipedia with the changes highlighed in the rendered document rather then a diff of the source code? 11:53
zengargoyle pmurias: yeah, sounds about right.... i just know i really don't want to go and read the docs for the N-th time to try and notice that foo() has now been documented. 11:54
they could have the answer now, but my brain will go "i've read this already" and just skip over it even if there's a new paragraph with what i wanted to know. 11:56
zengargoyle pmurias: maybe my ideal is along the lines of perl5delta, where you read a big long thing that tells you all the new things. 12:02
or even a weekly or monthly like diff of docs...
zengargoyle guesses github would show me if i tried hard enough. :) 12:03
pmurias zengargoyle: hand crafting a list of changes for the docs doesn't seem an optimal use of time 12:04
zengargoyle yeah, just pondering. i haven't figured out the really easy 'just start vim and edit and fix' vs the pointy-clicky. 12:06
i guess i'd like it like "your patch is good, but update the CHANGES or Contributors section" 12:08
so you'd commit "some doc thingy" and CHANGES:"documented this thingy" at the same time. 12:09
and then there's the document vs spec thing... i have quite a few cut-n-paste snippets of wisdom, but should they go in documentation? 12:12
are they spec? will they change?
pmurias zengargoyle: having people update a CHANGES file seems like an extra barrier 12:13
zengargoyle yeah... it's like the new ecosystem addition thing i see now where there is clicky-these-checkboxes that makes me fear adding something new to ecosystem. 12:15
zengargoyle has totally had the "add yourself to contributor's list" as patch rejection. 12:16
and a good "this is how to fix docs" doc would be handy. some expectations and desired things vs "just click the edit button". 12:18
nine Well the Unicode consortium may have not anticipated the use in programming languages all that well 12:19
zengargoyle and suffer the wrath of the perl 6 gods if you get it wrong.
pmurias nine: ? 12:21
zengargoyle no one expects the perl 6 unicode inquisition. 12:22
nine pmurias: sorry, disregard :) 12:29
zengargoyle pmurias: i guess if there was like a p6hacking doc that laid out a workflow with git/hub/whatever and said "add your change", "good commit message", and "preview/check your stuff", and 'push'. 12:30
i'd be more up to writing docs. i don't want to fumble through. 12:31
zengargoyle p5 hacking was 'read perlhack' and email patch. i'm sure git changes that a bit. but a checklist or workflow or explicit direction and a set of expectations is better than "click the edit button"... IMHO 12:34
nine zengargoyle: I'm sure you are aware of rakudo/docs/ChangeLog? 12:36
zengargoyle perldoc perlhack --- This document explains how Perl development works. It includes details
nine zengargoyle: would you be willing to write such a document? 12:37
zengargoyle maybe? i'm in the midst of figuring out how to use 'hub' and other git thingys to just hack hack hack and push a PR. 12:39
zengargoyle hates pointy-clicky-thingns.... not the best for that. 12:41
raschipi zengargoyle: Do you know git? Github doesn't take away the git interface. You can clone the repo locally and then push to the github repo...
All without clicking a single time.
zengargoyle raschipi: i have commit, i'm just not gonna use it except for the most minor of things. :) 12:42
zengargoyle i'd still rather do a PR for something and let others check or approve than just commit myself. 12:43
zengargoyle i think the 'hub' program makes fork/fix/PR an easy process, but i haven't quite tried and worked everything out just yet. 12:44
raschipi I see. You could at least commit to your own ghithub fork and then only have to click to send the pull request. 12:45
Geth doc: 4c3df89574 | rafaelschipiura++ (committed by Zoffix Znet) | doc/Language/syntax.pod6
Regarding separators in if/elsif/else blocks. (#1439)

  * Update syntax.pod6
  * Added back in mention of optional semicolons
  * Restored original wording
... (10 more lines)
12:49
zengargoyle raschipi: yeah, i have done so... my 'easy' is `diff ../perl.orig .` | mail -s [email@hidden.address] like, not OMG click buttons. 12:50
raschipi Thanks Zoffix. 12:52
zengargoyle and either way, i think an actual 'perl6hack' sort of doc that describes some best workflow types and expectations that anyone (even the 12 year old girl) could follow and get a thumbs-up would help in the "get people to write documentation". 12:53
raschipi zengargoyle: I think POD6 has to be implemented toghether with that, doesn't it? Because having the tools but nothing to display with them would be a problem... 12:55
zengargoyle yeah, that's the at least how to view your POD as text to make sure you didn't do anything terribly stupid before you commit or PR, because who knows actually how the HTML is going to render in the end. 13:00
nadim zengargoyle: Apropos serialization and remoting data. As I wrote yesterday the biggest issue is re-creating objects on the receiving side, it's dead slow. I may be doing something wrong though. Another issue is that once serialized the data can be over the limit of a one packet size, so we also need a system to split packets, send them, and put them together in the right order. I think there's nothing for that, so it must be build from 13:11
yoleaux 15 Aug 2017 23:56Z <zengargoyle> nadim: thanks, and good night.
nadim scratch.
timotimo: ready for some testing? i need some feedback. 13:13
zengargoyle nadim: lol, i'm totally quilty of "my data fits in UDP packet". :) 13:17
zengargoyle s/quilty/guilty/ 13:18
nadim :)
zengargoyle chuckles that my UDP packets were JUMBO so 9k :P 13:20
zengargoyle nadim: fatal flaw in many things is thinking that UDP is/will be better than TCP. YMMV. 13:32
you will eventually end up re-implementing TCP on your UDP and doing it poorly. most likely... :)
there are exceptions.... 13:33
Ulti timotimo: yeah they also then went ahead and used the lang anyway :D 13:34
but unfortunately are having immediate problems with OpenSSL :(
www.reddit.com/r/programming/comme...h=1fc32902
Ulti its kind of lame that https is almost certainly a big thing people will want to do but making bindings to openssl is always a PIA even the Perl 5 module often gets wedged just because of system specific weirdness 13:37
Ulti I think they might be on windows given they're saying DLL 13:37
which is an extra bag of fun 13:38
timotimo huh, but we do have openssl don.t we? 13:39
Ulti yeah
but its failing to install for them
timotimo urgh
zengargoyle warns the world not to use openssh for high speed large data transfer.
Ulti in two different ways :/ which is hardly the most reassuring intro
timotimo sorry nadim, my productive output has been miniscule over the last days, i'm not sure how much i can look into it 13:40
it's true that using google.com to test https isn't the best of ideas 13:42
Ulti yeah they are also having issues even if they dont test :S which is next level uhoh 13:43
timotimo it definitely is
Ulti does Rakudo* come with this stuff? 13:44
thats perhaps a win
zengargoyle explains that openssh has it's own buffering scheme that bypasses the OS TCP buffering scheme and will not fill up a 10Gbs pipe over long banwith delay paths.... use the patched hpn-ssh, or Grid-FTP. 13:45
Ulti who are you explaining to? 13:46
zengargoyle general dis on openssh :) 13:47
zengargoyle if you go fast and long distance, openssh will bite you. 13:48
if you are slow or close, you'll never notice, so openssh ahoy! 13:49
Ulti if you want to go fast you want to use one of these things that opens a tonne of TCP connections and uses all of them 13:50
zengargoyle Ulti: yes, but no.
Ulti if its local network point to point I usually tar netcat and dont even bother with compression
zengargoyle 10g on single connection over long distance (continent-size-distance) is entirely possible, just not with openssh, 13:51
timotimo ah they couldn't use openssl because of work network requiring proxies and such 13:52
zengargoyle it's bandwith delay product and openssh buffers not being smart. it's tuned for local network or slow pipes.
Ulti timotimo: orly 13:53
10g isnt much data though
try 10TB
zengargoyle you need enough buffer to fill 2x pipe. so it gets to the end and you get an ACK. 13:54
Ulti wanders off because he should be working not having fun ;P
zengargoyle plain openssh doesn't have big enough buffer to do 10G halfway around the world.
Ulti: that's 10Gb/s continuous machine-to-machine around half the globe. openssh ain't gonna do that. 13:57
zengargoyle it doesn't have the buffer space to acomplish such a feat. :) 13:57
zengargoyle goes don't get me started on MS TCP stack brokeness. :P 14:01
zengargoyle spent a few years doing high performance research computing networking and constantly curses my plebian AT&T consumer DSL. :) 14:04
Skarsnik Hello 15:24
nadim, did you resolve your issue with has/HAS in ddt?
b2gills .tell evanm TimToady recently made Perl 6 Grammars print an error message if it fails to .parse github.com/rakudo/rakudo/commit/9501edae4f 15:29
yoleaux b2gills: I'll pass your message to evanm.
mspo yay 15:37
I'm glad grammars improves
it's a big feature and people want it *tight*
TimToady m: sub foo (Int --> ) { say 'ok' }; foo(10) 15:51
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed return value
at <tmp>:1
------> 3sub foo (Int --> 7⏏5) { say 'ok' }; foo(10)
TimToady m: sub foo (Int --> Nil) { say 'ok' }; foo(10)
camelia ok
TimToady geekosaur: ^^^ 15:52
you have to be explicit about returning nothing
sena_kun now the curious one: hwo to shuffle a list? 16:06
timotimo you .pick(*) it 16:07
sena_kun it won't repeat values. great, thanks. 16:08
TimToady you use roll(*) if you want an infinite list with repeats
as in, rolling an infinite number of dice 16:09
sena_kun I know it is infinite, but I can slice by the list size to get a shuffle and it works perfectly.
or just cut it with `.list` or something.
TimToady .roll won't give you a shuffle though, since it can repeat 16:23
yoleaux e.g. .roll 1d12
mspo wait is there a D&D bot in here? 16:26
sena_kun .roll 2d6
yoleaux 2 + 1 = 3
sena_kun .roll 1d12 16:26
yoleaux 10
mspo crit fail 16:27
sena_kun yeah, 3 is not good. 16:28
mspo m: .roll 1d12
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3.roll7⏏5 1d12
expecting any of:
infix
infix stopper
statement end
statement modifier
statement modif…
sena_kun but 10/12 is better.
sena_kun m: (^12).roll(1) 16:28
camelia ( no output )
sena_kun m: say (^12).roll(1)
camelia (2)
sena_kun ugh. 16:29
not my day.
lizmat m: (^12).roll # 1 is default and returns a scalar value
camelia ( no output )
mspo m: say (1,2,3,4,5).roll(2)
camelia (1 5)
lizmat m: say (^12).roll # 1 is default and returns a scalar value
camelia 11
lizmat m: dd (^12).roll # 1 is default and returns a scalar value
camelia 8
mspo m: say (1,2,3,4,5).roll(2).WHAT 16:30
camelia (Seq)
mspo m: say (1,2,3,4,5).WHAT
camelia (List)
lizmat if you specify a value, you will always get a Seq
mspo should there be sigils for lists and bags and seqs and stuff? 16:33
b2gills @ is for Positional values like a List or a Seq, and% is for Associative values like a Set or a Bag 16:36
my @a := (1,2,3); say @a.^name
m: my @a := (1,2,3); say @a.^name
camelia List
mspo m: my @a = (1,2,3); say @a.WHAT 16:37
camelia (Array)
mspo m: my @a := (1,2,3); say @a.WHAT
camelia (List)
b2gills s/' or a Seq'//; # actually Seq isn't a Positional, just ignore that part 16:38
mspo is a set positional?
b2gills m: say Set.^roles 16:39
camelia ((Setty) (QuantHash) (Associative))
b2gills a Set is more like a Hash than an Array, that is why you often have to call `.keys` on it 16:40
Positional is for ordered values that can be accessed at random indexes (so not Seq) 16:41
A Set is unordered 16:42
AlexDaniel say roll ^12 16:52
evalable6 ()
AlexDaniel :/
say roll 2, ^6
evalable6 (2 2)
AlexDaniel say roll 2, ^6
evalable6 (5 0)
AlexDaniel here's your D&D bot
sena_kun say roll 1, ^12 16:53
evalable6 (0)
sena_kun life is scary.
AlexDaniel why so? 16:54
mspo AlexDaniel: rolling 0? :)
sena_kun :)
raschipi say roll 1, ^100
evalable6 (90)
mspo m: say roll 2, ^5 + 1
camelia (2 2)
mspo m: say roll 2, ^5, + 1 16:55
camelia (1 ^5)
mspo m: say (roll 2 ^5) + 1
camelia one(1, 1)
Skarsnik m: say roll 1, 1.20;
camelia (1.2)
Skarsnik m: say roll 1, 1..20;
camelia (10)
raschipi say ^5 + 1
evalable6 1..^6
mspo m: say 1 + roll 2, ^5
camelia 3
mspo m: say 1 + roll 2, ^5
camelia 3
mspo m: say 1 + roll 2, ^5
camelia 3
mspo huh
raschipi + knows how to operate on ranges, but not on seqs 16:56
AlexDaniel say roll 2, ^6 +1
evalable6 (6 4)
raschipi m: for ^10 {say roll 2, ^6 +1} 16:57
camelia (1 3)
(6 1)
(1 4)
(3 5)
(1 5)
(2 6)
(1 1)
(4 6)
(3 4)
(3 5)
mspo m: (1 .. 6).roll(1)
camelia ( no output )
mspo m: (1 ... 6).roll(1)
camelia ( no output )
raschipi m: (1 ... 6).roll(1).say 16:58
camelia (3)
mspo yeah there it is
mspo m: (1 ... 6).roll(1).Int.say 16:58
camelia 1
AlexDaniel say roll 2, (1…6)
evalable6 (1 1)
b2gills m: say 1 X+ roll 2, ^5
camelia (3 2)
raschipi m: say ^5 + 1 == 1..^6 16:59
camelia True
AlexDaniel say roll 2, ‘⚀’..‘⚅’
evalable6 (⚂ ⚂)
TimToady m: say roll 2, 1 + ^6 17:00
camelia (4 6)
TimToady m: say roll 5, 1 + ^6
camelia (3 6 3 1 6)
TimToady hmm, I'll go for a full house
m: say roll 5, '⚀' .. '⚅' 17:01
camelia (⚃ ⚅ ⚃ ⚁ ⚅)
TimToady I'll go for a full house again :)
m: say roll 1, '⚀' .. '⚅' 17:02
camelia (⚂)
mspo TimToady: good use of the dice
TimToady m: say roll 1, '⚀' .. '⚅'
camelia (⚃)
mspo there are cards in utf8, I think
TimToady got it!
TimToady indeed, and they're used in rosettacode examples 17:02
mspo m: say 🂡 ... 🂮 17:02
camelia 5===SORRY!5===
Argument to "say" seems to be malformed
at <tmp>:1
------> 3say7⏏5 🂡 ... 🂮
Bogus postfix
at <tmp>:1
------> 3say 7⏏5🂡 ... 🂮
expecting any of:
infix
infix stopper
p…
mspo aww
TimToady quotes needed
mspo m: say "🂡" ... "🂮" 17:03
camelia (🂡 🂢 🂣 🂤 🂥 🂦 🂧 🂨 🂩 🂪 🂫 🂬 🂭 🂮)
mspo love that
m: say "🂡" ... "🃞"
camelia (🂡 🂢 🂣 🂤 🂥 🂦 🂧 🂨 🂩 🂪 🂫 🂬 🂭 🂮 🂯 🂰 🂱 🂲 🂳 🂴 🂵 🂶 🂷 🂸 🂹 🂺 🂻 🂼 🂽 🂾 🂿 🃀 🃁 🃂 🃃 🃄 🃅 🃆 🃇 🃈 🃉 🃊 🃋 🃌 🃍 🃎 🃏 🃐 🃑 🃒 …
TimToady hope your game wants 🂬
Skarsnik thx hexchat for showing me only square xD
mspo m: say "🂡" ... "🃞".roll(5)
camelia (🂡 🂢 🂣 🂤 🂥 🂦 🂧 🂨 🂩 🂪 🂫 🂬 🂭 🂮 🂯 🂰 🂱 🂲 🂳 🂴 🂵 🂶 🂷 🂸 🂹 🂺 🂻 🂼 🂽 🂾 🂿 🃀 🃁 🃂 🃃 🃄 🃅 🃆 🃇 🃈 🃉 🃊 🃋 🃌 🃍 🃎 🃏 🃐 🃑 🃒 …
AlexDaniel .tell moritz 🙏 unicode in irc log
yoleaux AlexDaniel: I'll pass your message to moritz.
Skarsnik not sure if this could show properly on a gtk2 client 17:04
raschipi m: say ('🂡' .. '🂮').List.elems #Hum, something is wrong. 17:04
camelia 14
mspo TimToady: a knight?
TimToady .u 🂬
yoleaux U+1F0AC PLAYING CARD KNIGHT OF SPADES [So] (🂬)
raschipi m: say ('🂡' .. '🃞').List.elems 17:04
camelia 62
mspo oh crap extra cards!
TimToady yup
raschipi Aren't there 52 cards in a deck?
mspo depends on the deck 17:05
germany uses cups and bells and stuff
TimToady not in a Pinochle deck :)
mspo so we need a sequence that skips knights and jokers at least
TimToady Rook cards have 14 per suit too
raschipi I imagined it wasn't a standard deck. Is this defined by Unicode? 17:06
TimToady Flinch cards have 15
mspo ranguard: yeah
raschipi: yeah
raschipi u: 🂯 17:06
unicodable6 raschipi, U+1F0AF <reserved> [Cn] (🂯)
ab6tract o/ 17:07
mspo method skip(--> TODO)
raschipi u: 🂿
unicodable6 raschipi, U+1F0BF PLAYING CARD RED JOKER [So] (🂿)
ab6tract so i have been playing around with Evan Miller's proc async example
my apologies if this has been discussed (to death) before, but
gist.github.com/ab5tract/20d7a03e5...b5e0174a95
Skarsnik hm, what font are you using?
TimToady m: say ("🂡" ... "🃞").grep: *.uniname.match(/KNIGHT/).not 17:08
camelia (🂡 🂢 🂣 🂤 🂥 🂦 🂧 🂨 🂩 🂪 🂫 🂭 🂮 🂯 🂰 🂱 🂲 🂳 🂴 🂵 🂶 🂷 🂸 🂹 🂺 🂻 🂽 🂾 🂿 🃀 🃁 🃂 🃃 🃄 🃅 🃆 🃇 🃈 🃉 🃊 🃋 🃍 🃎 🃏 🃐 🃑 🃒 🃓 🃔 🃕 …
AlexDaniel u: playing card
unicodable6 AlexDaniel, U+1F0A0 PLAYING CARD BACK [So] (🂠)
AlexDaniel, U+1F0A1 PLAYING CARD ACE OF SPADES [So] (🂡)
b2gills There is a "\c[PLAYING CARD TRUMP-21]"
unicodable6 AlexDaniel, 83 characters in total: gist.github.com/dea6aa7044280592aa...e51e074e64
AlexDaniel b2gills: right after PLAYING CARD FOOL
ab6tract I found it a bit surprising that you cannot cleanly combine Proc::Async stdout/stderr with a whenever block 17:09
mspo m: my $uscards = ("🂡" ... "🂫"); $uscards.append("🂭" ... "🂮"); say $uscards; 17:10
camelia Cannot resolve caller append(Seq: Seq); none of these signatures match:
(Any:U \SELF: |values is raw)
in block <unit> at <tmp> line 1
mspo m: my $uscards = ("🂡" ... "🂫"); $uscards.push("🂭" ... "🂮"); say $uscards; 17:11
camelia Cannot resolve caller push(Seq: Seq); none of these signatures match:
(Any:U \SELF: |values is raw)
in block <unit> at <tmp> line 1
mspo okay nevermind
b2gills m: my $uscards = ("🂡" ... "🂫").Array; $uscards.append("🂭" ... "🂮"); say $uscards;
camelia [🂡 🂢 🂣 🂤 🂥 🂦 🂧 🂨 🂩 🂪 🂫 🂭 🂮]
AlexDaniel ab6tract: I'm not entirely sure what you are trying to say. Why do you have to tap? For example, this is how I'm using it: github.com/perl6/whateverable/blob...#L175-L195
ab6tract AlexDaniel: hmm, without that line I get a broken Promise 17:13
"To avoid data races, you must tap stdout before running the process"
timotimo you put $proc.start before the $proc.stdout lines?
ab6tract AlexDaniel: I see in your example that react is not within a start block. I didn't realize that this is possible
AlexDaniel ab6tract: yes, so “whenever $proc.stdout” goes before “whenever $proc.start” I think
ab6tract sorry? i declare the react block before i await $proc.start 17:14
AlexDaniel ab6tract: that's the point. It will block until all promises are kept, or until you call “done”
ab6tract oh, ok now I'm following you 17:15
timotimo the react will first run the code "inside it", so it's quite possible that you're actually legit racing there 17:16
AlexDaniel the race that I see is that it can “$proc.start” before “whenever $proc.stdout” 17:17
which is what XXX comment talks about, I guess 17:18
and maybe which is why "$proc.stdout.tap" is there
ab6tract so much nicer
gist.github.com/ab5tract/20d7a03e5...b5e0174a95
AlexDaniel ab6tract: I think you can also omit “done” in this case. It's there in my example because of “whenever Promise.in($timeout) { … }” 17:19
ab6tract: so I want it to bail out from react even though the timeout promise is not kept yet
AlexDaniel hm, too bad you can't write “whenever $proc.start;” 17:21
but “whenever $proc.start {}” is not too bad anyway 17:22
ab6tract AlexDaniel: at least it recognizes '{ }' as a bare block there, rather than mistaking for a hash like it can for signatures
AlexDaniel notices how his message use exactly the same wording to talk about opposite things. D'oh
ab6tract: yes, this is what I was thinking too :)
timotimo that's because it's a method call, no?
raschipi m: my $proc = Proc::Async.new(:r, 'echo','Man is amazing, but he is not a masterpiece'); react {whenever $proc.stdout { say "OUT: $_"; }; $proc.start} 17:23
camelia Proc::Async is disallowed in restricted setting
in sub restricted at src/RESTRICTED.setting line 1
in method new at src/RESTRICTED.setting line 32
in block <unit> at <tmp> line 1
AlexDaniel timotimo: sorry?
timotimo you mean "whenver $proc.start { }"? 17:24
b2gills ab6tract: start, and react are statement prefixes, so your previous code could have been `start react whenever $proc.stdout { say "OUT: $_"; }`
ab6tract b2gills: good point, they thunk
AlexDaniel raschipi: I'm not entirely convinced that this is a good idea
ash_gti so, I’m curious why two pretty similar scripts have vastly different runtimes, I can make some guesses but the difference is pretty drastic 17:25
raschipi AlexDaniel: I'm not too, I was just goofing around.
Skarsnik ash_gti, example? ^^
b2gills `react` doesn't return anything, it just blocks until you get a `done` called
ash_gti `time yes | head -n1000000 | perl6 -pe 's/y/n/‘` finishes in 2 minutes, but `time yes | head -n1000000 | perl6 -e 'for $*IN.readchars { .subst("y", "n").print }’` finishes in 82 ms (according to the --profile)
AlexDaniel raschipi: it is assuming that .stdout supply is going to finish around the same time the process will finish too, and I'd love to see a written guarantee for this stuff somewhere… until then, whenever $proc.start {} :)
ab6tract AlexDaniel: so are there any differences between `react` and `start react` ?
AlexDaniel ab6tract: react blocks 17:26
b2gills I'm not really fond of `start react` by the way, it is a misuse of Promise.start
timotimo ash_gti: check the output, i believe the output differs between both scripts
ab6tract solves me problem :D
*my
grondilu irclog.perlgeek.de/perl6/2017-08-15#i_15016321 <= rakudo-js will target wasm? Is that official? 17:27
raschipi grondilu: No, pmurias already corrected me
grondilu is disappointed
ash_gti ah sorry, I pasted the wrong second one
b2gills I think there could be a corollary of `start` called `kickoff` that does `Thread.start` in the same way that `start` calls `Promise.start` 17:28
ab6tract b2gills: i can dig it
AlexDaniel ab6tract: start react is just a regular start block with react in it
ash_gti `time yes | head -n1000000 | perl6 -e 'for $*IN.readchars { .subst("y", "n", :g).print }’` < still finishes in .72 seconds
ab6tract AlexDaniel: yeah but ISTR there was a point when react could only exist within a start 17:29
timotimo OK, but then that's only correct if you use "yes" and not, for example "yes yesyes"
i.e. only because yes spits out a single y per line
b2gills `start` returns a Promise, if you aren't going to use the Promise why are you indirectly calling `Promise.start`
ab6tract but maybe i have a wire crossed and am thinking of whenever only being allowed in a react :)
Skarsnik did you try with $*IN.lines ?
ash_gti using $*IN.lines is the same time as the first example 17:30
or really close to it
AlexDaniel ab6tract: well, if you want the processing to happen in parallel while you do something else, then sure? Like my $p = start react { … }; say ‘OK, while I'm doing the work, wanna play chess?’
b2gills whenever is also allowed in a `supply` block
m: my $p = Promise.in(1); say Thread.start({react whenever $p {done}; say 'done'}); say 'going'; await $p 17:32
camelia Thread #6
going
done
ab6tract AlexDaniel: Right, I am feeling more convinced that I was mistaken. Still, I thought it `react { }` alone used to throw an exception. Like I said, maybe I am misremembering.
ab6tract b2gills: nice one 17:33
AlexDaniel honestly, I don't entirely understand react/whenever. In a way, this gives me a possibility to do synchronous processing of asynchronous events (kind of), but is it actually what I need? For example… 17:34
AlexDaniel If I do 「whenever $proc.stdout { #`{do something} };」, then why does it have to interfere with 「whenever $proc.stderr { #`{do something else} };」 ? 17:35
PerlMonger Hey guys 17:36
b2gills For a second I thought there was debugging in Thread.start; totally forgot about the call to `say` before it
AlexDaniel so if I block for a few sceonds on stdout processing, the rest is going to wait? Do I *really* want that?
PerlMonger I'm having trouble running my perl6 files using the "perl6" command
But if I run the perl6 executable, I can run code inside of there 17:37
AlexDaniel PerlMonger: interesting! Are there any errors shown?
PerlMonger Yes, let me try again one sec
bash: perl6: command not found 17:38
mspo PerlMonger: do you mean it doesn't work via perl6 foo.pl6 or #!/usr/bin/perl6 ? 17:39
PerlMonger: try the full path
AlexDaniel PerlMonger: you probably want to a path to your perl6 executable into your $PATH, that's if you're on linux
PerlMonger Okay, I'll try that now
ilmari any reason we're using the texas camelia in /topic? 🦋 existss… 17:41
mspo p6: say 3; 17:42
camelia 3
b2gills I personally have a symbolic link /home/brad/bin/perl6 that points to /opt/rakudo/bin/perl6
mspo m: say 3;
camelia 3
AlexDaniel ilmari: it exists now, but it didn't for a looong time 17:43
ilmari: interestingly, it says “UTF-8 is our friend!” :) 17:44
PerlMonger I've now used "Open With" and found the perl6 executable in the correct directory, and tried to use that to run my file, but now nothing happens 17:46
b2gills If you are on Windows it will either not open a terminal window, or it will open a terminal it and close it as soon as it is done. which can happen quickly 17:48
PerlMonger I am on Debian 17:48
b2gills Even more reason for it to not open a terminal window 17:49
ash_gti so, trying a few different things, `perl6 -e 'for $*IN.readchars.lines { .subst("y", "n").say }'` is about 1 second, `perl -e 'for $*IN.lines { .subst("y", "n").say }'` is about 20 seconds; however, just doing: perl6 -pe ’s/y/n/‘ takes 2 minutes
b2gills Windows has a bit that tells the computer if it is a terminal program or a gui program
* Executables on Windows 17:50
PerlMonger How would you reccomend I run my perl6 script without opening in terminal? Other than copy pasting the code into a running perl6 executable, of course :) 17:51
mspo what do you want to happen? 17:53
b2gills xterm -e perl6 -e 'say "hi"; sleep 3' 17:54
ab6tract AlexDaniel: I suppose the solution to the moment where you want something different, you can spawn multiple react blocks?
raschipi If the 'perl6' command is workig in the command line, you can use the '#!/usr/bin/env perl6' trick.
tojo PerlMonger: Atom code editor has neat Perl6 plugin on which you can execute code "without" opening the terminal just using hotkeys. Assuming that you are just playing with Perl 6 now 17:55
mspo where does that output go? 17:55
timotimo ab6tract: not sure if it helps, but you can also "whenever start { } { }" inside react 17:56
i haven't followed the exact problem closely
PerlMonger Is it called language-perl6 by any chance, tojo?
AlexDaniel ab6tract: or just use taps instead. react is very safe in a sense that you're not going to access stuff from different threads, which is great. So it's a wonderful thing to do by “default”, maybe. But I'm looking at some places where I use react, and I'm not entirely sure that it is what I wanted to write. 17:57
tojo PerlMonger: that should be it, there is only one or two plugins available 17:58
PerlMonger raschipi: Nope, doesn't work :P
b2gills you can think of `react {}` as just an extension of the `supply {}` feature
PerlMonger Okay, thanks guys!
Will play about with this and be back later 17:59
perlpilot Perl 6 would *so* benefit from a concurrency book right about now. There seems to be quite a few people playing with Promise, Supply, and Channel (even if only by virtue of using one of the async modules) and not enough "easy knowledge" to point them in the right direction. 18:03
(unless you count asking on #perl6 as "easy")
ab6tract AlexDaniel: oh, for sure 18:10
taps are great 18:12
timotimo perlpilot: we should oint people strongly at jnthn's presentations (both videos and slides) 18:13
ugexe a concurrency book would be nice, although when it doesn't have to be sprinkled with `* except in 6.d it does this` 18:17
mspo it's like you need a wiki :) 18:19
El_Che videos --how fantatisc the talk may be-- don't replace docs. You need to be very motivated to watch many of them 18:24
timotimo that's why i also pointed out the slides
they are also good on their own, i'd claim
El_Che not a fan of slides without context (although john's slides for the perl6 intro are great) 18:25
I enjoyed those a lot 18:26
raschipi Do you have a link? 18:28
El_Che let me look them up
El_Che www.jnthn.net/papers/2015-spw-perl6-course.pdf 18:29
raschipi Thanks 18:30
El_Che raschipi: there is quite good stuff in the parent dir: www.jnthn.net/articles.shtml 18:33
I saw the talks of FOSDEM 2014+2015 and NLPW 2014, and of course with a speaker like jnthn providing context it's a lot nicer 18:34
ash_gti is using perl6 -pe ‘1` pretty similar to doing: `for $*IN.lines { say 1; }` ? or are the command line options doing something fundamentally different? 19:01
Skarsnik hm 19:02
ash_gti I guess actually running perl6 -pe 1 doesn’t work though, hmmm 19:03
geekosaur it should be the same as for $*IN.lines { 1; say $_ } 19:04
raschipi ash_gti: It works for me... 19:08
Skarsnik m: say &1 19:15
camelia Nil
[Coke] (doc examples that are OS specific) instead of marking "doesn't work on windows", perhaps noting "works on OS X" or "linux", e.g.) 19:30
geekosaur problem is, people reporting it may not be able to say that 19:32
they know it fails on platform X, they may not be in a positon ot test on Y or Z
geekosaur the person triaging it is the one who can check working/not working pltforms 19:33
El_Che It looks like perl6 conquered Switserland: act.perl-workshop.ch/spw2017/schedu...2017-08-26 19:37
nadim Skarsnik: I must admit that I don't remember a issue with has/HAS, what I was, if I recal well, was surprised how they looked like. I will write a test and check it again, thank you for reminding me. 19:46
nadim I just receive a very surprising error when using Terminal::Print, "Cannot invoke this object (REPR: Null; VMNull)" I reported the error if it interests someone github.com/ab5tract/Terminal-Print/issues/44 19:49
brimonk AlexDaniel: Thanks for your assistance in fixing my problem! 19:51
It just got resolved.
raschipi m: my $n = Numeric.new; $n.Bool; 19:53
camelia MoarVM panic: Memory allocation failed; could not allocate 82944 bytes
Skarsnik nadim, HAS inline a struct in a struct, where has will put a pointer. class B is cstruct { has int150000 $.a }; class A is cstruct {has B $.b}; # 1 pointer in size; class C is cstruct { HAS B $.b} # int1500000 size; 19:54
raschipi I know this is strange, but I don't think an infinite loop and leaking memory is what's appropriate in this case, right?
Skarsnik weird lol
Skarsnik this take forever, seem like it stuck in an infinite loop 19:59
jdv79 timotimo: yeah, that's true 19:59
Skarsnik nadim, an attribute will get .inlined attribute to true if it's HAS 20:05
aaaa1 What other template based things are there other than Bailador? 20:05
aaaa1 Is Uzu an alternative? 20:06
AlexDaniel brimonk: you're welcome! :) 20:08
aaaa1: it could be, depending on your needs. 20:10
AlexDaniel but I think uzu is for static websites only, isn't it? 20:10
aaaa1 no idea 20:11
timotimo excuse me, jdv79, what is? 20:38
timotimo aaaa1: uzu is a static site generator while bailador is a slim web app framework; both use existing template libraries. Bailador has Mojo and Mustache, whereas uzu has Template6 and Mustache; find them and others on modules.perl6.org by searching for "Template" 20:39
raschipi buggable: eco Template 20:42
buggable raschipi, Found 14 results: HTML::Template, Template::Mojo, Template6, Template::Mustache, Plosurin. See modules.perl6.org/s/Template
timotimo thanks raschipi
mspo mustache and mojo are in sar 20:43
star
ShalokShalom how is the overhead when calling other languages? 20:46
timotimo ShalokShalom: the benchmark Tux runs every day for his CSV module has a mode where it uses Text::CSV_XS from Perl5 to parse each individual line. it's more than 2x faster than the pure perl6 version 20:47
does that help you estimate? 20:48
ShalokShalom so Perl5 is much faster as 6? 20:48
ShalokShalom and there is no overhead 20:49
raschipi ShalokShalom: The module is written in C
ShalokShalom i know
raschipi So, no Perl5 involved here at all. 20:50
ShalokShalom nearly no overhead would be as answer enough
raschipi Yes, nearly no overhead.
ShalokShalom raschipi: i am refering to "" from Perl5 to parse each individual line. it's more than 2x faster than the pure perl6 version"
thanks
raschipi Yes, XS is part of Perl5, but it's not written in Perl5, it's written in C 20:51
timotimo sadly it's not possible to nativecall directly into XS code
brimonk Is there a way to still have native C modules in perl6?
timotimo of course
Skarsnik yes NativeCall
brimonk Because that would (maybe) solve everyone's problem.
If speed is really an issue.
timotimo anyway, you go through the Inline::Perl5 overhead for every line and it's not too slow
geekosaur "Text::CSV_S from Perl5" 20:52
er CSV_XS
Skarsnik I use a C lib to parse HTML5
raschipi I see, thanks.
Skarsnik and I need to do the same for XML
geekosaur the _XS part is significant
it s a module *for* perl 5, using Perl 5's C extensions
Skarsnik because perl6 xml parsing is slow
geekosaur I don't think XS will be doable in perl 6 since it tends to be far too tight with perl 5 internals
er, using perl 5 XS modules
timotimo yeah, XS modules really expect there to be a full perl5 interpreter in memory 20:53
timotimo the pypy people have done something for CPython extensions, which is basically python's XS, but it's an inredible amount of work & hassle 20:54
Skarsnik NC is so... simple 20:55
it's beautiful :)
El_Che It is
a work of art :) 20:56
Skarsnik (and GPTrixie make it a breeze to do binding) 20:57
El_Che maybe it's too beautiful, resulting in importing the C's insecure model into perl6 instead of a more secure perl6 program?
Skarsnik what do you can C insecure model?
raschipi Manual memory management.
Skarsnik Well you should use it to bind 'proper' lib 20:58
El_Che my point is that a C lib is a huge win for perl6 (performance, a lib when no native lib is around), but there is a price to pay 21:00
Skarsnik it's a time save for stuff like HTML5. for me it's a waste of time to do "yet another html5 parser". I don't want to know the time it could take to have some as solid as browser parser 21:02
ChoHag Has anyone attempted a grammar for html5? 21:03
Do they still summon Cthulhu like regex do?
El_Che Skarsnik: yes, that the "a lib when no native lib is around" usecase 21:04
which I certainly appreciate
geekosaur you could write one but I suspect it'd be too strict for actualhtml in the wild
for real, dirty, broken html5 as found in the wild, pretty much any solution that isn't tagsoup-ish will summon nasal demons 21:05
ChoHag Oh I thought they'd fixed the "attempt to render linenoise" problem in html5. 21:06
raschipi ChoHag: You're thniking of XHTML, HTML5 isn't XML bacause web developers hate strict parsers apparently. 21:07
geekosaur even xhtml is something of a failure
people will produce garbage and call you broken if you can't handle it
Skarsnik HTML5 is deeply defined, even error like non closing tag and stuff are specified 21:07
geekosaur yes, but about 3 people actually pay attention to it
likewise xhtml 21:08
Skarsnik (the doc is pretty huge)
raschipi Yeah, they just embraced the brokeness.
Skarsnik hm, I am pretty sure all browser supporting HTML5 do the same thing (following the doc)
raschipi Skarsnik: Yes, the follow the specification, but the specification is for tag soup. 21:10
Skarsnik yeah but you ensure that a html5 page will have the same tree accross all thing supporting html5. it's a big pls 21:11
geekosaur if only 21:12
firefox wouldn't have quirks mode if that were true
abcdef1 How do I separate classes from the main.pm file? 21:14
[Coke] geekosaur: yes, people can report a failure of a particular example, but I'm saying we advertise the good bits, not the bad bits. 21:18
abcdef1 I created a directory inside of the root directory called 'lib' and did `use lib 'lib'; use RTObjects;` 21:24
with `unit module RTObjects;` in '/lib/RTObjects.p6'
It still can't find RTObjects 21:25
gfldex abcdef1: try to rename the module to `.pm` or `.pm6` 21:26
geekosaur use looks for .pm or maybe .pm6, not .p6 21:27
abcdef1 That worked; thanks guys!
gfldex docs are a bit sloppy when it says: "Source files generally use the standard .pm extension, and scripts or executables use .pl." 21:28
Skarsnik huggable, modules 21:28
huggable Skarsnik, 100 Most Popular (by github stars and recently updated) Modules: perl6 -MWWW -e 'jget("modules.perl6.org/.json")<dists&...dated>) after Date.new: "2017-01-01"}).head(100)»<name>.grep(none |<p6doc panda v5>, /^ "Inline::"/).put'
nadim Skarsnik: I remember what one of my problems with has/HAS was, I can't see the difference in the dump and I would have liked to do that. 21:31
Skarsnik nadim, need to check for .inlined . my $has = $attr.inlined ?? 'HAS' !! 'has'; 21:32
nadim Skarsnik: cool! otherwise it looked like this i.imgur.com/SRGmoyC.png
let me see what I can do with that inline information 21:33
Skarsnik I should have pointed to github.com/Skarsnik/nativecall-typ...ag.pm6#L96 that could have helped for your stuff
since I validate CStruct in this
nadim Looks more accurate with HAS, I also forgot to show rw for native, that's fixed too. i.imgur.com/Kv3LWzX.png 21:40
nadim meh! size should be different 21:43
copypasta error! pfiuu 21:44
i.imgur.com/Kv3LWzX.png 21:45
Skarsnik still show 16 and 16 21:46
nadim pasted the same link :(
i.imgur.com/Kv3LWzX.png
nadim well ... Lol! found a bug in imgur web page! this should be it i.imgur.com/CL59VK4.png 21:49
Qapla' 21:50
Skarsnik: do you have a few struc definition laying around you can share so I have an example a bit more complexe than that one?
Skarsnik github.com/Skarsnik/nativecall-typ...ndatype.p6 ? 21:52
Skarsnik nadim, if you want real life stuff github.com/Skarsnik/perl6-gumbo/bl...inding.pm6 21:54
nadim i.imgur.com/Irpwuyw.png 21:59
abcdef1 What's the difference between a method and a submethod? 22:16
basket Submethods aren't inherited in derived classes 22:17
abcdef1 oh, I see
abcdef1 I'm getting a `Bus error (core dumped)` while using SDL2::Raw 22:25
any ideas as to why that would happen?
nadim stray pointer on the C side 22:26
abcdef1 hm
nadim timotimo: will most probably be more helpful
abcdef1 I think I've fixed it, but I have no idea how lol 22:28
I just went around tweaking things and the problem disappeared
nadim do you have both versions of your code? 22:30
abcdef1 I think it may have been I wasn't using `SDL_RenderClear($render);` enough 22:31
nadim if you have it in your editor undo buffer, undo, make a commit, redo, make a commit, that will help the author 22:32
sludin Is there a process to follow for porting perl5 modules to 6? I have seen the most wanted list and the "Create a module" doc but I am missing the details of 'good citizen' porting. 22:37
I want to port my Protocol::ACME library but there is a wall of dependencies to port first and wanted to start picking away at those. 22:39
ugexe generally its implement 10% of the perl5 module and then call it good 22:48
more seriously though - it can be pretty simple. but you'll find yourself wanting to redesign it to fit in better with the additional features/paradigms available to you 22:49
raschipi And when you get used to it, start to feel like you're fighting every other language. 22:56
sludin Thanks for the responses. I'll poke around and make some educational mistakes along the way ;) 23:01
raschipi sludin: Here is an interesting talk on using the Perl6 toolset to do better: www.youtube.com/watch?v=DnsUSkwnRf...mp;index=8 23:06
abcdef1 What's the fastest graphics library for making a raytracer? 23:21
I think Cairo has been the best so far
out of the ones I've tried
could Imlib2 work faster? 23:23
abcdef1 could writing to a bmp in pure perl6 without any libraries potentially be faster? 23:26