Topic for #parrot is: Parrot 1.2.0 released | parrot.org/ | Weekly Priority: Testing for 1.3.0! | Parrot VM Workshop, Pittsburgh, June 20-21
Set by moderator on 14 June 2009.
Coke chromatic: asking the idiot who doesn't know how to do something to write the docs is a recipe for ______ 00:00
chromatic Me not having to do it, for one.
Coke opens partcl Issue # 84 to not forget this.
chromatic A specific use case which the documentation should address, for two. 00:01
A test case to prevent regressions, for three.
Coke something that an intrepid soul who knows PIR could hack on. almost no tcl knowledge required.
test case == "writing code" needs "documentation written" == spiral of doom. =-)
I can write tcl code to showcase what needs to work. 00:02
chromatic That's a start.
I can tell you how Parrot ought to work in such a case.
Coke even better, I can crib code: www.tcl.tk/man/tcl8.5/TclCmd/uplevel.htm 00:03
(Example)
you'd run that like set a 3; do {incr a -1} while {$a >0}; puts $a => 0 00:05
nopaste "kid51" at 70.85.31.226 pasted "Hack to get c_indent codingstd to work on line after #ifdef" (12 lines) at nopaste.snit.ch/16930
Coke the uplevels that run the conditional there run the incr command in the context of the caller, so the top level $a is used. 00:06
kid51 Coke: will you buy that for tomorrow's release?
Coke better if you open a ticket or mark it as XXX, but sure.
Coke verifies that sample actually works... 00:07
chromatic: part of my problem is that I assume the return continuation chain is every parrot sub; I only care about tcl subs. 00:08
(tcl doesn't have scopes like perl, so it's [proc] or "whole program". Perhaps file in a pinch, not sure about that.
chromatic: (I don't expect an answer on this now) 00:09
chromatic It's a good question though. You need to unlink the chain from the HLL POV.
Coke (continuation doc) ... docs/subs.pod? 00:12
chromatic Possibly. 00:13
Coke japhb: for bonus points, you should probably find all the "experimental" notices and add them to DEPRECATED.pod 00:17
the subs.pod doesn't seem to cover this. src/pmc/parrotinterpreter has something in get_string_keyed... 00:18
japhb pops up
Coke I just saw one in ParrotInterpreter, e.g.
"this method is experimental"
japhb Coke: wait, what? (I don't have time right now to backlog enough context -- can you explain what you need me to do?) 00:19
Coke japhb: weren't you the one who added [experimental] to DEPRECATED.pod?
dalek TT #764 created by jkeenan++: t/codingstd/c_indent.t needs to handle indents after #ifdef better
rrot: r39579 | jkeenan++ | trunk/src/pmc/filehandle.pmc:
Insert a comment indented 4 characters to outfox t/codingstd/c_indent.t. This

  trac.parrot.org/parrot/ticket/764.
00:20
Coke If so; there are other experimental markers throughout the repo.
japhb Coke: *We* were. I was the first to mark something as [experimental], at pmichaud's request. You wrote the general rules, and I copyedited.
Coke: fair enough 00:21
kid51 BTW: That codingstd failure was the only one I got in 'make fulltest'
japhb Coke: Are there TTs for all of them?
Coke that's a good one. =-)
(doubtful) 00:22
it's a good cage task.
nopaste "kid51" at 70.85.31.226 pasted "Instances of string 'experimental' in our repository" (79 lines) at nopaste.snit.ch/16931
japhb OK ... so we got a three-way pull: 1) We don't want a stable release without these things being marked as experimental; 2) The rule is that a TT has to exist for every one; 3) I somewhat doubt I'm going to be able to understand enough context to make enough TTs by tomorrow. 00:23
Coke doesn't matter, needs to be done by 1.4, not 1.3 00:24
japhb Ah!
OK, *phew*
Coke (and most of those hits are supporting experimental.ops, which can just be a one liner.
chromatic We *can* temporarily huck them in DEPRECATED.pod without TTs.
Coke Sure.
ugh.
chromatic I'm no big fan myself. 00:25
Coke_afk_headache not that. blah.
~~
japhb Coke: better living through chemistry ...
japhb currently applying acetaminophen and caffeine to his own headache. 00:26
chromatic I prefer Mario Kart.
japhb I find gaming while frustrated tends to lead to RSI ....
chromatic I have the wheel. 00:27
japhb That helps.
Marathon Robotron used to leave me sore.
chromatic That'd hurt my brain.
japhb About as visceral an experience as 1984 arcades had to offer. 00:28
chromatic I barely remember 1984.
00:28 particle joined
chromatic I'd seen Ms. Pac-Man by then. 00:29
Infinoid I think I was still loading c64 games from tape back then 00:30
funny how big a deal my family getting a Disk Drive was 00:31
chromatic I think we had a 1541 by then. 00:33
00:36 zak_ joined
dalek TT #725 closed by Infinoid++: [PATCH] Add c-level branch prediction annotations 00:36
chromatic we have likely() and unlikely() now? 00:37
Infinoid That patch added them, I just rejected it because it didn't make enough of a difference
The biggest difference was in the assert() macros from ASSERT_ARGS, and it was barely measurable
I tried dropping it into other places based on kcachegrind branch stats, but it was a lot of work and often hurt performance (based on number of callgrind samples) more than it helped 00:38
Reopen it if you're interested in it; I gave up sinking tuits into it 00:39
#726 is more useful, I'll commit that right after the release 00:41
00:43 amuck joined
chromatic Is #726 the hash allocation patch> 00:47
Infinoid yep
chromatic I look forward to that one. 00:49
japhb OK, while I'm task switched to Parrot ... Infinoid, can you email me that wglext.h file from your Mesa install? I'll try to track down a windows.h and get the GL typemap updated.
Infinoid purl, japhb?
purl rumour has it japhb is Geoffrey Broadwell, mailto:geoff@broadwell.org
japhb rumor is accurate as usual .... 00:50
Infinoid japhb: Sent.
japhb thx
OK, this is driving me bonkers. What tense should NEWS be in? 00:53
I won't change old entries, but the current one is about to get spanked.
chromatic Past, I think. 00:56
japhb "Fixed foo; cleaned up bar"?
past tense active voice, is what I mean
00:58 Theory joined
chromatic Yes. 01:00
japhb "Updated several unnecessary MULTI dispatches in built-in PMCs" -- should that be "Removed"? 01:01
Whiteknight i was 1 in 1984
hardy the prime of my memory retention
Infinoid I was 6, not much better to be honest 01:02
Infinoid remembers getting stared at by his 1st grade teacher, who had a habit of staring at one of my eyeballs and then the other... that apparently was the highlight of my year, as it's all I can remember
japhb A friend of mine works with kids partly because she remembers her childhood with amazing clarity; for example, she remembers clearly how it felt to crawl.
I have forgotten most of mine.
chromatic: with or without trailing period? 01:04
chromatic Without.
Infinoid so, main() leaks the sourcefile it strdup()s, and I can't free() it without introducing a warning
Whiteknight speaking of NEWS, has everybody here looked at it and updated it?
Infinoid God I hate const.
Whiteknight chromatic: you especially, I doubt my little blurb in NEWS has done all your work this month any justice 01:05
go aggrandize it
NAO WIF MOAR OPTIMIZE!
chromatic Infinoid, we have a CONST_CAST.
Whiteknight, I'm comfortable saying "Leaks less memory, runs faster." 01:06
japhb Whiteknight: No one touch NEWS until I commit; I've changed most of the lines in this month's entry 01:07
Whiteknight okay
Whiteknight takes his grubby hands off the keyboard
GeJ Whiteknight: I've pasted a minor style-fix for the NEWS (plus a couple of typo fix)
Infinoid darbelo> We are, like, totally optimal now.
Whiteknight ha!
GeJ nopaste.snit.ch/16929
Whiteknight no, we're not completely optimal, but far better then we were at the beginning of the sprint
GeJ but I guess it'll be obsolete by the time japhb commits his version 01:08
GeJ & 01:09
japhb GeJ: sorry about that, I didn't know anyone else was doing the same thing. 01:10
I've committed.
Whiteknight irclogs? 01:11
purl rumour has it irclogs is irclog.perlgeek.de/parrot/today or see also: infrared clogs
dalek rrot: r39580 | japhb++ | trunk/NEWS:
NEWS: copy editing, minor additions
01:13
japhb AFK for dinner while the MinGW32 cross-compiler installs on his Debian box ... 01:26
Coke_afk_headache ticket was rejected. 01:37
Coke ww 01:38
Whiteknight Infinoid: ping 01:57
purl msg Infinoid if TT #726 doesn't leak and doesn't cause problems, you can get it into trunk before the release 01:58
purl Message for infinoid stored.
Whiteknight disappears to bed
Infinoid uh, are you sure? 02:03
purl You still have ALL THREE lifelines left!
Infinoid it seems fine here and I can check it in now, but I would want a bit more testing
Whiteknight commit it, or wait, or whatever. Whatever you think works 02:04
chromatic Nothing release-worthy blocks on it.
Whiteknight but if it's good, I'm fine with it going into the release
Infinoid I'll wait, I don't trust it quite enough to commit this close to the release 02:05
02:05 ZeroForce joined
Whiteknight that's fine too. I offered 02:05
Infinoid thanks. It'll be in soon enough anyway :) goodnight
02:11 Theory joined
dalek rrot: r39581 | jkeenan++ | trunk/t/codingstd/c_indent.t:
Rename two variables for ease in debugging and for auto-documentation.
02:28
02:40 ZeroForce1 joined
Util Working to finish TT#688, I have completed a Win32/MSVC candidate patch that allows `pbc_to_exe` to succeed on Rakudo's perl6.pbc. Runtime: 4 seconds. 02:47
The patch tests successfully on Darwin 10.4 and Win32 MSVC 13.00.9466. 02:48
trac.parrot.org/parrot/attachment/..._fix.patch
Normally, I would commit; this issue is a Rakudo blocker on Win32.
Since it is less than 24 hours until release, I will hold off unless the release manager (japhb?) says to commit.
(Therefore, testers welcome! Even non-win32 test-runs will provide confidence)
Note: this patch does not have anything to do with "installablity", the other major issue with `pbc_to_exe`.
japhb Util: not me. Whiteknight
Util japhb: Thanks for the clarification! 02:49
chromatic Tests fine on x86 32-bit Linux. 02:53
kid51 Do we know whether there is any particular test in the Parrot test suite which would fail if that patch were incorrect? 02:54
02:54 kyle_l5l joined
kid51 (or is its success/failure only going to be evident once you try to build Rakudo?) 02:54
Util kid51: good question. I had not stepped back to consider it. Certainly Rakudo fails; let me look at Parrot proper. 02:55
chromatic pbc_to_exe bootstraps itself. 02:56
If it doesn't work, it won't work.
parrot_confix is also a fakecutable.
parrot_config I means.
mean
kid51 must sleep 02:57
purl $kid51->sleep(8 * 3600);
kid51 Venue change for Parrot VM workshop: CMU Newell-Simon Hall 02:59
Util kid51: I just reached the same answer as chromatic; the build itself will fail, before the tests run. 03:00
kid51 Good. and good night
Util chromatic: thanks for that, and for testing
japhb Infinoid: Your OpenGL configure should now come with less suck.
chromatic You're welcome.
dalek rrot: r39582 | japhb++ | trunk/config/gen/opengl.pm:
[OpenGL] Handle wglext.h: more typemaps and ignores
03:01
pmichaud hello all -- I'm about to do some revisions to the parrot virtual machine workshop schedule -- anyone else heard any news or things I should know about? 03:11
cotto bacek, I've been with family (and they get priority) but I should be able to get some reasonable pmc_pct hacking done between now and (my) Thurs. 03:22
It's silly that a reasonable default VTABLE_destroy isn't generated and the proper flags aren't set for PMCs where it's relevant. 03:43
chromatic Yes it is. 03:49
That was on the roadmap for sometime around now.
japhb Grepping around, I count 82 mentions of 'xperimental' in the Parrot tree, of which about half are clearly for the experimental ops, a few more refer to experimental status as a concept, and the rest appear in this gist: gist.github.com/130515 03:54
Enough spelunking for now, time to spend time with spouse. 03:55
cotto I'll work on that if I get excessively frustrated decrypting pmc2c. 03:58
chromatic You can autogenerate most of mark() too, but there are cases where you don't necessarily want to do that. 04:00
Util will check scrollback in the morning for `pbc_to_exe` traffic; sleep(); 04:05
cotto Yeah. I can generate one if there's not one there or use one if it's there. 04:07
04:57 bacek_ joined
bacek oh hai... 05:07
szbalint good morning 05:11
purl And good moroning to you, szbalint.
pmichaud for pvmw participants: comments welcomed on groups.google.com/group/parrot-virt...3a23cc02ff 05:26
(comments from non-participants welcomed also :-) 05:28
afk # sleep 05:30
cotto night
PerlJam pm: who's doing all of the talks that don't have a presenter?
pmichaud pj: well, we'll see.
cotto PerlJam, the first guy who asks
pmichaud I'm willing to cover them if others don't speak for them
PerlJam cotto: only if I can do it remotely :) 05:31
pm: you think 30 minutes is enough for that first lab? 05:33
pmichaud actually, yes.
PerlJam maybe I just have my pessimist hat on, but it seems to me like compiling parrot could eat up a bit of time. 05:34
pmichaud I'm hoping people will come pre-compiled.
cotto We can multi-thread that. Tell them how to compile then dive into the intro while they're doing that. 05:35
pmichaud That's kinda what I'm expecting, yes.
05:35 davidfetter joined
PerlJam anyway, my only other comment is that it looks very practical 05:36
pmichaud actually, what I think we may do is use the first part of the intro, or even part of the "venue opens" time to get people started on compiling parrot, and let the compiles take place during the intro section. 05:37
then we can troubleshoot things during the lab period.
cotto good idea
purl cotto: Good Idea: Playing cops'n'robbers in the park. Bad Idea: Playing cops'n'robbers in the bank.
pmichaud I might also move the intro to parrot a bit earlier and stick a lab between it and the "intro to pir" talk. 05:38
PerlJam that's what I was thinking.
(a lab there just for compiling parrot)
make sure everyone starts on the same page for that PIR lab 05:39
pmichaud well, I'm not sure how structured I'll make the labs. Some of them may be "okay, everyone write this code to do X", while some of them may be "okay, try writing a simple PIR program and see how far you get" 05:40
PerlJam just wants to know where to get the bottled version of yapc2009 so he can consume it at home at his leasure. 05:46
pmichaud Yes, we really need a videographer.
NotFound There is some problem with svn.parrot.org ? I can't svn up, SSL negotiation failed 05:51
bacek NotFound: Debian/testing? 05:54
NotFound bacek: stable
bacek hmm... works for me on Lenny. Doesn't on testing. 05:55
lemme check
NotFound Lenny 64 fully upgraded and without any foreign repository. 05:57
bacek "git svn rebase" just hang on my box. So probably there is something wrong with svn.parrot.org. 05:59
RA layer request failed: OPTIONS of 'svn.parrot.org/parrot': SSL negotiation failed: Secure connection truncated (svn.parrot.org) at /usr/lib/git-core/git-svn line 1989
here we go
GeJ same here 06:00
NotFound Same failure here
bacek 3:0 06:01
git ftw! svn loose :)
cotto i'm not seeing the failure so far, but svn seems to be taking its sweet time to connect. 06:02
kyle_l5l erm, may be irrelevant, but www.parrot.org is timing out for me
szbalint is there a git mirror of parrot btw? 06:03
GeJ probably not irrelevant.
szbalint or most git users are using git-svn?
cotto ok, same failure now 06:05
06:07 masak joined
kyle_l5l and now www. is working again. 06:07
GeJ so does svn 06:08
dalek rrot: r39583 | petdance++ | trunk/src/runcore/trace.c:
consting
06:09
NotFound Works now here 06:13
kyle_l5l I looked at some of the STM stuff that went away a few months ago, and it seems pretty interesting. Why did it go away? 06:15
dalek rrot: r39584 | NotFound++ | trunk (2 files):
[cage] document experimental status of ParrotInterpreter.stdhandle
06:16
06:19 uniejo joined
japhb NotFound++ # Picking up where I left off 06:29
Now to get my sick self to bed. 06:30
NotFound japhb: don't get me wrong, I documented that item because I know it well (beacuse I wrote it) ;) 06:31
06:32 szabgab joined
cotto kyle_l5l, I think it was for lack of a maintainer or because we decided to move away from that solution. I'll see what I can dig up on that. 06:56
kyle_l5l, it looks like it was just a prototype implementation. One reply to a ticket by allison said that Parrot might incorporate STM at some point in the future. For now it doesn't appear to be a priority. 07:05
GeJ wasn't STM a SoC project? 07:06
07:06 iblechbot joined
cotto GeJ, good memory. It appears to have been a 2006 GSoC project. 07:12
GeJ++
kyle_l5l cotto, ok, thanks. I've thought about trying to do some work in that area, but wondered what the status was. 07:18
cotto kyle_l5l, you could bring it up at the #parrotsketch meeting tomorrow. 07:19
moritz or today, depending on your time zone 07:20
cotto or yesterday, if you're reading the backlog on Wednesday 07:22
(hi, future person!)
kyle_l5l Alright, I willan have been asking it then. Or however that is supposed to go.
cotto ok. The typical time for questions is after everyone gives their reports. Say "q1q" or something to that effect to queue your question. 07:24
Is STM an area where you've done some research or is it just shiny to you? 07:25
gah. pmc2c-- 07:29
karma pmc2c
purl pmc2c has karma of -2
cotto night
kyle_l5l cotto, I'm just getting started into STM, and I'm in a group that's doing work in STM. It's shiny too. 07:34
08:00 clinton joined
mikehh all tests PASS at r39584 - pre/post configure, smolder, fulltest - Kubuntu 9.04 Amd64 08:17
09:34 donaldh joined 09:36 viklund_ joined 09:41 Zak joined 10:00 gaz joined 10:02 barney joined 10:33 bacek joined 11:21 donaldh joined 11:42 burmas joined 11:46 patspam joined 11:56 Whiteknight joined
Util Whiteknight: FYI - irclog.perlgeek.de/parrot/2009-06-16#i_1242586 12:05
12:12 ruoso joined 12:20 bacek joined
dalek TT #765 created by whiteknight++: zero-length files from "make html" 12:24
12:26 clinton joined
Whiteknight Util: if it works, commit it 12:31
moritz seen tewk 12:33
purl tewk was last seen on #parrot 3 days, 11 hours, 27 minutes and 58 seconds ago, saying: ]\\'''''''''''''''''''''''''''''''y'y']'6y']]']]] [Jun 13 01:00:55 2009]
Whiteknight that must have been tewks cat
zzz_coke (pbc_to_exe) any chance we can also fix the installed version? 12:34
Whiteknight before the release?
moritz anybody knows about tewk's gsoc project? 12:35
12:35 skids joined
Coke forgets to wake up before posting. 12:35
moritz the progress, I mean
Whiteknight moritz: I haven't heard anything, but I would be very interested
who was his mentor?
Coke Whiteknight: yes, it was marked as an item for this release. 12:36
moritz allison 12:37
Whiteknight Coke: lots of things get marked for the release, that doesn't really mean anything
Coke Whiteknight: turns out it wasn't marked, anyway. 12:38
trac.parrot.org/parrot/ticket/691
I just complained about it on list.
(milestone marker not meaning anything) yah, I know.
Whiteknight that said, I would very much lke it if the milestone markers did mean something 12:39
Coke As someone who has tried that in the past: good luck. =-)
Coke mumbles something about paternalistic libertarianism. 12:43
Whiteknight there's a lot of uncertainty about what things mean. If we had good project documentation about what does and does not qualify as a milestone project, it woudl be different
people would use the label when it was supposed to be used and hopefullly not use it otherwise 12:44
Coke Whiteknight: FYI: you can run languages now from an installable parrot. (your blog post item #3).
s/installable/installed/
Whiteknight and we should be planning monthly priorities in advance, such as at YAPC or some other dedicated meeting
Coke: That was something mentioned by chromatic, I'm just repeating what he said
12:56 bacek joined
Util Whiteknight: it works. Committing now. 12:57
Coke: Very little chance from me, since I have never examined the install issue before. I am just looking at it now.
Coke Util: I hope it's an easy thing; pulling from the wrong config var. 12:58
12:58 burmas left
dalek rrot: r39585 | Util++ | trunk/tools/dev/pbc_to_exe.pir:
[pbc_to_exe] TT #688 - performance fixed for Win32 MSVC.
13:01
Coke tries it again to verify that it's still borked. 13:02
13:04 gryphon joined
Coke (yup, still borked) 13:06
bacek Whiteknight: there is couple of typos in NEWS: heirarchy, Improvment 13:10
Whiteknight japhb went through it last night with lots of edits, I haven't looked at it since then 13:12
13:13 jq joined
pmichaud good morning, #parrot 13:16
szbalint good afternoon, pmichaud
moritz oh hai pmichaud
13:19 iblechbot joined
dalek rrot: r39586 | whiteknight++ | trunk/NEWS:
[NEWS] s/several//g was overused. small fixes
13:20
Coke "Object must be created by class". Aigh. 13:26
chromatic: "Object must be created by class" is another symptom of asymmetric pmc/pir classes.
Whiteknight Coke: How are you even getting that error? 13:28
Coke Whiteknight: by running security.test (and others) in the sole tcl branch. 13:30
(in the branch, TclList is no longer a PMC, but a class.)
hilarity ensued.
I am trying to narrow down the several thousand lines of tcl to find the PIR that needs changing to deal with the list as a class instead of a PMC. 13:31
ooh, even better a segfault. :| 13:32
Whiteknight w00t
what's causing a segfault? 13:40
Coke "running several thousand lines of tcl." 13:42
without PCT it takes a while to find the cause.
I kicked off a -t4 run to hopefully find the place where the segfault occurs. after about 20m of PGE thrashing, if t4 doesn't segfault on its own, I might have a fraction of a clue. 13:43
I'd be happy to get you setup to run the tcl itself to see the segfault. 13:44
(I'm just used to chromatic's "show me the pir")
dalek rrot: r39587 | whiteknight++ | trunk/NEWS:
[NEWS] small spelling fix
13:48
Coke (narrowed it down the .sub; trace'ing that for another 15m or so.. =-) 13:51
Whiteknight: "hirarchy" ? 13:54
Whiteknight damnit 13:55
PerlJam heh, that's some "fix" :)
Coke if I have -t1 output that shows a segfault, the segfault occurred in the PIR /after/ the last full line of regular trace output? 13:57
if so: this caused the failure: if null value goto found
dalek rrot: r39588 | whiteknight++ | trunk/NEWS:
[NEWS] fix stupid typo
13:58
Coke (nope) 14:01
if anyone wants to chase a segfault, lemme know. =-) 14:08
(bah. and I have an optimized bird.) 14:09
nopaste "coke" at 72.228.52.192 pasted "useless backtrace for segfault." (55 lines) at nopaste.snit.ch/16934 14:10
Coke that function is /really/ small, though. 14:13
particle eew, the parrot build is full of ugly warnings with msvc 14:23
dalek rrot: r39589 | Util++ | trunk/lib/Parrot/Install.pm:
[install] Changed to support old File::Path modules
Util particle: yes, that corner of the cage needs cleaning. 14:24
particle rational.c(1654) : warning C4204: nonstandard extension used : non-constant aggregate initializer 14:25
this appears hundreds of times
must be generated code, but what...
Coke Util: does that cover both the older and newer versions?
(mkpath) 14:26
Whiteknight mikehh: ping 14:32
Util Coke: yes, all versions. (at least all the versions that shipped with any release of Perl, plus the independent releases of File::Path)
dalek TT #751 closed by whiteknight++: test failures related to src/pmc/handle.pmc 14:34
TT #281 closed by whiteknight++: 'make testf' fails on 32bit linux i386 (debuginfo.t)
Whiteknight pmichaud: ping
pmichaud Whiteknight: pong
Whiteknight pmichaud: can you take a quick look at TT #159 to see if any of your work this month has addressed it? 14:35
pmichaud Whiteknight: afaik, nothing I did directly addressed TT #159.
Coke Util++ 14:36
Whiteknight pmichaud: okay, just making sure. That ticket doesn't have an owner and I want to make sure it doesn't slip through the cracks
Coke 4 more RTs to get under 300; nice present for chromatic for the release. 14:37
14:37 skids joined
Whiteknight are there enough pieces of low-hanging fruit that we could tackle in the next few hours? 14:37
Util Coke: in TT#691, your example is incomplete. You said `pbc_to_exe foo.pir` instead of `parrot -o foo.pbc foo.pir; pbc_to_exe foo.pbc`. 14:41
With the change in r39589, the (fixed) example works for me. See the ticket for details.
Does that completely resolve your issue?
NotFound Where is the generator of pbc_to_exe.c ? 14:42
particle pbc_to_exe.pir, no?
particle might have forgotten
Coke Util: are you using an installed parrot?
Util tools/dev/pbc_to_exe.pir
Coke:yes
Coke did you move your build dir out of the way?
Util I did the test in my home dir 14:43
build dir is not in my path
Coke doesn't matter.
you have to rename it.
the path to the build dir is hard coded in the executable. 14:44
Util Oh! I see. Testing...
Coke danke.
particle: if you could test RT#48749, perhaps it's closable. 14:45
(looks like a few windows tickets need loving.) 14:48
Util Coke: cc1: warning: /Users/bruce/Perl/Parrot/Prerelease_20090613/parrot/include: No such file or directory 14:51
... and many errors flow there-from.
I *thought* it seemed too easy :) I will poke at it a bit more.
Coke danke. 14:56
dalek rrot: r39590 | NotFound++ | trunk/tools/dev/pbc_to_exe.pir:
[cage] fixes for g++ build
Coke Util: Mind if I call you bruce, to keep it clear? 15:08
15:10 viklund_ joined
Coke wonders if anyone gets that. 15:10
szbalint bitte? 15:15
Util gets it :) 15:18
15:20 buildbot joined 15:21 donaldh joined 15:32 Theory joined 15:42 slavorg joined
Coke szbalint: danke schoen? 15:43
15:44 whoppix joined
szbalint I need to learn german :) 15:44
15:45 ruoso joined
NotFound szbalint: talk like Yoda and drop the spaces 15:45
Recipe from the uncyclopedia
15:46 ruoso joined
szbalint =) 15:46
Coke me was merely guessing. Ich cannst nicht Duetsche gesproken. 15:48
15:48 amuck joined
rg1 what's that fascination with the german language anyway? 15:57
szbalint Ich hab kein idee 15:58
Coke Iunno. I have a long habit of using 'danke' in chat. took 3 painful semesters in college. 16:03
cotto gotta use it somewhere 16:16
NotFound I like 'merci beaucoup', but is a lot more keystrokes 16:17
16:20 Psyche^ joined
pmichaud "kthx" 16:28
#ps in 117 16:33
@tell viklund chr(229) ~ chr(9787) now works in Rakudo. 16:37
oops, wrong chan
16:53 Whiteknight joined 16:56 jhorwitz joined
dalek TT #750 closed by whiteknight++: Failures in examples_tests - t/examples/pod.t - fails 9 tests 17:23
kudo: e80574a | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 404 files, 11535 passing, 0 failing
17:27
pmichaud #ps in 55 17:35
17:53 chromatic joined 18:00 davidfetter joined
japhb Infinoid: were you able to test that the OpenGL step in your Configure is now warnings-free? 18:08
Whiteknight irclogs? 18:10
purl irclogs is probably irclog.perlgeek.de/parrot/today or see also: infrared clogs
18:22 allison joined 18:25 particle joined
Whiteknight #ps in 2 18:28
18:29 masak joined
japhb taking advantage of sick day to actually be in #ps 18:29
Whiteknight me too! one of the good parts of being ill 18:30
#ps 18:31
allison: after #ps do you think you could give me a little direction on the pcc_rewiring branch? I would really like to get cracking on that branch after the release 18:39
dalek kudo: e3b2f93 | pmichaud++ | t/01-sanity/07-end-blocks.t:
Package variable still needs a declarator.
kudo: 952fe6d | pmichaud++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
allison Whiteknight: I'm working with chromatic on that, you can see if he has any tasks for you 18:43
Whiteknight will do, I don't mean to nag I just really want to get that job completed
chromatic I stalled because I don't know how to do the next step. If I knew how to do that, a lot of the conversions could be mechanical. 18:44
Whiteknight what's the next step?
purl well, the next step is PROFIT.
allison Whiteknight: lots and lots of conversions 18:45
Coke allison: hio.
chromatic Passing arguments from CallSignature to PIR code when invoked from C.
allison Whiteknight: though what chromatic was specifically stalling on is how arguments should be passed and received at the C level
yeah, what he said :) 18:46
Coke: hi
Coke one extreme would be to just pass the CallSignature and have the function unpack what it needs. I imagine that's not going to fly. 18:47
Whiteknight chromatic: a while back I had envisioned using a custom iterator type on the call signature that would do it 18:48
(if I understand what you are trying to do)
allison Whiteknight: nah, it's much simpler than that
chromatic The minimal possible to get it to work and pass tests, right now.
allison the code is already in place
(and works)
it's just a matter of calling it from all the right places
Whiteknight Coke: That's a stated goal, if I remember correctly 18:49
I would love to have a .param pmc sig :signature
Coke Whiteknight: my callee was in C, not PIR. 18:50
Whiteknight chromatic, I'd be very happy to be on your team for this, if there is enough parallelizable work to do
chromatic I don't entirely understand what the code needs to do. That blocks me on it (and everyone blocking on me).
Whiteknight which code exactly, like do you have a specific place i can look at? 18:51
chromatic Run miniparrot through GDB and catch the segfault. You'll see where it fails to pass arguments from CallSignature to PIR in the backtrace. 18:52
Util pmichaud: It was for Rakudo's sake (on Win32) that I even considered committing at this late date. Got feedback on it last night, and Whiteknight's OK this morning. 18:54
Whiteknight yeah, I approved it 18:55
insofar as I have authority to "approve" anything
pmichaud Util: I agree with the desire to get it in to the release, for Rakudo's sake.
I just wanted to make sure you were a little more than average comfortable with it is all :-) 18:56
Util pmichaud: I understand, and appreciate it.
pmichaud same here; I appreciate getting it to work for MSVC. It's an important improvement that we really needed. 19:01
NotFound Somone has tested on msvc after my last change to make it work in g++ build? 19:02
19:03 grantbow joined
Coke pmichaud: so, remember when you tried to figure out how tcl was getting lexicals to work and we weren't, really? That's one of the things I want to fix. =-) 19:05
pmichaud Coke: Oh. You want DynLexPads to work, I bet :-)
Coke well, that'd be nice. =-)
I also need things like [uplevel $x {some code}], where I can execute code in the context of my caller's caller's... 19:06
pmichaud Jonathan and I have been toying with the idea for some radical restructuring of Parrot's lexicals to make them more efficient.
Whiteknight pmichaud: that would be awesome
Coke I'm also need to restrict my pokings in the chain to things that are really user-visible subs. 19:07
I guess, for example, that if I was using parrot guts properly, I could eliminate most of code.google.com/p/partcl/source/bro...iables.pir 19:08
(and just keep the parts that figured out if I was going after an array or a scalar.)
pmichaud (looking at variables.pir) 19:09
Coke basically "find me a variable" "create a variable", "set a variable". 19:10
things that should be an opcode or 3.
pretty much anywhere you see "call_chain" in the code is suspect.
pmichaud "create a variable" is the challenging one. 19:11
nopaste "coke" at 72.228.52.192 pasted "various files that use call_chain" (9 lines) at nopaste.snit.ch/16939 19:15
dalek TT #754 closed by japhb++: Mark new cross-HLL export/import as "experimental" by pre-deprecating it 19:17
Util NotFound: good point. I just updated and retested. Looks good. 19:18
NotFound ':)
Coke pmichaud: so, 90% of what I'm using that for is variable access. 19:19
[uplevel] saves off the chain, pops off the requested # of levels, evals the given code, then restores the chain. 19:20
so if I can handle those 2 items, I can cut over, and then worry about things like throwing a continue exception up 3 levels.
pmichaud when evalling the given code, it just needs to eval that code within the upper context with respect to variable management? or are there other things to consider? 19:22
Coke at the moment, variable management.
19:22 amuck joined
pmichaud in rakudo, "eval code" generally means "compile a PIR sub and execute it". Is that the same for partcl, or is partcl more like an interpreter in that it only runs already existing subs? 19:22
jhorwitz masak: ping
masak jhorwitz: pong.
Coke partcl is very frequently compiling more PIR and executing it. 19:23
pmichaud I guess I'm asking about the eval code -- is it a newly created sub?
Coke yes.
pmichaud okay
jhorwitz masak: i'd like to add mod_perl6 support to Web.pm. last time i looked it seemed fairly straightforward. is this a good time to start doing that?
pmichaud that simplifies a lot. I suspect what you'll want/need is set_outer
Coke until I get [apply] working, there's no way to say "this is a code ref"
pmichaud where you can set the outer context of a sub
masak jhorwitz: I think so. I think you'd become a 'middleware'. or, the interface to mod_perl6 would be, more exactly. 19:24
jhorwitz: you can read more about that on Rack's site.
pmichaud actually, at the moment we can only set the outer lexical scope, but it shouldn't be too difficult to set an outer context explicitly
Coke so I'd use that to skip the intervening parrot subs and point to a tcl proc?
pmichaud Coke: sounds like it.
purl sounds like it. is it also delicious?
jhorwitz masak: URL?
japhb Tene, pmichaud: I'm happy to help with the PIR side of the continuing HLL interop work. Let me know if/when you'd like my assistance.
masak jhorwitz: rack.rubyforge.org/ -- I might find something more specific, hold on.
Coke I'm wondering how I'll know what the last tcl sub that was invoked was without maintaining my own call chain. =-) 19:25
pmichaud you could tag it with a property
in Rakudo we're also reblessing our subs into different rakudo-specific classes
masak jhorwitz: hmm, no. seems what I meant was a 'handler'.
Coke the sub itself? yah, I can tell which ones are tcl already (since they're TclProcs, not Subs)
19:25 viklund_ joined
pmichaud then that part becomes easy 19:26
Coke but then I'll have to walk up the parrot call chain to find the last TclProc.
pmichaud sure
Coke k.
pmichaud you could also write a dynop to do it :-)
jhorwitz masak: most of what i'd do is replace any CGI-specific things with their mod_perl6 equivalents (and a conditional to test which environment you're in)
pmichaud in Rakudo we're coming up with tons of useful dynops :)
masak jhorwitz: I'm very enthusiastic about making mod_perl6 work with Web.pm -- I think the performance gains will be significant, not to mention necessary, in some cases. 19:27
Coke I may be able to steal some of them.
masak jhorwitz: this might be slightly informative: rack.rubyforge.org/doc/Rack/Handler.html
pmichaud I'm guessing that recursion might be an issue to deal with, though.
[uplevel] could return to a caller that's been recursively invoked somewhere in the call chain? 19:28
masak jhorwitz: I can work on getting the Web.pm end on that interface to work in the next few days.
pmichaud i.e., we're referring to the not-very-latest invocation of a TclProc ?
masak jhorwitz: where can I study mod_perl6 source?
dalek rrot: r39591 | whiteknight++ | branches/RELEASE_1_3_0:
creating branch for release
jhorwitz masak: come to YAPC::NA. ;-)
Coke pmichaud: yes. uplevel can run any arbitrary code.
masak jhorwitz: sorry, ENOBUDGET. :/ would love to. 19:29
Coke you can also do [return -level 4 -code break]
pmichaud japhb: I'll definitely want your help with the HLL interop work. But the next seven days are Rakudo release, $otherjob, prepare for pvmw, pvmw, and YAPC::NA
jhorwitz masak: go to the mod_parrot svn repo svn.perl.org/parrot-modules/mod_pa...ages/perl6
masak thanks.
Coke you can "throw" any of the control exceptions back as far up the call chain as you want.
pmichaud [return -level 4 ...] sounds like forcing a caller to return?
Coke right. 19:30
pmichaud and it unwinds the caller stack?
japhb pmichaud: OK, fair enough.'
Coke in practice, you'd probably only ever do return -level 2, but still.
jhorwitz masak: the talk i'm giving describes the internals of mod_perl6. i'll post the slides after.
Coke pmichaud: believe so, yes.
masak hm, Firefox makes a big deal of perl.org's certificate being 'not trusted'...
pmichaud yes, that's the feature I'm wanting for Rakudo.
masak jhorwitz: excellent.
jhorwitz masak: yes, that's annoying
pmichaud Our best guess at this point is that we somehow get the caller's context, extract the return continuation, and invoke it. 19:31
Coke I think [return -level 4 -code break] is equivalent to [uplevel 4 break]
pmichaud that ought to be much easier when contexts are PMCs
19:31 fperrad joined
pmichaud if that's the case, then it sounds like [uplevel] does more than management of variables 19:32
Coke the real version, yes. =-)
actually, my version would probably do that also.
when you leave via a control exception, the stack is never put back the way it was.
pmichaud well, 'set_outer' won't help there.
masak jhorwitz: mod_parrot/languages/perl6/lib/mod_perl6.pm line 8: that bug is long since fixed. :)
pmichaud set_outer only helps with lexical contexts, not caller chains. 19:33
masak jhorwitz: I bet you'd find the same thing with the one on line 56.
Coke to clarify are the lexical contexts attached to the caller chain?
pmichaud yes
each context has its own lexpad 19:34
each context also knows its own sense of "outer lexical context" and "caller"
Coke I don't think tcl cares about outer contexts.
if I refer to $a, it has to be defined in my context.
jhorwitz masak: line 8 is a comment. do you mean the 8 element bug?
pmichaud I think you're saying that tcl only has caller contexts
and not closure/lexical outer contexts 19:35
masak jhorwitz: yes. the bug that this comment refers to.
jhorwitz: apart from that, the code looks very nice. kudos.
jhorwitz excellent. i haven't gone back to look at my XXX comments yet, so this is good to know. :)
danke
nopaste "coke" at 72.228.52.192 pasted "$ tclsh foo.tcl can't read "b"" (15 lines) at nopaste.snit.ch/16940
Whiteknight what is the ftp for this release going to be? ftp://ftp.parrot.org/pub/parrot/releases/devel/1.3.0/
Coke pmichaud: I think that's what I'm saying, yes. 19:36
Whiteknight I mean, it is a normal "devel" release, right?
Coke APologies if I've used 'lex' inappropriately up to this point.
pmichaud I think you're using it correctly thus far :-)
particle Whiteknight: yes
pmichaud oh, that nopaste makes me think that it doesn't look up the caller chain. 19:37
Coke right.
pmichaud would there ever be a situation where $b would refer to something valid?
Coke not without an upvar or a global, I think. 19:38
pmichaud okay.
Coke (where global is a special verison of upvar)
so if I add 'global b' at the top level there, it prints 3.
er, add it at the top of the proc definition.
that maps the local b to the global b. 19:39
pmichaud and the "set b 3" sets b as a global variable because it's not in a proc?
Coke yes.
pmichaud okay.
(thinking)
In Rakudo, we have CALLER:: and OUTER:: 19:40
Coke (this is why my *var utility methods check to see where we are in teh call chain, and treats things in the topmost scope as globals.)
pmichaud well, in Perl 6 we have CALLER:: and OUTER:: -- we don't have them in Rakudo yet :-)
Coke mmhehehe
does CALLER let you go up arbitrarily high in the context chain?
jhorwitz masak: those two bugs are indeed fixed. :)
Coke (what Synopsis?)
Whiteknight CALLER::CALLER::CALLER::...
pmichaud CALLER::CALLER::CALLER ...
Whiteknight :)
BADGER BADGER BADGER 19:41
purl MUSHROOM MUSHROOM
pmichaud Synopsis 2, I'm pretty sure.
Coke smacks Whiteknight
NotFound Developpers, developpers... X-)
masak smacks purl
purl rubs her red behind.
japhb saucy.
pmichaud Perl 6 also provides CONTEXT:: which lets us "see" suitably-marked variables from caller contexts (very similar to *nix environment variables in that respect)
I'm wondering when the *var utility methods you have do a search of the call chain, though. 19:43
i.e., when is it necessary to look in an outer or caller scope?
only when doing uplevel? 19:44
Coke moment, dayjob.
pmichaud no prob
Coke ok. by default, they just get the bottom of the chain. 19:47
but they can be invoked for a particular depth of the chain. (e.g. from [upvar] or [global]) - at that point, they walk up the chain to poke at the "lexpad" for that level. 19:48
pmichaud okay, and you've refactored all var accesses to go through this method, but that factoring could be re-done
Coke yes. 19:49
pmichaud i.e., to distinguish between normal variable accesses and those that go through [upvar] or [global]
Coke oh, sure.
pmichaud okay.
anyway, in general my expectation for Rakudo will be that OUTER:: and CALLER:: tend to use getinterp calls to get to those hashes 19:50
i.e., $P0 = getinterp; $P0['lexpad';1] # get my caller's lexpad
Coke ok. where I would have to be a little more clever and get my caller, verify it was a TclProc, if not, get THAT caller, etc. then get the current lexpad off whatever I end up with. 19:51
pmichaud well, we have that situation in Perl 6 also (as yet unsolved in rakudo)
Perl 6 has a 'lift' mechanism whereby a function can say "execute this statement as if it is in my caller's context"
I haven't thought about that in great detail yet for Rakudo 19:52
('lift' was just introduced in march, I think)
(at any rate, it's recent)
we also have the case where certain Parrot-PIR subs may be interposed in between the current context and the logical Perl 6 context 19:53
so yes, we may have to do similar things like "get the XYZ caller that contains the lexical we're looking for" 19:54
Coke ah, yes lift sounds like uplevel 19:57
pmichaud right.
I still haven't thought in detail how we'll do that in Rakudo yet.
Coke awesome, because then I can let smarter people than me (i.e. you) figure it out. 19:58
pmichaud (neither has jonathan, last I checked :-)
Coke I wonder if I can use my same trick (save off the stack, trim it, run code, put it back) with parrot's context chain. 19:59
I can't lose uplevel or I lose the spec tests.
(it is VERY challenging getting the spec test suite running at all. =-)
it requires most of tcl to work. :|
pmichaud sure. 20:02
Coke is that sure to my "I wonder" or my general ranting about tcl's test suite? =-)
pmichaud general rant
for the "I wonder"... 20:03
I don't know that there's a way to "save off the stack, trim, run code, put it back"
but in reality I suspect that's not what we want
Coke right. I can do that with my handrolled stack. =-)
no, it sounds like a hack to me.
pmichaud what we really want is a way to invoke something with a caller context other than the current one
but it returns back to us 20:04
Coke [uplevel] but for parrot. =-)
(modulo an exception)
pmichaud basically we're separating "caller chain" from "return continuation" 20:05
which isn't that hard to do
Coke this would need more parrot code?
pmichaud because currently it's the contexts that maintain the caller chain, not the return continuation.
I'm wondering if a special version of 'invoke' would do the trick.
chromatic Which is slightly better than having a stack of callers.
pmichaud or perhaps something that gets set for an 'invoke' to pick up. 20:06
dalek rrot: r39592 | whiteknight++ | branches/RELEASE_1_3_0 (9 files):
entered information for the release
pmichaud what we tend to do for evals in Rakudo is something like 20:07
Coke Well, I certainly feel more sanguine about my chances of getting this fixed in tcl now.
pmichaud (1) compile the evaled code
Coke (that variable handling code is probably from near the first checked in version of partcl) 20:08
pmichaud (2) use the 'set_outer' method to forcibly set the outer (lexical) context of the newly compiled sub
(3) capture_lex and invoke the sub
the 'set_outer' method enables us to dynamically change the compiled sub's notion of its outer lexical context (since otherwise that's a statically-defined thing in PIR that imcc handles)
this sounds very similar, in that we want to do something akin to 'set_caller' to set a sub's caller context prior to it being invoked. 20:09
(and then it accepts that caller context for subsequent invocations) 20:10
tying the "set caller" interface to invoke sounds a bit cleaner, though, although it might not interact well with the current calling conventions. 20:11
(i.e., we'd have to do some imcc/PIR upgrades to make that work)
anyway, yes -- I think we can fix it in tcl. 20:12
we'll need something like it for Rakudo.
Coke I think I'll create a partcl branch for this. I can start by splitting out those methods for global vs. lexical, etc. 20:21
pmichaud okay.
It's unlikely I'll be looking at it in depth anytime before next Tue, however.
Coke then see about getting rid of the call_chain; i'll expect uplevel to fail until we figure out 'lift', though.
where we is mostly jonathan. =-) 20:22
pmichaud actually, I suspect I'll end up doing 'lift', since I understand the context parts
Coke woot. 20:23
dalek rrot: r39593 | whiteknight++ | tags/RELEASE_1_3_0:
Tagged release 1.3.0
rtcl: r504 | coke++ | branches/callchain:
Eliminate our hand-rolled callchain and use parrot builtins.
Whiteknight allison or particle: ping 20:26
allison Whiteknight: yes?
Whiteknight I'm apparently not able to log into the FTP site 20:27
particle guesses scp access
allison did you try to log in as an ftp account instead of ssh?
Whiteknight I had done it before when the email thread went out about it, but can't do it today
how do I do that?
allison no, I'm saying ftp doesn't work, only ssh does
particle you get someone to add your key
allison (so if you tried as ftp, it would fail)
Whiteknight oh, I tried ssh
allison okay, I'll log in and make sure you're key is there 20:28
particle Whiteknight: did you ever create a key file?
Whiteknight particle: yeah, and sent it to allison
particle fab.
Whiteknight not fab if it doesnt work
Coke does docs.parrot.org now while thinking about it. 20:29
Whiteknight: got a tarball somewhere ?
Whiteknight yeah
well, locally
nowhere that you can download yet
Coke can you temporarily put it on feather, perhaps?
Whiteknight (because I am too stoopid to get into the ftp server)
and how does one put something on feather? 20:30
Coke first, get an account. :|
juerd?
purl it has been said that juerd is root or at juerd.nl/ or mailto:juerd@juerd.nl
Whiteknight and don't say "you just ssh into it", because I'm bad at that
20:30 grantbow1 joined
allison Whiteknight: were you 'ideamagnate@mksig.org'? or 'nrc@laptop'? 20:31
Whiteknight neither of those are me
particle Whiteknight: just nopaste the tarball contents :)
allison Whiteknight: every other entry looks like someone else
Whiteknight: let me look back through email
Whiteknight okay, thanks
I swear that this did work at one point 20:32
allison yes I remember it working 20:33
are you 'andrew@Terra-Linux'?
Whiteknight yes
allison okay, that one's in there
Whiteknight in now, or was in already?
allison were you the one who had to log in from a different box to get it to work?
was already in there
Whiteknight no
urg, now ssh won't even let me attempt to connect 20:35
ssh_exchange_identification: Connection closed by remote host
allison it sometimes blocks you after too many attempts
Whiteknight man, I suck at the internet
allison well, the internet sucks :)
but, it's the best we've got so far 20:36
Whiteknight so if my key is in there, why did my attempts fail?
allison did you log in as ssh -l parrot?
(that is username parrot)
Whiteknight oh, no
allison okay, that's probably why
Whiteknight ah
okay, so how do I get unblocked by ssh? is there an issue-apology feature that I can use? 20:37
allison it should time out naturally after a period of time
Whiteknight okay, I'll move on to other parts of the process then. Thanks
allison but, one of us can upload today
or, if you have another machine, we can add that key, so you can log in from there 20:38
Whiteknight no other machine
allison I can create an account for you on one of my servers
Whiteknight that would work temporarily 20:39
allison aye, it
's just temporary
Whiteknight ok
fperrad Whiteknight, after many attempts, your IP is now in the black list 20:40
Whiteknight fperrad: okay, how does it get back off the blacklist, just wait for it to time out?
20:41 fperrad_ joined
fperrad Whiteknight, when I encoured the same problem, I send a email (with my IP) to osuosl support 20:44
Coke osu? 20:45
purl osu is north an hour
Coke osuosl?
osu is support@osuosl.org
Whiteknight email sent 20:48
21:01 grantbow joined 21:07 bacek joined
dalek TT #568 closed by whiteknight++: hll interop 21:08
Coke so I wanted to make a CFMX beautifier, I could totally use PCT for that, neh? 21:10
parse the code, then emit it with the desired formatting, emitting errors if coding standards are violated, etc. 21:11
dalek TT #568 reopened by whiteknight++: hll interop 21:12
Whiteknight allison: I got my IP reset at OSU and I'm in the server now 21:13
21:23 Whiteknight left 21:24 Whiteknight joined
Whiteknight where is slavorg? 21:24
purl slavorg is the bad bot
Whiteknight or whoever is supposed to op me?
dalek tracwiki: v70 | whiteknight++ | WikiStart 21:29
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
GeJ Good morning everyone 21:32
dalek website: Whiteknight++ | Parrot 1.3.0 "Andean Swift" Released!
website: www.parrot.org/news/2009/Parrot-1.3.0
GeJ Whiteknight++ 21:33
Whiteknight yay! thanks moritz++
moderator Parrot 1.3.0 "Andean Swift" released | parrot.org | Parrot VM Workshop, Pittsburgh, June 20-21 21:34
Whiteknight (I don't know what the weekly priority is) 21:34
moritz invent one ;-)
chromatic CLOSE TICKETS REMOVE DEPRECATED FEATURES WRITE TASKS FOR MILESTONES 21:35
pmichaud until it's complete, I think the weekly priority has to be to fixing installed parrot :-)
even if it takes longer than a week.
That said, my weekly priority for this week is pvmw and yapc. 21:36
chromatic That too.
21:38 Limbic_Region joined
moritz proposes "write more tests" 21:38
davidfetter mmm...tests 21:40
chromatic It'd be nice to improve test coverage of our PMCs, that's for sure. 21:41
davidfetter chromatic, when do you get to yapc::na?
Coke docs.parrot.org updated to 1.3.
chromatic Sunday night.
purl sunday night is a work night
bacek Good morning
purl And good moroning to you, bacek.
Coke anyone else wants to do that, be my guest.
bacek Can we deprecate OrderedHash? It's hackish, useful little to nothing. And such very specific PMC shouldn't be part of core PMCs anyway. 21:43
chromatic *ManagedStruct uses it for initialization.
bacek Can it use PSA instead? 21:45
RSA 21:46
or even FSA
(And build internal Hash for indexing)
chromatic I suppose it could. 21:50
Infinoid hi everyone 21:52
purl Howdy, Infinoid, you fantastic person you.
Infinoid japhb: I'll test it now
japhb *rez*
Infinoid: OK, thx 21:53
Infinoid japhb: Looks good.
japhb *excellent*
Good to know things were better in the release ...
Whiteknight if OrderedHash is only used for ManagedStruct, then merge the necessary functionality into ManagedStuct
Infinoid Whiteknight: Are we done with the whole 1.3.0 thing? Can I check in my broken nonsense again?
Coke Whiteknight: did you merge the branch back to trunk? 21:54
bacek Whiteknight: deal :)
moritz bacek: before you deprecate anything, ask Coke - he likely uses it in partcl ;-) 21:55
Whiteknight yeah, we are basicaly done
Coke I am fairly certain I don't use orderhash
Whiteknight I have to merge the release branch back in to trunk, but that's trivial
Coke er, OrderedHash 21:56
Infinoid Yay, here comes broken nonsense!
chromatic Before you deprecate anything, you should each look at what *ManagedStruct does. That is all.
Whiteknight I'm just saying, is all I'm saying
japhb We need to vastly improve native type handling in NCI anyway ... perhaps we should take advantage of a transition to a different structure-building method to simultaneously start supporting a larger set of native types. 21:57
I'm going to have to rewrite several things if *ManagedStruct changes, so I'd prefer fewer rewrites. 21:58
chromatic Sure, the current interface is not great. I just want a sober assessment of the work it takes to replace the current interface.
dalek TT #726 closed by Infinoid++: [PATCH] Reduce calls to mem_sys_allocate() when creating a Hash 21:59
rrot: r39594 | Infinoid++ | trunk/src/hash.c:
[core] Cut the number of Hash internal structure allocations in half. (This is the patch from TT #726.)
japhb chromatic: both of us have some work to do ... IIRC SDL is using *ManagedStruct semi-extensively
rrot: r39595 | Infinoid++ | trunk (2 files):
[bignum] Fix bignum_div_bignum_float and test it.
rrot: r39596 | Infinoid++ | trunk/src/main.c:
[main] Fix a minor memory leak.
japhb It's just making me crazy happy to see all these performance and memory-leak improvements. 22:00
Infinoid That one saved about 14 bytes total. (The pir filename was strdup()'d once but never free()d) 22:01
Coke Infinoid: were you keeping those in your pocket?
Infinoid: I have many more leaks. You want them? =-)
Infinoid Coke: I'm using stacked git, and yes, those were in my stack
(3 more half-baked items on the stack here)
japhb has to get around to learning stgit ... 22:03
Infinoid used stgit to avoid ever having to get around to learning git.
japhb heh
Come to think of it, isn't there a new(ish) hotness to replace stgit at this point ...? 22:04
moritz yes, git ;-)
Infinoid I've no idea. The workflow is awesome, I'd equally recommend any tool which implements it
bacek git checkout -b :)
Infinoid That doesn't look like *quite* the same idea as stgit 22:05
bacek of cause.
But it still useful idea :) 22:06
Infinoid Of course :)
22:07 grantbow1 joined 22:34 rg1 joined
dalek rrot: r39597 | bacek++ | branches/tt761_keys_revamp/src/pmc/hashiterator.pmc:
[pmc] Implement get_pmc ans shift_string in HashIterator.
22:40
rrot: r39598 | bacek++ | branches/tt761_keys_revamp/src/pmc/hash.pmc:
[pmc] Hash.get_iter returns HashIterator now.
bacek Who is "main owner" of Parrot's wiki homepage? 22:43
particle it's a wiki. what's an owner? 22:44
bacek It depends...
I want to all link to TapTinder which is much better than current buildbot. 22:45
TapTinder?
purl TapTinder is back, tt.perl6.cz/ .. need port watchdog to linux ... some test hang in r26917
particle yes, mj41 has been making nice, consistent improvements 22:46
hey, i'm human!
bacek lead his army of robots to World Domination! 22:47
dalek tracwiki: v71 | bacek++ | WikiStart 22:52
tracwiki: Add link to TapTinder
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
bacek May be "Development Work Pages" isn't best place for this link... 22:53
dalek rrot: r39599 | whiteknight++ | trunk (65 files):
[1.3.0] merge in the 1.3.0 release branch. Welcome to the world of Parrot 1.3.0
22:54
bacek Whiteknight++ # great job! 22:56
Whiteknight thanks bacek!
you're doing great work tonight also
bacek it's... morning! 22:57
9AM :)
Whiteknight then you're doing great work this morning
bacek start seeing light at the end of tunnel called "key_revamp branch"... 22:58
Whiteknight What happened to the --no-line-directives option in Configure? 22:59
nevermind 23:01
chromatic: ping 23:05
23:05 patspam joined
chromatic pong 23:10
Whiteknight chromatic, I tried building the pcc_reiwring branch and got a segfault deep in the GC 23:16
very very deep, several thousand frames deep
23:16 skids joined
Whiteknight it appears to have gotten into an infinite loop in the IO system, calling PCCINVOKE/Parrot_io_flush over and over again trying to print an error message 23:17
and then calls the GC, and loops forever cleaning up all the associated garbage
chromatic Is this after you merged from trunk in your local copy?
Whiteknight well, not quite forever
no merge from trunk, as-is
I was going to merge from trunk to resolve this issue, since trunk doesn't use PCCINVOKE in the IO system anymore 23:18
chromatic Where do you see this problem? What program runs?
Whiteknight Miniparrot, during the build 23:19
is there a particular test program you want me to use?
chromatic That's what I looked at.
Whiteknight right, so I figured you would want to know that I was getting a different failure
chromatic You may have to walk up the stack frame 10,000 entries.
japhb
.oO( "A journey of a thousand stack frames ..." )
23:20
Whiteknight nopaste? 23:21
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
chromatic I remember one GDB session where it was obvious that Parrot went into an infinite loop throwing exceptions and ran out of stack space. 23:22
nopaste "Whiteknight" at 68.39.218.42 pasted "Partial backtrace for chromatic++" (123 lines) at nopaste.snit.ch/16942
Whiteknight There's a nopaste for you, from the center. I broke at Parrot_Continuation mark. It shows where the infinite loop in the IO system finally calls the GC 23:23
and from there it loops in the GC until segfault
chromatic Right, because it's looping and runs out of PMCs to hold exceptions and such. 23:25
up 10000
Whiteknight that takes me to main
Infinoid Ok, that's a pretty awesome backtrace
Whiteknight Note to self: the exceptions system should not rely on functionality that might in turn thrown an exception 23:26
chromatic: that stack trace is only 1732 frames down
chromatic Welcome to bootstrapping, population yow.
The interesting stuff will be in the main-most 32 frames. 23:27
Whiteknight creates a PMCProxy, calls PCCINVOKE, throws an exception "Subrouine returned a NULL address" 23:28
Infinoid I'd be ok with a solution involving Parrot_ex_throw_* detecting reentrancy and writing a double-throw message directly to stderr and aborting
chromatic How do you detect reentrancy? 23:29
Whiteknight reentrancy gnomes
???
Profit!
so it seems to me that the root problem is because a Sub somewhere is returning a NULL 23:30
Infinoid I dunno. Some global bit that you set on entering the function, and unset after setting up (but before calling) the throw part?
You really only want to trap it if it's the same exception type thrown from the same place... 23:31
chromatic Right.
From PIR or C.
pmichaud (I'm *sure* you guys purposefully arranged it so that I'd have to redo Rakudo's parrot management in order to get it to play well with the 1.3.0 release.
Infinoid wants to denounce global flags, but imagines some really nasty corner cases involving newly creating new threads/interpreters once per loop 23:33
s/newly //
Whiteknight pmichaud: what does that mean?
purl You're a nut! You're crazy in the coconut!
pmichaud There's no revision in trunk that represents the 1.3.0 release. 23:34
(Yes, I was warned a couple of weeks ago that this could happen.)
Whiteknight oh shoot, was I not supposed to release from a branch?
pmichaud releasing from a branch is okay, as long as it merges back to trunk relatively quickly. That didn't happen.
Whiteknight Whiteknight's school of hard knocks: We learn everything the hard way 23:35
pmichaud there were intermediate commits before the merge back to trunk.
japhb Ah ... because other people started merging before Whiteknight could merge his stuff ... right
Whiteknight I think that has to be the norm, the release process isn't exactly atomic
Infinoid But I was looking forward to breaking everything! I guess I was a little overly enthusiastic. 23:36
pmichaud Infinoid: you succeeded. 1/2 :-)
Whiteknight Infinoid++ # You broke everything just fine
:) 23:37
dalek rtcl: r505 | coke++ | trunk/ (5 files):
Track our TCL_VERSION and update (most) places to use it.
23:39
pmichaud anyway, this is the first time it's happened that I'm aware of.
Whiteknight chromatic: what is VTABLE_invoke supposed to return for an NCI sub? Wouldn't it return NULL there? 23:40
chromatic I think it should return the passed-in opcode_t. 23:41
The problem is that invoke does something very different with an NCI sub than with a PIR sub.
invoke on a PIR sub passes in arguments and returns the first opcode of that Sub so that Parrot can *begin* executing it. 23:42
invoke on an NCI sub calls the sub.
Whiteknight in this case, PMCProxy.init_pmc is PCCINVOKEing Namespace.set_class 23:43
PCCINVOKE expects to be invoking a PIR sub, not an NCI one. An NCI one returns whatever *dest argument was passed in to it, which is NULL here
chromatic Right.
Whiteknight so for NCI subs, it always throws an exception, which is wrong 23:44
chromatic If argument passing from C to PIR worked in that branch, I'd worry about this error.
Whiteknight removing that exception from being thrown there causes a segfault with a significantly smaller backtrace (9 frames) 23:45
Coke opens a simple PIR-based ticket for partcl if anyone wants it. 23:48
pmichaud: it has happened in the distant past.
Whiteknight chromatic: what do you mean "argument passing from C to PIR"? Which function is having the problem?
Parrot_pcc_build_sig_object_from_varargs appears to be working properly 23:49
or, at least it doesn't look like it's significantly changed
Parrot_pcc_build_sig_object_from_ops* is all new though, so I don't know if it's doing what it should be 23:50
chromatic Parrot_pcc_build_sig_object_from_varargs is fine.
The PIR sub invoked by that call chain doesn't pull the arguments out of the CallSignature, though.
There's no point in debugging anything else until that part works.
Whiteknight ah, okay I see what you are saying 23:51
chromatic The conversion isn't quite done yet there. 23:52
japhb pmichaud: If there is a trunk commit that is 1.3.0 - (doc and other non-code tweaks), use that and wave your hands
Whiteknight Parrot_pcc_invoke_from_sig_obj doesn't call the function to pass arguments into the callee's context anymore 23:53
japhb Since Rakudo Configure already has "this version of Parrot or newer OK" semantics
Whiteknight set_context_sig_params
Infinoid hah, "Used 1619.01MB of Unlimited" 23:54
go cellphone go 23:55
Whiteknight yeah, set_context_sig_params() is never called, that's the function that had been passing the params to the callee
unless there's a new mechanism to do it
Whiteknight really needs to explore this whole system again, so many changes
pmichaud yes, "waving hands" at it may be my ultimate solution. 23:56
I really don't feel like reworking the build system again between now and Thur just for one release. 23:57