Parrot 2.0.0 "Inevitable" released! | parrot.org | Priorities: deprecated core PMCs and VTABLE entries | Roadmap: icanhaz.com/parrotroadmap | Latest modified TT's: icanhaz.com/parrotbugs
Set by moderator on 31 January 2010.
Coke $ ./tclsh 00:00
Class 'Getopt::Obj' not found
that's easy enough.
dalek nxed: r391 | julian.notfound++ | trunk/winxedst1.winxed:
some refactor of loops and conditions in stage 1
00:01
Coke sorry, that should have asked "svn:info::git:?"
00:03 mikehh joined
Coke Whiteknight: fix pushed. 00:04
trunk should work again. Testing your branch now...
dalek rtcl: 4afc153 | coke++ | (2 files):
Track change to parrot's stdlib namespaces.
00:08
Whiteknight w00t
Coke failing miserably, but very fixable. moment. 00:09
I have Array HLL mapped in a few places. When you replaced that in your branch, what did you use in its place?
(anything other than ResizablePMCArray ?)
Whiteknight RPA 00:10
Coke k.
All tests successful. 00:11
purl Time to write more tests!
Coke making sure these edits work with trunk...
00:14 woosley joined, woosley left 00:16 mikehh joined
Coke Whiteknight: done. 00:18
dalek rtcl: 7474750 | coke++ | src/class/tcl (2 files):
Don't use deprecated core 'Array' PMC.
00:19
nxed: r392 | julian.notfound++ | trunk/winxedst1.winxed:
codingstd fixes
00:20
00:29 mikehh joined 00:41 mikehh joined
GeJ I don't know who's responsible for that, but Parrot doesn't coredump on my box when `make test`-ing. 00:49
Thanks for that. 00:50
dalek rrot: r43669 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc/imageio.pmc:
Separate the code that lived in visit_info_init() into two vtables, one for freezing and one for thawing.
00:51
rrot: r43670 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc/imageio.pmc:
Copy private support routines, from pmc_freeze.c to the ImageIO PMC. We should be done shuffling code for now.
rrot: r43671 | darbelo++ | branches/pmc_freeze_with_pmcs/include/parrot/pmc_freeze.h:
The struct _visit_info is no more. This functions take a PMC now.
00:58 slavorg joined
dalek rrot: r43672 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc_freeze.c:
Switch the code in pmc_freeze.c to use the ImageIO PMC.
01:07
rrot: r43673 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc_freeze.c:
Remove from src/pmc_freeze.c all code that has already been moved into the ImageIO pmc.
01:12 theory joined 01:13 LaVolta joined 01:16 hudnix joined 01:20 payload joined
dalek rrot: r43674 | plobsing++ | trunk/tools/build/nativecall.pir:
copy over documentation from nativecall.pl and give better variable names in main()
01:23
01:35 purl joined
dalek rrot: r43675 | coke++ | trunk (4 files):
This script is actually used during the build.
01:39
01:41 ascent joined
Whiteknight darbelo: in branch, freeze() still takes visit_info, which has a different structure 01:50
so it's calling a voi* pointer as a function
dalek rrot: r43676 | coke++ | trunk/tools/build/cc_flags.pl:
Remove unused option from build script.
01:55
Whiteknight purl msg darbelo: the visit_info structue has a different data format from PMC, so calls to VTABLE_* on a PMC that is cast as a visit_info calls the wrong function and segfaults. Updating all visit_info references to PMCs will fix this problem, but breaks the build in src/pmc/parrotinterpreter.pmc:visit() because that pokes into the internals of visit_info. 02:18
purl Message for darbelo stored.
02:21 Andy joined 02:23 kid51 joined 02:30 cotto_w0rk joined 02:46 merlyn joined
merlyn hey 02:46
confound and the guys are being confused by the fact that I wrote about Perl being unparsable in www.perlmonks.org/index.pl?node_id=44722 02:47
they seem to be on a bent about me
confound Sorry about that. I don't know what's up with him. 02:48
he wants to bring some other channel's argument into.. uh...everywhere.
03:08 merlyn joined
LaVolta that was an interesting moment...i am sure :-P 03:25
davidfetter confound, ? 03:33
purl confound, is there anything extra in messages?
darbelo comes back 04:24
davidfetter wb! 04:27
darbelo Let's see if I can get this segfault to go away before something else happens. 04:29
04:50 bacek joined 05:08 LaVolta joined
dalek rrot: r43677 | darbelo++ | branches/pmc_freeze_with_pmcs (28 files):
Do a lot of visit_info* -> PMC* substitutions.
05:09
cotto darbelo, need help parallelizing work on that branch for a bit? 05:11
darbelo, I'll be around for a little while. lmk if you want a hand. 05:19
darbelo Right now I'm trying to find what VTABLE is it more reasonable to hijack for calling visit_pmc_now.
I wonder if using visit() itself would be too confusing. 05:20
line 719 of src/pmc/parrotinterpreter.pmc is the case I want to encapsulate. 05:21
cotto yup
darbelo That should bring the build back to life.
plobsing_ darbelo: isn't visit_pmc_now only really called from the VTABLE_push_pmc anyways? 05:23
darbelo Wouldn't that explode on thawing? 05:24
plobsing_ oh right, two places - shift and push respectively 05:25
dalek rrot: r43678 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc (5 files):
Replace direct access to thaw_ptr with calls to the set_pointer() VTABLE.
darbelo Thing is some PMCs, use the same code for both, by manually setting thaw_ptr and calling visit_pmc_now themselves.
plobsing_ they shouldn't. the whole point of pmc_freeze_cleanup was to eliminate all non-vtable access 05:27
where is this happening?
darbelo line 719 of src/pmc/parrotinterpreter.pmc
purl well, line 719 of src/pmc/parrotinterpreter.pmc is the case I want to encapsulate.
darbelo two more cases in objec.pmc 05:28
plobsing_ that can be completely replaced by the VISIT_PMC macro 05:29
darbelo and src/pmc/schedulermessage.pmc
plobsing_ ditto on object.pmc
same with schedulermessage.pmc 05:30
sorry, I must have missed those when I went through and changed them all.
darbelo Okay then. Lets see how that works... 05:31
Oh that makes the set_pointer unnecessary too. 05:35
05:43 TiMBuS joined
nopaste "darbelo" at 190.3.157.76 pasted "Is this right?" (87 lines) at nopaste.snit.ch/19431 05:50
darbelo plobsing_: Is nopaste.snit.ch/19431 the right way to convert this?
plobsing_ darbelo: yes, that appears to be correct 05:52
darbelo Okay, just checking. Array is horribly broken with this. 05:53
plobsing_ darbelo: if there are/were any other places outside of src/pmc_freeze.c that are accessing visit_info members directly, let me know
darbelo I haven't seen any others. And now src/pmc_freeze.c shouldn't be touching this stuff directly either. 05:54
Once I get this back into working order we should be able to do another big cleanup pass. There move's uncovered some nice opportunities. 05:55
Did the array-killing land in trunk yet? 05:57
dalek rrot: r43679 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc (4 files):
Use the VISIT_PMC() macro in a few more places.
darbelo Hmm. Looks like no. 05:59
That's it for tonight, then. Feel free to fix the build while I go to sleep ;) 06:04
Otherwise, I'll just plain de-array-ize the branch tomorrow. 06:05
06:09 chromatic joined
chromatic I heard an interesting rumor about a Microsoft GC. 06:09
XNA, I think.
It runs the GC every time it's allocated a megabyte of memory. 06:10
What if we did something similar?
Allocate a new arena whenever we're out of memory, keep a running total of the size of all arenas allocated since the most recent GC run, and don't do a full M&S every time we reach the end of an arena? 06:11
dalek rrot: r43680 | darbelo++ | branches/pmc_freeze_with_pmcs (15 files):
Sync the branch with trunk.
06:14
treed Game developer friend of mine confirms that about XNA.
22:13 < Kael> xna uses the compact framework gc
22:14 < Kael> it's nongenerational and uses simpler heuristics
22:15 < Kael> to some extent that's actually good, because it makes it very predictable 06:15
22:15 < Kael> but it would perform way better if it at least had two generations
chromatic Thanks, treed. 06:17
treed yep
chromatic Based on some simple experiments here it's actually a sane approach.
In return, I have some code to write that might help with the PMC subclassing problem.
treed Heh, awesome. 06:18
I've been fighting with my code all day.
Every 2 lines I have to go back and reread it.
Gets really old really quickly.
There are just a few too many layers to keep in my head at once. 06:19
chromatic You should see a commit I made in December. 06:21
It touched every ugly part of Parrot except for Configure.
plobsing_ msg darbelo build is fixed, most tests pass. enjoy 07:11
purl Message for darbelo stored.
dalek rrot: r43681 | plobsing++ | branches/pmc_freeze_with_pmcs/src/pmc/imageio.pmc:
Actually initialize id_list. also, switch to using RPA at the same time and fix typo on shift_float vtable declaration. This fixes the build and passes all tests except t/pmc/packfile*. Anyone on an i386 can fix these by bumping PBC_COMPAT and running mk_native_pbc.
07:18
07:22 mikehh joined
cotto plobsing_, what necessitates the pbc_compat bump? 07:27
It'd be nice to get rid of those compiler warnings before merging. 07:49
07:50 jsut joined
ttbot Parrot trunk/ r43674 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/187961.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 07:53
08:04 mikehh joined
dalek rrot: r43682 | cotto++ | branches/pmc_freeze_with_pmcs/PBC_COMPAT:
[PBC_COMPAT] bump bytecode version for freeze/thaw changes
08:07
cotto msg darbelo Now that the branch is passing its tests, perhaps it'd be a good time to name the bikeshed^H^H^H^H^H^H^H^ImageIO PMC to something more descriptive like BinaryFreezer or BinarySerializer. 08:08
purl Message for darbelo stored.
08:08 mikehh joined
chromatic MonkeyPopsicleStand 08:09
08:18 iblechbot joined 08:24 mikehh joined
bacek o hai 09:47
10:26 gaz joined 10:27 JimmyZ joined 11:33 mj41 joined 11:43 payload joined 11:48 payload joined 11:54 payload joined
bacek msg whiteknight looks like during PBC serialization we lost first kilobyte of data... 11:54
purl Message for whiteknight stored.
11:57 payload1 joined 12:03 payload joined 12:10 LaVolta joined 12:17 bluescreen joined
dalek rrot: r43683 | bacek++ | branches/gc_encapsulate/src/gc/mark_sweep.c:
Fix free_buffer signature
12:40
12:43 payload joined 12:48 cotto joined 12:59 mberends joined, fperrad joined 13:04 tetragon joined 13:19 bacek joined
bacek msh whiteknight Yay! gc_enapsualte is able to build parrot and few PBCs! Crashed at PGE, unfortunately... 13:20
13:28 whiteknight joined
dalek rrot: r43684 | bacek++ | branches/gc_encapsulate/src/gc/api.c:
Remove redundant aligned_mem in gc_reallocate_buffer
13:29
rrot: r43685 | bacek++ | branches/gc_encapsulate/src/gc/gc_ms.c:
Add stub for gc_ms_free_buffer
13:36 bluescreen joined
whiteknight good morning #parrot 13:45
bacek o hai, whiteknight 14:10
bacek finally felt asleep 14:13
14:14 ruoso joined 14:26 zibri left 14:34 particle joined, iblechbot joined
dalek kudo/master: 30e0ed3 | moritz++ | perl6.pir:
update copyright date in -v message; bbkr++
14:35
14:43 hicx174 joined 15:02 PacoLinux joined
dalek rrot: r43686 | coke++ | trunk/tools/build/cc_flags.pl:
remove reference to non-existant file.
15:06
15:08 hicx174 joined
Coke at some point, the build process is actually going to be showing the command line used to build things, not just the filename. FYI. 15:09
whiteknight that would be awesome 15:12
a way to toggle between the two displays would be even better, but not necessary
15:14 bubaflub joined
dalek tracwiki: v16 | coke++ | BuildTaskList 15:16
tracwiki: trac.parrot.org/parrot/wiki/BuildTa...ction=diff
15:22 hicx174 joined
pmichaud whiteknight: pong (from 21:23 utc) 15:28
whiteknight pmichaud: issue averted. I was looking for board people who might be able to help with the server outage
so I spam-pinged all the board members 15:29
pmichaud okay, excellent work.
Coke wonders why we are supporting .S files when we don't seem to have any. 15:30
(in the makefile)
moritz we probably had some before the JIT subsystem was ripped out 15:31
Coke do we even have .s files anymore? 15:34
15:34 Psyche^ joined
whiteknight Coke: at least one, yes 15:34
trac.parrot.org/parrot/browser/trun...tform/ia64 15:35
Coke is it actually used? =-) 15:37
alright. on unix, it's taking about 2s to run every CC invocation through cc_flags.pl first.
Coke wonders what it looks like on win32. 15:38
(on a fast unix box, that is)
15:40 payload joined 15:42 davidfetter joined
whiteknight so that's a huge waste of time then 16:03
tewk 2s total for the entire build right. 16:06
I bet almost all that time is perl startup time. 16:07
16:09 cotto_working joined
whiteknight tewk, no, it looks like it's called for every single .c file 16:10
tewk whiteknight, it is, but I think coke is reporting the cumulative time during a build, maybe I'm wrong, Coke? 16:17
16:19 payload joined
tewk In other words, 2s of overhead (due to cc_flags.pl) per build sounds about right 16:20
Coke yes, 2s for a build of 1m39s. 16:26
(that's with single threaded make)
and there's no reason for it - the information is static and determinable at compile time.
but we're parsing ./CFLAGS every time we build something. 16:27
s/something/a single file/
and there's only a dozen files or so that even care.
(I tried to get numbers on windows, but my simple hack to disable it failed there.)
2 / (60+39) 16:28
purl 0.0202020202020202
Coke so, about 2%. (whoops ,I should have been able to figure that out in my head.)
16:45 mikehh joined 16:46 theory joined 16:51 dngor joined
dalek rrot: r43687 | coke++ | trunk/DEPRECATED.pod:
mark these always-subject-to-change items with the correct terminology.
16:59
rrot: r43688 | coke++ | branches/rename_hash:
Branch for implementing ļæ½trac.parrot.org/parrot/ticket/679

OrderedHash -> OrderedAssociativePMCArray
Coke after spending about 2m going through src/pmc/hash.pmc, I reject that ticket. =-) 17:18
17:21 darbelo joined
tewk I'm starting to add proptype futures to parrot. Is there any current users of parrotthread, parrotrunningthread? 17:25
ParrotRunningThread is the wrong abstraction. It needs to go away, switching a pmc's type using pmc_reuse is just plain evil, especially when languages will likely subclass parrotthread. 17:26
dukeleto 'ello 17:27
darbelo Hi all.
dukeleto tewk: currently we need tests for compiling with/without threads. currently, if you compile using --without-threads, it still links in pthreads
darbelo: good localtime() 17:28
tewk dukeleto, thats lower on my tuit list right now, but I'll keep it in mind. 17:29
17:31 mikehh joined
dukeleto tewk: can you explain what "proptype futures" means? 17:31
dalek rrot: r43689 | coke++ | branches/rename_hash:
I vote against this ticket.
tewk I'm prototyping "futures", futures are a construct that says go off and do this other task in another OS thread, think of it as fork/join parrallelism. 17:32
It really is fork join parallelism. 17:33
darbelo but threads give more buzz to it.
tewk In other words the programmer promises not to modify shared state, and the workers can return results without having to serialize them. 17:34
yes
To start with I'll probably turn off GC, but I will quickly add support for the threads to pause and allow gc to occur. 17:35
We have already successfully done this for PLT Scheme
darbelo tewk: There was some gc+threading problem a while back. I think it was plobsing that ran into it. You might want to check with him. 17:36
If my memory is working right the gc is already half-disabled for threads. 17:37
Unrelatedly: OrderedAssociativePMCArray? Feeling wordy today aren't we :) 17:40
17:40 mikehh joined
dukeleto Builtin classes will derive from 'Cool' (which itself derives from 'Any'). 17:43
really? those rakudo folks sure are Cool
tewk: interesting. do you have any links that i can read up on futures? kinda hard to search for 'futures' 17:44
tewk its an old functional programming idea 17:45
dalek rrot: r43690 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] support prove v2.x (Test::Harness)
17:47
tewk dukeleto, google: functional programming futures 17:50
dukeleto tewk: danke
17:51 iblechbot joined
darbelo googles "futures from functional programming's past" 17:54
17:56 rdice joined 18:00 kthakore joined 18:21 dngor joined 18:45 kjeldahl_ joined
dalek nxed: r393 | julian.notfound++ | trunk/examples/socket.winxed:
socket example
18:47
18:50 mikehh joined
dalek rrot: r43691 | darbelo++ | branches/pmc_freeze_with_pmcs/t/native_pbc (4 files):
native_pbc platform updates
18:52
19:06 joeri joined 19:14 cognominal joined 19:26 chromatic joined
Coke chromatic: hio 19:28
chromatic morning 19:29
whiteknight hello chromatc 19:32
or chromatic
dukeleto o hai 19:34
chromatic whiteknight, did you see the conversation treed and I had about how XNA handles GC? 19:36
whiteknight no.
sounds interesting though
chromatic They use (apparently) the .NET compact GC framework. 19:37
Every time they've allocated a MB, they run the GC. 19:38
We could keep track of how much memory we've allocated since the last run and run the GC only if it's over a threshhold.
darbelo That sounds like a good fit to parrot's memory usage. 19:41
tewk chromatic, what do we do now?
chromatic We run a full mark and sweep every time we've used up all memory we've allocated. 19:42
We do allocate another arena for the GCable type which caused the exhaustion, if we can't reclaim enough free objects.
particle mark and sweep every time we've run out of enough memory to allocate a new structure, not exactly when it's all used 19:44
tewk ouch, we should always leave gc with at least x free allocation units in each arena. 19:46
s/each arena/each GCable type/ 19:47
chromatic We do.
19:48 payload joined
Coke wonders how important any of the flags in CFLAGS.in really are. 19:50
particle how do i check that a unix service is running? 19:52
davidfetter on fedora, service [whatever] status 19:54
other systems have other ways
Tene particle: '/etc/init.d/whatever status' is going to be pretty universal.
particle perfect, that should work for hrel
er, rhel
davidfetter might be in /sbin, which in turn may not be in your path 19:55
Tene, does that work on *bsd?
Tene davidfetter: dunno.
davidfetter has applebsd, but it's off atm
particle oh, nice, rhel doesn't have a manpage for 'service' 19:57
Tene What version of rhel? My rhel does. 19:58
however, 'service' is just a small wrapper to look up the first argument in /etc/init.d/ and run it with the rest of the arguments. 19:59
particle bugzilla.redhat.com/show_bug.cgi?id=90749
20:11 plobsing joined
whiteknight hmm..you know what might be fun? A wrapper utility to launch Parrot as a service on Linux 20:49
or, a program running on Parrot as a service
bacek Good morning
whiteknight hello bacek 20:52
bacek aloha whiteknight 20:53
whiteknight, care to hunt some GC bugs? :)
whiteknight bacek: always! 20:54
well, I will try to do it tonight, packing up and heading home here in a little bit
bacek whiteknight, gc_encapsualte almost able make corevm
whiteknight bacek: awesome!
bacek but looks like it prematurely collect some data... 20:55
nopaste "bacek" at 220.244.134.113 pasted "Sample of build on gc_encapsulate for whiteknight++" (7 lines) at nopaste.snit.ch/19438 20:56
whiteknight urg, fun 20:57
so a string is getting recycled somewhere
20:57 ash_ joined
bacek whiteknight, looks like. 20:57
whiteknight, yay. You are right 20:58
check Parrot_gc_allocate_string_storage
I missed "constant" allocation here 20:59
whiteknight oh, okay
I need to merge in that kill_array_pmc branch tonight to 21:05
too*
I wanted to do it today but didn't have the opportunity
bacek whiteknight, I can do it. 21:08
whiteknight oh, that would be nice
I haven't heard any complaints, so I thnk it's good to go
bacek letme dcommit fix for "constant" strings
whiteknight ok 21:09
bacek whiteknight, merged 21:10
whiteknight nice. Updating now 21:11
bacek (I didn't rerun make test before dcommiting...)
whiteknight, it's not commited to svn yet :)
r43695 21:12
whiteknight okay, updating again!
bacek Morning duties and $dayjob time. 21:13
See you!
whiteknight later
dalek rrot: r43692 | bacek++ | branches/gc_encapsulate/src/gc/gc_ms.c:
Fix gc_ms_free_buffer signature
21:17
rrot: r43693 | bacek++ | branches/gc_encapsulate/src/gc/gc_ms.c:
Partially implement gc_ms_get_info
rrot: r43694 | bacek++ | branches/gc_encapsulate/src/gc (3 files):
Add flags parameter into allocate_buffer to separate constant vs
rrot: r43695 | bacek++ | trunk (31 files):
Merge kill_array_pmc branch back into trunk.
whiteknight bacek++
21:20 cognominal joined
darbelo whiteknight: ping 21:20
whiteknight darbelo: pong 21:21
darbelo Is there an ETA on the array-killing?
whiteknight darbelo: bacek just merged it
r43695
darbelo To trunk? I only saw commits to gc_encapsulate.
Oh yeah trunk. 21:22
Nevermind.
21:24 plobsing joined 21:39 payload joined 21:47 Andy joined
tewk :q 21:50
21:53 dalek left 21:54 dalek joined
darbelo svn: I find you lack of conflict-resolving skills disturbing. 21:59
GeJ Good morning everyone 22:00
darbelo morning GeJ
dalek rrot: r43696 | darbelo++ | branches/pmc_freeze_with_pmcs (39 files):
Sync branch with trunk.
22:07
GeJ Good morning darbelo 22:08
22:19 japhb joined
dalek tracwiki: v21 | kurahaupo++ | ArrayTasklist 22:39
tracwiki: More related tickets
tracwiki: trac.parrot.org/parrot/wiki/ArrayTa...ction=diff
tracwiki: v22 | kurahaupo++ | ArrayTasklist
tracwiki: trac.parrot.org/parrot/wiki/ArrayTa...ction=diff
tracwiki: v23 | kurahaupo++ | ArrayTasklist 22:55
tracwiki: trac.parrot.org/parrot/wiki/ArrayTa...ction=diff
23:02 khisanth_ joined 23:13 sjn joined
dalek rrot: r43697 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc/imageio.pmc:
Sprinkle casts to make the compiler happy.
23:27
dukeleto Parrot, Now With Sprinkles! 23:28
23:30 eternaleye joined
davidfetter hrm? 23:38
dalek rrot: r43698 | darbelo++ | branches/pmc_freeze_with_pmcs (2 files):
Remove unnecessary definitions and headers. This code lives in the PMC now.
23:44
rrot: r43699 | darbelo++ | branches/pmc_freeze_with_pmcs/MANIFEST:
Update MANIFEST.
23:47 leto joined
dalek nxed: r394 | julian.notfound++ | trunk/token.cpp:
some missing escaped chars in literal strings in stage 0
23:48
TT #1399 closed by whiteknight++: Array unshift/access broken 23:51
23:51 kurahaupo joined
dalek TT #1270 closed by whiteknight++: decodetime and decodelocaltime return Array 23:51
TT #1303 closed by whiteknight++: [DEPRECATION] Array PMC
TT #1293 closed by whiteknight++: Array PMC freeze/thaw/visit broken
23:51 Whiteknight joined
kurahaupo wonders why he gets a message from NickServ saying he's not registered. :-( 23:54
darbelo on irc.perl.org?
kurahaupo yes. 23:55
darbelo There's no NickServ here that I know of.
That sounds more like fleanode.
23:57 kurahaupo1 joined 23:58 dngor_ joined
kurahaupo1 fails to get a message from NickServ. Good. 23:58