We are planning to upgrade GitLab to the latest version this Friday morning. Expect some downtime!

Commit cf856b46 authored by Mart Lubbers's avatar Mart Lubbers

rework to match the style and be more os independent

parent e6518ebe
Pipeline #20994 passed with stage
in 56 seconds
......@@ -833,18 +833,18 @@ step intr (DLink ds=:{ok, newpaths, fileinfo, libsinfo, modpaths, abccache, proj
// runtime objects and dynamic libs
# stdl = Concat sys_libs (standardStaticLibraries tp lo.method)
# stdo = Concat sys_objs (standardObjectFiles ao.stack_traces ao.profiling tp use_64_bit_processor)
# ((stdoOk,ofiles,abcPathsCache), ps)
# (stdoOk,ofiles,abcPathsCache, ps)
= case ao.standard_rte of
True -> accFiles (AccTuple4 (GetPathNames (Map (\x->("", x)) stdo) Nil srcpaths abcPathsCache)) ps
False -> ((True,Nil,abcPathsCache), ps)
True -> GetPathNames (Map (\x->("", x)) stdo) Nil srcpaths abcPathsCache ps
False -> (True,Nil,abcPathsCache, ps)
| not stdoOk
# line = Level3 ["Link error: File: '" +++ (Head ofiles) +++ "' not found."]
# ps = showInfo line ps
= continue False newpaths False fileinfo libsinfo modpaths project intr (abccache, ps)
# ((stdlOk,lfiles,abcPathsCache), ps)
# (stdlOk,lfiles,abcPathsCache, ps)
= case ao.standard_rte of
True -> accFiles (AccTuple4 (GetPathNames (Map (\x->("", x)) stdl) Nil srcpaths abcPathsCache)) ps
False -> ((True,Nil,abcPathsCache), ps)
True -> GetPathNames (Map (\x->("", x)) stdl) Nil srcpaths abcPathsCache ps
False -> (True,Nil,abcPathsCache, ps)
| not stdlOk
# line = Level3 ["Link error: File: '" +++ (Head lfiles) +++ "' not found."]
# ps = showInfo line ps
......@@ -870,12 +870,12 @@ step intr (DLink ds=:{ok, newpaths, fileinfo, libsinfo, modpaths, abccache, proj
// module imported objects and dynamic libs
# (objs, libs) = PR_GetABCLinkInfo project
# linkObjFileNames = Map (\(d, a)->(d, append_object_file_extension_if_dot_at_end tp use_64_bit_processor a)) objs
# ((objPathsOk,ofiles,abcPathsCache), ps)
= accFiles (AccTuple4 (GetPathNames linkObjFileNames ofiles srcpaths abcPathsCache)) ps
# ((_,ofiles`,abcPathsCache), ps)
= accFiles (AccTuple4 (GetPathNames /*abcLinkInfo.*/linkObjFileNames ofiles` srcpaths abcPathsCache)) ps
# ((libPathsOk,lfiles,abcPathsCache), ps)
= accFiles (AccTuple4 (GetPathNames libs lfiles srcpaths abcPathsCache)) ps
# (objPathsOk,ofiles,abcPathsCache, ps)
= GetPathNames linkObjFileNames ofiles srcpaths abcPathsCache ps
# (_,ofiles`,abcPathsCache, ps)
= GetPathNames /*abcLinkInfo.*/linkObjFileNames ofiles` srcpaths abcPathsCache ps
# (libPathsOk,lfiles,abcPathsCache, ps)
= GetPathNames libs lfiles srcpaths abcPathsCache ps
| not objPathsOk
# line = Level3 ["Link error: File: '" +++ (Head ofiles) +++ "' not found."]
# ps = showInfo line ps
......@@ -1598,23 +1598,17 @@ CheckExecOutOfDate gen execpath fileinfo project ps
= (False,ps)
//-- dircache functions
GetPathNames :: !(List (String, String)) !(List String) !(List String) !*DirCache !*Files -> (.Bool,List String,!*DirCache, !*Files)
GetPathNames Nil acc srcpaths cache files
= (True, acc, cache, files)
GetPathNames ((mod, fn):!fns) acc srcpaths cache files
GetPathNames :: !(List (String, String)) !(List String) !(List String) !*DirCache !*GeneralSt -> (.Bool,List String,!*DirCache, !*GeneralSt)
GetPathNames Nil acc srcpaths cache ps
= (True, acc, cache, ps)
GetPathNames ((mod, fn):!fns) acc srcpaths cache ps
# (ok,pn,_,cache) = DC_Search fn cache
| ok
= GetPathNames fns (pn +++ DirSeparatorString +++ fn :! acc) srcpaths cache files
# ((ok, pn), files) = FindHModule (dropLastComponent mod (size mod - 2)) ("/Clean System Files/" +++ fn) srcpaths files
= GetPathNames fns (pn +++ DirSeparatorString +++ fn :! acc) srcpaths cache ps
# ((ok, pn), ps) = accFiles (FindHModule mod (DirSeparatorString+++SystemDir+++DirSeparatorString+++fn) srcpaths) ps
| ok
= GetPathNames fns (pn :! acc) srcpaths cache files
= (False, (fn :! Nil), cache, files)
where
dropLastComponent :: !String !Int -> !String
dropLastComponent s 0 = s
dropLastComponent s i
| s.[i] == '.' = s % (0, i-1)
= dropLastComponent s (i - 1)
= GetPathNames fns (pn :! acc) srcpaths cache ps
= (False, (fn :! Nil), cache, ps)
// Lookup Module Paths in Directory Cache
LookupModulePaths :: !(List .String) !*DirCache !*Files -> (Bool,.[!ModuleDirAndName],*DirCache,!*Files);
......
......@@ -750,7 +750,17 @@ PR_GetABCLinkInfo project=:{inflist}
# allLinkInfoRecords = map toRecord (StrictListToList inflist);
= foldl mergeTwoRecords emptyRecord allLinkInfoRecords;
where
toRecord {InfListItem | mn,info={abcLinkInfo}} = (Map (\x->(mn, x)) abcLinkInfo.linkObjFileNames ,Map (\x->(mn, x)) abcLinkInfo.linkLibraryNames)
toRecord {InfListItem | mn,info={abcLinkInfo}} =
(Map mkHierarchical abcLinkInfo.linkObjFileNames
,Map mkHierarchical abcLinkInfo.linkLibraryNames)
where
mkHierarchical file = (removeLastComponent mn (size mn - 2), file)
removeLastComponent s 0 = ""
removeLastComponent s i
| s.[i] == '.' = s % (0, i-1)
= removeLastComponent s (i-1)
mergeTwoRecords (objs, libs) (cobjs, clibs) = (UnionList objs cobjs, UnionList libs clibs)
emptyRecord = (Nil, Nil);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment