»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
00:03 laouji left
raydiak J-L: I'm not sure as I don't use star but I assume that is correct...you can likely use the installer which contains all of them if you like, but you (apparently) still need to un-install the old one first and re-install just moar to ensure everything works out 00:04
J-L Okay, I'll try it... 00:05
raydiak timotimo: is it known that nums don't always optimize as well as ints? 00:08
00:09 dolmen left
timotimo raydiak: in what circumstance? 00:10
raydiak timotimo: gimme a minute or two I'll commit the example in Inline::Lua if you like 00:11
but just basic loop() and addition 00:12
timotimo on nqp, math tended to be num by default even when it could have been int, which often used to have generated too many coercions
are you on the very, very latest rakudo? or perhaps on a rakudo before jnthn merged native_ref?
that had a bit of a performance hit we haven't yet ironed out again
raydiak timotimo: nom from like 2 hours ago 00:13
timotimo try nom with jnthn's latest commit from half an hour ago
raydiak will do, though I'm not using ++...does it help other things too?
timotimo hopefully 00:15
raydiak actually, looks like it's only about half as fast, which is...possibly within the expected range? building latest rakudo will try again; the example is in examples/ in Inline::Lua now 00:18
timotimo hum
raydiak I was using num64 instead of num originally, I'll try that again too after rakudobrew finishes 00:20
timotimo hm, aren't our nums usually num64 on most systems you'd find nowadays?
J-L Okay, I uninstalled perl 6 and reinstalled the one with Moar. Now 'perl6 --version' says: This is perl6 version 2014.12 built on MoarVM version 2014.12 00:21
raydiak looks better
timotimo: idk tbh
timotimo J-L: that's a huge improvement in terms of everything
J-L I'm surprised it's so much smaller. It's like less than half the size than the one with Parrot. 00:23
00:23 Hor|zon joined
timotimo yeah 00:24
MoarVM will do that to you 00:25
J-L Cool... Now the following function works in the perl6 interpreter: use NativeCall; sub GetTickCount() returns Int is native('KERNEL32') is export { * }; 00:26
TimToady don't need the final ; there...
timotimo be wary of the REPL, it can have weird bugs that don't happen if you put the same code into a file and run it
raydiak timotimo: gist.github.com/raydiak/10588fcc717e5bfe7191
timotimo interesting, raydiak; --profile? 00:28
00:28 Hor|zon left
timotimo and maybe speshlog? 00:28
raydiak timotimo: gist.github.com/raydiak/d3157c38107bcfb891c5 00:32
J-L Can anyone help me with converting the GetConsoleMode function from msdn.microsoft.com/en-us/library/w...s.85).aspx into a NativeCall?
I tried: sub GetConsoleMode() returns Int is native('KERNEL32') { * };
raydiak timotimo: how do I get a speshlog?
J-L But when I call GetConsoleMode.say(), the program just stops.
timotimo env MVM_SPESH_LOG=thespeshlog.txt perl6 ...
i'd prefer a speshlog without --profile 00:33
japhb J-L: perhaps 'returns int32' or so?
timotimo because --profile sprinkles additional ops all over
raydiak btw this is beside the int vs num point but to put the lua number into perspective, luajit is *the* fastest general-purpose dynamic language implementation I know of, so being over 10% of its speed is kinda impressive considering where we are coming from, gives hope imo
oh btw the profile and speshlog are for 1e7 isntead of 1e8, which has similar ratios
timotimo J-L: how do you expect it to work if you don't pass a proper hConsoleHandle? 00:34
TimToady timotimo: that's been the main backronym for roast since about irclog.perlgeek.de/perl6/2010-09-04#i_2785777 00:35
timotimo oh
japhb java -version
Gah
timotimo why didn't anybody ever tell me until i watched pm's talk recording? :S
TimToady you never asked?
raydiak timotimo: the speshlog is 63M, I'll have to upload it to my server
J-L I figure that I gotta pass in two arguments (or maybe just one and return one), but I have no idea how to pass in a proper hConsoleHandle. Do you know how? 00:36
timotimo me and WinAPI? haha.
raydiak: compress it with gzip
it should be very compressable
actually, i can generate the speshlog myself if i have the code
it ought to be more or less the same
J-L timotimo: So, how do I create a proper hConsoleHandle? 00:37
timotimo some WinAPI function must exist that gives you the current one
raydiak timotimo: I updated the example, you can just comment out the lua parts if you don't have it
timotimo thanks :) 00:38
just compiling a completely up-to-date rakudo right now
raydiak timotimo: did it anyway just b/c I already started: data.cyberuniverses.com/stuff/thespeshlog.txt.gz 00:39
timotimo okeh 00:41
compressed well, i see
raydiak indeed...silly how sometimes I forget about the most essential tools; too much to keep track of
timotimo raydiak: can you tell me what your moarvm version is? 00:50
raydiak This is perl6 version 2015.02-196-g07cea90 built on MoarVM version 2015.02-25-g3d0404a 00:51
afk
b2gills J-L: you may be able to figure it out if you look at metacpan.org/source/JDB/Win32-Cons...Console.xs 00:52
timotimo that's a fairly recent moar, so that's fine
i'm seeing a case of bindattrs_o not being turned into a bindattr_o even though the name argument is set by const_s directly before that op :\ 00:53
00:58 laouji joined 01:00 bayprogrammer left 01:05 danstoner left
J-L As for hConsoleHandle, I found this declaration for HANDLE: class HANDLE is repr('CPointer') { }; 01:07
I'm not sure if it can stand in as an hConsoleHandle. 01:08
01:09 yeahnoob joined
J-L I tried out this code: use NativeCall; class HANDLE is repr('CPointer') { }; sub GetConsoleMode(HANDLE, HANDLE is rw) is native('KERNEL32') { * }; my HANDLE $h1; my HANDLE $h2; GetConsoleMode($h1, $h2); say $h2.perl; 01:09
And I get nothing.
01:10 spider-mario left
timotimo i don't know any more how these in and out parameters work in win api 01:12
but you're basically giving it two null pointers right now
J-L timotime: I don't know them either, but I'm trying to figure them out... one example at a time. 01:14
01:15 coffee` left 01:16 mr-foobar left 01:22 colomon left
timotimo i seem to recall someone had been working on something with WinAPI and nativecall 01:26
in the documentation for WinAPI, there should at some point be an explanation of what "in" and "out" mean 01:27
J-L How do I view the OS in Perl6? (I'm looking for the Perl5 equivalent of $^O) 01:29
timotimo m: say $^O 01:30
camelia rakudo-moar 07cea9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tVSBrjPKp5␤Unsupported use of $^O variable; in Perl 6 please use $?DISTRO.name or $*DISTRO.name␤at /tmp/tVSBrjPKp5:1␤------> 3say $^O7⏏5<EOL>␤»
timotimo there you go :)
geekosaur m: say $*OS
camelia rakudo-moar 07cea9: OUTPUT«opensuse␤Saw 1 call to deprecated code during execution.␤================================================================================␤$*OS called at:␤ /tmp/Dn6Aze_ilF, line 1␤Deprecated since v2014.9, will be removed with release v2015.9!␤…»
geekosaur right, hm
m: say $DISTRO
camelia rakudo-moar 07cea9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PtddJD931E␤Variable '$DISTRO' is not declared␤at /tmp/PtddJD931E:1␤------> 3say $DISTRO7⏏5<EOL>␤ expecting any of:␤ postfix␤»
geekosaur oops
m: say $*DISTRO 01:31
camelia rakudo-moar 07cea9: OUTPUT«opensuse (13.2.Harlequin)␤»
timotimo m: say $*DISTRO.perl
camelia rakudo-moar 07cea9: OUTPUT«Distro.new(release => "13.2", is-win => Bool::False, path-sep => ":", name => "opensuse", auth => "opensuse.org/", version => Version.new('13.2.Harlequin'), signature => Blob, desc => Str)␤»
geekosaur right
TimToady say $*KERNEL.perl 01:32
m: say $*KERNEL.perl
J-L When I write "$*DISTRO.perl.say" I get: Any
camelia rakudo-moar 07cea9: OUTPUT«Kernel.new(release => "#1 SMP Wed Dec 17 18:00:44 UTC 2014 (762f27a)", name => "linux", auth => "unknown", version => Version.new('1.SMP.Wed.Dec.17.18.0.44.UTC.2014.762.f.27.a'), signature => Blob, desc => Str)␤»
J-L When I type "say $*KERNEL.perl" I get: Method 'name' not found for invocant of class 'Any' 01:33
TimToady what kind of machine are you on? 01:34
core/Kernel.pm:# The Kernel class and its methods, underlying $*KERNEL, are a work in progress. 01:35
it does seem like a bug that it would return Any rather than a generic I-dunno object 01:36
01:36 mr-foobar joined
J-L I'm on a Win32 machine (running Windows 7). 01:37
BenGoldberg m: say $?DISTRO
camelia rakudo-moar 07cea9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bPe9NwO2B3␤Variable '$?DISTRO' is not declared␤at /tmp/bPe9NwO2B3:1␤------> 3say $?DISTRO7⏏5<EOL>␤ expecting any of:␤ postfix␤»
BenGoldberg Why does the error message for use of $^O suggest that $?DISTRO might be a possibility, when, in fact, it's not? 01:38
01:38 dj_goku left
TimToady m: say $*VM.config.perl 01:41
camelia rakudo-moar 07cea9: OUTPUT«{"ld" => "gcc", "can_unaligned_int64" => "1", "staticlib" => "", "dcbclean" => "\$(RM) 3rdparty/dyncall/dyncallback/libdyncallback_s.a", "ldinstflags" => "-pg", "cppswitch" => "-E", "thirdpartylibs" => "3rdparty/libatomic_ops/src/libatomic_ops.a 3rdparty/d…»
TimToady m: say $*VM.config<osname>
camelia rakudo-moar 07cea9: OUTPUT«linux␤»
01:41 dj_goku joined
TimToady that one might work 01:41
geekosaur BenGoldberg, might be a fossil?
TimToady or the opposite of a fossil 01:42
01:43 laouji left
TimToady m: constant $?DISTRO = $*DISTRO.clone; say $?DISTRO.perl 01:44
camelia rakudo-moar 07cea9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/75qKw59yyA␤Twigil-Variable constants not yet implemented. Sorry. ␤at /tmp/75qKw59yyA:1␤------> 3constant $?DISTRO = $*DISTRO.clone7⏏5; say $?DISTRO.perl␤»
TimToady m: constant term:<$?DISTRO> = $*DISTRO.clone; say $?DISTRO.perl 01:45
camelia rakudo-moar 07cea9: OUTPUT«Distro.new(release => "13.2", is-win => Bool::False, path-sep => ":", name => "opensuse", auth => "opensuse.org/", version => Version.new('13.2.Harlequin'), signature => Blob, desc => Str)␤»
TimToady haha
since $?DISTRO is just supposed to be the compiler's $*DISTRO, and constants are BEGIN time, that is almost a complete implementation
not sure how well it'd survive precomp though, given how many of the values are computed lazily... 01:46
01:46 yeahnoob left
timotimo reads "opposite of a fossil" and thinks "anachronism" 01:50
01:53 laouji joined, tinyblak left 02:07 tinyblak joined 02:12 Hor|zon joined 02:16 cschwenz1 joined 02:17 Sir_Ragnarok_ joined, Hor|zon left 02:20 rjbs- joined, lizmat_ joined, rmgk_ joined, rmgk left, rmgk_ is now known as rmgk, thomas__ joined 02:21 Tux__ joined, cschwenz left, |Tux| left, dylanwh left, rjbs left, lizmat left, Sir_Ragnarok left, tadzik left 02:22 tadzik joined 02:24 Ben_Goldberg joined 02:25 Ben_Goldberg left, Ben_Goldberg joined 02:26 dylanwh joined 02:28 BenGoldberg left 02:37 gfldex joined 02:38 thomas__ left 02:48 skids joined 02:51 J-L left, mr-fooba_ joined, chenryn joined 02:52 pierrot joined, pierrot left 02:53 mr-foobar left 03:00 pierrot joined 03:01 ar left 03:10 aborazmeh joined, aborazmeh left, aborazmeh joined 03:13 raiph left 03:17 laouji_ joined
japhb m: PROCESS::SCHEDULER = ThreadPoolScheduler.new(:max_threads(1)); $p = start { (start { "foo" }).result }; say "Waiting ..."; say $p.result 03:19
camelia rakudo-moar 07cea9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yRAKUeKDRz␤Variable '$p' is not declared␤at /tmp/yRAKUeKDRz:1␤------> 3adPoolScheduler.new(:max_threads(1)); $p7⏏5 = start { (start { "foo" }).result }; s␤ expecting any of:␤ postfix␤»
japhb m: PROCESS::SCHEDULER = ThreadPoolScheduler.new(:max_threads(1)); my $p = start { (start { "foo" }).result }; say "Waiting ..."; say $p.result
camelia rakudo-moar 07cea9: OUTPUT«Could not find symbol 'SCHEDULER'␤ in method <anon> at src/gen/m-CORE.setting:15157␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2870␤ in any find_method at src/gen/m-Metamodel.nqp:1037␤ in block <unit> at /tmp/52w3kycOPE:1␤␤»
japhb m: $PROCESS::SCHEDULER = ThreadPoolScheduler.new(:max_threads(1)); my $p = start { (start { "foo" }).result }; say "Waiting ..."; say $p.result
camelia rakudo-moar 07cea9: OUTPUT«(timeout)Waiting ...␤»
japhb .ask jnthn Is it intended that irclog.perlgeek.de/perl6/2015-03-05#i_10225547 will result in lockup? Meaning, if you do max_threads => 1 and then start { start { ... } }, is it a bug or DIHWIDT that it locks up? 03:21
yoleaux japhb: I'll pass your message to jnthn.
03:22 laouji_ left 03:31 noganex_ joined 03:33 noganex left 03:35 laouji_ joined 03:38 laouji left 04:01 muraiki left, FROGGS_ joined, Hor|zon joined 04:05 FROGGS left, Sqirrel left 04:06 Hor|zon left 04:13 raiph joined 04:34 laouji_ left 04:39 laouji joined 04:44 Sqirrel joined 04:55 ninedragon left 04:56 aborazmeh left 05:13 ninedragon joined, ninedragon left, ninedragon joined 05:14 ninedragon left 05:15 ninedragon joined, ninedragon left, ninedragon joined, ninedragon left 05:16 ninedragon joined, ninedragon left, ninedragon joined, ninedragon left 05:17 ninedragon joined, ninedragon left 05:18 ninedragon joined, ninedragon left 05:20 ninedragon joined, ninedragon left 05:21 ninedragon joined, ninedragon left 05:22 ninedragon joined, ninedragon left 05:23 mr-fooba_ left 05:24 ninedragon joined, ninedragon left, ninedragon joined, ninedragon left 05:25 ninedragon joined, ninedragon left 05:26 ninedragon joined, ninedragon left 05:27 ninedragon joined, ninedragon left 05:28 ninedragon joined, ninedragon left 05:29 ninedragon joined, ninedragon left 05:30 ninedragon joined, ninedragon left 05:31 ninedragon joined, ninedragon left 05:32 Ziemniak left, Ziemniak joined, ninedragon joined, ninedragon left 05:33 ninedragon joined, ninedragon left 05:34 ninedragon joined, ninedragon left 05:35 raiph left, ninedragon joined, ninedragon left 05:36 ninedragon joined, ninedragon left 05:37 ninedragon joined, ninedragon left 05:38 ninedragon joined 05:39 ninedragon left, ninedragon joined, ninedragon left 05:40 ninedragon joined, ninedragon left 05:41 ninedragon joined, ninedragon left 05:42 ninedragon joined, ninedragon left 05:43 ninedragon joined 05:44 ninedragon left, ninedragon joined, ninedragon left 05:46 ninedragon joined, ninedragon left 05:47 ninedragon joined, ninedragon left 05:48 ninedragon joined, ninedragon left 05:49 ninedragon joined, ninedragon left 05:50 ninedragon joined, ninedragon left, Hor|zon joined, diana_olhovik_ joined 05:51 ninedragon joined, ninedragon left 05:52 ninedragon joined, ninedragon left 05:53 ninedragon joined, ninedragon left 05:54 ninedragon joined, ninedragon left, MadcapJake left, Hor|zon left 05:55 ninedragon joined, ninedragon left 05:56 ninedragon joined, ninedragon left 05:57 ninedragon joined, ninedragon left 05:58 ninedragon joined, ninedragon left 05:59 ninedragon joined, ninedragon left 06:00 ninedragon joined, ninedragon left 06:01 ninedragon joined, ninedragon left 06:02 ninedragon joined, ninedragon left, rindolf joined 06:03 ninedragon joined, ninedragon left 06:04 ninedragon joined, ninedragon left, ninedragon joined, ninedragon left 06:05 ninedragon joined, ninedragon left 06:06 ninedragon joined, ninedragon left 06:15 Ben_Goldberg left 06:22 [Sno] left 06:24 davido___ joined 06:26 davido__ left, diana_olhovik_ left 06:32 bjz joined
dalek kudo/nom: 664c427 | TimToady++ | src/Perl6/Grammar.nqp:
carp on any listop if no ws before sigil or quote
06:43
ast: dfc2955 | TimToady++ | S0 (2 files):
tweak tests for latest bogus listop errors
06:44
06:46 bjz left 06:50 xinming left 06:52 laouji_ joined 06:56 laouji_ left 06:58 jercos left 07:02 anaeem1 joined 07:03 yeahnoob joined, anaeem1 left 07:04 anaeem1 joined 07:06 diana_olhovik_ joined 07:16 telex left 07:18 telex joined 07:26 rindolf left, esaym153 left 07:27 esaym153 joined 07:35 darutoko joined 07:39 Hor|zon joined, cognominal joined 07:41 rurban joined 07:43 Rounin joined 07:44 Hor|zon left
vendethiel .tell Kristien regexes www.perlmonks.org/?node_id=995856 07:47
yoleaux vendethiel: I'll pass your message to Kristien.
07:50 MadcapJake joined, [Sno] joined
nwc10 given www.breck-mckye.com/blog/2014/12/th...t-in-2015/ and hilton.org.uk/blog/javascript-frameworks it's obvious that there's money to be made figuring out WTF to use: shop.oreilly.com/product/9781939902085.do 07:52
07:53 xinming joined 07:54 wicope joined 07:56 larion left 07:59 xinming left 08:00 xinming joined
MilkmanDan "I think I've had milk last longer than some JavaScript frameworks." Spot on. 08:02
08:04 prime left 08:06 zakharyas joined 08:08 pecastro left 08:12 prime joined, prime left, prime joined, adu left, lustlife joined 08:13 lustlife left 08:17 xinming left 08:19 xinming joined 08:21 Kristien joined
Kristien hi 08:22
yoleaux 07:47Z <vendethiel> Kristien: regexes www.perlmonks.org/?node_id=995856
Kristien .tell vendethiel nice :p
yoleaux Kristien: I'll pass your message to vendethiel.
vendethiel Kristien :)
yoleaux 08:22Z <Kristien> vendethiel: nice :p
sergot morning o/ 08:29
Kristien hi sergot 08:30
08:32 virtualsue joined 08:34 larion joined
dalek kudo/nom: dbe1032 | TimToady++ | src/Perl6/ (2 files):
do better job of ejecting before whitespace
08:34
ast: 71f241e | TimToady++ | S32-exceptions/misc.t:
track error message changes
08:35
08:36 larion left
dalek p: d362467 | TimToady++ | src/HLL/Grammar.nqp:
reused MARK should set .from as well as .pos

We now use the .from to move the eject symbol to before the last ws rather than after it. This is particularly important if one or more newlines were included in that whitespace, so that the eject goes on the line that actually caused the error.
08:36
08:36 espadrine left
dalek kudo/nom: c3e1024 | TimToady++ | tools/build/NQP_REVISION:
bump nqp in the night
08:37
08:38 MadcapJake left 08:39 laouji left 08:40 Hor|zon joined, abraxxa joined, laouji joined, larion joined 08:41 laouji_ joined 08:44 Hor|zon left 08:45 laouji_ left
TimToady m: my grammar G { regex foo { } } 08:45
camelia rakudo-moar c3e102: OUTPUT«===SORRY!===␤Cannot find method 'ann'␤»
TimToady I don't think this is my bug, offhand 08:46
Kristien that's a weird bug 08:50
08:52 laouji left, laouji joined
FROGGS_ probably something in Perl6::Actions that is meant to be a QAST::<something> is NQPMu 08:55
--ll-exception will give us a clue
08:57 Hor|zon joined 09:02 Kristien left, larion left
TimToady $coderef := regex_coderef($/, $*DECLARAND, $<nibble>.ast, $*SCOPE, $name, %sig_info, $*CURPAD, $<trait>) if $<nibble>.ast; 09:05
um, but what if *not* $<nibble>.ast? 09:06
coderef will be uninit
09:07 yeahnoob left
lizmat_ TimToady: looking at irclog.perlgeek.de/perl6/2015-03-05#i_10225270 09:09
09:09 lizmat_ is now known as lizmat
lizmat write string requires an object with REPR MVMOSHandle 09:09
so no $?DISTRO (or any other $? variables any time soon) :-(
dalek kudo/nom: 43e6159 | lizmat++ | src/core/Distro.pm:
Allow setting of signature/desc on Distro
09:11
kudo/nom: d4b915b | lizmat++ | src/core/Version.pm:
Allow anything that can be .Str as a Version
09:12 kjs_ joined
lizmat TimToady jnthn: oddly enough, it looks like $*DISTRO having been set, causes the precomp loading to fail 09:14
if I create a $?DISTRO without actually getting the info from $*DISTRO, it works fine
09:17 sqirrel_ joined 09:22 kaleem joined, virtualsue left
jnthn o/ 09:23
yoleaux 03:21Z <japhb> jnthn: Is it intended that irclog.perlgeek.de/perl6/2015-03-05#i_10225547 will result in lockup? Meaning, if you do max_threads => 1 and then start { start { ... } }, is it a bug or DIHWIDT that it locks up?
09:24 fhelmberger joined
FROGGS_ o/ 09:24
jnthn .tell japhb DIHWIDT. You've only allowed one processing thread, scheduled two pieces of work, and had the first block the thread. In the future, "await ..." instead of .result should be usable to resolve this; I think .result will always be the blocking thing. 09:25
yoleaux jnthn: I'll pass your message to japhb.
FROGGS_ jnthn: "We actually set unit-outer on unit dynamically as part of loading the setting" -- where does that happen? 09:26
jnthn FROGGS_: Grep for forceouterctx 09:27
FROGGS_ ahhh
(sorry if you had no coffee yet)
dalek kudo/nom: c40fa83 | lizmat++ | src/core/Distro.pm:
Get release info from object itself
09:30 El_Che left 09:32 El_Che joined
nine_ nwc10: thanks for those links! I'm just so glad that my conclusion of the research for a project at work was: don't use any of these frameworks, just steal their ideas! A year later with the project not yet online, pretty much all of the contending JS frameworks are obsolete. 09:32
nwc10 they are all second hand from various people. I can't claim credit for finding them, only for cynically aggregating them all into one line 09:33
09:34 cognominal left
masak good antenoon, #perl6 09:35
raydiak good morning masak 09:36
09:36 larion joined
masak nine_: I have no idea about the context, but I agree with nwc10++ 09:36
nwc10 jnthn: t/04-nativecall/03-simple-returns.t 09:37
is buggy. It's assuming signed char
I can make it fail on x86_64 if I build with -funsigned-char
I've not even looked at the code yet :-)
masak .oO( if you're fascinated by the idea of stealing the core ideas of things and using them instead of the hype... we're hiring! ) 09:39
masak is currently teaching a course in AngularJS :)
TimToady something about my changes is screwing up on JVM but not on MoarVM, but I'm too tired to figure it out tonight 09:40
TimToady --> bed 09:41
09:42 donaldh joined
nine_ Whenever I decide whether to use a framework or library I just ask: would I want to maintain this if it got abandoned by the authors? With AngularJS the answer was: 1.7MB of JS?? There's not enough money in the world! I did adopt a couple of Perl modules however. 09:42
09:43 espadrine joined
abraxxa I've read yesterday that AngularJS 2.0 is way different than 1.x and many are seeking a new framework now 09:47
masak abraxxa: the Angular team has decided to try and replicate the successes of the Perl 6 effort. 09:48
nine_ That's a good one: Seeing job descriptions with Angular, jQuery, Backbone, Handlebars, Ember and basically equates to "Yes we have tried everything and we need you to maintain it now".
tadzik :D
masak abraxxa: sorry if that came out dripping with cynicism. :P
abraxxa: "Don't worry, they'll be maintained by separate teams!" 09:49
abraxxa: "Don't worry, AngularJS 1.x isn't going away anytime soon!"
abraxxa masak: i don't use it, just know that it's quite popular
i do webapp, not website so ExtJS
nine_ masak: the similarities are...striking
masak abraxxa: I do however credit the Angular people with being forward-thinking and pushing the limits.
abraxxa: that doesn't mean one should tie oneself to their framework, though. 09:50
09:50 laouji_ joined
masak nine_: the only thing missing is them talking about automatic tools/converters from 1.x to 2.0 -- fully realizing that no such tool will ever be perfect, or even practical. 09:50
09:51 laouji left
nine_ masak: the time scale on the other hand is different by a factor of 5. 09:51
masak nine_: yeah.
nine_: we're approaching a singularity of framework churn. 09:52
nine_: you go to bed, and the wildly successful framework from this morning will be horribly dated and unmaintained.
jnthn nwc10: Hm, probably the .c test file should declare a signed char explicitly.
09:52 rindolf joined
nwc10 jnthn: sorry, got distracted by having to tend and care to my work git dance 09:53
masak .oO( bees do it to point the way to the central repository )
nine_ html9responsiveboilerstrapjs.com/
nwc10 jnthn: what's "int8" defined as?
sub ReturnByte() returns int8 is native('./03-simple-returns') { * }
is ReturnByte(), -103, 'returning char works';
jnthn nwc10: signed 8-bit integer
nwc10 OK. Aha. in 03-simple-returns.c 09:55
jnthn yes 09:56
09:56 laouji_ left 09:57 laouji joined 10:00 laouji left, laouji joined
jnthn
.oO( Is a git dance like a sort dance, except the dancers form trees and DAGs? )
10:00
nwc10 I'm not sure 10:01
10:02 jtpalmer left
nwc10 it's an ugly mess of grafts, rebases, cherry-picks, filter-branch and various checkous 10:02
checkouts
and a directory named "truth"
because the Ministry of Truth is hard at work.
jnthn I'd call the filter-branch one "dare" :P 10:03
nwc10 "one" - who said anything about just one checkout playing filter games? :-)
but I see your joke, and it's appropriate
nine_ m: multi foo(Int $foo where * > 0) { say "> 0"; nextsame; }; multi foo(Int $foo where * < 10) { say "< 10"; nextsame; }; multi foo($foo) { say "generic"; }; foo(1); 10:05
camelia rakudo-moar c40fa8: OUTPUT«(timeout)> 0␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 1…» 10:06
nine_ Is this ^^^ a bug or am I doing something stupid?
jnthn nine_: It looks rather wrong to me...
So my first thought is "bug
"
donaldh r: say 'hi' 10:07
camelia rakudo-moar c40fa8: OUTPUT«hi␤»
donaldh hmm
nwc10 jnthn: this is not sufficient to fix it (and I checked, my changes are getting picked up): 10:08
-DLLEXPORT char ReturnByte()
+DLLEXPORT signed char ReturnByte()
so the bug is deeper than just that
10:08 pmurias joined
pmurias nwc10: the biggest advantage of angular.js over pretty much every framework (other then react.js) is that it's actually written by sane people 10:09
nwc10 jnthn: OK, I think I found it in NativeCall.pm 10:10
rebuild, retest
pmurias nwc10: who value good docs and tests over fancy custom websites and other such stupidity
donaldh Here on JVM: ./perl6 -e 'say "Hi"'
===SORRY!=== Error while compiling -e
A list operator such as "say" must have whitespace before its arguments (or use parens)
at -e:1
------> say "Hi"⏏<EOL>
nwc10 donaldh: does that related to this: irclog.perlgeek.de/perl6/2015-03-05#i_10226833 ? 10:11
not the timing relative to your arrival - I think he knew something.
note the...
donaldh nwc10: thanks, i'll dissect. 10:12
nine_ jnthn: I rakudobug'ed it
pmurias nwc10: and if you are used to the quality of the better things on cpan the usual js framework foolishness is hard to tolerate 10:13
10:14 sqirrel_ left
jnthn nine_++ nwc10++ 10:14
Oh, and donaldh++ :)
10:18 virtualsue joined 10:20 sqirrel_ joined 10:21 bjz joined 10:22 pecastro joined
donaldh Yep, commit github.com/rakudo/rakudo/commit/664c427791 causes breakage on JVM 10:26
10:30 laouji_ joined 10:34 eli-se joined
eli-se hi 10:34
10:34 laouji_ left
FROGGS_ hi eli-se 10:34
eli-se m: (-1).sqrt.say 10:37
camelia rakudo-moar c40fa8: OUTPUT«NaN␤»
10:37 bjz left
eli-se are there complex numbers in the library? 10:38
m: 2i.abs.say 10:39
camelia rakudo-moar c40fa8: OUTPUT«2␤»
eli-se nice :p
nwc10 jnthn: the world hates me. I'm going to have lunch 10:42
paste.scsys.co.uk/468893
FROGGS_: any ideas about why PPC64 doesn't believe in "signed char" ?
jnthn nwc10: Those type names are interpreted by the NativeCall code at VM level, iirc. 10:44
eli-se i being a postfix operator is nice: sub hypot($a, $b) { abs($a + ($b)i) } 10:45
FROGGS_ nwc10: MoarVM/src/core/nativecall.c:35 does not know about signed char 10:46
eli-se "$b i" would be nicer IMO but apparently not allowed :v
10:47 rurban left
FROGGS_ nwc10: and int8 (and dcbArgChar) defaults to signed 10:48
nwc10: to handle unsigned we'd had to dcbArgUChar()
10:48 eli-se left
masak "Everywhere I go, I’m asked if I think the universities stifle JavaScript developers by making them learn other languages. My opinion is that they don’t stifle enough of them." -- lol! -- hilton.org.uk/blog/javascript-frameworks # nwc10++ 10:50
nine_: please submit rakudobug for the multi bug, if you haven't already. 10:52
arnsholt FROGGS_: Well, Rakudo/NQP doesn't know too much about signedness in first place =) 10:53
FROGGS_ m: say uint8.^unsigned 10:54
camelia rakudo-moar c40fa8: OUTPUT«1␤»
FROGGS_ m: say int8.^unsigned
camelia rakudo-moar c40fa8: OUTPUT«0␤»
FROGGS_ arnsholt: ^^
nine_ masak: rt.perl.org/Public/Bug/Display.html?id=123989 10:56
masak nine_++ 10:57
FROGGS_ NativeCall does not handle uint*, and the backends do not use dcbArgUChar instead of dcbArgChar at all
abraxxa as NativeCall is now in core where is its git repo now? 11:00
FROGGS_: regarding github.com/jnthn/zavolaj/issues/47, was that @me? 11:01
FROGGS_ abraxxa: in rakudo... 11:02
abraxxa FROGGS_: and its bug/feature tracker?
FROGGS_ abraxxa: yes, that was meant as a comment to you to try... dunno if that helps/works
abraxxa FROGGS_: what impact should that change have? 11:03
FROGGS_ abraxxa: well, zavolaj still exists but often bugs are to fix in the VM so RT is a good place for these bugs
abraxxa: I though you disliked CArray[OpaquePointer]... but perhaps I remember wrong 11:04
abraxxa RT has detected a possible cross-site request forgery for this request, because the Referrer header supplied by your browser (rakudo.org:80) is not allowed by RT's configured hostname (rt.perl.org:443) or whitelisted hosts (www.bitcard.org:443, www.bestpractical.com:443). A malicious attacker may be trying to modify or access a search on your behalf. If you did not initiate this request, then you should alert your security team.
nine_ abraxxa: bogus warning
abraxxa FROGGS_: i'd like to have a syntax which allows me to only write a single line instead of the two 11:05
nine_: sure, but you might want to whitelist rakudo.org which links to it
nwc10 FROGGS_: it can't *just* be that because if I build on x86_64 with -funsigned-char that patch makes it work again 11:07
nine_ j: multi foo(Int $foo where * > 0) { say "> 0"; nextsame; }; multi foo(Int $foo where * < 10) { say "< 10"; nextsame; }; multi foo($foo) { say "generic"; }; foo(1);
camelia rakudo-jvm c40fa8: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory␤»
nwc10 there is certainly something wrongly assuming that 'char' is like 'short', and the that its default is signed 11:08
FROGGS_ nwc10: I guess we have to be more explicit about signed/unsigned in the moarvm nativecall code...
jnthn: gist.github.com/FROGGS/663ed0225af1318dc6d2 :o( 11:09
abraxxa FROGGS_: so instead of the current two lines i'd only need: my $hndlpp := Pointer[Pointer].new; ? 11:10
FROGGS_ abraxxa: I think so.... and you can use normal assignment here
abraxxa i still haven't figured out what the difference between = and := is 11:11
FROGGS_ abraxxa: though, your pointer points to something, no? if that is of some certain kind, then it makes sense to specify it there instead of the implicit void
it is basically that: 11:12
m: use NativeCall; say Pointer[Pointer[void]].new
camelia rakudo-moar c40fa8: OUTPUT«TypedPointer[TypedPointer[void]]<NULL>␤»
FROGGS_ (void **)
11:17 colomon joined
abraxxa is there a way to specify a minimum required rakudo version? 11:17
FROGGS_ abraxxa: not yet 11:18
abraxxa FROGGS_: ok, thanks
11:18 pecastro left
abraxxa DBDish::Oracle requires at least 2015.02 with the fixed .bytes 11:18
11:21 bjz joined
abraxxa one more stupid question: should die messages end with \n or not? 11:22
FROGGS_ abraxxa: the backtrace printing should take care of that 11:23
abraxxa i guess i copied it from the other DBDs
11:25 rindolf left
nine_ jnthn: wrt my nextsame enless loop. Are we supposed to reach line 706 in src/vm/moar/ops/perl6_ops.c for each iteration? say(nqp::where(self)); gives me a different answer for every call to Perl6::Metamodel::BaseDispatcher::call_with_capture which seems to be the reason for $!idx never going beyond 1. 11:29
11:29 pecastro joined 11:31 laouji left, laouji_ joined 11:32 jferrero left
FROGGS_ jnthn: do you have an idea about my paste? 11:33
11:35 pecastro left
abraxxa you might want to close rt.perl.org/Public/Bug/Display.html?id=123015 with the info that a Buf.bytes method exists and is fixed in 2015.02 but is missing in the docs 11:37
or keep it open until the docs where added
11:37 pecastro joined 11:40 coffee` joined 11:43 sqirrel_ left 11:54 spider-mario joined
jnthn FROGGS_: 'fraid not right away, and I'm quite distracted with some $dayjob things at the moment...sorry. 11:55
FROGGS_ okay, $*W.load_setting does connect the setting with the <unit-outer>, though I got a cut between <unit> and <unit-outer> 12:02
12:02 pmurias left, skids left 12:09 rurban joined 12:11 eli-se joined 12:13 kjs_ left
dalek kudo/nom: d0d4ba6 | lizmat++ | src/core/Distro.pm:
Preliminary work for $?DISTRO
12:16
kudo/nom: db49f3b | lizmat++ | src/core/VM.pm:
Preliminary work for $?VM
12:23 moar joined, moar is now known as Guest40602 12:24 Guest40602 left 12:28 kaleem left 12:38 chenryn left 12:39 rurban1 joined, rurban1 left 12:40 kjs_ joined 12:41 eli-se left, kaleem joined 12:44 coffee` left 12:46 laouji_ left 12:47 coffee` joined 12:48 Ven joined 12:49 eli-se joined 12:51 anaeem1 left 12:52 eli-se left 12:54 kaleem left, Ven left, kaleem joined 13:03 eli-se joined 13:10 colomon left 13:19 laouji joined, ShimmerFairy left 13:23 ShimmerFairy joined, eli-se_ joined, laouji left 13:32 eli-se_ left 13:40 muraiki joined 13:42 eli-se left 13:43 muraiki left 13:53 virtualsue left 13:54 virtualsue joined 14:01 kaare_ left 14:02 kaare_ joined
lizmat drops a pin 14:05
nine_ lizmat: sssssht!
hahainternet collapses over a pile of boxes
14:07 skids joined 14:10 rindolf joined 14:11 kaare_ left 14:12 Khisanth left 14:14 MadcapJake joined 14:19 Khisanth joined, rurban left 14:26 [particle] joined 14:27 [particle]1 left 14:28 Khisanth left, ggoebel111111114 left, Khisanth joined 14:30 kaleem left
masak hahainternet: those were my boxes... 囧 14:32
ab5tract i-put-a-kebab-in-it-and-then-it-netsplit 14:34
hahainternet hey masak
spotted you in a commit message
masak hahainternet: sometimes I cameo in commit messages.
14:35 ggoebel111111114 joined
hahainternet masak: indeed, Tux::CSV or something it was, can't remember what exactly 14:36
masak probably not that one 14:37
hahainternet github.com/Tux/CSV/commit/aa29aa42...f39055a458 14:38
prly was
:)
14:39 raiph joined
masak ah. :) 14:41
Tux++ # commit comments
hahainternet i gotta devote some time to p6 ASAP but too many things to do
need union support for FFI
nwc10 OK, PEBKAC (Somewhat) 14:43
I think I might have it under control
donaldh Fix TimToady++'s nqp::index thinkos in Grammar.pm github.com/rakudo/rakudo/pull/379
nwc10 patches should be forthcoming this evening
(for PPC64 and signed/unsigned char)
PPC32 is still a wreck
donaldh duh, just realised I committed a bigger thinko 14:45
14:46 Possum left
jnthn donaldh: I'm curious why TimToady's original works on Moar, but not JVM. As in, isn't something off in one of the two backends if we're seeing a difference? 14:47
14:47 Possum joined
donaldh Yeah, sorry, I was thinking regex but it's not. That was my huge thinko. 14:47
The difference is that nqp::indexfrom on JVM returns a match for the empty string. 14:48
arnsholt jnthn: Speaking of nwc10++'s signed/unsigned char find, do we have any concrete plans for how/if we're going to handle signedness in NQP/Perl 6? 14:49
donaldh Ignore that PR
jnthn arnsholt: We statically know the types of native things, so largely by keeping track of it in the compiler and emitting different ops when we do division/modulo, conversion to/from big integer, stringification, etc. 14:53
14:54 rurban joined 14:55 rmgk_ joined, rmgk is now known as Guest77478, Guest77478 left, rmgk_ is now known as rmgk
[ptc] m: sub gather-test($n) { gather for (2,3,*+2 ... * > $n) -> $k { say $k }}; gather-test(5) 14:56
camelia rakudo-moar db49f3: OUTPUT«Unhandled exception: Cannot call 'infix:<>>'; none of these signatures match:␤:(Any $?)␤:(Any \a, Any \b)␤:(Real \a, Real \b)␤:(Int:D \a, Int:D \b)␤:(int $a, int $b)␤:(Num:D \a, Num:D \b --> Bool)␤:(num $a, num $b --> Bool)␤:(Rational:D \a,…»
[ptc] m: sub gather-test() { $n=5; gather for (2,3,*+2 ... * > $n) -> $k { say $k }}; gather-test()
camelia rakudo-moar db49f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GM4Px1bay7␤Variable '$n' is not declared␤at /tmp/GM4Px1bay7:1␤------> 3sub gather-test() { $n7⏏5=5; gather for (2,3,*+2 ... * > $n) -> $␤ expecting any of:␤ postfix␤»
[ptc] weird, the second one worked in the REPL... 14:57
m: sub gather-test($n) { my $enn = $n; gather for (2,3,*+2 ... * > $enn) -> $k { say $k }}; gather-test(5)
camelia rakudo-moar db49f3: OUTPUT«Unhandled exception: No exception handler located for warn␤ at src/gen/m-CORE.setting:787 (/home/camelia/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:warn:29)␤ from src/gen/m-CORE.setting:783 (/home/camelia/rakudo-inst-1/languages/perl…»
14:58 eli-se joined
[ptc] ... and that "almost" worked in the REPL. Gave use of uninitialized value of type Any in numeric context in whatevercode as well as the value "2" 14:58
14:58 spider-mario left
[ptc] am trying to get an example to work, and don't know why the code doesn't work as expected. Anyone have an idea? 14:59
14:59 Khisanth left 15:00 rurban left, kaleem joined
donaldh r: nqp::rindex('rakudo', '') 15:00
camelia rakudo-moar db49f3: OUTPUT«index start offset out of range␤ in block <unit> at /tmp/tmpfile:1␤␤»
donaldh r: nqp::index('rakudo', '') 15:01
camelia ( no output )
donaldh r: nqp::index('rakudo', '').say
camelia rakudo-moar db49f3: OUTPUT«-1␤»
donaldh r: nqp::rindex('rakudo', '', 6).say
camelia rakudo-moar db49f3: OUTPUT«index start offset out of range␤ in block <unit> at /tmp/tmpfile:1␤␤»
donaldh r: nqp::rindex('rakudo', '', 5).say
camelia rakudo-moar db49f3: OUTPUT«-1␤»
15:02 spider-mario joined
donaldh why does the two arg variant of rindex fail for an empty match? 15:02
moritz bug, I'd say 15:03
15:07 Khisanth joined, ggoebel111111114 left
eli-se I'm eating bugs today. 15:10
dalek pan style="color: #395be5">perl6-examples: a79b8d7 | paultcochrane++ | categories/99-problems/P3 (2 files):
[99-problems] extract for loop iteration list into a variable

This allows "gather for" to work as expected when passing a variable into the sub which is then used to determine the list of values for the for loop.
15:13 Khisanth left
eli-se Delicious mantes. :3 15:13
15:14 ggoebel111111114 joined, ggoebel111111114 is now known as ggoebel 15:18 Khisanth joined 15:20 laouji joined 15:24 colomon joined 15:25 laouji left
hoelzro o/ #perl6 15:25
eli-se hello hobbs 15:26
I mean hoelzro :v
hoelzro =)
15:26 Ven joined
hoelzro hello eli-se 15:26
15:28 colomon left 15:29 Khisanth left
abraxxa where do I find the current NativeCall docs? 15:35
FROGGS_ abraxxa: still in the zavolaj repository 15:36
abraxxa FROGGS_: I thought it was moved to the rakudo repo? i asked earlier
jnthn The *code* was moved, the docs not yet.
And when they do move they probably want to go in doc.perl6.org
FROGGS_ abraxxa: I give a lot of kudos to anyone who works on merging them into doc.perl6.org
abraxxa jnthn: i see, thanks 15:37
15:38 Khisanth joined
abraxxa is there a difference between .encode('UTF-8') and .encode('utf8')? 15:38
FROGGS_ abraxxa: no
abraxxa is one preferred over the other?
FROGGS_ the encoding name will be normalized 15:39
hmmm, no
abraxxa i just want to be consistent and zavolaj uses utf8
what's the best way to recompile the pm6 files in a git repo and run a test? 15:42
i use panda install . at the moment 15:43
15:43 eli-se left
FROGGS_ yes, that's what I usually do too 15:43
abraxxa does that use the newest compiled code and not some older, installed version? 15:44
FROGGS_ that is using the code from your repository by making a copy of its directory to a tempdir, compiling it, running its tests and install if successful 15:45
so even if you already have it installed, the tests will use the just compiled version in that tempdir
15:46 Rounin left
abraxxa ok 15:46
i see that there was a change regarding int and long in NativeCall
FROGGS_ aye 15:47
abraxxa does that mean i must change all ints to longs?
FROGGS_ the rule basically is: don't use Perl 6's int and Int as params and return types of nativecall subs 15:48
depends
if there is a long in C, it is a long in Perl 6
if there is an int is C, it is a int32 in Perl 6
PerlJam FROGGS_: Where is all of this documented? :) 15:49
FROGGS_ PerlJam: partly in zavolaj 15:50
PerlJam: but yeah, I guess I should put that on doc.perl6.org in a nice way... this way I can forget that bloody jvm bug for a moment 15:51
abraxxa i will go through the C function definitions again and update them
15:51 rindolf left
FROGGS_ abraxxa: yeah, otherwise you either have problems on 32 or 64 bit machines 15:51
PerlJam FROGGS_++
15:51 telex left
FROGGS_ so, how to doc.perl6.org? 15:52
15:52 telex joined
hoelzro I was thinking about COERCE on my way home last night, and I thought of a real-world use case for it: gist.github.com/hoelzro/06ebf55b6b679ce4cb16 15:52
donaldh FROGGS_: what's the JVM bug?
FROGGS_ and btw, we have nearly 19k test reports on testers.p6c.org
donaldh: the problem that breaks URI 15:53
abraxxa i'll start by rebasing to current DBDish
15:53 colomon joined
donaldh URI ? 15:53
FROGGS_ donaldh: it is a precomp issue that appears when URI (the module) is precompiled
donaldh ah
Tux__ abraxxa, are you currently working on DBI6? 15:54
15:54 Tux__ is now known as |Tux|
dalek p: 99f7e1f | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Handle empty pattern in index ops on JVM.
15:54
p: 3d325cf | donaldh++ | t/nqp/59-nqpop.t:
Add more tests for string index ops.
FROGGS_ the conntection between a unit call frame and its unit-outer frame is missing, so it explodes because it cannot resolv dependecies to the setting
|Tux| FWIW people asked in #amsterdam.pm who was currently working on that
abraxxa |Tux|: yes, DBDish::Oracle 15:55
donaldh ^ fixes TimToady++'s JVM misbehaviour
|Tux| abraxxa++
FROGGS_ donaldh++ # I've guessed that :o)
donaldh github.com/MoarVM/MoarVM/pull/180 is a PR to fix rindex/2 on MoarVM
15:56 Khisanth left
abraxxa |Tux|: never done C before... 15:56
|Tux| want to do it inside the perl5 dbi development enviromnet on github? 15:57
github.com/orgs/perl5-dbi 15:58
FROGGS_ donaldh: I merged your PR 15:59
abraxxa |Tux|: currently it lives at github.com/perl6/DBIish and the DBDish::Oracle is only one submodule of it
donaldh FROGGS_++
abraxxa |Tux|: i'm not to decide that
FROGGS_ donaldh: well, thank *you* :o) 16:00
16:00 kaleem left
donaldh did his MoarVM commit 16:00
nwc10 donaldh++
donaldh *first
jnthn \o/
timotimo ooooh
jnthn
.oO( But will there be moar? )
16:01
FROGGS_ donaldh: now you are forced to join #moarvm :P
virtualsue nobody forced ME to do that :-)
FROGGS_ virtualsue: ohh, feel belatedly forced now :o) 16:02
16:03 rindolf joined 16:04 raiph left
donaldh github.com/rakudo/rakudo/pull/380 PR to bump NQP revision for the nqp::index fix on JVM. 16:07
FROGGS_ moritz: the nativecall docs should got to doc.perl6.org/language.html as 'Native Interface'? does that sound good?
dalek kudo/nom: 7b922b3 | donaldh++ | tools/build/NQP_REVISION:
Bump NQP revision to get nqp::index fix

