Ticket #504 (closed roadmap: done)

Opened 6 years ago

Last modified 5 years ago

packfile pmcs

Reported by: Infinoid Owned by: Infinoid
Priority: normal Milestone: 1.6
Component: core Version:
Severity: medium Keywords: packfile pmc core pbc
Cc: Language:
Patch status: Platform:

Description

This ticket tracks progress on the PDD13 compatible Packfile PMCs. This is a roadmap item slated for Parrot 1.2 in May 2009. I'm creating a ticket here in Trac, to get rid of the old RT tickets I had open for this.

Change History

  Changed 6 years ago by Infinoid

bacek++ has made quite a lot of progress with this in his packfile_revamp branch, which was recently merged to trunk in r38172. This could use testing on lots of different platforms.

  Changed 6 years ago by doughera

There were some files missing in MANIFEST. I was about to attach a patch, but have discovered I'm too slow: r38177 adds the missing files.

One problem I've observed so far: t/pmc/packfileannotationkeys.t creates a test file '/tmp/2.pbc' with a hard-coded filename and hard-coded directory, and also fails to remove that test file after finishing.

  Changed 6 years ago by bacek

Creation of temporary debug PBC was removed in r38181.

  Changed 6 years ago by coke

  • type changed from feature to roadmap

  Changed 6 years ago by coke

  • owner changed from Infinoid to jonathan

  Changed 6 years ago by allison

  • owner changed from jonathan to bacek

  Changed 6 years ago by bacek

Hi.

packfile_revamp branch was landed into trunk before 1.1.

There is a few questions before we can close this ticket:

1. Current PackfileAnnotation/Annotations/AnnotationKeys are very low-level and exposes too much "guts". We can simplify it by hiding AnnotationKeys functionality inside Annotations and build PackFile_AnnotationKeys c-structure during pack. It will be helpful for implementig PBC generating within Parrot.

2. PackfileSegment exposes "pack" and "unpack" functions. But it virtually impossible to implement proper memory management in such functions.

3. "Old" implementation of Packfile PMC attached loaded PBC to interp. Same memory management issues. Current implementation doesn't do it. Should I resurrect attaching to interp or "loadlib" op is enough?

-- Bacek

follow-up: ↓ 9   Changed 6 years ago by allison

  • milestone changed from 1.2 to 1.3

in reply to: ↑ 8 ; follow-up: ↓ 10   Changed 6 years ago by bacek

Replying to allison:

Final bits for Annotations handling were made in tt504_annotations branch and ready for merging. If noone complain I'll merge it into trunk.

-- Bacek

in reply to: ↑ 9 ; follow-up: ↓ 11   Changed 6 years ago by whiteknight

Replying to bacek:

Replying to allison: Final bits for Annotations handling were made in tt504_annotations branch and ready for merging. If noone complain I'll merge it into trunk.

Definitely wait until after the Tuesday release if you can. It's pretty close to release time to be merging in new branches unless it is necessary for stability.

in reply to: ↑ 10 ; follow-up: ↓ 13   Changed 6 years ago by bacek

Replying to whiteknight:

Final bits for Annotations handling were made in tt504_annotations branch and ready for merging. If noone complain I'll merge it into trunk.

Definitely wait until after the Tuesday release if you can. It's pretty close to release time to be merging in new branches unless it is necessary for stability.

Ok, branch was merged right after release.

As description of ticket isn't specify some particular feature I prefer to close it. Current Packfile PMCs allow to unpack and pack PBC (I hope so, but no one tried to build PBC within PIR yet).

We can open different "TODO" ticket to replace internal interp handling of PBCs using Packfile PMCs.

-- Bacek

  Changed 6 years ago by allison

  • milestone changed from 1.3 to 1.5

in reply to: ↑ 11   Changed 6 years ago by bacek

  • owner changed from bacek to Infinoid

Replying to bacek:

As description of ticket isn't specify some particular feature I prefer to close it. Current Packfile PMCs allow to unpack and pack PBC (I hope so, but no one tried to build PBC within PIR yet). We can open different "TODO" ticket to replace internal interp handling of PBCs using Packfile PMCs.

Reassign back to Infinoid for description clarification. Task is finished from my point of view.

-- Bacek

  Changed 5 years ago by whiteknight

  • milestone 1.5 deleted

  Changed 5 years ago by allison

  • milestone set to 1.6

follow-up: ↓ 17   Changed 5 years ago by Util

Two basic functions of Packfile PMCs are non-functional:

  1. Starting with a basic hello_world.pbc, loading it into memory with Packfile PMCs, then just writing it back to disk, results in a non-runnable .pbc file.
  2. A basic hello_world.pbc cannot be constructed from scratch by just using Packfile PMCs within a PIR program.

I will create individual ticket for each of these points, with detail on reconstructing my experiments, and append the ticket numbers below.

in reply to: ↑ 16 ; follow-up: ↓ 18   Changed 5 years ago by bacek

Replying to Util:

Two basic functions of Packfile PMCs are non-functional: 1. Starting with a basic hello_world.pbc, loading it into memory with Packfile PMCs, then just writing it back to disk, results in a non-runnable .pbc file.

It's... weird. I'm pretty sure that I tested this behavior.

2. A basic hello_world.pbc cannot be constructed from scratch by just using Packfile PMCs within a PIR program.

Yes. But it's not Packfile's fault. We need way to construct Sub in PIR. Almost all preparations of it are done. We just need to implement Sub.init_pmc which will accept Hash with field values and construct Sub without attaching to current Interp.

-- Bacek

in reply to: ↑ 17   Changed 5 years ago by bacek

Replying to bacek:

Replying to Util:

Two basic functions of Packfile PMCs are non-functional: 1. Starting with a basic hello_world.pbc, loading it into memory with Packfile PMCs, then just writing it back to disk, results in a non-runnable .pbc file.

It's... weird. I'm pretty sure that I tested this behavior.

Ok. Now it's fixed in r40925.

-- Bacek

  Changed 5 years ago by bacek

Hello.

Actually fixed in r40926. We need more tests for PackfileRawSegment.type setter/getter.

-- Bacek

  Changed 5 years ago by Util

Verified: Roundtrip of basic .pbc works in r41243.

  Changed 5 years ago by Util

  • status changed from new to closed
  • resolution set to done

Since "building a .pbc from scratch" is the only obvious remaining missing basic Packfile PMC functionality, and since it is not the "fault" of the Packfile PMC code, I am marking this milestone as completed, and forking off TT#1011 for the "from scratch" issue.

Note: See TracTickets for help on using tickets.