»ö« 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!
Set by moritz on 25 December 2014.
00:01 risou is now known as risou_awy 00:02 rmgk left 00:05 rmgk joined 00:06 FROGGS left
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:06
00:21 FROGGS joined
adu raydiak: I think I found a bug 00:23
I'm trying to parse "typedef union { char __mbstate8[128]; } __mbstate_t;" 00:24
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:26
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
but that's probably not too common unless you're connecting a lot of clients
00:28 FROGGS left
japhb That listen count should be settable, of course. 00:40
00:41 anaeem1__ left 00:42 anaeem1 joined 00:46 FROGGS joined, risou_awy is now known as risou 00:47 anaeem1 left 00:54 ssutch joined 00:55 pmurias left 01:00 dayangkun joined 01:19 FROGGS left 01:34 Mouq joined
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
github.com/MoarVM/MoarVM/issues/165
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:39 Mouq left
Timbus yeesh thats a tough one to think about 01:41
01:50 ssutch left 02:00 jack_rabbit joined 02:13 kaare__ joined 02:19 KCL joined 02:22 KCL_ left 02:23 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 02:30 yeahnoob joined, tinyblak joined 02:33 chenryn joined, dayangkun left
adu why am I getting "Could not find HLL::Actions"? 02:38
02:42 Mouq joined
hoelzro indeed =/ 02:45
Ven timotimo: hope you're watching AGDQ :P 02:46
02:51 bcode joined, colomon left 03:00 abraxxa left
Ven .tell masak for no reason, if you want to see the code of CL::LOOP (in SICL), he it is: github.com/robert-strandh/SICL/tre.../Code/Loop currently 4.5k lines, to be ~6k when finished 03:08
yoleaux Ven: I'll pass your message to masak.
03:24 colomon joined 03:25 xinming_ joined 03:27 xinming left 03:28 kaare__ left 03:33 FROGGS joined 03:36 tinyblak left 03:37 noganex joined 03:40 colomon left, noganex_ left 03:43 Ven left 03:44 colomon joined 03:46 Mouq left 03:56 colomon left 04:02 colomon joined 04:21 Mouq joined 04:28 raiph left 04:29 kaleem joined 04:36 chenryn left 04:45 tinyblak joined 04:51 tinyblak left, tinyblak joined 04:52 chenryn joined 05:12 Mouq left
dalek p: e4bd2c9 | (Geoffrey Broadwell)++ | t/concurrency/02-lock.t:
Add more lock/condvar tests for condsignalall
05:15
p: bc71f08 | (Geoffrey Broadwell)++ | t/concurrency/TODO:
Update t/concurrency/TODO
p: 806f945 | (Geoffrey Broadwell)++ | t/concurrency/02-lock.t:
Add comment noting nqp-j failure in condsignalall tests
05:18
05:21 tinyblak_ joined 05:25 tinyblak left, kaleem left 05:27 ssutch joined
adu is there a list of all nqp operations? 05:27
github.com/perl6/nqp/blob/master/d...s.markdown 05:35
found it
05:45 tinyblak_ left 05:46 tinyblak joined, tinyblak_ joined 05:50 tinyblak left
raydiak \o adu, how went the battle today? 05:58
adu hmm
mostly reading up on stuff
I also found a source that should parse, but fails 05:59
'typedef union { char __mbstate8[128]; } __mbstate_t;'
raydiak was grammar::tracer any help?
adu raydiak: yes 06:00
struct-or-union-specifier:sym<decl> should be matching, but it isn't
but it's really bizarre 06:01
'char __mbstate8[128];' matches
'typedef union { char x; } __mbstate_t;'
also matches
but for some reason both combined fails
raydiak hmmm looking 06:02
adu I'm wondering if using || instead of proto would fix it 06:03
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
adu that was the idea :) 06:08
raydiak thanks :) will let you know how far it gets
ah ha....thought I was losing my mind...cdump is broken for piping :) 06:17
if you remove the "/dev/stdin" part it works
also bad for portability...you can say $*IN if you want, but slurp() by itself works on stdin by default 06:18
adu oh 06:19
raydiak: $*IN complains that the first argument to slurp is not a filepath 06:20
raydiak $*IN.slurp should work 06:21
adu what? where is all of this documented?
raydiak design.perl6.org/S32/IO.html mostly 06:22
buuut...looks like $*IN.slurp is deprecated in favor of $*IN.slurp-rest in recent rakudo
adu aha 06:23
raydiak which doesn't seem to be documented yet, that I can find
adu but then why does it still fail when I put that first example into C::Parser::StdC11Parser.parse()?
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:24
adu ah 06:25
raydiak I'm still looking at yours, now I can try it out and see what you're seeing
adu I usually do bin/cdump.pl6 -
raydiak defaults to the - anyway though, right? 06:26
adu yes
raydiak heh that's a long trace 06:29
06:32 FROGGS left
adu This is what I get: gist.github.com/andydude/1bde60efbe93ea8af4e9 06:36
06:37 kurahaupo left
adu oh crap 06:43
it is a bug in my code
raydiak that's good news :)
adu I just had to think about it
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 b 06:46
non-type
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:48
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:54
adu raydiak: github.com/andydude/p6-c-parser/co...ef795bfdb2 06:55
fixed
06:55 Mouq joined
adu hi Mouq 06:56
raydiak nice 06:58
moritz \o 06:59
raydiak you've been putting a lot of effort into this adu++
o/ moritz
adu raydiak: thanks :)
07:00 Mouq left
raydiak you're welcome :) 07:00
07:02 [Sno] left 07:03 psch joined
adu raydiak: also, did you see the tests are passing? 07:03
psch hi #perl6 \o 07:04
raydiak adu: I did! I installed it via panda and everything earlier
07:09 KCL_ joined, kaleem joined
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:10
raydiak: which means building jvm currently only works with NQP master HEAD 07:11
07:11 KCL left
raydiak ah got it, thanks psch++ 07:12
psch fwiw, the fix for bootstrapping panda is also only available with an NQP bump... :) 07:14
07:25 anaeem1_ joined, Sqirrel left 07:29 FROGGS[tab] left 07:32 Rounin joined 07:33 xfix joined 07:34 kurahaupo1 joined 07:39 sirdancealot joined 07:48 virtualsue joined 07:49 FROGGS joined
raydiak adu: 'typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t;' fails 07:50
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:52
raydiak ah right 07:53
07:54 KCL_ left, virtualsue left
adu maybe I should make it smarter 07:55
or stupider
raydiak what about 'extern int getc (FILE *__stream);' 07:57
07:58 tinyblak_ left, [Sno] joined 07:59 tinyblak joined 08:01 tinyblak_ joined, denis_boyun_ joined
adu raydiak: hmm 08:02
08:02 zakharyas joined
raydiak adu: here is what I am using to hammer on it and shake the loose stuff out: gist.github.com/raydiak/e268376b2cb6280ad7d3 08:04
08:04 tinyblak left 08:05 tinyblak_ left
adu ah 08:06
that is interesting
08:06 tinyblak joined
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:08
08:09 ssutch left 08:10 ssutch joined
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
adu what I really should be doing is 2 levels of ASTs 08:12
C::AST::Syntax, and C::AST::Semantics
08:12 tinyblak_ joined
adu and use the C::AST::Semantics to obtain the name and type objects 08:12
I wonder if the MARKER, MARKED methods would help 08:13
08:13 darutoko joined 08:14 tinyblak left
raydiak if you ask around during the busier times, you'll probably get some useful advice 08:14
08:14 krunen joined
FROGGS adu: v5 has MARKER, MARKED and EXPR (ported from nqp) 08:16
08:16 denis_boyun_ left
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
or what they mean
FROGGS: do you mean perl5? 08:17
FROGGS adu: no, v5
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)
github.com/rakudo-p5/v5
github.com/rakudo-p5/v5/blob/maste...ar.pm#L852 08:19
adu oh, so it is perl5 related
FROGGS it is used here: github.com/rakudo-p5/v5/blob/maste...ar.pm#L962
adu I don't know anything about perl5, so I'm not sure that helps
08:19 denis_boyun_ joined
FROGGS adu: v5 is a Perl 5 grammar/interpreter (slang) written as a Perl 6 module 08:19
adu I bet it would be pretty easy to make a scheme slang 08:22
moritz dares adu to try 08:24
&w 6 08:25
sorry, garbled irrsi command
adu one thing at a time
08:35 pdcawley joined, fhelmberger joined 08:40 telex left 08:42 telex joined
arnsholt o/ 08:43
adu: Actually, a modern Lisp can quickly get complicated, due to circularity things 08:44
dalek p: 3933e32 | jnthn++ | / (2 files):
Implement missing falsey(num) for MoarVM backend.

