Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-01-05

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:05 rmgk joined #perl6
00:06 hoelzro jnthn: how does one do async I/O? and which problem of mine are you referring to; the socket creation in a separate thread thing, or the simultaneous read + write from different threads thing?
00:21 FROGGS joined #perl6
00:23 adu raydiak: I think I found a bug
00:24 adu I'm trying to parse "typedef union { char __mbstate8[128]; } __mbstate_t;"
00:26 Timbus hoelzro, i currently have MoarVM's syncsocket.c open, and im trying to add in a more complete/robust set of socket operations. so I guess I should ask what bug you've found
00:28 adu and it seems that <ident> is matching "__mbsta" in "__mbstate8"
00:28 Timbus one thing i instantly found was that potential connections will get instantly dropped, due to having a listen count of 1
00:28 Timbus but that's probably not too common unless you're connecting a lot of clients
00:40 japhb That listen count should be settable, of course.
00:42 anaeem1 joined #perl6
00:46 FROGGS joined #perl6
00:54 ssutch joined #perl6
01:00 dayangkun joined #perl6
01:34 Mouq joined #perl6
01:35 hoelzro Timbus: I found a bug where a read occurring during the run of thread A on a socket that was created during the run of thread B will always be a 0 byte read
01:35 hoelzro https://github.com/MoarVM/MoarVM/issues/165
01:35 hoelzro and I also discovered behavior that you may not write to a socket in a thread while another thread is issuing a blocking read on that same socket
01:41 Timbus yeesh thats a tough one to think about
02:00 jack_rabbit joined #perl6
02:13 kaare__ joined #perl6
02:19 KCL joined #perl6
02:23 rmgk_ joined #perl6
02:30 yeahnoob joined #perl6
02:30 tinyblak joined #perl6
02:33 chenryn joined #perl6
02:38 adu why am I getting "Could not find HLL::Actions"?
02:45 Mouq joined #perl6
02:45 hoelzro indeed =/
02:46 Ven timotimo: hope you're watching AGDQ :P
02:51 bcode joined #perl6
03:08 Ven .tell masak for no reason, if you want to see the code of CL::LOOP (in SICL), he it is: https://github.com/robert-strandh/SICL/tree/master/Code/Loop currently 4.5k lines, to be ~6k when finished
03:08 yoleaux Ven: I'll pass your message to masak.
03:23 colomon joined #perl6
03:25 xinming_ joined #perl6
03:33 FROGGS joined #perl6
03:37 noganex joined #perl6
03:44 colomon joined #perl6
04:02 colomon joined #perl6
04:21 Mouq joined #perl6
04:29 kaleem joined #perl6
04:45 tinyblak joined #perl6
04:51 tinyblak joined #perl6
04:52 chenryn joined #perl6
05:15 dalek nqp: e4bd2c9 | (Geoffrey Broadwell)++ | t/concurrency/02-lock.t:
05:15 dalek nqp: Add more lock/condvar tests for condsignalall
05:15 dalek nqp: review: https://github.com/perl6/nqp/commit/e4bd2c9b66
05:15 dalek nqp: bc71f08 | (Geoffrey Broadwell)++ | t/concurrency/TODO:
05:15 dalek nqp: Update t/concurrency/TODO
05:15 dalek nqp: review: https://github.com/perl6/nqp/commit/bc71f08963
05:18 dalek nqp: 806f945 | (Geoffrey Broadwell)++ | t/concurrency/02-lock.t:
05:18 dalek nqp: Add comment noting nqp-j failure in condsignalall tests
05:18 dalek nqp: review: https://github.com/perl6/nqp/commit/806f94520d
05:21 tinyblak_ joined #perl6
05:27 ssutch joined #perl6
05:27 adu is there a list of all nqp operations?
05:35 adu https://github.com/perl6/nqp/blob/master/docs/ops.markdown
05:35 adu found it
05:46 tinyblak joined #perl6
05:46 tinyblak_ joined #perl6
05:58 raydiak \o adu, how went the battle today?
05:58 adu hmm
05:58 adu mostly reading up on stuff
05:59 adu I also found a source that should parse, but fails
05:59 adu 'typedef union { char __mbstate8[128]; } __mbstate_t;'
05:59 raydiak was grammar::tracer any help?
06:00 adu raydiak: yes
06:00 adu struct-or-union-specifier:sym<decl> should be matching, but it isn't
06:01 adu but it's really bizarre
06:01 adu 'char __mbstate8[128];' matches
06:01 adu 'typedef union { char x; } __mbstate_t;'
06:01 adu also matches
06:01 adu but for some reason both combined fails
06:02 raydiak hmmm looking
06:03 adu I'm wondering if using || instead of proto would fix it
06:07 adu raydiak: also, I added GNU attributes to the Grammar, but not the AST
06:07 raydiak oh sweet, so that thing I tried before might work for the parsnig part now
06:08 adu that was the idea :)
06:08 raydiak thanks :)  will let you know how far it gets
06:17 raydiak ah ha....thought I was losing my mind...cdump is broken for piping :)
06:17 raydiak if you remove the "/dev/stdin" part it works
06:18 raydiak also bad for portability...you can say $*IN if you want, but slurp() by itself works on stdin by default
06:19 adu oh
06:20 adu raydiak: $*IN complains that the first argument to slurp is not a filepath
06:21 raydiak $*IN.slurp should work
06:21 adu what? where is all of this documented?
06:22 raydiak http://design.perl6.org/S32/IO.html mostly
06:22 raydiak buuut...looks like $*IN.slurp is deprecated in favor of $*IN.slurp-rest in recent rakudo
06:23 adu aha
06:23 raydiak which doesn't seem to be documented yet, that I can find
06:23 adu but then why does it still fail when I put that first example into C::Parser::StdC11Parser.parse()?
06:24 raydiak no that was my own problem b/c I was trying to "echo '...' | bin/cdump.pl6" and couldn't figure out why even the simplest things didn't work :)
06:25 adu ah
06:25 raydiak I'm still looking at yours, now I can try it out and see what you're seeing
06:25 adu I usually do bin/cdump.pl6 -
06:26 raydiak defaults to the - anyway though, right?
06:26 adu yes
06:29 raydiak heh that's a long trace
06:36 adu This is what I get: https://gist.github.com/andydude/1bde60efbe93ea8af4e9
06:43 adu oh crap
06:43 adu it is a bug in my code
06:43 raydiak that's good news :)
06:43 adu I just had to think about it
06:46 adu OK, so the only way I've been able to make it work so far is to distinguish between <ident>'s that are types, and non-types, so whenever the grammar processes a "typedef" statement it turns on a bit, and records the name in a global hash for later. When processing the declaration specifiers for "__mbstate8", it incorrectly considered "__mbstate8" to be a type <ident> because the typedef bit was ON, but it should have considered "__mbstate8" to
06:46 adu non-type
06:48 adu so there's two overlapping issues, (1) how to distinguish between type and non-type <ident>s, and (2) how to get the <ident> being defined if there is not typedef bit to depend on
06:54 raydiak hm I'm going to have to look at it fresh tomorrow, but this global stuff is only going to cause you pain I think
06:55 adu raydiak: https://github.com/andydude/p6-c-parser/commit/18f1ddad53234863f378ebeac58bacef795bfdb2
06:55 adu fixed
06:55 Mouq joined #perl6
06:56 adu hi Mouq
06:58 raydiak nice
06:59 moritz \o
06:59 raydiak you've been putting a lot of effort into this adu++
06:59 raydiak o/ moritz
06:59 adu raydiak: thanks :)
07:00 raydiak you're welcome :)
07:03 psch joined #perl6
07:03 adu raydiak: also, did you see the tests are passing?
07:04 psch hi #perl6 \o
07:04 raydiak adu: I did! I installed it via panda and everything earlier
07:09 KCL_ joined #perl6
07:09 kaleem joined #perl6
07:10 psch raydiak: re the jvm build failure: it's missing an NQP version bump.  apparently i forgot to mention that to FROGGS yesterday when he merge my interop patch
07:11 psch raydiak: which means building jvm currently only works with NQP master HEAD
07:12 raydiak ah got it, thanks psch++
07:14 psch fwiw, the fix for bootstrapping panda is also only available with an NQP bump... :)
07:25 anaeem1_ joined #perl6
07:32 Rounin joined #perl6
07:33 xfix joined #perl6
07:34 kurahaupo1 joined #perl6
07:39 sirdancealot joined #perl6
07:48 virtualsue joined #perl6
07:49 FROGGS joined #perl6
07:50 raydiak adu: 'typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t;' fails
07:52 adu raydiak: that's because of what I said earlier, try 'typedef int __off_t; typedef int __mbstate_t; typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t;'
07:53 raydiak ah right
07:54 adu maybe I should make it smarter
07:55 adu or stupider
07:57 raydiak what about 'extern int getc (FILE *__stream);'
07:58 [Sno] joined #perl6
07:59 tinyblak joined #perl6
08:01 tinyblak_ joined #perl6
08:01 denis_boyun_ joined #perl6
08:02 adu raydiak: hmm
08:02 zakharyas joined #perl6
08:04 raydiak adu: here is what I am using to hammer on it and shake the loose stuff out: https://gist.github.com/raydiak/e268376b2cb6280ad7d3
08:06 adu ah
08:06 adu that is interesting
08:06 tinyblak joined #perl6
08:08 raydiak figured once all that works, can try the whole file at once without the hand-done whitespace cleanup, and once that works...try another file
08:10 ssutch joined #perl6
08:11 adu raydiak: the main problem is that there are so many places in the C grammar that look like <ident>+ <ident>, but they're never in the same rule, so the rule always tries to maximize the first repetition
08:11 raydiak I see what you mean
08:12 adu what I really should be doing is 2 levels of ASTs
08:12 adu C::AST::Syntax, and C::AST::Semantics
08:12 tinyblak_ joined #perl6
08:12 adu and use the C::AST::Semantics to obtain the name and type objects
08:13 adu I wonder if the MARKER, MARKED methods would help
08:13 darutoko joined #perl6
08:14 raydiak if you ask around during the busier times, you'll probably get some useful advice
08:14 krunen joined #perl6
08:16 FROGGS adu: v5 has MARKER, MARKED and EXPR (ported from nqp)
08:16 raydiak grammars aren't really my strong suit in p6 tbh, still figuring it out myself...was quite proficient with p5 regexes, but that was a long time ago
08:16 adu FROGGS: but I don't know how to use them
08:16 adu or what they mean
08:17 adu FROGGS: do you mean perl5?
08:17 FROGGS adu: no, v5
08:18 adu what is v5?
08:18 FROGGS you can annotate a position in your source with a tag (MARKER) and later check if it was annotated (MARKED)
08:18 FROGGS https://github.com/rakudo-p5/v5
08:19 FROGGS https://github.com/rakudo-p5/v5/blob/master/src/Perl5/Grammar.pm#L852
08:19 adu oh, so it is perl5 related
08:19 FROGGS it is used here: https://github.com/rakudo-p5/v5/blob/master/src/Perl5/Grammar.pm#L962
08:19 adu I don't know anything about perl5, so I'm not sure that helps
08:19 denis_boyun_ joined #perl6
08:19 FROGGS adu: v5 is a Perl 5 grammar/interpreter (slang) written as a Perl 6 module
08:22 adu I bet it would be pretty easy to make a scheme slang
08:24 * moritz dares adu to try
08:24 moritz &w 6
08:25 moritz sorry, garbled irrsi command
08:25 adu one thing at a time
08:35 pdcawley joined #perl6
08:35 fhelmberger joined #perl6
08:42 telex joined #perl6
08:43 arnsholt o/
08:44 arnsholt adu: Actually, a modern Lisp can quickly get complicated, due to circularity things
08:44 dalek nqp: 3933e32 | jnthn++ | / (2 files):
08:44 dalek nqp: Implement missing falsey(num) for MoarVM backend.
08:44 dalek nqp:
08:44 dalek nqp: Closes #194.
08:44 dalek nqp: review: https://github.com/perl6/nqp/commit/3933e3250b
08:45 adu arnsholt: I'm aware. I wrote a scheme before
08:46 arnsholt Ah, cool. It's just a common misconception that since the surface syntax is (seemingly) simple, it's straightforward to implement a Lisp =)
08:46 arnsholt Although CL is even harder than Scheme, I think
08:55 adu I'm not a fan of CL
09:00 raydiak oh I'll bet someone is around now who can bump nqp to fix r-j build fail :)
09:01 * moritz might manage that :-)
09:01 dalek nqp: d9b2c03 | jnthn++ | / (2 files):
09:01 dalek nqp: Make nqp::splice have a result on Moar.
09:01 dalek nqp:
09:01 dalek nqp: This brings it in line with JVM and Parrot. Closes #216.
09:01 dalek nqp: review: https://github.com/perl6/nqp/commit/d9b2c03496
09:01 dalek nqp: f5889af | jnthn++ | tools/build/MOAR_REVISION:
09:01 dalek nqp: Get Moar with ReentrantMutex fix.
09:01 dalek nqp: review: https://github.com/perl6/nqp/commit/f5889afe79
09:02 jnthn Heh, I was about to do it
09:02 jnthn Was just getting the Moar bump in first. :)
09:02 jnthn moritz: Do you want to, or shall I? :)
09:02 moritz jnthn: you do it
09:02 jnthn k
09:02 moritz jnthn: I was just wondering if I should wait for more fixes from you :-)
09:02 jnthn I found a few spare moemnts to pick off a couple of small things :0
09:02 jnthn Well, the ones here are NQP bug reports rather than NQP things affecting Rakudo.
09:03 tinyblak joined #perl6
09:04 kjs_ joined #perl6
09:14 ssutch joined #perl6
09:14 dalek rakudo/nom: a2e24a3 | jnthn++ | tools/build/NQP_REVISION:
09:14 dalek rakudo/nom: Bump NQP_REVISION for Moar, JVM improvements.
09:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a2e24a370a
09:18 azawawi joined #perl6
09:19 molaf__ joined #perl6
09:22 azawawi hi
09:22 azawawi tony-o: ping
09:24 azawawi .tell tony-o https://github.com/tony-o/perl6-http-server-async/issues/7 is very strange since a sleep with non-zero value seems to break the implementation of .recv
09:24 yoleaux azawawi: I'll pass your message to tony-o.
09:26 adu I think I fixed the typedefs for good
09:27 raydiak \o/
09:28 dalek roast: 0aee8d1 | jnthn++ | S12-attributes/class.t:
09:28 dalek roast: Toss now-invalid method ^foo() { } tests.
09:28 dalek roast:
09:28 dalek roast: New tests will be written to cover the currently spec'd meaning.
09:28 dalek roast: review: https://github.com/perl6/roast/commit/0aee8d1ce7
09:31 dalek roast: d3ec728 | jnthn++ | S05-metasyntax/longest-alternative.t:
09:31 dalek roast: Make test robust in the face of Windows newlines.
09:31 dalek roast: review: https://github.com/perl6/roast/commit/d3ec728b1b
09:34 virtualsue joined #perl6
09:37 raydiak yay r-j builds and works again including actually using it with panda and everything
09:37 rurban joined #perl6
09:37 moritz \o/
09:38 psch \o/
09:39 raydiak having hack to test things on is really, super-handy...I wouldn't have even tried to run pray on jvm any time soon if I had to compile it on my own machine again
09:39 psch raydiak: ooc, what's jvm stage parse hack?
09:39 psch +on
09:40 psch as in, how long... :)
09:40 raydiak 65
09:40 raydiak had to scroll back up and find it
09:40 psch wow
09:40 psch i'm between 90 and 160 depending on other processes on my machine... maybe i actually should bug moritz about a login... :)
09:41 raydiak it ran pray about 3x faster than my laptop in 1 quick test
09:46 raydiak oh and psch++ again b/c going to bed without remembering to file the bug and waking up to it being fixed is pretty neat :)
09:47 jnthn Away prolly until evening &
09:47 raydiak \o jnthn
09:50 moritz psch: what username do you want?
09:50 JimmyZ m: my $spot is Scalar;
09:50 camelia rakudo-moar 80b912: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/7KqDhtmPN2â�¤Variable trait 'is TypeObject' not yet implemented. Sorry. â�¤at /tmp/7KqDhtmPN2:1â�¤------> [32mmy $spot is Scalar[33mâ��[31m;[0mâ�¤    expecting any of:â�¤        constraintâ�¤Â»
09:50 JimmyZ std: my $spot is Scalar;
09:50 camelia std f9b7f55: OUTPUT«ok 00:00 135m␤»
09:52 adu raydiak: my large test case is glib/gbytes.c
09:54 psch moritz: psch is fine, unless that's taken somehow... :)
09:56 moritz psch: account added, see privmsg
09:57 psch moritz: yup, i noticed, thanks again :)
10:01 psch_ joined #perl6
10:03 masak good antenoon, #perl6
10:03 yoleaux 03:08Z <Ven> masak: for no reason, if you want to see the code of CL::LOOP (in SICL), he it is: https://github.com/robert-strandh/SICL/tree/master/Code/Loop currently 4.5k lines, to be ~6k when finished
10:03 masak ai ya.
10:04 tinyblak joined #perl6
10:04 moritz good UGT, masak :-)
10:04 psch o/ masak
10:07 masak m: $_ = "Das ist gut."; s[(g)(u)(t)] = "$1$0$2".uc; .say
10:07 camelia rakudo-moar 80b912: OUTPUT«Das ist UGT.␤»
10:09 chenryn joined #perl6
10:09 masak m: my @a = <g u t>; @a = @a[1, 0, 2]; say "Das ist @a.join.uc()."
10:09 camelia rakudo-moar 80b912: OUTPUT«Das ist UGT.␤»
10:09 masak m: my @a = <g u t>; @a.=[1, 0, 2]; say "Das ist @a.join.uc()."
10:09 camelia rakudo-moar 80b912: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/jvBhxO6S_w�Cannot use .= on a non-identifier method call�at /tmp/jvBhxO6S_w:1�------> [32mmy @a = <g u t>; @a.=[1, 0, 2][33m�[31m; say "Das ist @a.join.uc()."[0m�»
10:09 * masak is still a little sad that the above doesn't work
10:09 masak m: my @a = <g u t>; @a .= [1, 0, 2]; say "Das ist @a.join.uc()."
10:09 camelia rakudo-moar 80b912: OUTPUT«No such method '&postcircumfix:<[ ]>' for invocant of type 'Array'␤  in method dispatch:<.=> at src/gen/m-CORE.setting:1322␤  in block <unit> at /tmp/ahQaG7FWrW:1␤␤»
10:10 masak and that one looks like an implementation fossil of some sort.
10:11 moritz not really
10:11 moritz it feels more like a language inconsistency
10:11 moritz . is really for methods
10:12 moritz and yet we continue to allow it in some places for postcircumfix [ ], even though it has been morphed into a sub
10:12 moritz but not in all places
10:15 ssutch joined #perl6
10:15 virtualsue joined #perl6
10:18 raydiak g'night #perl6
10:19 moritz good night raydiak
10:23 tinyblak joined #perl6
10:27 dalek rakudo/nom: 804be33 | usev6++ | src/core/Any.pm:
10:27 dalek rakudo/nom: Replace junctions with short-circuit inclusive-or
10:27 dalek rakudo/nom: makes some lookups of array and hash subscripts with adverbs faster
10:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/804be33c1d
10:27 dalek rakudo/nom: 0769d41 | lizmat++ | src/core/Any.pm:
10:27 dalek rakudo/nom: Merge pull request #345 from usev6/nom
10:27 dalek rakudo/nom:
10:28 dalek rakudo/nom: Replace junctions with short-circuit inclusive-or
10:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0769d41ca0
10:28 konsolebox joined #perl6
10:29 TuxCM joined #perl6
10:30 chunkykink joined #perl6
10:32 tinyblak joined #perl6
10:34 psch gah, found a stupid bug in the jvm-interop
10:35 psch apparently i forgot to check if the java method actually returns something, and now void methods NPE
10:35 denis_boyun joined #perl6
10:35 arnsholt psch: At least those bugs are pretty easy to fix =)
10:37 psch arnsholt: i think so, yeah.  returning gcx.Nil when in == null in filterReturnMethodValue should be enough.  although i'm not sure if i have to instantiate Nil...
10:45 arnsholt In those cases, grepping around for other uses of the thing in question is usually fruitful. jnthn++'s Java code is generally very simple to follow, thankfully
10:47 dalek roast: 27e50a6 | lizmat++ | S22-package-format/local.t:
10:47 dalek roast: Unfudge now passing precomp test, jnthn++
10:47 dalek roast: review: https://github.com/perl6/roast/commit/27e50a6cb6
10:54 yeahnoob joined #perl6
10:54 psch from the looks of it straight returning gcx.Nil is ok
10:55 dalek rakudo/nom: 1b769df | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:
10:55 dalek rakudo/nom: Check if we actually got a return value from the Java method.
10:55 dalek rakudo/nom:
10:55 dalek rakudo/nom: This fixes shortname candidates that return void throwing a NullPointerException.
10:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1b769dfc67
10:55 dalek rakudo/nom: eed5d33 | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:
10:55 dalek rakudo/nom: Merge pull request #346 from peschwa/jvminterop
10:55 dalek rakudo/nom:
10:55 dalek rakudo/nom: Check if we actually got a return value from the Java method.
10:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/eed5d33893
11:05 bjz joined #perl6
11:05 donaldh joined #perl6
11:12 dalek rakudo/nom: 66ce535 | donaldh++ | tools/build/create-jvm-runner.pl:
11:12 dalek rakudo/nom: Disable bytecode verification to improve JVM startup.
11:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/66ce535342
11:12 dalek rakudo/nom: 1c8c8fc | FROGGS++ | tools/build/create-jvm-runner.pl:
11:12 dalek rakudo/nom: Merge pull request #347 from donaldh/jvm-noverify
11:12 dalek rakudo/nom:
11:12 dalek rakudo/nom: Disable bytecode verification on JVM to improve perl6 startup.
11:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1c8c8fc282
11:13 donaldh oooh, thanks FROGGS++
11:13 yoleaux 4 Oct 2014 14:20Z <[Coke]> donaldh: if I can "donaldh/perl6-eclipse-plugin for dummies README"
11:13 yoleaux 4 Oct 2014 14:20Z <[Coke]> donaldh: (that is, if I can -have- one, not make one)
11:15 ssutch joined #perl6
11:16 FROGGS donaldh: did you measure the startup improvement?
11:16 donaldh before: ./perl6 -e 'say "hi"'  11.68s user 0.42s system 194% cpu 6.222 total
11:17 donaldh after: ./perl6 -e 'say "hi"'  8.07s user 0.33s system 238% cpu 3.515 total
11:17 FROGGS ohh wow
11:17 FROGGS donaldh++
11:17 lizmat donaldh++ indeed
11:17 yoleaux 4 Jan 2015 18:03Z <nine> lizmat: I got it! One has to set an EXPORT object (like Metamodel::PackageHOW) _and_ an &EXPORT sub in WHO.
11:17 yoleaux 4 Jan 2015 19:38Z <jnthn> lizmat: while we can't serialize the lock state (held or not), serializing lock instances makes sense to me, I think.
11:17 yoleaux 4 Jan 2015 20:28Z <jnthn> lizmat: 7e95c05 in MoarVM should fix your reentrantmutex serialization woes.
11:18 lizmat jnthn++ nine++
11:18 lizmat donaldh: that will shave quite a bit from the JVM spectest in wallclock
11:18 * lizmat runs one before for comparison
11:18 donaldh when not using evalserver, yes.
11:19 lizmat I never managed to complete jvm spectest with evalserver
11:24 chenryn joined #perl6
11:28 kaleem joined #perl6
11:30 moritz does the standard "make j-spectest" use the evalserver right now?
11:31 moritz [Coke]: any chances we could get updates to https://github.com/coke/rakudo-star-daily/ ?
11:32 lizmat moritz: don't think so
11:33 lizmat I just do TEST_JOBS=1 make spectest and it works (slowly)
11:33 dalek Heuristic branch merge: pushed 22 commits to rakudo/newio by lizmat
11:36 sergot_ joined #perl6
11:36 dagurval_ joined #perl6
11:36 pmichaud joined #perl6
11:36 nebuchadnezzar joined #perl6
11:36 breinbaas joined #perl6
11:36 donaldh joined #perl6
11:37 yeahnoob joined #perl6
11:37 awwaiid joined #perl6
11:37 Sir_Ragnarok joined #perl6
11:38 avuserow_ joined #perl6
11:40 kaleem joined #perl6
11:41 moritz joined #perl6
11:42 ribasushi joined #perl6
11:47 bjz joined #perl6
11:47 tinyblak joined #perl6
11:48 tinyblak_ joined #perl6
11:51 breinbaas joined #perl6
11:51 dalek rakudo/newio: be0653f | lizmat++ | src/core/IOU.pm:
11:51 dalek rakudo/newio: We don't need shadowing for these methods
11:51 dalek rakudo/newio:
11:51 dalek rakudo/newio: They don't check the file system, and are therefore handled by IO::Locally
11:51 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/be0653f293
11:53 Ven joined #perl6
12:05 masak ok, #perl6. someone want to have a satisfyingly civil discussion about function decomposition?
12:06 dalek specs/newio: 7ce8759 | lizmat++ | S16-io.pod:
12:06 dalek specs/newio: Most of the IO::Locally changes for now
12:06 dalek specs/newio: review: https://github.com/perl6/specs/commit/7ce87591d4
12:06 lizmat .oO( let it rot? :-)
12:07 dalek Inline-Perl5: 28b966d | (Stefan Seifert)++ | / (3 files):
12:07 dalek Inline-Perl5: Create proxy functions for all functions in an imported P5 module.
12:07 dalek Inline-Perl5:
12:07 dalek Inline-Perl5: This allows for calling package functions using their fully qualified name:
12:07 dalek Inline-Perl5: use Test::More:from<Perl5>;
12:07 dalek Inline-Perl5: Test::More::ok(1);
12:07 dalek Inline-Perl5: Test::More::done_testing;
12:07 lizmat sorry, couldn't resist
12:07 dalek Inline-Perl5:
12:07 dalek Inline-Perl5: Method call syntax now does real package method calls:
12:07 dalek Inline-Perl5: use Data::Dumper:from<Perl5>;
12:07 dalek Inline-Perl5: Data::Dumper.Dump([1]);
12:07 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/28b966d638
12:07 nine Yes! Yes! Yes! Yes! Yes! :)
12:07 nine I just love how this all comes together :)
12:07 moritz nine++
12:08 masak lizmat: :)
12:10 Vlavv joined #perl6
12:10 bjz_ joined #perl6
12:10 masak lizmat: once I tried tracking down a bug in Parrot. it had to do with reading of Unicode text being read in 1024n byte chunks, and sometimes a character would "straddle" two chunks and cause a decoding error.
12:11 lizmat yeah, been there, seen that  :-)
12:11 masak lizmat: I knew exactly what the bug *was*. it was wonderfully reproducible, and I could use some of my blog posts to reproduce it.
12:11 lizmat (not on parrot, though)
12:11 masak lizmat: I remember diving into the Parrot source to fix it. the bug was not there.
12:11 lizmat ?
12:11 masak well, obviously, it was there... but
12:12 masak the structure of the code -- layers upon layers of calls down do lower primitives -- looked fundamentally right.
12:12 masak worse, it was about 90% structure/overhead/indirection, and about 10% interesting code.
12:13 masak my point is that the code was laid out such that the bug was *hard* to discover. the opposite of shallow. a deep-dug bug.
12:13 donaldh yeah, I loath decomposition for decomposition's sake.
12:13 masak I got into a Twitter argument yesterday, arguing against decomposition for decomposition's sake.
12:13 lizmat fwiw, I try to decompose after the fact
12:14 masak it did not go well. mostly because I was talking to strangers, and I was not in their in-group.
12:14 masak so now I'm talking to #perl6 ;)
12:14 lizmat :-)   welcome!
12:14 masak fwiw, I love function decomposition.
12:15 dalek rakudo/newio: cb3bd5f | lizmat++ | src/core/IO/Locally.pm:
12:15 dalek rakudo/newio: Deprecate .absolute/.relative, introduce .relpath
12:15 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/cb3bd5f4b6
12:15 moritz I also guess that twitter isn't suitable for certain kinds of discussions
12:15 masak *nod*
12:15 moritz mostly when not all participants share the same terminology
12:15 donaldh ( s/loath/loathe/ )
12:16 masak yeah. I had that. I said "inlining" (meaning the opposite of function extraction) and got "lol Y U optimize on the JS stack!"
12:16 moritz the message size limit makes it very tempting to remove redundancy in the language, which are crucial to detecting semantic mismatch
12:17 masak but (and this is the main thrust of my argument) complexity is a foul beast. complexity will kill you. if you use weapons against complexity, and you should, complexity will use those weapons against you.
12:17 donaldh I used to think stackoverflow was a good place for that kind of discussion but it often degenerates these days.
12:17 * nwc10 goes to read a blog post on http://chrononsystems.com/
12:17 nwc10 "Error establishing a database connection"
12:17 xiaomiao you can't hide complexity
12:17 masak function decomposition is no different -- you can definitely produce a system where too-decomposed functions makes the system structure *less* approachable.
12:17 nwc10 dudes, even your home page is failing with that error. Therefore you have >0 database hits for your home page - dudes, do you expect me to take you seriously in the computer businiess?
12:17 masak xiaomiao: s/complexity/essential complexity/, right.
12:17 nwc10 I can't type
12:18 xiaomiao masak: yes, that's more precise
12:18 xiaomiao if you try to hide that level of complexity you get idiot boxen
12:18 masak xiaomiao: we still have way too much of the accidental kinds.
12:18 arnsholt It's the whole "anything can be solved by another layer of indirection, except the problem of too many layers of indirection" thing
12:18 masak arnsholt: yeah. that's what I had with the Parrot bug.
12:19 masak arnsholt: and it's an irony, because it's usually people with *good taste* in software who decompose functions. people who care, and study. people who could get slightly offended if you pointed out to them that it's not always a pure good thing, and they're not ready for that insight.
12:19 nine nwc10: To be fair, most websites do just fine with generating all pages on the fly.
12:20 xiaomiao masak: well aware of it. I find it hard to figure out why modern computers take so long to boot
12:20 nwc10 nine: if they can do that *and* cope with slashdot, I'm fine with it
12:20 masak xiaomiao: yeah, it's a mystery.
12:20 xiaomiao the slowest parts are things like harddisk spinup where you might need, say, 5 seconds until the device is operational
12:20 moritz xiaomiao: most recent desktop/laptop system I've used boot very fast
12:20 xiaomiao I got a VM to boot in 300msec
12:21 moritz xiaomiao: Debian jessy with systemd is quite fast, for example
12:21 xiaomiao moritz: your idea of "very fast" is still slow
12:21 nwc10 in this case, I don't think that it's slashdot. It's just unhappy
12:21 xiaomiao and systemd is not doing things correctly
12:21 masak nwc10: what used to be on that page?
12:21 xiaomiao we've done 5 seconds on the original EeePC when it came out ...
12:21 masak nwc10: how is it interesting to #perl6? :)
12:21 xiaomiao without nasty hackery abuse
12:22 nwc10 masak: http://chrononsystems.com/blog/java-7-design-flaw-leads-to-huge-backward-step-for-the-jvm
12:22 nine xiaomiao: but those 5 seconds were for a system that was tailored for exactly one use case. Not something generic like a generic Debian installation.
12:22 davido_ joined #perl6
12:22 moritz xiaomiao: it's way faster than the BIOS bootup time from the server that hosts p6c.org :-)
12:22 xiaomiao nine: yeah, a generic gentoo install is not ... eh what?
12:22 nwc10 masak: you'll need to be reading it via Google's cache
12:22 xiaomiao moritz: I have some machines at work that need 300 seconds to reach bootloader
12:23 xiaomiao ... the rest of the OS comes up in about 10 seconds, mostly slowed down by the raid "controller"
12:23 nwc10 but it's not just the deep linked blog page that's SNAFU. (Which I'd tolerate and not mention)
12:27 araujo joined #perl6
12:31 yeahnoob joined #perl6
12:32 donaldh nwc10: the very idea of the bytecode verifier is a bit odd. The JVM needs to be robust when executing bytecode anyway. The verifier is intended to protect the JVM from malicious bytecode that has been downloaded from untrusted sources but that seems naively optimistic.
12:32 masak sometimes I wish the `diff` command could realize that I have *both* moved and changed a snippet of text, and show the modifications too, not just a big blotch of red and a big blotch of green.
12:32 donaldh The article makes a very good point that computing stack frames at compile time to speed up runtime verification is totally defeated by doing bytecode manipulation at runtime.
12:35 jluis joined #perl6
12:38 dalek rakudo/nom: 22db535 | lizmat++ | src/core/Deprecations.pm:
12:38 dalek rakudo/nom: All deprecated code will be removed at 6.0.0
12:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/22db535ea3
12:39 nine lizmat: somehow this makes 6.0.0 become more real
12:40 dalek rakudo/nom: 97bf782 | lizmat++ | docs/ChangeLog:
12:40 dalek rakudo/nom: All deprecated code will be removed at 6.0.0
12:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/97bf78205c
12:40 lizmat making real is what we do  :-)
12:40 masak anyway, thank you #perl6 for your reasoned debate (and, conveniently, agreement). you are the soothing salve where Twitter merely chafed.
12:40 lizmat afk for a few hours
12:42 bjz joined #perl6
12:51 bjz joined #perl6
12:52 kaleem joined #perl6
12:54 dalek specs: f2ed255 | (Stéphane Payrard)++ | S99-glossary.pod:
12:54 dalek specs: gorilla/banana problem
12:54 dalek specs: review: https://github.com/perl6/specs/commit/f2ed2550e7
12:54 darutoko joined #perl6
12:54 brrt joined #perl6
13:01 Ven masak: who's not civil?
13:01 dalek specs: 210cb23 | (Stéphane Payrard)++ | S99-glossary.pod:
13:01 dalek specs: fixing outward links in gorilla/banana
13:01 dalek specs: review: https://github.com/perl6/specs/commit/210cb23166
13:04 cognominal joined #perl6
13:04 ssutch joined #perl6
13:05 cognominal masak: also in FP, pointfree programming gets obscure fast.
13:10 dalek specs: 197d679 | (Stéphane Payrard)++ | S99-glossary.pod:
13:10 dalek specs: FP
13:10 dalek specs: review: https://github.com/perl6/specs/commit/197d67905f
13:11 tinyblak joined #perl6
13:12 cognominal by the way, does Perl 6 have a function composition operator?
13:14 sirdancealot joined #perl6
13:17 cognominal joined #perl6
13:17 bjz joined #perl6
13:20 colomon cognominal: not to my knowledge, but it's pretty easy to write one (at least for a given arity)
13:21 Ven cognominal: no it doesn't
13:22 arnsholt An operator like Haskell's (.) would be a bit tricky in the general case becauseof arity, like colomon said
13:24 masak Ven: doesn't matter much. someone who should know better.
13:24 masak Ven: the morbidly curious can peruse my twitter history. it's all there.
13:24 Ven masak: sorry, that was a rhetorical question
13:24 masak that was not at all clear :P
13:25 Ven 'twas an invitation to talk, because I had a stale backlog, but I've finished clogging by now
13:26 masak :)
13:26 masak I'm all for talking.
13:27 colomon m: sub infix:<(.)>(&a, &b) { -> \c { &a(| &b©); }; # something like that, maybe?
13:27 camelia rakudo-moar 80b912: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fiL28_kUCE�Unable to parse expression in argument list; couldn't find final ')' �at /tmp/fiL28_kUCE:1�------> [32mub infix:<(.)>(&a, &b) { -> \c { &a(| &b[33m�[31m©); }; # something like…»
13:27 colomon idiot IRC client
13:27 masak m: sub infix:<$>(&f, $x) { f $x }; sub infix:<⚬>(&f, &g) { -> $x { f g $x } }; say (&uc ⚬ &flip) $ "iah ho"
13:27 camelia rakudo-moar 80b912: OUTPUT«OH HAI␤»
13:27 masak colomon: crate minds think alike ;)
13:27 colomon ;)
13:27 Ven masak: well, I moslty agree with the consensus reached. it's hard to have abstractions *and* simplicity
13:28 masak Ven: these days, when someone's design/solution surprises me, about half of the time it's because they skipped some abstraction that I had been unable to think away, thereby making the solution smaller/simpler.
13:29 Ven masak: imho, there's a loooot to it.
13:30 masak could you rephrase that? what is there a lot to?
13:30 bjz joined #perl6
13:30 Ven masak: to design
13:31 Ven well, it's pointless to say it like that
13:31 masak hah :)
13:31 masak I agree, fwiw. and I think I see what you're grasping at.
13:32 masak the past few years feel to me as if I'm coming out of a fog, doing more and more software design, where previously it was all unconscious/haphazard.
13:32 masak on some level, it's just "think about shit you implement".
13:32 Ven "think at the macroscopic level, not the microscopic one"
13:32 Ven ("plus it has marco in the name")
13:32 masak :)
13:33 * masak .oO( <diakopter> marco-scopic )
13:34 chenryn joined #perl6
13:34 donaldh joined #perl6
13:34 Ven masak: I half-agree about this issue. Once, at $work, I was criticizing xcode saying it sucked, and that one time, even the simplest functionality - code highlighting stopped working
13:34 Ven and I said it was nuts that, in 2014, we still couldn't ask for reliable HL from our tool.
13:35 masak I'm not sure I see the connection between that and the discussion about function decomposition.
13:35 masak oh, or did you relate it to the discussion about design?
13:35 xiaomiao Ven: mostly because we add more and more features
13:35 Ven ...but I have some stuff to explain, still ;)
13:35 * masak listens
13:35 xiaomiao it's marketing-driven development - "we need 12 new features for this release, think of something you can add!"
13:36 Ven He then proceeded to call me in idiot on multiple level, because "it's so hard considering the overall structure is what's important". I said "how can they not make it work when I can just code a regex to highlight stuff in like 50 or 100 lines"
13:36 masak s/regex/grammar/ ;)
13:36 Ven to which he answered "you're a kid who knows nothing, abstractions have a cost, what matters is that the overall software design of the project is good"
13:37 xiaomiao Ven: iow, business/marketing needs outweigh everything else? ;)
13:37 Ven quite so.
13:38 Ven I call that stockholm syndrom. Having been abused by your *terrible* (because xcode is TERRIBLE) tools so badly you can justify the very basic feature that has worked in every editor since 1970 is "normal", because "software design is hard".
13:39 xiaomiao I once had to break the permissions on the svn server so that people could use eclipse
13:40 xiaomiao because the muppet who designed the SubClipse plugin never thought that people might only have access to a part of a repository
13:40 xiaomiao and, of course, retraining people to use a commandline instead of point and grunt is too difficult
13:40 Ven Yes, software design is hard. Yes, making work/fit that one component in The Big Scheme, but at some point, people have done FAR TOO MUCH java and forgot what was even software design. And I want to hint that the only reason they have this stupid beans and factories is because java waited 20 years to add lambdas...
13:40 cognominal Can someone explains the difference between mixins and roles?
13:41 Ven cognominal: a mixin is a role
13:41 Ven there's no "mixin" keyword
13:41 Ven if that was from my tutorial, please point me at the line, I'll rephrase it
13:41 cognominal say, a js mixin and a Perl 6 role?
13:42 Ven js mixin?
13:43 cognominal hum, in fact there is not much in a js mixin, that's just extending an object with new keys
13:43 rindolf joined #perl6
13:44 Ven cognominal: oh, well, js "mixins" are about key-value objects, perl6 roles are still about OO
13:44 arnsholt Yeah, that's the JS object model being a bit weird (namely, prototype-based) again
13:46 cognominal I guess there are differences when handling conflcting keys. Don't remember how Perl 6 role handles that (conflicting attributes/methods)
13:47 Ven m: role A { method f {} }; role B { method f {} }; class C does A does B {};
13:47 camelia rakudo-moar 80b912: OUTPUT«===SORRY!===␤Method 'f' must be resolved by class C because it exists in multiple roles (B, A)␤»
13:47 Ven m: role A { method f {} }; role B { method f {} }; class C does A does B { method f {} };
13:47 camelia rakudo-moar 80b912: ( no output )
13:47 cognominal hum, that interesting : http://ericleads.com/2013/02/fluent-javascript-three-different-kinds-of-prototypal-oo/
13:47 Ven cognominal: like here.
13:48 cognominal yes
13:50 anaeem1 joined #perl6
13:56 bjz joined #perl6
13:59 FROGGS m: role A { method f { 'A' } }; role B { method f { 'B' } }; class C does A does B { method f { self.A::f ~ self.B::f} }; say C.new.f
13:59 camelia rakudo-moar 80b912: OUTPUT«AB␤»
13:59 FROGGS I love Perl 6
14:01 cognominal in the p6 shell, on non strict mode, it barks when I redefine a class. I consider that as a misfeature
14:02 Ven I do as well...
14:02 FROGGS why?
14:03 FROGGS m: 6; class Foo { }; { class Foo { } }
14:03 camelia rakudo-moar 80b912: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ZmKJ2nboXnâ�¤Redeclaration of symbol Fooâ�¤at /tmp/ZmKJ2nboXn:1â�¤------> [32m6; class Foo { }; { class Foo [33mâ��[31m{ } }[0mâ�¤    expecting any of:â�¤        generic roleâ�¤Â»
14:03 Ven because if I made a typo, or if I want to add a method, etc, it's tiring to have to go back to the very beginning of the line to change the class name. (plus alt-arrow doesn't work)
14:03 FROGGS m: 6; my class Foo { }; { my class Foo { } }
14:03 camelia rakudo-moar 80b912: ( no output )
14:03 FROGGS Ven: my-scope them
14:05 Ven alright.
14:05 raiph joined #perl6
14:05 virtualsue joined #perl6
14:06 cognominal FROGGS: when you experiment on successive line, you want to redefine a class. Next line, you paste a test using that class.  explicit my class does not work there.
14:07 donaldh Yes, you explicitly want class replacement when iteratively developing with readline
14:07 donaldh *readline history*
14:07 gtodd if it catches on maybe the p6 shell will evolve into a vim/emacs-like all powerful text cursor dancing singing magical ....
14:08 donaldh s/developing/experimenting/
14:09 lizmat bartolin: I see jvm spectest go down from ~2500 wallclock to about 2000 wallclock, bartolin++
14:09 cognominal I get a sort of readline for free in an emacs-shell-mode even if often run perl6 within it.
14:09 FROGGS bartolin: but don't beat MoarVM, I tell ya! :P
14:10 Ugator joined #perl6
14:13 bjz joined #perl6
14:24 kaleem joined #perl6
14:25 bjz joined #perl6
14:27 brrt can i take a moment to celebrate the epic stupidity of having an interpreted templating language... implemented in python
14:27 Ven joined #perl6
14:28 brrt question - how do we do better? compile templates?
14:28 lizmat in P5, HTML::Mason e.g. compiled templates to P5 source code
14:29 [Coke] moritz: Yes, sorry, that stalled when host08 started having issues. let me try running it on my laptop...
14:29 lizmat in P6 we could potentially precomp generated P5 code
14:29 lizmat *P6
14:29 brrt i never knew about that, that's pretty awesome
14:30 brrt but yeah, we could do that (precomp generated code)
14:30 chenryn joined #perl6
14:32 FROGGS brrt: what I as of today do is: my &dist           := Template::Mojo.new(slurp 'views/dist.tt').code;
14:32 FROGGS though, that's not quite precomp'd yet :o)
14:33 [Coke] masak (better differ) I have good luck with Beyond Compare for that sort of thing. I have a copy for work, have it setup as my difftool
14:38 masak [Coke]: ok, nice to know.
14:38 masak [Coke]: it just struck me as a problem that ought to be solvable, but that the diff tools I use don't do.
14:38 dalek rakudo/newio: 22db535 | lizmat++ | src/core/Deprecations.pm:
14:38 dalek rakudo/newio: All deprecated code will be removed at 6.0.0
14:38 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/22db535ea3
14:38 dalek rakudo/newio: 97bf782 | lizmat++ | docs/ChangeLog:
14:38 dalek rakudo/newio: All deprecated code will be removed at 6.0.0
14:38 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/97bf78205c
14:38 dalek rakudo/newio: 109a680 | lizmat++ | / (2 files):
14:38 dalek rakudo/newio: Merge branch 'nom' into newio
14:38 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/109a6809d6
14:38 dalek rakudo/newio: e876378 | lizmat++ | src/core/io_operators.pm:
14:38 dalek rakudo/newio: Remove obsolete :test parameter from indir()
14:38 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/e876378372
14:38 dalek rakudo/newio: 710a46b | lizmat++ | src/core/IOU.pm:
14:38 dalek rakudo/newio: Add missing shadower for IOU.o
14:38 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/710a46be1e
14:38 dalek rakudo/newio: 81830f5 | lizmat++ | src/core/IO/Dup.pm:
14:38 dalek rakudo/newio: Add missing shadowers for IO::Dup
14:38 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/81830f5cd7
14:40 [Coke] masak: you can get a 30 day eval of beyond compare to test.
14:40 kaleem joined #perl6
14:40 [Coke] nativey versions for win/mac/linux
14:41 Possum joined #perl6
14:41 [Coke] moritz: getting the same failure we got in the repo. Will have to investigate.
14:41 Mouq joined #perl6
14:41 * masak .oO( nativity version for Manger OS )
14:45 nine brrt: HTML::Template::Compiled and Petal are both templating modules that compile to Perl 5. HTML::Template::JIT goes one step further to compile to machine code.
14:45 brrt nice...... :-o
14:45 brrt (we can also compile templates to machine code with moarvm though :-))
14:46 lizmat can we ?
14:46 brrt eventually, yes
14:46 brrt we can compile regexes :-)
14:48 [Coke] moritz:  need better error handling; something fails (like trying to git through a firewall for one of star's submodules), and then something else fails because of that, then something else fails...
14:52 skids joined #perl6
14:53 sqirrel joined #perl6
14:53 ssutch joined #perl6
14:59 bjz joined #perl6
15:07 lizmat .tell jnthn according to doc nqp::stat("path",nqp::const::STAT_ISDIR) returns -1 if an exception occurred processing
15:07 yoleaux lizmat: I'll pass your message to jnthn.
15:08 lizmat wow, that too long
15:08 lizmat .tell jnthn what I see, is an exception being thrown if the path doesn't exist
15:08 yoleaux lizmat: I'll pass your message to jnthn.
15:08 lizmat .tell jnthn is that an implementation issue, or a documentation issue?
15:08 yoleaux lizmat: I'll pass your message to jnthn.
15:09 mr-foobar joined #perl6
15:13 treehug88 joined #perl6
15:14 kaleem joined #perl6
15:18 Mouq joined #perl6
15:19 pmichaud good morning, #perl6
15:19 yoleaux 30 Dec 2014 14:17Z <moritz> pmichaud: if there's anything I can do to help get the GLR started?
15:21 moritz good am, pm
15:21 bjz joined #perl6
15:21 lizmat good day to you, pmichaud
15:21 pmichaud moritz: I just need to find a free sequence of days to get going on it.  :)
15:21 pmichaud I'm here this morning to find out the latest news on FOSDEM :)
15:22 tinyblak_ joined #perl6
15:22 PerlJam pmichaud: greetings!
15:23 lizmat pmichaud: the latest?  well, TimToady is going to give a presentation in the main track
15:23 pmichaud PerlJam: greets!
15:24 pmichaud it looks as though I have that weekend available, and fares to BRU are relatively cheap right now
15:24 moritz today I learned that you need a perl6 in your $PATH to build a rakudo star
15:24 pmichaud moritz: hmm.  That didn't used to be true.
15:25 moritz perl6 tools/build/panda-state.p6 >>MANIFEST # from tools/star/Makefile
15:27 pmichaud https://github.com/rakudo/star/commit/54b69eba8141785d1839ade4e161e7d06fb6a800
15:28 * PerlJam was half expecting moritz to have made the commit :)
15:28 Mouq .tell adu FWIW, I have a tiny, incomplete lisp-like interpreter here: https://gist.github.com/Mouq/478533e8f37d2569ce08 though it's not slang-ified, and it's DEFINITELY not Scheme
15:28 yoleaux Mouq: I'll pass your message to adu.
15:29 pmichaud Perhaps that step belongs in a different stage of the building process.
15:30 pmichaud Or, the script is fairly short -- perhaps it should be a p5 script for now.
15:30 salv0 joined #perl6
15:30 pmichaud At some point I suspect it'll be okay to require a working perl6 environment to build star... I'm not sure we're there yet.
15:31 tinyblak joined #perl6
15:31 moritz I have no objections to it; I'd just document it
15:33 moritz FROGGS: it seems that in rakudo/star, we track your clone of perl6-digest-md5, but the ecosystem still points to cosimo's repo
15:33 Akagi201 joined #perl6
15:34 moritz FROGGS: is that still necessary?
15:35 pmichaud I'm afk for a while -- bbl
15:38 [Coke] how many people every have to build a star release? less than a dozen.
15:38 [Coke] *ever.
15:38 [Coke] It's fine with me to leave it there.
15:38 dalek doc: ed78d87 | moritz++ | lib/Type/Lock.pod:
15:38 dalek doc: document that Lock is reentrant
15:38 dalek doc: review: https://github.com/perl6/doc/commit/ed78d8772f
15:38 [Coke] (now that it's there. I'm pretty sure I complained when it was added. :)
15:39 [Coke] moritz: I keeping getting failures on : Clone of 'git://github.com/tadzik/Bailador' into submodule path 'modules/Bailador' failed
15:40 [Coke] This is -probably- just because I'm at work, though I thought I had all that configged properly
15:40 moritz [Coke]: on hack.p6c.org I don't get that failure
15:40 [Coke] ok. I'll see about moving things there, but will be after dayjob.
15:40 moritz [Coke]: I do get some hangs in the module tests and precompilations on parrot
15:42 moritz [Coke]: you can use https://github.com/perl6/infrastructure-doc/blob/master/hosts/hack.p6c.org.pod#rakudobrew to get the perl6 binary that is needed for building star
15:44 lizmat did anybody mention https://fosdem.org/2015/interviews/2015-larry-wall/  before ?
15:44 spider-mario joined #perl6
15:44 chenryn joined #perl6
15:47 brrt lizmat - i haven't seen it yet
15:47 lizmat seems to have been published at least by 29 Dec
15:48 pmurias joined #perl6
15:50 brrt i have had a bit of an offline week last weeks
15:50 FROGGS moritz: seems, that cosimo's version is up-to-date since November
15:52 dalek DBIish: cdfeada | moritz++ | t/99-common.pl6:
15:52 dalek DBIish: Avoid junctions and warnings
15:52 dalek DBIish: review: https://github.com/perl6/DBIish/commit/cdfeada826
15:54 lizmat afk for a bit&
15:54 woolfy left #perl6
15:55 davido_ joined #perl6
15:55 brrt how do you get the google cache for a page again
15:55 btyler_ any special trickery needed to get Inline::Perl5 to load p5helper.so? nativecall can't find it, but the path to the .so is correct. I tried adding the directory that contains it to a member of /etc/ld.so.conf.d, but 'ldconfig -v' lists the dir I added (which contains p5helper.so) without mentioning p5helper.so itself, so it is still unable to be found
15:55 bjz joined #perl6
15:55 brrt ah found it
15:57 woolfy joined #perl6
15:58 hoelzro o/ #perl6
15:59 brrt \o hoelzro
16:03 btyler_ hmm, pointing directly to p5helper.so with LD_PRELOAD leads me to undefined symbol "av_top_index", which makes me think the perl5 so is unavailable
16:05 dalek DBIish: ceed8fb | moritz++ | lib/DBIish.pm6:
16:05 dalek DBIish: Remove hard-coded list of modules
16:05 dalek DBIish:
16:05 dalek DBIish: instead use require and dynamic lookups. Rakudo has supported them for a while now :-)
16:05 dalek DBIish: review: https://github.com/perl6/DBIish/commit/ceed8fbc2a
16:06 araujo joined #perl6
16:13 chenryn joined #perl6
16:15 bjz joined #perl6
16:23 TimToady darn it, who put that bright thing up in the sky so early in the morning...
16:25 b2gills I don't know what you are talking about, the whole sky is this white glowy thing here
16:25 TimToady that's what the bright thing usually looks like in Seattle
16:26 TimToady this one's kinda yellowish and smaller though
16:27 b2gills Looking outside, just about everything is white, except for the empty tree branches
16:28 TimToady obviously you're not in Seattle, where they installed fake trees that stay green all winter
16:28 b2gills We actually have winter in the Midwest (Iowa), which sometimes lasts until mid May
16:29 TimToady .oO(the Midwest sometimes lasts until mid May...)
16:29 b2gills $_ = 'winter'
16:31 ugexe i love winter... my cars broken a/c isnt so debilitating
16:31 geekosaur we had sun this morning, for what little good it did us. think the temperatures are actually still dropping, or trying to
16:32 * TimToady occasionally misses Winter®
16:33 TimToady it actually got down almost to freezing last week
16:33 b2gills I don't think you can really appreciate Summer without Winter
16:33 TimToady sure, and nobody appreciates a sunny day like a Seattlite
16:34 FROGGS TimToady: we already built a proper Snowman just two days after Christmas :o)
16:34 TimToady "Oh wow, I didn't know you could see Mt Rainier from here..."
16:34 FROGGS Germany - where it is all dark already and there are no glares in your laptop screen...
16:35 FROGGS[mobile] joined #perl6
16:39 nwc10 TimToady: I'm sorry to be the bearer of bad news, but it's only going to get earlier for the next six months
16:39 [Coke] I moved across the country to get back to a place that had winter.
16:39 [Coke] nwc10: I don't think that's how time works.
16:40 [Coke] (he said, deliberately ignoring any other threads of that convo)
16:42 pyrimidine joined #perl6
16:43 kaleem joined #perl6
16:45 b2gills In S12:abstract-vs-concrete-types it says something about `Int:U` matching abstract or failure. I do not see a way to have something that is say an Int but that is also a Failure.
16:45 synopsebot Link: http://perlcabal.org/syn/S12.html#abstract
16:49 TimToady yes, we've never really quite got around to emulating Haskell's Error monad
16:49 TimToady the :U vs :D thing is more like a Maybe
16:50 * masak .oO( call me Maybe:D )
16:50 b2gills I wonder if Failure was a role that you could have `Int but Failure`
16:50 anaeem1 joined #perl6
16:50 dalek perl6-roast-data: 2314fd7 | coke++ | / (5 files):
16:50 dalek perl6-roast-data: today (automated commit)
16:50 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/2314fd7218
16:50 TimToady that has been considered as a possibility, but we don't really know how it'd work out
16:54 TimToady plus it's not clear how to implement a mixin on something that isn't definite
16:56 b2gills I would think that it creates an unnamed class that inherits from the named class, but that has the methods from the mixin
16:58 * TimToady notes that http://rosettacode.org/wiki/Function_composition#Perl_6 is one of the oldest entries
16:59 colomon TimToady: does it work?  ;)
17:00 TimToady it's been upgraded a few times, so probably :)
17:00 b2gills Thinking about it `Mu:T` would be a special case that specifically doesn't match `Failure` ( unlike `Mu:U` )
17:00 * colomon thinks that code is incredibly beautiful
17:03 [Sno] joined #perl6
17:04 virtualsue joined #perl6
17:05 IllvilJa joined #perl6
17:11 [Coke] is hack.* intended for both irssi usage and "continuous" testing?
17:14 * TimToady doesn't understand that question
17:14 [Coke] nevermind, I already know that answer.
17:14 masak ask questions the answer to which you don't know! :P
17:14 * TimToady doesn't even know the question...
17:14 [Coke] someone with sudo on hack, I could use the ncurses library installed.
17:15 * PerlJam thought [Coke] had sudo on hack
17:15 [Coke] coke is not in the sudoers file.  This incident will be reported.
17:16 TimToady who are you really?
17:16 [Coke] I'm just this guy, you know?
17:16 telex joined #perl6
17:16 TimToady and what have you done with the Real Thing?
17:17 [Coke]_ joined #perl6
17:20 TimToady .oO(it's the new [Coke]...)
17:20 bjz joined #perl6
17:21 [Coke] ... same as the old Coke.
17:22 ssutch joined #perl6
17:22 dalek infrastructure-doc: 006775b | PerlJam++ | hosts/hack.p6c.org.pod:
17:22 dalek infrastructure-doc: Add Coke to sudoers
17:22 dalek infrastructure-doc: review: https://github.com/perl6/infrastructure-doc/commit/006775b630
17:23 Rounin joined #perl6
17:23 [Coke] Thanks to whoever installed curses, also! ;)
17:37 [Coke] for things running on hack - ok to use multiple cores (e.g. TEST_JOBS or make -j) or should we stick to single core where possible?
17:43 raiph joined #perl6
17:44 lizmat how time flies: http://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat
17:44 jdv79 any idea if nativecall is going to be fixed for 32bit anytime soon?
17:45 TimToady I know of only one way to guarantee it gets fixed soon.  :)
17:45 jdv79 pay someone else to do it? ;)  it'd probably take me days to do it wrong.
17:47 TimToady but then you'd have that many days head start on anyone else :)
17:47 b2gills One of the ways to figure out the right way to do something is to do it wrong many times
17:48 jdv79 maybe i'll try tonight then.
17:48 TimToady well, of course, Edison actually had minions to do it :)
17:48 jdv79 except the 32bit box is at $work - maybe an old box i have laying around is 32 as well.
17:49 jdv79 i have no minions and don't plan on aquiring any:(
17:49 arnsholt jdv79: The problem you're thinking of is that NativeCall will always interpret an int type as 64-bit, rather than whatever the machine thinks is an int, right?
17:49 * TimToady has minions but is woefully inadequate as an Evil Mastermind™
17:50 TimToady we probably need to define a Cint type or so
17:50 cognominal ... just an eval Mastermind
17:51 jdv79 i'm guessing.  all i know for sure is that i can't fetch https urls with HTTP::UserAgent and i'm assuming the lowest level module test failures are part or whole of it - nativecall being that module.
17:51 KCL_ joined #perl6
17:51 TimToady NativeCall might well be assuming that int menas the same thing in C and in Perl, and that's not a valid assumption
17:52 TimToady (as int is currently specced, anyway)
17:52 arnsholt Yeah, what TimToady said. It should be relatively straightforward: wire up P6int to figure out how big the system thinks an int is, and expose that as a type in Rakudo/NativeCall
17:52 Mouq TimToady: Speaking of minions, http://irclog.perlgeek.de/perl6/2015-01-04#i_9886722
17:52 TimToady that the DFA questions?
17:52 arnsholt No, NativeCall will use 64-bit in all cases, since that's how wide Rakudo's unmodified ints are
17:52 Mouq Yeah
17:53 TimToady at the moment, there are several things holding back a DFA optimization
17:53 TimToady one could certainly deal with the exponential problem with a lazy state generator, as grep does
17:54 TimToady however, the current fate system (along with the current longest literal system) kinda works against having a DFA
17:55 TimToady especially since the current NFA recombines alternatives
17:55 * [Coke] reviewingly supposes he is a minion of Edison.
17:55 bjz joined #perl6
17:56 TimToady this may be a problem if we want to have cascading fates decided at the top, to avoid having to rerun the lower-level NFA to determine the inner fates
17:56 TimToady a tokenizer that is producing such fates never really recombines alternatives, but is just a tree of recognizers
17:57 TimToady so that would tend to amplify the number of states that a DFA would have to handle
17:57 TimToady another consideration is that the NFA is usually pretty efficient after the first character
17:58 TimToady it's the first char recognizer that might have 50 or 100 states, but almost immediately that drops down to under 5 generally
17:58 TimToady so maybe we just want to cache the first decision state in a DFAish way for any character we've seen, and forget the rest of the DFA
18:00 anaeem1_ joined #perl6
18:00 TimToady and maybe even only do that for large initial decisions, such as for statement or term or infix
18:01 Mouq I think I see what you mean. Would that generalize longestlit?
18:03 TimToady not redoing fates for subrules might be a bigger win, but then you'd need something like a tagged DFA for the top level, and my experiments with TRE were underwhelming
18:03 TimToady or stick with the NFA, as STD does
18:05 TimToady longestlit is tricky, and maybe next to impossible with a DFA
18:07 TimToady we might well want a DFA implementation for certain kinds of m// though, even if it's not a great idea for a P6 lexer
18:07 TimToady however, parentheses are troublesome
18:08 TimToady TRE can do parens in DFA, but as I recall, on every token match it allocated something like 17MB on the stack, which was not gonna scale well
18:08 Mouq Geez
18:09 adu joined #perl6
18:09 TimToady well, regex always bite you somewhere
18:09 TimToady and trying to parse as many tokens as P6 has it guaranteed to give any regex implementation heartburn :)
18:09 TimToady *is
18:10 adu can I use try/CATCH with tokens and rules?
18:10 yoleaux 15:29Z <Mouq> adu: FWIW, I have a tiny, incomplete lisp-like interpreter here: https://gist.github.com/Mouq/478533e8f37d2569ce08 though it's not slang-ified, and it's DEFINITELY not Scheme
18:10 adu like try a rule, then if it doesn't match, then run some code?
18:11 TimToady don't really need try/CATCH for that
18:11 TimToady <somerule> || { some code }
18:11 adu duh
18:11 adu right
18:13 avalenn joined #perl6
18:16 ggherdov joined #perl6
18:16 flussence joined #perl6
18:16 denis_boyun joined #perl6
18:16 timotimo joined #perl6
18:17 lsm-desktop joined #perl6
18:17 Celelibi joined #perl6
18:17 hobbs joined #perl6
18:18 [Tux] joined #perl6
18:19 gfldex joined #perl6
18:21 mephinet joined #perl6
18:22 mvuets joined #perl6
18:22 Juerd joined #perl6
18:23 adu Mouq: nice
18:24 MRBNJMN joined #perl6
18:26 clkao joined #perl6
18:32 yogan joined #perl6
18:32 raydiak mornin #perl6
18:34 Mouq TimToady: I've been muling it over, playing with graphs, and I definitely see how ineffective DFA would be with, well, most grammars. But I think it might be worthwhile to transform sub-regexes that are pure and non-capturing
18:34 zakharyas joined #perl6
18:34 vladtz joined #perl6
18:35 Mouq TimToady: Also, thank you for your comprehensive response
18:43 bjz joined #perl6
19:02 Hor|zon joined #perl6
19:04 bjz joined #perl6
19:04 * lizmat just wrote a draft for the Perl 6 Weekly http://p6weekly.wordpress.com/?p=274&amp;preview=true&amp;preview_id=274
19:04 lizmat comments, suggestions, additions, errata welcome!
19:05 darutoko joined #perl6
19:05 Mouq lizmat: That link doesn't work for me
19:06 lizmat https://gist.github.com/lizmat/f127bfaa4175d0acf7dc
19:07 lizmat Mouq: raw text link ^^^
19:07 Mouq lizmat: Thanks! :)
19:08 lizmat and please: if you think you've done something noteworthy for the P6 Weekly and I didn't mention it, let me know!
19:08 lizmat please don't be shy  :-)
19:08 Sqirrel joined #perl6
19:10 Mouq lizmat++: moritz++ has also been documenting the Metamodel::* classes
19:10 psch moritz++ has done loads of great documentation work recently
19:11 Mouq psch: I agree wholeheartedly
19:11 psch aside from Metamodel:: there was at Supply and other things i'm forgetting
19:11 psch s/at//
19:12 Mouq psch: I think your work certainly warrents mentioning as well
19:12 psch Mouq: probably... :)
19:12 psch lizmat: shortname for overloaded Java methods has landed
19:12 psch constructors as well
19:13 psch as in, jvm-interop doesn't need knowledge of method descriptors anymore
19:16 adu how do I check to see if a string is a member of a list of strings?
19:16 psch the constructors i hadn't written about in my advent post, but that just means that .new dispatches properly as well now
19:16 psch m: say "foo" (elem) <foo bar baz>
19:16 camelia rakudo-moar 80b912: OUTPUT«True␤»
19:16 psch m: say "quux" (elem) <foo bar baz>
19:16 camelia rakudo-moar 80b912: OUTPUT«False␤»
19:16 adu psch: can you break that down? is that a function call? or an enum?
19:17 psch adu: (elem) is an infix, the texan form of ∈
19:18 psch <foo bar baz> is qw//, in case that tells you something :)
19:18 adu m: say "a" ∈ qw<a b c>
19:18 camelia rakudo-moar 80b912: OUTPUT«True␤»
19:18 hoelzro lizmat++
19:18 adu psch: I much prefer the non-Texas version
19:18 psch lizmat++ # writing p6weekly
19:19 hoelzro is "columns" the right nomenclature to use for the <=> change?
19:19 hoelzro perhaps elements?
19:19 psch adu: that's fine, my compose key is wonky atm, that's all :)
19:20 [Coke] anyone using rakudo.jvm on hack?
19:20 [Coke] j: say 3
19:20 camelia rakudo-jvm 80b912: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory␤»
19:20 lizmat hoelzro: I looked at the commit message, I guess elements would be better
19:21 adu m: say "a" ∉ qw<a b c>
19:21 camelia rakudo-moar 80b912: OUTPUT«False␤»
19:21 adu sweet
19:21 [Coke] I can't even run "java -version"
19:22 * lizmat has updated draft and gist
19:22 psch [Coke]: java -version works for me on hack; building nqp seems to work as well
19:24 [Coke] psch: what's your userid?
19:24 psch 1020, login psch
19:25 [Coke] nevermind.
19:25 [Coke] ah, thanks
19:25 FROGGS joined #perl6
19:25 [Coke] can you gist the result of "ulimit -a" ?
19:26 psch https://gist.github.com/peschwa/a6ba5b440df7f924b76b
19:27 psch the element symbol is clipboard misuse... :)
19:27 [Coke] your virtual memory is unlimited?
19:28 [Coke] mine is virtual memory          (kbytes, -v) 1260720 on a fresh login.
19:29 [Coke] ah. my bad. leftover from a feather restriction I had in place for pugs.
19:30 [Coke] psch++
19:31 hoelzro I noticed also in lizmat's post that precomp issues have recently been fixed; was https://rt.perl.org/Ticket/Display.html?id=123272 among them?
19:32 bjz joined #perl6
19:32 lizmat hoelzro: I haven't actually looked into it apart from seeing spectests passing
19:32 lizmat working on other things
19:32 hoelzro ah, ok
19:32 [Coke] joined #perl6
19:33 psch lizmat: there's an "MMD" missing between "shortname" and "for"
19:34 lizmat psch++ fixed
19:34 psch also i think "the jvm-interop" might read better as "using native Java classes", after "As in"
19:35 lumimies lizmat: "<i>lizmat</i> as added " should be "has"
19:35 lizmat lumimies++ fixed
19:35 psch i.e. "As in, using native Java classes doesn't need knowledge of method descriptors anymore".  OTOH the advent post describes it rather well i hope
19:36 lizmat psch++ fixed
19:37 dalek snake: ad0c213 | arnsholt++ | src/Snake/Grammar.nqp:
19:37 dalek snake: Add logical operators.
19:37 dalek snake: review: https://github.com/arnsholt/snake/commit/ad0c21387c
19:38 lizmat hmmm   maybe nine++'s work on Inline::Perl5 should be mentioned
19:39 lizmat I mean use Test::More:from<Perl5> is pretty rad, no?
19:39 lizmat hmmm..  writing it like that, I wonder if that shouldn't be :from<Inline::Perl5>  :-)
19:39 masak arnsholt++ # snake
19:41 arnsholt Heh, thanks. Sort of trying to figure out where I left off, now =)
19:41 arnsholt 's what happens when you don't touch a project for a month or so >.<
19:41 lumimies lizmat: "%h<a b c>:delete;" Probably need to escape the <>?
19:42 lizmat lumimies++ good catch
19:42 jack_rabbit joined #perl6
19:45 timotimo oh yeah. damn you, html stuff
19:48 dalek specs/newio: bbb7d54 | lizmat++ | S16-io.pod:
19:48 dalek specs/newio: Some organizational tweaks
19:48 dalek specs/newio: review: https://github.com/perl6/specs/commit/bbb7d544e8
19:48 dalek specs/newio: b628cfa | lizmat++ | S16-io.pod:
19:48 dalek specs/newio: First documentation work on the PIO role
19:48 dalek specs/newio: review: https://github.com/perl6/specs/commit/b628cfa421
19:50 * raydiak wishes his precomp problems were among the ones fixed
19:51 * raydiak is scared to look too close at the one thing he has on the ecosystem that *doesn't* appear to have precomp issues
19:55 japhb lizmat: I've been writing low-level tests for concurrency ops and repr's in nqp.  Though since they aren't enabled yet (nqp-m hangs on one and nqp-j crashes on another), maybe it needs to wait.  Gripping hand is that p6weekly has often included WIP stuff, so I guess it's fair to include.
19:56 jnthn evening, #perl6
19:56 yoleaux 15:07Z <lizmat> jnthn: according to doc nqp::stat("path",nqp::const::STAT_ISDIR) returns -1 if an exception occurred processing
19:56 yoleaux 15:08Z <lizmat> jnthn: what I see, is an exception being thrown if the path doesn't exist
19:56 yoleaux 15:08Z <lizmat> jnthn: is that an implementation issue, or a documentation issue?
19:56 lizmat evening, japhb
19:56 lizmat evening jnthn  :-)
19:56 jnthn lizmat: I don't believe I wrote the impl *or* the docs, so I'm afraid I've no idea!
19:57 jnthn lizmat: In general, though, I woulda thought stat would want to return an error code consistently if indeed that's what it normally does; error code sometimes and exception sometimes seems unhelpful
19:58 lizmat until now, it seems to always throw an exception
19:58 lizmat not even return a failure, but throw
19:58 denis_boyun___ joined #perl6
19:58 PerlJam lizmat: Is IO::Local going to be renamed to IO::Locally?
20:00 lizmat no, IO::Local is a class
20:00 jnthn lizmat: Well, we should prolly work out what is useful for implementing Perl 6 stuff and then aim to get implementation/docs consistent with that.
20:00 lizmat PerlJam: but I'm considering renaming IO::Locally to IO::Pathy
20:01 lizmat for deprecation purposes, I need the IO::Path class to stay around for a bit
20:02 lizmat updated the draft with a "newio branch" and "low-level concurrency tests" section
20:03 lizmat updated the gist now as well: https://gist.github.com/lizmat/f127bfaa4175d0acf7dc
20:03 PerlJam ah, I see.  +1 to the IO::Pathy rename if only because the name IO::Locally bothers me  :)
20:05 arnsholt jnthn: Any objections to using negative bitwidths to signal that P6int should use architecture-appropriate widths (for types like cint and clong)?
20:05 jnthn lizmat: It feels a tad odd to say the concurrency tests "aren't ready for production", it's not the tests that are to blame. More that they're not run by default yet.
20:06 jnthn arnsholt: Ummm
20:06 jnthn arnsholt: Yeah, that feels like something we're going to live to regret at some point...
20:07 lizmat jnthn++  fixed
20:07 jnthn arnsholt: The composition protocol lets us pass a hash; there's no reason to do some kind of overloading of an existing one.
20:08 arnsholt Excellent point. Doing that instead does indeed sound far more sensible
20:09 jnthn arnsholt: There is a document in docs/ in the NQP repo that specs the compose protocol.
20:09 dalek specs/newio: 065965d | lizmat++ | S16-io.pod:
20:09 dalek specs/newio: /IO::Locally/IO::Pathy/
20:09 dalek specs/newio:
20:09 dalek specs/newio: PerlJam++ for the final nudge
20:09 dalek specs/newio: review: https://github.com/perl6/specs/commit/065965da74
20:09 jnthn arnsholt: Please keep that in sync with any addition you make.
20:10 * lizmat will publish the P6W in 20 mins
20:10 arnsholt Will do!
20:11 jnthn arnsholt++
20:11 jnthn lizmat++
20:11 timotimo lizmat: thank you kindly :)
20:12 lizmat timotimo++ for doing it all those times
20:15 [Coke] if I add a crontab entry on hack, it's in UTC, yes?
20:16 nwc10 UGT, surely? :-)
20:16 [Coke] also: is there a limit as to how close to a time I can try to sneak in a crontab edit?
20:17 arnsholt Looks like this might be my first Moar commit \o/
20:18 arnsholt "Your branch is behind 'origin/master' by 3037 commits, and can be fast-forwarded." ^.^
20:18 colomon \o/
20:19 jnthn lol
20:19 jnthn We did...3037 commits? :D
20:20 arnsholt Apparently =D
20:22 timotimo .tell Ven I'm following AGDQ, but i'm not able to watch most of it live, more or less for the same reason why i can't do the weekly or do much perl6 coding
20:22 yoleaux timotimo: I'll pass your message to Ven.
20:23 arnsholt jnthn: Unrelated to the previous: Are there any docs describing how to write new ops for Moar?
20:24 jnthn arnsholt: Not really a guide, but basically 1) Edit src/core/oplist (there *are* instructions at the top on how to do that), run tools/update_ops.p6, and then add something to interp.c
20:24 jnthn That's *usually* enough, unless you're adding something really odd.
20:25 arnsholt Yeah, that's what I thought. But I figured I should ask, in case there was something =)
20:27 FROGGS arnsholt: add your ops right before the sp_* ops start
20:27 FROGGS that's important
20:30 arnsholt This'll be custom ops for Snake, so I won't be adding them to Moar directly, actually
20:31 dalek rakudo/newio: b7c44c4 | lizmat++ | src/core/IO/ (2 files):
20:31 dalek rakudo/newio: First step in bringing up to date with spec
20:31 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/b7c44c4ab0
20:31 dalek rakudo/newio: f7445b5 | lizmat++ | src/core/IO (6 files):
20:31 dalek rakudo/newio: Step 2 in /IO::Locally/IO::Pathy/
20:31 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/f7445b5e35
20:31 dalek rakudo/newio: b0ebc07 | lizmat++ | src/core/IO/Locally.pm:
20:31 dalek rakudo/newio: We still need the placeholder file
20:31 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/b0ebc07987
20:31 FROGGS arnsholt: rakudo does support extops... but nqp does not
20:32 * [Coke] grumbles at cron not giving any diagnostics on hack.
20:33 arnsholt FROGGS: Oh, so Rakudo's custom Moar ops are actually a Rakudo-specific hack, not using a Moar API?
20:33 FROGGS arnsholt: it is using a public api, but nqp might be lacking some infrastructure
20:33 FROGGS so it is not just copy+paste
20:33 arnsholt Ah, right. That I can live with
20:36 moritz \o
20:36 FROGGS o/
20:37 jdv79 good news - i was finally able to build rakudo on my mem constrainted box
20:37 timotimo neato
20:37 timotimo is that because of progress we've made?
20:38 jdv79 bad news - my failing https fetch still fails - so its not the nativecall 32bit issues.
20:38 jdv79 well, i tried to build it a couple of months ago and the kernel OOMed
20:38 jdv79 so i assume so - nothing else changed really
20:38 jdv79 512M ram and 1G swap
20:40 dalek rakudo/nom: 353141f | lizmat++ | src/core/Deprecations.pm:
20:40 dalek rakudo/nom: s/some time/sometime/  woolfy++
20:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/353141fb34
20:42 jnthn arnsholt: Ohh...I thought you were talking about nativecall fixes still and assumed you wanted to add a built-in moar op related to that ;)
20:43 lizmat P6W has been published: http://p6weekly.wordpress.com/2015/01/05/2015-01-get-ready-to-party/
20:43 arnsholt Oh, no, sorry. Too many ideas fermenting in my brain ATM =)
20:44 PerlJam lizmat++
20:45 arnsholt jnthn: Related to my Snake-related thoughts: What kinds of information are stored (and where, perhaps?) when my QAST tree has a QAST::Var(:decl<lexical>)?
20:45 Mouq lizmat++
20:45 arnsholt (And how feasible is it to fiddle with that on-the-fly?)
20:45 jnthn arnsholt: In Moar lexpads are immutable in so far as their key set.
20:46 jnthn arnsholt: Same on the JVM backend.
20:46 jnthn arnsholt: You can certainly do late-bound lookups.
20:46 jnthn Most lookups where the name is known at compile-time turn into indexed lexical accesses
20:46 jnthn The names are carried down to the VM level.
20:46 arnsholt Oh, sure. This is more along the lines of coping with Python's annoying variable model
20:47 jnthn But even with that, don't you always know come runtime what variables came to exist in a given scope?
20:47 arnsholt One thought I had was fiddling with lexpads as I go. But I don't think that's wise in the terms of the Python modle (nor in terms of the VM, as it turns out)
20:47 jnthn Or did I just not write evil enough Pythong?
20:47 jnthn *Python
20:48 pecastro joined #perl6
20:49 ugexe lizmat: does that note on 'precomp issues on moar' about being fixed involve the reentrant issue you ran into a few days ago?
20:50 lizmat yes
20:51 arnsholt jnthn: I know at runtime more or less where to look for the variables, but I also need to keep track of whether they've been assigned to or not
20:52 Hor|zon joined #perl6
20:52 arnsholt Because reading before assignment is an error. But consider the script in https://gist.github.com/arnsholt/28d0d8ccf550bc2e3e86
20:52 dalek star: 768419d | moritz++ | / (2 files):
20:52 dalek star: switch digest module to cosimo on github
20:52 dalek star:
20:52 dalek star: It is now updated to work on current rakudo
20:52 dalek star: review: https://github.com/rakudo/star/commit/768419da6a
20:53 arnsholt Or actually, that's an overly complicated example
20:54 arnsholt Just figuring out if something has been assigned is a bit tricky. Still mulling over how to do it properly, but for now maybe I'll just reserve nqp::null as a sentinel value
20:54 * moritz was just about to suggest a sentinel value
20:55 jnthn arnsholt: QAST::VarWithFallback may be very helpful.
20:55 moritz and the fallback throws NameError?
20:57 arnsholt Ooh, that sounds precisely like what I'd need to use null as a sentinel. Cheers!
20:58 arnsholt (Not being able to manipulate NQP nulls directly in Snake isn't ideal, but I think I can live with it for the time being)
21:02 Hor|zon joined #perl6
21:08 virtualsue joined #perl6
21:09 dalek star: 0e81d1c | moritz++ | tools/star/release-guide.pod:
21:09 dalek star: release guide: document that you need perl6 in $PATH
21:09 dalek star: review: https://github.com/rakudo/star/commit/0e81d1c16d
21:21 [Coke] any idea if there's something wrong with this crontab entry that should have just fired for me:
21:21 [Coke] (cd /home/coke/sandbox/perl6-roast-data; touch BARFYKAT)
21:23 [Coke] er, here's the full line:
21:23 [Coke] 21 21 * * * (cd /home/coke/sandbox/perl6-roast-data; touch BARFYKAT)
21:24 PerlJam doesn't look like it.
21:25 PerlJam Are you sure you had the rule in place before 21:21 ?
21:26 [Coke] Yes.
21:26 [Coke] just changed it to 30 21, will see if that's "early" enough.
21:30 bartolin [Coke]: just double checking: did you exit the editor? otherwise the crontab file is not written
21:32 bartolin [Coke]: and the second double check: that line is from your user's crontab, not a system crontab under /etc/cron*, right?
21:32 moritz [Coke]: is this on hack.p6c.org?
21:34 [Coke] bartolin: yes, exited. yes, mine.
21:34 [Coke] moritz: yes.
21:35 moritz [Coke]: no cronjob ran at 21:21
21:35 bartolin [Coke]: very strange :/
21:35 [Coke] moritz: I can only seem to get the cronjobs to run if I use "* * * "
21:35 [Coke] cron is using UTC, yes?
21:36 moritz yes (system time)
21:36 moritz [Coke]: you need one * more
21:37 moritz minute, hour, day-of-months, month, day-of-week
21:37 moritz erm
21:37 geekosaur the earlier exampel has the right number...
21:37 moritz sorry, mushroom brain :(
21:38 moritz does cron use the login shell? or /bin/sh ?
21:40 [Coke] that cd; touch works in /bin/sh, btw.
21:40 geekosaur should use /bin/sh
21:40 moritz [Coke]: may I su into your account to debug?
21:40 bartolin but you could set SHELL=/bin/bash in your crontab
21:41 raydiak it works fine until you put a number in for the hour instead of *
21:41 moritz oh, is that zero-based?
21:41 geekosaur I think I'd stick a `* * * * * date > someflle` for a couple minutes and verify the time
21:41 [Coke] moritz: Sure.
21:41 [Coke] (0 based) urk.
21:42 moritz restarting cron, in case it didn't like the time zone change
21:42 [Coke] moritz: one sec.
21:42 geekosaur cron usually doesn't
21:43 [Coke] moritz: that did it.
21:43 [Coke] moritz++
21:43 [Coke] geekosaur++ bartolin++
21:44 [Coke] moritz: mind if I remove that new entry you added now that it's working?
21:44 moritz [Coke]: sure
21:45 moritz [Coke]: erm, I don't mind (in case that was misunderstandable)
21:45 [Coke] I think technically you answered it backward, but I figured it out. :)
21:46 [Coke] ok. the daily run is running via cron on hack for the first time, sure it will barf on something missing due to cron env. Should be running there automatically starting tomorrow.
21:46 PerlJam Other system processes may be confused if the timezone changed and they weren't restarted or sent a SIGHUP
21:47 moritz [Coke]: note that current star needs a perl6 binary in $PATH
21:47 ugexe lizmat: fwiw using %*ENV<PERL6LIB> and CompUnit.precomp im getting (only) a  single serialization error now: No object at index 102 at <unknown>:1 (/home/nickl/perl6/zef/lib/Zef/Tester.pm6.moarvm:<dependencies+deserialize>:413)
21:48 moritz [Coke]: run 'source ~rakudobrew/rakudobrew-bash' before running doit
21:49 ugexe (note that error is after Zef::Tester has been precompiled successfully, and occurs during another modules use statement of use Zef::Tester)
21:50 raydiak ah...just fyi, man cron says it does funny stuff when the time changes by less than 3 hours, but only for specifically-timed jobs (not * * or @hourly); supposed to stop things from getting missed or double-running at e.g. dst changes
21:54 bartolin raydiak++
22:00 lizmat good night, #perl6!
22:02 hoelzro night lizmat
22:02 moritz localtime changed by 1h during the time zone shift
22:02 moritz I guess I should have rebooted the server afterwards
22:03 PerlJam moritz: aye, probably.
22:03 Hor|zon joined #perl6
22:04 moritz anyway, time for sleep here
22:04 moritz good night
22:05 PerlJam sleep well moritz!
22:11 [Coke] moritz: I'm not running what you think I'm running. I think.
22:12 hoelzro night moritz
22:18 treehug88 joined #perl6
22:22 cognominal joined #perl6
22:37 brrt joined #perl6
22:38 jdv79 TimToady: from your fosdem interview - what research was advanced degree-ish?
22:41 adu joined #perl6
22:45 vendethiel joined #perl6
22:51 adu Mouq: are you still there?
22:53 Mouq adu: Yup, what's up?
22:53 anaeem1 joined #perl6
22:54 adu I just wanted to ask you if you had used Clojure
22:55 adu writing either a CL or Scheme slang would by fun, but I think Clojure's metadata and type system would go well with Perl6's "gradual" typing
22:56 ugexe is there any way to do recursion in an anonymous block until &?BLOCK is implemented?
22:56 vendethiel adu: CL has gradual types,too :P
22:56 Mouq adu: I haven't, but you sound right anyway :P
22:56 adu vendethiel: can they be applied to every parameter in a defn?
22:56 vendethiel adu: yes
22:57 vendethiel you can declare it for a local or a parameter
22:57 adu vendethiel: oh, I didn't know
22:57 adu er, I mean defun
22:57 Mouq ugexe: I believe &?ROUTINE will work in the right cases...
22:58 adu vendethiel: how verbose is it?
22:58 Mouq m: say { $^n == 1 ?? $^n !! &?ROUTINE($n-1)*$n }
22:58 camelia rakudo-moar 80b912: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fG_GuvWkFWâ�¤Undeclared routine:â�¤    &?ROUTINE used at line 1â�¤â�¤Â»
22:58 Mouq m: say sub { $^n == 1 ?? $^n !! &?ROUTINE($n-1)*$n }(4)
22:58 camelia rakudo-moar 80b912: OUTPUT«24␤»
22:59 vendethiel adu: you can (declare (type fixnum x y))
23:00 adu vendethiel: ah, well in clojure it's ^fixnum x ^fixnum y
23:00 vendethiel I know :)
23:00 vendethiel you can also ((type variable)) as a parameter
23:01 Mouq Don't we technically already have Clojure interop with perl6-j? :P
23:01 vendethiel kind-of.
23:01 vendethiel Clojure can use reflection to call stuff, but it's slower, so there's a mode to warn you when it had to use this method
23:01 adu vendethiel: and in typed-racket it's (: f (-> Fixnum Fixnum Something))
23:02 vendethiel adu: I really don't like typed-racket/core.typed's syntax
23:02 adu me neither
23:02 adu Mouq: good point
23:03 adu Mouq: but Clojure doesn't support moar
23:04 Mouq adu: True :)
23:05 * Mouq saw http://youtu.be/0Vq2rcjWbTc recently, and disliked the syntax and the strictness, but thought it interesting
23:05 adu anyways, my point is that clojure would make a funner-er project IMHO
23:05 ugexe Mouq: thanks. hopefully i can just swap out blocks for anon subs with no problems
23:11 integral joined #perl6
23:11 integral joined #perl6
23:16 adu Mouq: that video is wrong
23:17 adu Mouq: Stephen Bourne wrote sh, Brian Fox wrote bash, but they're using a picture of Bourne underneath "bash"
23:21 Vlavv joined #perl6
23:21 Mouq adu: Oh, I think a lot of what he's saying is kind of silly... Mostly I meant that I found the idea of a kind of whitespace-dependant s-expression variant interesting
23:22 Mouq But I'm guessing he probably wants something more like Dylan
23:25 adu Mouq: http://srfi.schemers.org/srfi-110/srfi-110.html
23:25 adu that's my favorite S variant
23:26 adu although I would swap () with [] and {} with ()
23:26 adu because () are IMHO more commonly associated with infix
23:27 adu so to make a slang, I need to subclass HLL::Actions, HLL::Grammar, HLL::Compiler, and HLL::World?
23:27 Mouq adu: Ohh, nice :)
23:28 Mouq adu: Mmm, depends?
23:28 Mouq adu: First, are you going to write it in Perl6 or NQP?
23:28 adu Mouq: no idea, what do you recommend?
23:29 adu I can't find any documentation for nqp, so I guess perl6
23:30 Mouq adu: Well, https://github.com/arnsholt/snake and https://github.com/perl6/nqp/tree/master/examples/rubyish are both written in NQP. The issue with using Perl6 is that you're going to end up dealing with a lot of NQP objects, which are as yet a pain to deal with.
23:32 Mouq I'm not sure if there's a "Perl6 and NQP differences" page somewhere or not...
23:32 adu can I install nqp with rakudobrew?
23:32 adu Mouq: the wikibooks thing is about the most complete overview I can find
23:33 Mouq You should already have it, you just have to call it with the whatever your backend is, i.e., nqp-m, nqp-j, or nqp-p
23:33 adu and https://github.com/perl6/nqp/blob/master/docs/ops.markdown
23:33 adu is the portable VM instructions
23:34 adu Mouq: when I installed perl6 with rakudobrew it didn't install nqp
23:35 Mouq adu: So "nqp-m -e1" doesn't work?
23:35 adu oh wait, nqp-m is installed
23:35 adu n/m
23:36 Mouq It's cool :)
23:36 adu I just didn't try everything :P
23:37 raiph joined #perl6
23:39 Mouq Soo.. NQP lacks most of Perl6's fun infixes, meta-infixes, and CORE library, all function(calls(need_parens())), and assignment can only be done with ':='. There are more details, but I think that's enough to start?
23:40 adu wait, function calls don't need parens?
23:40 Mouq in Perl6 the don't
23:40 Mouq m: say 1 + 1
23:40 camelia rakudo-moar 80b912: OUTPUT«2␤»
23:40 Mouq nqp: say 1 + 1
23:40 adu I guess I knew that
23:40 camelia nqp-parrot: OUTPUT«Confused at line 2, near "say 1 + 1"␤current instr.: 'panic' pc 15755 (gen/parrot/stage2/NQPHLL.pir:5751) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
23:40 camelia ..nqp-jvm: OUTPUT«(signal ABRT)#␤# There is insufficient memory for the Java Runtime Environment to continue.␤# *** Error in `java': double free or corruption (fasttop): 0x00007fdcf4007c10 ***␤pthread_getattr_np␤»
23:40 camelia ..nqp-moarvm: OUTPUT«Confused at line 2, near "say 1 + 1"␤   at gen/moar/stage2/NQPHLL.nqp:485  (/home/camelia/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:913  (/home/camelia/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:872)␤ fr…»
23:40 Mouq (The errors in NQP kinda suck too)
23:41 adu good to know
23:42 Mouq So... pick your poison! :P Hopefully we're going to make slang-writing in Perl 6 easier in the future, but that hasn't happened yet
23:44 Mouq v5 is currently written in Perl 6, btw: https://github.com/rakudo-p5/v5
23:47 adu so there are 2 slangs in NQP and 1 slang in Perl6
23:47 adu I remember when there was 50 Parrot-specific slangs
23:49 adu why does Perl5::* have a billion modules?
23:49 Mouq Well, complete languages. These are written in Perl6, and modify the Perl6 grammar: https://github.com/FROGGS/p6-Slang-Tuxic https://github.com/Mouq/p6-Grammar-Mixin https://github.com/FROGGS/p6-overload-constant
23:49 skids joined #perl6
23:49 adu that's a little intimidating
23:50 telex joined #perl6
23:52 Hor|zon joined #perl6
23:52 Mouq adu: I agree.. only a handful are actually part of the slang, the rest (as I understand) are modules that perl5 ships
23:57 adu I think I'm going to start small
23:58 Mouq adu: Good plan :)
23:58 Mouq adu: Sorry if I overwhelmed you
23:59 adu I think I'm going to write an integer bc implementation where add is the only op

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

Perl 6 | Reference Documentation | Rakudo