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