»ö« 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/7KqDhtmPN2Variable 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_wCannot use .= on a non-identifier method callat /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_kUCEUnable 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 |