Kephra / lib / Kephra / Internals.pod

Full commit
=head1 Kephra Internals

=head2  Why Perl

=over 4

=item * flexible, human friendly syntax

=item * has very good native Regex support

=item * mature technology

=item * CPAN


=head2  What Part Of Perl We Use Or Avoid

=head2  Principles

=over 4

=item * full intospection

=item * parts serve metapurposes and work together


=head2  Interdependency Of Core Modules

=head2  Modules vs Objects

=head2  Boot Stages

Just using the fact that when modules are loded (after the fork)
there main code (outside the sub) is run. At this time we create the
basic command list and the definition which module gets which part of
the global config (actual loading happens later).

=head2  Worker Fork



our @needed_at_first = qw/App API/;
our @starttime_loaded_modules = qw/
	App App::Util API Config Config::Default Config::File
	Document DocumentStash CommandList Edit EventTable 
	File KeyMap PluginRegistrar SanddrumInterpreter Works/;
our @runtime_loaded_namespaces =
	qw/App::Dialog Config::Default/;

our @command_modules = 
	qw/App App::Panel::Editor App::Panel::FileBrowser App::Panel::IOUnit
	App::Panel::OrgPad App::Panel::ProjectManager App::Panel::SratchSheet
	App::Panel::TextLab App::Panel::TreeLib
	CommandList Config 
	Edit File EventTable KeyMap PluginRegistrar SanddrumInterpreter/;
our @oop_interfaces = 
	qw/App::Editor App::Panel App::Splitter App::SidePanelController 
	   App::Bar::Document Document/;