Parrot 3.9.0 "Archaeopteryx" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 19 October 2011.
01:29 bacek_at_work joined 01:32 Coke joined 01:34 aloha joined 01:44 aloha joined 01:46 Coke joined 01:47 bacek_at_work joined 01:59 Coke joined 02:31 benabik joined
dalek kudo/nom: b9f048b | Coke++ | t/spectest.data:
track failure, run fudged tests.
02:34
04:50 nbrown joined 05:05 bacek_at_work joined 05:06 aloha joined
dalek rrot: 62b3a6c | petdance++ | / (3 files):
made the bocksize function PARROT_CONST_FUNCTION
05:34
rrot: 36cdff3 | petdance++ | / (2 files):
Outbound arg in Parrot_io_read_buffer is now ARGOUT. Consted local vars.
06:59 SHODAN joined 07:13 dod joined 07:15 mj41 joined
dalek kudo/nom: 41441b8 | moritz++ | src/ (5 files):
native int variant of postcircumfix:<[ ]>

Contains a patch to Perl6::Actions by jnthn++
08:05
08:14 jsut joined, lucian joined
dalek kudo/nom: f77becd | jnthn++ | / (6 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
10:21
10:56 jsut_ joined 11:38 Psyche^ joined 12:02 benabik joined
dalek kudo/nom: 0698d30 | mls++ | src/Perl6/Actions.pm:
rework when/default implementation so that the call to succeed() happends outside of the block

A block can be left by an exception handler or a call to leave(), but we still need to call succeed() in those cases. We now also check the return value of the block.
12:07
kudo/nom: a968837 | jnthn++ | src/ops/perl6.ops:
Harden decontainerize op to avoid segfaults.
kudo/nom: 5206c8e | jnthn++ | src/Perl6/Actions.pm:
A few small cleanups after the mls++ patch, mostly just to give variables more meaningful names (like try not to store something that's not a block in a variable with block in its name :-)).
kudo/nom: 0cce1ae | mls++ | src/Perl6/Actions.pm:
do not catch control exceptions with try {}
12:19
12:26 mtk joined 12:42 whiteknight joined
dalek TT #783 closed by whiteknight++: Lack of garbage-collectible packfiles can lead to memory leaks 12:54
TT #783: trac.parrot.org/parrot/ticket/783
TT #1869 closed by whiteknight++: Move Parrot::Embed into its own repo
TT #1869: trac.parrot.org/parrot/ticket/1869
whiteknight good morning, #parrot 12:55
13:03 PacoLinux joined 13:11 smash joined 13:12 benabik joined
benabik o/ #parrot 13:13
whiteknight hello benabik
benabik whiteknight: How's life?
whiteknight benabik: good. We went out looking at houses yesterday, again 13:14
Our realtor has turned us into her life's mission, so we spent most of the afternoon at looked at 13 houses
benabik Wow! Whirlwind tour.
whiteknight srsly. We are putting in an offer on the best one tonight. If that doesn't go well, we're going to put in an offer on the next one down the list 13:15
benabik Yeah, sounds like real estate. Still finding houses you like, I hope.
whiteknight we've got 5 we would be happy to move into, assuming they all stay on the market long enough. I asked and it's not legal for us to float more than one offer at a time
benabik Well, I think it's legal if you're willing to buy more than one. :-D 13:16
whiteknight oh yes, finding houses we like has never been the problem. It's the people who own the houses who have always been the problem
dalek rrot/whiteknight/tt_1910: f7842f8 | Whiteknight++ | t/src/extend.t:
fix a stupid mistake. PackFile* != Parrot_PackFile. Some compilers didn't care that we mixed pointer types, but g++ sure does
smash hello everyone 13:17
whiteknight hello smash
benabik o/ smash
dalek rrot: f7842f8 | Whiteknight++ | t/src/extend.t:
fix a stupid mistake. PackFile* != Parrot_PackFile. Some compilers didn't care that we mixed pointer types, but g++ sure does
13:27
rrot: 3e1bbd4 | Whiteknight++ | / (43 files):
Delete file which has been deleted from master, but was not deleted in the branch
benabik whiteknight: Did you just merge tt_1910? The message "Delete file which has been deleted from master" is a little odd to see on master. :-D 13:28
moritz whiteknight: merging branches into master with --no-ff makes it look less odd 13:29
benabik Mostly because I saw branch: A, master: AB. 13:31
whiteknight I committed it on master
because the file was deleted on master
I probably could have worded it differently
13:36 lucian joined
dalek TT #1910 closed by whiteknight++: Review and Dissolve old embedding API 13:42
TT #1910: trac.parrot.org/parrot/ticket/1910
benabik And now Parrot::Embed definitely needs a rewrite. 13:44
dalek kudo/nom: ab61a0f | mls++ | src/ (3 files):
Rework exception handling. Now follows the specifiaction and unrolls at the end of the exception.

We use two new opcodes for this: perl6_invoke_catchhandler and perl6_rethrow_skipnextctx. The former restores the call chain that was in use when the exception was thrown, the latter is used to skip the unwanted frame when an exception has to be rethrown.
13:46
kudo/nom: 3e7f4bd | jnthn++ | src/core/Exception.pm:
Correct indentation.
kudo/nom: 1904776 | jnthn++ | src/Perl6/Actions.pm:
Block that we left through a CATCH should evaluate to the caught exception (note, some missing type check stuff yet).
13:49 lucian_ joined 13:53 bluescreen joined 13:58 benabik_ joined
atrodo =~ 14:10
whiteknight benabik: yes, it does. I attempted it at one point, but I was far out of my depth. Parrot::Embed is very messy, and XS is completely foreign to me 14:20
benabik whiteknight: That's about what I got out of it too. Looks like a complete rewrite is needed at this point due to the extreme differences between old and new embed. Perl-side API might be able to be kept intact, but the internals need _work_. 14:22
Although XS didn't look too too bad. There are definitely some tricks to it, but I was able to cargo-cult the hairiest bits from the existing code. 14:23
Although I did end up with some strange error about things being the wrong type at destruction. I dunno. 14:29
14:41 JimmyZ joined
dalek rrot/whiteknight/eval_pmc: 86d410e | Whiteknight++ | / (7 files):
Remove Eval PMC and all mentions of it (surprisingly few) from the source. Some tests fail. Most of those were relying on behavior of Eval to implement invoke vtable, which packfileview does not reproduce. Those tests are in error and need to be reviewed
14:43
benabik What did Eval do? Was it a wrapper around Packfile*? 14:45
And Eval.invoke() could set off :load subs and call main… But I guess it's better to make that sequence explicit. 14:46
benabik is talkative because he doesn't want to write his thesis pre-proposal.
Coke if you invoked the old style PIR compiler, you'd get an Eval back. (which usually had a Sub at index 0, that you could then run.) 14:47
benabik Yeah. When I was working on nqp_pct, I added a stage that took a Packfile and returned the main sub from it. 14:49
PackfileView, I think.
14:50 nbrown joined
whiteknight Eval.invoke would invoke the :main sub. :load subs are exected as soon as the packfile is loaded 14:54
benabik Er, I meant PackfileView.invoke. Blah. 14:55
whiteknight Eval assumed all that stuff was done automatically. PackfileView doesn't assume anything, and provides interfaces to invoke things you want, when you want
dalek rrot/mls/directaccess: e08823b | mls++ | compilers/pct/src/PAST/Node.pir:
fix stupid copy&paste bug
14:58
TT #488 closed by whiteknight++: Parrot::Interpreter - cannot load PCT.pbc - cannot find PCT/Grammar.pbc 15:01
TT #488: trac.parrot.org/parrot/ticket/488
whiteknight msg cotto Can you take a look at TT #1515? I can address this kind of thing when I do some of the PCC-related work I have planned, but I want to know whether this should be permissable or whether duplicate named args should continue being an error
aloha OK. I'll deliver the message.
benabik Ack. I thought I had gotten all the P::E TTs. 15:02
whiteknight it's okay, not all of them are named in an obvious way 15:09
benabik I think I got the last one now. 15:11
whiteknight there will always be stragglers 15:13
dalek TT #1811 closed by whiteknight++: r48674 broke int/float division in partcl-old 15:17
TT #1811: trac.parrot.org/parrot/ticket/1811
TT #1990 closed by whiteknight++: GC bug with new embedding API
TT #1990: trac.parrot.org/parrot/ticket/1990
TT #292 closed by whiteknight++: [CAGE] Update all Pod documentation to use sane, modern headings
TT #292: trac.parrot.org/parrot/ticket/292
TT #537 closed by benabik++: Parrot::Interpreter - crash when calling new twice
TT #537: trac.parrot.org/parrot/ticket/537
TT #1298 closed by whiteknight++: opcodes, warnings, and exceptions
TT #1298: trac.parrot.org/parrot/ticket/1298
TT #273 closed by whiteknight++: Fix system-dependent code in src/gc/system.c
TT #273: trac.parrot.org/parrot/ticket/273
15:19 bluescreen joined
Coke was parrot/embed.h recently not-installed? 15:31
whiteknight I merged the TT #1910 branch this morning, that file was deleted 15:32
dalek TT #2134 closed by benabik++: Move src/pbc_disassemble.c to frontend/pbc_disassemble/main.c 15:33
TT #2134: trac.parrot.org/parrot/ticket/2134
Coke did you test any languages that use dynpmcs?
the .c files that are generated still refer to parrot/embed.h
figures the one time I try to build partcl in a year, and it's /freshly/ broken. ;)
benabik Hah.
whiteknight hmm...the dynpmcs in the repo still generate fine. That's weird. I'll look into it
Coke I was just doing a fresh build on partcl-old to verify TT#1811 15:34
FYI, this is with a fresh parrot checkout, a fresh parrot install (wiped the previous install dir), and an updated and realcleaned partcl/partcl from GH 15:35
sorear Rakudo uses dynpmcs too
dalek nxed: 29f760c | NotFound++ | examples/fly.winxed:
use builtin floattime instead of a pirop in example fly
benabik class & 15:36
Coke I don't /think/ this is related, but feather has a SUPER old parrot installed in /usr/bin 15:42
$ /usr/bin/parrot --version
/usr/bin/parrot: error while loading shared libraries: libparrot.so.0.6.1: cannot open shared object file: No such file or directory
someone should probably nuke that.
aloha, ask alester if there's a plan for an ack feature for tracking use'd modules in a script, so I can do ack --follow pmc2c.pl "thing" and figure out which of the 30 refactored modules thing is now hiding in. 15:44
Coke cries at different bot syntax.
PerlJam Coke: that seems highly perl-specific. 15:45
Coke whiteknight: AAHAHAHAH 15:50
whiteknight ?
Coke PerlJam: yup.
whiteknight: I found the bug!
whiteknight what bug?
Coke github.com/partcl/partcl/blob/mast...int.pmc#L5 15:51
whiteknight oh, awesome. So it isn't a problem with the merge?
Coke nope. However, the next bug is worse: 15:52
*** glibc detected *** /home/coke/bird/bin/parrot: malloc(): memory corruption: 0x090e3270 ***
Coke sighs. 15:53
whiteknight blah
dalek rtcl: c4e4441 | coke++ | src/pmc/tclint.pmc:
parrot/embed.h doesn't exist anymore.
whiteknight we have been seeing a little bit of memory-related weirdness lately. jnthn++ put in a bug about a segv he was seeing 15:54
Coke occurs during: 15:55
/home/coke/bird/bin/parrot --output=runtime/tcllib.pbc runtime/tcllib.pir
if I kill the --output, it gives me the less horrifying: 15:57
Null PMC access in type()
current instr.: 'mappings' pc 28 (runtime/tcllib.pir:49)
whiteknight blarg 15:58
Coke looks like tclint = get_class 'TclInt' 15:59
is now returning PMCNULL
... is Eval gone now, or were you just /talking/ about removing it? 16:00
16:04 dmalcolm joined
whiteknight Eval is still there. It's gone in a branch 16:04
I haven't merged that to master yet
probably wont for a while
Coke ok. 16:08
(because that would potentially explain the behavior, if :init :load :whatever handling had changed. 16:09
whiteknight I don't think that should have changed, no
Coke when did -t4 stop giving sub-level profiling? 16:10
profiling is a bad word. tracing.
whiteknight I have no idea. I don't use -t for anything
Coke more importantly, how can I get the same functionality today? 16:11
whiteknight no idea. Maybe with the profiling runcore?
Coke *cry*
whiteknight I wonder why -t4 wouldn't work. I suspect it should
clearly it's something we aren't testing for
Coke -t4 is giving me something that looks suspiciously like -t1
dalek kudo/nom: 8895107 | jnthn++ | src/core/traits.pm:
Improve implementation of handles trait now that we have |$c available.
16:15
kudo/nom: 7305387 | jnthn++ | src/binder/bind.c:
Fix bug where binder failed to handle native types properly when slurpy arrays or captures were involved.
Coke opens a ticket on partcl to note that it's dead, and a ticket on parrot about the -t4 issue. 16:27
cotto ~~ 16:34
cotto is in the vmil 2011 workshop 16:35
There was a dart keynote that was really hard not to troll. 16:36
looks like a Cog talk is next on the agenda 16:37
whiteknight Cog? never heard of it
cotto smalltalk vm
apparently 16:38
looks squeaky
may have to start paying attention rsn
chromatic++ mentioned it as being pretty cool 16:40
Coke are there any advances in debugging parrot in the past year or so? (now that I cannot use -t4?) 16:48
whiteknight Coke: I can't think of any
Coke: the -t4 thing is probably a temporary bug 16:49
Coke So, part of the bug, anyway, is that :init and :load are both run when you run parrot foo.pir now. 16:51
nopaste "Coke" at 192.168.1.3 pasted ":init :load ?" (12 lines) at nopaste.snit.ch/90097 16:52
dalek kudo/nom: 732d6cb | jnthn++ | / (2 files):
Optimize contextual lookups. Since every print/say does them, and we do print a lot during the spectests, this gives a > 5% improvement to spectest time.
cotto It's great to see Rakudo being taught to generate efficient code. 16:53
16:58 fperrad joined
cotto hio fperrad 16:59
next talk: Invited Talk: Designing the Dart programming language with a simple virtual machine in mind 17:09
I wish I'd gotten more than 3.5 hours of sleep. 17:10
www.cs.iastate.edu/%7Edesign/vmil/2...gram.shtml (schedule)
17:12 jsut joined
Coke so, is my nopaste a bug, or is this intentional now? 17:13
17:19 contingencyplan joined
cotto just ran into tewk++ 17:27
whiteknight Coke: :init and :load are both running? That shouldn't be
that's a bug
Coke whiteknight: opening ticket.
whiteknight Coke: I think we have tests for that in the parrot suite. Does it only happen in partcl-old or can you reproduce it elsewhere? 17:28
Coke: also, did it happen before the tt_1910 merge, or does it only happen afterwards?
Coke whiteknight: the nopaste (and now the ticket) have sample pir. no partcl required. 17:30
whiteknight oh, okay. I didn't see the nopaste
that is troubling. I thought we had tests to ensure against that exact behavior 17:31
Coke whiteknight: I have not run a bisect.
whiteknight oh wait
you don't have a :main
if you don't have :main, the first sub (load) is called as main
not the sub named "main"
Coke whiteknight: argh, right. moment: 17:33
closed the ticket. Thanks; it almost explained the behavior I was seeing in partcl so I didn't question it further. 17:36
of course, still getting memory corruption errors in partcl. ;) 17:37
dalek kudo/nom: 3fbb574 | jnthn++ | src/Perl6/Actions.pm:
Add an nqp::sqrt_n.
17:38
kudo/nom: 53997c6 | jnthn++ | src/core/Int.pm:
Make Int.Bridge a bit cheaper.
kudo/nom: 10331e0 | jnthn++ | src/core/Num.pm:
Use nqp::sqrt in Num.sqrt.
kudo/nom: 84cdffd | jnthn++ | src/core/Complex.pm:
Just use nqp::sqrt in Complex.abs, since we're doing all the other bits with nqp ops.
17:47 pbaker joined 18:05 dukeleto joined
dukeleto ~~ 18:05
dukeleto waves from Git Together 2011
dukeleto killed his irc proxy and restarted it. Evidently, it had a fit 18:06
sorear: can you unban me from #perl6? I think my ircproxy was having a bad day. 18:07
18:25 benabik joined 18:28 soh_cah_toa joined 18:33 zpmorgan joined 18:34 mj41 joined
dukeleto moritz: can you unban me from #perl6 ? 18:39
dalek kudo/nom: 1fd3f82 | jnthn++ | src/Perl6/Actions.pm:
Make it possible for optimizer to do better with the loop construct (though needs --optimize=3).
18:43
dukeleto RTEMS is close to switching over to git: git.rtems.org/ 18:44
whiteknight nice 18:46
moritz dukeleto: unbanned 19:02
19:12 zpmorgan joined
dukeleto moritz++ 19:15
19:26 zpmorgan joined 19:34 zpmorgan joined
cotto see soh_cah_toa 19:38
seen soh_cah_toa
aloha soh_cah_toa was last seen in #parrot 1 hours 10 mins ago joining the channel.
cotto msg soh_cah_toa I just got out of a talk about DwarfPython, which uses Dwarf magic to try to eliminate the distinction between native and python code. It looked pretty awesome and magical. 19:39
aloha OK. I'll deliver the message.
cotto msg soh_cah_toa I have a CD of the talk papers (srsly, acm?) and will share it when I have access to a cdrom. 19:40
aloha OK. I'll deliver the message.
cotto msg soh_cah_toa Here's the guy's blog: www.cs.ox.ac.uk/people/stephen.kell/blog/ 19:41
aloha OK. I'll deliver the message.
19:45 zpmorgan joined 19:47 benabik joined 19:53 benabik_ joined 20:02 zpmorgan joined
dalek nxed: e4f9434 | NotFound++ | t/advanced/10multi.t:
test 'multi' modifier
20:23
20:51 mj41 joined
dalek nxed: 83cf596 | NotFound++ | t/harness:
update harness to allow test files that use 'done_testing'
20:54
nxed: b0f0d6c | NotFound++ | winxedst1.winxed:
improve diagnostic in wrong or unimplemented usages of 'multi'
20:56
dukeleto github.com/apenwarr/avebench - cool suite of memory benchmarks across languages 20:58
apenwarr.ca/diary/2011-10-pycodecon...enwarr.pdf 21:03
very interesting results
NotFound Pythong is not slow because you can write critical parts in C? I've read that argument even for Turbo Basic years ago }:) 21:07
benabik "Python's not slow, you just have to write the fast bits in another language"? 21:08
That's an interesting argument tehre.
NotFound (changing 'C' for 'inline assembler', but is the same kind of argument)
dukeleto NotFound: you could say the same thing about Perl 5 21:09
the interesting results are the memory benchmarks
the java GC kills all performance that a JIT might provide
NotFound dukeleto: I cam say the same thing about anything, even about spreadsheet macros. 21:10
dukeleto i mentioned those memory benchmarks, because i think it would be good to add parrot languages and see what the results are 21:14
NotFound Interesting the points about refcounting versus gc. I'm using refcounting in winxedxx 21:19
BTW winxedxx is amazingly fast in some tests. 21:20
21:37 mj41_nb joined 21:51 soh_cah_toa joined
soh_cah_toa dukeleto: featherspec format is in docs/feathers/featherspec.pod on the soh-cah-toa/featherspec branch 22:44
dukeleto: it's just json but it will include a lot more metadata 22:46
22:50 bluescreen joined
cotto alvis++ for volunteering for working on the docs (not in isolation, by any means) and alvis++ again for 4 levels of footnotes, including a footnote with a footnote 22:58
btw, if you feel like we're telling you to do something without giving you enough direction, file a bug against me and I'll address it. 23:01
It'll be a process.
soh_cah_toa alvis++ indeed 23:02
very awesome
cotto java extensions for parallelism: habanero.rice.edu/Habanero_Home.html 23:15
apparently safe 23:16
summary of the important bits at habanero.rice.edu/hj.html 23:18
bonus points for overloading "phasers"
msg whiteknight parallelism primitives to steal are clearly spelled out at habanero.rice.edu/hj.html . Thoughts? 23:20
aloha OK. I'll deliver the message.
23:29 benabik joined
cotto hi benabik 23:37
sorear dukeleto: Hi I'm back 23:39
dukeleto: moritz dealt with?
23:43 whiteknight joined
benabik o/ cotto 23:47
dalek nxed: fc73948 | NotFound++ | / (2 files):
support keyed class in 'multi'
23:48
cotto NotFound++ # I was going to ask about that when I saw the patch from earlier today. 23:50
23:50 mudkip joined
whiteknight good evening, #parrot 23:51
cotto 'evening, whiteknight
whiteknight hello cotto. How are you doing today? 23:53
cotto dead tired. I got back from the gsoc summit at 12 and had to take off for vmil at 4:30. 23:54
still, finding some cool stuff and people
including tewk
7 cups of coffee help 23:55
the crash may be ugly
dukeleto cotto: i feel ya. So much tired is accumulating. 23:57