Parrot 3.6.0 "Pájaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 23 July 2011.
00:01 soh_cah_toa left 00:02 soh_cah_toa joined 00:10 theory left 00:19 bubaflub joined
bubaflub ~ 00:19
whiteknight hello bubaflub
bubaflub hello whiteknight
00:20 dmalcolm left
dalek rrot/m0-prototype: 823bed4 | cotto++ | t/m0/integration/m0_hash.m0:
make debugging output for hashing test easier to enable
00:23
bubaflub jay: good work on getting that stuff compiled and running 00:24
00:25 kid51 is now known as kid51_at_dinner 00:26 daniel-s joined
dalek rrot/whiteknight/imcc_tag: 8229ddd | Whiteknight++ | / (3 files):
Add in some code to imcc.y (not used yet) to replace :load and :init with :tag. Fix Parrot_pf_subs_by_flag to treat :init and :load together with :tag seamlessly.
00:31
jay ~~ hey bubaflub, thanks, whiteknight++ on that one. 00:49
00:50 soh_cah_toa left 01:02 soh_cah_toa joined 01:09 darbelo left 01:13 kid51_at_dinner is now known as kid51
kid51 bubaflub: I quoted you in my FOSSCON talk in Philadelphia on Saturday: thenceforward.net/parrot/fosscon201107/ 01:14
bubaflub kid51: wow. i'm reading it now. 01:17
dalek rrot/whiteknight/frontend_parrot2: 7c91174 | Whiteknight++ | frontend/parrot (3 files):
Prototype for a new alternate frontend. The new frontend intends to bootstrap into PIR as early as possible, using new packfile and compiler features.
01:20
kid51 So, the command I was ignorant of was: git remote prune origin 01:32
Felipe I didn't knew it either 01:33
01:34 bubaflub left
kid51 Now, locally: 'git branch -r | wc -l' shows 67 ... which is the number of branches shows in the github drop-down 01:35
kid51 happy
Felipe :D 01:36
01:42 kid51 left 01:45 woosley joined
cotto ~~ 01:45
dalek rrot/whiteknight/frontend_parrot2: 8b85ecc | Whiteknight++ | frontend/parrot2/main.c:
A few small speculative changes and some TODO notes
01:49
01:57 whiteknight left 02:06 soh_cah_toa left
cotto parrot 2: This time it's personal. 02:34
02:37 d4l3k_ joined 02:39 tempire_ joined 02:40 pmichaud_ joined, pjcj_ joined, sorear_ joined, ascent_ joined, PerlPilot joined 02:41 tewk__ joined 02:44 ascent left, tewk_ left, pjcj left, slavorg left, dalek left, sorear left, pmichaud left, PacoLinux left, tempire left, PerlJam left, knewt left, tempire_ is now known as tempire 02:45 d4l3k_ is now known as dalek 02:52 knewt joined 02:55 soh_cah_toa joined 02:56 PacoLinux joined 03:13 soh_cah_toa left 03:14 theory joined 03:24 soh_cah_toa joined 03:27 sorear_ is now known as sorear
dalek rrot/m0-prototype: 093802e | cotto++ | t/m0/integration/m0_hash.m0:
fix test so that it can pass
03:37
04:27 daniel-s left 04:33 bluescreen joined 04:41 theory left 04:43 dafrito left
dalek rrot: 97e3693 | soh_cah_toa++ | runtime/parrot/library/osutils.pir:
Added perldoc to osutils.pir. Also cleaned up source code so I could figure what each function was doing more clearly.
04:52
rrot: 9efc5f9 | soh_cah_toa++ | runtime/parrot/library/osutils.pir:
Removed a few trailing whitespaces in osutils.pir that were causing t/codingstd/trailing_space.t to fail. Also added some perldoc corrections that were missing because of a delinquent vim swap file.
05:16 soh_cah_toa left
dalek umage: 0f7da31 | soh_cah_toa++ | / (2 files):
Created a manpage and added steps after 'install' and 'uninstall' for installing/uninstalling it. Took it off the TODO list.
06:02
06:04 TiMBuS left
dalek umage: 7576138 | soh_cah_toa++ | docs/man/plumage.1.gz:
Forgot to actually track the new manpage from the previous commit.
06:04
06:06 bluescreen left
cotto ~~ 06:14
06:51 dalek left 06:55 dalek joined 07:19 d4l3k_ joined, dalek left 07:20 d4l3k_ is now known as dalek 07:29 mj41 joined 07:39 preflex joined 07:43 preflex_ left 07:50 particle left 08:01 daniel-s joined
cotto msg dukeleto I'm running into surprising behavior with Perl's pack and unpack functions. Does gist.github.com/1106278 look like a familiar issue? 08:34
aloha OK. I'll deliver the message.
moritz how do I extend parrot's library loading path (say, in PIR)? 08:38
I want the same effect as I wrote parrot -L somePath 08:39
and where would I find such things in the docs? 08:41
cotto moritz, look for IGLOBALS_LIB_PATHS
moritz nqp: say(pir::const::IGLOBALS_LIB_PATHS) 08:44
p6eval nqp: OUTPUT«9␤»
moritz nqp: say(pir::getinterp__P()[pir::const::IGLOBALS_LIB_PATHS])
p6eval nqp: OUTPUT«5␤»
moritz nqp: say(nqp::join(' ', pir::getinterp__P()[pir::const::IGLOBALS_LIB_PATHS])) 08:45
p6eval nqp: OUTPUT«[ "./", "/home/p6eval/nqp/install/lib/parrot/3.6.0-devel/include/", "/home/p6eval/nqp/install/lib/parrot/3.6.0-devel/include/" ] [ "./", "/home/p6eval/nqp/install/lib/parrot/3.6.0-devel/library/", "/home/p6eval/nqp/install/lib/parrot/3.6.0-devel/library/" ] [ "dynext/", "/ho…
moritz nqp: say(nqp::join(' ', pir::getinterp__P()[pir::const::IGLOBALS_LIB_PATHS][1]))
p6eval nqp: OUTPUT«./ /home/p6eval/nqp/install/lib/parrot/3.6.0-devel/library/ /home/p6eval/nqp/install/lib/parrot/3.6.0-devel/library/␤»
moritz cotto++
09:04 woosley left 09:46 slavorg joined 09:57 pjcj_ is now known as pjcj 10:07 contingencyplan left 10:44 preflex_ joined 10:49 preflex left
dalek p: 1b06d16 | jonathan++ | / (24 files):
Eliminate the REPR PMC, which wrapped around the REPR function pointer table; after a previous refactor that table is now always a singleton. Makes things simpler, and removes a level of indirection for every REPR operation.
11:15
kudo/nom-install: 9da32b2 | moritz++ | / (2 files):
compile a lot more things in blib/ instead of src/gen

That way we have a more consistent layout between source tree and installation tree
11:48
kudo/nom-install: f74a171 | moritz++ | / (3 files):
be more consistent with build locations
kudo/nom-install: bcb8d70 | moritz++ | src/Perl6/ (2 files):
simplify module loading
12:18 jsut joined
dalek p: e9244ec | jonathan++ | src/HLL/SerializationContextBuilder.pm:
Get an SC to track those others it ends up referencing.
12:21
p: 3279ea7 | jonathan++ | src/ (2 files):
Add a way to give an SC a friendly description.
p: 95fbb94 | jonathan++ | src/ (3 files):
Improve detection of wrong version of pre-compiled code being used, and include the filename in the error rather than a weird SC identifier.
12:23 jsut_ left
dalek kudo/nom: c19671d | jonathan++ | / (2 files):
Bump NQP revision and chase 6model API updates.
12:41
kudo/nom: d0ce251 | jonathan++ | src/Perl6/Grammar.pm:
Add description to SC if available, so we can get the better dependency out of date errors.
12:45 bluescreen joined
dalek p: 4a314bf | moritz++ | t/nqp/58-attrs.t:
fix 58-attrs.t
12:50
12:51 whiteknight joined 12:52 whiteknight left, whiteknight joined
whiteknight good morning, #parrot 12:52
tadzik good morning whiteknight 12:53
whiteknight hello tadzik
msg soh_cah_toa that "verbose" named parameter should cause the chmod function to output a record to stdout. Take a look at the cp() function for an example. I would rather the behavior be properly implemented instead of being removed 12:54
aloha OK. I'll deliver the message.
atrodo =~ 12:58
whiteknight !!! 13:04
whiteknight finally fixed a terrible bug at work
moritz as terrible as dropbox's "any password accepted" bug? 13:05
whiteknight not quite that bad
inside a stored proc called from a stored proc called from a stored proc, called from extremely convoluted C# code, there was a field varchar(20) that should have been varchar(5) 13:06
er, varchar(50)
and the overflow warning was helpfully being converted to a fatal error, then rethrown with a less helpful error message
moritz ah, failing at failing
the good old favorite
atrodo Ah, the rethrow but don't tell you original exception bug. I hate that 13:07
whiteknight I love this construct: try { ... } catch(exception_with_helpful_details) { throw new Exception("Generic error message"); }
atrodo (generic excpetions)-- 13:08
13:11 daniel-s left, bubaflub joined
whiteknight Actually, the SQL exception wasn't particularlyl helpful either. It told me that a field was overflowing, but wouldn't tell me which field, which table, or in which of the millions of nested stored procs 13:11
13:13 daniel-s joined 13:14 particle joined
atrodo whiteknight> I take it you work at a place that puts most of it's business logic in stored procedures? 13:14
whiteknight surprisingly, no. 13:15
13:15 bubaflub_ joined
whiteknight stored procs are mostly just for data access, but there is a lot of complicated "optimization" going on 13:15
bubaflub_ ~
13:15 bubaflub left, bubaflub_ is now known as bubaflub
dalek kudo/nom: 10d4051 | (Solomon Foster)++ | src/core/ (2 files):
Start to implement sign.
13:16
atrodo whiteknight> premature optimizations? 13:17
whiteknight in some places, maybe. They're very careful about trying not to load more data at any point than is strictly necessary
atrodo whiteknight> Doesn't sound too bad 13:18
whiteknight so the DB does a heck of a lot of filtering and limiting
Selecting data sets into temporary tables, and then selecting subsets from temporary tables, etc
13:19 TiMBuS joined 13:36 bubaflub left, bubaflub joined 13:38 RobertLJ joined 13:51 bubaflub left 13:52 bubaflub joined
jay ~~ 14:19
tadzik hey jay
jay morning tadzik, all
whiteknight good morning jay, tadzik 14:20
14:21 smash joined
smash hello everyone 14:21
whiteknight good morning smash. How are you doing today?
smash whiteknight: fine thank you, and you?
Felipe good morning all 14:22
whiteknight smash: I'm doing well, thanks. Packing up, moving to a new place at the end of the week. Staying very very busy
hello Felipe
Felipe: The weekly design meeting is today in #parrotsketch at 19:30 UTC. You should come 14:23
Felipe okay 14:24
smash whiteknight: good luck with movings :) 14:30
14:30 bubaflub left, bubaflub joined 14:44 fperrad joined
dalek kudo/nom: 9c39731 | (Solomon Foster)++ | src/core/Real.pm:
Add Real.sign(Real:U:).
14:44
kudo/nom: bbde437 | (Solomon Foster)++ | t/spectest.data:
Turn on sign.t.
14:50
jay whiteknight: followup on the compilation issue, simple pure PIR example where I'm not getting any gains to compiling to bytecode (and you can probably tell me why): gist.github.com/1106928 14:54
whiteknight jay: The PIR compilation process is pretty speedy. I also suspect some inefficiencies in bytcode loading 14:56
I would expect to see some kind of improvement. So it's weird that it isn't the case
jay Ok... I also found the following www.parrot.org/wiki/how-convert-pir-c 14:57
This seems to imply that we wouldn't expect to be able to do as well as compiled C code in an HLL like I'm building... and that ultimately performance would need to be obtained by moving certain things back to C?
whiteknight hmm I haven't seen that before
we would never expect to do as well as compiled C code. There's no way 14:58
jay I plead ignorance... I just don't know what is "reasonable" to expect for performance in a Parrot HLL compared to R's interpreter (it doesn't yet have JIT or anything).
whiteknight moving certain operations to be written in C instead of PIR can bring speedups in certain cases, but not all. There is overhead in switching between the two contexts
jay: Are you running an optimized Parrot? 14:59
jay Er... um.... I did the configure and build as recommended, running Ubuntu. No special things, no.
tadzik you can also go full hardcore and try --debugging=0 :) 15:00
whiteknight jay: Okay, when you configure, use "perl Configure.pl --optimize"
That will cut out all the debugging nonsense. Should be a significant speedup
tadzik it is
whiteknight well, not all the debugging stuff, just the various assertions, it inlines some code, etc
jay Ah -- so your defaults are "developer defaults" rather than some "stable end-user defaults". 15:01
whiteknight jay: It only sounds stupid if you say it like that
:)
jay lol Different worlds. I tend to explain my work to end-users, not to developers.
whiteknight Eventually, we probably want to invert that. --optimize should be the default and would need to be turned off for internals development 15:02
jay Interesting philosophical issues here, to do with how you see Parrot now, and how you see it in 1 year, 5 years, etc... and outreach to the "real world".
whiteknight jay: Definitely try to rebuild Parrot with --optimize. You will see improvements, but still won't be as good as C
jay Doing it now, will report back on the differences. 15:03
whiteknight awesome
whiteknight makes a mental note to document that somewhere, in big bold letters
whiteknight loses a few other mental notes, trying to find space for that new one
jay My advisor used to say, 'if you don't write it down, it never happened.' 15:06
whiteknight yeah, I'm a walking example of that
atrodo I need a midget on my back to act as my stenographer. 15:09
jay Looks like about a 5x speedup. Still no performance improvement by compiling to bytecode. gist.github.com/1106928 15:12
moritz what about making --optimize the default, and requiring a --debug to disable it?
whiteknight moritz: that's what I'm thinking 15:13
tadzik jay: maybe pir compiler is fast enough
(to not make compilation visible)
jay: how about --optimize --debugging=0 ?
whiteknight jay: 5x? Not bad. I'm flummoxed by the lack of performance improvements with compiling to bytecode
It may be that for such a small program, the overhead of compilation is as small as the overhead in packfile loading 15:14
as program size increases, I would expect the differences between the two to manifest
dalek rrot: 66e6aee | moritz++ | README:
recommend Configure.pl --optimize
moritz not the best solution, but better than doing nothing for now, IMHO
jay Maybe. I'll redo my NQR (HLL) benchmarks now, unless there is interest in tadzik's addition of --debugging=0? Easy enough while I'm doing this I suppose, give me a few minutes.
moritz jay: that won't make much of a difference, IME 15:15
tadzik it was quite significant last time I was doing that
(which was a year ago)
jay I'll do it. Give me a few more minutes and I'll report back.
tadzik but that was the whole Rakudo I think, not a short PIR file
15:21 daniel-s left 15:23 dmalcolm joined
jay No change adding --debugging=0. I'll go redo by NQR benchmarks next. 15:24
tadzik I see
jay But like you say, that was pretty plain-vanilla PIR, nothing fancy at all. 15:25
tadzik how about the whole NQR in some case?
jay Yes, that is what I'll do next. Though what do you mean by "the whole NQR" ? 15:26
tadzik oh, the pir is the pir generated from nqr code?
did the non-precompiled case sped up with --debugging=0?
jay No, this PIR was just my own simple PIR to get a handle on native Parrot speed. --debugging=0 didn't make a difference either in the .pir or the .pbc. 15:27
My NQR version will have all the overhead of the full HLL. Will take me a few minutes.
tadzik that's where --debugging=0 might make a difference 15:28
jay Ok, cool. I'll work on a plot to summarize the results, but old NQR --> NQR after --optimize --debugging=0 gives a 2.5x increase, and compiling to bytecode gives about an addition 10% speed gain, for a total of roughly 3x speed increase over the old NQR interpreted benchmarks. 15:36
whiteknight www.unlimitednovelty.com/2011/07/tr...hetto.html Interesting read about Erlang 15:46
jay: 3x is certainly nothing to sneeze at 15:49
jay Nope. I have a PDF... nice slope improvement as a result of the optimization, but still (as I think you would expect) not in the same ballpark as R. 15:50
www.stat.yale.edu/~jay/while.pdf 15:51
Thanks -- this was a big help whiteknight++ tadzik++ moritz++ 15:52
I suppose I could add a line for the straight PIR loop... the intercept would be around 0.02, and the slope very shallow, like the green or even shallower. R's green intercept is high because of the startup overhead of course. 15:56
whiteknight jay: It's good to see the improvement. I am going to suspect from the graph that R has a JIT
jay The problem is that nobody would actually think straight PIR is a fair comparison to an end-user package. No, R has no JIT. That is the interpreter working on a script.
whiteknight hmm... That's weird. I would have to see what they are doing 15:57
I don't see what else would explain having so much startup overhead, and so shallow a curve
jay They load various packages on startup and handle a lot of accounting to support the user I'm sure. As for shallow: it's only shallow compared to the alternatives... and maybe NQR is just really bad. 15:58
whiteknight NQR is going to generate unoptimized PIR code that is much more verbose than any PIR code you or I would write by hand 15:59
jay Fair enough... but there is no way around that, right? 16:00
whiteknight At the moment, no. We have an optimization framework, but I don't think anybody has written any optimizations for it yet
so that's sort of a non-starter
jay I'll grab some lunch and then see how my other benchmarks change. They are equally interesting, not quite as trivial. 16:01
whiteknight ok 16:02
At the moment you are probably going to have to live with some bad performance. We're working on improving things
jay I'm not interested in performance per se, only in coming to terms with this as a possibly viable alternative to R for future development. You have interoperability advantages that R can't touch, and scalable advantages that R can't touch. Wins and losses, obviously. 16:04
back in a bit...
16:15 benabik joined
benabik ~~ 16:16
whiteknight hello benabik 16:32
16:35 mj41 left
benabik o/ whiteknight 16:36
16:47 Kulag left 16:54 Kulag joined
jay If I do parrot foo.pir does that compile to bytecode and then run? I.e. is it really equivalent to the two-step process of parrot -o foo.pbc foo.pir ; parrot foo.pbc ? 16:55
whiteknight jay: basically, yes 16:56
Parrot runs bytecode, so the PIR compiler generates a bytecode PackFile structure in memory from the input code 16:57
when you do it with a .pbc, Parrot reads in the .pbc file and creates a PackFile structure in memory also
jay Ah. That explains why my "compiled" runs are just faster by a fixed speed -- the fixed speed of compilation. Not really interesting.
whiteknight right
Like I said, I suspect there are some inefficiencies in the .pbc file loading sequence 16:58
but that would only shave some time off the top, not fix overall complexity
jay www.stat.yale.edu/~jay/meanexp.pdf similar gains to before. Here, I'm using GSL for the mean of a vector of values: should be very fast. NQR will be slower than R because the random number generation involves PIR looping, rather than C code generating a vector of random values simultaneously (as would happen in R). 16:59
whiteknight okay, that's a much better graph. I still can't imagine why the R performance curve is shaped like that
benabik jay: "optimized" NQR? 17:00
whiteknight how can it be almost flat across that entire range?
jay So this is very interesting: I hypothesize that the NQR performance could match the R performance if I created a vectorized random number generator in C... the difference for this benchmark would only be the intercept, not the slope.
"optimized" by building Parrot with --optimize as whiteknight++ recommended.
benabik Ah, yes, that helps a lot.
jay It only looks flat... it's very shallow... just much faster than NQR, nothing more. 17:01
whiteknight it's flat enough to be disconcerting
jay Yeah, sorry about that. R is pretty good.
whiteknight Do you know much about the R interpreter internals? 17:02
jay In this benchmark, almost everything is compiled C code, though.
whiteknight ok
jay The interpreter is a nightmare of C code I think.
There are about 300,000 lines of C code in the src/ tree, plus another 70,000 lines in the header files. 17:03
So actually the slope difference is due entirely to the difference between looping in PIR for the random number generation vs looping in C with a vectorized random number generator. 17:04
Coke it's not surprising that R is faster than NQR. I think tcl8.5 was some several hundred times faster than partcl. 17:07
whiteknight I would need to look at the implementation again to see, but I think our random number generator is simplistic
I think it falls back to system rand()
jay Off-topic: gist.github.com/1107238 This is from Dan Adler, who is in Germany I think, a very sharp guy who does lots of different things (not just R stuff). This project of his might actually have some value to Parrot (but I don't know enough to guarantee it). Worth a 3-minute glance for one of you.
whiteknight: I used the R random number generator, not yours. 17:08
So I'm really controlling for as many differences as possible.
whiteknight jay: Yes, that rdyncall does look interesting. Same thing as our NCI system. Maybe better
jay: Oh, you were calling the R random number generator through NCI? 17:09
jay Dan Adler is *really* sharp. Trust me on that one, I don't say it much. One of the best I've met.
whiteknight: yes.
whiteknight Any time you call C code from PIR code, there's a context switch which is non-trivial. I've done benchmarks of programs where I've seen significant speedups by rewritting particular bits of C code into PIR 17:10
there are no hard rules, but sometimes the overhead is prohibitive. I suspect calling it in a tight loop exacerbates the problems
jay whiteknight: so I would be looping in PIR making repeated calls to the random number generator via NCI... so as I said I could probably match R by writing a vectorized random number generator wrapper in C.
whiteknight: yes, we agree.
17:11 mj41 joined
jay Actually, if you guys got Dan Adler interested in some aspect of Parrot, it would be huge for you. Maybe I could help there, I know Dan pretty well. 17:11
benabik whiteknight: PIR->C has a large cost? I thought the cost hit when we went C->PIR...
atrodo Pretty sure it's either way
benabik Is PIR->C slow due to FFI problems? Is it faster if you make a custom PMC? 17:13
whiteknight cost is either way. PIR -> C is expensive. C -> PIR is even worse 17:14
atrodo My understanding is that the transition in/out of the VM is expensive
benabik Hence the desire to get as much into the VM as possible in M0? Also hopefully decrease that barrier. 17:15
whiteknight When you call an NCI function, you need to invoke the NCI wrapper PMC, pull the parameters out of the calling context with PCC, and then call the C function. Then, if there are return values, it's the reverse
wrap the C returns in Parrot types, put them in the return continuation, continue
17:16 RobertLJ left
benabik Hm. Most of that is difficult to avoid. Pity. 17:17
whiteknight Well, that's exactly what M0 is designed to overcome 17:19
I think there is a lot of room to optimize here as well
dalek R: 1a1d830 | (Jay Emerson)++ | STATUS:
Benchmarks updated
17:20
jay Would M0 eventually allow "compiling" C code into the VM directly, avoiding the overhead of the NCI? I'm just trying to see the big picture. 17:26
whiteknight jay: M0 is going to allow easier JIT, which will compile bytecode down to C code, optimizing along the way 17:34
M0 also will have integrated FFI, so much of the overhead of NCI could disappear if we were clever about it 17:35
jay ok, thanks. 17:36
cotto_work ~~ 17:41
Felipe ~~ 17:43
dalek TT #2164 created by Andy Dougherty <doughera@…>++: Error detecting attributes (g++-3.3) 17:58
TT #2164: trac.parrot.org/parrot/ticket/2164
TT #1047 closed by jkeenan++: pf_items assumes sizeof(INTVAL) == sizeof(opcode_t)
TT #1047: trac.parrot.org/parrot/ticket/1047
dukeleto jay: M0 will be written in C, but it won't know anything about compiling C code, if that clarifies things 17:59
benabik dukeleto: But it will know very deeply about talking to C code, yes? 18:00
dukeleto benabik: FFI/NCI will be in M0, but libffi does most of the heavy lifting 18:01
jay Yes, I think I'm in the ballpark. And it does seem to related to previous benchmark results this AM where the NCI may explain much of the differences.
cotto_work dukeleto: how familiar are you with pack/unpack in perl 5? 18:02
dukeleto jay: our NCI system most probably has some dog-slow codepaths that have not been optimized at all, or behavior you didn't ask for is assumed and unnecessary work is being done
cotto_work: a few notches on my stick. why?
cotto_work dukeleto: I'm having platform-specific issues - gist.github.com/1106278
jay dukeleto: We may have covered that... --optimize and rebuilding Parrot gave a pretty damn impressive speedup. 18:03
dukeleto jay: ah, yes. That will do it :)
jay: optimized builds are much harder to debug, but they are much faster :)
cotto_work: i means something different to each perl. I think you need to be more specific 18:04
cotto_work: like specifying the "width" of the integer
cotto_work dukeleto: I was using "l", but that seemed to be at least 32 bits rather than exactly 32 bits. 18:06
18:07 lucian joined
dukeleto jay: dyncall looks very interesting 18:07
jay I don't know enough to know if it would be helpful, but I have the highest opinion of Dan Adler. He's not a statistician, he's more of a computer science jock/hacker. He only works on things that he finds cool. I think you would like him! 18:08
dukeleto jay: dyncall looks very similar to libffi 18:09
jay Well, libffi saved my bacon playing around with GSL... though bubaflub seems to have a workaround with the thunks. 18:10
atrodo cotto_work> Did you try N? 18:16
dalek kudo/nom: eb38b99 | jonathan++ | src/Perl6/Actions.pm:
Fix thunk building, so BEGIN say 1 + 2 will work.
18:17 rurban joined
rurban Will rakudo-star-2011.07 the next and when? Maybe someone knows 18:18
Because it might be the last one with these packaging rules and I want to provide it for cygwin 18:21
cotto_work rurban: the #perl6 folks could probably answer that better than we can 18:28
rurban thanks. yes, it's today. pmichaud already working on it. 18:29
18:29 rurban left 18:52 jay left 19:00 NotFound left 19:01 NotFound joined 19:18 soh_cah_toa joined 19:19 PerlPilot is now known as PerlJam
dalek kudo/nom: 08c2f9c | jonathan++ | src/Perl6/Metamodel/RoleToClassApplier.pm:
Be more consistent on quoting in an error (TimToady++).
19:22
bubaflub ping dukeleto 19:25
whiteknight aloha: time? 19:28
aloha whiteknight: time is a lion, where i am a lamb.
whiteknight aloha: clock?
aloha whiteknight: LAX: Tue, 12:28 PDT / CHI: Tue, 14:28 CDT / NYC: Tue, 15:28 EDT / UTC: Tue, 19:28 UTC / LON: Tue, 20:28 BST / BER: Tue, 21:28 CEST / TOK: Wed, 04:28 JST / SYD: Wed, 05:28 EST
whiteknight #ps in 2
Let's see some last-minute reports!
cotto_work there you go 19:31
whiteknight #ps in now 19:32
benabik aloha: time is also you probably meant clock 19:34
aloha benabik: Okay.
benabik aloha: time?
aloha benabik: time is a lion, where i am a lamb. or you probably meant clock
19:36 contingencyplan joined
ingy hi benabik o/ 19:40
benabik o/ ingy
ingy :)
dukeleto bubaflub: pong 19:47
tcurtis ~~
dalek rrot: 8cc26e4 | fperrad++ | runtime/parrot/library/Archive/ (2 files):
[Archive] add some documentation
dukeleto soh_cah_toa: pong
bubaflub dukeleto: i'm looking at jitterbug stuff - do you have an instance running by any chance?
dukeleto bubaflub: yep, a few 19:48
bubaflub dukeleto: great. can i take a peek? i may actually use this for work...
dukeleto bubaflub: here is the newest one, which i know is working currently: dev.cashmusic.org:3000/
bubaflub: i had one at jitterbug.leto.net:3000, but i think something borked it 19:49
bubaflub dukeleto: ok
cotto_work dukeleto: #ps? 19:50
bubaflub dukeleto: what i'm looking for is a dashboard that could track number of test failures per test run. also, our test suite takes ~24hrs to run, so i'm looking for something that can run via cron and not post commit-hook
dukeleto bubaflub: sure, doable 19:51
bubaflub dukeleto: great. 19:53
dukeleto: saves me from having to do my own... i started doing it in Catalyst but started feeling real lazy real quick
dukeleto bubaflub: basically, you would run builder.pl in cron, and don't add a github hook 19:54
bubaflub dukeleto: great. and what about charting / report type stuff. already there / easily extensible so i could add something in?
dukeleto bubaflub: it is a dancer app, reasonably easy to start hacking on 19:57
bubaflub dukeleto: great. i'm thinking for work i'd need a reports section (probably with jQuery charting) and user/login stuff.
dukeleto bubaflub: jitterbug.pl 19:58
bubaflub: sounds like much of the stuff you want would be nice to have in jitterbug
bubaflub dukeleto: yep. i'm angling to get paid to hack on open source :-) 19:59
dukeleto bubaflub: there ya go!
20:01 fperrad left 20:09 ambs joined
benabik whiteknight: If I use Packfile.view, I have to run some kinds of sub manually, yes? I'm thinking of :load and :init here, but not sure if there are other kinds. 20:10
whiteknight benabik: at the moment, the ones you can get at manually are :main, :load, and :init 20:11
I have a new branch in the works where you can create and fetch subs by any arbitrary tag name
benabik whiteknight: Right. And nothing in the Packfile{,View} PMCs will run :load and :init for me, right? So I need to run them manually? 20:12
whiteknight PackfileView certainly will not. I don't think Packfile and friends will either
benabik :immediate and :postcomp both seem like a bad idea. 20:15
20:16 NotFound_b joined 20:17 NotFound left 20:18 NotFound_b is now known as NotFound
whiteknight :immediate and :postcomp both run during compilation or immediately thereafter. Those are tags for teh compiler only, and it doesn't make sense to keep that data around after compilation 20:18
cotto_work aloha: PDS Q2 2011 is Saturday July 30 at 2100 UTC 20:19
aloha cotto_work: Okay.
benabik whiteknight: Those are specifically for IMCC, so I don't need to worry about them for PCT? 20:20
whiteknight Depends what you mean by "worry about them"
current PCT generates :immediate subs. I don't know if it also generates :postcomp 20:21
20:21 bluescreen left
whiteknight Felipe++ 20:33
Coke Felipe: welcome aboard. 20:37
Felipe thanks
tadzik . o O ( Felipe gets Felipe++ for joining. Send some to mom! ) 20:40
20:41 perlite_ joined
Felipe whiteknight++ 20:44
20:44 perlite left, perlite_ is now known as perlite
whiteknight Felipe: That pull request looks good to me. I haven't tested it yet, but you can merge it in if you want 20:45
20:45 jay joined
dalek R: 690825b | (Jay Emerson)++ | / (4 files):
Revised bracket set operations [] for atomic set... not