Closes #194.
adu arnsholt: I'm aware. I wrote a scheme before 08:45
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
Although CL is even harder than Scheme, I think
adu I'm not a fan of CL 08:55
08:56 jack_rabbit left
raydiak oh I'll bet someone is around now who can bump nqp to fix r-j build fail :) 09:00
moritz might manage that :-) 09:01
dalek p: d9b2c03 | jnthn++ | / (2 files):
Make nqp::splice have a result on Moar.

This brings it in line with JVM and Parrot. Closes #216.
p: f5889af | jnthn++ | tools/build/MOAR_REVISION:
Get Moar with ReentrantMutex fix.
jnthn Heh, I was about to do it 09:02
Was just getting the Moar bump in first. :)
moritz: Do you want to, or shall I? :)
moritz jnthn: you do it
jnthn k
moritz jnthn: I was just wondering if I should wait for more fixes from you :-)
jnthn I found a few spare moemnts to pick off a couple of small things :0
Well, the ones here are NQP bug reports rather than NQP things affecting Rakudo.
09:03 tinyblak_ left, denis_boyun_ left, tinyblak joined 09:04 kjs_ joined 09:13 kjs_ left 09:14 ssutch left, ssutch joined
dalek kudo/nom: a2e24a3 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for Moar, JVM improvements.
09:14
09:18 azawawi joined 09:19 ssutch left, molaf__ joined 09:21 molaf_ left
azawawi hi 09:22
tony-o: ping
.tell tony-o github.com/tony-o/perl6-http-serve...c/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.
adu I think I fixed the typedefs for good 09:26
raydiak \o/ 09:27
dalek ast: 0aee8d1 | jnthn++ | S12-attributes/class.t:
Toss now-invalid method ^foo() { } tests.

New tests will be written to cover the currently spec'd meaning.
09:28
ast: d3ec728 | jnthn++ | S05-metasyntax/longest-alternative.t:
Make test robust in the face of Windows newlines.
09:31
09:34 virtualsue joined
raydiak yay r-j builds and works again including actually using it with panda and everything 09:37
09:37 rurban joined
moritz \o/ 09:37
psch \o/ 09:38
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?
+on
as in, how long... :) 09:40
raydiak 65
had to scroll back up and find it
psch wow
i'm between 90 and 160 depending on other processes on my machine... maybe i actually should bug moritz about a login... :)
raydiak it ran pray about 3x faster than my laptop in 1 quick test 09:41
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:46
jnthn Away prolly until evening & 09:47
raydiak \o jnthn
moritz psch: what username do you want? 09:50
JimmyZ m: my $spot is Scalar;
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/7KqDhtmPN2␤Variable trait 'is TypeObject' not yet implemented. Sorry. ␤at /tmp/7KqDhtmPN2:1␤------> my $spot is Scalar⏏;␤ expecting any of:␤ constraint␤»
JimmyZ std: my $spot is Scalar;
camelia std f9b7f55: OUTPUT«ok 00:00 135m␤»
adu raydiak: my large test case is glib/gbytes.c 09:52
psch moritz: psch is fine, unless that's taken somehow... :) 09:54
moritz psch: account added, see privmsg 09:56
09:57 yeahnoob left
psch moritz: yup, i noticed, thanks again :) 09:57
10:01 psch left, psch_ joined, psch_ is now known as psch
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: github.com/robert-strandh/SICL/tre.../Code/Loop currently 4.5k lines, to be ~6k when finished
10:03 tinyblak left
masak ai ya. 10:04
10:04 tinyblak joined
moritz good UGT, masak :-) 10:04
psch o/ masak
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:08 chenryn left 10:09 tinyblak left, chenryn joined
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.␤»
masak m: my @a = <g u t>; @a.=[1, 0, 2]; say "Das ist @a.join.uc()."
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/jvBhxO6S_w␤Cannot use .= on a non-identifier method call␤at /tmp/jvBhxO6S_w:1␤------> my @a = <g u t>; @a.=[1, 0, 2]⏏; say "Das ist @a.join.uc()."␤»
masak is still a little sad that the above doesn't work
10:09 virtualsue left
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␤␤»
masak and that one looks like an implementation fossil of some sort. 10:10
10:11 azawawi left
moritz not really 10:11
it feels more like a language inconsistency
. is really for methods
and yet we continue to allow it in some places for postcircumfix [ ], even though it has been morphed into a sub 10:12
but not in all places
10:15 ssutch joined, virtualsue joined
raydiak g'night #perl6 10:18
10:19 ssutch left
moritz good night raydiak 10:19
10:23 tinyblak joined 10:24 TuxCM left 10:25 sirdancealot left
dalek kudo/nom: 804be33 | usev6++ | src/core/Any.pm:
Replace junctions with short-circuit inclusive-or
10:28
kudo/nom: 0769d41 | lizmat++ | src/core/Any.pm:
Merge pull request #345 from usev6/nom

Replace junctions with short-circuit inclusive-or
10:28 konsolebox joined 10:29 TuxCM joined 10:30 chunkykink joined 10:32 tinyblak left, tinyblak joined, chunkykink left
psch gah, found a stupid bug in the jvm-interop 10:34
apparently i forgot to check if the java method actually returns something, and now void methods NPE 10:35
10:35 denis_boyun joined
arnsholt psch: At least those bugs are pretty easy to fix =) 10:35
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:37
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:45
dalek ast: 27e50a6 | lizmat++ | S22-package-format/local.t:
Unfudge now passing precomp test, jnthn++
10:47
10:54 yeahnoob joined
psch from the looks of it straight returning gcx.Nil is ok 10:55
dalek kudo/nom: 1b769df | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:
Check if we actually got a return value from the Java method.

This fixes shortname candidates that return void throwing a NullPointerException.
kudo/nom: eed5d33 | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:
Merge pull request #346 from peschwa/jvminterop