Fixes TimToady++'s grammar bug on JVM.
16:08
kudo/nom: bca33b6 | FROGGS++ | tools/build/NQP_REVISION:
Merge pull request #380 from donaldh/nom

Bump NQP revision to get nqp::index fix
FROGGS_ donaldh: we also hab to bump the MOAR_REVISION after the moar fix, right?
donaldh I'll do that
FROGGS_ cool 16:09
16:09 mr-foobar joined 16:12 cognominal joined 16:15 zakharyas left 16:17 Khisanth joined 16:20 dwarring left 16:22 zakharyas joined, rurban joined
dpuu m: grammar G1 {rule TOP { 'x'+ } }; grammar G2 { rule TOP { 'y'+ } }; grammar { rule TOP { ^ <G1::TOP> <G2::TOP> $ } }.parse('x y', :actions(class { method TOP($/) { say 'here' } })) 16:23
camelia rakudo-moar db49f3: OUTPUT«here␤here␤here␤» 16:24
dpuu any way to distinguish the three different "TOP" methods?
PerlJam dpuu++ good question
jnthn Not sure if this is a good answer, but $/.CURSOR inside of method TOP can be considered 16:25
given $/.CURSOR { when G1 { ... }; when G2 { ... }; }
nine_ jnthn: wrt my nextsame enless loop. Are we supposed to reach line 706 in src/vm/moar/ops/perl6_ops.c for each iteration? say(nqp::where(self)); gives me a different answer for every call to Perl6::Metamodel::BaseDispatcher::call_with_capture which seems to be the reason for $!idx never going beyond 1. 16:26
dalek p: 4b07ebf | donaldh++ | tools/build/MOAR_REVISION:
Bump MOAR revision to get rindex fix for nqp tests.
dpuu The general case here is that both G1 and G2 are complex grammars with their own, already existing, actions classes. Not obvious how to compose them 16:27
16:27 rurban left
jnthn dpuu: Yeah, in the Perl 6 grammar we have a LANG rule which does the switch-over 16:27
16:27 diana_olhovik_ left
jnthn dpuu: and keeping tables of languages and actions. 16:28
moritz dpuu: by calling their TOP with a separate action method, somehow 16:29
erm, action class
jnthn <G1::TOP> is not quite enough
moritz if you want to delegate parsing to a separate, complex entitiy, you also want to delegate the step above it too
right
jnthn I can probably come up with something... 16:30
moritz more like <??{ G1.subparse(..., :actions(..)) }>
jnthn nine_: I think we shoudln't be making it into the !IS_CONCRETE branch at all...
(On the second time) 16:31
dpuu: I'm in the middle of something else at the moment; will try and write up some example of how to do it in a little bit...
PerlJam It would be nice if you could just define the relationships between the grammars/actions and Perl would just DTRT. (i.e. such that you didn't have to explicitly call G1.subparse ) 16:32
dpuu OK, thanks, I'll see if I can play around with +moritz' sketch of a solution 16:33
16:33 zakharyas left
nine_ jnthn: btw. the bug is also reproducable on the JVM 16:33
16:37 colomon left 16:40 larion left 16:41 travis-ci joined
travis-ci NQP build passed. Donald Hunter 'Bump MOAR revision to get rindex fix for nqp tests.' 16:41
travis-ci.org/perl6/nqp/builds/53213801 github.com/perl6/nqp/compare/3d325...07ebfc566a
16:41 travis-ci left
osfameron nine_: question from #catalyst about whether DBIx::Class runs under Inline::Perl5 ? 16:48
abraxxa i don't remember how i found out that size_t is int 16:49
nine_ osfameron: it does
osfameron: since about two days after the first commit to Inline::Perl5 ;)
osfameron woohoo :-)
abraxxa irc log++ 16:50
(17:41:18) abraxxa: oratypes.h has the line # define MINSIZE_TMAXVAL (size_t)4294967295 which made me think it's a uint32
does that make sense?
ribasushi osfameron: DBIC is a pure-perl module, it's the various DBDs that could potentially trip you up 16:51
osfameron ah yes. though as I::P5 does XS, that's presuambly not a problem either?
abraxxa FROGGS_: do you know that? 16:52
nine_ XS itself is no issue.
I've successfully tried our DBIC schemas with DBD::Pg
Pitfalls probably are of the far more surprising category. Maybe if some DBD is extremely picky about data types. But I'd say trying is the only way to find out. 16:53
ribasushi nine_: what is actually involved in running the DBIC test suite through I::P5 ? 16:54
i.e. how did you "try it out"
dpuu rule TOP { ^ <x=.G1::TOP> { G1.parse($<x>, :actions(A1)) } <y=.G2::TOP> { G2.parse($<y>, :actions(A2)) } $ } works, but probably inefficient (I assume it parses the string twice) -- good enough to unblock me though 16:55
PerlJam There's so many P5 people here now that I can't easily tell which channel I'm looking at merely from the conversants. :)
TimToady donaldh++ 16:56
16:56 molaf joined 16:57 rurban joined
abraxxa the Oracle tests have started working again ;) 16:58
i changed all ints to int32s 16:59
nine_ ribasushi: nine@sunshine:~> perl6 -I Inline-Perl5/lib -e 'use Inline::Perl5; use Atikon::DB::Timemngt:from<Perl5>; my $schema = Atikon::DB::Timemngt.connect("dbi:Pg:database=timemngt"); say $schema.resultset("Article").find(62).name;'
abraxxa sword and size_t types
nine_ Homepage
abraxxa gotto go, see you tomorrow
dpuu Actually, I take it back: simply calling Subgrammar.parse doesn't work because there's no namespace encapsulation: any rule in the subgrammar still causes the actions of the supergrammar to be used when they have the same name 17:02
skids Oh, does nativecall have size_t now?
abraxxa no, Oracle OCI does 17:03
and I guess its a int32
17:03 rurban left
abraxxa i'm still failing at sql parameter binding with IntTypedCArray[int8]<139650419175376> 17:03
Segmentation fault (core dumped)
17:07 rurban joined 17:08 cognominal left 17:12 rurban left
TimToady always feels very unresolved when the last message in the channel is ^^^ 17:12
Juerd Better than ..., though... 17:15
...
17:16 vendethiel- joined 17:18 vendethiel left 17:23 espadrine left
geekosaur NO CARRIER 17:24
:p
TimToady DESTROYER 17:25
maybe a BATTLESHIP or two 17:26
17:26 tinyblak left
jnthn dpuu: gist.github.com/jnthn/2ec8ae8a847310f85210 17:29
17:31 adu joined
donaldh There's a bunch of JVM related tickets that could be resolved.What's the process? Can someone assign them to me? 17:32
moritz donaldh: if the problem is missing permissions in RT, I believe [Coke]++ can help you 17:33
donaldh I only have perms to read and reply, so yes :)
dalek c: 661e87d | (Florian Helmberger)++ | lib/Language/5to6.pod:
fixed typo in section "Special matchers generally fall under the <>
17:34
c: c452935 | paultcochrane++ | lib/Language/5to6.pod:
Merge pull request #59 from fhelmberger/master

