The Project.create function were creating a separate unit in order to compute a target from the available image specification. It was also using Toplevel.eval for that, which computes all properties of an object. As a result, we had all expensive unit-based computations triggered twice per each project.
An ideal solution would be to get rid of this call, but, as an immediate remediation, we can just use the same compilation unit as for the main program and compute only the target slot.
The Project.create function were creating a separate unit in order to compute a target from the available image specification. It was also using Toplevel.eval for that, which computes all properties of an object. As a result, we had all expensive unit-based computations triggered twice per each project.
An ideal solution would be to get rid of this call, but, as an immediate remediation, we can just use the same compilation unit as for the main program and compute only the target slot.