Check if we actually got a return value from the Java method.
11:05 bjz joined, donaldh joined
dalek kudo/nom: 66ce535 | donaldh++ | tools/build/create-jvm-runner.pl:
Disable bytecode verification to improve JVM startup.
11:12
kudo/nom: 1c8c8fc | FROGGS++ | tools/build/create-jvm-runner.pl:
Merge pull request #347 from donaldh/jvm-noverify

Disable bytecode verification on JVM to improve perl6 startup.
11:13 chenryn left
donaldh oooh, thanks FROGGS++ 11:13
yoleaux 4 Oct 2014 14:20Z <[Coke]> donaldh: if I can "donaldh/perl6-eclipse-plugin for dummies README"
4 Oct 2014 14:20Z <[Coke]> donaldh: (that is, if I can -have- one, not make one)
11:15 ssutch joined
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
after: ./perl6 -e 'say "hi"' 8.07s user 0.33s system 238% cpu 3.515 total 11:17
FROGGS ohh wow
donaldh++
11:17 kaleem left
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.
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.
4 Jan 2015 20:28Z <jnthn> lizmat: 7e95c05 in MoarVM should fix your reentrantmutex serialization woes.
lizmat jnthn++ nine++ 11:18
donaldh: that will shave quite a bit from the JVM spectest in wallclock
lizmat runs one before for comparison
donaldh when not using evalserver, yes.
lizmat I never managed to complete jvm spectest with evalserver 11:19
11:21 ssutch left 11:22 kurahaupo1 left 11:24 chenryn joined 11:28 kaleem joined
moritz does the standard "make j-spectest" use the evalserver right now? 11:30
[Coke]: any chances we could get updates to github.com/coke/rakudo-star-daily/ ? 11:31
lizmat moritz: don't think so 11:32
I just do TEST_JOBS=1 make spectest and it works (slowly) 11:33
11:33 kaleem left
dalek Heuristic branch merge: pushed 22 commits to rakudo/newio by lizmat 11:33
11:36 donaldh left, sergot_ joined, yeahnoob left, Sir_Ragnarok left, ribasushi left, avuserow left, Brock left, dagurval_ joined, pmichaud joined, nebuchadnezzar joined, breinbaas joined 11:37 donaldh joined, yeahnoob joined, awwaiid joined, Sir_Ragnarok joined 11:38 avuserow_ joined 11:40 kaleem joined, bjz left 11:41 moritz joined 11:42 ribasushi joined 11:47 tinyblak left, bjz joined, tinyblak joined 11:48 tinyblak_ joined 11:50 breinbaas left 11:51 breinbaas joined
dalek kudo/newio: be0653f | lizmat++ | src/core/IOU.pm:
We don't need shadowing for these methods

They don't check the file system, and are therefore handled by IO::Locally
11:51
11:52 tinyblak left 11:53 Ven joined, kaleem left 11:57 Vlavv left
masak ok, #perl6. someone want to have a satisfyingly civil discussion about function decomposition? 12:05
dalek ecs/newio: 7ce8759 | lizmat++ | S16-io.pod:
Most of the IO::Locally changes for now
12:06
lizmat
.oO( let it rot? :-)
dalek line-Perl5: 28b966d | (Stefan Seifert)++ | / (3 files):
Create proxy functions for all functions in an imported P5 module.

