Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-04-20

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 [Coke] ~~
00:06 lizmat joined #perl6
00:08 Actualeyes joined #perl6
00:08 Actualeyes left #perl6
00:08 skink Apparently uint64 cannot unbox to a native integer
00:08 timotimo can you golf that problem?
00:11 skink m: my uint64 $len = 8; my $bytes = Buf.new; $bytes[$len - 1] = 0; say $bytes;
00:11 camelia rakudo-moar b8302b: OUTPUT«This type cannot unbox to a native integer␤  in block <unit> at /tmp/Gaq9v_Sxh9 line 1␤␤»
00:11 skink m: my $len = 8; my $bytes = Buf.new; $bytes[$len - 1] = 0; say $bytes;
00:11 camelia rakudo-moar b8302b: OUTPUT«Buf:0x<00 00 00 00 00 00 00 00>␤»
00:12 skink m: my uint64 $x = 5; say $x - 4   # this works though
00:12 camelia rakudo-moar b8302b: OUTPUT«1␤»
00:19 skink m: use NativeCall; my uint64 $len = 8; my $bytes = CArray[uint8].new; $bytes[$len - 1] = 0; say $bytes;
00:19 camelia rakudo-moar b8302b: OUTPUT«NativeCall::Types::CArray[uint8].new␤»
00:30 timotimo that's strange indeed; shouldn't it box the int for you for free?
00:31 cpage_ joined #perl6
00:32 telex joined #perl6
00:33 khisanth_ joined #perl6
00:41 cibs joined #perl6
00:45 johndau joined #perl6
00:59 kurahaupo joined #perl6
01:02 colomon joined #perl6
01:06 [Coke] Did the last star release include a using perl6 book or has that been removed?
01:06 kurahaupo joined #perl6
01:07 aries_liuxueyang joined #perl6
01:07 johndau joined #perl6
01:09 mcsnolte joined #perl6
01:17 ZoffixWin .oO( we have a perl6 book?? )
01:19 [Coke] not really.
01:19 MadcapJake Xliff: you around? I'm back!
01:21 timotimo the book that's referred to is in perl6/book on github and it's fairly bitrotted
01:22 timotimo did anybody look at the perl6-examples build? seems like some code changed without having the corresponding tests updated: https://travis-ci.org/perl6/perl6-examples#L1122
01:22 timotimo also, the actual return type for the prime factors has changed from "list of pairs" to "hash" apparently
01:23 timotimo and the rhebus thing lost a line
01:23 MadcapJake Rabidgravy showed me how to use fdopen but now it hangs in fcntl.c
01:23 timotimo and grew a few parens on top of that
01:25 Xliff MadcapJake, yup
01:25 MadcapJake any ideas what to do to get around this hang?
01:25 Xliff The dependency loop?
01:26 MadcapJake no, what I am doing now in complete-raw-transform is moving all native stuff to Raw.pm6
01:26 MadcapJake so that way all other modules will just reference the one central location for nativecall stuff
01:26 MadcapJake should remove the dependency loop
01:26 Xliff Oh, and what's this about fdopen? I've used it in a test since I needed a file descriptor for a NativeCall routine. It didn't hang then. Maybe I need to pull new rakudo and retest?
01:26 Xliff OK, so the hang is fdopen related?
01:27 * Xliff is like 2-3 seconds lagged. Brain tired.
01:27 MadcapJake so what I'm doing is testing all the native stuff (now that the interface will be available separately and I can make sure it all works) and I'm getting stuck at myhtml_tree_print_node_childs
01:28 MadcapJake initially my problem was that I wasn't providing a proper file handle, thanks to RabidGravy++ I was able to solve that, only it now hangs indefinitely
01:28 Xliff Let me update rakudo and test my fdopen
01:29 Xliff Let me retest my fdopen example.
01:30 molaf joined #perl6
01:32 Xliff Ohcrap!
01:32 * Xliff headdesks.
01:32 Xliff I wrote the routine, but never finished writing the fdopen related sub.
01:33 Xliff cbwood@infinity:~/projects/p6-xqilla$ perl6 -Ilib t/01-testXqc.t
01:33 Xliff moar: xercesc/util/XMemory.cpp:63: static void* xercesc_3_1::XMemory::operator new(size_t, xercesc_3_1::MemoryManager*): Assertion `manager != 0' failed.
01:33 Xliff ^^ That's why.
01:35 timotimo well, that's easy enough to figure out
01:37 MadcapJake how would i go about deciphering a hang?
01:37 skink Xliff, I figured out the Buf vs CArray thing for Crypt::Random on Windows
01:38 Xliff skink, Cool!
01:38 skink It wasn't a Buf vs CArray thing at all!
01:38 Xliff What was it?
01:38 skink It was actually not being able to Buf[uint64] for allocation
01:38 timotimo use perl6-gdb-m, ctrl-c when it's hung, "print MVM_dump_backtrace(tc)" to get a perl6-level backtrace
01:38 timotimo MadcapJake: ^
01:38 Xliff timotimo, Ooh!
01:38 Xliff Thought so.
01:38 * Xliff tries.
01:38 timotimo you may have to "up" until you're in a function that actually has a "tc" in scope
01:39 MadcapJake timotimo: the hang is inside C code unfortunately
01:39 timotimo that's not so important
01:39 timotimo gdb is compatible with C
01:40 MadcapJake well when i do `bt` I get «in do_fcntl (arg=<optimized out>, cmd=7, fd=13) at ../sysdeps/unix/sysv/linux/fcntl.c:31»
01:40 Xliff Yeah. I can get a backtrace from libmyhtml.so
01:40 timotimo well, the thing is, with using the stdin and friends on moarvm
01:40 timotimo libuv has already gotten its grubby fingers on the file handle
01:41 timotimo and by the time your user code gets it, it's already nonblocking and all that
01:41 timotimo you'll have to accomodate that
01:41 MadcapJake ahh that's probably related because $*OUT.native-descriptor doesn't print 1
01:41 timotimo not sure what happens if you "open('/dev/stdin')", though
01:41 timotimo stdout, i mean
01:41 timotimo you can figure out more stuff using strace potentially
01:41 Xliff Hmmm....
01:41 timotimo and by inspecting /proc/*thing*/fdinfo
01:42 MadcapJake m: open('/dev/stdout/', :w).write('hello'.encode)
01:46 camelia rakudo-moar c37939: OUTPUT«open is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub open at src/RESTRICTED.setting line 9␤  in block <unit> at /tmp/6aDGgwjzHk line 1␤␤»
01:46 MadcapJake well that works on my machine :)
01:46 MadcapJake I should try that instead of fdopen
01:46 timotimo that's not portable ;(
01:46 MadcapJake what would that be on windows :P
01:46 MadcapJake `CON` apparently is equiavalent
01:46 timotimo `CON`?
01:46 timotimo like, with the backticks?
01:46 MadcapJake no, just bare
01:46 MadcapJake http://superuser.com/questions/241272/windows-how-to-redirect-file-parameter-to-stdout-windows-equivalent-of-dev-s
01:46 timotimo how do you open a file that's called CON?
01:46 timotimo "./CON"?
01:46 MadcapJake open('CON', :w)
01:46 MadcapJake anyone got a windows machine :)
01:46 timotimo how many programs can you make crash by making it open 'CON' instead of a file called 'CON'
01:46 MadcapJake what's that mean?
01:46 geekosaur afaik you can't open that file on Windows
01:46 geekosaur it will always refer to the device
01:46 timotimo well, if you have a program that takes a file name from somewhere and neglects to check if it's just "CON"
01:46 MadcapJake timotimo: you can't name things CON, it's a reserved name
01:47 timotimo what if i create a file on a usb thumbdrive with linux that has a CON file on it?
01:47 ZoffixWin Windows can't open a 'con' file? .... sounds like someone got conned...
01:47 skink Boo.
01:48 MadcapJake then you're windows machine will shake for a few minutes and then a black hole will form ripping the entire 3 square mile area
01:48 Actualeyes joined #perl6
01:48 timotimo gotta get bedded :)
01:48 timotimo have a good time
01:49 Xliff LOL
01:49 MadcapJake nighty night! don't let the bed bugs bite!
01:49 Xliff bedded by whome.
01:49 Xliff s/e\.$//
01:49 geekosaur I recall the linux msdos and ntfs drivers being modified to error if you tried to create those files
01:49 Xliff MadcapJake, I am on Windows.
01:49 Xliff I am skink's WindowsFlunkie.
01:49 MadcapJake Xliff: try «open('CON', :w).write('hello'.encode)»
01:50 Xliff Humm....
01:50 skink Xliff, I set up Appveyor to test Windows stuff and dear lord is it slow
01:50 ZoffixWin heh, just tried creating 'con' on Windblows: "The specified device name is invalid"
01:50 * ZoffixWin shudders
01:50 skink Takes 30min+ for a build to queue, then 20-30min more to build Rakudo and run tests
01:50 geekosaur appveyor probably expects to be able to fork/exec; emulating those is painfully slow on windows
01:50 skink Yup
01:50 geekosaur better to use the native process calls
01:51 Xliff open('CON', :w).write('hello'.encode)
01:52 Xliff Oops.
01:52 skink re: the drivers, couldn't you put it on an ext2 volume and install the ext* Windows driver?
01:52 Xliff C:\Users\Cliff>perl6 -e "open('CON', :w).write('hello'.encode)"
01:52 Xliff Failed to open file C:\Users\Cliff\CON: no such file or directory
01:52 Xliff Man, I hate cmd.exe
01:52 Xliff skink: I bet. You got benchmarks?
01:53 skink Xliff, Crypt::Random on travis takes 7min for Linux, 14min for OS X. Appveyor takes 28min
01:53 Xliff Yikes!
01:53 geekosaur also there was a spate of bug reports some years ago where various programs ported to Windows (e.g. Apache) could be tricked into trying to open CON etc. and crashing or hanging forever
01:54 Xliff What is the now preferred way to point NativeCall subs at libc?
01:58 sortiz Xliff, Depends on the platform.
02:00 MadcapJake Xliff: I think you just leave the parentheses off of the native trait
02:01 Xliff MadcapJake, Nope. Tried that and got an error.
02:02 Xliff Using "is native('c')" I get "Cannot locate native library 'libc.so': /usr/lib/i386-linux-gnu/libc.so: invalid ELF header"
02:03 MadcapJake Xliff: I thought on Windows it looked for libc.dll?
02:03 sortiz for example, in linux the standard library is pre-loaded so a simple 'sub malloc(size_t --> Pointer) is native;' works.
02:03 skink You literally just do 'is native'
02:04 skink Unless Windows works differently
02:04 Xliff MadcapJake, I do perl6 dev in a Linux VM
02:04 sortiz In windows, for example you need 'sub calloc(size_t, size_t --> Pointer) is native('msvcrt') { * }'
02:05 diakopter it depends which toolchain you used on windows
02:05 diakopter if you used the strawberry (gcc) toolchain, then it's different
02:05 MadcapJake Xliff: then `is native` should definitely work, try «locate libc.so» to see if it's just not in your LD_LIBRARY_PATH
02:07 Xliff No. It's finding libc, however it's not liking what it finds.
02:07 Xliff Note the  invalid ELF header part.
02:07 Xliff Which makes no since, because if libc didn't work, neither would rakudo.
02:08 Xliff If I don't specify a lib, I get the following "Cannot locate symbol '' in native library ''"
02:08 Xliff So using "is native('c')", and when I do I get that error about bad ELF header.
02:09 sortiz Xliff, go to your rakudo bin directory and do 'ldd moar' to see what libraries moar loads.
02:09 Xliff And yes, windows side is Strawberry.
02:10 Xliff "not a dynamic executable"
02:12 Xliff I'm using rakudobrew under the Linux VM
02:13 sortiz Ohh, strange case. Can be then that is not able of dynamic loading. Are you sure you are 'ldd moar' to the real executable and not to some wrapper?
02:16 sortiz Xliff, with rakudobrew my moar shows like https://gist.github.com/salortiz/ee6c1a06d046314d37387a8daec60fe3
02:16 geekosaur joined #perl6
02:16 skink ...
02:17 skink Oh. My god.
02:17 skink libargon2's Makefile doesn't support Windows
02:21 skink It has _2,000_ lines of XML for Visual Studio
02:28 Xliff Yowch.
02:29 Xliff sortiz: It's a wrapper.
02:30 Xliff libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb723f000)
02:32 Xliff Video Studio is such a pig.
02:32 Xliff It's nice, pretty, and functional... but it's expensive about it.
02:32 sortiz So, the libc is pre-loaded and if libdl.so.X is in the list dyncall should work with is '... is native { * }' without parameters.
02:33 Xliff OK, so does that error message mean that it can't find fdopen() or something?
02:33 Xliff Because it is really confusing --> "Cannot locate symbol '' in native library ''"
02:35 noganex joined #perl6
02:35 sortiz The only strange thing I see is that 'cmov', dunno what kind of distro are you using.
02:36 Xliff Ubuntu
02:36 Xliff OK. I've traced it further back. It might be a function call I make that's cast using nativecast()
02:37 Xliff casting a pointer to a function that's returned from a C lib.
02:38 Xliff Then using nativecast to assign arguments and return values.
02:38 Xliff Here is the native cast call
02:38 Xliff my &func_sig = nativecast(:(XQC_Implementation_s, Pointer, XQC_StaticContext_s, Pointer --> uint32), $!prepare_file);
02:39 Xliff So it looks like that's why the error isn't helpful.
02:42 Xliff Yeeah.
02:42 Xliff NativeCall can't use undeclared function pointers from C-libs.
02:43 sortiz m: use NativeCall; class FILE is repr('CPointer') { }; sub fdopen(int32,Str -->FILE) is native { * }; say fdopen(1,"r") ~~ FILE; # Xliff fdopen works
02:43 camelia rakudo-moar c37939: OUTPUT«True␤»
02:43 Xliff So now I'll need to pre-build the module from the libxqilla's symbol tree.
02:43 Xliff *sigh*
02:44 Xliff sortiz: Thanks. However I was asking for MadcapJake, since he is running into a hanging problem with his project.
02:44 Xliff God, what a horrible day. I will watch TV, now.
02:44 MadcapJake Xliff
02:45 MadcapJake I passed through the hanging problems
02:45 MadcapJake now I am running into size_t problems :)
02:46 sortiz MadcapJake, As I understand your $*OUT -> FILE problem is now solved, no?
02:46 MadcapJake m: use NativeCall; my CArray[uint] $chs = "hello world".encode.list; $chs.elems.say
02:46 camelia rakudo-moar c37939: OUTPUT«Type check failed in assignment to $chs; expected NativeCall::Types::CArray[uint] but got Seq ((104, 101, 108, 108, ...)␤  in block <unit> at /tmp/qveXNU7y0r line 1␤␤»
02:46 Xliff MadcapJake, cool! How did you fix it?
02:46 Xliff MadcapJake, Fixed that.
02:46 MadcapJake m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; $chs.elems.say
02:46 camelia rakudo-moar c37939: OUTPUT«11␤»
02:47 Xliff m: use NativeCall; my CArray[uint] $chs = "hello world".encode('UTF-8').list; $chs.elems.say
02:47 camelia rakudo-moar c37939: OUTPUT«Type check failed in assignment to $chs; expected NativeCall::Types::CArray[uint] but got Seq ((104, 101, 108, 108, ...)␤  in block <unit> at /tmp/uTTGFdsona line 1␤␤»
02:47 Xliff Dammit! Thought I had fixed that.
02:47 MadcapJake Xliff: let me push my work, Instead of monkeying with $*OUT.native-descriptor, I just gave fdopen the number 1 and it works :D
02:48 MadcapJake Xliff: you need «.= new» to make that work
02:48 * MadcapJake . o O ( I wonder if I need to do that UTF-8 encoding or if that's the default )
02:49 sortiz MadcapJake, yep, utf8 is the default.
02:49 Xliff m: use NativeCall; my CArray[uint] $chs = CArray[uint8].new("hello world".encode.list); $chs.elems.say
02:49 camelia rakudo-moar c37939: OUTPUT«Type check failed in assignment to $chs; expected NativeCall::Types::CArray[uint] but got NativeCall::Types::CArray[uint8] (NativeCall::Types::CA...)␤  in block <unit> at /tmp/VtQNaGr0bD line 1␤␤»
02:50 MadcapJake m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; $chs.elems.say
02:50 camelia rakudo-moar c37939: OUTPUT«11␤»
02:50 MadcapJake apparently CArray cannot handle uintX you have to just give it Perl 6's builtin native uint
02:50 MadcapJake it's a known bug
02:51 MadcapJake (at least I heard some people talking about it...)
02:52 MadcapJake Xliff: https://github.com/MadcapJake/p6-MyHTML/blob/complete-raw-transform/lib/HTML/MyHTML/Raw.pm6#L37-L42
02:52 Xliff Yeah. RabidGravy
02:53 Xliff m: use NativeCall; my CArray[uint] $chs = .new("hello world".encode.list); $chs.elems.say
02:53 camelia rakudo-moar c37939: OUTPUT«Default constructor for 'Any' only takes named arguments␤  in block <unit> at /tmp/H2VfPG3rA6 line 1␤␤»
02:54 Xliff m: use NativeCall; my CArray[uint] $chs = .new: "hello world".encode.list; $chs.elems.say
02:54 MadcapJake my problem is that myhtml_parse_fragment takes a size and both $chs.elems and nativesizeof($chs) cut off the text for some reason
02:54 camelia rakudo-moar c37939: OUTPUT«Default constructor for 'Any' only takes named arguments␤  in block <unit> at /tmp/6ZlhJsYFZp line 1␤␤»
02:54 Herby_ ZoffixWin:  With your Twitter module, do you think it would be hard to implement a basic search function?
02:54 MadcapJake Xliff: .= new
02:54 Xliff m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; $chs.elems.say
02:54 camelia rakudo-moar c37939: OUTPUT«11␤»
02:54 Xliff m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say $chs;
02:54 camelia rakudo-moar c37939: OUTPUT«NativeCall::Types::CArray[uint].new␤»
02:55 Xliff MadcapJake, like I said. Horrible day.
02:55 MadcapJake xD no prob! I've had those
02:55 MadcapJake up until about 2 hours ago I was battling an awful migraine, so only recently has my day turned around
02:55 Xliff Ah! Hope the upward trend continues!
02:56 MadcapJake only two hours left, so I gotta cram some awesome in now! ;)
02:57 Xliff LOL!
02:57 * Xliff injects AWESOME into MadcapJake.
02:58 gtodd joined #perl6
03:00 jack_rabbit joined #perl6
03:02 * MadcapJake keels over from the awesomeness
03:03 MadcapJake but I can't figure out why the size is off :\
03:04 MadcapJake nativesizeof and elems both capture 2 chars, if I add like 100, it prints the whole thing
03:04 MadcapJake + 80 seems to be just right, but why?
03:05 MadcapJake 10 * 8 maybe?
03:05 MadcapJake boom! $chs.elems * 8 is the magic stuff
03:06 BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say |@$chs;
03:06 camelia rakudo-moar c37939: OUTPUT«10410110810811132119111114108100␤»
03:06 Xliff Wow
03:06 MadcapJake m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say @chs[0..2];
03:06 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u0Jmo9tuqb␤Variable '@chs' is not declared. Did you mean '$chs'?␤at /tmp/u0Jmo9tuqb:1␤------> 3 .= new: "hello world".encode.list; say 7⏏5@chs[0..2];␤»
03:06 MadcapJake m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say $chs[0..2];
03:06 BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say $chs[0..2];
03:07 camelia rakudo-moar c37939: OUTPUT«(104 101 108)␤»
03:07 camelia rakudo-moar c37939: OUTPUT«(104 101 108)␤»
03:07 MadcapJake m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say $chs[0..2]».ord;
03:07 camelia rakudo-moar c37939: OUTPUT«(49 49 49)␤»
03:07 BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say @$chs>>.chr;
03:07 camelia rakudo-moar c37939: OUTPUT«(h e l l o   w o r l d)␤»
03:07 MadcapJake m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say $chs[0..2]».chr;
03:07 camelia rakudo-moar c37939: OUTPUT«(h e l)␤»
03:09 MadcapJake hmm still not understanding why `* 8` works though
03:12 BenGoldberg It would be awesome if there were a way to 'cast' from a Buf to a CArray, so they shared the same memory.
03:12 BenGoldberg Converting to a list seems kinda silly.
03:17 johndau joined #perl6
03:29 vendethiel joined #perl6
03:32 wbill joined #perl6
03:36 Xliff Hrm.
03:37 Xliff m: my $c "$.create_child_context; # F:";  my @m = $c ~~ /\$<[ !\. >](<[ \w\d ]>+) ";" $ F:/
03:37 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/T7fe3IetZZ␤Two terms in a row␤at /tmp/T7fe3IetZZ:1␤------> 3my $c7⏏5 "$.create_child_context; # F:";  my @m ␤    expecting any of:␤        infix␤        infix stopper␤        statement end…»
03:37 Xliff m: my $c = "$.create_child_context; # F:";  my @m = $c ~~ /\$<[ !\. >](<[ \w\d ]>+) ";" $ F:/
03:37 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ohx4sbJc5R␤Variable $.create_child_context used where no 'self' is available␤at /tmp/Ohx4sbJc5R:1␤------> 3my $c = "$.create_child_context7⏏5; # F:";  my @m = $c ~~ /\$<[ !\. >](<[ ␤    expecting …»
03:37 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >](<[ \w\d ]>+) ";" $ F:/
03:37 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/puen9JkyPI␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/puen9JkyPI:1␤------> 3text; # F:';  my @m = $c ~~ /\$<[ !\. >]7⏏5(<[ \w\d ]>+) ";" $ F:/␤    expecti…»
03:38 Xliff OK, so how to I specify a ";" in a regexp?
03:38 Xliff m: say ';'.ord
03:38 camelia rakudo-moar c37939: OUTPUT«59␤»
03:39 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >](<[ \w\d ]>+) ';' $ F:/;
03:39 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/i8QcpGp8rJ␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/i8QcpGp8rJ:1␤------> 3text; # F:';  my @m = $c ~~ /\$<[ !\. >]7⏏5(<[ \w\d ]>+) ';' $ F:/;␤    expect…»
03:39 TEttinger m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >](<[ \w\d ]>+) "\C[SEMICOLON]" $ F:/
03:39 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/aW0Os6207p␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/aW0Os6207p:1␤------> 3text; # F:';  my @m = $c ~~ /\$<[ !\. >]7⏏5(<[ \w\d ]>+) "\C[SEMICOLON]" $ F:/…»
03:39 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >](<[ \w\d ]>+) ';' # F:/;
03:39 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1E7z1PKEH8␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/1E7z1PKEH8:1␤------> 3text; # F:';  my @m = $c ~~ /\$<[ !\. >]7⏏5(<[ \w\d ]>+) ';' # F:/;␤    expect…»
03:40 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >](<[ \w\d ]>+) "\C[SEMICOLON]" # F:/;
03:40 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7WbEiYHriM␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/7WbEiYHriM:1␤------> 3text; # F:';  my @m = $c ~~ /\$<[ !\. >]7⏏5(<[ \w\d ]>+) "\C[SEMICOLON]" # F:/;…»
03:40 TEttinger m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) "\C[SEMICOLON]" $ F:/
03:40 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/znfHfLX4rc␤Unrecognized backslash sequence: '\C'␤at /tmp/znfHfLX4rc:1␤------> 3@m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) "\7⏏5C[SEMICOLON]" $ F:/␤    expecting any of:␤        double quotes␤»
03:40 TEttinger m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/
03:40 camelia rakudo-moar c37939: ( no output )
03:40 Xliff Ah!
03:40 TEttinger m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/ ; say @m
03:40 camelia rakudo-moar c37939: OUTPUT«[(Any)]␤»
03:40 TEttinger ihavenoideawhatimdoing.jpeg
03:41 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" # F:/; say $m.elems
03:41 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at /tmp/VBgB29KCZu:1␤------> 3>]>(<[ \w\d ]>+) ";" # F:/; say $m.elems7⏏5<EOL>␤Unable to parse regex; couldn't find final '/'␤at /tmp/VBgB29KCZu:1␤------> 3>]>(<[ \w\d ]>+) ";" # F:/; say $m.elems…»
03:41 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" # F:/; say @m.elems
03:41 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at /tmp/c61T88nUud:1␤------> 3>]>(<[ \w\d ]>+) ";" # F:/; say @m.elems7⏏5<EOL>␤Unable to parse regex; couldn't find final '/'␤at /tmp/c61T88nUud:1␤------> 3>]>(<[ \w\d ]>+) ";" # F:/; say @m.elems…»
03:41 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/
03:41 camelia rakudo-moar c37939: ( no output )
03:42 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; say @m.elems
03:42 camelia rakudo-moar c37939: OUTPUT«1␤»
03:42 TEttinger better!
03:42 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; say @m.elems
03:42 camelia rakudo-moar c37939: OUTPUT«1␤»
03:42 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; say @m
03:42 camelia rakudo-moar c37939: OUTPUT«[(Any)]␤»
03:42 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; say "@m"
03:42 camelia rakudo-moar c37939: OUTPUT«@m␤»
03:42 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; for @m -> $m { say $m }
03:42 camelia rakudo-moar c37939: OUTPUT«(Any)␤»
03:43 Xliff *sigh*
03:43 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; for @m -> $m { say $m.Str }
03:43 camelia rakudo-moar c37939: OUTPUT«Use of uninitialized value $m of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block  at /tmp/u88Wl72gbN line 1␤␤»
03:43 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; for @m -> $m { say $m.perl }
03:43 camelia rakudo-moar c37939: OUTPUT«Any␤»
03:44 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; say $<0>;
03:44 camelia rakudo-moar c37939: OUTPUT«Nil␤»
03:44 Xliff m: my $c = '$.create_child_context; # F:';  my @m = $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; say $/1;
03:44 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jXE1bDxPM6␤Two terms in a row␤at /tmp/jXE1bDxPM6:1␤------> 3[ !\. >]>(<[ \w\d ]>+) ";" $ F:/; say $/7⏏1;␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤       …»
03:44 TEttinger maybe to the /msg
03:44 Xliff Yeah.
03:47 Xliff m: my $c = '$.create_child_context; # F:';  $c ~~ /\$<[ !\. >]>(<[ \w\d ]>+) "; # F:"/; say $0;
03:47 camelia rakudo-moar c37939: OUTPUT«「create_child_context」␤»
03:47 Xliff Something tells me I might have issues with the last quoted portion, there.
04:13 domm_ joined #perl6
04:13 aries_liuxueyang joined #perl6
04:14 Cabanossi joined #perl6
04:26 tardisx joined #perl6
04:29 tardisx joined #perl6
04:36 araujo_ joined #perl6
04:42 unbound_delegate joined #perl6
04:49 Actualeyes joined #perl6
04:58 cpage_ joined #perl6
05:08 CIAvash joined #perl6
05:15 wamba joined #perl6
05:15 16WAAAZ4G joined #perl6
05:16 koma___ joined #perl6
05:17 xiaomiao joined #perl6
05:20 dalek star: 1e44a2c | (Steve Mynott)++ | tools/star/Makefile:
05:20 dalek star: bump versions to 2016.04
05:20 dalek star: review: https://github.com/rakudo/star/commit/1e44a2c835
05:22 dalek star: e66ede1 | (Steve Mynott)++ | modules/ (12 files):
05:22 dalek star: bump git submodules
05:22 dalek star: review: https://github.com/rakudo/star/commit/e66ede1eeb
05:24 PotatoGim_ joined #perl6
05:26 PotatoGim_ joined #perl6
05:28 PotatoGim joined #perl6
05:31 dalek star: 7034e73 | (Steve Mynott)++ | docs/announce/2016.0 (2 files):
05:31 dalek star: rename never released star 2016.03.md to be 2016.04.md
05:31 dalek star: review: https://github.com/rakudo/star/commit/7034e73857
05:31 dalek star: 32e6cd9 | (Steve Mynott)++ | docs/announce/2016.04.md:
05:31 dalek star: bump versions and month in announce
05:31 dalek star: review: https://github.com/rakudo/star/commit/32e6cd918e
05:31 dalek star: 1210731 | (Steve Mynott)++ | / (2 files):
05:31 dalek star: Bumpy McVersionBump
05:31 dalek star: review: https://github.com/rakudo/star/commit/12107319cb
05:43 johndau joined #perl6
05:45 dalek DBIish: a0c72b2 | (Salvador Ortiz)++ | / (6 files):
05:45 dalek DBIish: A few tweaks for Windows compatibility
05:45 dalek DBIish: review: https://github.com/perl6/DBIish/commit/a0c72b2f02
06:09 Xliff joined #perl6
06:10 leont joined #perl6
06:32 firstdayonthejob joined #perl6
06:34 sortiz m: sub I(int \a) { a }; my uint8 $b = 0xff; $b++; say $b,':',I($b); $b = 2; say $b,':',I($b);
06:34 camelia rakudo-moar c37939: OUTPUT«256:0␤258:2␤»
06:35 Ven joined #perl6
06:35 sortiz m: sub I(int \a) { a }; my uint8 $b = 0xff; $b++,Mu; say $b,':',I($b); $b = 2; say $b,':',I($b); # Avoiding sink, for the record
06:35 camelia rakudo-moar c37939: OUTPUT«0:0␤2:2␤»
06:37 ufobat good morning perl6 :D
06:38 sortiz ufobat, o/
06:38 ufobat does anyone like, dislike or have a certain opinion on https://gist.github.com/ufobat/72aceef40b683339a38e88336d6be3e0 ? It's about Bailador
06:39 jdv79 i got a 404
06:40 ufobat jdv79, for my example?
06:40 jdv79 yes
06:41 ufobat its work in progress, not yet uploaded.. i was looking for a "ah your OO syntax is not cool because..." or "yeah looks cool"
06:41 moritz ufobat: I don't know if this is a Dancer inheritance, but if you're already writing a class for the application, I would expect to be able to use methods as controllers
06:42 moritz ufobat: doing the actual application work in a sub inside a BUILD seems weird
06:42 Xliff m: my %h = a=>1, b => 2; say %h<a>:exists
06:42 camelia rakudo-moar c37939: OUTPUT«True␤»
06:42 ufobat with controlers you mean the sub behind a get '/foo' => ..., right?
06:42 moritz (at least for someone who is familiar with Mojolicious, and a little bit with Catalyst)
06:42 moritz ufobat: correct
06:42 jdv79 i meant the gist url 404s on me
06:43 moritz jdv79: works here
06:43 ufobat yeah i agree with you, that is already on my doto list, but this is just the first step
06:43 moritz ufobat: ok
06:43 ufobat remember our discussion about perl5 curry, that was because your suggestion
06:44 * moritz doesn't remember such a discusion
06:45 Xliff http://irclog.perlgeek.de/perl6/2016-04-08#i_12308176
06:45 nine_ I'd love to see someone try a Catalysty approach in Perl 6. With our subroutine traits Catalyst's way would be quite sweet.
06:45 jeek Is it possible to pass an array to 'any'?
06:46 ufobat moritz, thats probably because you're getting older :) .oO( or have to much more improtant stuff in your head )
06:46 Xliff Ouch, ufobat!
06:46 ufobat ;)
06:46 Xliff <- Unfortunately true for this guy
06:47 Xliff I forget sleep.
06:47 Xliff Which I should be doing now.
06:47 moritz ufobat: too much stuff in my head; I doubt much of it is, like, *actually* important :-)
06:47 moritz good night Xliff
06:48 jdv79 the cat way can get messy though
06:48 Xliff moritz: Stop giving me useful suggestions!
06:48 Xliff =)
06:48 Xliff m: my $a = 'a'; my %h = a=>1, b => 2; say %h<$a>:exists
06:48 camelia rakudo-moar c37939: OUTPUT«False␤»
06:48 Xliff m: my $a = 'a'; my %h = a=>1, b => 2; say %h<"$a">:exists
06:48 ufobat :D
06:48 camelia rakudo-moar c37939: OUTPUT«False␤»
06:48 Xliff m: my $a = 'a'; my %h = a=>1, b => 2; say %h{"$a"}:exists
06:48 camelia rakudo-moar c37939: OUTPUT«True␤»
06:49 jdv79 maybe a simpler scheme might bw nice.
06:49 ufobat thanks for the feedback guys :-)
06:49 domidumont joined #perl6
06:49 jdv79 github let me down
06:50 Xliff Why do I get 'Unexpected named parameter 'exists' passed' in my code, then...camelia???
06:50 ufobat jdv79, still 404 on my url?
06:50 MadcapJake I'm getting another segfault Xliff :\
06:50 jdv79 yes
06:50 jdv79 idk...
06:50 Xliff MadcapJake, Nooooo!
06:50 Xliff MadcapJake, do you have it all committed on origin/master or do I need to switch to a branch?
06:50 ufobat jdv79, https://nopaste.me/view/fca45b2d
06:50 jdv79 maybe im stucked to an dead cluster
06:51 jdv79 at least that works.  thanks.
06:51 Xliff MadcapJake, such are the occupational hazards for developers that use NativeCall
06:52 sortiz :P
06:52 Xliff sortiz?
06:52 sortiz Yep.
06:52 Xliff :P ?
06:52 MadcapJake it's just one function (myhtml_node_tag_id) that does it
06:53 MadcapJake Xliff: it's all still in complete-raw-transform
06:53 Xliff OK.
06:53 * sortiz My insurance cover a few segfaults a month. ;-)
06:53 MadcapJake I wanted to get at least one example completely working before I merge back into master
06:53 Xliff sortiz, LOL!
06:53 Xliff MadcapJake, Ah! Gotcha.
06:54 MadcapJake if you comment out that segfault line there is some printing of html that happens! (but it's still not properly modifying the div via adding an attribute...)
06:54 domidumont joined #perl6
06:55 MadcapJake So once I clear up this Raw interface, I'll merge then start working on a 6y interface
06:56 Xliff MadcapJake, Jeez. I'm on that branch and I'm still getting runaway rakudo processes when running eg/attributes-high.pl6
06:57 Xliff I let 'em fill up htop screen before I killed it.
06:57 Xliff I was told that was precomp going nuts.
06:57 _mg_ joined #perl6
06:58 MadcapJake maybe try a clean clone?
06:58 ufobat nine_, i am not familiar with catalyst at all, but did i get it right you basically add a trait to a sub, saying this sub is for hanlding $path, $method?
06:59 MadcapJake technically the only modules needed are Lib, Status, and Raw, so you could just delete the rest if you like
07:00 dalek star: 0e36f4e | (Steve Mynott)++ | docs/announce/2016.04.md:
07:00 dalek star: compiler changelog updates
07:00 dalek star: review: https://github.com/rakudo/star/commit/0e36f4edd0
07:00 nine_ ufobat: exactly
07:00 ufobat ok
07:00 Xliff OK. I must be on a stale clone. I still se NativeCall.pm6
07:00 Xliff s/se /see /
07:00 MadcapJake it's still in there, I'll just delete them and push, one sec
07:01 stmuk star module changelog TODO .. tomorrow (PST)
07:02 devtom30 joined #perl6
07:02 sortiz MadcapJake, As I see in your code, lots of CArray[uint8] can be replaced by Buf, and you can avoid the copy.
07:03 MadcapJake sortiz: really? How does that work?
07:03 MadcapJake someone in here was telling me to use CArray[uint] instead of Str + explicitly-manage (and edited the docs accordingly) so I just assumed that was the way to go
07:04 Xliff MadcapJake, SEGV reason -> # 0xb5a54f70 in myhtml_node_tag_id (node=0x0) at myhtml.c:594 <- node var is NULL.
07:04 nine_ ufobat: like method chain_customer($c, $id) is chained('/') is path-part('customer') is capture-args(1) { $c.stash(customer => $c.model('DB').resultset('Customer').find($id)); }; method edit($c) is chained (chain_customer) { # do something with $c.stash<customer> }; # for /customer/1/edit
07:04 MadcapJake node is null? how could that be...
07:06 sortiz MadcapJake, A C function with a param 'char*' can be passed a Buf, for example: sub myhtml_encoding_detect_bom(Buf, size_t, int32 is rw)
07:07 MadcapJake sortiz: how do I create one of those from a string?
07:08 ufobat nine_, that looks cool..
07:10 sortiz m: my $a = "Hola a todos".encode; say $a ~~ Blob; # Str.encode return Blobs that can be passed directly.
07:10 camelia rakudo-moar c37939: OUTPUT«True␤»
07:11 Xliff ==2457== Invalid read of size 4
07:11 Xliff ==2457==    at 0xDC60F70: myhtml_node_tag_id (myhtml.c:594)
07:11 rindolf joined #perl6
07:11 Xliff MadcapJake, ^^ Something is off in the mapping of that routine.
07:12 MadcapJake hmmm
07:12 MadcapJake sortiz: thanks! What would you say is the proper time to use a CArray[uint] vs Buf?
07:14 sortiz As you can create Blob/Buf of any native Integer type, I only use CArray for CPointer derived types.
07:20 Xliff 'night everyone. Need sleep.
07:20 sortiz But note that Blob/Buf can't be used for 'returns' or 'out' arguments, 'cus can be 'unmanaged' CArrays but not Blob/Buf.
07:20 RabidGravy joined #perl6
07:20 MadcapJake oh so for const char * I should still use CArrays?
07:21 sortiz Nop, for const char *, a Blob works well.
07:23 sortiz With the plus that always you can use Blob.bytes for the current size, see an example at: https://github.com/perl6/DBIish/blob/master/lib/DBDish/mysql/Native.pm6#L161
07:23 Timbus why um. why not use Str is encoded('utf8') ? are you hoping to handle a lot of different blobs
07:24 MadcapJake sortiz: ! you've really helped! Blob actually causes the myhtml_parse functions to work properly! haha!
07:24 shmibs joined #perl6
07:24 Timbus like are you not wanting perl6 to deal with the strings youre passing around (im assuming this is strings, i saw the word html)
07:25 MadcapJake Timbus: it's for nativecall stuff
07:25 Timbus .. yes
07:25 sortiz Timbus, MadcapJake is using all forms of encoding, so he has a Blob already.
07:26 MadcapJake so wait, Str is encoded('utf8') would work too?!
07:26 riatre joined #perl6
07:26 Timbus .. yes, but it depends on what is fit for purpose here
07:26 MadcapJake but the library can handle all sorts of encodings so I should probably stick with Blob
07:28 johndau joined #perl6
07:28 MadcapJake Xliff_Zzzz: the node was null because the parsing wasn't working properly, now using Blobs, all subsequent calls are functioning as expected!
07:28 sortiz Other use case for Blob/Buf is when the library needs an allocated buffer of a certain size, to be filled, returning, in a 'is rw' argument, the size of the used space.
07:29 zakharyas joined #perl6
07:31 MadcapJake neat!
07:31 MadcapJake I will need to scrub my files of CArrays :) everything is working now with blobs!
07:32 sortiz :-)
07:32 MadcapJake sortiz++ # Hero of the Blobs
07:32 * MadcapJake is needing some serious sleep now!
07:33 MadcapJake g'night Sixians!
07:33 sortiz g'night MadcapJake
07:33 Xliff_Zzzz sortiz: WHAT!?
07:34 Xliff_Zzzz sortiz: How to use blobs for specific size?
07:34 Xliff_Zzzz Like "char header[282]" yes?
07:35 sortiz m: my $buf = Buf[uint8].allocate(282); say $b. $b.bytes;
07:35 camelia rakudo-moar c37939: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2jnnWLu1SQ␤Variable '$b' is not declared␤at /tmp/2jnnWLu1SQ:1␤------> 3my $buf = Buf[uint8].allocate(282); say 7⏏5$b. $b.bytes;␤»
07:35 * MadcapJake . o O ( There should be a Blob section in the nativecall pod )
07:36 sortiz m: my $buf = Buf[uint8].allocate(282); say $buf, $buf.bytes;
07:36 camelia rakudo-moar c37939: OUTPUT«Buf[uint8]:0x<00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00…»
07:36 Xliff_Zzzz MadcapJake, Segfault still there. $ perl6 -Ilib eg/attributes-high.pl6
07:36 Xliff_Zzzz Original tree:
07:36 Xliff_Zzzz Segmentation fault
07:36 MadcapJake did you pull latest? I just pushed
07:36 Xliff_Zzzz Yes
07:36 Xliff_Zzzz Just pulled.
07:36 Xliff_Zzzz Like...2 mins ago.
07:36 MadcapJake pull again! :)
07:36 Xliff_Zzzz I'm still on branch, though. Do I need to pull origin/master?
07:36 sortiz m: my $buf = Buf[uint8].allocate(282); say $buf.bytes, $buf;
07:36 camelia rakudo-moar c37939: OUTPUT«282Buf[uint8]:0x<00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00…»
07:37 MadcapJake Xliff_Zzzz: no it's still raw, I'll clean it up and merge tomorrow
07:37 Sgeo_ joined #perl6
07:38 Xliff_Zzzz sortiz: So "HAS Buf $.header" - then "new() { …$!header = Buf[uint8].allocate(282)… }" before passing to any C libs will work?
07:38 Xliff_Zzzz MadcapJake, nope. Still getting SEGV here
07:39 Xliff_Zzzz You're gonna looove this:
07:39 Xliff_Zzzz Program received signal SIGSEGV, Segmentation fault.
07:39 Xliff_Zzzz _IO_new_fdopen (fd=1, mode=0x0) at iofdopen.c:65
07:39 CIAvash joined #perl6
07:39 MadcapJake whaaa!?
07:40 MadcapJake why would that segfault, fd=1 is STDOUT
07:40 sortiz Xliff_Zzzz, Nop, sorry, Blob/Buf can't work in a CStruct yet. :-(
07:40 Xliff_Zzzz mode is NULL?
07:40 Xliff_Zzzz sortiz, ah. *whew*
07:40 Xliff_Zzzz However will replace all my CArray[uint8]s.
07:40 Xliff_Zzzz Nice work.
07:40 Xliff_Zzzz sortiz++
07:40 MadcapJake mode should be "w+" but maybe I need to encode those too! :P
07:41 sortiz for fdopen's 'mode' an Str suffice. ;-)
07:41 Xliff_Zzzz Looks like its not getting passed.
07:42 MadcapJake Xliff_Zzzz: that's so weird because it works for me (works as a Blob too :P )
07:43 Xliff_Zzzz Hum.
07:43 Xliff_Zzzz I'll rebuild rakudo and try again in the morning.
07:46 MadcapJake You could try File.path('/dev/stdout') too
07:46 MadcapJake s/File/FILE/
07:46 * MadcapJake is really off to bed now &
07:46 sortiz Beware that Blob/Buf encoded strings not necessarily includes a final zero byte!, so for *some* cases a Str is safer.
07:47 domidumont joined #perl6
07:47 * Xliff_Zzzz goes too.
07:48 mohae_ joined #perl6
07:49 g4 joined #perl6
07:49 g4 joined #perl6
07:50 * sortiz hope the difference between 'you can use a …' and 'you should use …' was clear.
07:51 lizmat joined #perl6
08:09 araujo joined #perl6
08:10 tardisx joined #perl6
08:13 darutoko joined #perl6
08:14 tardisx joined #perl6
08:14 araujo joined #perl6
08:14 araujo joined #perl6
08:17 xinming joined #perl6
08:20 dakkar joined #perl6
08:21 masak .u o̊
08:21 yoleaux U+006F LATIN SMALL LETTER O [Ll] (o)
08:21 yoleaux U+030A COMBINING RING ABOVE [Mn] (◌̊)
08:22 sortiz I've collected some dlls needed for DBIish Windows's users. Suggestions about somewhere we can put a zip file with these?
08:22 moritz sortiz: we have a webserver for that somewhere...
08:23 moritz sortiz: I'll try to find it :-)
08:23 sortiz moritz, ok, thanks!
08:24 moritz http://gtk-dlls.p6c.org/
08:24 moritz maybe we can generalize this a bit
08:25 tardisx joined #perl6
08:25 sortiz Yep, seems a good idea. :-)
08:31 uruwi_ joined #perl6
08:36 [particle] joined #perl6
08:38 tardisx joined #perl6
08:45 brrt joined #perl6
08:57 tardisx joined #perl6
08:58 Ven joined #perl6
09:03 sortiz moritz, meantime the zip files are in ftp://ftp.msg.com.mx/pub/DBIish/
09:04 Actualeyes left #perl6
09:13 tardisx joined #perl6
09:26 tardisx joined #perl6
09:34 RabidGravy right, it's a pleasant day and high pollen - off to the seaside
09:35 synopsebot6 joined #perl6
09:37 tardisx joined #perl6
09:38 zakharyas joined #perl6
09:39 sortiz joined #perl6
09:44 cpage_ joined #perl6
09:47 tardisx joined #perl6
09:48 ocbtec joined #perl6
10:05 cognominal joined #perl6
10:12 kid51 joined #perl6
10:13 tardisx joined #perl6
10:21 kurahaupo joined #perl6
10:22 dalek joined #perl6
10:23 tardisx joined #perl6
10:24 Ven joined #perl6
10:26 tardisx joined #perl6
10:30 tardisx joined #perl6
10:31 Ven joined #perl6
10:33 tardisx joined #perl6
10:35 tardisx joined #perl6
10:37 tardisx joined #perl6
10:39 brrt joined #perl6
10:43 tardisx joined #perl6
10:44 kaare__ joined #perl6
10:48 tardisx joined #perl6
10:50 ZoffixWin .tell Herby_ (re Twitter search). It should be easy. If it's not there in by 5PM EST, remind me :)
10:50 yoleaux ZoffixWin: I'll pass your message to Herby_.
10:51 tardisx joined #perl6
10:55 * ZoffixWin suspects tardisx is warping in and out of our time and space....
10:56 DrForr Can't you hear them?
10:57 tardisx joined #perl6
10:58 Xliff_Zzzz Vwoorpp....Vwwoooorp.... Vwoooorp....Vwwwwooorp...... Vvwwwoorp..worp...worp..worp..worp
11:00 tardisx joined #perl6
11:00 Xliff_Zzzz https://www.youtube.com/watch?v=g99SvIodNDw&amp;ab_channel=Chris
11:02 xinming_ joined #perl6
11:02 tardisx joined #perl6
11:04 tardisx joined #perl6
11:05 Ven joined #perl6
11:05 skids joined #perl6
11:08 tardisx joined #perl6
11:12 kid511 joined #perl6
11:12 tardisx joined #perl6
11:19 cognominal in lizmat's report, I see utf8-c8, what is that ?
11:20 timotimo it's how we can deal with input that may be invalid when interpreted as utf8
11:21 timotimo but we still want it to round-trip, and not explode
11:21 konobi joined #perl6
11:21 timotimo m: say Buf[uint8].new(rand xx 80).decode('utf8-c8')
11:21 camelia rakudo-moar c37939: OUTPUT«Type check failed in initializing element #0 to Buf[uint8]; expected uint8 but got Num (0.76465782690449e0)␤  in any  at gen/moar/m-Metamodel.nqp line 1727␤  in block <unit> at /tmp/tfTQN5iRZa line 1␤␤Actually thrown at:␤  in any  at gen/moar/m-M…»
11:21 timotimo whoops
11:22 timotimo m: say Buf[uint8].new((^255).roll(80)).decode('utf8-c8')
11:22 camelia rakudo-moar c37939: OUTPUT«????x8EN ????xFCǡ????xB8f????x81????xD9)ؠ????xBF????xF7l04F????xEA????xAA????xA7????xD9????xF7????x9E&????xF3????x8D????x89D????x91????xDF?nב????xC3(????x8E????xD5>????x8CјX????xAD????x99␤????xB1????xAAX????x9E????xA98j@[????xF2Rtze^????xD1/…»
11:23 tardisx joined #perl6
11:23 timotimo when we encounter a byte that's invalid, we plop out a "private use" unicode symbol followed by xHEXDIGIT
11:23 timotimo m: say Buf[uint8].new((^255).roll(80)).decode('utf8-c8').encode('utf8-c8').perl
11:23 camelia rakudo-moar c37939: OUTPUT«Blob[uint8].new(113,220,249,19,99,67,25,93,21,107,54,78,190,34,122,106,28,142,66,59,31,141,231,97,87,23,23,65,25,147,78,246,189,112,167,189,65,237,189,38,36,170,43,154,80,72,35,8,213,105,170,195,242,149,138,181,240,114,77,217,178,35,241,47,171,197,191,66,9…»
11:24 timotimo m: say Buf[uint8].new((^255).roll(20)).decode('utf8-c8').encode('utf8-c8').perl
11:24 camelia rakudo-moar c37939: OUTPUT«Blob[uint8].new(62,101,166,204,38,63,43,43,150,149,82,141,218,1,232,79,5,150,90,60)␤»
11:24 timotimo ^- you can see the number of elems remains 20, even though there's potential utf8-b0rkage in there
11:24 timotimo we need this for env vars and filenames, because at least on linux they're allowed to be any string of bytes that doesn't contain the null byte or a /
11:25 timotimo but telling our users "filenames are now not Str, but Buf. deal with it. oh and you can't just .decode('utf8') because that'll throw exceptions from time to time. sucks to be you!"
11:26 kurahaupo joined #perl6
11:32 tardisx joined #perl6
11:36 tardisx joined #perl6
11:39 tardisx joined #perl6
11:40 _mg_ joined #perl6
11:43 tardisx joined #perl6
11:47 tardisx joined #perl6
11:52 tardisx joined #perl6
11:54 sortiz timotimo, btw, there are plans for support 'utf8-c8' on NC's 'is encoded' trait?
11:54 rubio_terra joined #perl6
11:56 tardisx joined #perl6
11:57 timotimo it isn't supported?
11:59 sortiz Nop, the only supported encodings are uft8, utf16 and ascii, see: https://github.com/rakudo/rakudo/blob/nom/lib/NativeCall.pm6#L25
12:01 tardisx joined #perl6
12:01 uruwi joined #perl6
12:05 tardisx joined #perl6
12:07 timotimo i didn't know we'd have to implement them individually
12:07 tardisx joined #perl6
12:07 sortiz Those map to choices in MVM_nativecall_make_str ( https://github.com/MoarVM/MoarVM/blob/master/src/core/nativecall.c#L112 )
12:08 Sqirrel joined #perl6
12:08 timotimo should i take a look if i can give you a commit bit to MoarVM/MoarVM, or would you prefer to make a pull request and have me review and merge it? :)
12:10 tardisx joined #perl6
12:12 cognominal joined #perl6
12:12 cognominal thx timotimo
12:14 timotimo YW
12:15 tardisx joined #perl6
12:16 domidumont joined #perl6
12:16 ptolemarch joined #perl6
12:16 sortiz timotimo, I can try a PR. :-)
12:17 tardisx joined #perl6
12:18 domidumont joined #perl6
12:19 tardisx joined #perl6
12:23 smls joined #perl6
12:26 tardisx joined #perl6
12:29 tardisx joined #perl6
12:33 tardisx joined #perl6
12:36 tardisx joined #perl6
12:38 * [Coke] wonders where the coffee truck is
12:38 [Coke] . o O (Not an actual truck)
12:40 cur8or joined #perl6
12:40 tardisx joined #perl6
12:42 jnthn Coffee doesn't come on a truck! It comes in a series of tubes!
12:43 Ven joined #perl6
12:50 [Coke] ... I have spent more time on coffee related work incidents in the past week...
12:51 MadcapJake is there any way to "print" into a Perl 6 variable? I have these print functions in a C library and they print to stdout after all the Perl 6 code has finished.
12:51 * [Coke] drinks his coffee and hides so he doesn't have clean up more coffee.
12:51 [Coke] MadcapJake: one sec.
12:51 tardisx joined #perl6
12:51 [Coke] https://github.com/perl6/roast/blob/master/rosettacode/greatest_element_of_a_list.t#L23
12:52 [Coke] there's a sneaky way. you could do it more explicitly if you wanted.
12:52 ZoffixW joined #perl6
12:53 * [Coke] needs to work on a project where he's actually writing code IN perl 6.
12:53 * [Coke] doesn't think he's even hacking ON perl 6 at this point. blah.
12:53 ZoffixW MadcapJake, there's also IO::MiddleMan: https://github.com/zoffixznet/perl6-IO-MiddleMan
12:53 Praise joined #perl6
12:53 Praise joined #perl6
12:54 tardisx joined #perl6
12:54 wamba joined #perl6
12:54 timotimo [Coke]: that won't help when you have a C library that printf's to stdout
12:54 timotimo but i'm not sure that's what's happening in McJ's code
12:55 MadcapJake yeah, I would need like a C function that creates a fake file handle but really returns the written text instead of printing it
12:56 tardisx joined #perl6
12:57 * MadcapJake wishes IO::Handles would work in nativecall as FILE pointers
12:59 MadcapJake I could give fdopen the stdin file descriptor and then just listen to stdin inside Perl 6, that could work right?
13:00 MadcapJake timotimo: McJ xD Took me a minute to realize that was me! (it's early...)
13:00 timotimo :)
13:01 timotimo no, that won't work
13:01 timotimo what you need is a pipe
13:01 sortiz MadcapJake, how much data you need to write to the Perl6 var?
13:02 tardisx joined #perl6
13:03 Vlavv_ joined #perl6
13:07 MadcapJake sortiz: Could be a lot, these functions let you print node trees
13:08 molaf joined #perl6
13:09 MadcapJake timotimo: how could I create a pipe that (a) reads input and (b) I could get a file-descriptor for
13:09 MadcapJake I could write a temp file and just read from that, but that seems a bit silly
13:11 timotimo when you create a pipe, you get two file-descriptors
13:11 timotimo i forgot what exact function you need; maybe "socketpair"?
13:12 MadcapJake oh sweet!
13:12 sortiz For a pipe, to avoid blocking, you needs two threads.
13:12 timotimo actually, pipe
13:13 MadcapJake `pipe` gives me undeclared routine error
13:15 timotimo well, yeah, it's a C function :)
13:15 MadcapJake oh! didn't realize that
13:16 perlpilot_ joined #perl6
13:16 MadcapJake what is filedes? reading docs says pipe puts file descriptors in filedes[0] and filedes[1]
13:17 timotimo yeah, you need a CArray of ints with space for two fds
13:17 timotimo and you pass that CArray
13:17 MadcapJake ahh! sweet
13:18 tardisx joined #perl6
13:19 MadcapJake this is gonna need some serious C magic :P
13:20 timotimo mostly posix magic
13:20 tardisx joined #perl6
13:21 MadcapJake are you telling me that none of this will work on Windows :P
13:22 timotimo good question
13:22 MadcapJake actually it's not really a big deal, myhtml currently only supports Linux anyways
13:24 sortiz MadcapJake, do you read that you will need two threads/process?
13:28 ZoffixW joined #perl6
13:33 ZoffixW m: say so 'foo' ∈ ∅ <foo bar ber>
13:33 camelia rakudo-moar 6df7ff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YnQdz6ImNN␤Missing required term after infix␤at /tmp/YnQdz6ImNN:1␤------> 3say so 'foo' ∈ ∅ <foo bar ber>7⏏5<EOL>␤    expecting any of:␤        prefix␤        term␤»
13:33 ZoffixW Bug?
13:33 dalek star: da0d992 | (Steve Mynott)++ | docs/announce/2016.04.md:
13:33 dalek star: doc some module changes in annouce
13:33 dalek star: review: https://github.com/rakudo/star/commit/da0d9921cd
13:33 jnthn .u ∅
13:33 yoleaux U+2205 EMPTY SET [Sm] (∅)
13:34 ZoffixW Ah, ∅ is an *empty* set. I thought it was equivalent to set( ... )  not just set()
13:34 jnthn m: say ∅
13:34 camelia rakudo-moar 6df7ff: OUTPUT«set()␤»
13:34 jnthn Yeah :)
13:34 jnthn So ttiar
13:35 ZoffixW What's ttiar?
13:35 jnthn two terms in a row
13:35 ZoffixW Ah
13:35 tardisx joined #perl6
13:35 jnthn (A lot of Perl 6 errors are some analysis on top of that parse fail)
13:36 uruwi joined #perl6
13:36 Juerd I love the term/op-thing in the way Perl is parsed :)
13:39 timotimo aye
13:39 tardisx joined #perl6
13:39 timotimo self-clocking or what's its term
13:39 MadcapJake sortiz: what do you mean?
13:39 dalek doc: cb78678 | (Zoffix Znet)++ | doc/Language/unicode_texas.pod:
13:39 dalek doc: Clarify ∅ => set() is empty set
13:39 dalek doc: review: https://github.com/perl6/doc/commit/cb786789cd
13:41 ZoffixW :o
13:41 sortiz A pipe is an IPC (inter process communication) mechanism, normally you create one and fork, 'cus ss soon as a process attempts to read from an empty pipe, then read(2) will block until data is available.
13:43 sortiz So you need a writing thread and a reading thread.
13:43 tardisx joined #perl6
13:46 skids joined #perl6
13:51 sortiz MadcapJake, In Perl6 the support for pipes assume separate process (via run, shell, QX), and I understand that you want to read the data produced in the same process.
13:53 timotimo that's right
13:53 moritz so why not use a Channel?
13:54 timotimo because the C library probably doesn't know about the Channel type :)
13:55 sortiz moritz, some context: http://irclog.perlgeek.de/perl6/2016-04-20#i_12366223
13:55 domidumont joined #perl6
13:55 moritz oh, I missed that
13:55 tardisx joined #perl6
13:56 Actualeyes joined #perl6
13:57 sortiz moritz, McJ needs something like perl5's IO::Scalar
13:58 tardisx joined #perl6
13:58 MadcapJake sortiz: ok so I am doing Thread.start, is that what you mean?
13:58 timotimo why not just a start { ... } block?
13:58 MadcapJake I dunno, does that make more sense? :P
13:58 timotimo usually
13:59 timotimo not sure if Thread.start will create a new thread all over, or go into the current scheduler. which start { ... } does
13:59 Ven joined #perl6
14:00 tardisx joined #perl6
14:02 timotimo anyway, typically we'll tell you not to use Thread itself. or Lock, or Mutex
14:02 takadonet mornign all
14:02 takadonet morning*
14:02 timotimo heyo taka
14:03 MadcapJake timotimo: so what am I to use to create a separate process? I am using a C function.
14:03 tardisx joined #perl6
14:03 timotimo a separate process is what you use Proc::Async for, for example
14:04 MadcapJake how would I use that with a C function?
14:04 timotimo you build a program that'd call that function for you. why use a process?
14:05 MadcapJake timotimo: because I am trying to capture something printed to a file handle by a C function
14:05 timotimo right. the pipe approach isn't what you want, then?
14:05 MadcapJake timotimo: huh?
14:05 timotimo well, if you can tell the C library what file descriptor to use, you can give it one end of your pipe
14:06 timotimo and read from the other end
14:06 geekosaur that only works without a thread or process if output is less than PIPE_BUF bytes
14:06 MadcapJake right, that's what I am trying right now
14:06 geekosaur otherwise the function blocks
14:06 timotimo yeah
14:06 MadcapJake so I *do* need a thread
14:06 timotimo yeah
14:06 MadcapJake ok xD
14:07 RabidGravy but you can do it in perl
14:07 khw joined #perl6
14:07 MadcapJake RabidGravy: what do you mean? Perl 5?
14:07 RabidGravy in Perl 6
14:07 MadcapJake how?
14:07 timotimo with start { ... }
14:07 timotimo why does it seem like we're talking past each other %)
14:08 RabidGravy with start
14:08 MadcapJake it does :P
14:08 MadcapJake ok yeah that's what I am trying lol
14:08 RabidGravy can you explain from the beginning what you are trying to do?
14:08 MadcapJake haha, sure!
14:09 MadcapJake so, I have a few C functions in a library I am wrapping
14:09 MadcapJake that print to a given FILE handle
14:09 tardisx joined #perl6
14:09 RabidGravy right
14:09 MadcapJake The problem is, they print *after* all the Perl 6 level printing happens
14:09 ZoffixW Any idea how to combine these two lines so I don't have to modify %params?    %params  = %params.kv.map: { uri-escape $_ }; my $body = %params.pairs.sort.map(*.kv.join: '=').join: '&';
14:10 MadcapJake so if you try to include some says in there for clarity, it will just print all those, *then* it prints  the C level stuff
14:10 MadcapJake it looks like it's printed in reverse order too, strangely
14:10 timotimo so something about buffering?
14:10 zakharyas joined #perl6
14:10 sortiz MadcapJake, i think that the "pipe way" is overkill, a temporal file is much simpler :-)
14:10 ZoffixW It sorts the keys, joins key=value, and then joins them as key=value&key2=value2, but I also need to uri-escape() both keys and values
14:10 timotimo ZoffixW: i think you may want to check out how .fmt on a hash works, for one :)
14:11 cdg joined #perl6
14:11 ZoffixW Oh, sweet! timotimo++. That'll do it.
14:11 RabidGravy the FILE does buffer on it's own yes
14:11 ZoffixW I'm kinda sad we now have decent docs, because I feel like a fool when I don't read any :P
14:12 MadcapJake RabidGravy: so what's a Sixian to do? :)
14:13 geekosaur man 3 setvbuf
14:13 brrt joined #perl6
14:13 geekosaur and maybe man 3 fflush
14:13 PhilJ joined #perl6
14:13 tardisx joined #perl6
14:13 PhilJ Hi
14:13 ZoffixW \o
14:14 ZoffixW Hm, actually, I don't think .fmt will help me out here. I can't tell it to uri-encode inside the format string :/
14:14 PhilJ How can I change STDIN to read charset=binary?
14:15 timotimo you can just use the method that reads bytes instead of strings
14:15 timotimo m: $*IN.read(60).perl.say
14:15 camelia rakudo-moar 6df7ff: OUTPUT«Buf[uint8].new(67,195,169,97,100,32,115,108,195,161,110,32,97,103,32,115,108,195,169,105,98,104,116,101,32,109,97,111,114,103,97,32,67,104,111,110,116,97,101,32,68,104,195,186,110,32,110,97,32,110,71,97,108,108,10,65,103,117,115,32)␤»
14:15 timotimo like that
14:16 RabidGravy ZoffixW, look at the way that URI::Template does it
14:16 PhilJ Is there a way to do it while still using 'for lines() ->  $line {'
14:17 PhilJ style
14:17 tardisx joined #perl6
14:17 timotimo difficult, as "what constitutes a line ending" depends on the encoding
14:17 tharkun joined #perl6
14:17 timotimo but at least with utf8, you'll only ever get an \n byte if it's the actual \n
14:18 geekosaur sadly there are a great many network protocols defined in terms of byte streams with \r\n line delimiters
14:18 timotimo do we have a "split" method defined on Buf properly?
14:18 PhilJ ah ok, I have text file thats not UTF8 (get a "Malformed UTF-8" errort). file -bi reports it as charset=binary
14:19 geekosaur that just means it can't figure out the encoding from its limited repertoire (generally it only groks utf8 and iso8859-1 (or -15)
14:19 timotimo https://github.com/tony-o/perl6-http-server-async/blob/master/lib/HTTP/Server/Async.pm6#L69 - here's one terrible way to do it
14:19 * timotimo goes AFK for a bit
14:19 MadcapJake there should be a nativecall sub like nativemacro('_IONBF') so that I don't have to hunt down it's integer value
14:19 timotimo oh, the code i linked searches for \r\n\r\n, not \r\n
14:20 timotimo "nativemacro" would require something quite different from what the rest of nativecall does
14:20 MadcapJake bummer :\
14:20 timotimo remember, nativecall works with dlopen and such, whereas macros are gone by the time the C compiler starts compiling code
14:20 timotimo so we'd have to parse header files
14:20 tardisx joined #perl6
14:21 timotimo *and* make sure we reach the same results the compiler would for your given context
14:21 MadcapJake ah, oh well, just a minor PITA
14:21 timotimo and what if you have a dynamic library that was compiled with a different value for some macro, for example if there was a -DFOO=1 in the makefile or in your CFLAGS environment variable?
14:21 timotimo that's a task fit to make one's head asplode
14:22 MadcapJake macros in general make my head asplode :P
14:22 MadcapJake s/macros/C macros/
14:22 timotimo they're not terribly bad, because they're so stupid. but if they aren't written or used with care, they can cause a whole lot of mayhem
14:22 ZoffixW RabidGravy, thanks.
14:22 timotimo o/
14:23 RabidGravy perl 5's h2xs actually makes a small stub which compiles some function that that returns the value of the #define by name
14:23 MadcapJake timotimo: I just think they are overused.  When reading C code, you have to find all these macros and hunt down their definitions (same goes for typedefs, mind you)
14:24 tardisx joined #perl6
14:24 MadcapJake RabidGravy: neat! MyHTML has a wrapper written in Perl5/xs
14:25 RabidGravy well, you could just rob the constant function from the xs file ;-)
14:26 MadcapJake well what I'm doing with setvbuf, I don't think theirs does
14:29 Actualeyes joined #perl6
14:29 tardisx joined #perl6
14:34 pmurias joined #perl6
14:35 MadcapJake how do I pass NULL to a c function?
14:37 uruwi joined #perl6
14:37 MadcapJake nvm, got it
14:37 RabidGravy if you mean via nativecall, by passing the type object of the thing in the signature
14:38 MadcapJake geekosaur: thanks for the setvbuf tip! that worked!
14:38 MadcapJake RabidGravy: yeah it didn't work for size_t but I ended up just lopping that argument off :)
14:38 RabidGravy :)
14:39 ZoffixWin joined #perl6
14:42 tardisx joined #perl6
14:42 [TuxCM] joined #perl6
14:44 tardisx joined #perl6
14:46 tardisx joined #perl6
14:49 tardisx joined #perl6
14:53 tardisx joined #perl6
14:53 PhilJ How can I get to a variable inside sub MAIN()?
14:53 molaf joined #perl6
14:53 ZoffixW PhilJ, from where?
14:54 PhilJ from the main script after MAIN has exectued
14:54 jnthn The main script body runs before MAIN, I thought?
14:54 jnthn m: say 42; sub MAIN() { say 'here' }
14:54 camelia rakudo-moar 6df7ff: OUTPUT«42␤here␤»
14:55 rindolf joined #perl6
14:55 MadcapJake m: my $forty-two = 42; sub MAIN() { say $forty-two }
14:55 camelia rakudo-moar 6df7ff: OUTPUT«42␤»
14:56 MadcapJake m: sub MAIN() { say $forty-two }; my $forty-two = 42;
14:56 camelia rakudo-moar 6df7ff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dGjyZpDt7M␤Variable '$forty-two' is not declared␤at /tmp/dGjyZpDt7M:1␤------> 3sub MAIN() { say 7⏏5$forty-two }; my $forty-two = 42;␤»
14:56 PhilJ I'm trying to use it to capture command line variables. for instance "sub MAIN($source) " $source is scoped to the sub;
14:56 ZoffixW PhilJ, right, so just put all of your code inside sub MAIN
14:57 PhilJ Doh!
14:57 MadcapJake PhilJ: also, you could create an undefined variable outside of the sub, and then assign to it inside your MAIN
14:57 timotimo if there's just $source, you can also work with $*ARGS if that's easier
14:57 PhilJ MadcapJake: No an option, if you put anything before sub MAIN(), sub MAIN() doesn't execute;
14:58 lizmat joined #perl6
14:58 MadcapJake m: my $source; sub MAIN() { $source = 10 }; say $source;
14:58 camelia rakudo-moar 6df7ff: OUTPUT«(Any)␤»
14:59 MadcapJake m: my $source; sub MAIN() { $source = 10; say $source; };
14:59 camelia rakudo-moar 6df7ff: OUTPUT«10␤»
14:59 MadcapJake PhilJ: you can have lots of stuff before sub MAIN, perl 6 will search for the sub MAIN in top-level scope
15:00 tardisx joined #perl6
15:00 PhilJ Ah ok, it was the scoping that was throwing me off;
15:00 lizmat m: my $source; sub MAIN() { $source = 10; say $source }; say $source;
15:00 camelia rakudo-moar 6df7ff: OUTPUT«(Any)␤10␤»
15:00 ZoffixW MadcapJake, doesn't the main body runs before sub MAIN(){} regardless of where you define it?
15:00 lizmat MadcapJake: the say $source outside of MAIN gets run *before* MAIN gets run
15:01 ZoffixW So it's not very useful to declare vars outside of it in hopes of assigning to them
15:01 MadcapJake right, I noticed that :P
15:01 PhilJ Ok, I'll stop asking stupid questions for a bit now
15:01 MadcapJake ZoffixW: true, unless you had another subroutine outside that is called inside but uses some vars scoped from top-level
15:01 ZoffixW PhilJ, there aren't any stupid questions. Keep asking.
15:03 CIAvash ZoffixW: %params.kv.map(&uri-escape).hash.sort.map(*.kv.join: '=').join: '&';
15:04 mst there are no stupid questions, only stupid people
15:04 mst ... no, wait, that's not right either
15:04 tardisx joined #perl6
15:05 ZoffixW CIAvash++ thanks
15:06 Xliff Aahhhh.... chaining.
15:07 mst http://colabti.org/irclogger/irclogger_log/perl6?date=2016-04-19#l375
15:08 mst I continue to be confused by #perl6's tendency to attack anything talking about perl5 for not talking about perl6 as well
15:08 tardisx joined #perl6
15:08 mst most of the perl5 community still don't care, and the nasty petty attitude is not going to make them any more likely to
15:08 zakharyas joined #perl6
15:08 ZoffixW :D
15:09 CIAvash ZoffixW: I was using the same thing in my code in 2 lines. I made it 1 line after your question! :)
15:11 jnthn mst: While I agree in general, two lines down from what you linked is "they even mention perl 6 in there" - so it apparently *is* talking about Perl 6 as well.
15:11 tardisx joined #perl6
15:11 ZoffixW The sad thing is it doesn't fit onto single line of code, so I still ended up with two lines :D At least there's no second variable :)
15:13 mst jnthn: no it isn't
15:13 mst jnthn: it has one slide that mentions pugs
15:14 mst jnthn: this is my point - nobody even bothers to look before squealing, apparently including you
15:14 jnthn mst: And where, exactly, did I squeal?
15:15 mst jnthn: I'm sorry, only the 'not bothering to look before' part applies to you, you merely disagreed based on not checking
15:16 mst but still can we please stop being nasty to t'other side of the fance, it's really starting to bore me now
15:16 jnthn mst: Yes, well, I've fixed 4 damn GC bugs this afternoon, I think we can excuse me for not having the time to read slides.
15:16 ugexe Ive surprisingly seen a high interest in perl6 from the developer that have been interviewing me. Not enough they were looking to migrate, but at least a positive curiosity
15:16 tardisx joined #perl6
15:16 [Coke] I am apparently obvlious, because I only hear about this stuff from a grumpy (probably deservedly so) mst.
15:16 ugexe developers^
15:16 [Coke] *oblivious ? spelling hard.
15:17 ZoffixW obliviviuous
15:17 mst jnthn: you are absolutely excused for not reading them. what annoyed me is you attempting to contradict me over the content of slides I'd read and you hadn't :P
15:18 mst [Coke]: or just happen not to be in here when it's happening
15:18 jnthn mst: Was just taking "they even mention perl 6 in there" at face value. Apparently I shouldn't have.
15:19 ZoffixW I was here and kinda ignored that convo. To me it looks like word "Perl" means a different thing to different people. So when some use word "Perl" to say something bad about it, some may take it the conversation includes P6, which is probably what triggered hahainternet's rant
15:19 kaare__ joined #perl6
15:19 mst jnthn: it's generally safe to assume that once a perl5 person starts being pissy about perl6 people, or when a perl6 person starts being pissy about perl5 people, that they aren't properly paying attention
15:20 tardisx joined #perl6
15:20 mst however the people being pissy without having paid attention do then produce *actual* reasons for t'other side to be pissy in the process, and I like to nip it in the bud
15:21 [Coke] I had a nice chat with xdg this weekend about 5, 6, naming of 6, and we all seemed very happy and polite, so it's demonstrably possible. :)
15:21 [Coke] (protip: blame TimToady and shrug apologetically)
15:22 ZoffixW :}
15:22 [TuxCM] left #perl6
15:22 _mg_ joined #perl6
15:22 mst at this point it's mostly pretty co-operative, but there's still the odd person who seems to asssume the other side is defecting given even exceedingly weak (or, in this case, outright invented) evidence
15:22 timotimo http://worrydream.com/LearnableProgramming/ - there's some really nifty animations to see here
15:23 mst I'd also note that I originally got this via people going "huh, I thought the perl6 community liked haskell, why are they getting all defensive about it?", who I told was generalising from one example of somebody not getting the point
15:23 geekosaur joined #perl6
15:23 * mst generally finds himself complaining at everybody about equally ;)
15:24 hahainternet mst: in my defence, the perl5 was bad and that was part of my complaint :)
15:29 nowan joined #perl6
15:29 mst hahainternet: based on what? I've seen osfameron's code for various things for years and he's better at perl5 than you are, in my experience
15:30 RabidGravy :-O
15:30 * ZoffixW grabs popcorn
15:31 mst I mean, if there's a bug in one of the slides, I'd be happy to relay that for you
15:34 RabidGravy I'll second the vouching for osfameron
15:41 timotimo clearly osfameron has fame
15:41 timotimo it's even in his name
15:44 mst timotimo++
15:45 mst hahainternet: btw, an "is perl6 an acceptable haskell" post that you mark as 'inspired by' rather than 'rebuttal to' would probably both achieve your goal and be positive (and I'd read it, that sounds interesting :)
15:46 * mst vanishes rugbywards
15:48 [Coke] who owns http://perl6intro.com/ ?
15:48 * [Coke] finds it
15:48 lizmat NAOUM HANKACHE
15:49 timotimo saviour of the universe~
15:49 stmuk https://github.com/tadzik/panda/pull/308
15:50 stmuk *cough*
15:50 lizmat stmuk: merged
15:51 stmuk ty
15:53 [Coke] .seen nige1
15:53 yoleaux I saw nige1 13 Apr 2016 19:56Z in #perl6: <nige1> Xliff and perlpilot  - have updated SixFix now - I think for the better - thanks for the feedback  - the easter egg is now a sidenote
15:54 [Coke] .tell nige1 your feedback on the first sixfix includes things that aren't in the code snippet, btw.
15:54 yoleaux [Coke]: I'll pass your message to nige1.
15:57 dalek star: e8770ff | (Steve Mynott)++ | modules/panda:
15:57 dalek star: update panda for Shell::Command fix
15:57 dalek star: review: https://github.com/rakudo/star/commit/e8770fff33
15:58 zakharyas joined #perl6
16:00 jameslen_ joined #perl6
16:02 vendethiel joined #perl6
16:06 [Coke] seen on FB: The Fibo-Gnocchi sequence.
16:08 araujo_ joined #perl6
16:11 moritz speaking of sixfix: please retweet https://twitter.com/nogoodnickleft/status/722819887714799616
16:12 Xliff Was there a Sixfix this week?
16:13 dalek DBIish: 364b1df | (Salvador Ortiz)++ | lib/DBDish/Oracle/Native.pm6:
16:13 dalek DBIish: Oracle: Add proper DLL name for Windows
16:13 dalek DBIish: review: https://github.com/perl6/DBIish/commit/364b1df784
16:14 ZoffixW .tell Herby_ All done! there's very basic .search in Twitter and full API .search-tweets in Twitter::API. Let me know if the args/output need to be tweaked, since I don't really know what the best use for these features are, I don't know the best args/output.
16:14 yoleaux ZoffixW: I'll pass your message to Herby_.
16:16 sortiz I'm happy to announce that DBIish is now fully tested on Windows x86_64.
16:17 lizmat sortiz++
16:17 ZoffixW Brilliant idea: "Each email includes a coding challenge and a question about Perl 6 you must answer to receive your next SixFix."
16:17 ZoffixW sortiz++
16:18 jnthn sortiz++
16:19 awwaiid joined #perl6
16:19 Xliff Nice job, sortiz++!
16:20 lizmat m: say (^255).grep: { Buf.new($_).decode("utf8-c8").chars == 2 }  # jnthn: range of values giving extra null
16:20 camelia rakudo-moar 6df7ff: OUTPUT«(194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244)␤»
16:21 Xliff Is there a perl6 routine that's designed to find shared libraries?
16:22 Xliff Like findLib(«library name without the 'lib' prefix») --> list of libs with most relevant one first
16:23 Xliff NativeCall does it with the "is native" attribute, so I was hoping I wouldn't have to duplicate code.
16:24 ZoffixW Xliff, there's a LibraryCheck module that can tell you if a lib is present, but I don't think it lists what's available
16:24 hoelzro Xliff: nativecall depends on OS-specific naming conventions and whatever dynamic library loader the OS provides to get at those libraries
16:25 sortiz On Windows: Files=19, Tests=740, 44 wallclock secs ( 0.08 usr +  0.06 sys =  0.14 CPU) Result: PASS
16:26 sortiz On Linux: Files=19, Tests=740, 38 wallclock secs ( 0.11 usr  0.01 sys + 22.46 cusr  1.15 csys = 23.73 CPU) Result: PASS
16:27 lostinfog joined #perl6
16:27 stmuk http://pl6anet.org/drop/rakudo-star-2016.04-RC1.tar.gz
16:27 sortiz stmuk++
16:28 Xliff ZoffixW, thanks. Will check it out.
16:28 Xliff hoelzro, Yeah. And I'm hoping that work is already done so I don't have to Roll My Own.
16:30 sortiz Xliff, See also my WIP: https://github.com/salortiz/NativeLibs
16:31 tardisx joined #perl6
16:31 Xliff sortiz++, thanks.
16:32 MadcapJake I'm about to release v0.1.0 of HTML::MyHTML
16:34 Xliff sortiz: So "constant LIB = NativeLibs::Searcher.at-runtime('xqilla')" ?
16:34 Xliff MadcapJake, nice!
16:34 Xliff I will check again for SEGV.
16:34 Xliff Is git repo up to date?
16:35 tardisx joined #perl6
16:35 Xliff I was thinking it might be due to distribution differences.
16:37 tardisx joined #perl6
16:37 sortiz Xliff, you need to pass also a "Well know symbol", for example the name of a function, to check that the library includes it.
16:39 Xliff sortiz: Hrm. OK.
16:39 sortiz Xliff, for other example see: https://github.com/perl6/DBIish/blob/master/lib/DBDish/SQLite.pm6#L31-L38
16:40 MadcapJake Xliff: yeah it's in master now
16:40 MadcapJake Xliff: aren't you in an ubuntu VM?
16:40 Xliff Yes
16:40 kaare__ joined #perl6
16:40 MadcapJake so not sure how there could be distro differences :P I'm on ubuntu
16:40 tardisx joined #perl6
16:41 Xliff Well, I didn't know that X-p
16:41 Xliff OK. I will pull and check for SEGV
16:41 MadcapJake hehe, thanks! I'm really hoping they're gone
16:41 * MadcapJake crosses fingers and toes
16:42 MadcapJake I wonder if it could have to do with being in a VM
16:43 Xliff Maybe?!?
16:43 Xliff $ perl6 -Ilib eg/attributes-high.pl6
16:43 Xliff Original tree:
16:43 Xliff Segmentation fault
16:43 tardisx joined #perl6
16:43 Xliff The interesting thing is I see the "Original tree:" emitted, which is new.
16:44 MadcapJake Xliff: what does «perl6 -e "$*OUT.native-descriptor.say"» print?
16:46 tardisx joined #perl6
16:49 tardisx joined #perl6
16:49 sortiz MadcapJake, for fdopen, please use a simple Str, not a Blob, that functions needs the final zero.
16:51 MadcapJake sortiz: ok thanks, fixing now
16:53 MadcapJake sortiz: any ideas why Xliff would be getting segfaults in ubuntu (VM) where I am not, also in ubuntu (not VM)
16:54 sortiz MadcapJake, As a general rule, if a function expect a buffer + length, a Blob/Buf is perfect, if expect an ascii zero terminated string use Str.
16:54 MadcapJake ahh, that's good info thanks!
16:55 Xliff MadcapJake, fresh clone, still getting errors.
16:55 Xliff I will reboot into Ubuntu host and check, later.
16:56 tardisx joined #perl6
16:59 tardisx joined #perl6
17:02 tardisx joined #perl6
17:03 ugexe why do i get '===SORRY!=== Grammar::Rules is a builtin type. You can use it without loading a module.' when loading a `Grammar::MIME` that uses a `Grammar::Rules::XXX` when I stub `Grammar::Rules { ... }` in `Grammar::MIME`? If I don't stub, it says it cant find `Grammar::Resources` (there is no such module)
17:05 jnthn m: use Grammar;
17:05 camelia rakudo-moar 6df7ff: OUTPUT«===SORRY!===␤Grammar is a builtin type. You can use it without loading a module.␤»
17:05 jnthn m: use Int;
17:05 camelia rakudo-moar 6df7ff: OUTPUT«===SORRY!===␤Int is a builtin type. You can use it without loading a module.␤»
17:05 jnthn m: use Int::Foo;
17:05 camelia rakudo-moar 6df7ff: OUTPUT«===SORRY!===␤Could not find Int::Foo at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-1/share/perl6␤    CompUnit::Repo…»
17:05 jnthn m: use Grammar::Foo;
17:05 camelia rakudo-moar 6df7ff: OUTPUT«===SORRY!===␤Could not find Grammar::Foo at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-1/share/perl6␤    CompUnit::…»
17:05 jnthn m: use Grammar::Rules;
17:05 camelia rakudo-moar 6df7ff: OUTPUT«===SORRY!===␤Could not find Grammar::Rules at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-1/share/perl6␤    CompUnit…»
17:05 jnthn ugexe: Not sure, sounds like an overzealous check somewhere
17:06 tardisx joined #perl6
17:07 ugexe to clarify: `grammar Grammar::MIME { also does Grammar::Rule::XXX; };`... i have a hunch of i move ::Rule::XXX under Grammar::MIME it'll work...
17:07 ugexe but it seems to happen at module load time so maybe the composition doesnt matter
17:08 tardisx joined #perl6
17:09 Stephen joined #perl6
17:10 Guest26770 Hey there anybody, I was wondering what the caret did in the following statement: say $x.^name;
17:11 timotimo it goes "up a level" into the metaobject
17:11 vendethiel Guest26770: http://doc.perl6.org/language/operators#postfix_.%5E
17:11 [Coke] I was going to say "http://docs.perl6.org/routine/.%5E" , but that explodes. :|
17:12 tardisx joined #perl6
17:12 Guest26770 Huh, interesting.  Thanks, @timotimo and @vendethiel!
17:14 tardisx joined #perl6
17:15 ptolemarch joined #perl6
17:17 domidumont joined #perl6
17:18 tardisx joined #perl6
17:20 timotimo sunvox has a shared library + header file that lets you use its stuff from your own code and that's rather cool and is begging for a perl6 binding :)
17:21 tardisx joined #perl6
17:21 RabidGravy do it! do it!
17:22 RabidGravy we need some actual instruments
17:22 timotimo yo gravy man, how do i learn to tap beats into the drumkit using my keyboard keys?
17:22 timotimo i can somewhat competently use an e-drumkit, but for some reason that seems to be an entirely different part of my brain
17:23 timotimo (not only because of the bass drum being at my foot)
17:23 RabidGravy I use pads on drum machines all the time, I tend to keep the beat with my right foot
17:24 timotimo how do i know which of mine is the right foot?
17:24 timotimo and that doesn't necessarily help me :D
17:24 timotimo oh
17:24 timotimo i think i miscommunicated
17:24 MadcapJake Make an L shape out of your fingers, if it looks correct, that's the left side! Then the opposite side is your right side ;)
17:25 timotimo my problem is not having an idea which keys to press on the beat. i can hold the beat all-right, though
17:25 MadcapJake get a little midi pad
17:25 timotimo how is it different from pounding on my keyboard?
17:27 MadcapJake can handle pounding and they're bigger so you don't have to be so precise; making a beat is easier when you can move more than just your finger.
17:28 RabidGravy well y'know  bass drum, high hat, bass drum and snare, high hat, bass-drum, high hat ....
17:29 tardisx joined #perl6
17:29 * RabidGravy wonders if Hydrogen reacts to the keys
17:30 timotimo that's pretty much the simplest beat, eh?
17:34 ZoffixW joined #perl6
17:34 tardisx joined #perl6
17:37 RabidGravy timotimo yeah
17:37 timotimo one good thing is that the bass drum and hi hat are both on the bottom right and top left of my keyboard
17:38 timotimo because sunvox has them aliased like that
17:38 RabidGravy it is actually quite difficult playing on the keyboard isn't it
17:38 timotimo it's ... different :)
17:39 tardisx joined #perl6
17:39 timotimo ah! i have the third key on the bottom right as well now
17:41 idiosyncrat_ joined #perl6
17:43 tardisx joined #perl6
17:44 teatime what does 'moar' mean / where does the name 'moar' come from ?
17:44 ilmari metamodel on a runtime
17:44 masak that's a backronym, though
17:45 masak mostly the name was chosen because it sounded cute and lolcat-ish
17:45 idiosyncrat_ Hi.  I'm the author of Marpa.  The Perl 6 community has been very helpful to us in the past with questions, and there is interest in incorporating Marpa into Perl 6, so you also have an interest in this matter.
17:45 masak idiosyncrat_: hi!
17:45 masak idiosyncrat_: nice work on Marpa!
17:45 idiosyncrat_ I've started a Marpa::R3, which if and when you port will be the one you want to start from.
17:45 idiosyncrat_ masak: Thanks!
17:46 masak idiosyncrat_: I do some stuff with parsers, and I come across your work now and then.
17:46 idiosyncrat_ This is a good time to re-license -- Marpa was LGPL.
17:46 idiosyncrat_ masak: yes, Marpa had been one of the Internet's best kept secrets, but word seems to be leaking out. :-)
17:47 idiosyncrat_ My question: What should be the new license?
17:47 tardisx joined #perl6
17:47 idiosyncrat_ The "Perl 5 license" or Artistic 2.0?   (Or something else?)
17:47 awwaiid Though I love LGPL, I'm increasingly a fan of the Artistic License. What are you trying to achieve?
17:48 idiosyncrat_ I come here not just for technical advice, but for wisdom, so advice re goals is welcome also.
17:48 awwaiid idiosyncrat_: Rakudo, the main operational implementation of Perl 6, appears to use Artistic 2.0
17:48 MadcapJake What's an easy way to capture the output of curl? I can't seem to get it working
17:49 idiosyncrat_ FSF recommends the "Perl 5 license" for any Perl module, because of compatibility with the community.
17:49 timotimo Proc::Async is how you'd usually do it
17:49 MadcapJake timotimo: what about qx or run?
17:49 awwaiid For me the goal is often (1) let people use my stuff, (2) let me use the stuff they build from my stuff
17:49 idiosyncrat_ So that suggest to me that "Perl 5 license" is the way to go.
17:49 timotimo oh, also a possibility indeed
17:50 MadcapJake timotimo: how do you use them? I can't get it working :P
17:50 awwaiid idiosyncrat_: Yes -- which is basically "GPL || Artistic 2.0"
17:50 awwaiid which sounds great
17:50 idiosyncrat_ awwaiid
17:50 MadcapJake m: qx{curl https://www.google.com}
17:50 camelia rakudo-moar 6df7ff: OUTPUT«qx, qqx is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub QX at src/RESTRICTED.setting line 11␤  in block <unit> at /tmp/XzVnzDaVF1 line 1␤␤»
17:50 tardisx joined #perl6
17:50 idiosyncrat_ awwaiid: No, it GP || Artistic *1.0*
17:50 idiosyncrat_ IIRC
17:51 timotimo perl6 -e 'say qx{ curl http://wakelift.de/ }.lines[0].perl  ->  "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\""
17:51 idiosyncrat_ s/GP/SPL/
17:51 konobi left #perl6
17:51 timotimo you may want to pass a flag that disables its loud output on stderr, though
17:51 idiosyncrat_ s/GP/GPL/ !
17:52 MadcapJake why would I get this «Unable to read from ' curl https://www.google.com/
17:52 awwaiid idiosyncrat_: ahh.... I see. I thought it had switched but looking at my local install I see that you're right. Interesting.
17:53 tardisx joined #perl6
17:53 timotimo MadcapJake: it tries to run a program called that?
17:53 idiosyncrat_ With the LGPL, a problem I had was some serious researchers were unable to read my code ...
17:53 timotimo what's your code look like?
17:53 awwaiid idiosyncrat_: how so?
17:54 MadcapJake for some odd reason https://www.google.com/ doesn't work but any other site I throw at it works just fine
17:54 idiosyncrat_ because of employer IP restrictions, and on consideration it seems best to help them out.
17:55 idiosyncrat_ awwaiid: LGPL code is what some call "contaminating", meaning that folks exposed to it may have derived ideas from it, and be restricted in how they reuse those ideas.
17:55 ilmari idiosyncrat_: copyright does not cover ideas, only expressions
17:55 awwaiid idiosyncrat_: ah. I've always taken the L in LGPL to avoid that.
17:55 awwaiid idiosyncrat_: but back to your question -- I think terms of Perl 5 are a great start
17:56 ilmari awwaiid: the L only means that there's an exemption for derived works created by dynamic linking
17:56 tardisx joined #perl6
17:56 geekosaur perhaps the biggest problem with (L)GPL is it's not been seriously tested in court --- which means nobody knows how it will *really* be interpreted
17:56 Relsak joined #perl6
17:56 idiosyncrat_ awwaiid: Some corporate lawyers are cautious re LGPL and assume the "ideas" taken might be construed to include the "form of expression"
17:57 idiosyncrat_ And the pertinent fact is that these lawyers, right or wrong, dictate what some people can read.
17:58 idiosyncrat_ With questions like this, I often ask "What would timtoadi do in this situation?"
17:58 tardisx joined #perl6
17:58 awwaiid TimToady, I believe, created Artistic 2.0 as his suggested forward looking thing :)
17:58 ilmari geekosaur: the GPL has been enforced in court in Germany at least
17:58 idiosyncrat_ And occasionally he's had the time to answer me, so I'm hopeful ow.
17:58 idiosyncrat_ s/ow/now/
17:59 ilmari http://www.twobirds.com/en/news/articles/2007/review-german-gnu-general-public-license
18:01 tardisx joined #perl6
18:01 idiosyncrat_ awwaiid: my question would be, in the Marpa::R3 situation, would TimToady go with his "forward looking thing", or with compatibility with the vast majority of other Perl 5 code & modules.
18:02 awwaiid For a perl6 Marpa::R3?
18:02 awwaiid I don't really know anyway :)
18:03 tardisx joined #perl6
18:04 idiosyncrat_ masak: I have followed your blog posts over the years -- your comments on Perl 6 has been very informative.
18:05 MadcapJake What's everyone's favorite html parser (in terms of interface)?  Looking for some inspiration as I am ready to write the high-level bits of HTML::MyHTML
18:05 [Coke] "interest in incorporating Marpa into Perl 6" by whom?
18:06 idiosyncrat_ [Coke]: https://github.com/drforr/perl6-Marpa among others
18:06 [Coke] ah. so, providing access via a module. not "incoporate into rakudo"
18:07 [Coke] *incorporate
18:07 tardisx joined #perl6
18:07 [Coke] carry on, then. :)
18:08 teatime .tell AlexDaniel ooo! I have new/interesting info re: our convo about unicode character names (e.g., U+2019) … help me remember to tell you.
18:08 yoleaux teatime: I'll pass your message to AlexDaniel.
18:08 masak idiosyncrat_: thank you, that's nice to hear. I wish I took the time to blog more.
18:09 tardisx joined #perl6
18:10 timotimo aye, your blog posts are always a pleasure to read, masak :)
18:10 MadcapJake ok no opinions on html parsers I guess, I'll try to just sugar up the MyHTML interface
18:11 MadcapJake what's everyone's feelings on exporting enums? Should they be long, namespaced keys or maybe just skip the enum and use a hash?
18:12 idiosyncrat_ MadcapJake: Actually there is a Marpa::R2::HTML, part of Marpa::R2
18:12 MadcapJake idiosyncrat_: neat! not sure what that is, but I'm already knee-deep in writing this module :)
18:13 idiosyncrat_ I wrote it, so I'm prejudiced, but people say nice things about it, at least as long as I'm around. :-)
18:14 MadcapJake Marpa seems really similar to what Perl 6 grammars already cover
18:15 tardisx joined #perl6
18:17 idiosyncrat_ MadcapJake: http://jeffreykegler.github.io/Ocean-of-Awareness-blog/metapages/annotated.html#PERL6
18:19 MadcapJake interesting! thanks for the reading material!
18:19 tardisx joined #perl6
18:24 tardisx joined #perl6
18:26 teatime can you easily create an operator that duplicates another existing one, w/o duplicating the implementation… something like:  sub infix:<∨> = &infix:<?|>   ?
18:27 jnthn m: my &infix:<omg> = &infix:<+>; say 4 omg 2
18:27 camelia rakudo-moar 6df7ff: OUTPUT«6␤»
18:27 teatime in a module, such that it could be imported, I mean; not to rakudo itself.
18:27 teatime cool, thanks.
18:27 teatime jnthn++
18:28 masak m: sub infix:<omg> { &infix:<+>($^l, $^r) }; say 40 omg 2
18:28 camelia rakudo-moar 6df7ff: OUTPUT«42␤»
18:29 tardisx joined #perl6
18:30 MadcapJake m: my &infix:<omg> = &infix:<+>; (5, 4, 2) Zomg (1, 2, 4)
18:30 camelia rakudo-moar 6df7ff: ( no output )
18:30 MadcapJake m: my &infix:<omg> = &infix:<+>; say (5, 4, 2) Zomg (1, 2, 4)
18:30 camelia rakudo-moar 6df7ff: OUTPUT«(6 6 6)␤»
18:30 timotimo the Zomg operator, yay
18:30 MadcapJake lol
18:31 hoelzro hahahha
18:32 tardisx joined #perl6
18:33 teatime m: sub infix:<∨> { $^l ?| $^r };  say True ∨ False;  &infix:<∧> = &infix:<?&>; say True ∧ False;
18:33 camelia rakudo-moar 6df7ff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8LrsSK2ujG␤Confused␤at /tmp/8LrsSK2ujG:1␤------> 3lse;  &infix:<∧> = &infix:<?&>; say True7⏏5 ∧ False;␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤       …»
18:33 teatime naturally, that worked in my local repl..
18:34 teatime I only put it here so I could say, "yay, it *is* easy/painless!"  :)
18:35 teatime ah, nm; it was just lacking 'my'.  I guess it worked here 'cause I'd already defined it in the repl.
18:37 tardisx joined #perl6
18:42 MadcapJake teatime: that is cool, you could create a whole propositional logic module!
18:43 masak m: sub infix:<∨> { $^l ?| $^r };  say True ∨ False; my &infix:<∧> = &infix:<?&>; say True ∧ False
18:43 camelia rakudo-moar 6df7ff: OUTPUT«True␤False␤»
18:43 masak teatime: need to use `my` when declaring new variables.
18:44 masak best guess it worked for you is you iterated your way towards a solution, but used `my` the first time
18:44 tardisx joined #perl6
18:44 teatime my plan is to create a boat-load of new/additional(sensible/useful) unicode operators, clumped into small, related sets (∧ and ∨ would be together under one tag, e.g), so that people can just `use WhateverMod :logic` to get them
18:45 MadcapJake teatime: that's awesome!
18:45 teatime you'd be able to import individual ones, or groups.  and that way, it only affects their own lexical scope.  but, perhaps I already exists... I hope I don't forget to check first, lol
18:45 teatime s/I already/it already/
18:46 RabidGravy finally broke my block and got basic authentication working for Sofa :)
18:46 MadcapJake I wonder how difficult it would be to capture propositional implication
18:46 teatime that reminds me I need to finish a proof, was helping someone in #logic and got mad distracted... as you can see ;)
18:46 MadcapJake teatime: You'll exist whether or not you check ;)
18:47 tardisx joined #perl6
18:50 tardisx joined #perl6
18:51 MadcapJake how do you keep a hex number in hex form?
18:52 hoelzro MadcapJake: what do you mean?
18:52 [Coke] it's only hex when you show it to someone.
18:52 tardisx joined #perl6
18:52 [Coke] internally, it's "just" a number.
18:53 MadcapJake so it never actually is a hex?
18:53 hoelzro nope
18:54 hoelzro if you want a number to be a number, but always Str to hex, you can mixin a role:
18:54 geekosaur if you want it in "hex" you presumably want it as a Str
18:54 hoelzro m: 0x16 but role { method Str { sprintf('0x%x', self) } }
18:54 camelia rakudo-moar 6df7ff: ( no output )
18:54 MadcapJake so then I'm assuming that C functions don't care either, right?
18:54 hoelzro m: say 0x16 but role { method Str { sprintf('0x%x', self) } }
18:54 camelia rakudo-moar 6df7ff: OUTPUT«0x16␤»
18:54 hoelzro nope, they probably don't
18:54 hoelzro s/probably //
18:54 geekosaur nope, hex is a representation, it's all binary inside
18:54 MadcapJake ok then no biggy, thought that my sub was converting them
18:54 geekosaur unless it is documented as taking a string in a particular format
18:55 MadcapJake ok cool! good to know, thanks all!
18:55 tardisx joined #perl6
18:58 tardisx joined #perl6
19:00 aindilis joined #perl6
19:02 tardisx joined #perl6
19:05 tardisx joined #perl6
19:06 awwaiid joined #perl6
19:07 trnh joined #perl6
19:08 skids joined #perl6
19:10 tardisx joined #perl6
19:10 MadcapJake are you supposed to put the version adverb on all exported modules?
19:13 tardisx joined #perl6
19:14 kaare__ joined #perl6
19:14 jjido_ joined #perl6
19:17 tardisx joined #perl6
19:18 dalek ecosystem: f527310 | (Jake Russo)++ | META.list:
19:18 dalek ecosystem: Add HTML::MyHTML
19:18 dalek ecosystem:
19:18 dalek ecosystem: https://github.com/MadcapJake/p6-MyHTML
19:18 dalek ecosystem: https://github.com/lexborisov/myhtml
19:18 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/f52731062b
19:19 MadcapJake jnthn: where do you place :ver<0.2.0> ? on all modules in provides?
19:21 trnh joined #perl6
19:22 tardisx joined #perl6
19:25 brrt joined #perl6
19:26 tardisx joined #perl6
19:28 tardisx joined #perl6
19:34 tardisx joined #perl6
19:41 nowan joined #perl6
19:43 kaare_ joined #perl6
19:43 tardisx joined #perl6
19:45 tardisx joined #perl6
19:48 tardisx joined #perl6
19:48 nowan joined #perl6
19:49 jjido joined #perl6
19:52 tardisx joined #perl6
19:54 trnh joined #perl6
19:55 tardisx joined #perl6
19:57 tardisx joined #perl6
19:58 dduncan joined #perl6
19:58 dduncan left #perl6
20:01 tardisx joined #perl6
20:05 firstdayonthejob joined #perl6
20:05 tardisx joined #perl6
20:10 tardisx joined #perl6
20:12 tardisx joined #perl6
20:12 ajoe joined #perl6
20:13 cdg joined #perl6
20:14 jnthn MadcapJake: You can just put it in the version field in a META.info, I thought?
20:15 trnh joined #perl6
20:16 tardisx joined #perl6
20:16 MadcapJake oh ok great!
20:17 jnthn It's what I've done anyway, and nobody fired me yet :)
20:17 MadcapJake hehe! that's good! so the DepSpec is assembled from the meta and there's nothing needed in the actual module files then, eh?
20:18 ugexe ideally you would also be able to declare versions on specific classes/namespaces beyond the version of the distribution as a whole
20:18 tardisx joined #perl6
20:20 MadcapJake that'd be useful! also there is the api adverb too, is all of that NYI or just not documented?
20:21 * jnthn is probably the wrong person to ask about module-y things, fwiw :)
20:21 MadcapJake ahh alright :P
20:21 ugexe it should all work, but i dont think API does anything different than auth yet
20:21 patrickz joined #perl6
20:22 jnthn Others who know that stuff better than me are improving it faster than I can keep up with. :-)
20:22 ugexe it just adds it string form to the sha1 digest
20:22 ugexe zef handles all of it from the distribution side though
20:23 MadcapJake where would you place that adverb? on top-level modules/classes?
20:24 MadcapJake you'd probably need to add that to provides then too right?
20:24 cpage_ joined #perl6
20:24 tardisx joined #perl6
20:24 ugexe probably, im not sure how provides will work with differing versions/api
20:25 MadcapJake yeah that's what I'm wondering
20:25 MadcapJake still kind of toying with gx-perl6 and I will need solutions for these problems :)
20:26 dalek doc: 6c928fa | (Jan-Olof Hendig)++ | doc/Type/Int.pod:
20:26 dalek doc: Fixed duplicate line and added examples to is-prime, expmod and unival
20:26 dalek doc: review: https://github.com/perl6/doc/commit/6c928fac1e
20:26 ugexe zef will handle dependencies listed as XXX::FOO:auth<a>:ver<*>:api<*>, but im not sure if writing it all as one string is best
20:26 ugexe but both provides and depends need a similar solution
20:26 MadcapJake well that's the DepSpec right there
20:27 ugexe but it can be written :auth('a'), :auth<a>, etc and its technically the same
20:27 MadcapJake another option would be json objects
20:27 ugexe yep, but the deeper the meta6.json structure gets the more difficult it gets to write a proper one by hand
20:27 tardisx joined #perl6
20:28 hankache joined #perl6
20:28 MadcapJake true but maybe depends could accept string literal depspecs *and* object literal depspecs
20:28 ugexe although getting automatically expanded during install / indexing is reasonable
20:29 MadcapJake I don't see adding singleton objects for depended upon modules as going that deep really, it's really barely a step deeper than the provides object
20:29 kaare_ joined #perl6
20:30 ugexe that already happens, its handled in a CompUnit::Repository
20:30 hankache good evening #perl6
20:30 yoleaux 18 Apr 2016 21:31Z <pmurias> hankache: I'm working on fixing bugs that prevent rakudo-js from compiling the setting
20:30 ugexe provides gets expanded
20:31 ugexe fwiw the Distribution PR i have sitting in limbo would handle what your asking too
20:31 tardisx joined #perl6
20:31 ugexe you would provide your own meta parser to go into the installer
20:31 ufobat joined #perl6
20:31 MadcapJake cool, just trying to figure out what's codified, I will need to re-implement much of it for GX but it'd be nice if a lot of it was just codified into META6
20:32 ufobat hi :)
20:32 ugexe meta6 is meant to be interpreted into something else
20:33 hankache pmurias++ #rakudo-js
20:34 MadcapJake ugexe: right I just mean that GX has it's own filesystem (IPFS) and I want to avoid duplicating it, so it would be helpful to have those depspec attributes codified into provides/depends so I can avoid needing to parse any other files for that info.
20:35 tardisx joined #perl6
20:35 MadcapJake tardisx: it appears you are having some IRC problems, eh? :)
20:35 hankache ufobat++ #bailador
20:36 ugexe CURI also uses its own file system essentially. thats why it'll never be everything to everyone and needs to be interpreted
20:38 MadcapJake ugexe: right, I just hope that I don't have to try and delve into Perl 6 sources to find stuff because that will get expensive.  Part of the appeal of GX for me is that it's local to each project.
20:38 hankache i read somewhere that we can uninstall modules now (I think R* doc) how can we do that? i don't see any options in panda.
20:38 ugexe zef uninstall Module::Name
20:39 ufobat hankache: what? :D
20:40 ugexe or `zef nuke site` to delete all installed modules
20:40 hankache oh zef! i should give it a try. can i use both panda and zef or will conflicts arise?
20:41 ugexe no problems
20:41 ugexe you can use zef without even installing it as well
20:42 hankache hein?! how so?
20:44 ugexe you can install anything else from within its directory: perl6 -Ilib bin/zef -v uninstall Some::Module (or install Some::Module, etc)
20:44 ugexe as it does not need to bootstrap itself
20:47 hankache nice!
20:48 tardisx joined #perl6
20:49 hankache ugexe: btw on the readme you should remove the hyphen from "rakudobrew build-zef" and replace it with a space
20:54 tardisx joined #perl6
20:55 pmurias_ joined #perl6
20:57 neuron joined #perl6
20:57 neuron Hi
20:57 neuron where do I find sources of nqp::nativecallglobal?
20:58 neuron nativecall seems to be failing on windows for C++ library, I would like to find out more about why
20:58 tardisx joined #perl6
21:00 jjido_ joined #perl6
21:00 ufobat is there a FINALLY for try { CATCH .... }?
21:00 jnthn neuron: Maybe look somewhere around https://github.com/MoarVM/MoarVM/blob/2117aa7fa6d886b38880472a4d5028a9db924b17/src/core/nativecall.c#L589
21:00 timotimo probably LEAVE
21:01 jnthn ufobat: LEAVE
21:01 ufobat thanks!
21:01 neuron jnthn: thanks, finally I know where moarvm sources are :)
21:01 tardisx joined #perl6
21:02 ufobat it is not documented, is it? https://doc.perl6.org/language/exceptions
21:03 jnthn neuron: If it's a problem with the name mangling though, that's implemented in Perl 6
21:03 jnthn neuron: For example https://github.com/rakudo/rakudo/blob/nom/lib/NativeCall/Compiler/MSVC.pm6
21:03 neuron jnthn: I don't think it's a problem with C++ mangler, the cglobal function is called with the correct mangled form IMO
21:04 jnthn Ah, OK
21:04 tardisx joined #perl6
21:04 neuron At least it corresponds to what I can see in the dll
21:05 dogbert2 ufobat: https://doc.perl6.org/language/phasers#LEAVE
21:05 neuron Yet, the cglobal function fails, and I get the error: Don't know how to mangle symbol 'QString::number' for library 'Qt5Core.dll'   in sub guess-name-mangler at C:\rakudo\share\perl6\sources\075EFE4B4CDAAF73190 194EA876F81A1F128D1A2 line 206
21:07 ufobat dogbert2, ahh cool! :-) i would have never ever found this
21:09 tardisx joined #perl6
21:11 tardisx joined #perl6
21:14 tardisx joined #perl6
21:19 tardisx joined #perl6
21:22 tardisx joined #perl6
21:24 tardisx joined #perl6
21:28 tardisx joined #perl6
21:30 ZoffixWin MadcapJake, would be sweet if HTML::MyHTML used camel case :(
21:31 tardisx joined #perl6
21:32 ZoffixWin MadcapJake, err.. kebab-case ~_~
21:33 MadcapJake ZoffixWin: in what regard?
21:34 neuron jnthn: Ah, most probably I'm trying to load 32bit lib. Maybe dlerror() could return also textual representation of the problem.
21:34 ZoffixWin For sub names. I mean it seems cannonical Perl 6 casing, but if I use that module, I have to mix kebab-case everywhere with underscore_name functions
21:35 MadcapJake ahh that's the native stuff, I just figured I'd leave the native functions alone.  A sugary wrapping is on its way!
21:35 neuron But since guess-name-mangler tries all known mangling schema, it's difficult to know which error message is relevant ...
21:35 MadcapJake with kebab-case
21:36 ZoffixWin Alright then :)
21:36 * MadcapJake off to a social event with mere mortals &
21:36 ZoffixWin :o
21:36 timotimo cya
21:36 TEttinger joined #perl6
21:37 tardisx joined #perl6
21:40 tardisx joined #perl6
21:44 tardisx joined #perl6
21:45 cpage_ joined #perl6
21:49 autarch joined #perl6
21:51 tardisx joined #perl6
21:59 tardisx joined #perl6
22:00 ZoffixWin_ joined #perl6
22:00 ZoffixWin_ joined #perl6
22:02 tardisx joined #perl6
22:05 tardisx joined #perl6
22:08 tardisx joined #perl6
22:11 tardisx joined #perl6
22:13 trnh joined #perl6
22:15 kid51 joined #perl6
22:15 tardisx joined #perl6
22:16 timotimo in a pleasing turn of events, afl-fuzz started finding new unique crashes again for the "only --dump a bytecode file" case
22:17 tardisx joined #perl6
22:21 tardisx joined #perl6
22:21 ZoffixWin /mode #perl6 +b tardisx!*@*$##fix_your_connection     /msg tardisx Sorry, you seem to be re-connecting often. Just message us and we'll remove the #perl6 ban
22:22 TEttinger a little bit of an interesting way to non-ban
22:22 skids joined #perl6
22:23 trnh joined #perl6
22:23 trnh joined #perl6
22:24 tardisx joined #perl6
22:24 Herby_ joined #perl6
22:24 Herby_ Evening, everyone!
22:24 yoleaux 10:50Z <ZoffixWin> Herby_: (re Twitter search). It should be easy. If it's not there in by 5PM EST, remind me :)
22:24 yoleaux 16:14Z <ZoffixW> Herby_: All done! there's very basic .search in Twitter and full API .search-tweets in Twitter::API. Let me know if the args/output need to be tweaked, since I don't really know what the best use for these features are, I don't know the best args/output.
22:24 ZoffixWin \o
22:25 Herby_ o/
22:25 ZoffixWin Herby_, let me know if the search needs to be changed in any way :)
22:25 Herby_ Great, I'll test it out tonight and give you some feedback
22:25 Herby_ That was a fast add-on :)
22:26 ZoffixWin :)
22:29 tardisx joined #perl6
22:30 Herby_ looks like it requires a new module 'Subset::Helper'?
22:31 ZoffixWin Yes.
22:32 ZoffixWin Why doesn't this explode when $res is a Failure? https://github.com/zoffixznet/perl6-NASA/blob/master/lib/NASA/MarsRovers/Rover.pm6#L55
22:32 tardisx joined #perl6
22:32 ZoffixWin Right now running more code gives me this error "Attempted to ASSIGN-KEY to (HANDLED) ERROR 400: Bad Request": https://gist.github.com/zoffixznet/c428812ab8d99178801e4aba9cfc5a0f
22:33 ZoffixWin s/more/my/;
22:33 skids It isn't sunk, is why.
22:33 skids m: my $res = Failure.new;
22:33 camelia rakudo-moar 6df7ff: ( no output )
22:34 skids m: my $res = Failure.new; $res;
22:34 camelia rakudo-moar 6df7ff: OUTPUT«WARNINGS for /tmp/drz2OlQhTm:␤Useless use of $res in sink context (line 1)␤»
22:34 ZoffixWin m: sub foo { fail "bar" }; my $x = foo; my $y = $x<foo><bar>; say $y
22:34 camelia rakudo-moar 6df7ff: OUTPUT«bar␤  in sub foo at /tmp/_rWXfXprGn line 1␤  in block <unit> at /tmp/_rWXfXprGn line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/_rWXfXprGn line 1␤␤»
22:34 skids erm
22:34 skids m: my $res = Failure.new; $res + 1;
22:34 camelia rakudo-moar 6df7ff: OUTPUT«WARNINGS for /tmp/PPawON7I5M:␤Useless use of "+" in expression "$res + 1" in sink context (line 1)␤Failed␤␤Actually thrown at:␤  in block <unit> at /tmp/PPawON7I5M line 1␤␤»
22:34 Herby_ ZoffixWin: is there a way to update my local Twitter module, or do I need to do 'panda install Twitter'?
22:34 skids m: my $res = Failure.new; my $a = $res + 1;
22:34 camelia rakudo-moar 6df7ff: OUTPUT«Failed␤␤Actually thrown at:␤  in block <unit> at /tmp/9rcu2LSpNr line 1␤␤»
22:34 * skids finally succeeded at faiing yay
22:34 ZoffixWin Herby_, what do you mean your "local Twitter module"?
22:35 skids m: my $res = Failure.new; my $a = $res<foo>;
22:35 camelia rakudo-moar 6df7ff: ( no output )
22:35 Herby_ I think I'm having some user error... I installed the perl 6 Twitter module a few days ago
22:35 ZoffixWin skids, I don't see anything being sunk there...
22:35 Herby_ if I want to get your updated version
22:35 tardisx joined #perl6
22:35 ZoffixWin Herby_, um, try panda update; panda install Twitter
22:35 skids In that case it wasn't, it hit some other trigger.
22:36 ZoffixWin m: my $res = Failure.new; my $a = $res<foo>; say 'meow'
22:36 camelia rakudo-moar 6df7ff: OUTPUT«meow␤»
22:36 Herby_ ZoffixWin: its failing on the "Testing Twitter" stage... "TTwitter:ver<0.002001>:auth<>:api<> already installed"
22:36 Herby_ and if I try and run your example, it fails and says I need to install the Twitter module
22:36 Herby_ think I hosed something up
22:36 ZoffixWin Herby_, then it should already be installed? 0.002001 is where I added the .search thing
22:36 Herby_ sorry, i mean it fails on the "Installing Twitter" stage
22:37 khw joined #perl6
22:37 ZoffixWin Try panda --force install Twitter
22:37 ZoffixWin skids, is there a simple way to make it explode?
22:37 tardisx joined #perl6
22:37 Herby_ doh, I'm an idiot. was calling the script as perl 5
22:37 Herby_ been a long day
22:37 ZoffixWin Other than testing for ~~ Failure
22:37 ZoffixWin rofl
22:39 skids ZoffixWin: well, it seems that mst of the ways I used to use now generate "Useless use" warnings.
22:40 tardisx joined #perl6
22:40 skids m: my $res = Failure.new("foo"); $res.yoisthisafailure
22:40 camelia rakudo-moar 6df7ff: OUTPUT«foo␤␤Actually thrown at:␤  in any  at gen/moar/m-Metamodel.nqp line 3055␤  in block <unit> at /tmp/mDs3sa4hCN line 1␤␤»
22:40 skids probably not the best :-)
22:41 ZoffixWin heh\
22:42 skids m: my $res = Failure.new("foo"); $res.<f> # that'll work until someone optimizes .<> to just <>
22:42 camelia rakudo-moar 6df7ff: OUTPUT«foo␤␤Actually thrown at:␤  in block <unit> at /tmp/qrcFvJiY8a line 1␤␤»
22:43 tardisx joined #perl6
22:43 ZoffixWin I cheated by calling .hash, since that's what I expect the result to be :P
22:44 skids That'll probably be futureproof.
22:44 ZoffixWin This LTA, TBH.... If I'm trying to use a Failure as a Hash, I want it to... fail... not cry that I'm doing ASSIGN-KEY or whatever
22:46 tardisx joined #perl6
22:47 skids Yeah I would think that should be a trigger.
22:47 ZoffixWin m: sub foo { fail "bar" }; my $x = foo; $x<bar> = 42; say 'meow'
22:47 camelia rakudo-moar 6df7ff: OUTPUT«bar␤  in sub foo at /tmp/HpqFdcoVyP line 1␤  in block <unit> at /tmp/HpqFdcoVyP line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/HpqFdcoVyP line 1␤␤»
22:48 skids m: my $res = Failure.new("foo"); $res{"f"}.perl.say; # some sort of fluent thing I guess?
22:48 camelia rakudo-moar 6df7ff: OUTPUT«Failure.new(exception => X::AdHoc.new(payload => "foo"), backtrace => Backtrace.new)␤»
22:49 ZoffixWin I can't seem to reproduce my original "ASSIGN-KEY" stuff in a short sample :/
22:49 ZoffixWin too drunk :(
22:50 ZoffixWin Screw it
22:52 tardisx joined #perl6
22:58 tardisx joined #perl6
23:03 tardisx joined #perl6
23:08 tardisx joined #perl6
23:11 wbill joined #perl6
23:13 tardisx joined #perl6
23:17 tardisx joined #perl6
23:20 kid511 joined #perl6
23:21 tardisx joined #perl6
23:23 tardisx joined #perl6
23:24 BenGoldberg joined #perl6
23:26 perlawhirl joined #perl6
23:27 tardisx joined #perl6
23:30 inokenty joined #perl6
23:31 tardisx joined #perl6
23:35 tardisx joined #perl6
23:52 BenGoldberg joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo