I couldn't get this to work in all cases to replace spawn-process yet.
```
! works
{ "/bin/ls" "-al" } posix-spawn-args-with-path
! Broken on Linux64 for some reason
{
"/usr/bin/code"
"-g"
"-r"
"/home/erg/factor-master/basis/io/launcher/launcher.factor"
} posix-spawn-args-with-path
```
factorcode.org repo can get behind the github one due to #1862 and low RAM on the new factorcode.org server
Change strategy for calling git fetch to not include the branch name if we are on a detached HEAD
by ``output>array``, and fry with arrays.
We need to expand macros before doing the locals transform ``rewrite-closures`` and fry needs to happen in the locals pass because the locals pass touches the retainstack as part of the transform and we only want to do this once. We defer fry by making a <fryable> which rewrite-closures transforms.
Fixes things like the following that used to break because the locals
transform happened before fry.
::: bar ( a b -- a ) '[ |[ a | a _ + ] call ] call ;
Also we can use fry in case/cond now since macro-expansion happens
first.
Things like this work:
::: foo ( a b c -- a ) :> ( a b c ) c q{{ a b c a b + c _ }} ;
1 2 4 foo ...
{ 1 2 4 3 4 4 }
Triple colon will become colon soon.
Finally, there is a potential issue with macros changing the order of
fry underscore expansion since fry happens later. We need to rewrite fry
internally as 0_ 1_ 2_ so order is preserved everywhere in the expanded
macro.
This is to help debug win64.
Some interesting observations:
fails without any error:
factor.com -codeheap=74000
fails with VirtualAlloc error:
factor.com -codeheap=80000
The manifest is disabled for now, but once we fix the resolution we
should enable it.
to test:
nmake /f Nmakefile factor.exe.manifest
Right now the UI looks tiny if you compile for the factor.exe and
include the manifest.
Lastly, sorry for the WIP but it seems pretty harmless and has been
sitting in a branch for almost three years.