On 24/11/2016 13:22, Nick Wellnhofer wrote:
- remove .pm files for non-public classes,

The only danger I can see is breaking Perl code that still "use"s
an obsolete class.

Hmm, this could also be a problem for people using undocumented classes. Here's a list of classes that would be affected:

Lucy::Highlight::HeatMap
Lucy::Index::DeletionsReader
Lucy::Index::DocVector
Lucy::Index::DocWriter
Lucy::Index::FilePurger
Lucy::Index::HighlightReader
Lucy::Index::HighlightWriter
Lucy::Index::Inverter
Lucy::Index::LexiconWriter
Lucy::Index::PolyLexicon
Lucy::Index::Posting
Lucy::Index::Posting::MatchPosting
Lucy::Index::Posting::RichPosting
Lucy::Index::Posting::ScorePosting
Lucy::Index::PostingListWriter
Lucy::Index::SegLexicon
Lucy::Index::SegPostingList
Lucy::Index::SortCache
Lucy::Index::SortReader
Lucy::Index::SortWriter
Lucy::Index::TermInfo
Lucy::Index::TermVector
Lucy::Object::Obj
Lucy::Plan::Float32Type
Lucy::Plan::Float64Type
Lucy::Plan::Int32Type
Lucy::Plan::Int64Type
Lucy::Search::ANDMatcher
Lucy::Search::BitVecMatcher
Lucy::Search::Collector::SortCollector
Lucy::Search::HitQueue
Lucy::Search::MatchDoc
Lucy::Search::NOTMatcher
Lucy::Search::ORScorer
Lucy::Search::PolyCompiler
Lucy::Search::RequiredOptionalMatcher
Lucy::Search::TopDocs
Lucy::Store::FSFileHandle
Lucy::Store::FileHandle
Lucy::Store::InStream
Lucy::Store::OutStream
Lucy::Store::RAMFile
Lucy::Store::RAMFileHandle
Lucy::Util::Debug
Lucy::Util::IndexFileNames
Lucy::Util::Json
Lucy::Util::MemoryPool
Lucy::Util::PriorityQueue
Lucy::Util::SortExternal
Lucy::Util::Stepper
Lucy::Util::StringHelper

It should still be possible to work with these classes by simply adding "use Lucy", but code like "use Lucy::Plan::Int32Type" would break. Additional workarounds are needed for "use Lucy::Private::Class qw(imp1 imp2)" or "use base qw(Lucy::Private::Class)".

Another option is to populate the %INC hash with fake entries for each class when loading Lucy.pm. This would allow to remove all other .pm files but keep "use Lucy::Private::Class" working.

Nick

Reply via email to