From eb801d874c5101539c27703ec3854ad98a099d3f Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Tue, 28 Apr 2015 21:18:32 +0200 Subject: [PATCH] initial start with week3, wine yay --- fp2/week1/camil/RandomGetallen.dcl | 7 - fp2/week1/camil/RandomGetallen.icl | 29 - fp2/week1/mart/Echo | Bin 0 -> 103744 bytes fp2/week1/mart/Echo.icl | 11 + fp2/week1/mart/Galgje | Bin 0 -> 103512 bytes fp2/week1/mart/Galgje.icl | 13 + fp2/week1/mart/GalgjeWF.dcl | 5 + fp2/week1/mart/SimpleFileIO.dcl | 14 + fp2/week1/mart/SimpleFileIO.icl | 39 + fp2/week3/mart/GetallenRaden.icl | 29 +- fp2/week3/mart/GetallenRaden.prj | 1594 ++++++++++++++++++++++++++++ fp2/week3/mart/GetallenRaden.prp | 543 ++++++++++ fp2/week3/mart/fib.dyn | 1 + 13 files changed, 2247 insertions(+), 38 deletions(-) delete mode 100644 fp2/week1/camil/RandomGetallen.dcl delete mode 100644 fp2/week1/camil/RandomGetallen.icl create mode 100755 fp2/week1/mart/Echo create mode 100644 fp2/week1/mart/Echo.icl create mode 100755 fp2/week1/mart/Galgje create mode 100644 fp2/week1/mart/Galgje.icl create mode 100644 fp2/week1/mart/GalgjeWF.dcl create mode 100644 fp2/week1/mart/SimpleFileIO.dcl create mode 100644 fp2/week1/mart/SimpleFileIO.icl create mode 100644 fp2/week3/mart/GetallenRaden.prj create mode 100644 fp2/week3/mart/GetallenRaden.prp create mode 100644 fp2/week3/mart/fib.dyn diff --git a/fp2/week1/camil/RandomGetallen.dcl b/fp2/week1/camil/RandomGetallen.dcl deleted file mode 100644 index 2ca4b27..0000000 --- a/fp2/week1/camil/RandomGetallen.dcl +++ /dev/null @@ -1,7 +0,0 @@ -definition module RandomGetallen - -import Random - -random_n :: Int RandomSeed -> ([Int],RandomSeed) -random_inf :: RandomSeed -> [Int] -shuffle :: [a] RandomSeed -> [a] diff --git a/fp2/week1/camil/RandomGetallen.icl b/fp2/week1/camil/RandomGetallen.icl deleted file mode 100644 index a0a21bf..0000000 --- a/fp2/week1/camil/RandomGetallen.icl +++ /dev/null @@ -1,29 +0,0 @@ -implementation module RandomGetallen - -import StdEnv, Random - -random_n :: Int RandomSeed -> ([Int],RandomSeed) -random_n 0 seed = ([], seed) -random_n n seed = ([r:rs], s`) -where - (rs,s`) = random_n (n-1) s - (r,s) = random seed - -random_inf :: RandomSeed -> [Int] -random_inf s = iterateSt random s - -iterateSt :: (s -> (a,s)) s -> [a] -iterateSt f s = [a : iterateSt f s`] -where - (a,s`) = f s - -shuffle :: [a] RandomSeed -> [a] -shuffle xs s = (perms xs)!!(fst (random s) rem (factorial (length xs))) - -perms :: [a] -> [[a]] -perms [] = [[]] -perms xs = [[xs!!i : xs`] \\ i <- [0..length xs - 1] , xs` <- perms (take i xs ++ drop (i+1) xs)] - -factorial :: Int -> Int -factorial 0 = 1 -factorial n = n * factorial (n-1) diff --git a/fp2/week1/mart/Echo b/fp2/week1/mart/Echo new file mode 100755 index 0000000000000000000000000000000000000000..cf2fb794efcf8349d03b94a4745d14ced5e85b4e GIT binary patch literal 103744 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 Pqd5O^_e>7&p7p-~&ifPm literal 0 HcmV?d00001 diff --git a/fp2/week1/mart/Echo.icl b/fp2/week1/mart/Echo.icl new file mode 100644 index 0000000..30a6f4b --- /dev/null +++ b/fp2/week1/mart/Echo.icl @@ -0,0 +1,11 @@ +module Echo + +import StdEnv + + +Start :: *World -> *World +Start world +# (console, world) = stdio world +# (line, console) = freadline console +| not (fend console) = fwrites line +| otherwise = world diff --git a/fp2/week1/mart/Galgje b/fp2/week1/mart/Galgje new file mode 100755 index 0000000000000000000000000000000000000000..d46de770b51583f5408e6b3e5b7768d1829e98fa GIT binary patch literal 103512 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 literal 0 HcmV?d00001 diff --git a/fp2/week1/mart/Galgje.icl b/fp2/week1/mart/Galgje.icl new file mode 100644 index 0000000..e5106ee --- /dev/null +++ b/fp2/week1/mart/Galgje.icl @@ -0,0 +1,13 @@ +module Galgje + +import StdEnv, Random + +//randomWord :: *env -> (Maybe String, *env) | FileSystem env +//randomWord env +//# (ss,env) = readLines lexicon_file env +//| ss == Nothing = (Nothing, env) +//# (seed,env) = getNewRandomSeed env +//| otherwise = (Just (skip_nl ((shuffle (fromJust ss) seed)!!0)), env) + +Start :: *World -> *World +Start world = world diff --git a/fp2/week1/mart/GalgjeWF.dcl b/fp2/week1/mart/GalgjeWF.dcl new file mode 100644 index 0000000..a777b95 --- /dev/null +++ b/fp2/week1/mart/GalgjeWF.dcl @@ -0,0 +1,5 @@ +definition module GalgjeWF + +import iTasks + +galgje :: [Workflow] diff --git a/fp2/week1/mart/SimpleFileIO.dcl b/fp2/week1/mart/SimpleFileIO.dcl new file mode 100644 index 0000000..1bd97da --- /dev/null +++ b/fp2/week1/mart/SimpleFileIO.dcl @@ -0,0 +1,14 @@ +definition module SimpleFileIO + +import StdFile, StdOverloaded, StdMaybe + +// 1. +readFile :: String *env -> (Maybe String, *env) | FileSystem env +writeFile :: String String *env -> (Bool, *env) | FileSystem env + +// 2. +readLines :: String *env -> (Maybe [String],*env) | FileSystem env +writeLines :: String [String] *env -> (Bool, *env) | FileSystem env + +// 3. +//mapFile :: String String (a -> b) *env -> (Bool, *env) | FileSystem env & ... a & ... b diff --git a/fp2/week1/mart/SimpleFileIO.icl b/fp2/week1/mart/SimpleFileIO.icl new file mode 100644 index 0000000..b2a483a --- /dev/null +++ b/fp2/week1/mart/SimpleFileIO.icl @@ -0,0 +1,39 @@ +implementation module SimpleFileIO + +import StdEnv, StdFile, StdOverloaded, StdMaybe + +// 1. +readFile :: String *env -> (Maybe String, *env) | FileSystem env +readFile s env +# (ss, env) = readLines s env +| ss == Nothing = (Nothing, env) +| otherwise = (Just (foldl (+++) "" (fromJust ss)), env) + +writeFile :: String String *env -> (Bool, *env) | FileSystem env +writeFile fn s env +# (ok, outfile, env) = fopen fn FWriteText env +| not ok = (False, env) +# outfile = fwrites s outfile +# (ok, env) = fclose outfile env +| otherwise = (ok, env) + +// 2. +readLines :: String *env -> (Maybe [String],*env) | FileSystem env +readLines s env +# (ok, infile, env) = sfopen s FReadText env +| not ok = (Nothing, env) +| otherwise = (Just (fst (readLines` infile)), env) +where + readLines` :: File -> ([String], File) + readLines` file + | sfend file = ([], file) + # (line, file) = sfreadline file + # (ss, file) = readLines` file + | otherwise = ([line : ss], file) + +writeLines :: String [String] *env -> (Bool, *env) | FileSystem env +writeLines fn ss env = writeFile fn (foldl (+++) "" [s +++ "\n" \\ s <- ss]) env + +// 3. +//mapFile :: String String (a -> b) *env -> (Bool, *env) | FileSystem env & ... a & ... b + diff --git a/fp2/week3/mart/GetallenRaden.icl b/fp2/week3/mart/GetallenRaden.icl index f03750a..37584fb 100644 --- a/fp2/week3/mart/GetallenRaden.icl +++ b/fp2/week3/mart/GetallenRaden.icl @@ -8,6 +8,31 @@ import StdEnv import StdDynamic, StdDynamicFileIO // nodig voor dynamics en dynamics in files import StdFileSelect // platform file-selector dialoog -Start :: *World -> *World +// Generation program +//fib :: [Int] +//fib = [fib` i \\ i <- [0..]] +// where +// fib` 0 = 0 +// fib` 1 = 1 +// fib` n = fib` (n-1) + fib` (n-2) +// +//Start :: *World -> (Bool, *World) +//Start world = writeDynamic "fib" (dynamic fib) world + +makeSeq :: Dynamic -> [Int] +makeSeq (x :: [Int]) = x +makeSeq _ = abort "You selected a file not containing a sequence" + +loadSeq :: String *World -> *([Int], *World) +loadSeq s world +# s = let l = size s in s % (0, l-5) +# (ok, dyn, world) = readDynamic s world +| not ok = abort "You didn't select a dynamic file" +| otherwise = (makeSeq dyn, world) + +Start :: *World -> ([Int], *World) Start world - = world +# (inputfilepath, world) = selectInputFile world +| isNothing inputfilepath = abort "Please select a file" +# (sequence, world) = loadSeq (fromJust inputfilepath) world +| otherwise = (take 20 sequence, world) diff --git a/fp2/week3/mart/GetallenRaden.prj b/fp2/week3/mart/GetallenRaden.prj new file mode 100644 index 0000000..b3af0da --- /dev/null +++ b/fp2/week3/mart/GetallenRaden.prj @@ -0,0 +1,1594 @@ +Version: 1.4 +Global + ProjectRoot: . + Built: True + Target: Object IO + Exec: {Project}\GetallenRaden.exe + CodeGen + CheckStacks: False + CheckIndexes: True + Application + HeapSize: 2097152 + StackSize: 512000 + ExtraMemory: 81920 + IntialHeapSize: 204800 + HeapSizeMultiplier: 4096 + ShowExecutionTime: False + ShowGC: False + ShowStackSize: False + MarkingCollector: False + StandardRuntimeEnv: True + Profile + Memory: False + MemoryMinimumHeapSize: 0 + Time: False + Stack: False + Output + Output: ShowConstructors + Font: Courier + FontSize: 9 + WriteStdErr: False + Link + LinkMethod: Dynamic + GenerateRelocations: False + GenerateLinkMap: False + LinkResources: False + ResourceSource: + GenerateDLL: False + ExportedNames: + Paths + Path: {Project} + Path: {Application}\Libraries\Dynamics + Path: {Application}\Libraries\Dynamics\implementation + Path: {Application}\Libraries\Dynamics\implementation\windows + Path: {Application}\Libraries\Dynamics\general + Path: {Application}\Libraries\Directory + Precompile: + Postlink: +MainModule + Name: GetallenRaden + Dir: {Project} + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False +OtherModules + Module + Name: StdCleanTypes + Dir: {Application}\Libraries\Dynamics + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdDynamic + Dir: {Application}\Libraries\Dynamics + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdDynamicFileIO + Dir: {Application}\Libraries\Dynamics + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: DynID + Dir: {Application}\Libraries\Dynamics\implementation + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: DynIDMacros + Dir: {Application}\Libraries\Dynamics\implementation + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: DynamicUtilities + Dir: {Application}\Libraries\Dynamics\implementation + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdDynamicLowLevelInterface + Dir: {Application}\Libraries\Dynamics\implementation + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdDynamicTypes + Dir: {Application}\Libraries\Dynamics\implementation + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdDynamicVersion + Dir: {Application}\Libraries\Dynamics\implementation + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: _SystemDynamic + Dir: {Application}\Libraries\Dynamics\implementation + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: DynamicGraphConversion + Dir: {Application}\Libraries\Dynamics\implementation\windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: DynamicLinkerInterface + Dir: {Application}\Libraries\Dynamics\implementation\windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: read_function.obj + Module + Name: memory + Dir: {Application}\Libraries\Dynamics\implementation\windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: mem.obj + Module + Name: memory_mapped_files + Dir: {Application}\Libraries\Dynamics\implementation\windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: low.obj + NeededLibraries + Library: StdDynamic_kernel32_library + Module + Name: shared_buffer + Dir: {Application}\Libraries\Dynamics\implementation\windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: BitSet + Dir: {Application}\Libraries\Dynamics\general + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: DefaultElem + Dir: {Application}\Libraries\Dynamics\general + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: EnDecode + Dir: {Application}\Libraries\Dynamics\general + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: md5 + Dir: {Application}\Libraries\Dynamics\general + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Directory + Dir: {Application}\Libraries\Directory + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: cDirectory. + Module + Name: StdBitmap + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdControlDef + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdFileSelect + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdIOBasic + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdIOCommon + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdId + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdKey + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdMenuDef + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdPSt + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdPicture + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdPictureDef + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdProcessAttribute + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdProcessDef + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdTimerDef + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdWindowDef + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: cast + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: commondef + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: device + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: deviceevents + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: devicefunctions + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: devicesystemstate + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: id + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iostate + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: keyfocus + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: menuhandle + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: processhandle + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: processstack + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: receiverhandle + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: receivermessage + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: receivertable + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: roundrobin + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: scheduler + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: semidynamic + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: systemid + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: timerhandle + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: timertable + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: windowhandle + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: world + Dir: {Application}\Libraries\ObjectIO + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: clCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: util_121. + ObjectFile: cpicture_121. + ObjectFile: cdebug_121. + ObjectFile: cCrossCall_121. + ObjectFile: cCrossCallWindows_121. + ObjectFile: cCCallWindows_121. + ObjectFile: cCCallSystem_121. + Module + Name: clCrossCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: cCrossCallWindows_121. + ObjectFile: cCrossCallProcedureTable_121. + ObjectFile: cCrossCallCursor_121. + ObjectFile: cCrossCall_121. + ObjectFile: cCCallSystem_121. + ObjectFile: cCCallWindows_121. + ObjectFile: cAcceleratorTable_121. + NeededLibraries + Library: userExt_library + Library: gdiExt_library + Library: kernelExt_library + Library: winspool_library + Library: winmm_library + Library: shell32_library + Library: ole32_library + Library: kernel32_library + Library: comctl32_library + Library: advapi32_library + Module + Name: menuCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: cCrossCallMenus_121. + Module + Name: menuCrossCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osactivaterequests + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osbeep + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osbitmap + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osdocumentinterface + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: cCrossCallxDI_121. + Module + Name: osevent + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osfileselect + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: cCrossCallFileSelectors_121. + Module + Name: osfont + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osguishare + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: oskey + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osmenu + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osmouse + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: ospicture + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: osrgn + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: ossystem + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: ostime + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: ostoolbar + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: ostoolbox + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: cCrossCallFont_121. + Module + Name: ostypes + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: pictCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: rgnCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: windowCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: cpicture_121. + ObjectFile: cCCallWindows_121. + Module + Name: windowCrossCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdArray + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdBool + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdChar + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdCharList + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdClass + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdEnum + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdEnv + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdFile + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdFunc + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdInt + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdList + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdMisc + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdOrdList + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdOverloaded + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdReal + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdString + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdTuple + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: _SystemArray + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: _SystemEnum + Dir: {Application}\Libraries\StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdArrayExtensions + Dir: {Application}\Libraries\StdLib + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdLibMisc + Dir: {Application}\Libraries\StdLib + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdMaybe + Dir: {Application}\Libraries\StdLib + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False diff --git a/fp2/week3/mart/GetallenRaden.prp b/fp2/week3/mart/GetallenRaden.prp new file mode 100644 index 0000000..cc79889 --- /dev/null +++ b/fp2/week3/mart/GetallenRaden.prp @@ -0,0 +1,543 @@ +Version: 1.4 +MainModule + Name: GetallenRaden + Dir: {Project} + DclOpen: False + Icl + WindowPosition + X: 10 + Y: 10 + SizeX: 800 + SizeY: 600 + IclOpen: False +OtherModules + Module + Name: StdCleanTypes + Dir: {Application}\Libraries\Dynamics + DclOpen: False + IclOpen: False + Module + Name: StdDynamic + Dir: {Application}\Libraries\Dynamics + DclOpen: False + IclOpen: False + Module + Name: StdDynamicFileIO + Dir: {Application}\Libraries\Dynamics + DclOpen: False + IclOpen: False + Module + Name: DynID + Dir: {Application}\Libraries\Dynamics\implementation + DclOpen: False + IclOpen: False + Module + Name: DynIDMacros + Dir: {Application}\Libraries\Dynamics\implementation + DclOpen: False + IclOpen: False + Module + Name: DynamicUtilities + Dir: {Application}\Libraries\Dynamics\implementation + DclOpen: False + IclOpen: False + Module + Name: StdDynamicLowLevelInterface + Dir: {Application}\Libraries\Dynamics\implementation + DclOpen: False + IclOpen: False + Module + Name: StdDynamicTypes + Dir: {Application}\Libraries\Dynamics\implementation + DclOpen: False + IclOpen: False + Module + Name: StdDynamicVersion + Dir: {Application}\Libraries\Dynamics\implementation + DclOpen: False + IclOpen: False + Module + Name: _SystemDynamic + Dir: {Application}\Libraries\Dynamics\implementation + DclOpen: False + IclOpen: False + Module + Name: DynamicGraphConversion + Dir: {Application}\Libraries\Dynamics\implementation\windows + DclOpen: False + IclOpen: False + Module + Name: DynamicLinkerInterface + Dir: {Application}\Libraries\Dynamics\implementation\windows + DclOpen: False + IclOpen: False + Module + Name: memory + Dir: {Application}\Libraries\Dynamics\implementation\windows + DclOpen: False + IclOpen: False + Module + Name: memory_mapped_files + Dir: {Application}\Libraries\Dynamics\implementation\windows + DclOpen: False + IclOpen: False + Module + Name: shared_buffer + Dir: {Application}\Libraries\Dynamics\implementation\windows + DclOpen: False + IclOpen: False + Module + Name: BitSet + Dir: {Application}\Libraries\Dynamics\general + DclOpen: False + IclOpen: False + Module + Name: DefaultElem + Dir: {Application}\Libraries\Dynamics\general + DclOpen: False + IclOpen: False + Module + Name: EnDecode + Dir: {Application}\Libraries\Dynamics\general + DclOpen: False + IclOpen: False + Module + Name: md5 + Dir: {Application}\Libraries\Dynamics\general + DclOpen: False + IclOpen: False + Module + Name: Directory + Dir: {Application}\Libraries\Directory + DclOpen: False + IclOpen: False + Module + Name: StdBitmap + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdControlDef + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdFileSelect + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdIOBasic + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdIOCommon + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdId + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdKey + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdMenuDef + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdPSt + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdPicture + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdPictureDef + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdProcessAttribute + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdProcessDef + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdTimerDef + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: StdWindowDef + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: cast + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: commondef + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: device + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: deviceevents + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: devicefunctions + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: devicesystemstate + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: id + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: iostate + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: keyfocus + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: menuhandle + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: processhandle + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: processstack + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: receiverhandle + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: receivermessage + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: receivertable + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: roundrobin + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: scheduler + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: semidynamic + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: systemid + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: timerhandle + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: timertable + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: windowhandle + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: world + Dir: {Application}\Libraries\ObjectIO + DclOpen: False + IclOpen: False + Module + Name: clCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: clCrossCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: menuCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: menuCrossCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osactivaterequests + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osbeep + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osbitmap + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osdocumentinterface + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osevent + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osfileselect + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osfont + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osguishare + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: oskey + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osmenu + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osmouse + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: ospicture + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: osrgn + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: ossystem + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: ostime + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: ostoolbar + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: ostoolbox + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: ostypes + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: pictCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: rgnCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: windowCCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: windowCrossCall_12 + Dir: {Application}\Libraries\ObjectIO\OS Windows + DclOpen: False + IclOpen: False + Module + Name: StdArray + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdBool + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdChar + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdCharList + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdClass + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdEnum + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdEnv + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdFile + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdFunc + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdInt + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdList + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdMisc + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdOrdList + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdOverloaded + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdReal + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdString + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdTuple + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: _SystemArray + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: _SystemEnum + Dir: {Application}\Libraries\StdEnv + DclOpen: False + IclOpen: False + Module + Name: StdArrayExtensions + Dir: {Application}\Libraries\StdLib + DclOpen: False + IclOpen: False + Module + Name: StdLibMisc + Dir: {Application}\Libraries\StdLib + DclOpen: False + IclOpen: False + Module + Name: StdMaybe + Dir: {Application}\Libraries\StdLib + DclOpen: False + IclOpen: False diff --git a/fp2/week3/mart/fib.dyn b/fp2/week3/mart/fib.dyn new file mode 100644 index 0000000..8b8335a --- /dev/null +++ b/fp2/week3/mart/fib.dyn @@ -0,0 +1 @@ +0a49c9db651c81d64bfc61520d7cfd6b -- 2.20.1