Ticket #126 (closed todo: wontfix)

Opened 6 years ago

Last modified 5 years ago

optimize load_bytecode, .include paths: no library/ and include/ prefix

Reported by: rurban Owned by: rurban
Priority: minor Milestone:
Component: none Version: branch
Severity: low Keywords: pdd30install
Cc: Language:
Patch status: rejected Platform: all

Description (last modified by rurban) (diff)

Currently 70 files do

load_bytecode "library/Stream/Sub.pir"

instead of

load_bytecode "Stream/Sub.pir"

Similar with .include

The library search path for load_bytcode has first the ${libdir}/library, and then ${libdir} Similar for .include with ${libdir}/include and then ${libdir}.

This ticket is for discussion to optimize away the superfluous "library/" and "include/" prefixes. It will save 3 stats - every extension is also tried on failure, even we if give an extension.

This is similar to TT#123, but just optional, TT#123 is mandatory.

2nd) load_bytecode "Stream/Sub.pir" should be changed to load_bytecode "Stream/Sub", because we compile it to pbc, but the pir is picked up. The library search will find the best extension.

See also TT #127 for the extension optimization.

Change History

Changed 6 years ago by rurban

The extension optimization within src/library.c is handled in TT##127 "do not stat extensions when an extension was already given"

Changed 6 years ago by rurban

The core part (src/library.c) to fix the directory conflicts on no extension, was added with r34932 in pdd30install_stage3  http://www.parrotvm.org/svn/parrot/revision?rev=34932

The library part was added with r34933 in pdd30install_stage3  http://www.parrotvm.org/svn/parrot/revision?rev=34933

There are still cornercases to be fixed with cascaded loading with :load hooks without extension. See RT #39807. Testcase for this to be added.

Changed 6 years ago by rurban

  • owner set to rurban
  • status changed from new to assigned
  • description modified (diff)

Changed 5 years ago by allison

  • status changed from assigned to closed
  • resolution set to wontfix
  • patch set to rejected

Rejected. We have libraries stored in different places to keep them separate. Don't conflate the two.

Note: See TracTickets for help on using tickets.