»ö« 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«1459250764␤1459250764␤»
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 1␤␤Actually 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/iebjyvzL5O␤Malformed parameter␤at /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_ygNZ5Iy␤Unable 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 1␤␤Actually 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 1␤␤Actually 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«4␤Cannot 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 1␤␤Actually 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 1␤␤Actually 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 1␤␤Actually 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/9LDIVaIvKw␤Undeclared routine:␤ 四四 used at line 1␤␤»
kalkin-_ m: say 四 + 3;
camelia rakudo-moar 330f81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/p_xGSkNymk␤Undeclared 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«Nil␤True␤True␤False␤»
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«False␤True␤True␤Nil␤»
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«False␤True␤True␤Nil␤True␤Nil␤Nil␤Nil␤» 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/RprgT0941M␤Redeclaration of method x␤at /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 class␤Int 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/IFxeKh72Cr␤Can'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/4sjmHq5eKJ␤Can'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/2EGUfuRzeD␤Can'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