Parrot 2.10.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Long live Git! github.com/parrot/parrot | git clone git://github.com/parrot/parrot.git
Set by moderator on 18 November 2010.
00:00 mikehh joined 00:06 bacek left
cotto_work aloha: clock? 00:07
aloha cotto_work: cotto_work: LAX: Wed, 16:07 PST / CHI: Wed, 18:07 CST / NYC: Wed, 19:07 EST / UTC: Thu, 00:07 UTC / LON: Thu, 00:07 GMT / BER: Thu, 01:07 CET / TOK: Thu, 09:07 JST / SYD: Thu, 11:07 EST
cotto_work bacek_at_work: ping
allison: ping 00:12
00:14 shockwave joined
dalek rrot/embed_api: 99428c2 | (Mariano Wahlmann)++ | src/embed/ (2 files):
Make src/embed/pmc.c & src/embed/api.c compile with gcc
00:19
rrot/embed_api: 590f387 | Whiteknight++ | / (3 files):
update pbc_disassemble to the new API. Had to add a new API function to perform disassembly. Build still fails at parrot_nci_thunk_gen
rrot/embed_api: 36fca15 | Whiteknight++ | / (7 files):
Finally add in the rudiments of my error reporting mechanism. There is now a final_error STRING on the interp that is reserved for printing error messages of last resort. Several other fixes. parrot_nci_thunk_gen still fails with segfault, after the main runcore terminates from unhandled exception. I suspect calling Parrot_exit at that point breaks things irrepairably and later operations fail in bad ways. I may need to remove Parrot_exit f
rrot/embed_api: 489f01f | Whiteknight++ | src/embed/ (2 files):
Merge branch 'embed_api' of github.com:Whiteknight/parrot into embed_api
rrot/embed_api: 3d34e6a | Whiteknight++ | /:
Merge branch 'embed_api' of github.com:parrot/parrot into embed_api
00:20 shockwave left 00:23 stilgar joined
cotto_work decommutes 00:25
00:27 zby_home joined 00:28 dmalcolm left 00:37 dngor left, dngor joined
allison cotto/cotto_work: pong (when you finish decommunting) 00:37
00:46 zby_home left 00:51 dngor left 00:52 dngor joined
cotto allison, what was the strategy behind the context refactors? 00:53
It sounds like a similar approach is warranted for packfiles
00:53 mikehh left
allison cotto: break it into a series of small refactors, preserving the interface as much as possible, but making more disruptive changes on deprecation boundaries 01:00
01:02 mikehh joined
cotto allison, what was the strategy for turning it into a pmc? 01:02
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#1310) fulltest) at 3cfeb72 - Ubuntu 10.04 amd64 (g++) 01:04
cotto mikehh, how lovely are the feet of those those who bring good news
mikehh cotto: whatever, still have a problem (or did) with 10.10 amd64 and g++-4.5, will check that again :-} 01:07
allison cotto: ah, for that we first made a wrapper pmc around the existing system, leaving the old code in place 01:08
cotto: then gradually transitioned over to using the pmc everywhere
cotto: and then (on a deprecation boundary) removed the old interface
cotto so there was lots of ATTR access during the transitional period? 01:09
01:19 stilgar left
whiteknight dukeleto: ping 01:19
we have a *very* nice logo submission for Parrot+RTEMS
At least, my untrained eye likes it 01:20
01:33 shockwave joined
mikehh t/pmc/fixedstringarray.t - Non-zero wait status: 11 in coretest (make corevm/make coretest) - Ubuntu 10.10 amd64 - g++-4.5 01:36
doesn't happen anywhere else (passes make test) BUT fails this test in Kubuntu and Ubuntu 10.10 with g++-4.5 no --optimize (passes with --optimize and with gcc-4.5) 01:38
and on i386 versions and on 10.04 amd64 with g++-4.4 01:39
whiteknight yay! another pull request 01:42
dalek rrot/dynext_func_rename: c988360 | (Matt Rajca)++ | / (10 files):
Rename public functions in src/dynext.c
01:46
01:46 shockwave left 01:50 bluescreen joined
dalek rrot: 0851b2c | Whiteknight++ | / (122 files):
Merge branch 'master' of github.com:parrot/parrot
01:54
rrot: f5740f7 | Whiteknight++ | src/global_setup.c:
this commit ended up on the wrong branch somehow. Remove it for now
02:10
bluescreen That happens ;) 02:16
whiteknight bluescreen: Check out the embed_api branch. I'm kind of stuck right now
parrot_nci_thunk_gen fails with segfault and I can't figure out why yet 02:17
bluescreen I'm trying to get pbc_* to work with longopt
whiteknight oh, okay
that would be awesome
bluescreen actually its almost there
but need to change the Makefile.in
whiteknight ok 02:18
bluescreen what's parrot_nci_trunk_gen ?
whiteknight it's a tool that generates a bunch of function"thunks" for NCI function calls 02:19
02:19 nwellnhof left
whiteknight you pass in a list of function signatures, and it builds a C function for you to call an external library 02:19
bluescreen hmm.... what is your suspect? 02:20
whiteknight the interp struct is getting corrupted some how. There is an unhandled exception that triggers the error mechanism. 02:22
I think that the first unhandled exception is causing something to get broken and when we try to recover everything is already broken
I don't know why it is throwing an exception in the first place, however 02:23
bluescreen ok... are u using parrot.exe ?
what are you using to reproduce it 02:24
whiteknight it's just part of the build 02:25
type "make", and you get there eventually 02:26
bluescreen ok.. that's easier
dalek rrot: 6ab7c2e | Whiteknight++ | /:
Merge branch 'master' into dynext_func_rename
bluescreen is there any comprehensive doc about git somewhere?? the more I use it the more I think I need to learn it from a doc
cotto bluescreen, gitref.org/ 02:27
bluescreen thanks cotto++ .. I really wanted to RTFM
cotto (linked from github's help, which lives up to its name) 02:28
there's a wide selection of fine manuals
bluescreen I've mostly read cheat sheet on how svn dev cycle applies into git 02:30
but it is a complete different beast
cotto very different 02:31
whiteknight I 02:35
've got to install Inkscape to really examine some of these logos 02:36
cotto where are the logos?
dalek TT #1872 created by mikehh++: t/pmc/fixedstringarray.t fails coretest 64 bit with g++-4.5
TT #1872: trac.parrot.org/parrot/ticket/1872
whiteknight on the google-melange website 02:37
in the comments of the related tickets
cotto apparently I need to do some things 02:38
whiteknight yes, quite a few things :) 02:39
in this case, much better than not having enough 02:40
blah. I wish dukeleto were around. There's a great Parrot+RTEMS logo submission that I want him to see 02:48
cotto melange-- 02:49
whiteknight yeah. For a program designed to help improve the quality of free software, it's pretty lousy software 02:50
cotto I'd hate for Parrot/RTEMS to have a better logo that Parrot. ;) 02:51
whiteknight then the Parrot logo would have to improve 02:52
cotto yes
whiteknight I don't think it's a bad logo we have. Not nearly as awesome as it could be 02:53
but that's neither here nor thre
there
cotto We could hijack the feathers, though they're similar to Apache's logo. 02:54
02:59 AzureStone left
whiteknight that website submission is pretty plain 02:59
02:59 eternaleye left, GeJ left, GeJ joined, arnsholt left, arnsholt joined, dngor left, dngor joined, Hunger left, eternaleye joined, wagle left, jjore left, wagle joined, AzureStone joined, NotFound left, Hunger joined, nopaste left, NotFound joined, jjore joined 03:00 sjn left, sjn joined, jasonmay left, jasonmay joined, TonyC left, TonyC joined 03:01 nopaste joined 03:10 slavorg left, whiteknight left, slavorg joined
bluescreen whiteknight: ping 03:40
cotto bluescreen, you might want him to be online before you ping him
bluescreen lol
whats the command to save a message for him 03:41
cotto msg bluescreen this one
aloha OK. I'll deliver the message.
bluescreen gr8
what's your current location cotto
US?
cotto redmond, wa
yes 03:42
bluescreen you seem to be 24x7 online
cotto so I do
bluescreen he he.. is parrot your full time job
?
cotto no, but work is tolerant of idling as long as I don't spend too much time. 03:43
bluescreen thats great... I wish i had a google's 20% 03:45
msg whiteknight I've sent you an email about the segfaults in the parrot_nci_thunk_gen 04:04
aloha OK. I'll deliver the message.
bluescreen good bye 04:05
04:05 bluescreen left 04:09 nopaste left 04:15 nopaste joined
cotto bacek_at_work, ping 04:48
04:54 simcop2387 left
bacek_at_work cottopong 05:04
bacek_at_work think that "cottopong" is some alien monster :)
cotto, pong :)
cotto bacek_at_work, what's the "gc_ms2_magical_mark" that src/gc/gc_ms2.c in generational_gc refers to? 05:05
05:05 cotto is now known as cottopong
cottopong rawr 05:05
05:05 cottopong is now known as cotto
bacek_at_work just overriden version of pmc_mark which will set proper flags 05:06
see '"Magical mark" will do next' few lines down
cotto that makes sense
right 05:07
It threw me off that it wasn't the name of a real function. It'd make a good one.
05:07 simcop2387 joined
cotto bacek_at_work, what code actually does that work? 05:08
bacek_at_work I didn't come with better name. Feel free to rename it to something tasteful
cotto, ? 05:09
cotto setting the flags and wrapping VTABLE_mark
I'm editing as I go.
naming is tricky 05:10
bacek_at_work wrapping - gc_ms2_mark_and_sweep. It's similar to current code.
actually - gc_ms2_bring_them_together 05:11
line 1079
cotto ok
thanks for the docs 05:12
bacek_at_work It's just idea how we can implement "fast" GenGC. Current implementation is way too slow. 05:16
cotto how well do the docs reflect the state of the code? 05:18
05:19 rurban_ joined 05:21 rurban left, rurban_ is now known as rurban
bacek_at_work cotto, 0% 05:27
I just wrote rough idea down for reviewing. 05:28
cotto I see. That saves me a whole lot of confusion. 05:31
bacek_at_work, do you have a paper your algorithm is based off that'd make good background reading?
bacek_at_work basically it's based on experience with initial implementation. 05:32
github.com/perl6/bench-scripts looks as good foundation for parrot/rakudo benchmarking 05:35
cotto bacek_at_work, what would be most helpful: code review or review of the proposed design for a new gen gc? 05:56
actually, I guess it'd be design review since you're not happy with the code as-is 05:57
luben I have a question about Parrot_sysmem_amount(). It has platform specific implementation identified at Configure time 06:06
cotto luben, yes
luben As I read it, some of the systems (BSD,Darvin etc) return all physical memory installed in the computer 06:07
the SysV system return only free memory
so in SysV the returned memory is All_mem - Buffers - Cache 06:08
In win32 systems the returned value is also some kind of free memory (I could not say if the cache and buffers are considered free) 06:09
What this function is intended to return? The installed memory or free memory? 06:10
I am interested in this function because it is used to establish gc_threshold value (currentrly Parrot_sysmem_amount()/8) 06:11
and I see quite different behaviour regarding the GC 06:13
example: my current system is linux, amd64 with 4G RAM, my free memory is 40M only, but cache is 3G. If I compile rakudo in the state it takes more than 10 minutes 06:15
If I drop the vm cache and buffers, it compiles under 3 minutes 06:16
I think we should make the semantics of Parrot_sysmem_amount() consistent among all platforms 06:18
cotto luben, sure. The version in config/gen/platform/generic/sysmem.c is what bacek originally added, so you can probably assume that it implements the semantics he was going for. 06:20
luben I think that "All memory installed" will be more apropriate than "Free memory". I'll catch bacek to talk about the issue 06:21
bacek_at_work, ping
06:24 bacek joined
luben bacek, ping 06:24
07:19 AzureStone left 07:22 theory left 07:24 fperrad joined
bacek luben, pong 07:24
07:25 AzureStone joined 07:49 jan left 08:32 zby_home joined
zby_home seen chromatic? 08:33
aloha chromatic was last seen in #parrot 3 days 2 hours ago saying "After a few hundred tuning commits? Your words hurt me!".
08:35 zby_home left 08:36 bacek left
dalek TT #1597 closed by bacek++: add "provides" for sub/eval/multisub/etc. 09:21
TT #1597: trac.parrot.org/parrot/ticket/1597
10:10 lucian joined 10:23 Coke left 10:35 Coke joined 11:36 contingencyplan left 11:52 lucian left 11:55 darbelo joined 11:59 darbelo left, darbelo joined 12:07 bluescreen joined 13:11 whiteknight joined 13:16 dngor left
dalek rrot/vtable_func_renames: 8af5029 | (Matt Rajca)++ | / (8 files):
Rename public functions in src/vtable.c
13:16
13:17 dngor joined 13:18 rurban_ joined 13:21 rurban left, rurban_ is now known as rurban 13:25 Patterner left 13:35 Kulag left, Psyche^ joined 13:36 Psyche^ is now known as Patterner
bluescreen happy thanks giving 13:45
msg whiteknight longjmp of Parrot_exit is not returning where it supposed to, Parrot_exit is being executed twice and so segfault happens 13:46
aloha OK. I'll deliver the message.
14:25 Kulag joined
whiteknight bluescreen: thanks for the info 14:26
I have to figure out why that is happening
although I'm going to be busy today and most of tomorrow
bluescreen i think i know 14:27
the problem is Parrot_api_get_last_error
returns a null 0x0
and thats feed into Parrot_api_string_export_ascii
which calls Parrot_str_to_cstring(interp, string);
and that throws an expection because the string is null 14:28
whiteknight ah, that's weird.
I don't think it should be returning a NULL
bluescreen well it returns whatever was the last error message
since its a normal exit it has nothing to complain about
and so last_error is NULL 14:29
the default exception its trying to call Parrot_exit again 14:30
and at that point we already executed Parrot exit
dalek rrot: 8af5029 | (Matt Rajca)++ | / (8 files):
Rename public functions in src/vtable.c
14:31
whiteknight ah. That makes sense 14:32
bluescreen TODO: fix Parrot_api_get_last_error , Parrot_api_string_export_ascii and deal with "exit" opcode 14:33
whiteknight okay, I'm going to have to think about a way to fix that
bluescreen yes... that's the last piece of it
whiteknight because EXCEPT_exit is a normal flow-control situation
bluescreen yes...
whiteknight thanks for the analysis! That's extremely helpful
bluescreen we have to capture that in the run_bytecode 14:34
and return 1 if its a normal exit
0 otherwise
dalek rrot/exit_func_rename: ea6a288 | sygi++ | src/exit.c:
proba
14:35
rrot/exit_func_rename: 3215717 | sygi++ | / (6 files):
parrot_on_exit->parrot_x_on_exit
rrot/exit_func_rename: 1e06e5c | sygi++ | / (22 files):
parrot_exit->parrot_x_exit
bluescreen how do you capture the second parameter of longjmp ?
whiteknight it's the output of setjmp 14:37
bluescreen mmm..
we're screwed 14:38
Parrot_destroy_interp is calling Parrot_exit
that's the second call 14:39
maybe we shouldn't call Parrot_exit in the parrot_destroy_interp
or Parrot_exit should know that it was already called
dalek rrot: c63fc3e | (Gerd Pokorra)++ | docs/project/release_manager_guide.pod:
remove some svn related stuff
14:49
rkdown: 99caee8 | fperrad++ | markdown/Compiler.pir:
remove CodeString
15:14
rkdown: da6c438 | fperrad++ | markdown/Compiler.pir:
more StringBuilder
whiteknight bluescreen: take a look at some documentation for setjmp/longjmp. I won't be able to really look into this until tomorrow, but I think if we do some basic manipulations on the return value from setjmp we can differentiate between a requested exit and an exceptional exit 15:20
bluescreen ok 15:21
I pushed a fix
for segfault
when calling twice Parrot_exit
whiteknight plus, we should probably add error-checking to Parrot_api_string_export_ascii and friends to not go crazy on a NULL STRING input
thanks!
bluescreen++
bluescreen I'll try to get this solve
dalek rrot/mappedbytearray: 8cb0ea3 | NotFound++ | src/pmc/mappedbytearray.pmc:
add ability to open for write, still highly experimental but valid for testing
15:29
whiteknight okay, I'm out for the holiday. Later 15:31
15:31 whiteknight left 15:57 kid51 joined 16:26 nwellnhof joined
cotto bacek_at_work, ping 16:43
msg bacek_at_work I'm thinking through the packfile pmc transition and trying to make it as incremental as possible. How does this sound: 17:03
aloha OK. I'll deliver the message.
cotto msg bacek_at_work nuke current packfile PMCs
split existing packfile code into separate self-contained files
make a PMC for each packfile segment that wraps the PackFile_* struct
use the existing oo-style functions (new_seg, destroy, packed_size, pack, unpack, dump) to implement VTABLE functions in the PMCs
switch imcc (et al) internals to use the new packfile pmcs
aloha OK. I'll deliver the message.
cotto move the struct members into separate ATTRs
17:05 bluescreen left 17:06 allison left 17:11 cotto left 17:19 bluescreen joined 17:20 theory joined 17:28 TypeNameHere_ left 17:50 nwellnhof left 18:02 M_o_C joined 18:08 lucian joined 18:24 kid51 left 18:26 contingencyplan joined 18:47 jan joined 19:17 fperrad_ joined, fperrad left, fperrad_ is now known as fperrad 19:26 kid51 joined
dukeleto hola 19:59
tadzik aloha 20:01
dalek rrot/mappedbytearray: 2075ff3 | NotFound++ | src/pmc/mappedbytearray.pmc:
use common style for open mode parameter, improve mode handling and diagnostics and clean coding std
20:02
rrot: 5228f44 | dukeleto++ | docs/project/ (2 files):
[docs] Improve some git docs and formatting

