libera/#shirakumo - IRC Chatlog
Search
7:28:04
Colleen
<shinmera> I can't just use the (relative) path because that might coincide with a path that's identical on another project's stuff :)
7:31:17
Colleen
<shinmera> one thing a 'compiler-output-operation' is supposed to be able to do is declare an effect of an artefact now being present after its operation is done (so others can depend on that artefact being present)
7:32:08
Colleen
<shinmera> this is where we run into the initial problem though of needing compiler information to designate an artefact path that won't clash, but we won't know that until we build.
7:34:20
SAL9000
What is the scope of the potential clashes? I'm assuming that within a project de-confliction is easy...
7:35:48
Colleen
<shinmera> You might want to build the same project under different compilers. Eg a C project with GCC/Clang/etc. maybe even under different versions of the same.
7:38:53
SAL9000
but making 'target' sane for different languages/systems/whatever is gonna be tricky
7:39:35
SAL9000
I'm assuming you can fully control the path of all outputs and side-effect outputs (e.g. .pdb) of the compilers
7:40:43
Colleen
<shinmera> I mean that's kinda what I have now: https://github.com/Shinmera/forge/blob/master/basic.lisp#L381
7:41:23
Colleen
<shinmera> the problematic line being 377, as it tries to execute this without the context of a properly initialised operation.
7:43:13
SAL9000
So you either need an "assumptions mode" where those methods are restricted in what they're allowed to do, or more lazy evaluation
7:44:14
SAL9000
assumptions mode = cache-directory et. al. must return something reasonable without accessing things that aren't initialized yet
7:46:44
Colleen
<shinmera> introduce a special registry called :compiler, which is only realised during plan execution.
7:49:59
Colleen
<shinmera> during planning we have to assume it's the same compiler anyway no matter what
8:20:13
Colleen
<shinmera> https://chat.tymoon.eu/data//shirakumo/0e3fe3337a7b33cc757054e137121e5f6ee17983a6207209b7c6369a787c4f00.png
9:24:01
Colleen
<shinmera> Still a lot to do :( https://github.com/Shinmera/forge/blob/master/plan.lisp#L215-L221