Commit 70ebbfda authored by Laszlo Domoszlai's avatar Laszlo Domoszlai
Browse files

first stub on using typeinfo. need to modify examples.

parent b31ad726
......@@ -15,8 +15,10 @@
#define forward_thunk(thunk, frame_ptr) \
Thunk* dst = get_dst(frame_ptr); \
if(dst != NULL){ \
dst->desc = (Desc*) __FORWARD_PTR__; \
dst->_forward_ptr = thunk;
dst->_forward_ptr = thunk; \
}
#define placeholder() \
push_a(alloc_b()); \
......@@ -83,20 +85,14 @@ struct Thunk* create_thunk_var(Code* expr, int frame_ptr)
return local(frame_ptr, ((VarEntry*) expr)->index);
}
struct Thunk* create_thunk_var_strict(Code* expr, int frame_ptr)
struct Thunk* create_thunk_var_unboxed(Code* expr, int frame_ptr)
{
Thunk* arg = local(frame_ptr, ((VarEntry*) expr)->index);
if(arg->desc->unboxable) // unboxable means it is on the B stack
{
// TODO: check if its on heap
Thunk* target = (Thunk*) alloc_heap(sizeof (Thunk));
memcpy(target, arg, sizeof(Thunk));
return target;
}
else
{
return arg;
}
}
struct Thunk* create_thunk_thunk(Code* expr, int frame_ptr)
......@@ -128,10 +124,11 @@ void set_create_thunk_fun(Code* code)
code->create_thunk = create_thunk_app_dyn;
break;
case CT_VAR:
case CT_VAR_STRICT:
code->create_thunk = create_thunk_var;
break;
case CT_VAR_STRICT:
code->create_thunk = create_thunk_var_strict;
case CT_VAR_UNBOXED:
code->create_thunk = create_thunk_var_unboxed;
break;
case CT_THUNK:
code->create_thunk = create_thunk_thunk;
......@@ -312,7 +309,7 @@ void exec(Code* expr, int frame_ptr, int root_frame_ptr)
Thunk* thunk = get_dst(root_frame_ptr);
int newsize = slice->thunk_size;
if (thunk->desc->thunk_size < newsize) {
if (thunk != NULL && thunk->desc->thunk_size < newsize) {
Thunk* target = thunk;
thunk = (Thunk*) alloc_heap(newsize);
target->desc = (Desc*) __FORWARD_PTR__;
......@@ -336,10 +333,6 @@ void exec(Code* expr, int frame_ptr, int root_frame_ptr)
case CT_APP_DYN:
{
push_a(local(frame_ptr, ((AppEntry*)expr)->var.index));
//if(!basethunk->desc->hnf) basethunk = basethunk->desc->eval();
//peek_a()->desc->eval();
//Thunk* basethunk = peek_a();
//basethunk->desc->eval();
Thunk** bt = &peek_a();
(*bt)->desc->eval();
......@@ -397,7 +390,7 @@ void exec(Code* expr, int frame_ptr, int root_frame_ptr)
Thunk* thunk = get_dst(root_frame_ptr);
int newsize = slice->thunk_size;
if (thunk->desc->thunk_size < newsize) {
if (thunk != NULL && thunk->desc->thunk_size < newsize) {
Thunk* target = thunk;
thunk = (Thunk*) alloc_heap(newsize);
target->desc = (Desc*) __FORWARD_PTR__;
......@@ -428,13 +421,13 @@ void exec(Code* expr, int frame_ptr, int root_frame_ptr)
}
}
case CT_VAR_STRICT:
case CT_VAR_UNBOXED:
{
Thunk* arg = local(frame_ptr, ((VarEntry*) expr)->index);
assert(is_hnf(arg));
// TODO: check how often happens
if(arg->desc->unboxable)
if(get_dst(root_frame_ptr) != NULL && arg->desc->unboxable)
{
memcpy(get_dst(root_frame_ptr), arg, sizeof(Thunk));
}
......
......@@ -4,7 +4,7 @@
#include "thunk.h"
enum CodeType {
CT_VAR, CT_VAR_STRICT,
CT_VAR, CT_VAR_STRICT, CT_VAR_UNBOXED,
CT_APP_PRIM1, CT_APP_PRIM_S,
CT_APP_PRIM2, CT_APP_PRIM_ST, CT_APP_PRIM_TS, CT_APP_PRIM_SS, CT_APP_PRIM_TA, CT_APP_PRIM_AT, CT_APP_PRIM_AS, CT_APP_PRIM_SA,
CT_APP_THUNK, CT_APP_DYN,
......
......@@ -2,7 +2,7 @@
#define DEBUG_H
//#define DEBUG
#define BENCHMARK
//#define BENCHMARK
#ifndef DEBUG
#define NDEBUG
......
......@@ -8,6 +8,7 @@
struct FunEntry {
struct Desc base;
int strictness;
int boxing;
union {
char* parseCont;
......@@ -26,6 +27,7 @@ struct SliceEntry {
struct ADTEntry {
struct Desc base;
int strictness;
int boxing;
unsigned int nrConses; // number of constructors in the type
unsigned int idx; // constructor index
......@@ -47,13 +49,13 @@ struct CAFEntry {
struct RecordEntry {
struct Desc base;
int strictness;
int boxing;
char** fields;
char name[];
};
struct PrimEntry {
struct Desc base;
int strictness;
void (*exec)(int frame_ptr);
char name[];
};
......
......@@ -9,9 +9,9 @@
#define follow_thunk(thunk) if (thunk->desc == (Desc*) __FORWARD_PTR__) thunk = thunk->_forward_ptr;
// http://stackoverflow.com/questions/17095324/fastest-way-to-determine-if-an-integer-is-between-two-integers-inclusive-with/17095534#17095534
//#define inheap(addr) ((unsigned)((int)addr-(int)heap_base_curr) < HEAP_SIZE)
#define inheap(addr) ((char*)addr >= heap_base_curr && (char*)addr < (heap_base_curr + HEAP_SIZE))
#define instackb(addr) ((char*)addr >= (char*) &stack_b[0] && (char*)addr < (char*) &stack_b[STACK_SIZE_B])
#define inheap(addr) ((unsigned)((int)addr-(int)heap_base_curr) < HEAP_SIZE)
//#define inheap(addr) ((char*)addr >= heap_base_curr && (char*)addr < (heap_base_curr + HEAP_SIZE))
//#define instackb(addr) ((char*)addr >= (char*) &stack_b[0] && (char*)addr < (char*) &stack_b[STACK_SIZE_B])
int gc_enabled = 1;
......
......@@ -100,6 +100,8 @@ int parseDef1(char** ptr) {
// 4. field: strictness bits
if (!parseInt(ptr, &entry->strictness)) return 0;
// 5. field: boxing info
if (!parseInt(ptr, &entry->boxing)) return 0;
// set the continuation for stage 2
entry->parseCont = *ptr;
......@@ -177,6 +179,8 @@ int parseDef1(char** ptr) {
// 4. field: strictness bits
if (!parseInt(ptr, &entry->strictness)) return 0;
// 5. field: boxing info
if (!parseInt(ptr, &entry->boxing)) return 0;
// generate slices. avoid function call if arity is zero
if (arity > 0) gen_slices(entry_base, (Desc*) entry, arity);
......@@ -204,6 +208,7 @@ int parseDef1(char** ptr) {
if (!parseInt(ptr, &arity)) return 0;
entry->base.arity = arity;
if (!parseInt(ptr, &entry->strictness)) return 0;
if (!parseInt(ptr, &entry->boxing)) return 0;
entry->base.thunk_size = thunk_size_f(arity);
entry->base.unboxable = false;
......@@ -299,6 +304,10 @@ VarEntry* parseVar(char **ptr, VarEntry* target) {
entry->base.type = CT_VAR_STRICT;
entry->base.strict = true;
break;
case 'U': // Strict unboxable var
entry->base.type = CT_VAR_UNBOXED;
entry->base.strict = true;
break;
default:
return 0;
}
......
......@@ -9,15 +9,6 @@
void __add(int dst_idx) {
Thunk* target = get_dst(dst_idx);
while(target->desc == (Desc*) __FORWARD_PTR__) target = target->_forward_ptr;
if(target->desc->type == FT_ADT)
{
int i =0;
}
target->desc = (Desc*) __INT__;
target->_int = readI(arg(2)) + readI(arg(1));
}
......@@ -60,12 +51,6 @@ void __geC(int dst_idx) {
void __eqI(int dst_idx) {
Thunk* target = get_dst(dst_idx);
if(target->desc != NULL && target->desc->type == FT_ADT)
{
int i =0;
}
target->desc = (Desc*) __BOOL__;
target->_bool = readI(arg(2)) == readI(arg(1));
}
......@@ -118,7 +103,7 @@ void __C2I(int dst_idx) {
target->_int = readC(arg(1));
}
void add_prim(int arity, int strictness, char* name, void (*exec)(int)) {
void add_prim(int arity, char* name, void (*exec)(int)) {
int nameLength = strlen(name);
// before the PrimEntry there are "arity" number of SliceEntries
......@@ -127,7 +112,6 @@ void add_prim(int arity, int strictness, char* name, void (*exec)(int)) {
PrimEntry* entry = (PrimEntry*) (entry_base + arity);
entry->base.type = arity == 1 ? FT_PRIM1 : FT_PRIM2;
entry->base.arity = arity;
entry->strictness = strictness;
entry->base.thunk_size = thunk_size_f(arity);
entry->base.hnf = false;
entry->exec = exec;
......@@ -143,20 +127,20 @@ void add_prim(int arity, int strictness, char* name, void (*exec)(int)) {
}
void init_prim() {
add_prim(2, 3, "add", &__add);
add_prim(2, 3, "sub", &__sub);
add_prim(2, 3, "mult", &__mult);
add_prim(2, 3, "div", &__div);
add_prim(2, 3, "gt", &__gt);
add_prim(2, 3, "geC", &__geC);
add_prim(2, 3, "lt", &__lt);
add_prim(2, 3, "eqI", &__eqI);
add_prim(2, 3, "neqI", &__neqI);
add_prim(2, 3, "eqB", &__eqB);
add_prim(2, 3, "eqC", &__eqC);
add_prim(1, 1, "not", &__not);
add_prim(2, 3, "and", &__and);
add_prim(2, 3, "or", &__or);
add_prim(2, 3, "mod", &__mod);
add_prim(1, 1, "C2I", &__C2I);
add_prim(2, "add", &__add);
add_prim(2, "sub", &__sub);
add_prim(2, "mult", &__mult);
add_prim(2, "div", &__div);
add_prim(2, "gt", &__gt);
add_prim(2, "geC", &__geC);
add_prim(2, "lt", &__lt);
add_prim(2, "eqI", &__eqI);
add_prim(2, "neqI", &__neqI);
add_prim(2, "eqB", &__eqB);
add_prim(2, "eqC", &__eqC);
add_prim(1, "not", &__not);
add_prim(2, "and", &__and);
add_prim(2, "or", &__or);
add_prim(2, "mod", &__mod);
add_prim(1, "C2I", &__C2I);
}
......@@ -14,7 +14,8 @@ from Text.Unicode.UChar import instance toChar UChar
import System.CommandLine
import System.File
:: VarType = Local Int Bool
:: TypeInfo = Normal | Strict | UnBoxable
:: VarType = Local Int TypeInfo
:: Context = { vars :: Map String VarType
, localcount :: Int
......@@ -22,24 +23,42 @@ import System.File
, currentFun :: String
}
unBoxableType (Type "I") = True
unBoxableType (Type "C") = True
unBoxableType (Type "B") = True
unBoxableType (Type "R") = True
unBoxableType _ = False
selectCaseOrder (PDefault,_) _ = True
selectCaseOrder _ _ = False
newContext = {vars = newMap, localcount = 0, inspine = False, currentFun = ""}
typeInfo (TypedVar (StrictVar _ _) type) | unBoxableType type
= UnBoxable
= Strict
typeInfo _ = Normal
registerArgs vars idx [] = vars
registerArgs vars idx [v:vs] = registerArgs (put (unpackVar v) (Local idx (isStrictVar v)) vars) (idx + 1) vs
registerArgs vars idx [v:vs] = registerArgs (put (unpackVar v) (Local idx (typeInfo v)) vars) (idx + 1) vs
registerLocals vars idx [] = vars
registerLocals vars idx [v:vs] = registerLocals (put (unpackVar v) (Local idx (isStrictVar v)) vars) (idx + 1) vs
registerLocals vars idx [v:vs] = registerLocals (put (unpackVar v) (Local idx (typeInfo v)) vars) (idx + 1) vs
calcStrictness [] _ = 0
calcStrictness [StrictVar _ _:vs] idx = (1 << idx) + calcStrictness vs (idx + 1)
calcStrictness [NormalVar _ _:vs] idx = calcStrictness vs (idx + 1)
calcStrictness [TypedVar (StrictVar _ _) _:vs] idx = (1 << idx) + calcStrictness vs (idx + 1)
calcStrictness [_:vs] idx = calcStrictness vs (idx + 1)
calcBoxing [] _ = 0
calcBoxing [TypedVar (StrictVar _ _) type:vs] idx | unBoxableType type = (1 << idx) + calcBoxing vs (idx + 1)
calcBoxing [_:vs] idx = calcBoxing vs (idx + 1)
sFunc ctx (FTFunc name body params) a
# ctx = {ctx & vars = registerArgs ctx.vars 0 params, localcount = length params, inspine = True, currentFun = (unpackVar name)}
= a <++ "F" <++ sText (unpackVar name) <++ sNum (length params) <++ sNum (calcStrictness params 0) <++ sTerm ctx body
= a <++ "F" <++ sText (unpackVar name) <++ sNum (length params)
<++ sNum (calcStrictness params 0) <++ sNum (calcBoxing params 0)
<++ sTerm ctx body
sFunc ctx (FTCAF name body) a
# ctx = {ctx & inspine = False, currentFun = (unpackVar name)}
......@@ -47,14 +66,16 @@ sFunc ctx (FTCAF name body) a
sFunc ctx (FTRecord name fields) a
# ctx = {ctx & inspine = False, currentFun = (unpackVar name)}
= a <++ "R" <++ sText (unpackVar name) <++ sNum (length fields) <++ sNum (calcStrictness fields 0) <++ sList0 sText (map unpackVar fields)
= a <++ "R" <++ sText (unpackVar name) <++ sNum (length fields)
<++ sNum (calcStrictness fields 0) <++ sNum (calcBoxing fields 0)
<++ sList0 sText (map unpackVar fields)
sFunc ctx (FTADT typeName cs) a
# ctx = {ctx & inspine = False, currentFun = (unpackVar typeName)}
= a <++ "A" <++ sList sCon cs
where
sCon (SaplConstructor name _ params) a
= a <++ sText (unpackVar name) <++ sNum (length params) <++ sNum (calcStrictness params 0)
= a <++ sText (unpackVar name) <++ sNum (length params) <++ sNum (calcStrictness params 0) <++ sNum (calcBoxing params 0)
sList f es a = a <++ sNum (length es) <++ sList0 f es
sList0 f [e] a = a <++ f e
......@@ -77,8 +98,9 @@ appType ctx var | isLocalVar ctx var
appType {inspine, currentFun} var = if (inspine && unpackVar var == currentFun) "T" "A" // T: tail recursive
// TODO: find constructor for strictness info
sSelectCase ctx (PCons varName params, expr) a
# ctx = {ctx & vars = registerLocals ctx.vars ctx.localcount params, localcount = ctx.localcount + length params}
# ctx = {ctx & vars = registerLocals ctx.vars ctx.localcount (map (\p->TypedVar p NoType) params), localcount = ctx.localcount + length params}
= a <++ "C" <++ sText varName <++ sTerm ctx expr
sSelectCase ctx (PLit lit, expr) a
= a <++ "L" <++ lit <++ sTerm ctx expr
......@@ -87,16 +109,18 @@ sSelectCase ctx (PDefault, expr) a
sVar ctx var a
= case get varName ctx.vars of
(Just (Local i True)) = a <++ "S" <++ sNum i
(Just (Local i False)) = a <++ "L" <++ sNum i
(Just (Local i Strict)) = a <++ "S" <++ sNum i
(Just (Local i UnBoxable)) = a <++ "U" <++ sNum i
(Just (Local i Normal)) = a <++ "L" <++ sNum i
_ = a <++ "F" <++ sText varName
where
varName = unpackVar var
sVarApp ctx var a
= case get varName ctx.vars of
(Just (Local i True)) = a <++ "VS" <++ sNum i
(Just (Local i False)) = a <++ "VL" <++ sNum i
(Just (Local i Strict)) = a <++ "VS" <++ sNum i
(Just (Local i UnBoxable)) = a <++ "VS" <++ sNum i
(Just (Local i Normal)) = a <++ "VL" <++ sNum i
_ = a <++ "A" <++ sList (sTerm ctx) [] <++ sVar ctx var
where
varName = unpackVar var
......
......@@ -398,7 +398,7 @@ OtherModules
Fusion: False
Module
Name: Control.Applicative
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -412,7 +412,7 @@ OtherModules
Fusion: False
Module
Name: Control.Monad
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -426,7 +426,7 @@ OtherModules
Fusion: False
Module
Name: Data.Either
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -440,7 +440,7 @@ OtherModules
Fusion: False
Module
Name: Data.Error
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -454,7 +454,7 @@ OtherModules
Fusion: False
Module
Name: Data.Foldable
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -468,7 +468,7 @@ OtherModules
Fusion: False
Module
Name: Data.Func
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -482,7 +482,7 @@ OtherModules
Fusion: False
Module
Name: Data.Functor
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -496,7 +496,7 @@ OtherModules
Fusion: False
Module
Name: Data.List
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -510,7 +510,7 @@ OtherModules
Fusion: False
Module
Name: Data.Map
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -524,7 +524,7 @@ OtherModules
Fusion: False
Module
Name: Data.Maybe
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -538,7 +538,7 @@ OtherModules
Fusion: False
Module
Name: Data.Monoid
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -552,7 +552,7 @@ OtherModules
Fusion: False
Module
Name: Data.Set
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -566,7 +566,7 @@ OtherModules
Fusion: False
Module
Name: Data.Traversable
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -580,7 +580,7 @@ OtherModules
Fusion: False
Module
Name: Data.Void
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -594,7 +594,7 @@ OtherModules
Fusion: False
Module
Name: System.CommandLine
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -608,7 +608,7 @@ OtherModules
Fusion: False
Module
Name: System.IO
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -622,7 +622,7 @@ OtherModules
Fusion: False
Module
Name: System._Pointer
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -636,7 +636,7 @@ OtherModules
Fusion: False
Module
Name: Text
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -650,7 +650,7 @@ OtherModules
Fusion: False
Module
Name: Text.JSON
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -664,7 +664,7 @@ OtherModules
Fusion: False
Module
Name: Text.PPrint
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -678,7 +678,7 @@ OtherModules
Fusion: False
Module
Name: Text.StringAppender
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -692,7 +692,7 @@ OtherModules
Fusion: False
Module
Name: Text.Unicode
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -706,7 +706,7 @@ OtherModules
Fusion: False
Module
Name: Text.Unicode.Encodings.JS
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -720,7 +720,7 @@ OtherModules
Fusion: False
Module
Name: Text.Unicode.UChar
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Independent
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Independent
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -737,7 +737,7 @@ OtherModules
ObjectFile: bsearch.
Module
Name: System.File
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Windows
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Windows
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -751,7 +751,7 @@ OtherModules
Fusion: False
Module
Name: System.OSError
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Windows
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Windows
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -765,7 +765,7 @@ OtherModules
Fusion: False
Module
Name: System.Time
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Windows
Dir: {Application}\iTasks-SDK\Dependencies\clean-platform\src\libraries\OS-Windows
Compiler
NeverMemoryProfile: False
NeverTimeProfile: False
......@@ -781,7 +781,7 @@ OtherModules
Library: msvcrt.txt
Module
Name: System._WinBase
Dir: {Application}\iTasks-SDK\Dependencies\Platform\OS-Windows