Adding some information about C<git commit -a> and reformatted some docs to be more copy-paste friendly.
20:16
20:17 M_o_C left
dalek rrot/tt532_headerizer_refactor: 883196d | jkeenan++ | / (9 files):
Rename lib/Parrot/Headerizer.pm to lib/Parrot/Headerizer/Object.pm.

or Parrot::Headerizer::Functions. Tests need to be updated.
20:19
rrot/tt532_headerizer_refactor: 778bdb9 | jkeenan++ | / (4 files):
Add tests for Parrot::Headerizer::Functions::assert_args().

Rearrange some code for more logical order.
20:20
20:20 kid51 left 20:41 bluescreen left 20:43 bluescreen joined 20:54 bluescreen left 20:59 fperrad left 21:07 fperrad joined 21:08 bluescreen joined 21:18 jasonmay left 21:19 rurban_ joined 21:21 jasonmay joined, rurban left, rurban_ is now known as rurban 21:55 bluescreen left
luben aloha, git 21:55
aloha, workflow
aloha, gitworkflow 21:56
aloha, gitworkflow is github.com/parrot/parrot/blob/mast...rkflow.pod 21:57
aloha luben: Okay.
22:02 fperrad left
luben aloha, gitworkflow 22:07
aloha, gitworkflow?
aloha luben: gitworkflow is github.com/parrot/parrot/blob/mast...rkflow.pod
22:09 cotto joined
bacek_at_work ~~ 22:28
GeJ Bonjour everyone.
G'Day bacek.
bacek_at_work G'Day GeJ
cotto, current Packfile PMCs are already has ATTRibutes closely mirroring PackFile_* structs. 22:29
luben bacek_at_work, I have a question 22:42
bacek_at_work luben, shout
or msg me. I have to run to meeting soon. 22:43
luben currently the value returnet from Parrot_sysmem_amount() is not consistent between platforms
some platforms return all installed memory (BSDs) other return free memory (SysV) 22:44
bacek_at_work Idea was to return free memory. 22:45
luben free memory does not include cahce and buffers
bacek_at_work correct
luben so we get quite different performance depending on the state of the computer 22:46
for example. rakudo compile could vary from 10 minutes to 2 minutes
with the same used by programs memory with differned cache used by the OS 22:47
I think it's better this function to return all installed memory and to make gc_threshold some smaller fraction of it 22:49
this will give consistent behaviour across platforms and consistent performance between different runs 22:50
dalek rrot/mappedbytearray: f1ef14b | NotFound++ | src/pmc/mappedbytearray.pmc:
add the "supported" method, avoid break compiling when not supported and improve pod doc
22:51
NotFound Can someone build this branch on windows? My XP home has become unable to build parrot. 22:54
bacek_at_work luben, sounds reasonable.
luben Ok, I'll make some tests here and later will report my findings. I will need someone to test on windows, because I do not have win32 box 22:55
22:55 darbelo left
NotFound luben: I suggest adjusting the value if the value seems too small. 22:58
luben the value depend on the system state that could vary in time. e.g I have 4G RAM installed and could have 40M free because 1 have 3G of cache 23:01
NotFound I think we can assume that people trying do execute big programs in machines short of memory will take care of not loading the system too much.
luben the system is not loaded
it WAS loaded before (I was watching a movie) 23:02
so the disk cache is full
NotFound luben: I mean, after making your change. If the value obtained by the choosen percentage looks too small, increment it, or use other percantage.
luben OK, yes 23:03
this is my intention
now it uses 1/8 of the free memory. I will try with 1/32 of all installed memory and will call for testing 23:04
NotFound luben: currently the winxed opengl example 'fly' eats 9.9% and makes perceptible pauses if I drop the explicit sweep it has. Wit it, only 0.5% and no pauses. 23:08
amd64, 4GB 23:09
luben currently, it depends also on the ammount of free memory 23:10
NotFound Right now, more than 2 GB free 23:11
luben so, current gc_threshold is more than 512M, so every gc run takes longer 23:12
I am compiling a branch now and I will push it in minutes for testing 23:13
NotFound The effect of the gc run is clearly viewable, maybe 0.5 seconds. 23:14
On the positive side, it uses a lot less CPU without the sweep. 23:21
luben may be we could make a commandline parameter to adjust the fraction used for gc_threshold - different programs have diffenend needs
bigger gc_threshold - better throutput 23:22
smaller gc_threshold - better interactive behaviour
NotFound We can add it as experimental and let people play with it.
luben yes. there was gc_threshold param now (still in parrot -h) that we could use 23:23
dalek rrot/luben/gc_threshold_adjust: 441de0b | luben++ | / (3 files):
use fraction of installed memory as gc_threshold
23:32
luben NotFound, could you test the new branch with OpenGL fly example? Next I will try to make commandline param for the fraction 23:33
NotFound building it... 23:37
3.9% memory usage, pauses are shorter but more frequent. 23:39
luben I am making now commandline param in order to make in adjustable 23:43
NotFound I'll test it tomorrow, now I'm going to bed. 23:49