This allows for calling package functions using their fully qualified name: use Test::More:from<Perl5>; Test::More::ok(1); Test::More::done_testing;
Method call syntax now does real package method calls: use Data::Dumper:from<Perl5>; Data::Dumper.Dump([1]);
12:07
lizmat sorry, couldn't resist
nine Yes! Yes! Yes! Yes! Yes! :)
I just love how this all comes together :)
moritz nine++
masak lizmat: :) 12:08
12:09 chenryn left, bjz left 12:10 Vlavv joined, bjz_ joined
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:10
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.
lizmat (not on parrot, though)
masak lizmat: I remember diving into the Parrot source to fix it. the bug was not there.
lizmat ?
masak well, obviously, it was there... but
the structure of the code -- layers upon layers of calls down do lower primitives -- looked fundamentally right. 12:12
worse, it was about 90% structure/overhead/indirection, and about 10% interesting code.
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.
masak I got into a Twitter argument yesterday, arguing against decomposition for decomposition's sake.
lizmat fwiw, I try to decompose after the fact
masak it did not go well. mostly because I was talking to strangers, and I was not in their in-group. 12:14
so now I'm talking to #perl6 ;)
lizmat :-) welcome!
masak fwiw, I love function decomposition.
dalek kudo/newio: cb3bd5f | lizmat++ | src/core/IO/Locally.pm:
Deprecate .absolute/.relative, introduce .relpath
12:15
moritz I also guess that twitter isn't suitable for certain kinds of discussions
masak *nod*
moritz mostly when not all participants share the same terminology
donaldh ( s/loath/loathe/ )
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
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.
nwc10 goes to read a blog post on chrononsystems.com/
"Error establishing a database connection"
xiaomiao you can't hide complexity
masak function decomposition is no different -- you can definitely produce a system where too-decomposed functions makes the system structure *less* approachable.
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?
masak xiaomiao: s/complexity/essential complexity/, right.
nwc10 I can't type
xiaomiao masak: yes, that's more precise 12:18
if you try to hide that level of complexity you get idiot boxen
masak xiaomiao: we still have way too much of the accidental kinds.
arnsholt It's the whole "anything can be solved by another layer of indirection, except the problem of too many layers of indirection" thing
masak arnsholt: yeah. that's what I had with the Parrot bug.
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.
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
masak xiaomiao: yeah, it's a mystery.
xiaomiao the slowest parts are things like harddisk spinup where you might need, say, 5 seconds until the device is operational
moritz xiaomiao: most recent desktop/laptop system I've used boot very fast
xiaomiao I got a VM to boot in 300msec 12:21
moritz xiaomiao: Debian jessy with systemd is quite fast, for example
xiaomiao moritz: your idea of "very fast" is still slow
nwc10 in this case, I don't think that it's slashdot. It's just unhappy
xiaomiao and systemd is not doing things correctly
masak nwc10: what used to be on that page?
xiaomiao we've done 5 seconds on the original EeePC when it came out ...
masak nwc10: how is it interesting to #perl6? :)
xiaomiao without nasty hackery abuse
nwc10 masak: chrononsystems.com/blog/java-7-desi...or-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
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?
nwc10 masak: you'll need to be reading it via Google's cache
xiaomiao moritz: I have some machines at work that need 300 seconds to reach bootloader
... 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 12:30 yeahnoob left 12:31 yeahnoob joined
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
12:32 darutoko left
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:33
12:35 jluis joined
dalek kudo/nom: 22db535 | lizmat++ | src/core/Deprecations.pm:
All deprecated code will be removed at 6.0.0
12:38
nine lizmat: somehow this makes 6.0.0 become more real 12:39
dalek kudo/nom: 97bf782 | lizmat++ | docs/ChangeLog:
All deprecated code will be removed at 6.0.0
12:40
lizmat making real is what we do :-)
masak anyway, thank you #perl6 for your reasoned debate (and, conveniently, agreement). you are the soothing salve where Twitter merely chafed.
lizmat afk for a few hours
12:42 bjz joined, bjz_ left 12:46 donaldh left 12:50 bjz left 12:51 bjz joined 12:52 kaleem joined
dalek ecs: f2ed255 | (Stéphane Payrard)++ | S99-glossary.pod:
gorilla/banana problem
12:54
12:54 darutoko joined, yeahnoob left 12:55 brrt joined 13:00 anaeem1_ left
Ven masak: who's not civil? 13:01
dalek ecs: 210cb23 | (Stéphane Payrard)++ | S99-glossary.pod:
fixing outward links in gorilla/banana
13:04 cognominal joined, ssutch joined
cognominal masak: also in FP, pointfree programming gets obscure fast. 13:05
13:09 bjz left, ssutch left
dalek ecs: 197d679 | (Stéphane Payrard)++ | S99-glossary.pod:
FP
13:10
13:11 tinyblak joined 13:12 tinyblak_ left
cognominal by the way, does Perl 6 have a function composition operator? 13:12
13:14 sirdancealot joined, cognominal left 13:18 cognominal joined, bjz joined
colomon cognominal: not to my knowledge, but it's pretty easy to write one (at least for a given arity) 13:20
Ven cognominal: no it doesn't 13:21
13:22 bjz left
arnsholt An operator like Haskell's (.) would be a bit tricky in the general case becauseof arity, like colomon said 13:22
masak Ven: doesn't matter much. someone who should know better. 13:24
Ven: the morbidly curious can peruse my twitter history. it's all there.
Ven masak: sorry, that was a rhetorical question
masak that was not at all clear :P
Ven 'twas an invitation to talk, because I had a stale backlog, but I've finished clogging by now 13:25
masak :) 13:26
I'm all for talking.
colomon m: sub infix:<(.)>(&a, &b) { -> \c { &a(| &b©); }; # something like that, maybe? 13:27
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/fiL28_kUCE␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/fiL28_kUCE:1␤------> ub infix:<(.)>(&a, &b) { -> \c { &a(| &b⏏©); }; # something like…»
colomon idiot IRC client
masak m: sub infix:<$>(&f, $x) { f $x }; sub infix:<⚬>(&f, &g) { -> $x { f g $x } }; say (&uc ⚬ &flip) $ "iah ho"
camelia rakudo-moar 80b912: OUTPUT«OH HAI␤»
masak colomon: crate minds think alike ;)
colomon ;)
Ven masak: well, I moslty agree with the consensus reached. it's hard to have abstractions *and* simplicity
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:28
Ven masak: imho, there's a loooot to it. 13:29
masak could you rephrase that? what is there a lot to? 13:30
13:30 bjz joined
Ven masak: to design 13:30
well, it's pointless to say it like that 13:31
masak hah :)
I agree, fwiw. and I think I see what you're grasping at.
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
on some level, it's just "think about shit you implement".
Ven "think at the macroscopic level, not the microscopic one"
("plus it has marco in the name")
masak :)
masak .oO( <diakopter> marco-scopic ) 13:33
13:34 chenryn joined, donaldh joined
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
and I said it was nuts that, in 2014, we still couldn't ask for reliable HL from our tool.
masak I'm not sure I see the connection between that and the discussion about function decomposition. 13:35
oh, or did you relate it to the discussion about design?
xiaomiao Ven: mostly because we add more and more features
Ven ...but I have some stuff to explain, still ;)
masak listens
xiaomiao it's marketing-driven development - "we need 12 new features for this release, think of something you can add!"
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/ ;)
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"
xiaomiao Ven: iow, business/marketing needs outweigh everything else? ;) 13:37
Ven quite so.
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:38
13:38 fhelmberger left
xiaomiao I once had to break the permissions on the svn server so that people could use eclipse 13:39
13:39 bjz left
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
and, of course, retraining people to use a commandline instead of point and grunt is too difficult
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...
cognominal Can someone explains the difference between mixins and roles?
Ven cognominal: a mixin is a role 13:41
there's no "mixin" keyword
if that was from my tutorial, please point me at the line, I'll rephrase it
cognominal say, a js mixin and a Perl 6 role?
Ven js mixin? 13:42
cognominal hum, in fact there is not much in a js mixin, that's just extending an object with new keys 13:43
13:43 rindolf joined
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
cognominal I guess there are differences when handling conflcting keys. Don't remember how Perl 6 role handles that (conflicting attributes/methods) 13:46
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)␤»
Ven m: role A { method f {} }; role B { method f {} }; class C does A does B { method f {} };
camelia ( no output )
cognominal hum, that interesting : ericleads.com/2013/02/fluent-javasc...otypal-oo/
Ven cognominal: like here.
cognominal yes 13:48
13:50 anaeem1 joined 13:56 bjz joined
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␤»
FROGGS I love Perl 6
14:01 virtualsue left
cognominal in the p6 shell, on non strict mode, it barks when I redefine a class. I consider that as a misfeature 14:01
Ven I do as well... 14:02
FROGGS why?
m: 6; class Foo { }; { class Foo { } } 14:03
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/ZmKJ2nboXn␤Redeclaration of symbol Foo␤at /tmp/ZmKJ2nboXn:1␤------> 6; class Foo { }; { class Foo ⏏{ } }␤ expecting any of:␤ generic role␤»
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)
FROGGS m: 6; my class Foo { }; { my class Foo { } }
camelia ( no output )
FROGGS Ven: my-scope them
Ven alright. 14:05
14:05 raiph joined, virtualsue joined
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:06
donaldh Yes, you explicitly want class replacement when iteratively developing with readline 14:07
*readline history*
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
14:08 chenryn left
donaldh s/developing/experimenting/ 14:08
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.
FROGGS bartolin: but don't beat MoarVM, I tell ya! :P
14:10 bjz left, Ugator joined 14:11 Ven left 14:12 kaleem left 14:13 bjz joined 14:23 bjz left 14:24 kaleem joined 14:25 bjz joined
brrt can i take a moment to celebrate the epic stupidity of having an interpreted templating language... implemented in python 14:27
14:27 Ven joined
brrt question - how do we do better? compile templates? 14:28
lizmat in P5, HTML::Mason e.g. compiled templates to P5 source code
[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
*P6
brrt i never knew about that, that's pretty awesome
but yeah, we could do that (precomp generated code) 14:30
14:30 chenryn joined
FROGGS brrt: what I as of today do is: my &dist := Template::Mojo.new(slurp 'views/dist.tt').code; 14:32
though, that's not quite precomp'd yet :o)
[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:33
masak [Coke]: ok, nice to know. 14:38
[Coke]: it just struck me as a problem that ought to be solvable, but that the diff tools I use don't do.
dalek kudo/newio: 22db535 | lizmat++ | src/core/Deprecations.pm:
All deprecated code will be removed at 6.0.0
kudo/newio: 97bf782 | lizmat++ | docs/ChangeLog:
All deprecated code will be removed at 6.0.0
kudo/newio: 109a680 | lizmat++ | / (2 files):
Merge branch 'nom' into newio
kudo/newio: e876378 | lizmat++ | src/core/io_operators.pm:
Remove obsolete :test parameter from indir()
kudo/newio: 710a46b | lizmat++ | src/core/IOU.pm:
Add missing shadower for IOU.o
kudo/newio: 81830f5 | lizmat++ | src/core/IO/Dup.pm:
Add missing shadowers for IO::Dup
14:39 bjz left 14:40 kaleem left
[Coke] masak: you can get a 30 day eval of beyond compare to test. 14:40
14:40 kaleem joined
[Coke] nativey versions for win/mac/linux 14:40
14:41 adu left, Possum joined
[Coke] moritz: getting the same failure we got in the repo. Will have to investigate. 14:41
14:41 Mouq joined
masak .oO( nativity version for Manger OS ) 14:41
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
(we can also compile templates to machine code with moarvm though :-))
lizmat can we ? 14:46
brrt eventually, yes
we can compile regexes :-)
[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:48
14:52 skids joined 14:53 sqirrel joined, ssutch joined 14:58 ssutch left 14:59 [Sno] left, bjz joined
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.
lizmat wow, that too long 15:08
.tell jnthn what I see, is an exception being thrown if the path doesn't exist
yoleaux lizmat: I'll pass your message to jnthn.
lizmat .tell jnthn is that an implementation issue, or a documentation issue?
yoleaux lizmat: I'll pass your message to jnthn.
15:09 mr-foobar joined, Mouq left 15:10 bjz left 15:12 kaleem left 15:13 treehug88 joined 15:14 kaleem joined 15:18 Mouq joined, Rounin left
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?
moritz good am, pm 15:21
15:21 bjz joined
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. :)
I'm here this morning to find out the latest news on FOSDEM :)
15:22 tinyblak_ joined
PerlJam pmichaud: greetings! 15:22
15:22 tinyblak left
lizmat pmichaud: the latest? well, TimToady is going to give a presentation in the main track 15:23
pmichaud PerlJam: greets!
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
pmichaud moritz: hmm. That didn't used to be true.
moritz perl6 tools/build/panda-state.p6 >>MANIFEST # from tools/star/Makefile 15:25
pmichaud github.com/rakudo/star/commit/54b6...d06fb6a800 15:27
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: gist.github.com/Mouq/478533e8f37d2569ce08 though it's not slang-ified, and it's DEFINITELY not Scheme 15:29
yoleaux Mouq: I'll pass your message to adu.
pmichaud Perhaps that step belongs in a different stage of the building process.
15:30 sirdancealot left
pmichaud Or, the script is fairly short -- perhaps it should be a p5 script for now. 15:30
15:30 salv0 joined
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:30
15:31 tinyblak joined
moritz I have no objections to it; I'd just document it 15:31
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
15:33 tinyblak_ left, Akagi201 left, Akagi201 joined
moritz FROGGS: is that still necessary? 15:34
pmichaud I'm afk for a while -- bbl 15:35
15:35 chenryn left 15:38 bjz left
[Coke] how many people every have to build a star release? less than a dozen. 15:38
*ever.
It's fine with me to leave it there.
dalek c: ed78d87 | moritz++ | lib/Type/Lock.pod:
document that Lock is reentrant
[Coke] (now that it's there. I'm pretty sure I complained when it was added. :)
moritz: I keeping getting failures on : Clone of 'git://github.com/tadzik/Bailador' into submodule path 'modules/Bailador' failed 15:39
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
[Coke] ok. I'll see about moving things there, but will be after dayjob.
moritz [Coke]: I do get some hangs in the module tests and precompilations on parrot
[Coke]: you can use github.com/perl6/infrastructure-do...rakudobrew to get the perl6 binary that is needed for building star 15:42
lizmat did anybody mention fosdem.org/2015/interviews/2015-larry-wall/ before ? 15:44
15:44 spider-mario joined, chenryn joined
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
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
dalek Iish: cdfeada | moritz++ | t/99-common.pl6:
Avoid junctions and warnings
15:52
15:53 davido_ left
lizmat afk for a bit& 15:54
15:55 davido_ joined
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
brrt ah found it 15:55
15:57 woolfy joined
hoelzro o/ #perl6 15:58
brrt \o hoelzro 15:59
16:02 kaleem left
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:03
16:04 araujo left
dalek Iish: ceed8fb | moritz++ | lib/DBIish.pm6:
Remove hard-coded list of modules

