tynet-lichat/shirakumo - IRC Chatlog
Search
7:31:16
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
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
Colleen
What is the scope of the potential clashes? I'm assuming that within a project de-confliction is easy...
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
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:54
Colleen
but making 'target' sane for different languages/systems/whatever is gonna be tricky
7:38:54
SAL9000
but making 'target' sane for different languages/systems/whatever is gonna be tricky
7:39:35
Colleen
I'm assuming you can fully control the path of all outputs and side-effect outputs (e.g. .pdb) of the compilers
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
shinmera
I mean that's kinda what I have now: https://github.com/Shinmera/forge/blob/master/basic.lisp#L381
7:41:22
shinmera
the problematic line being 377, as it tries to execute this without the context of a properly initialised operation.
7:43:13
Colleen
So you either need an "assumptions mode" where those methods are restricted in what they're allowed to do, or more lazy evaluation
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
Colleen
assumptions mode = cache-directory et. al. must return something reasonable without accessing things that aren't initialized yet
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
shinmera
introduce a special registry called :compiler, which is only realised during plan execution.
8:20:13
shinmera
https://chat.tymoon.eu/data//shirakumo/0e3fe3337a7b33cc757054e137121e5f6ee17983a6207209b7c6369a787c4f00.png
9:24:01
shinmera
Still a lot to do :( https://github.com/Shinmera/forge/blob/master/plan.lisp#L215-L221