»ö« 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