»ö« 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 | |
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/ZmKJ2nboXnRedeclaration of symbol Fooat /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_GuvWkFWUndeclared 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 |