|
Parrot 4.6.0 "Wild Parrots of Telegraph Hill" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 18 July 2012. |
|||
| benabik | var view = packfile.view(); cry(typeof(view), ' ', view); # Integer 7 | 00:00 | |
| whiteknight | yeouch | 00:08 | |
| can you fire up the debugger and set a breakpoint on Parrot_pf_get_packfile_pmc? | 00:09 | ||
| benabik | oh hey. | ||
| Called from packfile.view? | 00:10 | ||
| Or rather Packfile_nci_view ? | |||
| point has broken. | 00:11 | ||
| Although this is an optimized build so debugging might get wacky. | |||
| Maybe I should try with debugging information in. | |||
| benabik rebuilds Parror | 00:12 | ||
| *parrot | |||
| whiteknight | yeah, I want to see if pf->view is set there, and if so what it is | 00:21 | |
| because that pointer should only be a PackfileView | |||
| benabik | $1 = (PMC *) 0x0 | 00:22 | |
| whiteknight | ok, so that's not terrible | 00:24 | |
| run all the way to the end of that function and make sure pf->view becomes a PackfileView and the return value ptr is a view | 00:25 | ||
| benabik | Uhm. It's definitely a PMC... | 00:26 | |
| How do I determine type? | |||
| whiteknight | pmc->vtable->whoami | 00:33 | |
| dalek | kudo/nom: eb6c7d4 | (Geoffrey Broadwell)++ | src/core/Str.pm: Fix off-by-one in one of the Str.Numeric error messages |
00:36 | |
| kudo/nom: c91826d | (Geoffrey Broadwell)++ | src/core/Str.pm: Support complex numbers (including pure imaginary numbers) in Str.Numeric |
|||
| rrot: 1403dd4 | Whiteknight++ | / (3 files): Add a packfile api function Parrot_pf_all_tags_list function, to return an RSA of all tags in the packfile. Expose this through the all_tags() method on the PackfileView PMC. Add some missing docs. benabik++ for the suggestion |
00:37 | ||
| rrot: 26ed783 | Whiteknight++ | / (3 files): Move the logic from PackfileView.all_subs() to a new pf api routine Parrot_pf_all_subs, to try and keep all logic in the api and out of the pmc |
|||
| rrot: a381589 | Whiteknight++ | / (3 files): Add a new pf api function Parrot_pf_all_tagged_pmcs. This returns a hash of tag->pmcs, for all tagged pmcs in the packfile. Expose this through the PackfileView.all_tagged_pmcs. |
|||
| whiteknight | those things need some tests | 00:39 | |
| but they're in | |||
| benabik | whiteknight: p ptr->vtable->whoami = (STRING *) 0x10202dbc8 | ||
| whiteknight | try p ptr->vtable->whoami->strstart | 00:40 | |
| benabik | PackfileView \\o/ | ||
| whiteknight | yay | ||
| okay, so continuing on, is it then not a PackfileView when the method returns? | 00:41 | ||
| benabik | Sorry, baby interruption. | 00:50 | |
| Huh. | 00:52 | ||
| Seems to be a view at the return call, but it eventually prints 7 anyway. | |||
| Lemme see what I'm doing with this thing. | |||
| Not sure how to follow the value after the return. | 00:55 | ||
| seems to become 7 somewhere between the C code and the PIR. | 01:00 | ||
| if ( !(view instanceof 'PackfileView') ) die('7?!?!?'); | 01:02 | ||
| Huh. Decompiling Test/More.pbc gives me a PackfileView but "Null or invalid PackFile" when calling main_sub | 01:03 | ||
| whiteknight | hm | 01:04 | |
| benabik | Smells like corruption. | ||
| PackFile * const pf = (PackFile*)VTABLE_get_pointer(INTERP, attrs->directory); | 01:05 | ||
| Why attrs->directory? | |||
| And why get_pointer? | 01:06 | ||
| whiteknight | because shut up. That's why | 01:10 | |
| sorry | |||
| the directory is the thingy that holds all the segments together | |||
| benabik | Right. | ||
| Seeing it nwo. | |||
| whiteknight | and the pointer because we're at raw structs here, not pmcs | ||
| the pmcs are just post-factor wrappers for the structs | |||
| benabik | And Directory.get_pointer will create a Packfile if it doesn't have one apparently. | 01:11 | |
| whiteknight | does it? | ||
| benabik | According to docs? | 01:12 | |
| Actually... | |||
| It appears to create a new packfile no matter what. | |||
| whiteknight | a new Packfile PMC, or a new packfile*? | 01:13 | |
| benabik | PackFile* | ||
| Holdon... | 01:15 | ||
| But this changes ownership of segments to the new PackFile. What does that do to any old PackFile references? | |||
| I don't think this is a particularly safe thing to call on a directory for an existing Packfile | |||
| whiteknight | yes, this is all sounding sub-optimal | 01:29 | |
| dalek | rrot: 5f0fd0c | Whiteknight++ | docs/project/release_manager_guide.pod: Remove rurban++ from the list of upcoming release managers. his release is already done. |
01:31 | |
| rrot: 74d8fbf | Whiteknight++ | ChangeLog: add mention of new PackfileView methods to ChangeLog |
|||
| rrot: 5dab665 | Whiteknight++ | src/pmc/packfileview.pmc: A few small cleanups and doc improvements for PackfileView PMC |
01:42 | ||
| whiteknight | bleh | 01:45 | |
| okay, so calling Packfile.view() does create a new PackFile structure, which does make some sense. | 01:48 | ||
| and Parrot_pf_get_packfile_pmc sets pf->view correctly | |||
| because once the PackfileView has been created, the packfile is assumed to be static and read-only | 01:49 | ||
| so it makes sense to give it a copy | |||
| what doesn't make sense is that you're getting something that isn't a view from that method | 01:51 | ||
| msg nine I am getting threads failures on my winxp box. The list of failures changes each time I run, and the failures look weird (perl tests with non-zero exits, tests running out of order, etc). Is probably a problem with my kit. | 01:52 | ||
| aloha | OK. I'll deliver the message. | ||
|
01:53
benabik joined
|
|||
| benabik | I'm confused because somewhere between set_return(view) in C and typeof(view) in PIR it's changing. | 01:55 | |
| It really feels like corruption somewhere because what it is changes based on what PBC I'm disassembling. | 01:56 | ||
| whiteknight | hm | 01:57 | |
| dalek | rrot: 92d8d2b | Whiteknight++ | src/pmc/packfile.pmc: document the Packfile.view method |
||
| benabik | whiteknight: PACT/main_sub has the offending code | ||
| (dalek should notice soon) | 01:58 | ||
| dalek | CT/main_sub: fcd101f | benabik++ | src/ (2 files): WIP: main sub Currently, I'm not always getting a PackfileView back, and when I do it seems to be corrupted. |
||
| whiteknight | I haven't updated this in a while | ||
| sorear | what is the relationship between PACT and QAST? | 02:00 | |
| benabik | sorear: Basically none, other than they're both starting from "PCT isn't good enough" | 02:01 | |
| sorear: QAST is using 6model to gain a lot of memory efficiency. | |||
| whiteknight | eventually PACT will be using 6model too, if I can ever get that into parrot | 02:04 | |
| that's the next project I start on, if I can get either threads or whiteknight/io_cleanup1 merged | 02:05 | ||
| benabik | sorear: Right now PACT is working "replacing PIR", not "replacing PAST" which is what QAST is. (jnthn is also working on PIRT which replaces POST, IIRC) | ||
| whiteknight | but I refuse to have three branches, of such large size, floating in the air simultaneously | ||
| anyway, it's way past my bedtime. I'm out. Later | 02:06 | ||
| benabik | I'm trying to making type notations in PACT so I can convert to typed attributes if we get 6model into core. Not storing integers in full PMCs goes a long way towards efficiency. | 02:07 | |
|
02:25
benabik joined
02:36
JimmyZ joined
|
|||
| JimmyZ | what is the relationship between PACT and m1/m0 ? | 02:37 | |
| benabik | Also basically nothing. PACT is working on the "high level" bytecode level, which AFAIK is supposed to be more-or-less untouched on top of M0 | 02:38 | |
| That said, I do want to make the higher levels of PACT more generic so they might be able to compile down to a PACT.MZero structure or something. | 02:39 | ||
| JimmyZ | 'oh | 02:53 | |
| yes, bytocode | |||
| *bytecode | |||
|
02:59
benabik_ joined
04:16
wendar joined
05:49
nopaste joined
05:53
TonyC joined
06:11
brrt joined
06:13
nopaste joined
|
|||
| dalek | d_parrot/sub-eval: 19ca2d3 | (Bart Wiegmans)++ | / (10 files): The Great Reorganisaton is on its way. Loaders are next |
06:27 | |
| d_parrot/sub-eval: d77a6eb | (Bart Wiegmans)++ | module/mod_parrot_pool. (2 files): Delete redundant file |
06:28 | ||
|
07:14
brrt joined
|
|||
| dalek | kudo/nom: 4e14470 | moritz++ | src/Perl6/Actions.pm: simplify code from commit 34e8d4d8, felher++ |
07:49 | |
|
07:59
lucian joined
09:23
nopaste joined
09:33
LizM joined,
woolfy joined
11:00
brrt left
11:11
JimmyZ joined
12:38
nopaste joined
13:19
bluescreen joined
|
|||
| rurban | nine, whiteknight: sleep on Win32 and cygwin is unreliable. deadlock with signals (do not know which yet). probably the same problem as with nci. | 13:56 | |
|
14:07
preflex_ joined
|
|||
| dalek | rrot/threads: 5342d65 | Whiteknight++ | src/scheduler.c: Several small cleanups, comments and a few TODO notes in scheduler.c. No functional changes |
14:08 | |
| rrot/threads: d752612 | nine++ | / (2 files): Unshare runloop_id_counter to fix races runloop_id_counter should be local to the interp instead of global. There's no reason to share it between threads. Leaving it global was an oversight. |
|||
| rrot/threads: ce49c6c | Whiteknight++ | src/pmc/alarm.pmc: Cleanup Alarm PMC. Add some comments/docs. Cleanup some code. Add the ability to get the alarm time as a PMC from get_pmc_keyed_int, in case anybody wants to try that. |
|||
| rrot/threads: 57cee73 | Whiteknight++ | src/pmc/scheduler (2 files): A few small cleanups to scheduler and schedulermessage PMCs. No functional changes |
|||
| rrot/threads: 56c96dd | rurban++ | t/pmc/nci.t: [GH #808] Remove sleep calls in nci.t, because of signal deadlocks with parrot threads Even without sleep calls the tests succeed. But since it loops until the resuilt arrives, let it busy loop a bit longer. Note: This is a hack. sleep on threads should be fixed instead. |
|||
| rurban | I had to rebase the threads related commits into the threads branch. | 14:09 | |
|
14:12
brrt joined
14:14
brrt joined
|
|||
| brrt | if anyone cares | 14:15 | |
| i might get my hands on a ppc | |||
| darwin + ppc | |||
| rurban | powerbook G4 or G5? I've got a G4. It's heavy | 14:18 | |
| brrt | a mac mini :-) | ||
| JimmyZ | aloha | 14:19 | |
| rurban | better. But I don't think you'll need it for parrot. | ||
|
14:19
dmalcolm joined
|
|||
| brrt | it'll be fun still | 14:20 | |
| rurban | Get a Mac Air, this is fun. | 14:24 | |
| and 7 hrs battery time | |||
| brrt | if tuition wasn't killing me financially i would | ||
| also, do mac people who are also hacking people.. run linux or os x on their machines? | 14:28 | ||
| benabik | OS X | ||
| brrt | really? | ||
| tadzik | I was surprised too | ||
| "wow, serious people use macs" | 14:29 | ||
| benabik | I don't really see any advantage to running Linux on it, honestly. | ||
| brrt | ... i'd almost say 'superior interface' | ||
| tadzik | :> | ||
| brrt | but, in honesty, its tooling for me | ||
| rurban | you can build a hackintosh | ||
| benabik | sure... | ||
| tadzik | but you're spending 90% of time in vim anyway, so... | ||
| rurban | just some bios hack needed (EFI) | ||
| benabik | Only advice I might have is to reformat the main drive to be case sensitive. | 14:30 | |
| brrt | honestly, the gnome 3 interface is quite good | ||
| benabik | I haven't, but it causes pain from time to time. | ||
| rurban | gnome 3? I went back to xfce out of disgust | ||
| tadzik | s/xfce/kde/r, me too | 14:31 | |
| their workflow is not my workflow | |||
| I even talked to the devs shortly after release | |||
| "we are not going to add configuration options just for the sake of adding them" about sums it up | |||
| brrt | fair enough | ||
| yeah, i kind of miss configuration options too | |||
|
14:31
bluescreen joined
|
|||
| brrt | but where it works it works really well | 14:32 | |
| (as a sidenote, has anyone here experience with a structview for a struct containing cstrings?) | |||
| Coke | I have an macbook air for work, so I can't install linux on it, but I find I hae no need to. | 14:33 | |
| tadzik | it's mostly unix, so it's mostly fine :) | ||
| I guess. I never had a mac | |||
| brrt | my number one annoyance | 14:34 | |
| benabik | It's mostly BSD, technically. | ||
| brrt | find doesn't assume the current directory | ||
| you must always explicitly type find dot (expression) | |||
| benabik | Does GNU find assume . ? | 14:35 | |
| tadzik | if no other options are used, yes | ||
| "find" works, "find -name" doesn't, iirc | |||
| rurban | lots of gnuisms missing on bsd's, yes annoying | 14:36 | |
| benabik | I had a few GNU utilities installed via fink. | 14:37 | |
| I don't know if they're in homebrew. | |||
| rurban | but solaris is even more annoying | ||
| benabik | But you can always download and install it in /usr/local (or /opt/gnu or whatever) yourself. | ||
| Solaris is a nightmare. | |||
| Literally. I have nightmares about it. | 14:38 | ||
| ;-) | |||
| tadzik | :) | ||
| rurban | I think I'll rename [GH #808] to "threads: sleep deadlocks". The nci tests are only the tip of the iceberg. | 14:39 | |
| Coke | "why, I remember sunos. quitcher complaining, youngster." | 14:40 | |
| rurban | Is nine or whiteknight around? I want to state in GH #808 that: "There's a design limitation that only one signal can be accepted per thread. I assume the sleep thread blocks signals which arrive during the sleep, and the sleep loop never finishes." | 14:43 | |
| I would say threads is not ready yet to merge. now t/op/time.t hangs on darwin/ppc and windows and cygwin. | 14:48 | ||
| I'll go on to io_cleanup1 | |||
| brrt | .. c strings and structivew, doesn't work? | 14:52 | |
|
14:54
dmalcolm joined
|
|||
| brrt | fair enough | 15:09 | |
| i work arround it | |||
| benabik | I've never used structview. | ||
| brrt | don't | 15:11 | |
| they're useless :-p | |||
| or, in other words | |||
| a CString PMC would be very Handy | 15:12 | ||
| dalek | kudo/nom: 8f97220 | (Felix Herrmann)++ | src/binder/multidispatch.c: fix issue in binder/multidispatch.c where A is narrower than B is narrower than A Signed-off-by: Moritz Lenz <moritz@faui2k3.org> |
15:16 | |
| rurban | cygwin failures for threads smolder.parrot.org/app/projects/rep...ails/30529 | 16:13 | |
|
16:53
tuxit joined
|
|||
| dalek | kudo/nom: e5e9e79 | moritz++ | src/core/Num.pm: make Num.new better suitable for subclassing. japhb++ and sorear++ |
16:54 | |
|
17:17
alvis joined
|
|||
| allison | alvis: you should have admin access on the old blog | 17:52 | |
| alvis: (I mean, you *do* have admin access now, so check that it's working) | |||
|
18:29
lucian joined
18:37
bluescreen joined
18:56
dukeleto joined
19:22
bluescreen joined
20:19
benabik joined
|
|||
| nine | rurban: if there's a race in the timer thread, it's no wonder that sleep and alarm tests are failing randomly. Would be great if someone with actual pthreads experience could have a look at my timer thread implementation. That's my first pthreads work after all... | 20:21 | |
| dalek | kudo/nom: cb065c8 | moritz++ | src/core/control.pm: avoid a vtable call in get_integer |
20:22 | |
| rurban | nine: I see. I could not find another race in the timer thread, just signals are either not arriving or blocking the sleep and there's a for sure deadlock. Maybe whiteknight can help out. | 20:33 | |
|
20:39
PacoAir joined
|
|||
| nine | But I still wonder why I cannot reproduce any failures locally. | 20:42 | |
| rurban: if you'd have one qemu image for me in which I could reproduce failures, that would help tremendously | 20:44 | ||
| rurban | tsan did not help? worked fine for me to repro with tsan on a fast linux 64bit. | ||
| nine | oh, I forgot about that. Will try right away | 20:45 | |
| rurban | That's why I wrote my blog entry | ||
| Coke | rurban++ | 20:53 | |
| nine | rurban: with tsan I can reproduce the task.t hang, but I cannot find how to get a useful stacktrace at that point. | 21:00 | |
| rurban | gdb into the ps id? | 21:01 | |
| nine | rurban: that gives me only some valgrind functions | 21:46 | |
| rurban | uploaded to perl514.cpanel.net/qemu/ do you see that? | 21:47 | |
| in the tar are a README, the starter, the bios and the image | |||
| nine | Excellent! Downloading... | ||
| rurban | 511MB only | 21:48 | |
| nine | I have a Core i7 webserver at Hetzner which is idling along all day. Thinking about hosting such VMs for parrot devs to play around with | 21:49 | |
|
21:51
PacoAir_ joined
|
|||
| rurban | Then you'd need to change networking to bridge mode. | 21:52 | |
|
22:09
PacoAir joined
22:22
PacoAir_ joined
|
|||
| rurban | now also perl514.cpanel.net/qemu/powerpc/ | 22:28 | |
| nine | Good night | 22:52 | |
|
22:52
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 23:04 | |
| benabik | o/ whiteknight | ||
| whiteknight | hello benabik | 23:05 | |
|
23:29
PacoAir_ joined
23:47
kid51 joined
|
|||
| dalek | rrot: 81ed05e | jkeenan++ | / (3 files): [codingstd] Conform to linelength, C parens, C args asserts, etc. |
23:51 | |