fixed typo surrouned -> surrounded
17:35 anaeem1 joined
moritz gives fhelmberger a commit bit 17:36
17:38 diana_olhovik joined
TimToady moritz: any idea why the "Look for new lines" doesn't work (at least in firefox) when there are no lines on the page? 17:40
moritz TimToady: probably some javascript SNAFU 17:41
TimToady
.oO(but he repeats himself)
dpuu m: say grammar{}.^methods
camelia rakudo-moar bca33b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LMqJhKI5N3␤Whitespace required after keyword 'grammar'␤at /tmp/LMqJhKI5N3:1␤------> 3say grammar7⏏5{}.^methods␤»
TimToady gotcha! 17:42
dpuu m: say grammar {}.^methods
camelia rakudo-moar bca33b: OUTPUT«No such method 'gist' for invocant of type 'NQPRoutine'␤ in method gist at src/gen/m-CORE.setting:8946␤ in sub say at src/gen/m-CORE.setting:17976␤ in block <unit> at /tmp/TBdykVYSft:1␤␤»
TimToady gotus!
17:42 raiph joined
jnthn m: say grammar {}.^methods.map(*.name) 17:43
camelia rakudo-moar bca33b: OUTPUT«parse subparse parsefile MATCH MATCH_SAVE INTERPOLATE DYNQUANT_LIMITS OTHERGRAMMAR INDRULE RECURSE orig target from pos prune CAPHASH !cursor_init !cursor_start_all !cursor_start !cursor_start_cur !cursor_start_fail !cursor_start_subcapture !cursor_capture…»
dalek c: e7bf359 | moritz++ | lib/Type/Cool.pod:
Cool.index
TimToady so how hard could it be to add a .gist method...
17:44 Kristien joined
Kristien hi 17:44
TimToady lo
17:44 Kristien left
jnthn TimToady: Pretty easy, if we want to fix it that way 17:44
17:44 eli-se joined
TimToady well, we could box up all them nqp thingies inside real objects, is another way 17:44
eli-se Today is a wonderful day.
jnthn TimToady: Yes, that was my plan A for these things... 17:45
TimToady A wonderful day is today.
moritz had a pretty shitty $work day today 17:46
with a release gone bad and half the day spent in meetings
eli-se A wonderful dy is toady. 17:47
jnthn hugme: hug moritz
hugme hugs moritz
moritz thanks, that helped :-) 17:48
TimToady welcome back to the land of...sanity?
Ven
.oO( when do you plan to leave again? )
TimToady sanitation, anyway... 17:49
17:49 diana_olhovik left 17:52 rindolf left, kjs_ left 17:53 mohij joined
eli-se m: my constant i = 42; say (i)i; 17:54
camelia rakudo-moar bca33b: OUTPUT«0+42i␤»
eli-se nice! 17:55
TimToady that's just from lexical scoping
didn't need any of the recent hacks
eli-se m: my constant i = 1i; my constant negative-one = (i)i; say negative-one; 17:56
camelia rakudo-moar bca33b: OUTPUT«-1+0i␤»
TimToady m: my constant i = 42; say (OUTER::i)i
camelia rakudo-moar bca33b: OUTPUT«Cannot call 'postfix:<i>'; none of these signatures match:␤:(Real \a --> Complex)␤:(Complex:D \a --> Complex)␤:(Numeric \a --> Complex)␤:(Cool \a --> Complex)␤ in block <unit> at /tmp/537I6uOVBI:1␤␤»
TimToady heh
m: say i\i
camelia rakudo-moar bca33b: OUTPUT«-1+0i␤»
eli-se what is \? 17:57
TimToady m: say i.WHAT
camelia rakudo-moar bca33b: OUTPUT«(Complex)␤»
TimToady say OUTER::i.WHAT
m: say OUTER::i.WHAT
camelia rakudo-moar bca33b: OUTPUT«(Any)␤»
TimToady a degenerate unspace
postfixes allow unspace with no space at all
so you can say $foo\++ or $bar\i 17:58
m: say CORE::i.WHAT
camelia rakudo-moar bca33b: OUTPUT«(Complex)␤»
TimToady surely OUTER should see the things outside of that...
m: my $foo = 42; {{{{ say $OUTER::foo }}}} 17:59
camelia rakudo-moar bca33b: OUTPUT«(Any)␤»
TimToady hmm
17:59 Rounin joined
TimToady I think the original intent was to use OUTER::MY if you wanted that specific lexpad 18:00
std: my $foo = 42; {{{{ say $OUTER::foo }}}} 18:02
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Variable $OUTER::foo is not predeclared at /tmp/Nyq1btABQB line 1:␤------> 3my $foo = 42; {{{{ say 7⏏5$OUTER::foo }}}}␤Check failed␤FAILED 00:01 138m␤»
TimToady hmm
maybe not
jnthn 'OUTER' => sub ($cur) { 18:04
...
nqp::bindattr_i($stash, PseudoStash, '$!mode', PRECISE_SCOPE);
TimToady do we have a way to say the other?
jnthn Seems now
TimToady *t 18:05
jnthn *not
:)
There's CALLER (precise) and DYNAMIC for that dimension
TimToady m: my $*foo = 42; say DYNAMIC::<$*foo> 18:06
camelia rakudo-moar bca33b: OUTPUT«42␤»
TimToady so we want OUTER::LEXICAL or so
std: my $foo = 42; {{{{ say MY::<$foo> }}}} 18:07
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Variable MY::<$foo> is not predeclared at /tmp/NojuA_U_wt line 1:␤------> 3my $foo = 42; {{{{ say 7⏏5MY::<$foo> }}}}␤Check failed␤FAILED 00:00 139m␤»
TimToady just checking...
18:07 rindolf joined 18:08 anaeem1 left
TimToady though something's a little funny about that factoring 18:09
std: my $foo = 42; {{{{ my $foo = 21; say OUTER::('$foo') }}}} 18:10
camelia std 28329a7: OUTPUT«Potential difficulties:␤ $foo is declared but not used at /tmp/EghrZSATru line 1:␤------> 3my $foo = 42; {{{{ my $foo7⏏5 = 21; say OUTER::('$foo') }}}}␤ok 00:00 139m␤»
18:10 virtualsue left
TimToady m: my $foo = 42; {{{{ my $foo = 21; say OUTER::('$foo') }}}} 18:10
camelia rakudo-moar bca33b: OUTPUT«===SORRY!===␤No such symbol 'OUTER::$foo'␤»
TimToady m: my $foo = 42; {{{{ my $foo = 21; say ::('$foo') }}}}
camelia rakudo-moar bca33b: OUTPUT«21␤»
TimToady m: my $foo = 42; {{{{ say ::('$foo') }}}} 18:11
camelia rakudo-moar bca33b: OUTPUT«42␤»
mohij o/
TimToady but bare ::() works like LEXICAL, so why doesn't OUTER::()
m: my $foo = 42; {{{{ say OUTER::::('$foo') }}}} 18:12
camelia rakudo-moar bca33b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_T6HhcG4QC␤Name component may not be null␤at /tmp/_T6HhcG4QC:1␤------> 3my $foo = 42; {{{{ say OUTER::7⏏5::('$foo') }}}}␤»
18:14 Sqirrel left 18:15 diana_olhovik_ joined
TimToady and maybe we should have OUTERS:: for OUTER::LEXICAL:: and CALLERS:: for CALLER::DYNAMIC:: 18:16
since those situations arise frequently
18:17 donaldh left
TimToady or OUTERISH and CALLERISH if S is too short 18:17
OUTER::ETC::<$foo> :) 18:18
where ETC means keep looking in that dimension... 18:19
FROGGS_ moritz: can I regenerate a single html file after changing something?
TimToady though the other factoring theoretically allows for CALLER::LEXICAL and OUTER::DYNAMIC, if those aren't non-sensical 18:21
FROGGS_ m: my $foo = 42; {{{{ my $foo = 21; say OUTER::OUTER::OUTER::OUTER::<$foo> }}}} 18:23
camelia rakudo-moar bca33b: OUTPUT«42␤»
TimToady yes, looking for a wildcard-ish thing to an arbitrary number of OUTERs 18:24
as jnthn++ points out, we already can do similarly with CALLER::DYNAMIC
FROGGS_ these OUTERs are also problematic if you have multi subs and have to take the proto into account (which might get eliminated) 18:25
ohh, that was caller
TimToady I think we already have to account for inlining 18:26
and inlining doesn't matter for lexical scopes
(well, except for merging lexpads, but we do that already) 18:27
18:28 kjs_ joined
jnthn An onlystar proto never counts in the CALLER chain 18:31
18:31 jferrero joined, pecastro left
dalek Heuristic branch merge: pushed 48 commits to perl6-examples by paultcochrane 18:32
jnthn As for compile-time inlining, we're fairly conservative: if we see a pseudo-package, we don't do it, since it'll bust OUTER:: 18:33
We might be...cheating...a little on CALLER
timotimo are we already doing that? cool.
jnthn VM-level inlining is easier to deal with in so far as if we hit a lookup we can re-write the stack to uninline too :) 18:34
Or compensate for it in other ways
18:36 kjs_ left 18:38 J-L joined
J-L Hi! I have a problem with NativeCall, if anyone's willing to help. 18:38
TimToady you have a problem with NativeCall if no one's willing to help :P 18:39
J-L Basically, I'm trying to implement Window's GetStdHandle as seen on msdn.microsoft.com/en-us/library/w...s.85).aspx .
I have this declaration: use NativeCall; sub GetStdHandle(int) returns OpaquePointer is native('Kernel32') { * }
Then I run this code: say 'Before'; my $handle = GetStdHandle(-10); say 'After';
The "Before" string prints out, but then my program quits. Even when I use the perl6 REPL I get booted out of it and go back to the DOS prompt. 18:40
18:40 cognominal joined
J-L Apparently the program doesn't survive the call to GetStdHandle(). Does anyone know why? 18:40
FROGGS_ J-L: first of all: don't use 'int' there
J-L: use either 'int32' or 'long' 18:41
jnthn It's a DWORD in MSDN, so int32
Also, maybe needs stdcall
J-L FROGGS_: Just tried 'long', and got: Invalid typename 'long' in parameter declaration. 18:42
FROGGS_ O.o
18:42 spider-mario left
J-L FROGGS_: Also tried 'int32'. It doesn't give an error, but like at first, it just terminates the program with no error message. 18:42
FROGGS_ J-L: how old is your rakudo?
J-L jnthn: stdcall ? What's that? 18:43
FROGGS_ J-L: hmmm, okay, then perhaps you need to try stdcall calling convention
gimme a sec
J-L FROGGS_: perl6 --version returns: This is perl6 version 2014.12 built on MoarVM version 2014.12
jnthn J-L: Try adding "is nativeconf('stdcall')"
FROGGS_ try this: use NativeCall; sub GetStdHandle(int32) returns OpaquePointer is native('Kernel32') is nativeconv('stdcall') { * } 18:44
J-L: your NativeCall (and therefore rakudo) is too old to know about long
J-L Is that "nativeconf" or "nativeconv" ?
FROGGS_ nativeconv 18:45
jnthn uh, what FROGGS_ wrote
FROGGS_ like CALLing CONVention
jnthn
.oO( We should speak with one voice... )
FROGGS_ err, native*
*g*
18:45 spider-mario joined
J-L That worked! (At least, the "After" printed out.) What does adding "is nativeconv()" do exactly? 18:46
FROGGS_ J-L: there are several ways to call into a C library, and this time here you need to choose the non-default
J-L Oh. 18:47
18:47 kjs_ joined
FROGGS_ J-L: lookup an article at wikipedia, I can't explain well enough :o) 18:47
jnthn There are different ways to put arguments into CPU registers or onto the stack, and approaches to who should clear them off the stack afterwards.
The Windows API on 32-bit machines uses one called stdcall, unlike most C code 18:48
In the 64-bit world they unified them, and got rid of this annoyance, only annoying thing being that if you write code on 64-bit you'll never discover problems like this until somebody tries it on 32-bit :) 18:49
FROGGS_ true :o)
J-L So now I want to implement GetConsoleMode() from msdn.microsoft.com/en-us/library/w...s.85).aspx . 18:50
I have so far: sub GetConsoleMode(OpaquePointer, int is rw) is native('Kernel32') is nativeconv('stdcall') { * }
And when I execute the code: say 'Before'; my int $mode; GetConsoleMode($handle, $mode); say 'After'; $mode.say; 18:51
It just prints 0 as the value of $mode .
Is my GetConsoleMode() declaration correct? 18:52
Do I have to specify that it returns Bool ? And if so, how?
FROGGS_ J-L: it would be correct for a more recent rakudo+nativecall :o)
a Bool is probably just an int8 18:53
jnthn FROGGS_: Um, even the "is rw"? :) 18:54
FROGGS_ instead of 'int is rw' you should again forget about plain 'int', but also replace it by OpaquePointer
jnthn or Pointer[int]
?
FROGGS_ and then: say nativecast(jnt32, $mode-ptr)
jnthn Ah :)
FROGGS_ jnthn: that does not work with 2014.12
TimToady maybe we should just do rolling star releases now... 18:55
18:55 Ven left
jnthn thought we were doing monthly... 18:55
FROGGS_ ahh, I need to do the msi...
TimToady pictures a star rolling..
jnthn But...maybe not the MSI
18:55 kaare_ joined
FROGGS_ I'll do the msi today 18:56
J-L FROGGS_ & jnthn: So you're saying the declaration should be: sub GetConsoleMode(OpaquePointer, OpaquePointer) returns int8 is native('Kernel32') is nativeconv('stdcall') { * }
FROGGS_ J-L: yes
and then the nativecast after calling GetConsoleMode($something, $mode-ptr); 18:57
18:57 kjs_ left
FROGGS_ J-L: will you upgrade your rakudo if I create a rakudo-star-2015.02.msi today? 18:57
bbiab
timotimo FROGGS_: can you perhaps make the target directory for the installation configurable? 18:58
please?
FROGGS_ timotimo: unlikely
timotimo damn :(
FROGGS_ timotimo: because the install wizard has no buttons :o)
and I dont know how easily I can make it have some :P 18:59
J-L FROGGS_: Yes, absolutely I will upgrade.
FROGGS_ okay, then I know what I have to do (besides docs)
J-L Also, yesterday I asked for the Perl 6 equivalent of Perl 5's $^O variable, but didn't get an answer that worked. Would anyone know another answer, or maybe the new version of rakudo will fix it? 19:00
TimToady m: say $*VM.config<osname> 19:01
camelia rakudo-moar bca33b: OUTPUT«linux␤»
TimToady did you try that one? 19:02
19:04 zby_home joined
J-L Excellent. "say $*VM.config<osname>" worked great! 19:04
Incidentally, wouldn't a new rakudo be called rakudo-star-2015.03.msi today? (Instead of "2015-02".)
TimToady well, if it's based on rakudo 2015-02... 19:05
19:05 jercos joined, cognominal left
J-L TimToady: Okay, makes sense. 19:06
Incidentally, after implementing GetConsoleMode, I want to implement SetConsoleMode ( msdn.microsoft.com/en-us/library/w...s.85).aspx ). 19:08
19:09 rindolf left
TimToady J-L: after you've figured this out, maybe you could look at some of the Windows-oriented tasks on rosettacode.org/wiki/Reports:Tasks_..._in_Perl_6 19:10
19:11 zakharyas joined
jnthn m: say $*DISTRO.is-win 19:12
camelia rakudo-moar bca33b: OUTPUT«False␤»
jnthn That's a good way to ask "is this Windows"
dalek rl6-roast-data: 6ba0506 | coke++ | / (9 files):
today (automated commit)
jercos m: say $*DISTRO.is-unix 19:13
camelia rakudo-moar bca33b: OUTPUT«No such method 'is-unix' for invocant of type 'Distro'␤ in block <unit> at /tmp/Y4P5pD4sYe:1␤␤»
TimToady it's not initialized that I could see
jnthn TimToady: Forme:
perl6-m -e "say $*DISTRO.is-win"
True
TimToady then I guess it is :)
jnthn *For me
timotimo well "is-win" is basically "do-i-have-to-do-everything-in-a-very-weird-and-roundabout-way-or-can-i-just-do-it-normally" 19:14
but that's too long
that's also the reason why there is no is-unix
:P
TimToady jercos: the opposite of is-win is obviously is-lose :)
jercos Haha, true.
jnthn Surely it's is-fail :P
jercos I mostly had in mind that .is-unix should return false on Linux, but true on Mac OS X ;)
19:14 fhelmberger left
TimToady trudat 19:15
[Coke] if someone wants RT privs, I need their rt logind.
*loginid
TimToady has no clue
nwc10 *now* you tell us. 19:16
Wouldn't that have been better said 25 years ago? :-)
TimToady nobody was listening then
19:16 diana_olhovik_ left 19:19 [Sno] left
J-L Ooh! I think I just got SetConsoleMode() working! 19:21
jnthn :) 19:22
jnthn bbiab
skids J-L++ 19:27
19:31 molaf left 19:34 tadzik left
J-L What is the Perl 6 equivalent of Perl 5's: my $input = <STDIN>; ? 19:37
moritz my $input = $*IN.get; 19:38
though it chomps by default
J-L How do you not chomp?
moritz open() has an option for that 19:39
no idea how do it on $*IN
what do you need the trailing newline for?
J-L Just curious. I'm so used to Perl5's non-chomping behavior that I wonder how to emulate it. If I do this, does it still chomp? my @lines = $*IN.get; 19:40
19:40 anaeem1 joined
moritz that'll give you just one line 19:40
use .lines to get 'em all 19:41
Perl 6 routines don't know in which context they are called
that's why magic readline was split into .get and .lines
and maybe because it's better to have to separate methods for two separate actions 19:42
19:52 kjs_ joined 19:53 kjs_ left 19:54 zakharyas left 19:55 salva joined
b2gills actually having one method return a single item, or multiple items depending on context was the source of a bug in bugzilla 19:58
J-L Is there a Perl6 equivalent to Perl5's IO::Select::can_read() method? 19:59
In Perl 6, how can I tell if a filehandle (such as $*IN) has data ready to read from it? (Sometimes I would rather not stop and wait for input, if there's no input waiting to be read.) 20:07
moritz J-L: there's currently no API for that, but you could always do it another thread 20:08
J-L: because we have, like, sane threading :-)
dalek c: ec6c686 | moritz++ | t (2 files):
Remove fossils
20:09
20:11 darutoko left
J-L moritz: So if I want to check for input 100 times, I have to create 100 threads? That seems a bit overkill. 20:13
PerlJam J-L: I don't think that's what moritz is saying. Just that you can have one thread reading (either providing values or not) and the other thread doing stuff while it's waiting for values. 20:14
moritz right, what PerlJam said
20:16 Hor|zon left 20:19 Foxcool left
moritz m: my $queue = Channel.new; my $in = start { $queue.send($_) for lines; True }; while $in.status === Planned { my $l = $queue.poll; say $l // "idle" }; 20:20
camelia rakudo-moar bca33b: OUTPUT«idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle␤idle…»
20:21 Foxcool joined
moritz works better locally here 20:22
PerlJam maybe you need a sleep in there to show that it's not always idle :)
moritz m: my $queue = Channel.new; my $in = start { $queue.send($_) for lines; True }; while $in.status === Planned { my $l = $queue.poll; say $l // "idle"; sleep 0.01 };
camelia rakudo-moar bca33b: OUTPUT«idle␤»
moritz m: say get 20:23
camelia rakudo-moar bca33b: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤»
moritz huh
J-L moritz and PerlJam: Ultimately, I want to query input at multiple times, and do something if there's input. In other words, I want to implement a non-blocking read. I could do that in Perl5 with the select() call or using IO::Select::can_read().
skids Doesn't work really well here. The idles stop coming on their own at random.
PerlJam skids: that's weird. 20:24
moritz random is fine
J-L: well, that's what $queue.poll does in my example; it returns an item if there is one, otherwise an undefined value
PerlJam skids: wait ... what do you mean "stop coming"?
J-L Using a thread would totally change the paradigm, as one thread would be continually reading from STDIN, and would interfere with how the rest of the program reads from $*IN.
skids Just hang. COmpletely. No more "idle"s
PerlJam skids: and no more input from $*IN? 20:25
skids Right.
Well, in my case *IN is the console, but no more input.
moritz J-L: fwiw I'm not arguing against any async/introspective IO, just wanted to point out an alternative
J-L moritz: By your example, do you mean: my $queue = Channel.new; my $in = start { $queue.send($_) for lines; True }; while $in.status === Planned { my $l = $queue.poll; say $l // "idle"; sleep 0.01 }; 20:26
jnthn m: my $queue = Channel.new; my $in = start { $queue.send($_) for lines; True }; until $in { my $l = $queue.poll; say $l // "idle"; sleep 0.01 }; 20:27
camelia rakudo-moar bca33b: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤»
jnthn moritz: Once a Promise backed by code starts running, it's status is Running, iirc
moritz: Boolify it is the way to check if it reached some conclusion 20:28
skids PerlJam: also tried it with a named fifo. same basic result: sometimes after an input on the fifo you get 1 or two idles then nothing till the next time you input. 20:29
20:31 [Sno] joined 20:32 MadcapJake left
J-L moritz: Your example uses elements I'm not familiar with, so I'll have to study it a bit. But from what I can tell, it just automatically reads input and puts in a thread-safe list, expecting all non-blocking readers to check that list for existing elements before reading. Correct? 20:33
skids J-L: That's the basic idea. The async behavior has been split away from the actual IO operation into a general tool useful for all sorts of stuff. 20:37
20:37 muraiki joined
moritz jnthn: the better solution is probably to .close the channel after the input is exhausted, and check that 20:43
dalek ecs: 3637e65 | TimToady++ | S02-bits.pod:
doc LEXICAL, OUTERS, and CALLERS pseudo packages
20:44
moritz m: my $queue = Channel.new; my $in = start { $queue.send($_) for lines; $queue.close}; until $queue.closed { say $queue.poll // "idle"; sleep 0.001 };
camelia rakudo-moar bca33b: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤I mo dhiaidh bhí gleanntáin ghlas’ G…»
moritz locally produces an "idle" before the first line 20:45
20:45 colomon joined
dalek kudo/nom: 8c56871 | nicholas++ | t/04-nativecall/03-simple-returns.c:
The nativecall test for int8 should use `signed char` explicitly.

Otherwise on architectures where bare `char` is unsigned, the test fails, because it returns the wrong value. (-103 + 256, instead of -103)
20:46
20:46 laouji joined
dalek kudo/nom: cccd6cf | TimToady++ | src/Perl6/World.nqp:
do pseudopackage lookups with a hash
20:46
kudo/nom: d3ba345 | TimToady++ | src/core/PseudoStash.pm:
implement LEXICAL, OUTERS, and CALLERS
Ulti are grave accents available for use in Perl6? 20:47
TimToady .u grave
yoleaux U+0060 GRAVE ACCENT [Sk] (`)
U+00C0 LATIN CAPITAL LETTER A WITH GRAVE [Lu] (À)
U+00C8 LATIN CAPITAL LETTER E WITH GRAVE [Lu] (È)
Ulti backticks
TimToady they're available for any use you want them for 20:48
Ulti TimToady I meant more are they used for anything or could I slang in my own use for them
cool
TimToady they don't do qqx though
they are reserved (mostly) for user definition
Ulti generous :) 20:49
TimToady the only place we use 'em right now is in #`{ embedded comments }
yeah, you get one character :P
well, plus most of Unicode
Ulti :3
20:49 kjs_ joined
TimToady well, technically you get the control codes too 20:50
skids
.oO(nobody wanted the backtick)
20:51 laouji left, Hor|zon joined
Ulti does 20:52
20:52 bjz left
masak is kind of disappointed that a tombstone emoji didn't show up as the result to the ".u grave" search 20:53
FROGGS_ J-L: rakudo.org/downloads/star/rakudo-st...015.02.msi 20:55
J-L Is there an ungetc() method for $*IN ?
Ulti .u U+26FC
yoleaux U+26FC HEADSTONE GRAVEYARD SYMBOL [So] (⛼)
[Tux] Inline::Perl5 lost 41% performance (it got 41% slower) 20:56
masak Ulti: heh. so it was just "below the fold", then.
20:56 tgt joined
[Tux] github.com/Tux/CSV/commit/7e7c84fb...66e607c34c 20:56
J-L Thanks, FROGGS_! Is this new version with Moar? 20:57
FROGGS_ J-L: yes 20:58
J-L: rakudo star is moar-only for the time being
J-L Great! I'll uninstall what I have and install the new one.
FROGGS_ J-L: just rename your current C:\rakudo
so you could switch back Justin Case 20:59
21:00 dolmen joined 21:03 kjs_ left
tgt Hi. Rakudo-on-moar's base memory usage has gone up by about 20% (80MB to 95MB) over the last day or so. 21:05
On OS X at least.
masak breaking news: Angular 2.0 just got a separate website to Angular 1.x. 21:08
masak sobs, gently
Ulti realises he's going to have to write a Slang rather than just sub circumfix:<` `> 21:09
vendethiel- masak: it's been dead to companies for a while now... at least the one I've worked in/talked with :p
literal tgt: sounds like a job for git bisect
tgt Yup, git bisecting atm.
muraiki masak: it's also using typescript now
jnthn tgt++ 21:10
muraiki although the 2.0 website hasn't been updated to reflect that yet
vendethiel- muraiki: isn't it using atscript (the typescript "superset")?
masak vendethiel-: that's certainly not true in .se -- training is selling like cupcakes
vendethiel-: atscript and typescrip just merged into typescript
typescript*
muraiki vendethiel-: blogs.msdn.com/b/typescript/archive...cript.aspx
vendethiel- oh..
masak the term "atscript" is hereby retired.
vendethiel- good... 21:11
muraiki I don't use angular personally, just found it interesting to see from the sidelines :) I use knockout and it works pretty good for simpler webapps
masak 'The team will look at the traffic to both sites, along with GitHub, in order to determine where the community is still invested. This means that if a majority of traffic is still at angularjs.org, the team will continue to focus resources on 1.X. Angular 1.X will not end life until the majority of traffic has moved to 2.0. "We'll continue releasing Angular 1 releases until the vast majority of you migrate to
Angular 2," said Minar.'
they're so cute when they're young and naive like that.
vendethiel- ...and when they stated "back then" that 1.x would stop 1 year after the first 2.0 release...
muraiki what in the world
I thought that was a parody you made up 21:12
masak "'Second systems are easy', continued Minar. 'I am totally sober right now', he added."
muraiki oh
vendethiel- :DD
muraiki is it a joke? heh :)
masak muraiki: the first bit was a real quote, though.
from www.infoq.com/news/2015/03/angular-...-addressed
vendethiel- masak: that's interesting. It's not like I was even looking for people "hating on it", I just talked with people I knew used angular at work -- in a lot of places, they were going for the removal
muraiki I'm speechless
masak vendethiel-: I was teaching it today. full classroom. 21:13
vendethiel- masak: I'm not saying everyone ran away :P
jnthn Apparently there's a disadoption curve some people are ahead of too :P
masak vendethiel-: though I keep telling people "use it as a prototyping tool. AngularJS is the VB of 2015. it's fast to implement a fresh idea, before the troubles set in."
muraiki interesting
do you have any experience with ember?
21:14 anaeem1 left
masak nope. only hearsay. 21:14
I know Ember people keep comparing themselves to Angular.
vendethiel- masak: yeah, that sounds sensible
masak wondering where they went wrong, PR-wise.
21:14 anaeem1 joined
muraiki I recently tried using RxJS along with virtualdom, and it seemed neat but then I realized someone else was already making the same thing and seemed to actually know what they are doing 21:14
nwc10 it's 27 days until April 1st. I think.
eli-se Use a virtual DOM library with lenses and a global modifyState function that takes a lens and a value.
And keep your model immutable. 21:15
muraiki that's what Om does?
eli-se Yes. It's the only sane way I've ever seen a web UI done.
masak eli-se: isn't "keep your model immutable" also known as "static HTML"? :P
muraiki I don't think I can sell my boss on clojurescript, although I've written a simple library in it before
nwc10 oh my. "A huge complaint about Angular 2 was that there was no migration path." 21:16
well d'oh. that's a foresight mistake.
eli-se masak static HTML without any JavaScript would be ideal, of course, but clients tend to be noobs who need fancy GUIs.
muraiki but if you like om, check out rxjs... I think you might find its ideas pretty interesting
nwc10 Inline::AngularJS::1, and sorted! :-)
muraiki gist.github.com/staltz/868e7e9bc2a7b8c1f754
ok sorry for getting everybody offtopic onto frontend dev 21:17
I just appreciate the insight of experienced devs... I've only been programming professionally for a year
eli-se "There are plenty of bad explanations and definitions out there on the internet. Here is another one."
muraiki "I wrote my own monad tutorial, and it will definitely make sense to you!"
Mouq muraiki: Only off topic until we have RakudoJS :P 21:18
muraiki Mouq: hehe :D
eli-se I don't believe in any concurrency APIs that do not implement CSP.
tgt jnthn: It's one of d0d4ba6 and db49f3b, the first doesn't build.
masak eli-se: "Contain, Secure, Protect"? :P 21:19
21:19 anaeem1 left
masak learned about that CSP recently 21:19
eli-se Blocking I/O is the only correct way of doing I/O. Async I/O is an optimisation that doesn't need to affect APIs. 21:20
muraiki so you're not a fan of the actor model?
vendethiel- muraiki: I don't think the actor model is related to async IO 21:21
muraiki well, CSP vs CPP (communicating parallel processes) 21:22
eli-se Actor model and CSP are isomorphic.
You can implement them in terms of each other.
muraiki I thought CSP couldn't implement unbounded nondeterminism, which was one of the things that prompted the actor model? 21:23
disclaimer: noob
21:23 Rounin left
TimToady m: my $foo = 42; {{{{ my $foo = 21; say OUTERS::<$foo> }}}} 21:27
camelia rakudo-moar d3ba34: OUTPUT«42␤»
eli-se I don't know either. I talk about close approximations of CSP, such as Go.
21:27 flussence left
TimToady m: my $foo = 42; {{{{ my $foo = 21; say LEXICAL::<$foo> }}}} 21:27
camelia rakudo-moar d3ba34: OUTPUT«21␤»
21:28 flussence joined
TimToady someone with a hankering to write tests could do so for LEXICAL, OUTERS, and CALLERS 21:28
eli-se But promises, observables and callbacks are no-go. They require you to think upfront of whether some interface implementation will ever do any I/O that might be desired to be performed asynchronously.
TimToady we tend to use laziness for that 21:29
eli-se If you design a reader interface with the implementation of an in-memory buffer in mind, and you later want to implement it for a socket or a file, then you're screwed since you didn't anticipate by returning Future[T] instead of T.
muraiki interesting 21:30
dalek Heuristic branch merge: pushed 49 commits to perl6-examples by paultcochrane 21:31
eli-se So you end up either making the buffer implementation have an asynchronous API (even though it's synchronous) or having a second async API that differs only in the return type being a future
or taking a callback or anything isomorphic to that
you can solve it with threads or fibers, or by using the continuation monad everywhere, though. I'm a fan of the former. 21:32
dalek pan style="color: #395be5">perl6-examples: c6f3902 | paultcochrane++ | categories/rosalind/itwv-grondilu.pl:
[rosalind] add initial docs for itwv example
21:35
21:36 telex left 21:38 telex joined 21:41 tadzik joined
J-L FROGGS_: Okay, I used: sub GetConsoleMode(OpaquePointer, OpaquePointer) returns int8 is native('Kernel32') is nativeconv('stdcall') { * } 21:46
And now when I call it, I get: Native call expected return type with CPointer representation, but got a P6int
FROGGS_ J-L: and you are sure that the error message if for calling GetConsoleMode? I bet it is for calling nativecast later on 21:47
dalek pan style="color: #395be5">perl6-examples: 536199b | paultcochrane++ | categories/shootout/k-nucleotide.p6.pl:
[shootout] use v6; add vim coda
FROGGS_ either that, or you pass a native int to GetConsoleMode()
J-L I'm actually not calling nativecast(). I'm calling exit() right before that. 21:49
FROGGS_ then you pass something odd to GetConsoleMode
J-L Oh, you're right, FROGGS_. I passed in an int instead of an OpaquePointer. 21:51
FROGGS_ yeah... the error message is weird though... It assumes it is about return types instead of parameters
21:52 kst` joined
J-L Okay... now the script is failing (silently) after the nativcast(int32, $mode) call. 21:53
Basically, I wrote: my OpaquePointer $mode; GetConsoleMode($handle, $mode); say nativecast(int32, $mode);
TimToady error messages that guess right are awesome, but error messages that guess wrong are LTLTA.
J-L Is that the wrong usage?
LTLTA? 21:54
TimToady less than LTA
muraiki I just built perl6 using rakudobrew and I'm trying to install Inline::Perl5 via panda. However, I get an error "Cannot locate native library... p5helper.so" I see a call to gcc above to make the .so along with 2 warnings, but no errors...
J-L LTA = Less Than Awesome ?
FROGGS_ J-L: aye
21:55 kst left
FROGGS_ muraiki: you have install libperl-dev or some such? 21:55
muraiki whoops, I bet that's it!
FROGGS_ muraiki: is there a linker error/warning?
J-L: what does this give you before doing the nativecast? say $mode
J-L FROGGS_: It says: (OpaquePointer) 21:56
FROGGS_ J-L: ahh, please do this and try again: my OpaquePointer $mode.=new; GetConsoleMode($handle, $mode); say $mode 21:57
muraiki FROGGS_: bah, I don't have libperl-dev but I also can't install it on my machine as we have a slightly older version of perl than required, and the perl+libperl packages are marked as held. this isn't really something I can change, unfortunately 21:58
I don't suppose I could do this somehow via perlbrew?
FROGGS_ :o(
muraiki: I am the wrong person to ask
muraiki thanks anyways :) someday I'll get Inline::Perl5 working on my dev machine... at least it's not that ancient freebsd one I used to have!
J-L FROGGS_: Now it says: OpaquePointer<NULL> 21:59
FROGGS_ J-L: okay, I know what we have to do for rakudo-2015.02: my CArray[int32] $mode.=new; $mode[0] = 0; GetConsoleMode($handle, $mode); say $mode[0] 22:00
J-L: and change the sub declaration to have CArray as second parameter type
muraiki FROGGS_: oh wait, I'm a sysadmin noob: I do have libperl-dev installed, albeit one version older than what is currently available in the ubuntu repos. the version I have is 5.14.2-6ubuntu2.2
FROGGS_ muraiki: I believe that will do 22:01
22:01 flussence left
muraiki hrm 22:01
yeah, I don't see any errors making p5helper.so, only warnings 22:02
masak 'night, #perl6
muraiki night
J-L FROGGS_: That... seemed to work. Is the need to use CArray a bug, or is it supposed to be done that way?
22:02 skids left
FROGGS_ J-L: it was the only way to achieve what you are doing a few weeks ago... 22:03
J-L So I need to use CArray because it's an output variable? 22:04
FROGGS_ J-L: jnthn++ has done a lot of stuff to support 'int32 is rw' directly, but that landed right after releasing 2015.02 (because it is usually too risky to merge big changes right before a release)
J-L: you're using a CArray because that gives you a pointer to a thing (its slot), and the slot is allowed to be modified 22:05
jnthn The CArray trick has been the normal way for quite a while
J-L FROGGS_ and jnthn: So seeing that the CArray trick works, will it continue to work in future releases? 22:06
jnthn J-L: Yes, because that's the way C works :) 22:07
An array of 1 thing is the same as a pointer to a thing.
There's just be a neater way to do it in the future too.
J-L FROGGS_ and jnthn: Good. So the "sub GetConsoleMode(OpaquePointer, CArray)" declaration will soon be able to change to "sub GetConsoleMode(OpaquePointer, int32 is rw)", correct? 22:08
22:08 larion joined
nine_ muraiki: what arebthose warninfs? 22:08
FROGGS_ J-L: yes
J-L FROGGS_: Excellent. 22:09
22:09 kjs_ joined
muraiki nine_: gist.github.com/muraiki/b60867f48eebd05260e5 22:09
FROGGS_ J-L: sub GetConsoleMode(Pointer, Pointer[int32]) might also work (then)
22:09 espadrine joined
nine_ muraiki: oh yes, looks like too old perl 22:10
muraiki T_T
5.14.2
nine_ muraiki: I probably should invest some time to support those
muraiki doh, I was hoping to get a newer version on my new dev VM... but I think before I had 5.10 or something, so this is somewhat better :) 22:11
nine_: if I perlbrew a newer version will that work? or will it conflict with my older libperl-dev?
22:11 eli-se left
nine_ muraiki: though I find it kind of strange that someine can install some bleeding edge Perl 6 but no recent Perl 5 ;) 22:11
muraiki: perlbrew should be safe 22:12
muraiki heh, our codebase runs on some old perl versions in production, so I think this is the newest version my boss felt safe using
I'll try perlbrew, thanks!
nine_ muraiki: just follow the Inline::Perl5 README
J-L FROGGS_ and jnthn: Now, if I can figure out how to poll STDIN to see if there's input waiting, I can implement non-blocking reads very easily. There was a sort-of way already given that used Channel, but I'm wondering if there's a more direct way.
nine_ muraiki: and tell me what's miasing in the docs :) 22:13
ab5tract is there a method similar to at_pos which allows a class to define a custom bind behavior?
muraiki nine_: no problem, thanks
nine_ good night all!
jnthn ab5tract: bind_pos
J-L FROGGS_: I tried: sub GetConsoleMode(OpaquePointer, Pointer[int32]) returns int8 is native('Kernel32') is nativeconv('stdcall') { * } 22:14
...and I got this compiler error: Invalid typename 'Pointer' in parameter declaration.
FROGGS_ J-L: that also happened right after 2015.02
J-L Ah. 22:15
ab5tract i'm thinking here of something that would allow a class to log any rhs assignments to the bound variable through any of its binds
22:15 MadcapJake joined
ab5tract log just being a for instance, filtering based on rhs value could be another 22:18
raydiak could also achieve that with a Proxy, I expect
ab5tract so it would be a method you define on the bound object's class
raydiak: ah, thanks, i will look at that. 22:19
22:19 flussence joined
raydiak ab5tract: github.com/raydiak/Inline-Lua/blob...t.pm6#L139 22:19
Ulti suspects he is too stupid to create a slang 22:21
22:22 zoosha left
Ulti I've got to the point where the compiler just complains it was expecting prefix or term... and I've defined ` ` as a quote which is a value which is a term 22:22
raydiak speaking of bind_pos, I was wondering if I should be using it instead of the thing I just linked, which seems to make binding and slice assignment work as-is 22:24
ab5tract raydiak: quite interesting 22:25
raydiak also was wondering why I had to return a proxy from at_key to get slice assignment to work, when I already had assign_key defined, seems like it ought to just do multiple calls to assign_key 22:26
but I just wrote all the write access for lua tables last night with deteriorating clarity of thought as it got later, so...keep that in mind but it does seem to be a working model (need to write tests copied from the bash history) 22:27
J-L FROGGS_ and jnthn: Thanks to your help, I am able to implement non-echoing keyboard input on Windows (using NativeCall with "Kernel32"). Is there a possibility that I could submit my work into a (portable) module that allows non-echoing keyboard input into the Standard build of Perl6? 22:33
dalek kudo/nom: bbe6949 | jnthn++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp:
Share role curries use 6model parametrics.

This means that Positional[Int] will always lead to the same type object (or at least, will once the pre-comp bits of 6model parametrics are also implemented). This resolves various errors like "expected Array[Str] but got Array[Str]".
22:34
jnthn J-L: There's not a "standard build" as such, but certainly you can add it to the module eocysystem then ask if it can be included in Rakudo Star (which is the thing you downloaded the MSI of) 22:35
22:36 laouji joined
Ulti could someone take a look at this and see where I'm being stupid? gist.github.com/MattOates/54d5a294798e1aa7b3ac 22:36
J-L jnthn: I've never heard of eocysystem. What is it? 22:37
(I googled 'eocysystem', and I just got links to 'ecosystem'.
Maybe you meant 'ecosystem'?) 22:38
raydiak Ulti: it looks like you are passing your actions to .parse as a positional instead of a named 22:39
Ulti actions =>
!!!
thanks raydiak
wow got all the slang part right -___- but missed that 22:40
raydiak :)
Ulti YAY
it works!!!
that is cool
raydiak \o/
22:41 laouji left
Ulti its kind of nice you can just browse through the Rakudo grammar and pick and choose what you want to hack into 22:41
FROGGS_ J-L: that is the "ecosystem": modules.perl6.org/ 22:42
Ulti hah awesome it even comes up with my compiler panic message >:3
wait! I can have compile time sequence validation
raydiak is looking forward to adding a few optional syntax extensions to Inline::Lua eventually for things like lua blocks and function definitions and direct method dispatch 22:46
dalek ast: 801ec1e | jnthn++ | S09-typed-arrays/arrays.t:
Correct a couple of tests; Int !~~ Num.
22:47
ast: b421638 | jnthn++ | S09-typed-arrays/arrays.t:
Test for RT#66892.
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=66892
J-L Say, I'm running: perl6 -e "say $_ for lines" 22:48
How do I give an EOT signal?
On Perl5, I would type CTRL-Z and hit return.
(I'm on Windows, by the way.)
ab5tract J-L: the Kernel32 gave you away :) 22:49
I'm not sure about the EOT signal though
raydiak J-L: that's a function of your shell, not perl itself, so it should work the same (even if you did the equivalent in an entirely different laguage) 22:50
ab5tract By ecosystem, I believe jnthn meant "those libraries which can be installed with panda"
raydiak any time you're on windows using cmd.exe, ^Z ought to do it...on *nix it's ^D btw
jnthn ab5tract: Yes :) 22:51
J-L: modules.perl6.org/
ab5tract speaking of which.. i have something to contribute along those lines :D
github.com/ab5tract/Terminal-Print
it's nowhere near finished, but i feel like it's about time it gets live 22:53
J-L raydiak: I don't think it's entirely a function of my shell. When I dabbled with ruby, I had to hit CTRL-break instead of CTRL-C. When I run perl -e "while (<>) { print }" in Perl5, CTRL-Z and ENTER exit just fine.
raydiak nice...ab5tract++
ab5tract raydiak: have you run show-love.6 yet? :) 22:55
*p6
jnthn: how do i go about getting Terminal::Print into the ecosystem, so to speak 22:56
22:56 kjs_ left
timotimo Copryright? :) 22:56
avuserow hmm, some of the caller/outer work appears to have given me a way forward with Log::Simple and routing based on the caller's package. (whoever did this)++
raydiak J-L: you're confusing signal handling, which is what happens with ^C and ^break, with inputting an eof character
ab5tract: not yet, but I'll check it out in a few minutes :) reminds me a lot of the preview output in Pray on the surface of it though 22:57
22:58 virtualsue joined
avuserow ab5tract: adding something to the ecosystem, see doc.perl6.org/language/modules 22:58
ab5tract raydiak: that reminds me that i've been looking forward to looking deeper into pray
22:58 zoosha joined, zoosha left 22:59 zoosha joined
avuserow ab5tract: in short, write a META.info, then send a PR to add that location to github.com/perl6/ecosystem/blob/ma.../META.list 22:59
23:00 tgt left
raydiak ab5tract: sweet :) I haven't worked on it much in a while, but iirc I was trying to keep it pretty internally sane; let me know what you think 23:01
J-L raydiak: Ok, so one's ^C and one's ^D (or ^Z+ENTER), but nevertheless ^Z+ENTER works with my Perl5 but not with my Perl6.
When I type "lines" in my perl6 REPL instance, I can't get out. Not even CTRL-C works. 23:04
ab5tract J-L: are you using cmd.exe or powershell?
J-L Meanwhile on Perl5, if I start the debugger with "perl -wde 1" and type: @a = <>; I can get out with CTRL-Z and ENTER. 23:05
I'm using cmd.exe .
raydiak J-L: heh quite right, ^Z doesn't work...^C worked for me to kill it, though I was using -e instead of the repl
23:05 virtualsue_ joined
ab5tract it sounds like perl6 is not tuning into the escape sequence 23:05
23:05 virtualsue left, virtualsue_ is now known as virtualsue
ab5tract which sounds like it might be a problem with liblinenoise 23:05
raydiak is that what moar uses for console i/o on windows? 23:06
jnthn liblinenoise seems to make things worse on Windows than without it :/ 23:07
J-L Someone earlier gave me this code to check to poll for input on STDIN: my $queue = Channel.new; my $in = start { $queue.send($_) for lines; True }; while $in.status === Planned { my $l = $queue.poll; say $l // "idle"; sleep 0.01 };
I'm still trying to figure it out.
It makes a Promise object, but shouldn't "for lines" never return? 23:08
raydiak apparently EOF doesn't exist on windows terminals and ^Z (the Substitute character) is just a common convention...???...
Ulti "Cannot find method 'orig'" ring a bell with anyone? 23:09
J-L raydiak: Yes. ^Z (plus ENTER) is the standard way to signal EOT on MS-DOS and Windows systems. At least, I think that's the case.
The line $queue.send($_) for lines; would never terminate, right? So the promise that runs it would never end, correct? 23:10
dalek kudo/nom: f19a9a9 | TimToady++ | src/Perl6/Actions.nqp:
catch null regex_def if it gets to Actions
23:12 diana_olhovik_ joined
dalek c: b3a4cdc | FROGGS++ | lib/Language/nativecall.pod:
add documentation for NativeCall

This is an extended version of zavolaj's README. Three TODO sections were added which will be filled shortly.
23:12
ab5tract avuserow: thank you :)
hoelzro FROGGS_++ 23:13
ab5tract FROGGS_++ !
23:13 gfldex left
FROGGS_ it should appear here anytime soon: doc.perl6.org/language.html 23:13
and I'll extend it in the next days
ab5tract jnthn: i was curious about the linenoise choice myself. readline is a bit of a beast, as i understand it, so i wasn't too surprised 23:14
FROGGS_ but for all star users: types pointers and such are not included in 2015.02 but are available via rakudo head+panda (using rakudobrew for example), or by waiting for 2015.03
ab5tract to see that you had gone with something else. but the pickings seem pretty slim, so i wondered what stood out about linenoise 23:16
raydiak J-L: yeah it looks like we have some bug in how we handle ^Z on the windows console, since, as I'm reading, handling that is the voluntary reponsibility of the program itself under windows 23:18
23:18 donaldh joined
J-L Ah, Windows, why must you be so different than your Unix brethren? 23:19
jnthn ab5tract: There is an option to build with libreadline also, I think
ab5tract: As for linenoise, not sure, was suggested by somebody else :)
ab5tract ah, i didn't realize that
23:20 mohij left
ab5tract jnthn: at what layer would one hack one the repl, at the moment? 23:20
FROGGS_ the problem with readline was that we cannot rely on it being available on the system and that we cannot ship it due to license reasons... 23:21
ab5tract is it vm-implementation level, nqp op level, etc
FROGGS_ and linenoise is quite tiny (a thousand loc IIRC)
ab5tract: as a module in Perl 6 as a proof of concept, and then it wants porting to nqp 23:22
23:23 zby_home left
ab5tract FROGGS_: so you mean start from scratch in Perl 6, and work backwards once the design is finalized? 23:23
23:23 Foxcool left
FROGGS_ J-L / ab5tract: enjoy: doc.perl6.org/language/nativecall 23:23
23:23 cognominal joined
FROGGS_ ab5tract: yes 23:23
ab5tract hmmm... that sounds fun :) 23:24
23:24 dolmen left
FROGGS_ ab5tract: fast prototyping makes sense here 23:24
gnight #perl6
ab5tract gnight FROGGS_ !
donaldh $*VM.^methods.say 23:27
r: $*VM.^methods.say
camelia rakudo-moar bbe694: OUTPUT«BUILD Str gist <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon>␤»
ab5tract i'm also going to head to sleep 23:28
\o #perl6 23:29
23:29 gfldex joined 23:34 coffee` left 23:35 zby_home joined, zby_home left
J-L I'm trying to learn how the Promise class works. The above example that uses it doesn't seem to work for me. 23:37
timotimo what above example? 23:39
J-L The above example was: my $queue = Channel.new; my $in = start { $queue.send($_) for lines; True }; while $in.status === Planned { my $l = $queue.poll; say $l // "idle"; sleep 0.01 }; 23:44
jnthn TimToady: On native arrays: which of the methods you expect to find on Array can you expect to have on array? "Just about all of them" is a fine enough answer, and the one I'm kinda expecting. 23:46
TimToady: Follow up question: what type do we expect .sort, .grep, .map, etc. to give back?
TimToady: (I'm going with array (lowercase) as the type for native arrays, though it'll only be meaningful parameterized with a native e.g. array[int], similar to how we discussed at some point) 23:47
TimToady: One reason the type question is a little interesting: native arrays aren't lazy. .map at so forth usually is. We can easily make map not be. But .pick(*) and .roll(*) are actually infinite, so we couldn't meaningfully do those non-lazy... 23:48
s/at so forth/and so forth/
I'm going to get some rest now, so can wait for answers :) 23:49
dalek kudo/nom: 2f7d46b | jnthn++ | src/Perl6/Metamodel/MetaMethodContainer.nqp:
Fix "method ^foo(...) { ... }" serialization issue
timotimo neato 23:50
jnthn (Yes, the stuff tonight is clearing blockers and starting to sketch out native array stuff.)
23:51 Ben_Goldberg joined
raydiak ++jnthn++ 23:51
23:51 wicope left
timotimo cheers 23:51
23:52 gfldex left
timotimo and i really want to have sized arrays for inside CStruct :S 23:52
23:52 skids joined
jnthn Everyone always wants all the things /o\ 23:54
jnthn gets some rest... 23:55
'night o/
raydiak \o 23:56
timotimo gnite jnthn 23:57
23:58 spider-mario left 23:59 donaldh left