»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:00
RabidGravy left,
cdg left
00:01
cdg joined,
labster joined
00:05
BenGoldberg joined
00:06
cdg left
00:07
Khisanth left
|
|||
avuserow | thanks perlawhirl++, will take a look. | 00:19 | |
perlawhirl | you're welcome. i may not know much about nativecall or c++, but i have a good memory :D | 00:20 | |
teatime | m: say "(abc def)"; say ('abc', 'def'); | 00:26 | |
camelia | rakudo-moar 27dca5: OUTPUT«(abc def)(abc def)» | ||
00:26
polyfloyd left
|
|||
teatime | I guess everyone else is confident enough in the object model etc. to not be bothered by that kind of ambiguity :/ for less ambigous inspection, should I be doing .perl? .gist? YAMLize? | 00:27 | |
00:31
polyfloyd joined
|
|||
sortiz | m: say "(abc def)".perl; say ('abc', 'def').perl | 00:32 | |
camelia | rakudo-moar 27dca5: OUTPUT«"(abc def)"("abc", "def")» | ||
perlawhirl | short answer: yes, .perl, otherwise it gets stringified in the most basic way | 00:33 | |
00:34
Khisanth joined,
itaipu left
|
|||
perlawhirl | but regardless, you would always be able to get ambiguos output with a print "" statement | 00:34 | |
m: say '("abc", "def")'; say ('abc', 'def').perl | 00:35 | ||
camelia | rakudo-moar 27dca5: OUTPUT«("abc", "def")("abc", "def")» | ||
sortiz | teatime, .perl output is assumed to be EVALuable to reconstruct the object, .gist is only for a "rapid inspection". | 00:36 | |
00:37
captian-adequate left
|
|||
sortiz | For debugging I almost use dd. | 00:37 | |
00:46
Khisanth left
00:49
spider-mario left
00:51
huf left,
sufrostico left,
huf joined
01:02
Khisanth joined
|
|||
teatime | what exactly is dd anyway? | 01:03 | |
data dump? debug dump? | |||
Juerd | Data dump | 01:07 | |
But feel free to pick your own favorite nickname :) | 01:08 | ||
01:11
Khisanth left
01:14
jack_rabbit joined
01:20
molaf_ joined
01:24
molaf left
01:29
Khisanth joined
01:40
Khisanth left
01:43
kalkin- left,
kalkin-_ joined
01:51
dvinciguerra__ left
01:53
Khisanth joined
01:58
Khisanth left
01:59
Vitrifur left
02:01
labster left,
kid511 left,
colomon left
02:03
colomon joined
02:05
Vitrifur joined,
mkz_ left
02:11
Khisanth joined
02:14
labster joined,
mkz_ joined
02:15
TEttinger left
02:22
TEttinger joined
02:24
Khisanth left
02:32
m0li left
02:40
Khisanth joined
02:46
Khisanth left,
JRaspass joined
02:48
noganex joined
02:51
noganex_ left
|
|||
tony-o | there is also a Data::Dump module for colors | 02:53 | |
02:55
labster left
03:02
MadcapJake` joined,
MadcapJake` left
03:03
MadcapJake_ joined
03:05
MadcapJake_ left
|
|||
MadcapJake | de-dumbify | 03:05 | |
delicately dismantle | 03:06 | ||
dangerous derivation | 03:07 | ||
dubious demarcation | 03:08 | ||
delightful deluge | |||
MadcapJake quits while he's ahead | |||
MadcapJake notices the crickets in the room... | 03:09 | ||
03:11
Khisanth joined,
labster joined
03:12
labster left
|
|||
teatime | how come using PERL6LIB=$HOME/lib makes perl6 spend a bunch of time building a big $HOME/lib/.precomp/ tree the first time it's ran? | 03:19 | |
I would like to understand more about module loading... let's see if there's any design docs on it... | |||
tony-o | teatime: precomp happens when perl6 is ran if it hasn't happened yet | 03:23 | |
it compiels to .moarvm or .jvm versions of the modules for the compiler version | |||
03:24
Khisanth left,
colomon left
|
|||
teatime | I see. but it's compiling more than just what exists in the lib/ dir. | 03:25 | |
it does it even if the lib/ dir is empty. | |||
is that normal? | |||
sortiz | teatime, currently rakudo uses the first repo in its repo chain for precompilation, so when you use PERL6LIB, -Ifoo or "use lib 'foo'" you are changing the directory for .precomp. | ||
teatime | gtcha. | ||
03:25
yqt left
|
|||
sortiz | This is expected to change soon, and the details are in flux. | 03:26 | |
03:28
spintronic_ joined
03:34
spintronic_ left
|
|||
MadcapJake | teatime: gist.github.com/jnthn/47a42b2e86e7e552b2e2 | 03:36 | |
03:38
Khisanth joined
03:40
BenGoldberg left
03:43
Khisanth left
|
|||
MadcapJake | any knowledgeable C devs on right now? I am trying to send an email with Curl via Net::Curl and I have no idea how to implement the CURLOPT_READFUNCTION callback | 03:44 | |
Here's an example curl.haxx.se/libcurl/c/smtp-tls.html | 03:45 | ||
Here's the docs curl.haxx.se/libcurl/c/CURLOPT_REA...CTION.html | |||
Here's my current state gist.github.com/MadcapJake/05ecec7b8db16fa83b74 | 03:46 | ||
03:51
khw left
03:53
spintronic_ joined
|
|||
teatime | for one, I assume you'd need to work explicitly in bytes (Buf ?) rather than unicode strings. | 03:55 | |
also, it looks like the callback signature/behavior is the same as fread(), if that helps. | 03:58 | ||
03:58
Khisanth joined
|
|||
teatime | MadcapJake: it seems like you could just not provide this, and allow it to use its default? | 03:59 | |
MadcapJake | yeah but I don't want to have a file I want to use a string, will that just work? | ||
teatime | no, I was afraid that was what you were getting at :) | 04:00 | |
MadcapJake | the fallback callback :P is supposed to be given a filepath I believe | ||
04:01
spintronic_ left
|
|||
teatime | a FILE stream. | 04:01 | |
but your callback gets whatever you gave to curl.haxx.se/libcurl/c/CURLOPT_READDATA.html | |||
"If you don't specify a read callback but instead rely on the default internal read function, this data must be a valid readable FILE * (cast to 'void *'). | 04:02 | ||
MadcapJake | so what's that mean? xD | ||
04:03
Khisanth left
|
|||
teatime | let me see what I can learn abotu Native____ in 3 minutes. | 04:03 | |
MadcapJake | teatime: I wrote up a text post on reddit if you're a redditor www.reddit.com/r/perl6/comments/4c...h_netcurl/ | ||
teatime | MadcapJake: There are two cases to handle: 1) You want to read the data from a file, and 2) You want to read the data from elsehwere. | 04:08 | |
MadcapJake | right, I want door #2 | ||
teatime | For case 1, I beleive you can pass doc.perl6.org/type/IO::Handle#metho...descriptor <-- the return of this in as the FILE* argument, and not specify your own callback. | ||
MadcapJake | yeah I figured that, I'm half-tempted to just write the email to disk to save me the trouble of writing this callback :P | 04:09 | |
04:09
TreyHarris left
|
|||
teatime | fr the other case, you might could use this? doc.perl6.org/routine/native-descri...IO::Handle | 04:11 | |
04:12
maybekoo2 left
|
|||
MadcapJake | no that will only let me write via stdin/stdout or a file still | 04:12 | |
native-descriptors are numbers that represent files or pipes | 04:13 | ||
04:13
cpage_ left
|
|||
teatime | or, looking further than the or this might help: github.com/moznion/p6-Stream-Buffered | 04:15 | |
that's true MadcapJake, but I imagine there is something to fake a stream. | 04:16 | ||
either that Stream-Buffered 3rd party module, or.. I thought I linked IO::Pipe here; you might can manage w/ that also. | |||
04:17
znpy left
|
|||
teatime | anyway, if you *can* manage that way, then once again, you can avoid providing your own callback function. | 04:17 | |
04:18
JRaspass left
|
|||
MadcapJake | Hmm I think I need to rest and I'll take a look at those ideas tomorrow. Thanks teatime! | 04:19 | |
MadcapJake heads to bed | 04:20 | ||
teatime | maybe I could try to give it a shot. | ||
now that I have thought more, it does make more sense to just provide the function. | |||
04:25
Khisanth joined
04:30
Khisanth left
04:31
JRaspass joined
04:41
pierrot left
04:44
skids left
04:47
Cabanossi left,
pierrot joined
04:49
Cabanossi joined
04:51
Khisanth joined
04:53
cpage_ joined
05:00
Khisanth left
05:01
musiKk_ joined
05:28
nadim left
05:30
nowan left,
nadim joined
05:33
aindilis left
05:34
nowan joined,
aindilis joined
05:55
araujo left
05:58
jack_rabbit left
06:06
JRaspass left
06:23
darutoko joined
06:25
domidumont joined
06:27
CIAvash joined
06:29
domidumont left
06:30
domidumont joined
06:35
sjoshi joined
06:36
perlawhirl left
06:37
abraxxa joined
06:42
wamba joined
06:47
nadim left
06:48
_nadim joined
06:50
fireartist joined
06:56
bjz joined
|
|||
teatime | I wonder just how far off this still is: paste.debian.net/421908/ | 07:00 | |
07:02
bjz left
07:03
maybekoo2 joined
07:04
bjz joined
07:12
zakharyas joined
07:21
baest_ is now known as baest
07:23
labster joined
07:26
jkramer left
07:27
Khisanth joined
07:36
bhm left,
bhm joined
07:42
rindolf joined
|
|||
teatime | bah, I can't remember how to use the reminder bot. | 07:43 | |
moritz | .tell teatime like this | 07:44 | |
yoleaux | moritz: I'll pass your message to teatime. | ||
teatime | moritz++ | ||
yoleaux | 07:44Z <moritz> teatime: like this | ||
teatime | .tell MadcapJake This may be further along: paste.debian.net/421908/ | ||
yoleaux | teatime: I'll pass your message to MadcapJake. | ||
teatime | .tell MadcapJake er, correction: gist.github.com/pprince/208f3218852e9ee59876 | 07:45 | |
yoleaux | teatime: I'll pass your message to MadcapJake. | ||
07:56
CIAvash left
08:20
Khisanth left
08:22
mohae left
08:24
mohae joined,
M-Illandan left
08:25
M-matthew left
08:33
g4 joined,
g4 left,
g4 joined,
Khisanth joined
|
|||
lizmat | And finally, another Perl 6 Weekly hits the net: p6weekly.wordpress.com/2016/03/29/...heapsters/ | 08:34 | |
08:35
M-Illandan joined,
RabidGravy joined
|
|||
moritz | lizmat++ | 08:36 | |
08:38
M-matthew joined
|
|||
lizmat | afk for a few hours& | 08:39 | |
08:43
TEttinger left
|
|||
RabidGravy | Harr! | 08:44 | |
08:50
M-matthew left
08:51
M-matthew joined
08:57
Khisanth left
09:00
araujo joined,
araujo left
09:01
araujo joined,
araujo left,
araujo joined
09:02
araujo left
09:08
avenj left
09:09
keix left,
keix joined
09:11
fireartist left
09:13
Khisanth joined
09:17
Actualeyes left
09:19
perlawhirl joined
09:21
azawawi joined
|
|||
azawawi | hi | 09:21 | |
teatime | good morning. | ||
I've been checking out your stuff, azawawi | 09:22 | ||
azawawi | gist.github.com/azawawi/b834f3ec7d0a7bccdcfa # Silently dies when looping on CArray[Str] result | ||
teatime: cool | |||
teatime | someone was trying earlier to figure out how to write a certain native callback | 09:23 | |
and I decided to see how far I could get w/ it. | |||
didn't finish, but if you happen to find the time it would be interesting to hear what things here might be way off-base: gist.github.com/pprince/208f3218852e9ee59876 | 09:24 | ||
especially curious if the callback routine would be a closure with read access to its containing scope. | |||
azawawi takes a look | |||
teatime | the background is, read_callback should have the same signrature as fread(), and gets called by the curl lib repeatedly to read data into $dst-buffer | 09:25 | |
if not actually using fread() and a fd/stream, though, you can set the last param (usually FILE*fp) to whatever you choose. | 09:26 | ||
azawawi | teatime: have to debug it. Could you open an issue on it? | 09:27 | |
teatime | it's incomplete | 09:28 | |
azawawi | teatime: to tell you the truth, i have not tried any of the SMTP stuff so far | ||
teatime | no I mean the code example is incomplete. | 09:29 | |
azawawi | teatime: as you may already know libcurl supports a lot of protocols | ||
teatime | it compiles, but it doesn't have the rest of the stuff to actually know if it works. I assume I did a lot of wrong stuff though. | ||
azawawi | teatime: let me look at the c examples... brb | 09:30 | |
teatime | it's not that important. | ||
azawawi | github.com/azawawi/perl6-net-curl/...mples/TODO | ||
masak .oO( and the puns keep heaping up ) | 09:31 | ||
azawawi | teatime: something like github.com/azawawi/perl6-net-curl/...tp-multi.c | ||
09:31
fireartist joined
|
|||
teatime | nice, I bet MadcapJake will find that v. useful. | 09:32 | |
azawawi | RabidGravy: ping | 09:33 | |
teatime | I was more interested in the perl syntax issues, though. like, is the access of $src-buf inside read_callback at line 61 legal, or does it have to be passed in via arguments? | ||
09:33
Actualeyes joined
|
|||
RabidGravy | BOOM! | 09:34 | |
azawawi | wow | ||
:) | |||
RabidGravy: that's like a fiber line ping | |||
RabidGravy: checkout this gist.github.com/azawawi/b834f3ec7d0a7bccdcfa # Silently dies when looping on CArray[Str] result | 09:35 | ||
RabidGravy: did you encounter such a behaviour with CArray before? | |||
09:36
polyfloyd left,
polyfloyd joined
|
|||
azawawi | RabidGravy: CArray[Str] fails silently on conversion... no exception whatsoever | 09:38 | |
RabidGravy | I would go with a) CArray[uint8], (CArray[Str] will be an char **str - an array of pointers to strings) b) initialised with $foo[MAX-lEN] = 0 and it auto-extends | 09:39 | |
then on get back convert to a Blob and .decode | |||
jnthn | azawawi: Are you on Windows? If so, under some configs, it makes a *segfault* silent | 09:40 | |
echo %ERRORLEVEL% at the command line after it fails can be revealing | |||
azawawi | jnthn: I see. thanks | 09:41 | |
CArray[uint16] works | |||
RabidGravy | poor windows, I used to like ye old "General Protection Fault" | ||
jnthn | Generally though, working with NativeCall, you can easily trigger SEGVs if you use it wrong. | ||
It's the nature of the beast. | |||
azawawi | i noticed :) | 09:42 | |
NativeCall aka the beast :) | |||
use Beast; | 09:43 | ||
teatime | use v6.66; | ||
masak | " In fact, we probably wouldn't end up converging on a version number of 2*PI as the RFC suggests, but rather on 6.6.6, which would be rather unfortunate." | 09:44 | |
your joke is like, 15 years ancient :P | |||
www.perl6.org/archive/doc/design/apo/A01.html | |||
teatime | lol. | ||
09:44
espadrine joined
09:48
znpy joined
|
|||
perlawhirl | can someone remind me where i can see a simple example of parallelizing a for-loop with await/start | 09:56 | |
i've seen it somewhere, but can't find where | |||
jnthn | await do for @x { start { ... } } | ||
09:57
araujo joined
|
|||
perlawhirl | ahh ! i was missing the do | 09:57 | |
thanks, jnthn | |||
RabidGravy | there are examples in doc.perl6.org/language/concurrency#Promises | ||
09:57
araujo left
09:58
araujo joined,
araujo left,
araujo joined
09:59
sue joined
10:06
ufobat left,
sue left
|
|||
gregf_ | is there also a way to tell the jvm that a thread died midway? | 10:08 | |
s/thread/promise/ | |||
10:10
azawawi left,
Khisanth left
|
|||
CurtisOvidPoe | I assume the “is that a thread? No, it’s a promise” jokes have already been made? | 10:17 | |
perlawhirl claps | 10:20 | ||
if it has, it's the first time i've heard it | |||
gregf_ | oh, so a promise is like a Future that depends on a ThreadpoolExecutor to execute a Thread? *java tbp* | 10:21 | |
CurtisOvidPoe | Thank you, I’ll be here all week. (But obviously won’t be quitting my day job given the narrow audience for my humor) | ||
arnsholt | I haven't heard it before, but knowing jnthn, TimToady, masak et al, I wouldn't be surprised if it had been done =) | ||
10:23
Khisanth joined
|
|||
jnthn | gregf_: Promises run on a ThreadPoolScheduler which is implemented in Perl 6, which manages a bunch of Perl 6 Thread objects, which are in turn backed by the VM's idea of thread (so, a JVM Thread object on the JVM) | 10:23 | |
10:26
sue joined
|
|||
gregf_ | jnthn: thanks. *lots of reading to be done* | 10:26 | |
those docs are excellent! | 10:37 | ||
gfldex | thank you | 10:38 | |
10:39
maybekoo2 left
10:43
labster left
|
|||
gfldex | m: -> $a, $b { say $a + $b }(3, 4) | 10:44 | |
camelia | rakudo-moar 27dca5: OUTPUT«7» | ||
gfldex | m: { say $^a + $^b }(3, 4) | ||
camelia | rakudo-moar 27dca5: OUTPUT«7» | ||
10:45
dvinciguerra__ joined
|
|||
dalek | c: 5f83386 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod: we can call subs and blocks in place |
10:46 | |
gfldex | m: class A { method b (:$c) {} }; A.new.b(c=>1, b=>1){}; sub s(:$c) {}; s(c=>1) | 10:49 | |
camelia | ( no output ) | ||
gfldex | m: class A { method b (:$c) {} }; A.new.b(c=>1, b=>1){}; sub s(:$c) {}; s(c=>1, b=>1) | ||
camelia | rakudo-moar 27dca5: OUTPUT«Unexpected named parameter 'b' passed in sub s at /tmp/4PuP4ONCYw line 1 in block <unit> at /tmp/4PuP4ONCYw line 1» | ||
10:50
Relsak joined
|
|||
dalek | osystem: 1714b66 | RabidGravy++ | META.list: Add Lumberjack See github.com/jonathanstowe/Lumberjack |
10:51 | |
jnthn | .oO( But does it test OK? ) |
||
lizmat | .oO( I sleep all night and I test OK ) |
10:52 | |
RabidGravy | But it does want to be a girly like it's dear mama | 10:53 | |
10:53
solarbunny joined
|
|||
RabidGravy | I would have got that out last night, but I exited vim without saving after I typed in 3/4 of the POD | 10:54 | |
10:54
colomon joined
|
|||
gfldex | doc.perl6.org/type/Metamodel::C3MRO got dead links to nextsame and friends. I'm unsure where to put them. | 10:55 | |
jnthn | .oO( I hack some code, I write some docs, I :q! ARGH ) |
||
RabidGravy | :) | 10:56 | |
moritz | gfldex: nextsame is deocumented in language/functions | 10:57 | |
RabidGravy | right off out into the "sunlight" for a bit | 10:59 | |
dalek | c: 46b2d2a | (Wenzel P. P. Peppmeyer)++ | doc/Language/objects.pod: doc intended ignorance of additional named args for methods |
11:00 | |
11:03
sue left
11:04
RabidGravy left
|
|||
dalek | c: 60aa9b8 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod: indexify nextsame and friends |
11:04 | |
11:05
azawawi joined
11:06
avenj joined
|
|||
azawawi | github.com/azawawi/perl6-file-whic...native.pl6 # the joy of living in windows to implement which (aka find executable path).... :) | 11:06 | |
gist.github.com/azawawi/42b633dbf846ab86f980 # interesting output, cmd cannot be via win32 API but can be found in %PATH% :) | 11:07 | ||
s/cannot be/cannot be found/ | 11:08 | ||
11:19
kid51 joined
|
|||
gfldex | m: dd Any.new.map(-> $a {}) | 11:19 | |
camelia | rakudo-moar 27dca5: OUTPUT«(Nil,).Seq» | ||
dalek | c: d264777 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Any.pod: doc Any.map and therefor Hash.map |
11:20 | |
gfldex | gregf_: please note that there are still quite a few holes in the docs. And thanks for motivating me to go through my list. | 11:21 | |
11:22
sue joined
|
|||
gfldex | m: my $x is default(now); dd $x.Int; sleep 5; dd $x.Int | 11:25 | |
camelia | rakudo-moar 27dca5: OUTPUT«14592507641459250764» | ||
gfldex | m: my $x is default({now}); dd $x.Int; sleep 5; dd $x.Int | ||
camelia | rakudo-moar 27dca5: OUTPUT«Method 'Int' not found for invocant of class 'Block' in block <unit> at /tmp/hldGqHsSUO line 1» | ||
gfldex | m: my $x is default({now}); dd $x; sleep 5; dd $x | ||
camelia | rakudo-moar 27dca5: OUTPUT«Block $x = -> ;; $_? is raw { #`(Block|65510640) ... }Block $x = -> ;; $_? is raw { #`(Block|65510640) ... }» | 11:26 | |
11:26
travis-ci joined
|
|||
travis-ci | Doc build errored. Wenzel P. P. Peppmeyer 'doc Any.map and therefor Hash.map' | 11:26 | |
travis-ci.org/perl6/doc/builds/119216311 github.com/perl6/doc/compare/60aa9...6477785e49 | |||
11:26
travis-ci left
|
|||
gfldex | is there any way to have a closure in `is default` ? | 11:26 | |
jnthn | No | 11:27 | |
gfldex | ==> Installing File::Find | ||
Internal error: zeroed target thread ID in work pass | |||
that made travis unhappy | 11:28 | ||
jnthn | Urgh. That'd be a GC bug. :/ | ||
gfldex | let me play this ball right over to you :-> | ||
11:30
azawawi left
|
|||
jnthn | gfldex: If you've a moment, please file a link to that Travis fail in a MoarVM issue | 11:30 | |
lizmat | m: my $a is default( { rand } ) # gfldex: you actually can, but you would still need to call it yourself | 11:31 | |
camelia | ( no output ) | ||
lizmat | m: my $a is default( { rand } ) ; $a() | 11:32 | |
camelia | ( no output ) | ||
lizmat | m: my $a is default( { rand } ) ; say $a() | ||
camelia | rakudo-moar a424f0: OUTPUT«0.725812561931561» | ||
gfldex | jnthn: done | ||
lizmat: not very dwimy that | 11:33 | ||
lizmat | m: my $b; my $a is default( {$b} ); $b = 42; say $a() | ||
camelia | rakudo-moar a424f0: OUTPUT«42» | ||
lizmat | gfldex: indeed... | ||
jnthn | gfldex: Thanks | 11:34 | |
dalek | c: 4aa57a3 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Variable.pod: is default is evaluated at compile time |
11:35 | |
jnthn | If `is default` magically called thunks you'd have no way to default to a closure | ||
Which would be the icky WAT to go with your DWIM :) | |||
gfldex | magic is hard | ||
lizmat | yeah... | ||
jnthn | Knowing how `is default` works under the hood...it'd be really quite tricky to arrange for some code to be run | 11:36 | |
gfldex | we need a trait called `is magic` :-> | 11:37 | |
11:37
kaare_ joined
|
|||
moritz | but THE WHOLE LANGUAGE is already magic! | 11:37 | |
gfldex | actually `Proxy` is usable as a magic substitute already | ||
jnthn | Yeah, Proxy is probably the best bet for the moment on that | 11:39 | |
11:39
TreyHarris joined
11:40
woodruffw left
11:44
molaf_ left
11:45
molaf_ joined
11:46
woodruffw joined,
woodruffw left,
woodruffw joined
11:47
espadrine left,
espadrine joined,
wamba left
11:48
kid51 left
11:52
molaf_ left
|
|||
dalek | c: 4fcb90a | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod: doc subset |
11:55 | |
11:58
pecastro joined
12:02
Azry left
12:04
molaf_ joined
12:17
travis-ci joined
|
|||
travis-ci | Doc build passed. Wenzel P. P. Peppmeyer 'doc subset' | 12:17 | |
travis-ci.org/perl6/doc/builds/119222404 github.com/perl6/doc/compare/4aa57...cb90a2770c | |||
12:17
travis-ci left
12:19
Sgeo left
12:27
|Tux| left
12:30
Begi joined
12:33
|Tux| joined
12:35
Relsak left
|
|||
Begi | According to my benchmarks, the Perl6 module Text::Markdown is ~ 3.8 times slower than the Perl 5 module Text::Markdown... | 12:37 | |
12:37
Khisanth left
|
|||
tadzik | that's not that bad :D | 12:39 | |
Begi | tadzik : you think so ? :/ | 12:40 | |
tadzik | that's less of a slowdown that I see in other things | 12:41 | |
12:42
pmurias joined,
o_sutur left
|
|||
pmurias | Begi: things used to be much slower in the past | 12:42 | |
Begi | It would be really interesting to reduce this lack of performances, but not easy I guess ! | 12:43 | |
And I don't know if Perl 6 itself can help | 12:44 | ||
12:50
znpy left
|
|||
El_Che | Begi: we've got our best man on the job ;) | 12:57 | |
12:57
Skarsnik joined
|
|||
tadzik | and it has already improved *drastically* compared to a few months/years ago | 12:57 | |
masak | several people, in fact | ||
tadzik | best men* then? :) | 12:58 | |
masak | people, in fact | ||
:) | |||
El_Che | Begi: 6guts.wordpress.com/2016/03/06/dig...lity-work/ | ||
tadzik | right, every time I use "men" it's misinterpreted :) | ||
masak | tadzik: grr, why don't people don't understand when I use this *male* noun as a *neuter* noun!? :P | 12:59 | |
tadzik | I talked to an anthropologist I hanged out with, and she said that people in papers often explicitely state "I'm going to use the word «men» as «people», not «males»" | ||
El_Che | neuter? | ||
masak | sorry, "why don't *men* understand..." :P | ||
huf | it *used* to be genderless! surely that counts for something :D | ||
El_Che | what should Freud say aboyt that :) | ||
tadzik | masak: I guess they're assuming the worst :) | ||
it's trendy recently | |||
huf | but then yall lost "were" and now we're in this mess | ||
masak | tadzik: language is tricky business | ||
tadzik | yep | 13:00 | |
masak | tadzik: it may have been possible to use it in a neutral way, but I don't think it is anymore. not without serious risk of misunderstanding. | ||
that's the way things are, 'm afraid | |||
El_Che | en.wikipedia.org/wiki/Language_ideology | ||
jnthn | It's stupid, but yes. | ||
huf | nah, i dont think it was ever neutral | ||
but when women had much lesser roles, naturally men were the default | |||
jnthn | There are plenty of examples of neuterl use. | ||
El_Che | jnthn: enjoying your blogposts, btw | 13:01 | |
arnsholt | IIRC it's at least 1000 years since "man" was gender-neutral, so I think it's safe to say that ship has well and truly sailed =) | ||
huf | jnthn: yes, but they're in that particular context | ||
El_Che | gender-neutral is not the same thing as gender-invisible | ||
tadzik | arnsholt: can you truly say it's been 1000 years if people still use it that way? | ||
huf | the particular context of "it's alwyas men *anyway* who actually do things, women are daughters and then wives and then mothers" | ||
arnsholt | tadzik: Since it was the majority meaning, I think so yeah | ||
jnthn | huf: Yeah, I guess thus the push to not view it as neutral :) | ||
arnsholt | At least in Germanic. Other IE groups are probably different of course | 13:02 | |
huf | jnthn: i think it being neutral was always a conceit | ||
or has been for many centuries at least | |||
moritz | I'd like to point out that in German, plural always implies feminine postfixes | 13:03 | |
jnthn | Quite possibly. I avoid it just out of it not being worth the debate/misunderstandings anyway. :) | ||
tadzik | arnsholt: I see | ||
moritz feels mistreated by this gender imbalance /s | |||
huf | moritz: that's another weird thing, the encroachment of noun classes on human genders | ||
tadzik | it's probably even more confusing to me since my native languages straight up does not have gender-neutral words for some things, so nobody cares if you default to male words | 13:04 | |
since there's no othew way | |||
"someone" is masculine | |||
huf | mine doesnt have any concept of grammatical gender but still manages to be sexist at the level of words | ||
:) | |||
moritz | and some*body* is human-centrics. Will the body-less AIs protest? | 13:05 | |
13:05
maybekoo2 joined
|
|||
xiaomiao | offense is taken not given ;) | 13:05 | |
huf | moritz: given the latest attempt, it'll try to wipe us all out... | ||
moritz | huf: only the women and Jews :/ | ||
jnthn | "Let's build an AI that learns from people"..."Oh crap, it learnt from people" | 13:06 | |
huf | yes, "us". i'm included in that ;) | ||
xiaomiao | moritz: and gays, and gypsies, and communists | ||
moritz | xiaomiao: ... and a clown | ||
xiaomiao | let's not discriminate too much ;) | ||
huf | iow, the usual suspects | ||
xiaomiao | moritz: yes, clowns are horrible | ||
jnthn | Pretty depressing comment on the state of discourse on the internets :/ | ||
huf | let's not pretend this is somehow an internet thing :) | 13:07 | |
masak | moritz: I thought it was "some*pony*" these days :P | ||
pmurias | moritz: the real question is whether the body-less AIs will exterminate in retaliation ;) | ||
moritz | jnthn: agreed | ||
well, I hope the next AI maker is smart enough not to have it learn off of youtube comments | |||
xiaomiao | jnthn: IRL you have all the no-platformers, creating safe spaces and avoiding discussion | ||
huf | ah but what *should* it learn out of? | ||
masak | huf: #perl6 :P | 13:08 | |
xiaomiao | compared to that the internet is liberal :\ | ||
huf | masak: ah yes. julie is stupid and so is pete, only i'm smart because i have brains in my ass too :) | ||
moritz | masak: I wonder if an AI could learn to eval some Perl 6 by watching conversations with camelia :-) | 13:09 | |
13:09
sufrostico joined
|
|||
nine | moritz: in theory, I'd say it's possible | 13:10 | |
huf | well that's *basically* how people learn, no? | 13:11 | |
jnthn | huf: Yes, the optimistic view being that people act out believing worse things than they really do on the internet to get attention, and the pessimistic view being that they reveal their true thoughts... | ||
huf | jnthn: it's a combination of those two i think | ||
jnthn | Yeah, but I've no feel for how much of each it is | ||
huf | jnthn: when they say "i'd murder you", they mean "i wouldnt mind terribly if someone murdered you", so in that case they overstate their actual views :) | ||
masak .oO( in practice, people are lazy, and don't murder half as much as they self-report ) | 13:13 | ||
huf | YES :) | 13:14 | |
also maybe their mother wouldnt approve, so they restrain themselves. etc | |||
jnthn | That's...comforting I guess :P | ||
13:14
RabidGravy joined
|
|||
huf | it's what holds society together! | 13:14 | |
the dread of uncomfortable christmas dinners :) | 13:15 | ||
13:15
znpy joined
13:17
ufobat joined
|
|||
moritz | "so honey, what did you do last month?" -- "I killed a few assholes from twitter" -- disapproving stares all around | 13:21 | |
masak .oO( I mean, we'd all be at each other's throats right now, if it weren't for that standing Christmas dinner invitation. am I right? right? hello...? ) | |||
moritz: later, in the car home -- "I really wish you hadn't brought up those twitter killings. I could see the mortification on my mother's face." | 13:22 | ||
masak .oO( Someone Was Wrong On the Internet II ) | 13:23 | ||
13:23
perlawhirl left
13:24
perlawhirl joined
|
|||
moritz | masak: and now we just need to write the backstory (twitter and the killings :-) | 13:27 | |
masak | to be fair, those were some really bad tweets | 13:28 | |
13:28
perlawhirl left
|
|||
perlpilot | sounds like a B movie plot | 13:29 | |
... no one thought that 140 characters could be so dangerous. | |||
"the killing characters" | 13:30 | ||
13:30
mr-foobar left,
musiKk_ left
|
|||
perlpilot | when rapier wit really does kill | 13:31 | |
etc. | |||
moritz | masak: right, slandering the favorite band or something | ||
13:32
edehont joined
|
|||
masak | perlpilot: "when 140 characters are not enough" :P | 13:32 | |
huf | moritz: pff, nobody would murder for *that* | ||
but perhaps a typo or grammatical error in that tweet? now we're talking! | |||
moritz | huf: what if both? | ||
13:33
mr-foobar joined
|
|||
masak .oO( ur bnd sux ) | 13:33 | ||
huf | the world would end. | ||
13:33
nadim joined,
_nadim left
13:34
perlawhirl joined
13:38
perlawhirl left
13:45
colomon left
13:46
perlawhirl joined
13:49
tmch joined
13:52
skids joined
13:53
nadim left
13:54
nadim joined
14:02
perlawhirl left
14:03
ChoHag left
14:04
ptolemarch joined
14:10
ChoHag joined
14:13
vike left,
pmurias_ joined
14:15
g4 left,
sue left
|
|||
nadim | hi, I asked about "compilatio scope", the problem is that Data::Dump::Tree is generic and thus can not see some function definitions, IE: an infix<eqv>, that are defined in other scopes. is there a way to do that? | 14:16 | |
14:17
pmurias left
|
|||
MadcapJake | Finally figured out how to adjust my office chair's height :P | 14:18 | |
yoleaux | 07:44Z <teatime> MadcapJake: This may be further along: paste.debian.net/421908/ | ||
07:45Z <teatime> MadcapJake: er, correction: gist.github.com/pprince/208f3218852e9ee59876 | |||
MadcapJake | (It's an old-school screw-based adjustment) | 14:19 | |
Hotkeys | Nice | ||
jnthn | nadim: The CLIENT pseudo-package can be useful for that | ||
RabidGravy | I just bought a new toolbox, *just* for screwdrivers - and having transplanted them all from the other toolbox it's nearly full already | 14:20 | |
MadcapJake | anyone had a chance to look at my libcurl read_callback problem? www.reddit.com/r/perl6/comments/4c...h_netcurl/ | ||
nadim | jnthn: google came back with zip about that | 14:21 | |
14:21
colomon joined
|
|||
nadim | a URL would be appreciated | 14:21 | |
MadcapJake | RabidGravy: wow! I have one multi-tip screwdriver and a whole assortment of those mini computer screwdrivers | ||
Hotkeys | Ah yes | ||
Security bits | |||
The worst screws | 14:22 | ||
MadcapJake | hehe, indeed. DRM in the screwdriver world :P | ||
RabidGravy | electrical screwdrivers, woodworking screwdrivers, three squillion different cross heads etc etc | 14:23 | |
14:23
andreoss joined
|
|||
RabidGravy | there is probably still stuff that I use on that is kinda-sorta right | 14:24 | |
MadcapJake | can you use the native trait without specifying a path to an .so? | ||
jnthn | nadim: design.perl6.org/S02.html#Pseudo-packages | 14:25 | |
MadcapJake | e.g., «sub foo() is native() {...}» | ||
jnthn | MadcapJake: It means "In the current process" then, iirc | ||
MadcapJake | cool | ||
14:25
cdg joined
|
|||
nadim | jnthn++ | 14:26 | |
MadcapJake | nadim: if you can't find something on doc.perl6.org, next step is the search bar on design.perl6.org :) | ||
14:27
edehont left
|
|||
nadim | I'll make that a habbit :) | 14:29 | |
MadcapJake | .tell teatime this (your gist) looks like it could be it, but in all the C examples I've seen the $context that you have given to CURLOPT_READDATA is something written to from inside the CURLOPT_READFUNCTION (though I'm really not understanding how that works). | ||
yoleaux | MadcapJake: I'll pass your message to teatime. | ||
MadcapJake | in C, you can create a variable inside a function's scope and it will survive into the outer scope? | 14:30 | |
RabidGravy | I don't think so | 14:32 | |
ilmari | no, but if you declare it "static" the value will persist between invocations of the function | 14:33 | |
andreoss | where panda's API is described? | ||
ilmari | linke perl's "state" | ||
nadim | Another question, I call routine that may not exist and catch X:Multi::NoMatch, that takes EONS. is there a mechanism to check if there is a signaure inscope that would match a call so I can avoid the exceptions? | 14:34 | |
MadcapJake | boom! eureka moment, what I thought was leaving the scope of a function is actually want's coming into a function! (just confusingly named...) | 14:35 | |
s/want's/what's/ | |||
nadim: if there's a signature that would match, wouldn't it not through X::Multi::NoMatch? | 14:36 | ||
nadim | It is theowing that exception but I don't want to trigger it to start with | 14:37 | |
ugexe | or if there is, wouldnt it still have to look for it the exact same way? | 14:38 | |
nadim | I may have made a bad design choice by using multi rather than multiple subs, it looks cleaner but stops me from sorting them. I was counting on P6 to do the drty work | 14:39 | |
MadcapJake | nadim: trigger what the NoMatch error? It will check all signatures of multis with the same name and only after not finding one, will it throw. | ||
ugexe | what exactly is the dirty work? | ||
MadcapJake | sorting? Why are you sorting subs? | ||
ugexe | i.e. `where` clauses on parameters | 14:40 | |
14:40
fireartist left
|
|||
nadim | the same sub is called with different arguments at different places, it may match in one place but not the other, so it will trigger an exception on those other contexts, that takes time | 14:41 | |
ugexe | create a candidate to catch everything else maybe | ||
nadim | I'd like to check if ther e will be a match befor I call it rather than have the xception mechanism kick in. because that takes ages. | ||
ugexe: that may be a good idea but since the subs are created by end users, that means that they will have to do it each time, not a good ergonomy | 14:42 | ||
MadcapJake | strange that you say it takes ages, perhaps it's how you are constraining the arguments that's causing the lengthy execution | ||
nadim | no contrains on the arguments | ||
MadcapJake | can you give an example/gist? | 14:43 | |
ugexe | yeah without constraints on the arguments my guess would be getting stuck in a loop somehow | ||
MadcapJake | iirc, multis were quite fast (perhaps faster than regular subs) | ||
nadim | fast when they exist maybe but when they don't ... | ||
DrForr | I'm using those for Prancer. | ||
MadcapJake | nadim: I'm not following what you mean by that | 14:44 | |
jnthn | nadim: You could write a candidate that is catch-all (will match any arguments), which will be less specific than all the others that match, and put your non-match handling in there | ||
MadcapJake | can a proto access the signature of the sub? maybe that would be a route to take | 14:45 | |
ugexe | it can access the signature of itself, which has everything | ||
MadcapJake | ugexe: itself meaning the signature of the eventual multi that will take over, too? | 14:46 | |
moritz | and it can access &?ROUTINE.candidates | ||
MadcapJake | moritz: what form are those returned as? | 14:47 | |
moritz | m: say &infix:<==>.candidates.perl | ||
camelia | rakudo-moar 330f81: OUTPUT«(sub infix:<==> ($?) { #`(Sub|47499104) ... }, sub infix:<==> (\a, \b) { #`(Sub|47501384) ... }, sub infix:<==> (Real \a, Real \b) { #`(Sub|47501232) ... }, sub infix:<==> (Int:D \a, Int:D \b) { #`(Sub|47499560) ... }, sub infix:<==> (int $a, int $b) { #`(…» | ||
moritz | m: say &infix:<==>.candidates[0].^name | ||
camelia | rakudo-moar 330f81: OUTPUT«Sub» | ||
nadim | jnthn: ugexe proposed that too but the subs have names, and they are added by end users, so I'd need to "fabricate" a catch all | ||
MadcapJake | neat! nadim that might be what you're looking for | ||
RabidGravy kisses moritz - of course that is my solution to dispatching to multis on other than just the signature! | 14:48 | ||
moritz blushes | |||
nadim | while I am comprehending the above, the example i run takes 1.5s , compilation, loading, ... and with a multi to match it takes 8 seconds, there's something to optimize here! | 14:49 | |
MadcapJake | nadim: I think we need to see some code to know what's going on there | ||
ugexe | have you followed the dispatch to make sure its calling what you want? | 14:50 | |
not doing like sub1 -> sub2 -> sub3 -> sub2 -> sub3 -> sub2 -> sub4 | |||
nadim | yes :) best is to clone github.com/nkh/P6-Data-Dump-Tree.git and run example/diff.pl with the block at lines 30+ uncommented | ||
ugexe | where is the actual multi causing problems | 14:51 | |
or is it in diff.pl itself? | 14:52 | ||
MadcapJake | ugexe: line 38 | ||
in diff.pl | |||
andreoss | # $ perl6 | 14:53 | |
# To exit type 'exit' or '^D' | |||
why i'm getting this? | |||
MadcapJake | andreoss: so you know how to exit :) | ||
Begi | is it a problem ? :) | ||
nadim | moritz gave me the .candidate example a few weeks ago and I use it but not for that part of the code, mainly because of laziness as the multi can take 3 quite heavy signatures, grepping everything out is going to be a mess | 14:54 | |
andreoss | MadcapJake: exit from what? | ||
Begi | Perl 6 | ||
andreoss | btw typing 'exit' doesn't work | ||
MadcapJake | andreoss: the REPL, Read Eval Print Loop | ||
Begi | hmm, 'exit' doesn't work ? | 14:55 | |
MadcapJake | andreoss: it's an interactive prompt that lets you enter perl 6 code | ||
andreoss | MadcapJake: it's not a REPL | ||
MadcapJake | andreoss: o_O huh? | ||
ugexe | MadcapJake: i dont see a multi for the method called on line 30 | ||
andreoss | i've upgraded perl6, and now instead of REPL i get this | ||
MadcapJake | ugexe: multi sub rhs_filter(\r, Match $s, DDT_HEADER, ($depth, $glyph, @renderings), $) | ||
andreoss: actually, the first line appears to not show the `>` char but it's still the REPL | 14:56 | ||
ugexe | line 38 | ||
nadim | ugexe: passing a multi at line 33 in example/diff.pl triggers code at line 240, and the twomethds below too, in lib/Data/Dump/Tree.pm | ||
MadcapJake | oh no nvm, it shows up eventually | ||
ugexe | oh thats literally what you said | ||
im going blind, i saw a 0 :x | |||
Begi | andreoss: what had you before your upgrade ? | 14:57 | |
[Coke] | andreoss: what does perl6 --version say, and did you install Linenoise or Readline? | ||
andreoss | $ perl6 --version | ||
This is Rakudo version 2016.03-49-g330f814 built on MoarVM version 2016.03-46-g50c7f6a | |||
implementing Perl 6.c. | |||
14:57
Amnez777 left
|
|||
ugexe | this coding style is difficult to follow :( | 14:58 | |
MadcapJake | andreoss: have you tried typing in some could `"hello world".say` or somesuch | ||
andreoss | [Coke]: no. should i? I've been using rlwrap this whole time | ||
[Coke]: panda says Linenoise is installed already | 14:59 | ||
14:59
colomon left
|
|||
nine | andreoss: what do you mean by "panda's API"? | 14:59 | |
MadcapJake | s/could/code/ :P | ||
andreoss | i've typed `die` and nothing happend | 15:00 | |
MadcapJake | try "hello".say | ||
do you see a `>` eventually? | |||
(if not then something is definitely crashing, perhaps try uninstalling rlwrap) | 15:01 | ||
nadim | to simplify, if a multi is passed to the dumper, it will be called at three different places thrugh this code nopaste.linux-dev.org/?1028836 In the example I am talking about, it will only match in one place. | 15:02 | |
andreoss | MadcapJake: suddenly it started to work | ||
15:02
Khisanth joined
|
|||
MadcapJake | nadim: what is the ($depth, $glyph, @renderings) argument? | 15:02 | |
andreoss | but still there's 2-3 second delay of '>' appearance | ||
MadcapJake | yeah there's a slight delay for me too | 15:03 | |
nadim | MadcapJake: something that the multi sub may want to use | ||
MadcapJake | nadim: why are you passing it as such? there's a lot of heavy lifting in the multi that could be boiled down into a hash or an object | 15:04 | |
ugexe | true, or use the multi to operate on smaller subsets of parameters and use nextwith(|c) to pass on whats not needed anymore | 15:05 | |
MadcapJake | nadim: also DDT_HEADER as an enum is slightly non-perl6y you should use a named Bool argument (a flag essentially) | ||
andreoss | MadcapJake: whats changed? there were no delays before neither this unnecessary message | ||
nadim | IMO that's not where the problem resides, and the multi subs would have to do exactly the same job | ||
MadcapJake: Bool .. 2 types, DDT_stage .. 3 types | 15:06 | ||
andreoss | nine: like how does it treats Build.pm and how i ca override 'build' and 'test' calls | ||
15:07
sufrostico left
|
|||
andreoss | *can | 15:07 | |
MadcapJake | nadim but since :$DDT_HEADER is more universally used it's probably been optimized a bit more than using an enum, heck I've seen strings used more than an enum for that purpose | ||
ugexe | perl6 --profile | 15:08 | |
MadcapJake | nadim: I think you should at least try changing ($depth, $glyph, @renderings) to a class/object, that could help | ||
15:09
domidumont left,
Khisanth left
|
|||
nadim | MadcapJake: I have no doubt that some optimization on the argument passing or type of argument may make a difference but that's micro optimization IMO | 15:09 | |
15:09
Amnez777 joined
|
|||
ugexe | perl6 --profile and there will be no opinions to get in the way | 15:10 | |
nadim | First I could make the three filters /switchshed on DDT_stage) different, so I wouldn't have to call them at all if they didn't exist. right now the multi sub can be any of those | ||
ugexe: I totally agree | |||
MadcapJake | ugexe: what would you look for in the profile, in this case? | 15:11 | |
ugexe | i'd be looking for how its dispatching | ||
nadim | but even if i did all the micro optimisation, the fact remains that it is the dispatching that takes time, or the lack of dispatching in this case | ||
MadcapJake | nadim: I would argue that there's something tripping up the dispatcher in your signatures before arguing that the dispatcher is the problem (not to say that this isn't something that should be fixed, but there's got to be a particular reason *your* multis are taking so long to dispatch) | 15:12 | |
jnthn | Multi-dispatch is well optimized for successful dispatch (it keeps a cache and the VM's optimizer can even inline in that case) | 15:14 | |
15:14
Actualeyes left
|
|||
nadim | IMO, it's because there is nothing to dispatch to | 15:14 | |
jnthn | However, there's no caching of known-to-fail dispatches, so you'll always go through the slow path then. | ||
nadim | and thus triggers the exception | ||
15:14
lostinfog joined
15:15
maybekoo2 left
|
|||
jnthn | Plus play the cost of the exception construction/throw, though it's probably the slow-path dispatch that is most costly. | 15:15 | |
15:15
Amnez777 left,
Amnez777 joined
|
|||
MadcapJake | jnthn: what's known-to-fail mean? | 15:15 | |
ugexe | does `sub foo($x, ($a, $b, $c))` have to unpack parameters/arguments? | ||
jnthn | ugexe: yes | ||
ugexe | thats my guess then | ||
nadim | my opinion too. I'll put together some code to optimize a bi but I think it would be great to havea "would this call match" before ever calling it | 15:16 | |
jnthn | MadcapJake: We don't have a fast-path for remembering which multi-dispatches fail | ||
nadim | and without having to do all the candidates grepping | ||
jnthn | nadim: There is, `.cando`, but it always take the slow-path ;) | ||
nadim | lol!:) | ||
ugexe | method filter_header(\s_replacement, $s, ($current_depth, $glyph, @renderings), (\k, \b, \v, \f, \final, \want_address)) # seems like lots of unpacking for a multi | 15:17 | |
jnthn | Yeah, unpacking is a promised slow-path too since the unpacks act like constraints. | ||
Though that's a method, not a multi? | 15:18 | ||
15:19
rigsby joined
|
|||
ugexe | ah true, although it does use that same signature a few lines later to call a possible multi? : `$filter(s_replacement, $s, DDT_HEADER, ($current_depth, $glyph, @renderings), (k, b, v, f, final, want_address)) ;` | 15:20 | |
15:24
Khisanth joined
|
|||
dalek | c: a00387d | coke++ | doc/ (2 files): fix grammar |
15:27 | |
Begi | Can't I use a separate file on my tests ? It's ok in local, but Travis doesn't like it | 15:31 | |
(this PR : github.com/Emeric54/p6-markdown/pull/1 = | |||
* ) | |||
15:32
Amnez777 left
|
|||
MadcapJake | Begi: you might have to change the $filename to `t/text.md`, since prove is running from the base directory | 15:37 | |
Begi | Yeah, it's what I'm doing, I guess it :) but thanks ! | ||
15:40
khw joined
15:43
Khisanth left
|
|||
MadcapJake | how would I do a memcpy in perl6 NativeCall? | 15:43 | |
15:43
edehont joined
15:44
Amnez777 joined,
inokenty left
|
|||
MadcapJake | would i have to pull memcpy in from stdlib? | 15:44 | |
15:45
musiKk_ joined
15:46
cdg_ joined
|
|||
hoelzro | MadcapJake: yup | 15:46 | |
15:47
cdg left
|
|||
MadcapJake | will is native(Str) work or is string.h in some other so file? | 15:47 | |
ilmari | MadcapJake: NativeCall doesn't care about headers, only libraries | 15:49 | |
15:50
itaipu joined
|
|||
MadcapJake | right, so is string.h in a library or is it included in the standard library that can be accessed via «is native(Str)»? | 15:50 | |
ilmari | memcpy is in the stdlib | ||
MadcapJake | ok thanks :) | ||
ilmari | the manual page usually says if you need a separate library | 15:51 | |
e.g. sin(3) says "Link with -lm." | |||
15:51
dupa joined,
buharin__ joined
|
|||
TimToady suspects killing all the clowns would have a large effect on our current US presidential race... | 15:51 | ||
ilmari | so for that you'd need is native('m') | 15:52 | |
MadcapJake | ilmari: cool thanks for the tip! | ||
Begi | Haha TimToady, so true :'-| | ||
masak | "The first thing we do, let's kill all the clowns." -- Dick the Butcher, Henry VI | 15:53 | |
15:54
Amnez777 left,
Amnez777 joined
15:55
abraxxa left
|
|||
ugexe | lets see you try and kill this corporation, which counts as a legal clown in the US | 15:55 | |
15:56
sue joined
|
|||
ilmari | m: use NativeCall; multi sub msin(num64) returns num64 is native('m') is symbol('sin') { * }; msin(num64.new(pi/2)) | 15:57 | |
camelia | rakudo-moar 330f81: OUTPUT«Cannot call msin(num64); none of these signatures match: (num64 --> num64) in block <unit> at /tmp/1toEZd0xL7 line 1» | ||
ilmari | whut? | 15:58 | |
15:58
inokenty joined,
Khisanth joined
|
|||
ilmari | m: use NativeCall; sub msin(num64) returns num64 is native('m') is symbol('sin') { * }; msin(num64.new(pi/2)) | 16:01 | |
camelia | ( no output ) | ||
ilmari | oh, do native multis not work? | ||
I was trying to do msin(int64) sybmol('sin') and msin(int32) symbol('sinf') | 16:02 | ||
m: use NativeCall; sub msin(num64) returns num64 is native('m') is symbol('sin') { * }; say msin(num64.new(pi/2)) | 16:03 | ||
camelia | rakudo-moar 330f81: OUTPUT«1» | ||
ilmari | m: use NativeCall; sub msin(num32) returns num64 is native('m') is symbol('sinf') { * }; say msin(pi/2) | ||
camelia | rakudo-moar 330f81: OUTPUT«3.6507183173809e-30» | ||
ilmari | m: use NativeCall; sub msin(num32) returns num32 is native('m') is symbol('sinf') { * }; say msin(pi/2) | ||
camelia | rakudo-moar 330f81: OUTPUT«1» | ||
ilmari | using the right return type helps | 16:04 | |
16:05
musiKk_ left
16:06
znpy left
16:07
pmurias_ left
|
|||
MadcapJake | Ok now my example just hangs :( | 16:10 | |
I tried to closely match how the libcurl smtp-tls example does it: gist.github.com/MadcapJake/05ecec7b8db16fa83b74 | |||
16:11
sjoshi left
16:12
Khisanth left
|
|||
MadcapJake | anyone able to help? perl6-gdb-m just hangs too :( | 16:16 | |
16:18
araujo left
|
|||
MadcapJake | so I did an interrupt on the gdb run and this is what is printed: 0x00007ffff749e8b7 in do_fcntl (arg=<optimized out>, cmd=7, fd=13) at ../sysdeps/unix/sysv/linux/fcntl.c:31 31../sysdeps/unix/sysv/linux/fcntl.c: No such file or directory. | 16:19 | |
is that just from interrupting? or is it something else? | |||
16:20
rigsby left,
avalenn joined
|
|||
MadcapJake | www.irccloud.com/pastebin/EFv5i0R8...0backtrace | 16:21 | |
gregf_ | either ways they will ruin the country :| | 16:23 | |
umm... wrong chat :/ | |||
16:24
vendethiel- joined
|
|||
masak | gregf_: I just thought you were still talking about the clowns. :P | 16:24 | |
gregf_ | well, they truly are .. but in a different country... clowns and power can ruin any country :\ | 16:25 | |
16:25
vendethiel left
|
|||
MadcapJake | ok well, if anyone decides to take a look, I've got the details on reddit, otherwise I've no idea what to do. Moving on to other things now. | 16:27 | |
16:29
Khisanth joined
|
|||
masak | MadcapJake: ...reddit? | 16:29 | |
MadcapJake | www.reddit.com/r/perl6/comments/4c...h_netcurl/ | 16:30 | |
perhaps would be better in an SO question, but i dunno | |||
masak | MadcapJake: your attempt looks pretty good. what goes wrong with it? | 16:31 | |
MadcapJake | just hangs indefinitely | 16:32 | |
kmwallio | MadcapJake: do you know if your read callback gets called? | ||
MadcapJake | kmwallio: no it doesn't appear to be making it that far (even «perl6 -c» hangs) | 16:33 | |
[Coke] | you could go low tech and put in a bunch of says to see where it hangs. | 16:34 | |
MadcapJake | I tried removing «is native()» from the read_callback decl, and it has no effect. | ||
kmwallio | will 'FROM' use the constant, or no since it's in quotes? | 16:35 | |
MadcapJake | [Coke]: I think there's something going on with the parsing because perl6 -c hangs and a say right at the beginning never shows | ||
kmwallio: that FROM is for the email rfc header | 16:36 | ||
[Coke] | git 2.8 out, includes || git fetch of submodules. | 16:39 | |
ooh: git config --global user.useconfigonly true | 16:40 | ||
MadcapJake: then it should be easy to find, just comment-bisect the file | |||
(comment out half the file; if -c works, you know which half had the problem.) | 16:41 | ||
kmwallio | MadcapJake: running perl6 -c gives me "Syntax OK" | ||
[Coke] | kmwallio: do you have all those modules installed? | ||
(would that fail a -c? | |||
kmwallio | it failed the first time because I needed Email::Simple | ||
installing all of them made it happy | 16:42 | ||
MadcapJake | [Coke]: for some reason perl6 -c hangs even if i comment the whole darn file out! o_O | ||
kmwallio | trying to run it gives me: | ||
Calling memcpy(NativeCall::Types::CArray[uint8], Mu, int) will never work with declared signature (NativeCall::Types::Pointer $dest, NativeCall::Types::Pointer $src, NativeCall::Types::size_t $n --> NativeCall::Types::Pointer) | |||
at mail.p6:44 | |||
MadcapJake | [Coke]: could I have botched my perl6 install? or is there a hanging process somewhere? | ||
kmwallio | MadcapJake: maybe killall perl6 | ||
see if some resource is hung | |||
although that might not be the suggested way to do it... | 16:43 | ||
16:44
dupa left,
buharin__ left
|
|||
MadcapJake | something is definitely wonky | 16:44 | |
16:45
dupa joined,
buharin__ joined
|
|||
MadcapJake | I had a stuck moarvm actually xD | 16:45 | |
kmwallio | does anyone know how to pass null functions into NativeCall? | 16:46 | |
ilmari | kmwallio: do you mean null pointers? | 16:47 | |
RabidGravy | you pass the type object | 16:49 | |
that is the "appropriate" type object | |||
16:50
kurahaupo joined
16:52
Khisanth left
|
|||
kmwallio | any idea what the type object is for a function/subroutine? | 16:58 | |
17:09
ilogger2 joined,
ChanServ sets mode: +v ilogger2,
chee joined,
simcop2387 joined
17:10
rigsby joined,
boegel joined,
Fleurety_ joined
|
|||
DrForr | Aroo? 'drforr1'?... | 17:11 | |
RabidGravy | AN IMPOSTOR! | 17:12 | |
17:14
domidumont joined,
xinming joined
|
|||
tony-o | is prove6 broken? | 17:16 | |
DrForr | I guess so. lso wondering why my terminal screen is a little shorter than usual as well. | ||
tony-o | DrForr: on tmux? | 17:17 | |
17:17
BuildTheRobots joined,
vendethiel- joined
|
|||
DrForr | Yep. I probably accidentally shrunk a terminal window at work and forgot that I was logged in. | 17:18 | |
dalek | osystem: c6bf521 | RabidGravy++ | META.list: Add Lumberjack::Dispatcher::Syslog See github.com/jonathanstowe/Lumberjac...her-Syslog |
||
17:19
mithaldu_ joined,
SmokeMachine____ joined,
mindos joined
|
|||
RabidGravy | MORE LOGGING! | 17:20 | |
17:21
mrsolo joined
|
|||
RabidGravy | Is there some crazy log aggregator thingy that all the kewl kids are using these days that I should be looking at? | 17:22 | |
DrForr | Incidentally Test apparently doesn't compare utf8 buffers correctly. | ||
17:22
parisba joined
|
|||
DrForr | Logstash/Elaasticsearch is wha I now of. | 17:22 | |
*what I know of. | |||
17:22
parisba is now known as Guest2098
|
|||
RabidGravy | oh yeah | 17:22 | |
17:22
_nadim joined
|
|||
cfedde | ad kibana on the top of that heap. | 17:23 | |
add | |||
DrForr | utf8.new(100, 105,...) vs. utf8.new(100,105,...) # the lack of space is the crucial bit. | 17:24 | |
DrForr digs to see if it's IO::Blob's tests or Test's is-deeply. | |||
RabidGravy | yeah, I'm thinking a stringwise comparison is odd | 17:25 | |
17:25
Fleurety_ is now known as Fleurety
|
|||
RabidGravy | it should do 'elems' to check the lengths, and then an element-wise comparison | 17:26 | |
17:27
itaipu joined
|
|||
tony-o | cool, flow is going faster than `prove -j9` for anything larger than 1 or 2 test files with 5 or so tests | 17:28 | |
17:29
Guest2098 is now known as DrParis
|
|||
DrForr | Yeah, it's IO::Blob. | 17:30 | |
DrForr puts together a PR. | 17:31 | ||
17:32
spider-mario joined,
Khisanth joined,
wamba joined
17:35
abaugher joined
|
|||
RabidGravy | lawks a mercy! the packaged elasticsearch for fedora has 88 packages it depends on | 17:37 | |
17:37
kent\n joined,
kent\n left,
kent\n joined
|
|||
ugexe | gotta have a left-pad afterall | 17:38 | |
MadcapJake | well i give up, I'd need to spend some serious time writing Net::Curl functionality and I'd much rather just finish this thing. I'm gonna just run ssmtp and be done with it :P | ||
RabidGravy | why not use Net::SMTP? | 17:39 | |
MadcapJake | it doesn't install, tests fail | 17:40 | |
17:40
_nadim left
|
|||
RabidGravy points vigorously to the fork button on github | 17:40 | ||
[Coke] | sometimes you want to just work on your project, not fix everyone elses. | 17:41 | |
RabidGravy | yeah, I forgot that part | 17:42 | |
17:42
Khisanth left
|
|||
MadcapJake | last 5 commits to Net::SMTP are all some form of "hope this fixes tests" | 17:42 | |
and they're all from October of last year xD | 17:43 | ||
RabidGravy | I'd better take a look then :) | 17:44 | |
MadcapJake | plus ultimately, I have no idea how it works :P some kind of socket based thingy :P | ||
RabidGravy | I mean one day I'm going to want to send e-mail | ||
ugexe | ugh guess_library_name is a mess | 17:45 | |
guess_if_ill_return_a_string_or_path_or_relative_or_absolute would be a better name | |||
MadcapJake | that day is today for me :P but I'm really not knowledge on sockets and SMTP, the errors when you install are bad client-send and bad client-send EHLO ¯\_(ツ)_/¯ | 17:46 | |
DrForr | PR sent. | 17:47 | |
(it's breaking Crust installation.) | |||
RabidGravy | MadcapJake, hahaha, got it. Net::SMTP didn't survive the \r\n grapheme malarkey | 17:52 | |
kmwallio | is anyone familiar with OpenCL...? | ||
MadcapJake | RabidGravy: ah! Is it an easy fix? | 17:53 | |
RabidGravy | just looking | 17:54 | |
17:55
Khisanth joined
|
|||
MadcapJake | RabidGravy: «$.conn.print($stuff ~ "\r\n");» is the line that causes all the bad client-send errors | 17:56 | |
why is it $.conn and not $!conn? | |||
diakopter | . means a public accessor | 17:57 | |
17:57
dupa joined,
buharin__ joined
|
|||
MadcapJake | RabidGravy: how did you do this? I just hit the darn fork button... ;) | 17:57 | |
RabidGravy | the "bad client-send" is just an internal diagnostic when it doesn't match some expected text | ||
MadcapJake | diakopter: but i thought that was only used in has declarations | ||
diakopter | well the . must be used by code outside the class | 17:58 | |
ugexe | $.foo might be `method foo` from a role | ||
MadcapJake | ugexe: itself is a role? could that be it? | ||
17:59
autarch joined
|
|||
timotimo | kmwallio: are you going to bind OpenCL functions? :) | 17:59 | |
that could be interesting | |||
kmwallio | I'm trying... | ||
gist.github.com/kmwallio/8565b36d1fe9e2b18401 | |||
I get an invalid parameter (-30) return | 18:00 | ||
18:00
_nadim joined
|
|||
RabidGravy | MadcapJake, don't worry I'll have it fixed in ten minutes | 18:00 | |
MadcapJake swoons | 18:01 | ||
timotimo | i have no idea of the OpenCL API, never even tried it so far :( | ||
MadcapJake | timotimo: api? isn't it a language? | ||
kmwallio | MadcapJake: there's the language for what runs on the GPU, then the API to interact with it | ||
MadcapJake reads wikipedia page | 18:02 | ||
kmwallio usually just copies and pastes someone else's working code and modifies it to do what he needs | |||
MadcapJake | so it's C with a different memory model | ||
kmwallio doesn't really know what he's doing | |||
MadcapJake | I will never understand the ways people like to mutate C (it's already tough to read...) | 18:04 | |
RabidGravy | MadcapJake, all fixed now | 18:05 | |
MadcapJake | RabidGravy: I don't see a PR on Net::SMTP | ||
did I speak too soon :P | 18:06 | ||
RabidGravy | er, that's because I *just* fixed it. Patience dear. | ||
MadcapJake | hehe I wondered that xD | ||
kmwallio | MadcapJake: it makes it easier to learn and get users if you take something familiar and change it slightly | ||
18:06
Khisanth left
|
|||
nemo | So. Zoffix had a bunch of trouble w/ switching to xim - I kinda had some issues too. | 18:06 | |
doc.perl6.org/language/unicode_entry#XCompose ← here I mean | |||
I just wanted to mention that im-switch fixed things nicely for me on two of my machines | |||
maybe should be mentioned on that page | |||
MadcapJake | kmwallio: I've never understand that perspective I guess. To me, taking something familiar and making it unfamiliar is just a red herring. | 18:07 | |
kmwallio | MadcapJake: I find it frustrating because it's so close and similar, but I can do something in one but not the other | ||
MadcapJake | kmwallio: exactly! that's the thing, when you have something familiar our brains expects certain things, familiarity cuts both ways imo | 18:09 | |
RabidGravy | MadcapJake, sent the PR, but it still doesn't work - there's an un-tested failure | 18:11 | |
MadcapJake | RabidGravy: all tests pass on my end using your fork | 18:14 | |
18:15
araujo joined
|
|||
MadcapJake | will there ever be a way to use pre-compiled perl6? especially for travis. | 18:15 | |
18:16
dupa left,
buharin__ left,
FROGGS joined
|
|||
RabidGravy | MadcapJake, yeah, but it couldn't actually send e-mail - there was a bug for which there wasn't a test | 18:17 | |
now also fixed | |||
And it now definitely sends e-mail :) | 18:18 | ||
18:18
musiKk_ joined
18:19
vike joined
|
|||
RabidGravy | so all good | 18:19 | |
18:19
Khisanth joined
|
|||
MadcapJake | RabidGravy: method nl-in not found in SMTPSocket | 18:19 | |
did you mean nl-out? | 18:21 | ||
RabidGravy | ah | ||
timotimo | MadcapJake: just host a perl6 package somewhere :) | 18:22 | |
RabidGravy | no, it's the way the tests mock the socket, 'ang on | ||
timotimo | and then wget stuff in the .travis.yml | ||
MadcapJake | timotimo: haha well I don't have any hosting available :P | 18:23 | |
I wonder if there's a way to store the built rakudo and then check version to decide whether it needs to rebuild | |||
(might be possible now with all this relocatable work) | 18:24 | ||
18:26
Khisanth left
|
|||
MadcapJake | RabidGravy++ # time to send some email! | 18:26 | |
18:26
edehont joined
18:28
itaipu left
|
|||
MadcapJake | RabidGravy: «Method 'nl-in' not found for invocant of class 'IO::Socket::SSL'» | 18:31 | |
18:32
rigsby left,
AlexDaniel joined
|
|||
DrForr | Oh, I bet I know what drforr1 is, I'll bet it's the box my weechat account is running on splitting. | 18:33 | |
RabidGravy | oh, that suck | ||
18:34
_nadim left
18:37
_nadim joined,
edehont left
|
|||
RabidGravy | MadcapJake, that sucks because the interface between IO::Socket::SSL and IO::Socket::INET is different | 18:39 | |
18:39
Khisanth joined
|
|||
RabidGravy | now that should work | 18:40 | |
AlexDaniel | m: -> $a, $b { say $a + $b }(3, 4) | 18:53 | |
camelia | rakudo-moar 330f81: OUTPUT«7» | ||
18:53
Khisanth left
|
|||
AlexDaniel | m: { say $^a + $^b }(3, 4) | 18:53 | |
camelia | rakudo-moar 330f81: OUTPUT«7» | ||
AlexDaniel | m: (say * + *)(3, 4) | ||
camelia | rakudo-moar 330f81: OUTPUT«{ ... }No such method 'CALL-ME' for invocant of type 'Bool' in block <unit> at /tmp/op2a3TvHvo line 1» | ||
AlexDaniel | m: say (* + *)(3, 4) | ||
camelia | rakudo-moar 330f81: OUTPUT«7» | ||
AlexDaniel | m: sub { say $^a + $^b }(3, 4) | 18:54 | |
camelia | rakudo-moar 330f81: OUTPUT«7» | ||
AlexDaniel | m: sub foo { say $^a + $^b }(3, 4) | ||
camelia | rakudo-moar 330f81: OUTPUT«7» | ||
AlexDaniel | m: sub foo($a, $b) { say $a + $b }(3, 4) | ||
camelia | rakudo-moar 330f81: OUTPUT«7» | ||
AlexDaniel | m: anon sub foo($a, $b) { say $a + $b }(3, 4) | ||
camelia | rakudo-moar 330f81: OUTPUT«7» | ||
18:55
cdg joined,
JRaspass joined
|
|||
DrForr | RabidGravy: What was that thread pool size variable again? | 18:56 | |
timotimo | m: say $*DISPATCHER | ||
camelia | rakudo-moar 330f81: OUTPUT«Dynamic variable $*DISPATCHER not found in block <unit> at /tmp/JYXRXEG3K0 line 1Actually thrown at: in block <unit> at /tmp/JYXRXEG3K0 line 1» | ||
timotimo | m: say $*SCHEDULER | ||
RabidGravy | $*SCHEDULER is the scheduler | ||
camelia | rakudo-moar 330f81: OUTPUT«ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable)» | ||
RabidGravy | you can just set a new one in the appropriate dynamic scope | 18:57 | |
DrForr | Ah, and the default does happen to be 16. It appears to be IO::Socket::Async giving up at the moment, but I'm not really as up on async stuff as I should be. | 18:58 | |
18:59
cdg left
|
|||
DrForr | "Cannot modify immutable...", I'll find the correct invocation. | 19:01 | |
timotimo | you should install a whole new scheduler | ||
DrForr | I was writing '$*SCHEDULER = ThreadPoolScheduler.new(...)". | 19:02 | |
timotimo | yeah, yo'll need a "my" | ||
DrForr | Ah, forot. | ||
timotimo | :) | ||
DrForr | *forgot | ||
Neither resizing the thread pool up or down changes the behavior, siege(1) still runs to completion with 15 concurrent sessions, stops serving at 16. | 19:07 | ||
kalkin-_ | Is there some form of higher kinded type in perl 6? | 19:08 | |
something which does i want a function that does this (*->*)->* | |||
DrForr | That looks somewhat Haskellish. | 19:09 | |
kalkin-_ | indeed it does | ||
19:09
Khisanth joined
|
|||
RabidGravy | DrForr, what is the actual server code that you are looking at? | 19:10 | |
DrForr | HTTP::Server::Tiny. | ||
moritz | kalkin-_: you can declare signatures of callbacks you receive | 19:11 | |
19:12
dupa joined,
buharin__ joined
|
|||
kalkin-_ | moritz: do you have an example for how to do this? | 19:14 | |
DrForr | RabidGravy: I'm just running the stock eg/hello.pl6 script and creating a .. Oh, should the ThreadPoolWhatever be in a BEGIN block? | 19:15 | |
TimToady | m: say &infix:<+>.signature ~~ :(Mu $?, Mu $? --> Mu) | ||
camelia | rakudo-moar 330f81: OUTPUT«True» | ||
moritz | m: sub scale(&c:(Numeric -> Numeric)) { return { 2 * c(0.5*$_) } }; say scale(&sin)(1) | ||
camelia | rakudo-moar 330f81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iebjyvzL5OMalformed parameterat /tmp/iebjyvzL5O:1------> 3sub scale(&c:(Numeric7⏏5 -> Numeric)) { return { 2 * c(0.5*$_) } expecting any of: constraint formal parameter» | ||
moritz | m: sub scale(&c:(Numeric --> Numeric)) { return { 2 * c(0.5*$_) } }; say scale(&sin)(1) | ||
camelia | rakudo-moar 330f81: OUTPUT«Constraint type check failed for parameter '&c' in sub scale at /tmp/IKZgR07yaF line 1 in block <unit> at /tmp/IKZgR07yaF line 1» | ||
19:15
Khisanth left
|
|||
DrForr | Doesn't alter the behavior. | 19:16 | |
moritz | m: sub scale(&c:(Numeric --> Numeric)) { return { 2 * c(0.5*$_) } }; say square(Numeric $x --> Numeric) { $x * $x }; say scale(&square)(1) | ||
camelia | rakudo-moar 330f81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Nn_ygNZ5IyUnable to parse expression in argument list; couldn't find final ')' at /tmp/Nn_ygNZ5Iy:1------> 3 { 2 * c(0.5*$_) } }; say square(Numeric7⏏5 $x --> Numeric) { $x * $x }; say scale( …» | ||
19:16
JRaspass left
|
|||
moritz | m: sub scale(&c:(Numeric --> Numeric)) { return { 2 * c(0.5*$_) } }; sub square(Numeric $x --> Numeric) { $x * $x }; say scale(&square)(1) | 19:16 | |
camelia | rakudo-moar 330f81: OUTPUT«0.5» | ||
moritz | kalkin-_: ^^ | 19:17 | |
19:17
Khisanth joined
|
|||
RabidGravy | DrForr, looking at the code, I'm not sure it is closing all the connections | 19:17 | |
kalkin-_ | moritz: but it's only numeric. I think the aproach TimToady shows is the right direction. I have to read up on Mu | 19:18 | |
moritz | kalkin-_: well, it's an example. It works with other types too | 19:19 | |
DrForr | RabidGravy: I was wondering the same thing on the walk home but wasn't sure where to start looking for that. | ||
There's also a comment about MoarVM (what I'm using) not handling SIGPIPE, but I don't know enough about async to know if that's related. | 19:20 | ||
DrForr reads the ::Async docs for inspiration. | 19:21 | ||
RabidGravy | welll the sigpipe will get sent if the other end closes a socket | ||
19:22
Khisanth left
|
|||
DrForr | Ah, so maybe there should be a tap to listen for the close, and there isn't one currently?... Pulling this out of my proverbial ass, just so you're aware. | 19:23 | |
I can tell that at a total of 15 connections, IO::Socket::Async.listen() no longer gets called. | 19:26 | ||
Well, 15 concurrent connections, to be sure. | |||
MadcapJake | Five words: I. Have. Sent. An. Email. | ||
DrForr alerts the media. | 19:27 | ||
MadcapJake | RabidGravy thanks so much for fixing Net::SMTP works like a charm, had to fiddle with some gmail settings and wrap my addresses in angle brackets, and then boom! An email was sent! | ||
RabidGravy | fabulous | 19:28 | |
MadcapJake | now to move this functionality over to the main sixbug app and then I gotta refactor the RT interface, then this will be ready to launch! yippeee mickey! | 19:29 | |
19:31
domidumont left,
DrParis is now known as parisba
|
|||
MadcapJake | DrForr: I tried changing $*SCHEDULER yesterday to one with more max_threads but it really didn't like that, I had to place it in Crust at the beginning of Crust::Runner.run and even then I got 6 req/sec instead of 30+ at :15max_threads | 19:32 | |
DrForr | The rate will eventually improve, I'm not as concerned about that. I'm just worried about it failing *hard* at the 16-thread boundary rather than degrading. | 19:33 | |
timotimo | what kind of failure is that? a crash? | ||
if so, can you get that in a gdb session perhaps? | 19:34 | ||
MadcapJake | timotimo: me? I didn't get a crash at all, it just hangs | ||
timotimo | i'm not sure if strace would happen | ||
DrForr | Not a crash, unfortunately. | ||
timotimo | help* not hapen | 19:35 | |
happen*, damn it. | |||
DrForr | Like MadcapJake says, siege(1) hangs waiting for the open connections to close. Or something. | ||
MadcapJake | timotimo: even after you stop the concurrent connections (I was using wrk), no further connections are accepted | ||
timotimo | oof | 19:37 | |
19:37
Khisanth joined
|
|||
DrForr | I don't mind if connections go into a slow response queue or whatever after 16 concurrent connections, I just want the server to respond. | 19:37 | |
timotimo | perhaps a kind of trace would be interesting. just output what lines in the code get hit for which connections/threads | ||
so you could see where it stops processing something? | |||
DrForr | Let me fire up strace... | 19:38 | |
timotimo | strace with 16 concurrent connections going on and all the sbrk/mmap spam from allocations and GC ... :| | ||
it'd really want to be filtered strongly | 19:39 | ||
i'm not sure if i have enough brane power to analyze a big strace log today | |||
tony-o | DrForr: MadcapJake: what is crust using for http listener? | 19:40 | |
timotimo | oh hey tony-o :) | ||
tony-o | hey timotimo | 19:41 | |
MadcapJake | IO::Socket::Async | ||
tony-o | MadcapJake: there is a couple of issues with that | ||
that you can run into the hanging/segfault arena | |||
hows it going timotimo ? | |||
timotimo | not feeling so great today, but i'll live :) | 19:42 | |
jnthn made a heap profiler that spits out dumps that are fun to analyze with the perl6-only tool he's built | |||
MadcapJake | tony-o: sounds like that's probably the issue | ||
timotimo | so that's what i'm playing with mostly | ||
RabidGravy | ooh I don't know, I just provoked a mammoth moarvm panic with the siege on the eg/hello.pl6 | ||
19:42
Khisanth left
|
|||
timotimo | have you heard of the issue we have with repeated EVAL calls leaking lots of memory? | 19:43 | |
tony-o | I:S:A hangs if you try to process data on the socket cross thread/channel, you can also run into a scenario where sockets aren't closed because of too many concurrent connections | ||
RabidGravy | [jonathan@coriolanus p6-HTTP-Server-Tiny]$ perl6 -Ilib eg/hello.pl6 | ||
http server is ready: 127.0.0.1:15555/ (pid:17423) | |||
*** Error in `/home/jonathan/.rakudobrew/moar-nom/install/bin/moar': double free or corruption (fasttop): 0x00000000047ea0e0 *** | |||
timotimo | oh, a crash! :) | ||
mst | RabidGravy: youbrokethebuild.com/ | ||
timotimo | that's quite good. can you run that through valgrind or perhaps with --asan in moar's Configure.pl activated? | ||
tony-o | m: print "5\r6"; | 19:44 | |
camelia | rakudo-moar 330f81: OUTPUT«5 | ||
tony-o | ugexe: looks like that issue exists on camelia too | ||
timotimo | t.h8.lv/all_paths_here.png - does that give problems panning around in the browser? | ||
MadcapJake | tony-o: but we want there to be more connections than 15 especially for a web server | 19:45 | |
timotimo | well, ideally we'd finish the connections significantly faster so that 15 is enough :P | 19:46 | |
tony-o | MadcapJake: i understand that but you can get into race conditions where your server doesn't close a connection prior to starting work on another and then you just have a bunch of competing threads that aren't closing sockets | ||
kalkin-_ | my $a ='dasd'; sub f($n) { $n + 2 } ; f($a) | ||
m: my $a ='dasd'; sub f($n) { $n + 2 } ; f($a) | |||
camelia | rakudo-moar 330f81: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5dasd' (indicated by ⏏) in sub f at /tmp/n4KsYtm7yX line 1 in block <unit> at /tmp/n4KsYtm7yX line 1Actually thrown at: in sub f at /tmp/n4Ks…» | ||
tony-o | i ran into that when i wrote HTTP::Server::Async | ||
timotimo | like, we respond faster than any new handshakes can come in :D | ||
kalkin-_ | perl6 -c will pass it | ||
tony-o | H:S:A is fairly stable | ||
if you want to take a look at that | |||
MadcapJake | tony-o: doesw H:S:A support binary data? | 19:47 | |
tony-o | it did at one point, i believe it still does | ||
kalkin-_ | why doesn't perl6 do the check not at compile time? It can intefere that "asd" + 3 can't work out | ||
timotimo | how is H:S:T at the moment? | ||
kalkin-_ | or can't it? | ||
tony-o | H:S:T i believe is broken, i'll take a look at it | ||
RabidGravy | well under valgrind if I siege the eg/hello.pl6 of http server tiny | ||
moritz | kalkin-_: not really | ||
m: say '42' + 3 | |||
camelia | rakudo-moar 330f81: OUTPUT«45» | ||
timotimo | kalkin-_: it can figure out that a call to infix:<+> will work fine, because in theory it could try to turn adsf into a number | ||
we don't go further than that yet | 19:48 | ||
RabidGravy | it carries on going forever | ||
MadcapJake | H:S:T is what crust uses and it works great | ||
RabidGravy | albeit very slowly | ||
moritz | kalkin-_: it can dispatch based on the types; it doesn't go deep enough to actually resolve the numification that happens deeper in the call stack | ||
otoh, infix:<+> is a marked as "is pure", so the constant could catch it | |||
tony-o | H:S:T seems stable | 19:49 | |
RabidGravy | Transactions: 255 hits/Concurrency: 14.18 | ||
moritz | the constant folder currently intentionally swallows errors | ||
timotimo | is turning string into num failing a Failure? | ||
tony-o | MadcapJake: the other problem is that sometimes when you max out $*SCHEDULER, it quits responding/processing anything currently 'live' | 19:50 | |
timotimo | perhaps it constant-folds a Failure object there | ||
kalkin-_ | timotimo, moritz: i see. thanks for the explanaition | ||
DrForr | tony-o: That's exactly the issue I appear to be running into. | ||
moritz | see the try { } in src/Perl6/Optimizer.nqp line 1416 | ||
and then | |||
if $survived && !nqp::istype($ret_value, $!symbols.Failure) { | |||
tony-o | DrForr: it's definitely an issue and took me a couple of days to really determine that was in fact the issue | 19:51 | |
timotimo | interesting. it will constant-fold a "45" + 1, but not a "hello" + 1 | ||
kalkin-_ | '3' + 3 == 6 stuff is weird | ||
thats so unexpected | |||
moritz | one could add an else branch to that, and complain with "will never work" | ||
kalkin-_ | m: say 3 + 'asd' | ||
camelia | rakudo-moar 330f81: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5asd' (indicated by ⏏) in block <unit> at /tmp/YHwbsSwLxp line 1Actually thrown at: in block <unit> at /tmp/YHwbsSwLxp line 1» | ||
kalkin-_ | m: '3' + 3 | 19:52 | |
camelia | rakudo-moar 330f81: OUTPUT«WARNINGS for /tmp/JXJP4z8Gmw:Useless use of "+" in expression "'3' + 3" in sink context (line 1)» | ||
timotimo | moritz: but what if you're using it as a shortcut for throwing that exception? then you *want* it to fail at run-time | ||
kalkin-_ | m: say '3' + 3 | ||
camelia | rakudo-moar 330f81: OUTPUT«6» | ||
timotimo | and if you're writing it like that in your sourcecode ... :P | ||
DrForr | tony-o: So long as it's known, I don't mind. I'm talking on a webserver built on top of rust at NLPW and YAPC::NA, and would like to say truthfully that it can support >15 concurrent connections :) | ||
s/rust/Crust/ | |||
moritz | timotimo: right, or it might be in a branch that's never reached | ||
kalkin-_ | this feels so wrong | ||
timotimo | right | 19:53 | |
moritz | timotimo: which is why I copied perl 5's decision here | ||
timotimo | kalkin-_: it's a decision made very early in perl history | ||
moritz | kalkin-_: it's coercion, and *very* useful when working with text input | ||
timotimo | and we're sticking with it. it's useful and consistent, IMO | ||
tony-o | DrForr: you *can* create a new scheduler that will handle significantly larger connection pool | ||
on my mbp i was able to handle 511 reliably | 19:54 | ||
MadcapJake | tony-o: how would you do that? | ||
DrForr | tony-o: Yeah, RabidGravy was saying that I just hadn't put the new scheduler in the right place... or maybe that was something different. | ||
19:54
itaipu joined
|
|||
kalkin-_ | m: say ① +3; say '①' +3; | 19:55 | |
camelia | rakudo-moar 330f81: OUTPUT«4Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5①' (indicated by ⏏) in block <unit> at /tmp/3wLYNlIxvZ line 1Actually thrown at: in block <unit> at /tmp/3wLYNlIxvZ line 1» | ||
kalkin-_ | why does the first say work but the second line doesn't? | ||
tony-o | m: our $*SCHEDULER .=new(:max_threads(500)); | 19:56 | |
camelia | ( no output ) | ||
kalkin-_ | m: say ① +3 | ||
camelia | rakudo-moar 330f81: OUTPUT«4» | ||
tony-o | DrForr: MadcapJake: give that a shot ^^ | ||
DrForr | Ah, 'our' and .=.... | ||
MadcapJake | our, i was using my | ||
tony-o | $*SCHEDULER is ThreadPoolScheduler if you want to be more explicit | ||
you can also set an environment variable RAKUDO_MAX_THREADS | 19:57 | ||
timotimo | kalkin-_: that only works in source code | ||
MadcapJake | tony-o: what?! an env var! haha perfect | ||
DrForr | That passes the first test, -c15, goosing it up now for testing purposes. | 19:59 | |
kalkin-_ | why shouldn't '六' + 3 work exactly like '3' + 3? (not trolling but generally interested :D ) | ||
tony-o | m: say '六'.Int + 3; | ||
camelia | rakudo-moar 330f81: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5六' (indicated by ⏏) in block <unit> at /tmp/a_sJG2i7Fp line 1Actually thrown at: in block <unit> at /tmp/a_sJG2i7Fp line 1» | ||
moritz | m: say unival '六' | ||
camelia | rakudo-moar 330f81: OUTPUT«6» | ||
tony-o | m: say '{六}'.Int + 3; | ||
camelia | rakudo-moar 330f81: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5\{六}' (indicated by ⏏) in block <unit> at /tmp/MM5bS0QpL2 line 1Actually thrown at: in block <unit> at /tmp/MM5bS0QpL2 line 1» | ||
moritz | kalkin-_: looks like a genuine bug to me | 20:00 | |
wait | |||
kalkin-_ | Roman numeral 'Ⅷ' doesn't work either | ||
moritz | m: say uniname '六' | ||
camelia | rakudo-moar 330f81: OUTPUT«<CJK Ideograph>» | ||
moritz | kalkin-_: the roman numerals don't work, because you can't chain them together like digits | ||
I have no idea how that works with the CJK ideographs | |||
kalkin-_ | moritz: ahh good point | 20:01 | |
well no | |||
moritz | kalkin-_: what's the numeric value of '六六? | ||
kalkin-_ | say Ⅷ + 3 | ||
m: say Ⅷ + 3 | |||
camelia | rakudo-moar 330f81: OUTPUT«11» | ||
moritz | yes, it works as a literal, but only for single digits | ||
kalkin-_ | well i thought everyting what is a digit should pass addition. If you have an invalid digit you don't have a digit but a string | 20:02 | |
moritz | only stuff that behaves like a proper digit | 20:03 | |
tony-o | DrForr: interested in your talk + results - | ||
kalkin-_ | m: say 四四 ; | ||
camelia | rakudo-moar 330f81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9LDIVaIvKwUndeclared routine: 四四 used at line 1» | ||
kalkin-_ | m: say 四 + 3; | ||
camelia | rakudo-moar 330f81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/p_xGSkNymkUndeclared routine: 四 used at line 1» | ||
DrForr | kalkin-_ - Slang::Roman :) | 20:04 | |
RabidGravy | well I just 4096 requests at -c 32 | ||
MadcapJake | RabidGravy: :O | ||
kalkin-_ | DrForr: :D | ||
DrForr | My poor VM won't take the load :/ | ||
MadcapJake | my app decided to stop working entirely... | 20:05 | |
timotimo | m: say unival('四') | ||
camelia | rakudo-moar 330f81: OUTPUT«4» | ||
timotimo | m: say uniprop('四') | ||
camelia | rakudo-moar 330f81: OUTPUT«Lo» | ||
tony-o | what are your siege settings? -c10 ? | ||
timotimo | it's marked as a letter, that's probably why we don't accept it as a digit | ||
20:06
Ven joined
|
|||
DrForr | -r 20 -c 20 # or close. | 20:06 | |
kalkin-_ | m: say unival('四四') | 20:07 | |
camelia | rakudo-moar 330f81: OUTPUT«4» | ||
timotimo | unival is only for individual characters | ||
it'll silently ignore everything past the first | |||
same for uniprop | |||
kalkin-_ | ahh ic | ||
timotimo | m: say uniname('四'); say uniname('四四') | 20:08 | |
camelia | rakudo-moar 330f81: OUTPUT«<CJK Ideograph><CJK Ideograph>» | ||
timotimo | ^- same for uniname | ||
MadcapJake | www.irccloud.com/pastebin/kOhaghAe/ | 20:09 | |
kalkin-_ | m: my Str $f = '3'; $f +3; | ||
camelia | rakudo-moar 330f81: OUTPUT«WARNINGS for /tmp/o5Grgluj_v:Useless use of "+" in expression "$f +3" in sink context (line 1)» | ||
kalkin-_ | m: my Str $f = '3'; say $f +3; | ||
camelia | rakudo-moar 330f81: OUTPUT«6» | ||
MadcapJake | DrForr, tony-o, RabidGravy: check ^^ out | 20:10 | |
kalkin-_ | how can i circumvent such errors? Or it's just how perl works? | ||
I mean i declare it's a Str | |||
MadcapJake | That's with RAKUDO_MAX_THREADS=100 | ||
20:11
espadrine joined
|
|||
DrForr | Okay, I'll work with that tomorow night. My big concern was that siege was locking up even at -r 2 -c 5 at one point, I'm pretty sure that was a problem with rakudo core not being updated though. | 20:12 | |
Begi | kalkin-_: Perl is smart ! | ||
kalkin-_ | may be. but i'm dumb and do errors :) | ||
AlexDaniel | m: say ②⁸ | 20:13 | |
camelia | rakudo-moar 330f81: OUTPUT«256» | ||
AlexDaniel | :) | ||
20:14
cdg joined,
labster joined
|
|||
MadcapJake | tony-o: thanks for the info on the scheduler! | 20:14 | |
tony-o | MadcapJake: no worries - 835 connections time out, though? | ||
DrForr | Definitely. | ||
tony-o | where is the code? | 20:15 | |
MadcapJake | tony-o: yep | ||
hold on i'll push my latest, it's at madcapjake/sixbug | |||
tony-o | okay, i'll take a look late tonight | 20:16 | |
MadcapJake | holy buckets, moarvm was at 1.8GB after all those http load tests :P | ||
DrForr | tony-o: Moi? drforr/perl6-App-prancer - Heading to bed now that I've got some actual performance numbers. | 20:17 | |
(I've got to push the talk to GH as well, but that'll be later.) | |||
MadcapJake | DrForr++ # Prancer & Talk :) | ||
DrForr | Thanks. Theo needed a second talk for NLPW so I gave him Prancer as well, not even sure how long it's supposed to run even :) | 20:19 | |
(note to self - open port 5000 on Linode tomorrow.) | 20:20 | ||
MadcapJake | .t | 20:21 | |
yoleaux | Tue, 29 Mar 2016 20:21:43 UTC | ||
DrForr | (I'm at UTC+0200 :) ) | 20:22 | |
MadcapJake | .at 2016-03-30T10:00 DrForr: open port 5000 on Linode :) | 20:23 | |
yoleaux | MadcapJake: Sorry, that command (.at) crashed. | ||
MadcapJake | awww | ||
.at 10:00 DrForr:: open port 5000 on Linode :) | 20:24 | ||
yoleaux | MadcapJake: Sorry, that command (.at) crashed. | ||
MadcapJake | wow ok that's apparently b0rked | ||
.in 12h DrForr: open port 5000 on Linode :) | |||
yoleaux | MadcapJake: I'll remind you on 30 Mar 2016 08:24Z | ||
MadcapJake | boom! | ||
DrForr | o/' It's the Star Wars Countdown o/' | 20:25 | |
MadcapJake still feels dirty using a ruby irc bot ;) | 20:26 | ||
20:27
musiKk_ left
20:28
egkurzin joined
20:33
cognominal_ joined,
TEttinger joined
|
|||
DrForr | Egads. Said talk is going to open LPW... /me decides to get some earlier sleep. | 20:37 | |
20:37
dupa left,
buharin__ left
20:38
egkurzin left
|
|||
masak | heh. | 20:40 | |
a quick search through perl6-all-modules gives me reason to believe that my use of infix:<^^> in Games::Nex is... the first and only one | 20:41 | ||
I don't know if that is a cause for pride or for worry, though :P | 20:42 | ||
I just suddenly, after 11 years with Perl 6, had a situation where I went, "hm -- I want to xor these two boolean values -- there's an operator for that!" :) | 20:44 | ||
(well. technically, infix:<^^> isn't "xor" but the boolean version of one(). but with only two operands that comes down to the same thing.) | 20:45 | ||
diakopter | [^^] | ||
masak | m: for True, False X True, False -> ($left, $right) { say $left ^^ $right } | 20:46 | |
camelia | rakudo-moar 330f81: OUTPUT«NilTrueTrueFalse» | ||
masak | the "Nil" there means something akin to "Bool overflow" :) | ||
perhaps I should've done it in ascending order | 20:47 | ||
m: for False, True X False, True -> ($left, $right) { say $left ^^ $right } | |||
camelia | rakudo-moar 330f81: OUTPUT«FalseTrueTrueNil» | ||
20:47
_nadim left,
itaipu left
|
|||
masak | m: for False, True X False, True X False, True -> ($left, $grip, $right) { say $left ^^ $grip ^^ $right } | 20:47 | |
camelia | rakudo-moar 330f81: OUTPUT«FalseTrueTrueNilTrueNilNilNil» | 20:48 | |
20:48
Ven left
|
|||
diakopter | m: say [^^]() | 20:48 | |
camelia | rakudo-moar 330f81: OUTPUT«False» | ||
20:49
itaipu joined
|
|||
masak | False, as in "so far, haven't found the truthy value that was s'posed to be in there" | 20:49 | |
m: say False ^^ 42 | |||
camelia | rakudo-moar 330f81: OUTPUT«42» | ||
masak | just like infix:<||> and infix:<&&>, the result is un-boolified if possible | ||
er, not boolified | |||
diakopter | m: say [^^](infix:<^^>) | ||
camelia | rakudo-moar 330f81: OUTPUT«False» | ||
masak | diakopter: `infix:<^^>` without the & is a call. it evaluates to False. the result follows. :) | 20:50 | |
20:50
Ven joined
20:51
pRiVi joined
|
|||
avuserow | hoelzro++ # just saw your new blog entry about C++ with NativeCall not even a day after I asked about it here :) | 20:54 | |
hoelzro | glad someone found it helpful =) | 20:55 | |
in retrospect, I should've probably covered the current support that NativeCall offers more thoroughly =/ | 20:58 | ||
perlpilot | hoelzro: blog post #2! :) | ||
21:00
Begi1 joined
|
|||
hoelzro | heh | 21:00 | |
21:01
Begi1 is now known as Begi
21:04
_nadim joined
21:05
leont joined
|
|||
leont | I have the not so clear error "Directive d not applicable for type Int", this may be a sprintf related, but %d and Ints should be fine, right? | 21:11 | |
This is confusing! | |||
21:12
labster left
|
|||
ab5tract | m: my $f = '25 25 25'; $f ~~ s:nth(*-1)[\d+] = 42; say $f | 21:12 | |
camelia | rakudo-moar 330f81: OUTPUT«WARNINGS for /tmp/ve9BYKFXtd:Useless use of "-" in expression "*-1" in sink context (line 1)25 42 25» | ||
ab5tract | that warning is a regression, right? | ||
21:13
sftp joined
|
|||
ilmari | star-m: my $f = '25 25 25'; $f ~~ s:nth(*-1)[\d+] = 42; say $f | 21:13 | |
camelia | star-m 2016.01: OUTPUT«WARNINGS for /tmp/NO4vsdSUuD:Useless use of "-" in expression "*-1" in sink context (line 1)25 42 25» | ||
21:15
Ven left
|
|||
ab5tract | ilmari: that it is that old to me points to it potentially being a missed member of the erroneous useless use in sink errors | 21:15 | |
i thought i had run this code more recently than that though :S | 21:16 | ||
21:16
bjz joined
|
|||
ab5tract | .tell TimToady I might have found another mistaken 'useless use in sink context' warning: 'm: my $f = '25 25 25'; $f ~~ s:nth(*-1)[\d+] = 42; say $f' | 21:17 | |
yoleaux | ab5tract: I'll pass your message to TimToady. | ||
leont | It seems the error was that it was undefined, error was most unclear | 21:23 | |
ab5tract | leont: yeah, that class of error is a bit LTA | 21:25 | |
21:25
bjz left
|
|||
leont | LTA? | 21:25 | |
ab5tract | less than awesome | ||
perlpilot | S99:LTA | ||
ah, no bot | |||
masak | S99? | ||
:P | |||
perlpilot | leont: Less Than Awesome | ||
leont | Ah | 21:26 | |
ab5tract | leont: basically what that message is saying is I tried this on the object you gave me and it failed | ||
masak | leont: to Perl 6 people, a Less Than Awesome error is considered a bug. | ||
perlpilot | leont: what's the code that generates that message? | 21:27 | |
mst | masak: the only difference between perl5 and perl6 communities there is that we'd just call it 'crap' | 21:28 | |
leont | It was a sprintf with an accidental Int:U | ||
ab5tract | and the object you "gave" it was undefined, and then placed in integer context, producing the (Int) type object | ||
masak | mst: heh. | ||
perlpilot | mst: but that's LTA ;) | ||
ab5tract | m: sprintf("%d things", Nil) | 21:29 | |
camelia | rakudo-moar 330f81: OUTPUT«Directive d not applicable for type Any in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1 in any panic at /home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm line 1» | ||
masak | perlpilot: warning -- meta level 1 reached. | ||
ab5tract | m: my $i = 5; $i = Nil; sprintf("%d things", $i) | ||
camelia | rakudo-moar 330f81: OUTPUT«Directive d not applicable for type Any in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1 in any panic at /home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm line 1» | ||
leont | Next step, debugging proc-async. Is the bug in my code or in p6? Odds are increasinly not in my favor, but we'll see | ||
ab5tract | m: my Int $i = 5; $i = Nil; sprintf("%d things", $i) | ||
camelia | rakudo-moar 330f81: OUTPUT«Directive d not applicable for type Int in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1 in any panic at /home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm line 1» | ||
21:30
_nadim left
|
|||
leont | The lack of pointing to the right line was also LTA | 21:30 | |
21:30
araujo_ joined
|
|||
leont | Once I figured out the error was sprintf related, I could reduce it to 2-3 possibilities and it was found quickly enough | 21:31 | |
That wasn't possible until recently, when the error much improved (forgot what it was before, but it was extremely cryptic) | |||
lizmat | ab5tract: that's going to be a tough one to fix generally :-( | 21:32 | |
as we cannot actually type constraints with slurpies | |||
ab5tract | you mean fixing that class of error message? | 21:33 | |
or my useless use bug? | |||
teatime | MadcapJake: o/ | ||
yoleaux | 14:29Z <MadcapJake> teatime: this (your gist) looks like it could be it, but in all the C examples I've seen the $context that you have given to CURLOPT_READDATA is something written to from inside the CURLOPT_READFUNCTION (though I'm really not understanding how that works). | ||
lizmat | class of sprintf error message | 21:34 | |
21:34
araujo left
|
|||
MadcapJake | teatime: I ended up scrapping using Net::Curl in favor of Net::SMTP | 21:36 | |
teatime | lol yeah just saw | ||
RabidGravy | MadcapJake, retupmoca merged that fix so all good now :) | ||
teatime | MadcapJake: I still haven't figured out if it's legit for a callback like that to be a closure (i.e., how it read $src-buf directly from the outer scope) | 21:38 | |
MadcapJake | Sweet! I'm out at dinner right now, but I'll try and finish up the issue submitter tonight. I got a good domain: perl6.hackquest.com 😎 | ||
ab5tract | lizmat: yeah, I assumed so. they are easy enough to catch once you get used to them | ||
MadcapJake | teatime: check out my latest in the gist, it would work but Net::Curl has no support for slist and for callbacks (outside of the one hard-coded WRITEFUNCTION case) | 21:40 | |
21:41
rigsby joined
|
|||
MadcapJake | Net::Curl needs to more universally support the various things that libcurl allows. | 21:42 | |
teatime | *shrug* | ||
21:42
araujo__ joined,
khw joined
21:44
raiph joined
21:46
labster joined,
araujo_ left,
znpy joined
21:47
FROGGS left
21:54
perlawhirl joined,
Cabanossi joined
21:55
rigsby left
|
|||
tony-o | MadcapJake: this repo has a ton of deps, haha | 21:55 | |
MadcapJake | Lol I wanted to avoid using Net::SMTP but Net::Curl doesn't support SMTP posts yet. I still haven't pushed my latest work yet though. | 21:57 | |
tony-o | DrForr: my mistake i thought when you said H:S:T earlier that you meant HTTP::Server::Threaded and *not* ::Tiny | 21:58 | |
MadcapJake: IO::Blob fails test ? | |||
21:59
cpage_ joined
|
|||
MadcapJake | Not sure about that, wrt what? | 22:00 | |
ab5tract | Finding which H:S:T, the great shark hunt... | ||
tony-o | you/sixbug | ||
22:00
labster left
22:01
Begi left
|
|||
ab5tract | hoelzro: thank you so much for the repl work! it's running very smoothly over here | 22:01 | |
hoelzro | glad to hear it! | ||
ab5tract | i'm looking forward to digging into it further. I'd like to dust off Terminal::Print and | 22:03 | |
22:03
_nadim joined
|
|||
ab5tract | I think that a "multi-REPL" thingy might make an interesting example case | 22:04 | |
hoelzro | ab5tract: multi-REPL? | ||
tony-o | ab5tract: how good is that module cross platform-wise? | ||
ab5tract | tony-o: fine between OS X and Linux... it relies on tput, so Windows is a no go at the moment :( | 22:05 | |
hoelzro: not a super well defined idea in my head, tbh | |||
22:06
espadrine left
|
|||
hoelzro | well, hopefully having the REPL in Perl 6 should help prototype new ideas =) | 22:06 | |
22:06
edjsu joined
|
|||
ab5tract | maybe something like a command to spawn off a react block into a new "window" in your repl | 22:06 | |
hoelzro | ah ha | ||
22:06
nadim joined
22:07
kid51 joined
|
|||
ab5tract | a bit like a tmux-for-your-repl kind of thing | 22:07 | |
tony-o: it's also a bit broken at the moment :( | |||
what platforms do you have in mind? | |||
22:08
TEttinger left
|
|||
tony-o | ab5tract: is there a method to tell if tput is available? | 22:08 | |
hoelzro | that could be *really* handy, especially combining awwaiid's MY::REPL idea with threads | ||
tony-o | ab5tract: i'm looking at putting lipstick on github.com/tony-o/perl6-flow#flow-vs-prove | ||
22:08
_nadim left
|
|||
tony-o | oops, didn't mean to include the anchor - | 22:08 | |
22:08
Khisanth joined
|
|||
dalek | Iish: be37b07 | (Kaare Rasmussen)++ | / (3 files): Add support for PostgreSQL's LISTEN / NOTIFY |
22:09 | |
Iish: cac503b | (Kaare Rasmussen)++ | / (2 files): Rename method to pg-notifies and add a test for payload. |
|||
Iish: df3ac99 | (Kaare Rasmussen)++ | / (3 files): Move notify functionality into PGconn |
|||
Iish: 8e81513 | (Kaare Rasmussen)++ | README.pod: Document pg-notifies |
|||
Iish: 50763db | (Salvador Ortiz)++ | / (4 files): Merge git://github.com/kaare/DBIish into kaare-master |
|||
Iish: 877d44b | (Salvador Ortiz)++ | / (4 files): Merge branch 'kaare-master' |
|||
Iish: b4ebdac | (Salvador Ortiz)++ | lib/DBDish/Pg/ (2 files): Pg: add support for LISTEN / NOTIFY kaare++ work with minor cleanup |
|||
ab5tract | tony-o: actually, it will also default to ansi | ||
but probably windows terminals don't know anything about it | 22:10 | ||
22:10
Sgeo joined
|
|||
leont | It seems my proc-async is hanging at the end of its input | 22:10 | |
22:11
TEttinger joined
|
|||
leont | My :done handler on the stdout tap doesn't run at all :-/ | 22:11 | |
22:12
perlawhirl left
22:14
Khisanth left
|
|||
ab5tract | tony-o: Terminal::Print should do totally fine for that, at least for *nix. I think everyone ships tput | 22:16 | |
timotimo | hoelzro: in your latest article you wrote "C runtimes" when you meant "C++ runtimes" in the Destructors section | 22:17 | |
hoelzro | ...or did I? >:) | ||
when I wrote it, I was thinking about the double free(), but a double destructor is just as bad! I'll fix that right up, thanks for pointing that out, timotimo++ | 22:18 | ||
22:18
telex joined,
cpage_ left
|
|||
timotimo | oke :) | 22:18 | |
hoelzro | fixed! | 22:20 | |
arnsholt | ab5tract: For a multi-REPL, are you thinking something along the lines of IPython? | ||
22:20
wamba left
|
|||
ab5tract | arnsholt: I haven't used it, I've heard great things | 22:23 | |
as I understand it they have made it a platform that you can embed in other languages | |||
22:23
wamba joined
|
|||
ab5tract | I'm thinking of something less complex, I think | 22:24 | |
tony-o | ab5tract: cool, going to give that a shot | ||
22:25
cpage_ joined,
rigsby joined
|
|||
arnsholt | It's not so much that you can embed IPython in other languages as you can embed other languages in IPython | 22:25 | |
I've hacked up a semi-usable Perl 6 kernel for it | |||
22:26
Khisanth joined
22:28
wamba left
|
|||
ab5tract | ah, sweet! | 22:28 | |
22:29
znpy left
|
|||
dalek | c: 57f7325 | (Zoffix Znet)++ | doc/Language/objects.pod: Example using EVAL needs use MONKEY-SEE-NO-EVAL |
22:30 | |
22:32
labster joined
|
|||
MadcapJake | tony-o: I don't have IO::Blob in sixbug, I'm not following what you mean :P | 22:32 | |
tony-o | MadcapJake: it's one of the depends | ||
MadcapJake | Crust, Email::Simple, JSON::Fast, Net::Curl, Net::SMTP are my deps | 22:33 | |
timotimo | must be a transitive dependoncy | 22:34 | |
22:35
cpage_ left
|
|||
arnsholt | ab5tract: Oh, the repo is github.com/timo/iperl6kernel/ mind, since timotimo++ made the initial prototype | 22:35 | |
MadcapJake | oh tony-o: DrForr fixed that IO::Blob test fail earlier today | ||
22:36
itaipu left
|
|||
tony-o | i'm still getting it - timotimo is right, it is one of the depends further down the line MadcapJake | 22:36 | |
MadcapJake: DrForr: gist.github.com/tony-o/da4945f12fa...2d483a388d | 22:37 | ||
MadcapJake | tony-o: github.com/moznion/p6-IO-Blob/pull/7 | ||
tony-o | MadcapJake: ahh, it just isn't merged yet | 22:38 | |
MadcapJake | yep | ||
I've found that the key to keeping everything working is never to update :P | 22:41 | ||
tony-o | haha | 22:44 | |
ab5tract | tony-o: I just pushed a few fixes.. the async example does not fall on its face any more, but the zig zag example is still pretty sad. but at least the other examples essentially do what they say on the tin. hopefully it gives you an idea on how to work with them. | 22:47 | |
s/them/Terminal::Print/ | |||
tony-o | cool, thank you! | ||
22:49
cpage_ joined
|
|||
ab5tract | and that's all for me tonight. see you later #perl6! | 22:49 | |
timotimo | seeya ab5tract | 22:54 | |
22:59
khw left
|
|||
dalek | osystem: 65337f8 | (Nadim Khemir)++ | META.list: CHANGED: use release branche |
23:02 | |
osystem: 3535b62 | (Zoffix Znet)++ | META.list: Merge pull request #180 from nkh/master CHANGED: use release branche |
|||
23:02
bpmedley joined
23:05
Cabanossi left,
cpage_ left
23:06
Cabanossi joined
|
|||
Xliff_ | Is anyone aware of a problem with NativeHelpers::Blob? | 23:14 | |
I just tried installing it with panda and it failed. | |||
===SORRY!=== Error while compiling /root/.panda-work/1459293162_4/lib/MoarVM/Guts/REPRs. | |||
pm6 (MoarVM::Guts::REPRs) | |||
An exception occurred while evaluating a constant | |||
at /root/.panda-work/1459293162_4/lib/MoarVM/Guts/REPRs.pm6 (MoarVM::Guts::REPRs):11 | |||
Exception details: | |||
Can't determine actual Offset | |||
in block at /root/.panda-work/1459293162_4/lib/MoarVM/Guts/REPRs.pm6 (MoarVM::Guts::REPRs) line 16 | |||
teatime | weird I installed it yesterday. | 23:15 | |
timotimo | Xliff_: you may have to run Configure.pl again? | ||
Xliff_ | timotimo: I will check. | 23:16 | |
BTW, this is with | 23:17 | ||
root@infinity:~# perl -v | |||
This is perl 5, version 22, subversion 1 (v5.22.1) built for i586-linux-gnu-thread-multi-64int | |||
timotimo, which Configure.pl? | 23:18 | ||
timotimo | rakudo's | ||
Xliff_ | Hrm. | ||
timotimo | wait, what ... are those things? Guts? REPRs? | ||
Xliff_ | I just rebuild rakudo with rakudobrew about an hour ago. | ||
timotimo | oooh, that's NativeHelpers | ||
Xliff_ | Yes. | ||
timotimo | sorry, i was confused | ||
Xliff_ | Ah. | ||
timotimo | your perl5 version doesn't interest much, though :) | 23:19 | |
MadcapJake is off to see Zootopia! | |||
Xliff_ | D'oh! | ||
timotimo | have fun, MadcapJake! | ||
Xliff_ | root@infinity:~# perl6 -v | ||
This is Rakudo version 2016.03-49-g330f814 built on MoarVM version 2016.03-46-g50c7f6a | |||
implementing Perl 6.c. | |||
timotimo | all i can say is i can install NH::B with panda without trouble :\ | 23:20 | |
Xliff_ | Hrm. | ||
Have you refreshed rakudo from git, recently? | 23:21 | ||
timotimo | are you on a 32bit system? | ||
Xliff_ | Yeah. The VM I'm on is 32 bit. | 23:23 | |
I would expect the scripts to pick up on that. | |||
timotimo | if you look at the MoarVM::Guts::REPRs, you'll see it casts a Pointer objects into a uint64 array and look for the value in there | 23:24 | |
on a 32bit system, that won't work, i think | |||
it would have been really good to point out you're running 32bit up front :) | |||
Xliff_ | Shouldn't a uint64 work properly on a 32-bit system even if it has to do a little thunking? | ||
If rakudo is only meant for 64 bit systems, I wouldn't expect to be able to build it. | 23:25 | ||
timotimo | the thing is that pointers on a 32bit system aren't 64bits big | 23:26 | |
Xliff_ | True. | ||
timotimo | so if you're looking through a struct to find that value, it'll only work if that 32bit value is aligned to have another 32bit hole to the left | ||
23:27
skids joined
|
|||
teatime | I think there are 64-bit-wide types on 32-bit systems but no 64-bit ints, so no definition of uint64 | 23:27 | |
Xliff_ | So NativeHelper::Blob won't work on 32-bit systems, which means neither will DBIish | ||
teatime | probably wrong tho | ||
timotimo | oh, yikes. DBIish requires NH::B? | ||
Xliff_ | Yesd | ||
s/d$// | |||
==> DBIish depends on NativeHelpers::Blob, Data::Dump | 23:28 | ||
timotimo | i can't find usages of OBJECT_BODY or Offset in anything but MoarVM/Guts/... | 23:29 | |
so it seems like that isn't even necessary? | |||
sorry, wrong | |||
BODY_OF uses OBJECT_BODY, and that is used in some places | |||
sortiz_ | NativeHelpers::Blob should work on any rakudo supported system, otherwise is a bug, that need be fixed. | 23:30 | |
timotimo | sortiz_: yeah, its Offset finder probably needs to search for a 32bit wide int on a 32bit system | ||
23:30
BenGoldberg joined
23:31
ZoffixLappy joined
|
|||
ZoffixLappy | m: gist.github.com/zoffixznet/83d6b49...8b034a0412 | 23:31 | |
camelia | rakudo-moar 330f81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RprgT0941MRedeclaration of method xat /tmp/RprgT0941M:3------> 3d_method('x', my method x(A:) { say 42 }7⏏5); » | ||
teatime | also what I said above is totally wrong, C99 requires long long to be ≥ 64-bits and for uint64_t to exist on all platforms. | ||
ZoffixLappy | How come it's a redeclaration? There's no relation between Int and A types...? | ||
timotimo | ZoffixLappy: that's because you have "my method x" in there | 23:32 | |
both have the same name, so it's a redeclaration | |||
ZoffixLappy | Ah, I see. | 23:33 | |
Thanks. | |||
sortiz_ | timotimo, it Offset is calculated based on rakudo types, should work well. | ||
23:36
cpage_ joined
|
|||
ZoffixLappy | Another question: what's the point of A.^compose in that code? Seems to work fine without it. | 23:36 | |
Well, this code: | |||
m: gist.github.com/zoffixznet/6b5e4bd...9ac2ac6c70 | |||
camelia | rakudo-moar 330f81: OUTPUT«A classInt class» | ||
timotimo | sortiz_: well, i can't test NH::B on my systems, because all my systems are 64bit | 23:39 | |
and Xliff_ pasted the failure they got above | |||
sortiz_ | timotimo, as far as the MoarVM's reprs don't change, I don't see any problem. Let me see Xliff_ problem... | 23:40 | |
ZoffixLappy is currently on a 32-bit box, if one's needed | 23:41 | ||
23:41
spider-mario left
|
|||
timotimo | sortiz_: but how can it find the offset when the pointer is 32bit wide and you're trying to compare the pointer against a 64bit slice of the object? | 23:44 | |
sortiz_ | That exception is a guard I put for those untested cases. | 23:45 | |
timotimo | and apparently it fires :) | ||
23:45
Khisanth left
|
|||
timotimo | so you're saying "it should work", and i say "well, it doesn't" | 23:45 | |
so ... are you going to try to fix it? i'm confused by this conversation we're having | |||
sortiz_ | Yes, I will review and attempt to fix that, may be that some assumptions about rakudo capabilities where wrong. | 23:48 | |
timotimo | "capabilities"? | ||
Xliff_ | Thanks for looking into the problem, sortiz_. Now I must eat. | ||
timotimo | Xliff_: are you able to build dwarfdump? that could give us the exact layout of the struct that sortiz' code is trying to inspect | 23:49 | |
actually, you can just send me your libmoar.so and i can do it | |||
sortiz_ | Xliff_, for the reference, please open an issue en NH::Blob. | 23:50 | |
diakopter looks up dwarfdump | |||
sortiz_ installing a 32 bits machine for testing... | 23:51 | ||
nadim | timotimo: latest DDT with faster filter waiting for you to test ;) I added a feature that let's you say how much of a Match sstring you want to see. You asked for that a few weeks ago if I am right. | 23:53 | |
ZoffixLappy | m: class STMT is export is repr('CPointer') { }; sub sqlite3_column_text(STMT, int32) is native('sqlite3') returns Str { }; | ||
camelia | rakudo-moar 330f81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/IFxeKh72CrCan't use unknown trait 'is native' in a sub declaration.at /tmp/IFxeKh72Cr:1 expecting any of: rw raw hidden-from-backtrace hidden-from-USAGE pure default DEPRECATED i…» | ||
ZoffixLappy | Unknown trait? wat? | 23:54 | |
diakopter | star-m: class STMT is export is repr('CPointer') { }; sub sqlite3_column_text(STMT, int32) is native('sqlite3') returns Str { }; | ||
camelia | star-m 2016.01: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4sjmHq5eKJCan't use unknown trait 'is native' in a sub declaration.at /tmp/4sjmHq5eKJ:1 expecting any of: rw raw hidden-from-backtrace hidden-from-USAGE pure default DEPRECATED inlin…» | ||
ZoffixLappy | sub sqlite3_column_text(int32) is native('sqlite3') returns Str { }; | ||
m: sub sqlite3_column_text(int32) is native('sqlite3') returns Str { }; | 23:55 | ||
camelia | rakudo-moar 330f81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2EGUfuRzeDCan't use unknown trait 'is native' in a sub declaration.at /tmp/2EGUfuRzeD:1 expecting any of: rw raw hidden-from-backtrace hidden-from-USAGE pure default DEPRECATED i…» | ||
diakopter | star-m: use NativeCall; class STMT is export is repr('CPointer') { }; sub sqlite3_column_text(STMT, int32) is native('sqlite3') returns Str { }; | ||
camelia | ( no output ) | ||
timotimo | yeah, need to "use NativeCall" | ||
sortiz_ | timotimo, for example, I assume that MoarVM's MVVuint64 is the same size of rakudo's uint64 (but not necessarily 64 bits), and that if rakudo can create a Pointer without error, it is valid ;-) | ||
ZoffixLappy | Ohh damn. One too many pints for me, I guess lol | 23:56 | |
timotimo | sortiz_: are you sure the pointer will be aligned to 64bit boundaries? | ||
and are you also sure "void *" is the same size on 32bit and 64bit systems, and that it's 64bit big on both? | 23:57 | ||
23:58
Khisanth joined
|