summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwkrenn <wkrenn@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-12-05 16:57:23 +0000
committerwkrenn <wkrenn@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-12-05 16:57:23 +0000
commit31e737ac32c194e74632b801a845597ca5010bbf (patch)
tree5d5c18e4c755fe093ef5cca1ced0a47dd9e5abe9
parent1294767ca0296670b2471dc4bf62a243b88b0ea4 (diff)
downloadfpc-wkrenn.tar.gz
+ plan that was posted on the devel listwkrenn
+ initial rtl-package test project git-svn-id: http://svn.freepascal.org/svn/fpc/branches/wkrenn@16509 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--dynpackages/Plan.txt53
-rw-r--r--dynpackages/compiler/ppx86_64.lpi28
-rw-r--r--dynpackages/tests/packages/test1/rtl.ppk6
3 files changed, 80 insertions, 7 deletions
diff --git a/dynpackages/Plan.txt b/dynpackages/Plan.txt
new file mode 100644
index 0000000000..84566c71e8
--- /dev/null
+++ b/dynpackages/Plan.txt
@@ -0,0 +1,53 @@
+Proposed Definitions
+~~~~~~~~~~~~~~~~~~~~
+ <File>.ppl Free-Pascal Package Library
+ (shared module, Delphi: bpl)
+ <File>.ppk Free-Pascal Package
+ (source, Delphi: dpk)
+ <File>.pcp Free-Pascal Compiled Packge
+ (header, ppu's, Delphi: dcp)
+ (skip package collections for now)
+
+ -Fp<Name> packages to compile an application width
+ -FP<Dir> separate pcp search directory
+
+-> M1
+~~~~~
+Goal: - Compile System unit into a "fpcrtl.ppl"
+ - Create a simple application that uses fpcrtl.ppl.
+ -> Perhaps some simple string sorting program.
+
+Idea: Create a TPackageModule class, might be some descendant of
+ TPpuModule or TModule, that holds the information found in the
+ ppk. Don't include the ppu files in the ppk (yet).
+
+ Change pmodules.proc_package to load all units found in the
+ packages of the requires section, create idata for the ppl,
+ create pcp file.
+
+ Add command line parameter (-Fp) so that applications can be
+ compiled with packages. Change pmodules.proc_program to pre-load
+ all units of all referenced packages.
+
+-> M2
+~~~~~
+Goal: - RTTI in ppk
+ - Basic OOP support in ppk (ClassInfo etc.)
+ - Include all ppu information in pcp file
+
+To Consider:
+ Add Name mangling for RTTI (etc.) if not yet existant.
+
+ Find code in the rtl that needs to be changed (if any).
+
+ Threads/Thread Local Storage?
+
+ Tests.
+
+-> M3
+~~~~~
+Goal: - Implement missing functionality
+ (Weakpackage, CompilerSwitches...)
+ - Provide ppk files for class library
+ - add tests
+ - merge into trunk
diff --git a/dynpackages/compiler/ppx86_64.lpi b/dynpackages/compiler/ppx86_64.lpi
index 830394947e..d6fb4abf3b 100644
--- a/dynpackages/compiler/ppx86_64.lpi
+++ b/dynpackages/compiler/ppx86_64.lpi
@@ -1,8 +1,8 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
+ <Version Value="9"/>
<PathDelim Value="\"/>
- <Version Value="7"/>
<General>
<Flags>
<MainUnitHasUsesSectionForAllUnits Value="False"/>
@@ -12,9 +12,11 @@
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
- <TargetFileExt Value=".exe"/>
<Title Value="pp"/>
</General>
+ <BuildModes Count="1">
+ <Item1 Name="default" Default="True"/>
+ </BuildModes>
<PublishOptions>
<Version Value="2"/>
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
@@ -24,6 +26,7 @@
<RunParams>
<local>
<FormatVersion Value="1"/>
+ <CommandLineParams Value="C:\source\fpcrepo\dynpackages\tests\packages\test1\rtl.ppk"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
@@ -41,14 +44,14 @@
</Units>
</ProjectOptions>
<CompilerOptions>
- <Version Value="8"/>
+ <Version Value="9"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="x86_64\pp"/>
</Target>
<SearchPaths>
- <IncludeFiles Value="x86_64\"/>
- <OtherUnitFiles Value="x86_64\;x86\;systems\"/>
+ <IncludeFiles Value="x86_64"/>
+ <OtherUnitFiles Value="x86_64;x86;systems"/>
<UnitOutputDirectory Value="x86_64\lazbuild"/>
</SearchPaths>
<Parsing>
@@ -56,11 +59,18 @@
<CStyleOperator Value="False"/>
<AllowLabel Value="False"/>
<CPPInline Value="False"/>
+ <UseAnsiStrings Value="False"/>
</SyntaxOptions>
</Parsing>
+ <CodeGeneration>
+ <Optimizations>
+ <OptimizationLevel Value="0"/>
+ </Optimizations>
+ </CodeGeneration>
<Linking>
<Debugging>
<GenerateDebugInfo Value="True"/>
+ <GenerateDwarf Value="True"/>
</Debugging>
</Linking>
<Other>
@@ -72,8 +82,12 @@
<ConfigFile>
<StopAfterErrCount Value="50"/>
</ConfigFile>
- <CustomOptions Value="-dx86_64
-"/>
+ <CompilerMessages>
+ <UseMsgFile Value="True"/>
+ <MsgFileName Value="C:\source\fpcrepo\build\msg\errord.msg"/>
+ <ErrorNames Hint="Hinweis" Note="Anmerkung" Warning="Warnung" Error="Fehler" Fatal="Fataler Fehler"/>
+ </CompilerMessages>
+ <CustomOptions Value="-dx86_64"/>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
diff --git a/dynpackages/tests/packages/test1/rtl.ppk b/dynpackages/tests/packages/test1/rtl.ppk
new file mode 100644
index 0000000000..6c092612bf
--- /dev/null
+++ b/dynpackages/tests/packages/test1/rtl.ppk
@@ -0,0 +1,6 @@
+package rtl;
+
+contains
+ system;
+
+end.