|
Parrot 2.4.0 "Sulfur Crest" Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere Set by moderator on 18 May 2010. |
|||
|
00:15
kurahaupo joined
|
|||
| whiteknight | I can't really trace through this code without more info. There are three interpreters: INTERP, attrs->supervised, and attrs->supervisor | 00:15 | |
| without knowing which is which, I can't really figure all this out | |||
| cotto_work | supervisor is the same as INTERP | 00:16 | |
| I mentioned that a couple weeks ago. | |||
| supervised iirc is what runs the instrumentation | 00:18 | ||
| I need to dig into that. | 00:20 | ||
|
00:35
tetragon joined
|
|||
| whiteknight | purl msg tcurtis I'm interested in your project. you can contact me for feedback (sorry I didn't respond to your email) | 00:36 | |
| purl | Message for tcurtis stored. | ||
| tcurtis | purl, messages erase | 00:37 | |
| purl | tcurtis: what? | ||
| cotto_work | needs to be in privmsg | ||
| tcurtis | noted, whiteknight. | ||
| dalek | tracwiki: v23 | cotto++ | CottoTasklist | 00:39 | |
| tracwiki: add gsoc stuff for khairul's project | |||
| tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff | |||
| whiteknight | purl msg bacek let me know if you need help with gc_massacre. I'm glad to lend my feeble human meat-paws to the effort | ||
| purl | Message for bacek stored. | ||
| cotto_work | current work is going on in the no_constants branch of the branch iirc | 00:42 | |
| bacek_at_work | whiteknight, yes, getting rid of awful "constant" pmcs will help | ||
| cotto_work | so the plan for that branch is just to avoid any creation of constant PMCs? | 00:43 | |
| whiteknight | bacek_at_work: do you have a fancy plan for doing it? The big reason why we have constant PMCs (that I know of) is to solve order of destruction issues for PMCs that don't get anchored | ||
| like library PMCs, a reference might not be kept to the library but we can't collect it if we are using methods from it | |||
| bacek_at_work | we can explicitly use Parrot_pmc_gc_register for them. | 00:44 | |
| current blocker in branch - packfiles are not properly marked. | 00:45 | ||
| whiteknight | bacek_at_work: okay, we can do that. Maybe we can add an attribute to NCI PMCs for the library PMC that they come from | ||
| then it will get marked like normal so long as we still have a reference to any NCI PMC from that library | |||
| the scheduler too, but that's anchored in interp | 00:46 | ||
| checking out the _no_constant branch now | 00:47 | ||
| I don't think we want to register libraries, because then they will never be unregistered | |||
| bacek_at_work | Do we have way to unload library??? | 00:48 | |
| cotto_work | what bacekbot said | ||
| library unloading sounds like something that we don't want to never allow, but also that we don't care about for now | 00:53 | ||
| ash_ | couldn't you unload a library if all references to it disappeared? | 00:54 | |
| whiteknight | bacek_at_work: not yet, but I don't see why we wouldn't | 01:00 | |
| if no references to the library or any methods from it exist, the GC can unload it automatically | |||
| because if no references exist, we can't use it | |||
| I'm adding a ->library attr to NCI.pmc now that includes this information | 01:01 | ||
|
01:01
abqar joined
|
|||
| bubaflub | where does Configure.pl figure out which libraries to link to? | 01:01 | |
| whiteknight | no idea. Ask kid51 | 01:02 | |
| bubaflub | okey dokey | ||
| Coke | I need git help. | ||
| bubaflub | Coke: whatcha need? | 01:03 | |
| whiteknight | bacek_at_work: on _no_constants, did t/pmc/threads.t fail already? | ||
| or, did I just break it? | |||
| Coke | um. unloading libraries like that won't work. | ||
| whiteknight | Coke: why not? | ||
| Coke | else how can I loadlib something somewhere, and then get_global it later to invoke it? | ||
| bubaflub | Coke: i thought you were referring to the SCM git | 01:04 | |
| whiteknight | Coke: how does get_global find it? If we have a reference to the library anywhere visible or searchable, the GC will find it and protect it | ||
| Coke | bubaflub: I have a local branch. I have a fork I'm trying to cherry pick into my branch. I'm trying to get it to refer to the original committer, but cherry-pick seems to just apply it as if I'm the author. | 01:05 | |
| bubaflub | hmmmmm | ||
| ash_ | bubaflub: Configure.pl adds them at auto time | ||
| Coke | bubaflub: yes, I'm having 2 conversations simultaneously. =-) | ||
| ash_ | links | ||
| bubaflub | Coke: haha, ok. sorry, i'm in and out of my VM | ||
| Coke | whiteknight: perhaps I'm conflating c-library and parrot-library. | ||
| bubaflub | Coke: you might be able to try a rebase instead | ||
| Coke: rather than squashing the commits, you might be able to rebase a few of the commits onto your branch | 01:06 | ||
| Coke: and i believe that should save all the original commit information | |||
| ash_ | Coke: www.gitready.com/intermediate/2009/...mmits.html | ||
| bacek_at_work | whiteknight, yes | ||
| whiteknight | okay, I'm going to commit my change then | ||
| bubaflub | ash_: (re Configure.pl) do you know which config step does it? | 01:07 | |
| Coke | bubaflub: I'm not squashing anything. | ||
| I'm trying to cherry-pick a single commit. | |||
| ash_ | any of them can, during auto, if your tests for whatever library work out fine, you can append them to the conf | ||
| bubaflub | Coke: right. i believe you can rebase *without* cherry picking | 01:08 | |
| Coke | er, what does the rebase buy me in this case? | ||
| bubaflub | errrr | ||
| wait, sorry | |||
| Coke: i mean i think you rebase without squashing | |||
| Coke | bubaflub: I'm more concerned at how to do it right before a rebase becomes necessary. | 01:09 | |
| perhaps I wanted git commit -C <old sha> ? | |||
| dalek | rrot: r47272 | whiteknight++ | branches/gc_massacre_no_constant/src (2 files): [gc_massacre_no_constant] Add a ->library attr to nci to keep track of the ParrotLibrary PMC that originates it. This way the library will automatically be marked by GC if any references to any NCI functions from it are reachable. |
01:10 | |
| ash_ | each one of the Parrot::Configure::Step's runstep's takes 1 param (the configuration reference) and you can use $conf->data->add( ' ', hash_key => value); to append stuff to a current config flag, like if you want to add a library (like i am doing for libffi): $conf->data->add( ' ', libs => $libffi_options_libs ); that adds a make link | ||
| rrot: r47273 | tcurtis++ | branches/gsoc_past_optimization (5 files): Initial non-working commit of PAST::Pattern(well, it works when matching doesn't work!). |
|||
| bubaflub | Coke: what version of git are you running? | ||
| Coke | 1.7.0 | ||
| bubaflub | hmmm... then that's not it either. | 01:11 | |
| i haven't done too many cherry picks, but i haven't had the problem with overriding the author | |||
| i'm at a loss, if dukeleto is around his git-fu is stronger than mine | |||
| Coke | bubaflub: aha. cherry-pick -se worked. Though I swear it failed earlier. | 01:14 | |
| bubaflub | Coke: great. i suggested rebase because i imagined you had multiple patches you wanted to apply... cherry-pick is definitely the way to go for a single or a few patches | 01:15 | |
| ash_ | if i get my libffi work going, parrot won't need core_thunks or any thunks anymore | 01:16 | |
| s/going/working/ | |||
| cotto_work | assuming we don't mind having it as a core dependency | ||
| ash_ | well, i am keeping the old nci around too | ||
| if it detects libffi, it tries to use that but if you don't have libffi it uses the current nci stuff (or if you do --without-libffi) | 01:17 | ||
| it won't be required, but then you'll be working with the old nci limitations | 01:18 | ||
| dukeleto | 'ello | ||
| tcurtis loves seeing the amount of red go down every time he types "prove t/library/pastpattern.t"(well, until he adds tests more tests and is back up to lots of tests failing). | 01:20 | ||
| Coke | ok, one more git question - if I have a branch that I created as a local, how do I push that back to the server? "git push origin <branchname>" ? | 01:21 | |
| ash_ | yes | 01:22 | |
| Coke | ... bah. one more question! | 01:24 | |
| git pull is now telling me that I have to pick where I want to merge changes to. Shouldn't a git pull just pull /everything/, and only merge changes relevant to the current branch? | |||
| ash_ | git pull is multiple operations in one | 01:25 | |
| git fetch just pulls changes | |||
| git pull fetches and merges if your in a tracking branch | |||
| Tene | so "git pull" can only merge if it knows which remote branch you want to merge into the currently-checked-out branch. | 01:26 | |
| ash_ | yeah | ||
| dalek | rrot: r47274 | whiteknight++ | branches/gc_massacre_no_constant/src (2 files): [gc_massacre_no_constant] add ->library to UnManagedStruct too, since it can be associated to a library through the dlvar opcode |
||
| dukeleto | Coke: what is your current branch? | ||
| rrot: r47275 | whiteknight++ | branches/gc_massacre_no_constant/compilers/imcc/pbc.c: [gc_massacre_no_constant] the namespace_name attr in Sub.pmc is marked, so it doesn't need to be constant. Plus, I think GC is currently disabled during IMCC anyway, so no sense safeguarding it |
|||
| Coke | ah. so when I created this branch locally, and pushed it back, that's not sufficient to figure out the tracking? | ||
| dukeleto: 'revive' on partcl/partcl | 01:27 | ||
| Tene | Coke: it should be. | ||
| dukeleto | Coke: git pull origin revive | ||
| ash_ | you can make the local branch a tracking branch by doing git branch --track <branch> <remote-branch> | ||
| Tene not really here, on the bus. | |||
| dukeleto | trackign is default when you create it locally | ||
| ash_ | then you won't have to do the longer command to pull | ||
| dukeleto | Coke: also, there is a setting for your ~/.gitconfig | 01:28 | |
| Coke | dukeleto: I did a checkout <sha1> -b revive, and later did a push origin revive ; but if I am in the revive branch locally and do a "git pull", it squawks. | ||
| dukeleto | [push] default = current | ||
| that makes "git push" always push into the remove version of your branch | 01:29 | ||
| ash_ | i thought you had to set branch.autosetupmerge to true for it to make local branches tracking by default | ||
| dukeleto | Coke: hmmm, not sure | ||
| ash_: git checkout foo will track origin/foo be default | 01:30 | ||
| netsplits-- | |||
|
01:30
tetragon joined,
kurahaupo joined,
jsut joined,
bubaflub joined,
whiteknight joined,
snarkyboojum joined,
ash_ joined,
bline joined,
cotto_work joined,
Chandon joined,
eternaleye joined,
janus joined,
confound joined,
PacoLinux joined,
aloha joined,
bacek joined,
mikehh joined,
cosimo joined,
mberends joined,
cognominal joined,
contingencyplan joined,
sorear joined,
jnthn joined,
particle joined,
preflex joined,
TimToady joined,
pmichaud joined,
Util joined,
spinclad joined,
simcop2387 joined,
nopaste joined,
TonyC joined,
silug joined,
arnsholt joined,
moritz joined,
ttbot joined,
knewt joined,
ascent joined,
Ryan52 joined,
tewk joined,
sri joined,
slavorg joined,
dngor joined,
bacek_at_work joined,
treed joined,
GeJ joined,
cotto joined,
nnunley joined,
Maddingue joined,
krunen joined,
Tene joined,
dmagnus_ joined,
Infinoid joined,
szabgab joined
|
|||
| whiteknight | bacek_at_work: okay, I'm going to bed now. The two instances of Parrot_pmc_new_constant in src/packfile.c can't be removed yet, they cause test failures. I will try to figure that out later if you don't beat me to it | 01:31 | |
| goodnight, er'body | |||
| bacek_at_work | whiteknight, good night | ||
| dalek | rrot: r47276 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Pattern.pir: PAST::Pattern passing all existing tests. Time to add more. |
01:43 | |
|
01:50
kid51 joined
|
|||
| Coke is kind of freaked out by the BEAR NOISES coming from his back yard. | 01:51 | ||
| thought he lived close enough to the city to avoid that sort of thing. | |||
| ash_ | anyone know what github.com/leto/parrot/blob/upstrea...ot.in#L242 is for? that file doesn't exist... | 01:52 | |
| jnthn | Coke: Is there...akshually a bear?! | 01:53 | |
| Coke | jnthn: well, based on some recordings of bears I found on the internet looking for milk... possibly. | 01:54 | |
| Coke will call animal control tomorrow. in the meantime, all kids, pets, and spouses are indoors. | |||
| ash_ | www.youtube.com/watch?v=6DXs4UuuM7M you need that cat | 01:55 | |
| (its the video of a cat scaring off a bear so people know) | |||
| jnthn is sure he saw that one on icanhascheezburger before now | 01:57 | ||
| ash_ | yeah, it was there, i think thats where i found it | 01:58 | |
| Coke wonders why the OS pmc thinks he's trying to call "get_string" on it. :P | 01:59 | ||
|
02:00
jsut joined,
snarkyboojum joined,
ash_ joined,
cotto_work joined,
eternaleye joined,
janus joined,
aloha joined,
mikehh joined,
contingencyplan joined,
sorear joined,
jnthn joined,
TimToady joined,
slavorg joined,
sri joined,
tewk joined,
Ryan52 joined,
ascent joined,
knewt joined,
ttbot joined,
moritz joined
02:01
sorear joined
02:02
kurahaupo joined
02:14
bluescreen joined
|
|||
| Coke | msg plobsing - all tests now pass in revive branch with that old parrot version. | 02:22 | |
| purl | Message for plobsing stored. | ||
|
02:30
snarkyboojum joined
|
|||
| kid51 | msg bubaflub As others have noted, there's no one step where linker libraries are set. To trace the evolution of the value assigned to any entry in lib/Parrot/Config/Generated.pm, try Parrot::Configure::Trace. | 02:33 | |
| purl | Message for bubaflub stored. | ||
| ash_ | what is the first param to $conf->data->add for ? I saw how it was used but i don't understand the first param's purpose | 02:38 | |
| kid51 | ash_: Specific context? File? | 02:40 | |
| Documented starting at line 174 of lib/Parrot/Configure/Data.pm | 02:41 | ||
| ash_ | github.com/ashgti/parrot/blob/gsoc_...ine.pm#L96 | ||
| i'll go read that | |||
| ah, its the deliminater, got ya | 02:43 | ||
| kid51 | To the pre-existing value of the 'libs' element in the Parrot::Configure object's data structure (specificially, the 'data' part thereof), append value of libs using wordspace as delimiter. | ||
|
02:44
plobsing joined
|
|||
| kid51 | ... which goes back to the msg I just left for bubaflub: 'libs' is one of those attributes that gets built up over the course of the 60+ configuration steps. | 02:44 | |
| If you need to know what value of 'libs' is at any one step, use Parrot::Configure::Trace. | 02:45 | ||
| dalek | rrot: r47277 | tcurtis++ | branches/gsoc_past_optimization/t/library/pastpattern.t: Add tests for exact matching on the "name" attribute. |
02:49 | |
| rrot: r47278 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Pattern.pir: Switched to using a macro for class-checking. |
|||
|
02:55
theory joined
03:13
janus joined
|
|||
| dalek | rrot: r47279 | cotto++ | branches/gsoc_instrument/MANIFEST: manifix |
03:22 | |
|
03:35
kurahaupo joined
03:43
LoganLK joined
03:50
TiMBuS joined
|
|||
| cotto | seen khairul | 03:56 | |
| purl | khairul was last seen on #parrot 8 hours, 4 minutes and 5 seconds ago, saying: see t/pmc/scheduler.t | ||
|
04:00
snarkyboojum joined
04:02
kurahaupo joined
04:25
parthm joined
04:28
eternaleye joined
|
|||
| dalek | rrot: r47280 | tcurtis++ | branches/gsoc_past_optimization (6 files): Rewrote what I had of PAST::Pattern in NQP. |
04:28 | |
|
04:36
Chandon joined
|
|||
| dalek | rrot: r47281 | plobsing++ | trunk/t (2 files): un-dynext some coretests |
05:01 | |
|
05:01
kurahaupo joined
05:10
mj41_ joined
05:12
elmex joined,
dalek joined
05:13
AzureStone joined,
eternaleye joined,
wagle joined,
mikehh_ joined
|
|||
| cotto | I want to pick some delicious brains. | 05:14 | |
|
05:17
baest joined
|
|||
| plobsing | ENOBRAINZ | 05:25 | |
| plobsing wonders if purl picked that up | 05:26 | ||
| cotto? | |||
| purl, cotto? | 05:27 | ||
| purl | no idea, plobsing | ||
| bacek_at_work | aloha... | 05:31 | |
| plobsing | purl, bacek_at_work! | 05:33 | |
| purl | plobsing: sorry... | ||
| bacek_at_work | aloha. bacek? | ||
| aloha | bacek_at_work: Sorry, I don't know. | ||
| bacek_at_work | aloha, bacek is magical coding robot | ||
| aloha | bacek_at_work: Okay. | ||
| bacek_at_work | aloha. bacek? | ||
| cotto | hi | ||
| aloha | bacek_at_work: Dunno. | ||
| bacek_at_work | aloha, bacek? | ||
| aloha | bacek_at_work: bacek is magical coding robot | ||
| bacek_at_work | it does work... | ||
| sorear | aloha, sorear? | 05:34 | |
| aloha | sorear: Dunno. | ||
| cotto | background: We'll eventually want to have some kind of meeting to discuss Lorito. Some decisions will be necessary to nail down before interested parties can start hacking, others are best left until we've got some code to play with. | 05:37 | |
| With that, here's what I've got so far for the various questions about Lorito's design and which of those questions should be decided when: | 05:38 | ||
| nopaste | "cotto" at 192.168.1.3 pasted "Lorito planning priorities" (13 lines) at nopaste.snit.ch/20822 | ||
| ttbot | Parrot trunk/ r47282 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/334382.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 05:47 | |
| sorear | cotto: by "INS or INSP" did you mean "INP or INSP"? | 05:48 | |
| plobsing | [I]nteger [N]umval [S]tring [P]MC | 05:49 | |
| cotto | That point wasn't phrased well at all. | ||
| plobsing | pmcs are high level and possibly not part of lorito | 05:50 | |
| cotto | plobsing, exactly | ||
| plobsing | wheee! my patch found a bug in parrot's build process! | ||
| dalek | rrot: r47282 | plobsing++ | trunk (4 files): make failing loadlib PIR directive abort compilation loudly (TT #437) |
05:51 | |
| sorear | plobsing: if lorito can't express PMC registers than it can't be used to implement PMCs. You have to store self somewhere | 05:52 | |
| unless we're going *really* low level and PMC pointers are kept in I registers | |||
| cotto | That's part of what we'll want to address. (no pun intended, but welcomed nonetheless) | 05:53 | |
| dalek | tracwiki: v11 | cotto++ | LoritoRoadmap | 05:55 | |
| tracwiki: split design issues into primary and secondary based on when they'll need to be settled | |||
| tracwiki: trac.parrot.org/parrot/wiki/LoritoR...ction=diff | |||
| plobsing | urg. 'loadlib_sc' doesn't exist to IMCC right now. this would be solved with const-unfolding | 05:56 | |
| dalek | TT #437 closed by plobsing++: .loadlib fails silently | 05:57 | |
| TT #437: trac.parrot.org/parrot/ticket/437 | |||
|
06:05
uniejo joined
|
|||
| dalek | rrot: r47283 | plobsing++ | trunk/runtime/parrot/library/parrotlib.pir: loadlib at runtime to avoid newly-failing compilations thanks to TT #437 fix |
06:07 | |
| mikehh | opbots, names | 06:15 | |
| cotto | clock? | 06:17 | |
| still no purl facts | |||
| sad face | |||
|
06:18
cognominal joined
|
|||
| dalek | rrot: r47284 | NotFound++ | trunk/examples/nci/xlibtest.pir: use a new 'FileHandle' and its methods instead of open and close opcodes in example xlib |
06:24 | |
|
06:25
snarkyboojum joined
|
|||
| kurahaupo | msg Whiteknight we don't need a "busy" flag; all we need is an atomic overwrite of the vtable pointer, done twice: the first time points it at a "spin" vtable, all of whose entries do nothing but "yeild" and then re-invoke the same method, and the second is the actual new vtable (or possibly the original one) after all the structural changes have been done. Of course, if we used non-overwrite semantics the whole problem would go away, | 06:29 | |
| purl | Message for whiteknight stored. | ||
| kurahaupo | aloha msg Whiteknight we don't need a "busy" flag; all we need is an atomic overwrite of the vtable pointer, done twice: the first time points it at a "spin" vtable, all of whose entries do nothing but "yeild" and then re-invoke the same method, and the second is the actual new vtable (or possibly the original one) after all the structural changes have been done. Of course, if we used non-overwrite semantics the whole problem would go | 06:34 | |
| cotto: does Purl pass messages or am I wasting my time? | 06:35 | ||
| sorear | msg kurahaupo yes | ||
| purl | Message for kurahaupo stored. | ||
| plobsing | kurahaupo: I got some this evening | ||
|
06:35
fperrad joined
|
|||
| cotto | purl should | 06:35 | |
| purl | cotto: huh? | ||
| kurahaupo | Well, today wasn't much of a de-lurk after a few months away, but dinner calls. Hopefully I can be a bit more participative soon. Until tomorrow... | 06:39 | |
|
06:40
fperrad_ joined
06:44
parthm left
06:47
aukjan joined
|
|||
| cotto | time for sleep | 06:51 | |
|
07:02
s1n joined
|
|||
| dalek | tracwiki: v12 | cotto++ | LoritoRoadmap | 07:02 | |
| tracwiki: add purpose, minor fixes | |||
| tracwiki: trac.parrot.org/parrot/wiki/LoritoR...ction=diff | |||
|
07:16
mikehh_ joined
|
|||
| fperrad | ping bacek | 07:20 | |
| bacek_at_work | fperrad, short pong | 07:29 | |
| fperrad | bacek, I miss something when I tried to convert Cardinal to the new NQP, could you take a look ? | 07:31 | |
| $ parrot cardinal.pbc -e "print 'hello';" # works fine | |||
| bacek_at_work | fperrad, not now. In about couple of hour after loosing my "_at_work" suffix | 07:32 | |
|
07:52
s1n joined
|
|||
| dalek | rrot: r47285 | tcurtis++ | branches/gsoc_past_optimization (2 files): All tests pass. More attributes tomorrow(fortunately, should be easy). Also, make codetest happy. |
08:03 | |
|
08:08
viklund joined
08:13
mikehh joined
08:18
jsut_ joined
|
|||
| dalek | TT #1658 closed by plobsing++: Change to config hash (45623) broke partcl | 08:26 | |
| TT #1658: trac.parrot.org/parrot/ticket/1658 | |||
|
08:38
clinton joined
|
|||
| dalek | rrot: r47286 | bacek++ | branches/gc_massacre/src/interp/inter_create.c: Create interp.gc_registery early |
09:58 | |
| rrot: r47287 | bacek++ | branches/gc_massacre/src/call (2 files): Add a lot of assertions to help catching too-early-collected-context failure |
|||
| rrot: r47288 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c: Avoid double-initialisation on TMS in child interp. proper merging of GCs later. |
|||
| rrot: r47289 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c: Quick hack - register "constant" pmcs in interp. |
|||
| rrot: r47290 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c: A lot of fixes for TMS. marked * Don't GC during deinitialise * Embed gc_ms_mark into gc_tms_mark for simplicity and performance. |
|||
| rrot: r47291 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c: Yay! Final fix for TMS.is_pmc_ptr to properly find all roots! |
10:15 | ||
|
10:19
gbacon joined
|
|||
| bacek | msg whiteknight Ignore _no_constant branch. I've made ugly workaround for it. | 10:24 | |
| purl | Message for whiteknight stored. | ||
| dalek | rrot: r47292 | bacek++ | branches/gc_massacre/src/gc (2 files): Add List.pop function |
10:31 | |
| rrot: r47293 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c: Minor cleanup |
|||
| rrot: r47294 | bacek++ | branches/gc_massacre/src/gc/system.c: Restore calculating of prefix for old MS GC. |
|||
| rrot: r47295 | bacek++ | branches/gc_massacre/src/gc/list.c: Make GC.list compilable in optimized builds |
|||
| tracwiki: v13 | bacek++ | GCMassacre | 10:39 | ||
| tracwiki: Add TODO section for gc_massacre branch. | |||
| tracwiki: trac.parrot.org/parrot/wiki/GCMassa...ction=diff | |||
| bacek | msg mikehh You can start your magical codetest fixing in gc_massacre branch now :) | 10:47 | |
| purl | Message for mikehh stored. | ||
|
10:47
masak joined
|
|||
| nopaste | "bacek" at 192.168.1.3 pasted "It's fast :)" (13 lines) at nopaste.snit.ch/20826 | 10:52 | |
| dalek | tracwiki: v14 | bacek++ | GCMassacre | 11:13 | |
| tracwiki: More todo | |||
| tracwiki: trac.parrot.org/parrot/wiki/GCMassa...ction=diff | |||
| mikehh | bacek: ok - will give it a go | 11:19 | |
| bacek | mikehh, thanks! | 11:22 | |
|
11:31
tetragon joined
|
|||
| dalek | nxed: r487 | julian.notfound++ | trunk/winxedst1.winxed: quick fix for empty argument list |
11:44 | |
|
11:48
snarkyboojum joined
11:52
kurahaupo joined
12:01
whiteknight joined
12:07
JimmyZ joined
12:08
ruoso joined
|
|||
| whiteknight | good morning, #parrot | 12:08 | |
| JimmyZ | morning, whiteknight | 12:09 | |
| whiteknight | good morning, JimmyZ | ||
|
12:10
bluescreen joined
|
|||
| dalek | rrot: r47296 | mikehh++ | branches/gc_massacre/src/gc/gc_tms.c: fix g++ build failure, remove trailing space |
12:10 | |
|
12:16
ruoso joined
12:21
davidfetter joined
|
|||
| dalek | rrot: r47297 | mikehh++ | branches/gc_massacre (2 files): some headerizer changes |
12:26 | |
| rrot: r47298 | mikehh++ | branches/gc_massacre/src/gc/pool_allocator.c: add ASSERT_ARGS |
|||
| rrot: r47299 | mikehh++ | branches/gc_massacre/src/gc/list.c: add ASSERT_ARGS |
12:43 | ||
| Coke | plobsing++ | 12:44 | |
| (for TT#906) | 12:46 | ||
| masak | since we last spoke, I've (re-)discovered at least two new problems with Parrot and string encodings. I'll see if I can produce short examples of them. | 12:49 | |
|
12:52
Chandon joined
|
|||
| masak | actually those were the same issue. you can trigger it by running perl6 -e '"ƶ".encode("UTF-8")' on latest Rakudo. | 12:55 | |
| the error is 'unimpl fixed_8' | |||
| and it seems to occur for all non-ASCII characters. | 12:58 | ||
| is there some fundamental ASCII restriction in Parrot of which I'm not yet aware? | |||
| Coke | masak: you'll see a lot of NYI in src/strings/*/*.c | 12:59 | |
| masak | ok. | ||
| I guess I expected obstacles of this type, to be honest. | |||
| that's why I'm glad it's a grant; otherwise I'd proabbly have given up and let someone else solve it. :) | 13:00 | ||
| so, what's my best chance of getting this fixed_8 thing impl? I'm not familiar enough with people's areas of expertise in the project. | 13:02 | ||
|
13:02
ComLock joined
|
|||
| bacek | masak, src/string/encoding/fixed_8.c, line 179... | 13:04 | |
| masak looks | 13:05 | ||
| Coke | I would recommend opening a ticket with a short example (PIR is best if you can manage it). ... or get bacek's attention. | ||
| masak | bacek: ok. that tells me only what I already know. :) | ||
| Coke: I think I can manage PIR. will create a ticket. | 13:06 | ||
| Coke | :q | ||
| ww. | |||
|
13:16
atrodo joined
|
|||
| Coke | is this decl right? | 13:16 | |
| =item B<mul>(invar PMC, invar PMC, invar PMC) | |||
| should that first invar be an inout? | |||
| dalek | rrot: r47300 | coke++ | trunk/runtime/parrot/library/Crow.pir: Avoid use of deprecated PIR syntax. (can't use assignment syntax here.) |
13:17 | |
| bacek | Coke, it should be inout (or out). But current runcore doesn't properly distinguish it | 13:27 | |
| masak | here's my ticket. trac.parrot.org/parrot/ticket/1671 | 13:29 | |
| my GSoC work is partially blocking on this issue, so I'd appreciate if someone would have a look at it. | |||
| dalek | rrot: r47301 | coke++ | trunk/t (2 files): Avoid use of deprecated PIR syntax. (can't use assignment syntax here.) |
13:33 | |
| rrot: r47302 | mikehh++ | branches/gc_massacre/src/gc/list.c: add documentation |
|||
|
13:34
Chandon joined
|
|||
| Coke | bacek: plobsing's recent patch causes $P1 = mul $P2, $P3 to be an error, which I don't think it should be. | 13:35 | |
| Coke added a note to the ticket. | |||
| bacek | Coke, just change op. | ||
| Coke | bacek: someone can, sure. I'm just raising the issue. =-) | 13:36 | |
| ($DAYJOB) | |||
| bacek | slacker! | ||
| Coke IZ NOT ROBOT | |||
| plus, someone would really have to review all the opcodes. | 13:37 | ||
| Sure it's not just mul. | |||
| dalek | TT #1671 created by masak++: Can't encode strings with non-ASCII characters in them | 13:42 | |
| TT #1671: trac.parrot.org/parrot/ticket/1671 | |||
|
13:50
aukjan joined
13:53
plobsing joined
|
|||
| Coke | plobsing: hio. | 13:55 | |
|
13:58
gbacon joined
|
|||
| plobsing | hi Coke | 14:00 | |
| looks like you've been working on the TT #906 test failures | 14:01 | ||
| why does vtable multiply take 3 args anyways? | |||
| Coke | so you can pass in a destination. | 14:03 | |
| IIRC. | |||
| plobsing | yeah, looks that way. Haven't seen that done much in parrot. | ||
| particle | still, it must be possible, or hll devs will have to code around it | 14:05 | |
| $P1 = $P2 ; mul $P1, $P3 | 14:06 | ||
| dalek | rrot: r47303 | fperrad++ | trunk/examples/languages (2 files): [languages] clean up, now .loadlib could throw an exception |
||
| particle | or some other workaround, maybe with clone | ||
| plobsing | yes true. But it does make "$P1 = mul $P2, $P3" invalid by the no input values in assignment op forms | 14:07 | |
| rule | |||
| NotFound | Coke: I think there is a lot of 'in' that should be 'inout' in opcodes. | 14:08 | |
| That can also explain some failures in register allocation, | 14:09 | ||
| plobsing | I had a patch against opsc to catch those, but opsc was a little b0rked internally, so it didn't work | 14:10 | |
| whiteknight | the third argument to the various arithmetic vtables is almost universally ignored in practice | 14:30 | |
| the implementations don't use them, so PIR code doesn't bother with it | |||
| it's a huge waste | |||
|
14:42
tcurtis joined
14:45
patspam joined
|
|||
| NotFound | masak: I fail to understand your encoding problem. You can't encode a codepoint > 255 in any fixed 8 way. | 14:46 | |
| masak | then I'm probably slightly on the wrong track. | ||
| jnthn | NotFound: IIUC, masak wants to be able to get the individual bytes that make up a UTF-8 encoded string. | 14:47 | |
| masak | maybe you can show how I can encode a codepoint > 255 in some other way? | ||
| jnthn: yes, but that's a different problem. that's the decoding. | |||
| Coke | whiteknight: didn't pmichaud disagree with that statement? | ||
| masak | here I'm just trying to get the encoding right, something I thought already worked. | ||
|
14:47
bubaflub joined
|
|||
| whiteknight | Coke: whether those vtables *should* do something is a different matter. Currently, almost every implementation completely ignores it | 14:48 | |
| NotFound | jnthn: but the ticket is not about what he wants, but about how he does. | ||
| whiteknight | Coke: I suggest we either change the current implementations to make proper use of the third argument, or we remove the third argument from the spec | 14:49 | |
| Coke | "unimpl" is probably not the right exception for "i can't do that, dave." | ||
| whiteknight | but having it and ignoring it is not a good thing | ||
| NotFound | masak: I don't know if it works right now, but if you want a binary string you can't just change the encoding, you must change the charset. | ||
| Coke | whiteknight: I would have to fact check your statement there before I can agree with what to do next. | ||
| masak | NotFound: gotcha. | ||
| NotFound: are there examples of this kind of conversion (str -> bytes) somewhere in Parrot already? | 14:50 | ||
| NotFound | masak: I don't think so, given that until recently all that things barely worked, | ||
| masak | again, I'm a pioneer. yay. | 14:51 | |
| whiteknight | Coke: hmmm...Maybe it's been fixed. The code I'm looking at now is different from what I remember | ||
| Coke: in that case, ignore me | |||
| NotFound | masak: anyway, I think that the best way to handle such conversions is creating a ByteBuffer PMC. | 14:52 | |
| masak | ok. that is probably a bit beyond my reach, though. | 14:53 | |
| whiteknight | actually, nevermind. I'm finding more broken code in scalar.pmc, which is inherited by float.pmc | ||
| so it's only been partially fixed. | |||
| NotFound | BTW, trans_encoding ascii to fixed_8 is a noop, ascii is always encoded as fixed_8 | ||
| jnthn | NotFound: Would us having a first-cut byte buffer implementation as a dynpmc in Rakudo, that Parrot may then adopt into core if it wishes, be a good way forward? Or do you (or @other) see this being something Parrot does RSN? | 14:54 | |
| NotFound | jnthn: I think parrot need it, but the idea hasn't been discused yet. | 14:56 | |
| jnthn | OK. | 14:57 | |
| NotFound | If you implement it in rakudo with the idea of parrot adopting it later, please make clear that the copyright can be transferred to PAFO. | ||
| ash_ | how do code reviews work? if I have something i'd like someone else to look at incase they can come up with a better solution, or to make sure i didn't do dumb things, do i just need to ask someone here to look at my code? | 15:00 | |
| Coke | ash_: if you're working on a branch, you can commit first and ask questions later. | ||
| if you're /really/ unsure, make a patch hit the list with it. | 15:01 | ||
| *and | |||
| ash_ | kk | ||
| NotFound | masak: BTW if you try to trans_charset to binary you get "to_charset for binary not implemented" | 15:03 | |
| whiteknight | ash_: some help is volunteered if somebody is watching. Other help can always be requested | 15:04 | |
|
15:07
theory joined
|
|||
| ash_ | is it safe to use Parrot_str_to_cstring and just use a string as a cstring? | 15:12 | |
| NotFound | ash_: "just" and "safe" are usually incompatible ;) | 15:13 | |
| ash_ | I'll stick with the defined string manipulation methods then | 15:15 | |
| Coke | ash_: yah. unless you're trying to pass the string to a C library, that's probably best | 15:16 | |
| ash_ | I am just trying to parse the strings, determining prefix, infix, postfix, circumfix modifiers on base identifiers is trickery than i thought it would be, well i am not using regex's. they would make it easier, but I don't think there is a regex api for the C side of things is there? | 15:18 | |
| Coke | not in parrot, no. | 15:21 | |
| sounds like you want a grammar in NQP. | 15:22 | ||
| whiteknight | a simple regex engine in Parrot might be nice to have for basic string ops | 15:23 | |
| Coke | but would duplicate effort already present in PGE/NQP. | 15:24 | |
| ash_ | Coke: i am working in the C parts of parrot though, not pir | 15:26 | |
| or any of the other bits, otherwise i would use a grammar | |||
| Coke | ash_: you can still invoke all that from C. | ||
| ash_ | hmm good point | 15:27 | |
| Coke | (assuming a built parrot) | ||
| er, standard lib. | |||
| ash_ | hmm i think i'll stick with doing it in C, most of this is not to bad, i know some things about all of my identifiers too, that can help (like they are all 1 char in length, so i don't need to look ahead more than 1 char) | 15:28 | |
| Coke | WFM. | 15:29 | |
| particle | we have index and rindex and substr, write your own regex engine :P | ||
| ash_ | i'll do that next summer... | 15:30 | |
| :P | 15:31 | ||
| nopaste | "NotFound" at 192.168.1.3 pasted "Patch: to_charset to binary from anything" (40 lines) at nopaste.snit.ch/20837 | 15:34 | |
| NotFound | masak: ping | ||
| masak | NotFound: pong | ||
| NotFound | masak: does this patch what you want? | 15:35 | |
| masak looks | |||
| it sounds like it could be what I want yes. I won't know for sure until I get a list of bytes out of an arbitrary string, but it looks promising. :) | 15:36 | ||
| ash_ | are $I0 registers limited to 32 bits? | 15:37 | |
| NotFound | masak: is just a test, I'm still not sure is a desired feature. | ||
| masak | NotFound: understood. | ||
| purl | understood. are you on schedule? | ||
| masak | purl: forget understood | ||
| purl | masak, I didn't have anything matching understood | ||
| masak | purl: forget understood. | ||
| purl | masak, I didn't have anything matching understood | ||
| masak kicks purl | |||
| NotFound | ash_: if you want to be fully portable, you must restrict to 32 bit values. | 15:38 | |
| ash_ | thats not 100% true... if you overflow 32 bits you can upgrade to a different container that, there are lots of various int containers that support larger integers than your system supports | 15:40 | |
| NotFound | ash_: you asked for a I register, registers aren't containers. | ||
| ash_ | ah | 15:41 | |
| i didn't realize that | |||
| so you'd have to go to a pmc of sorts then if you want larger than 32 bits? | |||
| particle | NotFound, ash_, actually it's a compile-time constant, not strictly 32 | ||
| iirc | 15:42 | ||
| NotFound | ash_: unless you want to restrict to 64 bits platforms or parrot configured for that in lesser platforms, yes. | ||
| particle | and IREGs are subject to platform semantics | ||
| overflow, etc | |||
| if you want portable, you use PMCs, like Integer or BigInt | |||
| NotFound | That's the point. If you want to be fully portable, *you* must restrict the usage. | 15:43 | |
| particle | aye | ||
| ash_ | github.com/ashgti/parrot/blob/gsoc_..._h.in#L118 | 15:44 | |
| i don't think it uses 64 bits on systems that support it yet | |||
|
15:48
Andy joined
|
|||
| tcurtis | ash_: I think that just means that there's no support for explicitly 64 bit registers. It uses long for INTVAL on at least my system. So, if long is 64 bit, all INTVALs are probably 64 bit. | 15:49 | |
| ash_ | long is never 64 bits by definition unless your c compiler isn't following the specs | 15:50 | |
| long long is 64 bits, long is 32 bits | |||
| NotFound | ash_: what specs? | ||
| purl | specs are almost more design than spec. they already know what they want in too much detail. that bodes poorly for the project | ||
| ash_ | the C spec | ||
| NotFound | ash_: the C spec says nothing about that. It just says that sizeof long >= sizeof int | 15:51 | |
| tcurtis | I thought those were just the minimum sizes, ash_. | ||
| NotFound | ash_: and int can also be 64 bits. | 15:52 | |
| particle | yep | ||
| NotFound | Or more. | ||
| ash_ | yeah, your right, sorry those are min values, not absolute values | 15:53 | |
| www.open-std.org/jtc1/sc22/WG14/www.../n1256.pdf sections 5.2.4.2.1 and Annex E say the limits on int are the same as short, but i guess most compilers don't strictly follow the standard | 16:06 | ||
| and i suppose thats c99, not c89 which is what parrot is supposed to follow | 16:07 | ||
| tcurtis | ash_: "Their implementation-deļ¬ned values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign." | 16:08 | |
| ash_ | ah, i need to read better | 16:09 | |
| NotFound | ash_: parrot supports C89, and even restricts it to allow C++ builds. | 16:15 | |
| But the type size limits are the same. | 16:16 | ||
|
16:23
theory joined
|
|||
| particle | the one extension to C89 i know of is our use of long long | 16:24 | |
| whiteknight | do we use long long internally, or do we just allow it as a confgure option? | 16:26 | |
| NotFound | We don't use long long, we use typedef or macros that may be long long in platforms that have it, that's the trick. | 16:28 | |
| particle | correct, NotFound | ||
| NotFound | And maybe some conditionally compiled code. | ||
| ash_ | are there plans to support a long long $I register one day? or should that always be done in a pmc? | 16:29 | |
| particle | if things are working correctly, it can be specified now at config-time | 16:30 | |
| you'd probably also need to make sure your pointer size is also set to long long, though | 16:31 | ||
| i'm not sure all the intsize==ptrsize assumptions have been excised | |||
| whiteknight | I'm certain they have not | 16:32 | |
| NotFound | That's a weak point. | ||
| ash_ | in stdint.h there is intptr_t uintptr_t which are ints that are the right sizes to hold pointers | ||
| whiteknight | ash_: on Win64 I had to do this dance. perl Configure.pl --intval="long long" -opcode_t="long long" | ||
| or something like that, I cant remember the exact names of the options | |||
| NotFound | whiteknight: Because of some parrot generic thing, or because of the win32 platform specific code? | 16:34 | |
| ash_ | I am mostly interested in this because if you specify something in NCI as a 64 bit value, i will need to put it on the right container/register/object/parrotthing | ||
| i am also going to have to figure out a new object for unions | 16:35 | ||
| NotFound | ash_: a platform that doesn't have 64 bit ints is highly unlikely to have native interfaces that uses it. | ||
| particle | ash_: you're going to have to query parrot and see what size IREG is, or stick everything into PMCs | ||
| whiteknight | NotFound: on 64-bit windows, and the windows compiler, the size of "int" and "long" are both 32 bits | 16:36 | |
| but pointers are 64 bits | |||
| particle | and long long is 64 bits | ||
| whiteknight | on that compiler, to get a 64-bit integer you need to use "long long" | ||
| particle: right | |||
| NotFound | Oh, so nice, back to the times of win16/win32 | ||
| ash_ | Parrot_Int should be the same as $I0 right? | ||
| whiteknight | ash_: yes | ||
| they're all INTVAL | |||
| ash_ | i wonder why it defaults to i386 on OS X and not x86_64 | 16:38 | |
| NotFound | whiteknight: maybe we should tell Configure to use that values as default in that platform, then. | ||
| whiteknight | NotFound: maybe. It doesn't matter though. Last I checked Parrot didn't work there no matter what I did | 16:39 | |
| I don't even have a 64-bit windows install anymore | |||
| NotFound | Looks like our ratio of windows-developers/windows-support-asks is extremely low. | 16:40 | |
| whiteknight | yes, I would agree to that completely | 16:44 | |
| but windows isn't free, I don't currently have it, and I can't afford to procure a copy | |||
| ash_ | I can get a copy of it, if I can find a computer to run it on, (i am still in school, and our school provides free copies of xp pro, vista pro, and 7 pro) | 16:45 | |
| NotFound | I have a Vista that came with the machine, but rarely use it and is 32 bits anyway. | ||
| whiteknight | I had vista that came with my machine, but I tried dual-booting, had problems with GRUB, gave up, and reformatted the whole damn thing | 16:46 | |
| tcurtis | On which note, what's a good Windows IRC client? Assuming I can find an IRC client and editor I like for Windows, I could start developing and testing on 64-bit Windows 7. | ||
| NotFound | tcurtis: last time I looked, mIRC was the most used. | 16:47 | |
| moritz | tcurtis: I use putty to connect to a linux box, and use irssi there :-) | ||
| NotFound | And a lot of silly scripts for it X-) | 16:48 | |
| moritz | in a screen session, so that I don't have to restart it every day | ||
| Coke | joined the POI dev mailing list. just saw: | 17:03 | |
| Fixed in r950611 | 17:04 | ||
| dalek | rrot: r47304 | NotFound++ | trunk/t/pmc/resizablepmcarray.t: tests for RPA delete_keyed, exists_keyed and get_repr vtables |
17:08 | |
|
17:13
cotto_work joined
|
|||
| whiteknight | Coke: .95 million commits? which repo is that? | 17:15 | |
| bubaflub | whiteknight: POI is an apache project that deals with Microsoft Office / Open Office documents | 17:16 | |
| via java api | |||
| whiteknight | okay. That's still a gigantic number of commits | ||
| bubaflub | agreed. | ||
| purl msg kid51 thanks for the tip - for now i've overridden the linked libraries in the hints file | 17:20 | ||
| purl | Message for kid51 stored. | ||
| Coke | ugh. very fun trying to bisect through the revisions that tried to delete $PERL. | 17:23 | |
| (*&#@# | |||
|
17:29
cotto_work joined
17:45
Chandon joined
|
|||
| dalek | rrot: r47305 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Pattern.nqp: Switch PAST::Pattern to .attr() like PCT::Nodes do. |
17:57 | |
| Coke | only 13 commits between the TT#389 and immutable strings hitting. blah. | 18:01 | |
|
18:01
cotto_Work joined
18:05
spinclad joined
18:10
joeri joined
|
|||
| Coke | plobsing, finally back to the colons issue. =-) | 18:16 | |
| so, when tt #389 hit, my code that does "set_hll_global 'foo', bar" is now returning NULL whenever I get_hll_global it. | 18:17 | ||
| (and bar is not null when I set_hll_global it. | |||
| sorry, I set_hll_global 'foo', bar in HLL baz, and then later do get_root_global ['baz'], foo | 18:20 | ||
| (and of course my 10 line demo PIR program works. bother.) | 18:23 | ||
|
18:28
cotto_work joined
18:31
darbelo joined
|
|||
| nopaste | "coke" at 192.168.1.3 pasted "this prints "not ok". Should it?" (16 lines) at nopaste.snit.ch/20849 | 18:39 | |
| whiteknight | can you store pmcs in the root namespace? | 18:41 | |
| I would use get/set_hll_global instead, probably | |||
| or just get/set_global | 18:42 | ||
|
18:58
ilbot2 joined
|
|||
| moderator | Parrot 2.4.0 "Sulfur Crest" Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | ||
| nopaste | "Coke" at 192.168.1.3 pasted "this prints "not ok". Should it?" (12 lines) at nopaste.snit.ch/20850 | 18:59 | |
| dalek | rrot: r47307 | NotFound++ | trunk/t/pmc/threads.t: delete the loadlib myops_ops line that is not used, assumed to be let alone from a previous version |
19:05 | |
| pmichaud | Coke: I'm needing to build a recent copy of Parrot as well | 19:06 | |
| whiteknight | moritz++ # Runge-Kutta solver | ||
| pmichaud | one moment | ||
| pmichaud has five parallel threads going on right now, starting to thrash. | |||
| moritz | whiteknight: do you read #perl6? or follow github? | ||
| whiteknight | moritz: follow github. | 19:07 | |
| Coke | pmichaud: don't worry about it, I'll open a ticket. | ||
| whiteknight | I follow #perl6 sometimes at home, but at work I only watch #parrot | ||
| Coke | I'm pretty sure it's a bug. | ||
| pmichaud | Coke: I should know shortly. | ||
| Coke | TT #1672 | 19:10 | |
| (There's a stripped down version of the PIR there.) | |||
| looks like trac lost its style sheet. | 19:12 | ||
| cotto_work | Coke, wfm | ||
| whiteknight | Coke: don't we have tests similar to that code snippet you posted? Shouldn't something like that have been caught in coretest? | 19:13 | |
| Coke | chrome, then. ah well. | ||
| whiteknight: not for subs. | |||
| not for subs created dynamically, that is. | |||
| would have been caught if partcl hadn't been killed by an earlier commit. | 19:14 | ||
| whiteknight | $P1 in your example is a Sub? | ||
| Coke | an Eval. | ||
| whiteknight | ah, okay | ||
| Coke | you could probably get the same effect by going after the PIR compreg and building a sub. | 19:15 | |
| dalek | TT #1672 created by coke++: TT #389 fix introduced regression with globals. | 19:16 | |
| TT #1672: trac.parrot.org/parrot/ticket/1672 | |||
| NotFound | Coke: looking at what the Namespace PMC does, I think that you are right, its changes caused the problem. | ||
| Coke | and I see no way to fix it either! =-) | ||
| whiteknight | dukeleto: ping | 19:17 | |
| Coke: I think it's becoming pretty obvious that NameSpace PMCs are being tasked with solving too many storage-related tasks | 19:18 | ||
| pmichaud | Coke: your code works in 2.3.0 | ||
| it fails in current trunk | |||
| NotFound | I don't think this is a storage-related task, is a pir-related task. | ||
| whiteknight | They store normal :nsentries, they store references to nested sub-namespaces, they store methods (though separately from :nsentry subs) and they store global data | ||
| that's quite a lot of things to be storing in a single PMC | 19:19 | ||
| dukeleto | whiteknight: pong | ||
| whiteknight | dukeleto: do you have more info about that bug you mention with dunoplib libraries? | ||
| is there a ticket for those? | |||
| pmichaud | Coke: ah, I see you already detected that it worked in 2.3.0 | ||
| (sigh) | |||
| Coke: no, I don't have a workaround handy. I'm not even sure what's causing the problem. Might be that PGE is missing an :nsentry flag somewhere | |||
| whiteknight | the damn tt#389 bug is the worst | 19:20 | |
| dukeleto | whiteknight: i talked with chromatic++ about it, he said it is a long standing bug due to dynops being dependent on load order | ||
| NotFound | whiteknight: I think the problem is that is trying to guess things, instead of receiving enough information about the task asked for. | 19:21 | |
| Coke | pmichaud: check the new sample. it's note PGE at all. :P | ||
| dukeleto | whiteknight: he said dynops don't have a constant global number, they get assigned them at runtime | ||
| Coke | *not | ||
| it's just the namespace PMC. | |||
| pmichaud | Coke: it's worth nothing that what comes back from PGE::P6Regex isn't a Sub, but rather an Eval PMC | ||
| whiteknight | dukeleto, could you create a ticket for it so we can track it and have a record of it? | ||
| pmichaud | new sample? | ||
| Coke | pmichaud: yup. namespace is refusing to store any dynamic isasubs. | ||
| whiteknight | pmichaud: but Eval isa Sub, right? | ||
| dukeleto | whiteknight: so if you have a PBC with two dynops, then you load them in a different order from another snippet of PIR/PBC, the dynop #'s get confused | 19:22 | |
| Coke | trac.parrot.org/parrot/ticket/1672 | ||
| cotto_work | whiteknight and dukeleto, plobsing is working on that problem | ||
| whiteknight | cotto_work: okay, that makes me feel better | ||
| pmichaud | whiteknight: it's a Sub that likely doesn't have any flags, a :subid, a :nsentry, etc. | ||
| cotto_work | It's not a simple fix though. | ||
| Coke | pmichaud: and I see no way to add an :nsentry to a sub that is not created via .sub in PIR. | 19:23 | |
| cotto_work | very possible, just not simple | ||
| dukeleto | whiteknight: yes, will create a ticket | ||
| whiteknight | cotto_work: no, I wouldn't suggest that it is simple. | ||
| pmichaud | Eval is a Sub pretty much only in declaration, it doesn't have most of the other things that a Sub PMC now has | ||
| Coke | pmichaud: check the new sample. =-) | ||
| pmichaud | Coke: I'm only seeing the one that uses PGE | 19:24 | |
| cache issue again, perhaps? | |||
| nopaste | "coke" at 192.168.1.3 pasted "avoid trac cache for pmichaud" (10 lines) at nopaste.snit.ch/20852 | ||
|
19:24
davidfetter joined
|
|||
| dukeleto | whiteknight: the thread "[RFC] Dynop Opnum Mapping" talks about the issue | 19:25 | |
| whiteknight: but the tt# mentioned there is wrong | |||
| whiteknight | dukeleto: thread in the ml? | 19:26 | |
| dukeleto | whiteknight: yes, on parrot-dev | ||
| whiteknight: i think trac.parrot.org/parrot/ticket/1663 is the same issue | |||
| whiteknight: but manifests in a different way | |||
| whiteknight | ok | 19:28 | |
| davidfetter waves to dukeleto | 19:29 | ||
| NotFound | The problem is easy to trigger, just load_bytecode a pbc that have dynops loaded in a different order than the main program. | 19:30 | |
| dukeleto waves to davidfetter | |||
| NotFound | A real pbc, hiding the problem by loading the pir is not a solution ;) | ||
| davidfetter | what's the latest in pl/barratry? | ||
| dukeleto | NotFound: can you write a test for that? does one already exist? | ||
|
19:31
mj41 joined
|
|||
| NotFound | dukeleto: I'll try to write a short example. | 19:31 | |
|
19:32
Khisanth joined,
dmalcolm joined,
bluescreen joined
|
|||
| dukeleto | NotFound: that would be awesome! | 19:32 | |
|
19:32
japhb joined,
patspam joined,
jan joined,
gaz joined,
Andy joined
19:34
s1n joined
|
|||
| nopaste | "NotFound" at 192.168.1.3 pasted "Example of dynop loading problem" (17 lines) at nopaste.snit.ch/20854 | 19:40 | |
| NotFound | dukeleto: here is | ||
| Comment the .loadlib in the main program and works fine. Uncomment it and opcodes magically change meaning. | 19:41 | ||
|
19:41
masak joined
|
|||
| whiteknight | If I may ask a devil's advocate kind of question, are dynops worth having? | 19:43 | |
| I mean, there are relatively few of them, few people made any use of them before the os_massacre branch, and the people who are using them now report problems | 19:44 | ||
| NotFound | Don't know, I never used it. | ||
| cotto_work | Are you devilishly advocating using a C library? | ||
| whiteknight | cotto_work: well, we have dynpmcs which can be written in C and do whatever we need. We have NCI to call C functions. I'm trying to figure out what niche dynops fill, and whether they are worth the effort | 19:45 | |
| cotto_work | they integrate better with Parrot than NCI (and moreso after plobsing's fix) | 19:46 | |
| whiteknight | "better"? How so? | ||
| NotFound | cotto_work: look at that example and tell me again that they integrate well X-) | ||
| cotto_work | "easier" | ||
| whiteknight | I don't agree. I don't think there is any ease-of-use benefit to using them | 19:47 | |
| They are a pain in the ass to write and compile, a huge pain internally to load them and reallocate the op table, they cause problems in bytecode even considering plobsings patch, etc | 19:49 | ||
| And when you consider how under-utilized they are, maybe it's not worth the development effort to keep them | |||
| cotto_work | If we want to drop them, we'll have to provide a workable alternative to Rakudo first. | ||
| moritz | drop what? dynops? | 19:50 | |
| whiteknight | yes, they do have one dynop that they use | ||
| moritz: yes | |||
| it's just a suggestion, but I don't see a huge benefit to keeping them if they have bugs | |||
| if we look forward to Lorito, we're not going to have dynops as they currently exist anyway | 19:51 | ||
| cotto_work | they actually have a handful | ||
| whiteknight | do they? last | ||
| i looked they only had 1 | |||
| cotto_work | 72 with all params expanded | ||
|
19:51
LoganLK joined
|
|||
| whiteknight | last I looked, they only had rebless_subclass. The rest of this list is new | 19:52 | |
| cotto_work | 15 distinct ops | ||
| moritz | some for signature handling | ||
| whiteknight | if they had a "utilities" dynpmc with methods, they would be able to do all these things still | 19:53 | |
| some of them look like they could be translated into vtables for ease | 19:54 | ||
| moritz | with similar performance? | ||
| Coke | whiteknight: partcl uses dynops extensively. as does rakudo. | ||
| I'm not saying we /have/ to, but they are heavily used currently. | |||
| whiteknight | Coke: that does take some of the wind out of my argument, but hardly changes my mind | 19:55 | |
| Coke | I know you like to rip stuff out of parrot, but people are using it. =-) | ||
| whiteknight | Coke: it's not that I like to rip stuff out. I want Parrot to have what it needs, and not be forced to support things that it doesnt | ||
| there are lots of things I want to add, for instance | 19:56 | ||
| Coke | the thing is, it needs what the HLLs need. | ||
| whiteknight | if dynops are the best solution to a particular problem, then that's one thing. If they are one possibility among a list of equally-good solutions, that's another | ||
| Coke | now, I'm not saying in this particular case, that partcl, e.g., needs dynops. | ||
| NotFound | A possible way to simplify things might be to associate dynops with HLL, not with any PBC loaded. | ||
| whiteknight | NotFound: another would be to include an opnumber->opname map in the PBC header, so we could do translation later | 19:58 | |
| NotFound | whiteknight: yes, some variants of that were commented in the mailing list. | 19:59 | |
| TimToady | phone | 20:00 | |
| NotFound | And I think some variant of that is the only way compatible with the current usages and implementable in reasonable time. | ||
| It will increase the pbc size, but I don't care. | 20:01 | ||
| sorear | Why are you ignoring the suggestion round which was done on parrot-dev? | 20:02 | |
|
20:02
Psyche^ joined
|
|||
| whiteknight | sorear: what suggestions on parrot-dev? | 20:03 | |
| nevermind, I see it | |||
| NotFound | sorear: maybe for fear of people assuming that the ones championing an option must implement it X-) | 20:04 | |
| Coke | Where there's a will, there's a ... benficiary. | ||
| *bene | |||
| moritz | where there's a will, there's a coleda *SCNR* | ||
| whiteknight | I like the idea of just using a simple opnumber-opname hash, because we can use existing machinery to store that has in the constants table | 20:05 | |
| or, some other cache-like object to store also a frozen reference to the dynoplib so it can be immediately thawed and loaded when the PBC is read | |||
| The biggest problem isn't even storing this information in the PBC anyway, it's arranging the optable at runtime to be what we need. | 20:06 | ||
| I'm wondering what we do if we try to execute an op from PBC which hasn't been loaded yet, but an entry for it exists because a subsequent library has been loaded | |||
| NotFound | And don't forget that in order to make pbc_disassemble a barely usable tool, it must do something with that information. | 20:07 | |
| Coke | moritz: you mean, it's always christmas when I'm aroudn? | 20:09 | |
| whiteknight | some of these perl6 ops could easily be moved into Parrot. find_method_null_ok and x_setprophash are perfect examples | ||
| moritz | Coke: the other way round: when it's christmas, you are somewhere | ||
| NotFound | whiteknight: Making them parrot dynops? =:o | 20:10 | |
| whiteknight | allocate_signature does nothing that new_p_s_i can't do | ||
| NotFound: not dynops. Regular, normal built-in ops | |||
| transform_to_p6opaque could be turned into a "transform" op in Parrot that does vtable swaps for isomorphic types | 20:11 | ||
| NotFound | I think that a way to avoid the null_ok, notnull and such will be to adopt the idea of a Undef type that throws when used for anything other than check for definedness. | 20:12 | |
| whiteknight | NotFound: that too | ||
| NotFound | Just put in it the appropiate message for the exception, and there is no loss of information. | 20:13 | |
|
20:13
snl joined
|
|||
| NotFound | You check the result if you want, and let it throw when used if not. | 20:14 | |
| whiteknight | it's a good idea | ||
|
20:15
theory joined
|
|||
| NotFound | It came from perl6, so it must be good ;) | 20:15 | |
| dalek | p-rx: 8483d1f | pmichaud++ | src/PAST/Compiler-Regex.pir: Avoid "Can't substr beyond end of string" errors -- if we're already |
20:18 | |
| p-rx: 55d87b8 | pmichaud++ | t/nqp/50-regex.t: Add test for "match beyond end of target" bug. |
|||
| Coke | whiteknight: In my case, I'm storing something /in the namespace/ so I can pull it out of the namespace. I don't see why this needs some other abstraction. | 20:22 | |
| (re TT#1672) | |||
| whiteknight | Coke: because lots of things are storing lots of othre things in NameSpaces, and we're running into collisions and problems | ||
| I suspect that if we fix your issue, we are going to break part of TT#389 again, and vice-versa | |||
| Coke | yes, but I'm not. | ||
| whiteknight | Coke: you're part of the problem because you're trying to store anything in there | 20:23 | |
| and everything else is trying to also store other crap there too | |||
| GeJ | Good morning everyone. | ||
| NotFound | Drop the namespaces and problem solved X-) | ||
| whiteknight | good morning, GeJ | ||
| NotFound | BTW, someone has an opinion about my patch in TT #1671 ? | 20:26 | |
| whiteknight | Coke: look at the evil that is NameSpace.set_pmc_keyed_str | 20:27 | |
| that's the VTABLE that is used for storing everything. It's basically a collection of special-cases | |||
| NotFound | A problem is that Namespace in practice is not HLL mapable, so it must be all for everyone. | 20:29 | |
| whiteknight | NotFound: part of the reason why it is not mappable is because it relies on all sorts of crap to separate out all these different storage tasks | ||
| get/set_pointer_keyed is a perfect example. You can't override that from PIR I don't think | |||
| but the NameSpace interface requires it because get/set_pmc_keyed is so overloaded | 20:30 | ||
| if you want to store items of like type by name, use a PMC that's designed to do that, like Hash | |||
| anyway, it's time for me to go home now. Later | 20:32 | ||
|
20:33
theory joined
20:34
eternaleye joined
|
|||
| Coke | once I bandaid the sub issue (by storing it in a RPA and popping it out each time I get it), I am now finding issues with vtable overrides. | 20:36 | |
| that is less surprising, though. | |||
| whoops, this is just a method. | 20:37 | ||
| dalek | rrot: r47308 | moritz++ | trunk/ext/nqp-rx/src/stage0 (4 files): [nqp-rx] update stage0 files with fixes to char classes |
20:45 | |
| sorear | pmichaud: did you see allison's questioning of the suitability of NQP? | 20:50 | |
| pmichaud | sorear: I did. | ||
| I have no immediate comment. I'll let the marketplace decide that question. | |||
| so far she's the first person I've heard claim that writing things in PIR was easier/better than in NQP :-) | 20:51 | ||
| darbelo | sorear: The suitability of NQP for any given task can't be questioned? | ||
| pmichaud | (I grant that it may be better in some instances... which is why I still write things in PIR from time to time.) | ||
| cotto_work | istr that plobsing felt the same way. I remember it because I thought it was unusal. | 20:52 | |
| sorear | darbelo: if NQP's utility for something that it was designed to be is questioned by a credible person, something is Wrong and the NQP pumpking needs to know | ||
| cotto_work | in his case it was the NCI thunk generator | ||
|
20:53
patspam1 joined
|
|||
| darbelo | NQP is a layer removed from some of parrot's features. It provides abstraction. If you want to get at those features, then you'll find NQP to be in the way. There's nothing surprising about that. | 20:55 | |
| pmichaud | sorear: allison++ and I have long had philosophical differences over the design of the various toolsets; this is likely another example. Thus I think I'll let the marketplace decide this one. If there were any specific items that are "hopelessly byzantine" I'm happy to discuss them, but so far it's just a general claim. | ||
| moritz | pmichaud: I think the use of curlies is enough for a python fan to call something "hopelessly byzantine" (not entirely serious here :-) ) | ||
| NotFound | cotto_work: plobsing has been assimilated for the Winxed horde X-) | ||
| Tene | I don't think I remember ever seeing the other side of those, what sort of design allison would advocate. | ||
| pmichaud | NQP does try to make it possible to get at the features when they're needed, though. | 20:56 | |
| (in answer to darbelo's point) | |||
| granted, there are some places where even that's not possible, but we try to add them in as we can (examples are pir:: and bacek++'s recent work with enabling multisubs) | 20:57 | ||
| bacek | morning | 20:58 | |
| darbelo | Sure, but if I know more about parrot than about NQP, then I have to stop and think "How do I get at that from here?" | ||
| bacek | pmichaud, speaking of which... :) | ||
| pmichaud | darbelo: yes. But experience with Rakudo has shown that eventually you learn those few cases and then NQP seems preferable (more) | ||
| darbelo | The first time you use a seatbelt, you have to remember it's there and disengage it before getting out of the car. | 20:59 | |
| pmichaud | an analogy might be "I know more about C than Perl 5... but I have to stop and think 'How do I get at that from here?'" | ||
| Tene | again, it's a question of optimizing for people who don't know the language. | ||
| in some cases, that's great. Many people differ on what cases those are, though. | |||
| s/differ/disagree/ | |||
| darbelo | If all you wanted is to get out of the car, the seatbelt is in the way. This is not an argument against seatbelts. | ||
| pmichaud | at some point I tend to go with Perl 5 because I can be overall more productive with it and remember the paths to the few places where I really need C. | 21:00 | |
| anyway, NQP and PCT both take an unapolegetically OO look at everything; Parrot doesn't (and that's where a lot of the mismatch occurs). | 21:01 | ||
| dalek | rrot: r47309 | darbelo++ | branches/gsoc_nfg/src/string (2 files): Headerize. |
||
| pmichaud | so, for example, NQP doesn't have an equivalent of $P0 = new ['FileHandle'] | ||
| Tene | no way to pass a key to pir::new? | 21:02 | |
| pmichaud | and so someone who wants to do things directly on the bare Parrot classes has to do a little work on them | ||
| Tene: keys in general are currently problematic (so no) | |||
| Tene | 'k | ||
| sorear | however, pir::new will accept a string or RPA equally well | ||
|
21:03
ash_ joined
|
|||
| pmichaud | one can do pir::new(['FileHandle']) or pir::new(['Regex','Cursor']) | 21:03 | |
| (as sorear++ correctly states) | |||
| jnthn | NQP supports anonymous array declarators like that? | ||
| Oh. :-) | |||
| sorear | is there any update on the ParrotGrandPlan to deprecate keys in favor of good ol' arrays of arrays? | 21:04 | |
|
21:04
LoganLK joined
|
|||
| sorear | jnthn: NQP supports anonymous *arrays* fine | 21:04 | |
| jnthn | Yes, arrays | ||
| :-) | |||
| sorear | it has trouble with hashes, because of the block/hash ambiguity | ||
| dalek | p-rx: 69506cb | moritz++ | src/stage0/ (4 files): update stage0 files |
||
| jnthn | Heh. I could probably clean up some code of mine knowing that... | ||
| p-rx: f65cbf3 | moritz++ | (2 files): second shot at the substr-out-of-range error in <alpha> rule; with test |
|||
| p-rx: b338c2b | moritz++ | src/stage0/ (4 files): update stage0 files, again |
|||
| pmichaud | actually, nqp could detect the difference between a block/hash okay also | ||
| sorear | neither pmichaud nor I are happy with the concept of copying the Perl6 magic hash block | ||
| jnthn | (that's probably where I go and find I used anonymous arrays somewhere and then forgot 'em... :-)) | 21:05 | |
| pmichaud | the tricky part is that Parrot doesn't have a Pair PMC :-) | ||
| sorear | NQP supports <Foo Bar> syntax btw | ||
| pmichaud | I can't complain about that, though, since I advocated eliminating Pair :-) | ||
| sorear | pmichaud: nqp has syntactic pairs, we use them for named arguments...? | ||
| pmichaud | named argument != Pair | ||
| foo(a => 3) # named argument | |||
|
21:05
theory joined
|
|||
| pmichaud | foo('a' => 3) # Pair | 21:05 | |
| foo($a => 3) # Pair | 21:06 | ||
| anyway, back in december I looked at adding hash blocks to NQP, but it was non-trivial enough to make me decide to go ahead and wait :) | 21:07 | ||
| moritz | speaking of hash blocks... the hash vs. block distinction makes some very nasty rakudobugs these days | ||
| sorear | I wonder if allison knows about wiki.github.com/perl6/nqp-rx/requests | 21:08 | |
| jnthn | moritz: Such as? | ||
| (can take over on #perl6 maybe) | |||
| Coke | hey, I still have stuff on that list! | 21:10 | |
|
21:10
gbacon joined
|
|||
| bacek | pmichaud, any progress with multis in nqp? | 21:12 | |
|
21:13
ruoso joined,
theory joined
|
|||
| pmichaud | bacek: I'll definitely check it tonight. | 21:13 | |
| bacek | pmichaud, ok :) | ||
| atrodo | So here's a question. Can I do '$P0 = compreg "nqp"' and get a NQP compiler object? I'm having the hardest time getting it to work | ||
|
21:14
kurahaupo joined
|
|||
| bacek | atrodo, try 'NQP-rx'. | 21:14 | |
| atrodo, and you do want .loadlib 'parrot-nqp' before it :) | 21:15 | ||
| atrodo | bacek> I'm also in 2.3 right now, so I think that makes a difference. Let me try and upgrade real quick | 21:16 | |
| bacek | atrodo, do you have .loadlib 'nqp'? | ||
| atrodo | Yes | ||
| pmichaud | atrodo: $P0 = get_root_global ['parrot'], 'NQP' also works. | ||
| and it's load_bytecode, not loadlib | 21:17 | ||
| thre is no 'nqp' loadlib afaik | |||
| oops | |||
| atrodo: $P0 = get_root_global ['parrot';'NQP'], 'Compiler' also works. | |||
| sorear | AFAIR the compiler's name is "parrot" | ||
| not any variation of "nqp" | |||
| atrodo | Actually, I'm using load_language 'nqp', which does look to work (since the tracing spewed out massive amounts after it) | 21:18 | |
| pmichaud | the nqp-rx compiler is under 'NQP-rx' | ||
| dalek | rrot: r47310 | moritz++ | trunk/ext/nqp-rx/src/stage0 (4 files): [nqp-rx] update stage0 files again, with another fix for the <alpha> char class |
||
| pmichaud | so $P0 = compreg "NQP-rx" should work. | ||
| (I didn't want to use 'NQP' because that would conflict with the old nqp compiler from compilers/nqp/. Eventually I planned to make nqp-rx available under both names.) | 21:19 | ||
| I don't think load_language 'nqp' can work, because nqp-rx isn't stored as 'nqp' anywhere. | |||
| atrodo | It did work because I was using parrot 2.3 | 21:20 | |
| pmichaud | ah | ||
| then you were getting the old nqp | |||
| atrodo | but not with compreg. compreg never gave me a non-null pmc | 21:21 | |
| pmichaud | Strange. | ||
| purl | Strange. are you using the current mod_perl engine and catalyst? | ||
| pmichaud | old nqp should've been available as compreg 'NQP' in 2.3.0 | ||
| in fact, NQP itself even uses that | 21:22 | ||
| .sub 'main' :main .param pmc args $P0 = compreg 'NQP' | |||
| argh newline fail | |||
| Coke | I see purl is back. wonder wtf happened. | ||
| going to yapc::na 2010? | |||
| pmichaud | purl, going to yapc::na 2010? | ||
| purl | wish i knew, pmichaud | ||
| pmichaud | purl, going to yapc::na ? | ||
| purl | pmichaud: bugger all, i dunno | ||
| Coke | wtf. ok, still lobotomized. | ||
| bacek | purl, purl? | 21:23 | |
| purl | bugger all, i dunno, bacek | ||
| pmichaud | purl: Okay, so you know "Strange." but nothing else useful. You continue to be an annoyance. :) | ||
| purl | pmichaud: huh? | ||
| bacek | purl, purl is little annoying bot | ||
| purl | OK, bacek. | ||
| bacek | purl, purl? | ||
| purl | bacek: no idea | ||
| atrodo | Ah ha! it's "load_language "nqp" " and "$P0 = compreg "NQP" " | ||
| Coke | only thing worse than purl is my own infobot. :P | 21:24 | |
| atrodo | That will, complicate, my code since I was planning on using the same string for load_language as compreg. But, what surprises will 2.4 hold for me | ||
| Tene | atrodo: there are some significant issues with case there. | 21:25 | |
| HLL namespaces are all lowercased. | |||
| pmichaud | and NQP comes from before there were any standards on the topic. | ||
| Tene | with current parrot, if you want this to NOT SUCK, you shouldn't ever have a language name with uppercase letters. | 21:26 | |
| pmichaud | (and I don't know that there are any standards yet on the topic) | ||
| atrodo | Also, another embedding question, parrot_config.o, can that become a .so or could it not be compiled with PIC? | 21:31 | |
| darbelo | atrodo: What do you want to do with parrot_config.o? | 21:36 | |
|
21:37
theory joined
|
|||
| atrodo | Well, I've got a bit of an issue. I'm using kylix (delphi for linux) and it doesn't understand the "__i686.get_pc_thunk.bx" section when I include the .o | 21:38 | |
| And I have to use it since I'm embedding to get the load_library et. all opcodes to be reasonable | 21:39 | ||
| darbelo | Ehm, that is not a library. It's an executable. | ||
| Or, it used to be. | 21:40 | ||
| atrodo | it's both | ||
| sorear | __i686.get_pc_thunk.pc is what powers PIC | ||
| take it out and you don't have PIC anymore | |||
| atrodo | Yep, which I think is fine since it gets staticly linked as a .o | 21:41 | |
| I've turned it into an .so and include it that way as a work around | 21:42 | ||
| darbelo> It's both a executable to get the parrot config options on the command line, but also a .o to include so you can call "Parrot_set_config_hash()" and get libparrot sane | 21:44 | ||
| darbelo | atrodo: linking to that yourself is going to hurt later. | 21:45 | |
| atrodo | darbelo> Why? My understand is that's what I'm suppose to do | 21:46 | |
| darbelo | It might help if I knew what you are up to. But if was supposed to be a .so it would be. | 21:47 | |
| atrodo | I'm just trying to embed and interact with parrot in my application | 21:48 | |
|
21:50
eternaleye joined
|
|||
| dalek | rrot: r47311 | mikehh++ | branches/gc_massacre/src/gc/pool_allocator.c: add documentation |
21:51 | |
| darbelo | And why can't you just use Parrot_set_config_hash_internal? | 21:52 | |
| I know, it has _internal on it, but it's documented in embed.pod as valid... | 21:53 | ||
| NotFound | "Called by Parrot_set_config_hash with the serialised hash which will be used in subsequently created Interpreters." | 21:55 | |
| You can't just use it. | 21:56 | ||
| darbelo | Parrot_set_config_hash isn't in libparrot. | ||
| NotFound | darbelo: yes, that's the reason to have to link an .o file. | 21:57 | |
|
21:57
whiteknight joined,
elmex joined
|
|||
| darbelo | The problem is that he can't link to the .o file. | 21:57 | |
| NotFound | darbelo: but if you need the info to call Parrot_set_config_hash_internal, calling it doesn't solve anything. | 21:58 | |
| bacek | mikehh, Parrot_gc_pool_free is actually "Frees a fixed-size data item back to the pool for later reallocation" | 21:59 | |
| NotFound | What I don't know is if there is a reason to not have that info in libparrot or is just an historical artifact. | 22:00 | |
| darbelo | And all Parrot_set_config_hash does is delegate to Parrot_set_config_hash_internal with the data contained in the config fpmc. There's no black magic in there. | ||
| NotFound | darbelo: the magis is just that you need the .o | 22:01 | |
| darbelo | No you don't. You need the .fpmc, that's where the config data is. | ||
| NotFound | darbelo: yes, provided that you know where to locate it. | 22:02 | |
| dukeleto is watching chromatic++ talk at OSBridge | |||
| darbelo | include/config.fpmc on any installed parrot? | ||
|
22:03
theory joined
|
|||
| darbelo | Or provide your own, if the default doesn't do what you want. An embedder whould be able to choose where he gets his config from. | 22:04 | |
| s/whould/should/ | |||
| NotFound | darbelo: being able is good. Being forced is not. | 22:05 | |
| darbelo | True. But I think I've already forgotten what my original pooint was. | 22:06 | |
| sorear | dukeleto: Is he talking about anything interesting? | ||
| NotFound | The point is that the current way sucks, I think. | ||
| darbelo | So we're agreeing, then! | 22:07 | |
| NotFound | At least! ;) | ||
| dalek | rrot: r47312 | mikehh++ | branches/gc_massacre/src/gc/gc_ms.c: add documentation |
22:08 | |
| darbelo | I remember now! 'Link to a magic .o file' should not be the default way for embedders to get at our config data. | ||
| I'm not against keeping it as an option. I just hate it as a default. | |||
| whiteknight | dukeleto: link to chromatic? | 22:10 | |
| NotFound | I don't like an option like that, except as a last resource. I'd like to have his information, or the minimal part of it requeired to load the rest, available in libparrot. | ||
| darbelo | The problem with that is that I'd have to recompile libparrot if I want different defaults on my application | 22:12 | |
| OTOH, some of the stuff we store in that hash shouldn't be on libparrot at all. | 22:14 | ||
| NotFound | Not necesarily, you can have the information available without being forced to use it. | ||
| Just the path to the default .fpmc should be enough. | 22:15 | ||
| darbelo | Parrot_set_config_hash_default() and Parrot_set_config_hash_from_somewhere_else() ? | 22:16 | |
| NotFound | Something like that will be fine, yes. | 22:17 | |
| darbelo | I like that. | ||
|
22:18
lucian joined,
kurahaupo joined
|
|||
| NotFound | Also, the ability to load the default and ways to change anything not directly related with the internal of the machine. | 22:19 | |
| Not being forced to create a .fpmc just to change some path. | 22:20 | ||
| darbelo | Good point. | 22:21 | |
| tcurtis | whiteknight: opensourcebridge.org/sessions/399 appears to be the description of his talk. | ||
| darbelo | "Defeating the Inevitable Zombie Apocalypse with Perl and Parrot"? I want a copy. | 22:23 | |
| cotto_work | darbelo++ | 22:24 | |
| darbelo | chromatic++ # It's his book. | ||
| cotto_work | btw, this is pretty awesome, pythonic though it may be - github.com/phreeza/cells | 22:27 | |
| NotFound | Is a good title, but I've recently seen "Pride and Prejudice and Zombies" and is hard to beat that X-) | ||
| tcurtis | cotto_work: The author plans to add support for non-Python languages at some point. news.ycombinator.com/item?id=1395858 | 22:30 | |
| cotto_work | so hypontic | 22:35 | |
| mikehh | bacek: gc_massacre branch passes codetest (except c++ comments in src/gc/gc_tms.c) but the documentation probably needs some work (especially in src/gc/gc_tms.c) | ||
|
22:37
hercynium joined
|
|||
| dalek | rrot: r47313 | mikehh++ | branches/gc_massacre/src/gc/gc_tms.c: add documentation |
22:41 | |
| rrot: r47314 | mikehh++ | branches/gc_massacre/src/gc/pool_allocator.c: correct some documentation |
|||
| dukeleto | whiteknight: opensourcebridge.org/sessions/399 | 22:52 | |
|
22:59
kid51 joined
|
|||
| kid51 | Why has the appearance of our Trac tickets changed? | 23:00 | |
| ash_ | someone said earlier that a stylesheet wasn't loading right | ||
| cotto_work | kid51: how? | ||
| kid51 | Usually, the different sections appear in various boxes | 23:01 | |
| Most of the boxes have disappeared | |||
| Ex: trac.parrot.org/parrot/ticket/1666 | 23:02 | ||
| I'm not a CSS guru, but I agree that non-loading stylesheet might explain it | |||
| cotto_work | looks fine on my end. seems to be an intermittent thing that's covered up by browsers' caching | 23:03 | |
| ash_ | there are no failed loads for me, hmmm | ||
| kid51 | I just refreshed one page -- and all styling disappeared completely. | ||
| ash_ | my computer might be caching everything, let me clear my caches | 23:04 | |
| kid51 | And not just on my ticket pages -- ticket query #10 just lost style as well. | ||
| In two different browsers, when I refresh, I lose all styles. | 23:06 | ||
| The text is all there, but, jeez, it looks like 1995 html | 23:07 | ||
| In any event -- I take it that the failures in trunk still persist? | 23:08 | ||
| ash_ | what browser are you using? | 23:09 | |
| kid51 | I use both Camino and SeaMonkey. | ||
| bacek_at_work | mikehh, thanks! | 23:10 | |
| dalek | rrot: r47315 | tcurtis++ | branches/gsoc_past_optimization/t/library/pastpattern.t: Refactor test_attribute_exact_matching_on_node_attrs so it's less redundant and I don't have rewrite everything for each attr. |
23:14 | |
| rrot: r47316 | tcurtis++ | branches/gsoc_past_optimization/t/library/pastpattern.t: Fix node_with_attr_set so that setting "source"/"pos" doesn't crash Parrot. |
|||
| kid51 | many failures in 'make coretest'; this is not good; trunk has been broken for at least 3 days | 23:16 | |
| It's been a long time since that happened | |||
| whiteknight: In your cross-thread data sharing post to list, what does STM mean? | 23:18 | ||
| sorear | software transactional memory | ||
| atomic { y = x; x = 2; } | |||
|
23:19
mikehh_ joined
|
|||
| kid51 | 'make test' at any rate, is passing in trunk | 23:24 | |
|
23:24
kurahaupo joined
|
|||
| whiteknight | kid51: Software Transactional Memory | 23:32 | |
| ash_ | is parrot going to try to cater to everyones needs with multi-processing or is it going to have its own opinion on how that should be done? | 23:33 | |
| cotto_work | be careful where you point that loaded question ;) | 23:34 | |
| whiteknight | ash_: it will be all things to all people, and it will shit out gold bricks when you press Ctrl+B | 23:36 | |
| ash_ | just wondering | 23:37 | |
| mikehh_ | make corevm/make coretest FAIL - 44 subtests fail, 208 subtests and 1 test not even run, 1 TODO pass | 23:39 | |
| t/compilers/imcc/syn/clash.t - Failed test: 13 in testr | |||
| t/examples/pod.t - Failed tests: 111-112, 191 in examples_tests | |||
| all other tests PASS (pre/post-config, smoke (#34184), fulltest) at r47315 - Ubuntu 10.04 i386 (g++) | |||
| ash_ | not trying to be mean, its just there are so many different ways of handling concurrency, (see pthreads, haskell, erlang, python/ruby, etc.) | 23:40 | |
| whiteknight | ash_: Chandon's GSoC project is to implement a hybrid threading system. | ||
| there has been some speculation that in the future we may want something like Erlang's actors model, if we can find a good way to make it work with CPS | 23:41 | ||
|
23:42
tetragon joined
|
|||
| cotto_work | Yay. I get to see the css-less trac site too now. | 23:43 | |
|
23:43
theory joined
|
|||
| cotto_work | I find myself caring surprisingly little. | 23:44 | |
| whiteknight | it's not like Trac was a beauty queen before | 23:45 | |
| sorear | so now everybody gets to share in my delights as an elinks user? | ||
| (what happened?) | |||
| dalek | tracwiki: v13 | cotto++ | LoritoRoadmap | 23:47 | |
| tracwiki: add concurrency | |||
| tracwiki: trac.parrot.org/parrot/wiki/LoritoR...ction=diff | |||
| ash_ | Hmmm, I still get all of the style sheets | 23:54 | |
| whiteknight | me too | 23:59 | |