instead use require and dynamic lookups. Rakudo has supported them for a while now :-)
16:05
16:05 chenryn left 16:06 araujo joined 16:11 bjz left 16:13 chenryn joined 16:15 bjz joined
TimToady darn it, who put that bright thing up in the sky so early in the morning... 16:23
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
this one's kinda yellowish and smaller though 16:26
b2gills Looking outside, just about everything is white, except for the empty tree branches 16:27
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
TimToady
.oO(the Midwest sometimes lasts until mid May...)
16:29
b2gills $_ = 'winter'
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 brrt left
TimToady occasionally misses Winter® 16:32
it actually got down almost to freezing last week 16:33
b2gills I don't think you can really appreciate Summer without Winter
TimToady sure, and nobody appreciates a sunny day like a Seattlite
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..."
FROGGS Germany - where it is all dark already and there are no glares in your laptop screen...
16:35 zakharyas left, FROGGS[mobile] joined
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.
nwc10: I don't think that's how time works.
(he said, deliberately ignoring any other threads of that convo) 16:40
16:40 bjz left 16:42 FROGGS left, pyrimidine left, jluis left, pyrimidine joined 16:43 kaleem joined
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: perlcabal.org/syn/S12.html#abstract
16:46 anaeem1 left
TimToady yes, we've never really quite got around to emulating Haskell's Error monad 16:49
the :U vs :D thing is more like a Maybe
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
dalek rl6-roast-data: 2314fd7 | coke++ | / (5 files):
today (automated commit)
16:50
TimToady that has been considered as a possibility, but we don't really know how it'd work out
16:53 kaleem left
TimToady plus it's not clear how to implement a mixin on something that isn't definite 16:54
16:54 Ven left
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:56
16:56 donaldh left
TimToady notes that rosettacode.org/wiki/Function_composition#Perl_6 is one of the oldest entries 16:58
colomon TimToady: does it work? ;) 16:59
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` )
colomon thinks that code is incredibly beautiful
17:01 denis_boyun left 17:02 virtualsue left 17:03 [Sno] joined 17:05 virtualsue joined, IllvilJa joined 17:07 rurban left
[Coke] is hack.* intended for both irssi usage and "continuous" testing? 17:11
17:13 sqirrel left
TimToady doesn't understand that question 17:14
17:14 telex left
[Coke] nevermind, I already know that answer. 17:14
masak ask questions the answer to which you don't know! :P
TimToady doesn't even know the question...
[Coke] someone with sudo on hack, I could use the ncurses library installed.
PerlJam thought [Coke] had sudo on hack 17:15
[Coke] coke is not in the sudoers file. This incident will be reported.
TimToady who are you really? 17:16
[Coke] I'm just this guy, you know?
17:16 telex joined
TimToady and what have you done with the Real Thing? 17:16
17:17 [Coke]_ joined 17:18 chenryn left 17:19 [Coke]_ is now known as [Coke]
TimToady
.oO(it's the new [Coke]...)
17:20
17:20 bjz joined
[Coke] ... same as the old Coke. 17:21
17:22 ssutch joined
dalek frastructure-doc: 006775b | PerlJam++ | hosts/hack.p6c.org.pod:
Add Coke to sudoers
17:22
17:23 Rounin joined
[Coke] Thanks to whoever installed curses, also! ;) 17:23
17:26 ssutch left 17:30 raiph left
[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:37
17:38 bjz left 17:43 pmurias left, raiph joined
lizmat how time flies: hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat 17:44
jdv79 any idea if nativecall is going to be fixed for 32bit anytime soon?
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.
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
jdv79 maybe i'll try tonight then. 17:48
TimToady well, of course, Edison actually had minions to do it :)
jdv79 except the 32bit box is at $work - maybe an old box i have laying around is 32 as well.
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?
TimToady has minions but is woefully inadequate as an Evil Mastermind™
we probably need to define a Cint type or so 17:50
cognominal ... just an eval Mastermind
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
17:51 KCL_ joined
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:51
(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
Mouq TimToady: Speaking of minions, irclog.perlgeek.de/perl6/2015-01-04#i_9886722
TimToady that the DFA questions?
arnsholt No, NativeCall will use 64-bit in all cases, since that's how wide Rakudo's unmodified ints are
Mouq Yeah
TimToady at the moment, there are several things holding back a DFA optimization 17:53
one could certainly deal with the exponential problem with a lazy state generator, as grep does
however, the current fate system (along with the current longest literal system) kinda works against having a DFA 17:54
especially since the current NFA recombines alternatives 17:55
[Coke] reviewingly supposes he is a minion of Edison.
17:55 bjz joined
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
a tokenizer that is producing such fates never really recombines alternatives, but is just a tree of recognizers
so that would tend to amplify the number of states that a DFA would have to handle 17:57
another consideration is that the NFA is usually pretty efficient after the first character
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
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 pdcawley left, anaeem1_ joined
TimToady and maybe even only do that for large initial decisions, such as for statement or term or infix 18:00
18:00 anaeem1 left
Mouq I think I see what you mean. Would that generalize longestlit? 18:01
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
or stick with the NFA, as STD does
18:05 Hor|zon left
TimToady longestlit is tricky, and maybe next to impossible with a DFA 18:05
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
however, parentheses are troublesome
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
TimToady well, regex always bite you somewhere 18:09
and trying to parse as many tokens as P6 has it guaranteed to give any regex implementation heartburn :)
*is
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: gist.github.com/Mouq/478533e8f37d2569ce08 though it's not slang-ified, and it's DEFINITELY not Scheme
adu like try a rule, then if it doesn't match, then run some code?
TimToady don't really need try/CATCH for that 18:11
<somerule> || { some code }
adu duh
right
18:12 mephinet left 18:13 flussence left, avalenn joined, Celelibi left 18:14 [Tux] left 18:16 ggherdov joined, flussence joined, denis_boyun joined, timotimo joined 18:17 lsm-desktop joined, Celelibi joined, hobbs joined 18:18 gfldex left, [Tux] joined 18:19 gfldex joined 18:21 mephinet joined 18:22 mvuets joined, Juerd joined
adu Mouq: nice 18:23
18:24 MRBNJMN joined, MRBNJMN left 18:25 bjz left 18:26 clkao joined, Rounin left 18:32 yogan joined
raydiak mornin #perl6 18:32
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
18:34 zakharyas joined, vladtz joined
Mouq TimToady: Also, thank you for your comprehensive response 18:35
18:43 bjz joined 18:55 bjz left 19:01 darutoko left 19:02 Hor|zon joined 19:04 bjz joined
lizmat just wrote a draft for the Perl 6 Weekly p6weekly.wordpress.com/?p=274&p...iew_id=274 19:04
comments, suggestions, additions, errata welcome!
19:05 darutoko joined, KCL_ left
Mouq lizmat: That link doesn't work for me 19:05
lizmat gist.github.com/lizmat/f127bfaa4175d0acf7dc 19:06
19:06 Hor|zon left
lizmat Mouq: raw text link ^^^ 19:07
Mouq lizmat: Thanks! :)
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
please don't be shy :-)
19:08 Sqirrel joined, rindolf left
Mouq lizmat++: moritz++ has also been documenting the Metamodel::* classes 19:10
psch moritz++ has done loads of great documentation work recently
Mouq psch: I agree wholeheartedly 19:11
psch aside from Metamodel:: there was at Supply and other things i'm forgetting
s/at//
Mouq psch: I think your work certainly warrents mentioning as well 19:12
psch Mouq: probably... :)
lizmat: shortname for overloaded Java methods has landed
constructors as well
as in, jvm-interop doesn't need knowledge of method descriptors anymore 19:13
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
m: say "foo" (elem) <foo bar baz>
camelia rakudo-moar 80b912: OUTPUT«True␤»
psch m: say "quux" (elem) <foo bar baz>
camelia rakudo-moar 80b912: OUTPUT«False␤»
adu psch: can you break that down? is that a function call? or an enum?
psch adu: (elem) is an infix, the texan form of ∈ 19:17
<foo bar baz> is qw//, in case that tells you something :) 19:18
adu m: say "a" ∈ qw<a b c>
camelia rakudo-moar 80b912: OUTPUT«True␤»
hoelzro lizmat++
adu psch: I much prefer the non-Texas version
psch lizmat++ # writing p6weekly
hoelzro is "columns" the right nomenclature to use for the <=> change? 19:19
perhaps elements?
psch adu: that's fine, my compose key is wonky atm, that's all :) 19:20
[Coke] anyone using rakudo.jvm on hack?
j: say 3
camelia rakudo-jvm 80b912: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory␤»
lizmat hoelzro: I looked at the commit message, I guess elements would be better
adu m: say "a" ∉ qw<a b c> 19:21
camelia rakudo-moar 80b912: OUTPUT«False␤»
adu sweet
[Coke] I can't even run "java -version"
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:23 bjz left
[Coke] psch: what's your userid? 19:24
psch 1020, login psch
[Coke] nevermind. 19:25
ah, thanks
19:25 FROGGS joined
[Coke] can you gist the result of "ulimit -a" ? 19:25
psch gist.github.com/peschwa/a6ba5b440df7f924b76b 19:26
the element symbol is clipboard misuse... :) 19:27
[Coke] your virtual memory is unlimited?
mine is virtual memory (kbytes, -v) 1260720 on a fresh login. 19:28
ah. my bad. leftover from a feather restriction I had in place for pugs. 19:29
psch++ 19:30
hoelzro I noticed also in lizmat's post that precomp issues have recently been fixed; was rt.perl.org/Ticket/Display.html?id=123272 among them? 19:31
19:32 bjz joined
lizmat hoelzro: I haven't actually looked into it apart from seeing spectests passing 19:32
19:32 [Coke] left
lizmat working on other things 19:32
hoelzro ah, ok
19:32 [Coke] joined
psch lizmat: there's an "MMD" missing between "shortname" and "for" 19:33
lizmat psch++ fixed 19:34
psch also i think "the jvm-interop" might read better as "using native Java classes", after "As in"
lumimies lizmat: "<i>lizmat</i> as added " should be "has" 19:35
lizmat lumimies++ fixed
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
lizmat psch++ fixed 19:36
dalek ake: ad0c213 | arnsholt++ | src/Snake/Grammar.nqp:
Add logical operators.
19:37
lizmat hmmm maybe nine++'s work on Inline::Perl5 should be mentioned 19:38
I mean use Test::More:from<Perl5> is pretty rad, no? 19:39
hmmm.. writing it like that, I wonder if that shouldn't be :from<Inline::Perl5> :-)
masak arnsholt++ # snake
arnsholt Heh, thanks. Sort of trying to figure out where I left off, now =) 19:41
's what happens when you don't touch a project for a month or so >.<
lumimies lizmat: "%h<a b c>:delete;" Probably need to escape the <>?
lizmat lumimies++ good catch 19:42
19:42 jack_rabbit joined
timotimo oh yeah. damn you, html stuff 19:45
dalek ecs/newio: bbb7d54 | lizmat++ | S16-io.pod:
Some organizational tweaks
19:48
ecs/newio: b628cfa | lizmat++ | S16-io.pod:
First documentation work on the PIO role
raydiak wishes his precomp problems were among the ones fixed 19:50
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:51
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:55
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
15:08Z <lizmat> jnthn: what I see, is an exception being thrown if the path doesn't exist
15:08Z <lizmat> jnthn: is that an implementation issue, or a documentation issue?
lizmat evening, japhb
evening jnthn :-)
jnthn lizmat: I don't believe I wrote the impl *or* the docs, so I'm afraid I've no idea!
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:57
lizmat until now, it seems to always throw an exception 19:58
not even return a failure, but throw
19:58 denis_boyun___ joined
PerlJam lizmat: Is IO::Local going to be renamed to IO::Locally? 19:58
19:59 denis_boyun left
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.
lizmat PerlJam: but I'm considering renaming IO::Locally to IO::Pathy
for deprecation purposes, I need the IO::Path class to stay around for a bit 20:01
updated the draft with a "newio branch" and "low-level concurrency tests" section 20:02
20:03 virtualsue left
lizmat updated the gist now as well: gist.github.com/lizmat/f127bfaa4175d0acf7dc 20:03
20:03 zakharyas left
PerlJam ah, I see. +1 to the IO::Pathy rename if only because the name IO::Locally bothers me :) 20:03
20:04 raiph left
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.
arnsholt: Ummm 20:06
arnsholt: Yeah, that feels like something we're going to live to regret at some point...
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.
arnsholt Excellent point. Doing that instead does indeed sound far more sensible 20:08
jnthn arnsholt: There is a document in docs/ in the NQP repo that specs the compose protocol. 20:09
dalek ecs/newio: 065965d | lizmat++ | S16-io.pod:
/IO::Locally/IO::Pathy/

  PerlJam++ for the final nudge
jnthn arnsholt: Please keep that in sync with any addition you make.
lizmat will publish the P6W in 20 mins 20:10
arnsholt Will do!
jnthn arnsholt++ 20:11
lizmat++
timotimo lizmat: thank you kindly :)
lizmat timotimo++ for doing it all those times 20:12
20:12 cognominal left
[Coke] if I add a crontab entry on hack, it's in UTC, yes? 20:15
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?
arnsholt Looks like this might be my first Moar commit \o/ 20:17
"Your branch is behind 'origin/master' by 3037 commits, and can be fast-forwarded." ^.^ 20:18
colomon \o/
jnthn lol 20:19
We did...3037 commits? :D
arnsholt Apparently =D 20:20
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.
arnsholt jnthn: Unrelated to the previous: Are there any docs describing how to write new ops for Moar? 20:23
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
20:24 bjz left
jnthn That's *usually* enough, unless you're adding something really odd. 20:24
arnsholt Yeah, that's what I thought. But I figured I should ask, in case there was something =) 20:25
FROGGS arnsholt: add your ops right before the sp_* ops start 20:27
that's important
20:28 darutoko left 20:29 denis_boyun___ left
arnsholt This'll be custom ops for Snake, so I won't be adding them to Moar directly, actually 20:30
dalek kudo/newio: b7c44c4 | lizmat++ | src/core/IO/ (2 files):
First step in bringing up to date with spec
20:31
kudo/newio: f7445b5 | lizmat++ | src/core/IO (6 files):
Step 2 in /IO::Locally/IO::Pathy/
kudo/newio: b0ebc07 | lizmat++ | src/core/IO/Locally.pm:
We still need the placeholder file
FROGGS arnsholt: rakudo does support extops... but nqp does not
[Coke] grumbles at cron not giving any diagnostics on hack. 20:32
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
so it is not just copy+paste
arnsholt Ah, right. That I can live with
moritz \o 20:36
FROGGS o/
jdv79 good news - i was finally able to build rakudo on my mem constrainted box 20:37
timotimo neato
is that because of progress we've made?
jdv79 bad news - my failing https fetch still fails - so its not the nativecall 32bit issues. 20:38
well, i tried to build it a couple of months ago and the kernel OOMed
so i assume so - nothing else changed really
512M ram and 1G swap
dalek kudo/nom: 353141f | lizmat++ | src/core/Deprecations.pm:
s/some time/sometime/ woolfy++
20:40
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:42
lizmat P6W has been published: p6weekly.wordpress.com/2015/01/05/2...-to-party/ 20:43
arnsholt Oh, no, sorry. Too many ideas fermenting in my brain ATM =)
PerlJam lizmat++ 20:44
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++
arnsholt (And how feasible is it to fiddle with that on-the-fly?)
jnthn arnsholt: In Moar lexpads are immutable in so far as their key set.
arnsholt: Same on the JVM backend. 20:46
arnsholt: You can certainly do late-bound lookups.
Most lookups where the name is known at compile-time turn into indexed lexical accesses
The names are carried down to the VM level.
arnsholt Oh, sure. This is more along the lines of coping with Python's annoying variable model
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)
jnthn Or did I just not write evil enough Pythong?
*Python
20:48 pecastro joined
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:49
lizmat yes 20:50
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:51
20:52 Hor|zon joined
arnsholt Because reading before assignment is an error. But consider the script in gist.github.com/arnsholt/28d0d8ccf550bc2e3e86 20:52
20:52 FROGGS[mobile] left
dalek ar: 768419d | moritz++ | / (2 files):
switch digest module to cosimo on github

It is now updated to work on current rakudo
20:52
arnsholt Or actually, that's an overly complicated example 20:53
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
jnthn arnsholt: QAST::VarWithFallback may be very helpful. 20:55
20:55 mvuets left
moritz and the fallback throws NameError? 20:55
20:57 Hor|zon left
arnsholt Ooh, that sounds precisely like what I'd need to use null as a sentinel. Cheers! 20:57
(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) 20:58
21:02 avalenn left, Hor|zon joined 21:07 Hor|zon left 21:08 virtualsue joined
dalek ar: 0e81d1c | moritz++ | tools/star/release-guide.pod:
release guide: document that you need perl6 in $PATH
21:09
21:12 konsolebox left
[Coke] any idea if there's something wrong with this crontab entry that should have just fired for me: 21:21
(cd /home/coke/sandbox/perl6-roast-data; touch BARFYKAT)
er, here's the full line: 21:23
21 21 * * * (cd /home/coke/sandbox/perl6-roast-data; touch BARFYKAT)
PerlJam doesn't look like it. 21:24
Are you sure you had the rule in place before 21:21 ? 21:25
[Coke] Yes. 21:26
just changed it to 30 21, will see if that's "early" enough.
bartolin [Coke]: just double checking: did you exit the editor? otherwise the crontab file is not written 21:30
[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?
[Coke] bartolin: yes, exited. yes, mine. 21:34
moritz: yes.
moritz [Coke]: no cronjob ran at 21:21 21:35
bartolin [Coke]: very strange :/
[Coke] moritz: I can only seem to get the cronjobs to run if I use "* * * "
cron is using UTC, yes?
moritz yes (system time) 21:36
[Coke]: you need one * more
minute, hour, day-of-months, month, day-of-week 21:37
erm
geekosaur the earlier exampel has the right number...
moritz sorry, mushroom brain :(
does cron use the login shell? or /bin/sh ? 21:38
[Coke] that cd; touch works in /bin/sh, btw. 21:40
geekosaur should use /bin/sh
moritz [Coke]: may I su into your account to debug?
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 *
moritz oh, is that zero-based?
geekosaur I think I'd stick a `* * * * * date > someflle` for a couple minutes and verify the time
[Coke] moritz: Sure.
21:41 xfix left
[Coke] (0 based) urk. 21:41
moritz restarting cron, in case it didn't like the time zone change 21:42
[Coke] moritz: one sec.
geekosaur cron usually doesn't
[Coke] moritz: that did it. 21:43
moritz++
geekosaur++ bartolin++
moritz: mind if I remove that new entry you added now that it's working? 21:44
moritz [Coke]: sure
[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. :)
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
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)
moritz [Coke]: run 'source ~rakudobrew/rakudobrew-bash' before running doit 21:48
ugexe (note that error is after Zef::Tester has been precompiled successfully, and occurs during another modules use statement of use Zef::Tester) 21:49
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:50
bartolin raydiak++ 21:54
lizmat good night, #perl6! 22:00
hoelzro night lizmat 22:02
moritz localtime changed by 1h during the time zone shift
I guess I should have rebooted the server afterwards
PerlJam moritz: aye, probably. 22:03
22:03 Hor|zon joined
moritz anyway, time for sleep here 22:04
good night
PerlJam sleep well moritz! 22:05
22:08 Hor|zon left
[Coke] moritz: I'm not running what you think I'm running. I think. 22:11
hoelzro night moritz 22:12
22:13 skids left 22:14 adu left 22:16 treehug88 left 22:18 treehug88 joined 22:22 cognominal joined 22:37 brrt joined
jdv79 TimToady: from your fosdem interview - what research was advanced degree-ish? 22:38
22:42 adu joined 22:43 jack_rabbit left 22:44 treehug88 left 22:45 vendethiel joined 22:51 Ugator left
adu Mouq: are you still there? 22:51
22:53 anaeem1_ left
Mouq adu: Yup, what's up? 22:53
22:53 anaeem1 joined
adu I just wanted to ask you if you had used Clojure 22:54
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:55
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
Mouq adu: I haven't, but you sound right anyway :P
adu vendethiel: can they be applied to every parameter in a defn?
vendethiel adu: yes 22:57
you can declare it for a local or a parameter
adu vendethiel: oh, I didn't know
er, I mean defun
Mouq ugexe: I believe &?ROUTINE will work in the right cases...
adu vendethiel: how verbose is it? 22:58
22:58 anaeem1 left
Mouq m: say { $^n == 1 ?? $^n !! &?ROUTINE($n-1)*$n } 22:58
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/fG_GuvWkFW␤Undeclared routine:␤ &?ROUTINE used at line 1␤␤»
Mouq m: say sub { $^n == 1 ?? $^n !! &?ROUTINE($n-1)*$n }(4)
camelia rakudo-moar 80b912: OUTPUT«24␤»
vendethiel adu: you can (declare (type fixnum x y)) 22:59
adu vendethiel: ah, well in clojure it's ^fixnum x ^fixnum y 23:00
vendethiel I know :)
you can also ((type variable)) as a parameter
Mouq Don't we technically already have Clojure interop with perl6-j? :P 23:01
vendethiel kind-of.
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
adu vendethiel: and in typed-racket it's (: f (-> Fixnum Fixnum Something))
vendethiel adu: I really don't like typed-racket/core.typed's syntax 23:02
adu me neither
Mouq: good point
Mouq: but Clojure doesn't support moar 23:03
Mouq adu: True :) 23:04
Mouq saw 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
ugexe Mouq: thanks. hopefully i can just swap out blocks for anon subs with no problems 23:06
23:06 spider-mario left 23:09 Vlavv left 23:11 integral joined, integral left, integral joined
adu Mouq: that video is wrong 23:16
Mouq: Stephen Bourne wrote sh, Brian Fox wrote bash, but they're using a picture of Bourne underneath "bash" 23:17
23:21 Vlavv joined
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:21
But I'm guessing he probably wants something more like Dylan 23:22
23:23 brrt left
adu Mouq: srfi.schemers.org/srfi-110/srfi-110.html 23:25
that's my favorite S variant
although I would swap () with [] and {} with () 23:26
because () are IMHO more commonly associated with infix
so to make a slang, I need to subclass HLL::Actions, HLL::Grammar, HLL::Compiler, and HLL::World? 23:27
Mouq adu: Ohh, nice :)
adu: Mmm, depends? 23:28
adu: First, are you going to write it in Perl6 or NQP?
adu Mouq: no idea, what do you recommend?
I can't find any documentation for nqp, so I guess perl6 23:29
Mouq adu: Well, github.com/arnsholt/snake and github.com/perl6/nqp/tree/master/e...es/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:30
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?
Mouq: the wikibooks thing is about the most complete overview I can find
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 github.com/perl6/nqp/blob/master/d...s.markdown
is the portable VM instructions
Mouq: when I installed perl6 with rakudobrew it didn't install nqp 23:34
Mouq adu: So "nqp-m -e1" doesn't work? 23:35
adu oh wait, nqp-m is installed
n/m
Mouq It's cool :) 23:36
adu I just didn't try everything :P
23:37 raiph joined
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:39
adu wait, function calls don't need parens? 23:40
Mouq in Perl6 the don't
m: say 1 + 1
camelia rakudo-moar 80b912: OUTPUT«2␤»
Mouq nqp: say 1 + 1
adu I guess I knew that
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)␤»
..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␤»
..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…»
Mouq (The errors in NQP kinda suck too)
adu good to know 23:41
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:42
v5 is currently written in Perl 6, btw: github.com/rakudo-p5/v5 23:44
23:45 virtualsue left
adu so there are 2 slangs in NQP and 1 slang in Perl6 23:47
I remember when there was 50 Parrot-specific slangs
23:49 telex left
adu why does Perl5::* have a billion modules? 23:49
Mouq Well, complete languages. These are written in Perl6, and modify the Perl6 grammar: github.com/FROGGS/p6-Slang-Tuxic github.com/Mouq/p6-Grammar-Mixin github.com/FROGGS/p6-overload-constant
23:49 skids joined
adu that's a little intimidating 23:49
23:50 telex joined 23:52 Hor|zon joined
Mouq adu: I agree.. only a handful are actually part of the slang, the rest (as I understand) are modules that perl5 ships 23:52
adu I think I'm going to start small 23:57
23:57 Hor|zon left
Mouq adu: Good plan :) 23:58
adu: Sorry if I overwhelmed you
adu I think I'm going to write an integer bc implementation where add is the only op 23:59