for matrixy examples.
20:46
whiteknight I really do want to get back into matrixy at some point 20:50
I would love to get that fixed up and working again, with all the cool new tools and libraries that we've been building
jay Or else join the dark side and team up with me...
whiteknight I would love to do that too
jay At this point, the advice is greatly appreciated. Until I learn more, advice is more valuable than actually effort. 20:51
< actual effort >
where "actual effort" is not intended to belittle "advice"... "advice" is clearly effort... just not direct coding effort. Ai carumba. 20:52
whiteknight :) 20:53
My goal, if I can get matrixy running at least a reasonable subset of the M language, is to be able to use it as a nice high-level interface to PLA
jay I just got the basic bracket operator working, so v[5] <- 10000 works separately from a <- 10000. Subtle, but not terribly difficult. 20:54
whiteknight that's a nice step forward
jay If I had GSL bindings, would that supplant the need for PLA?
Felipe whiteknight: okay
whiteknight jay: I really need to learn R, if I want to be playing with it convincingly. You know of any good tutorials?
20:54 bluescreen joined
whiteknight jay: PLA is just matrices and BLAS. It stores matrices in a format that should be usable by GSL 20:54
jay: think of PLA like the data storage, GSL would be something to do with that data 20:55
Coke wonders if R is the language he remembers hearing about on Flowing Data.
jay whiteknight: Yup: ask me. I'm the best (ha). I know some things about the language that matter if you are trying to learn something of use for Parrot or Parrot HLLs.
No, seriously, just a sec, I'll give you a link. 20:56
Check out the PDF in this directory. Intended as an Intro for people with coding experience in other languages. www.stat.yale.edu/~jay/Brazil/Campinas/IntroToR/ 20:57
I need to get organized and keep better track of various talk material. That one was from a trip to Brazil last summer. 20:58
whiteknight jay: For an idea about what PLA does, check out this link: github.com/Whiteknight/parrot-line...nation.nqp
basically, it makes working with 2D matrices dirt simple. They just work the way you would expect, without having to play around with arrays and other not-quite-right stuff 21:00
jay Ok, so I remember seeing the NumMatrix2D class. Fundamentally, the underlying object should just be a Fixed*Array (or a Resizable*Array) -- R has classes vector, matrix, and array (and has no scalar... a "scalar" is a vector of length 1). But a matrix is just a 2D array for user-friendliness.
whiteknight right. Internally, NumMatrix2D is just an allocated block of memory, like an array. An [X,1] matrix is identical to an array of length X 21:01
jay Adding a class to NQR is way up near the top of my "todo" list. So far I just have vectors, and that was the right way to start. 21:02
whiteknight I'm heading home now. We can chat more later tonight 21:03
jay k... good luck packing!
whiteknight thanks! I need it!
jay not fun.
21:03 whiteknight left
jay Coke: Flowing Data? Not sure. I did some preliminary work on handling streaming data once... 21:09
Coke jay: flowingdata.com/ 21:11
Felipe brb 21:12
Coke yes, that was it. e.g.:
flowingdata.com/2011/05/11/how-to-m...t-circles/
jay Coke: actually pretty nice examples on that second page. The best-known visualization guy (in terms of the subject matter, independently of the software) is Edward Tufte. www.edwardtufte.com/tufte/ He has a few excellent books, and does the lecture circuit. 21:14
PerlJam Tufte++ 21:16
jay An amazing speaker, too. Worth doing one of his workshops just to observe him in action. 21:17
PerlJam wonders if Ed Tufte and Hans Rosling ever crossed paths. 21:20
jay jay think that is an excellent question. Ed is in the area, and I actually need to track him down... I'll try to ask. 21:21
21:23 bluescreen left 21:26 ambs left 21:31 mj41 left 21:32 lucian left 21:36 lucian joined 21:37 bluescreen joined 21:43 Psyche^ joined, theory joined 21:48 Patterner left, Psyche^ is now known as Patterner 22:01 bubaflub left 22:17 theory left 22:19 darbelo joined 22:30 theory joined 22:35 soh_cah_toa left
dalek lrskate: b1edb40 | tcurtis++ | src/LALR/DPDA.winxed:
Remove debugging lines.
22:35
lrskate: f3c7281 | tcurtis++ | / (3 files):
Implement interpretation of read transitions.
lrskate: 1b3ef6a | tcurtis++ | / (2 files):
Add test and support for Top transitions.
lrskate: c62447f | tcurtis++ | t/dpda-interpreter.t:
Add test that input is actually removed from the input string by ReadTransitions.
lrskate: 11cc92a | tcurtis++ | src/LALR/DPDA/Interpreter.winxed:
Pop the read symbol when transitioning along a ReadTransition.
jay ./in 22:59
23:02 NotFound left 23:06 whiteknight joined
whiteknight good afternoon, #parrot 23:15
Coke gluten abend.
whiteknight sounds tasty 23:16
Felipe lol 23:25
whiteknight: weird, I tried the automerge, but it did nothing. 23:26
whiteknight hmm. weird
Felipe no notification either 23:27
I'll merge by hand
whiteknight ok
23:33 benabik left 23:35 benabik joined 23:39 benabik left 23:40 benabik joined 23:41 benabik left 23:42 kid51 joined 23:44 darbelo left
Coke THE AUTOMERGE, IT DOES NOTHING! 23:45
23:45 lucian left
Felipe I've used it in other project... 23:45
but It failed now :D 23:46
23:46 lucian joined 23:51 preflex joined 23:53 lucian left 23:54 preflex_ left, lucian joined