Seems oriented part is built, remains to start the main clock, clean up and remove the OGGCA and the snarks ... and concentrate on transition function encoding forced modifications to the gene.
Hmmm, respacing the gene could take a while ... I should probably add separators to the timedelta files denoting possible places for changes.
In OGGCA portions the gap increase means we should crowl against the simkin gliders ... the non OGGCA portions are much more easier.
The OGGCA destroyals are critical considering the count of escaping gliders, another critical section would be OGGCA program interrupted by created speboe on the input path ... the allocation using splitters with seeds rather by synchronized ships is easier, as it creates less constraints.
Let us see which portions of the DNA would be affected.
First task would probably be graphical representation of requirements caused by the transition function (to be added to gen.mc).
Hmm the main clock seed expected build from NW rather from SE ... there will be slight change in it (and its salvo).
... 3 synchronization problems at the same time ... when to send OGGCA destroyal, when snark destroyal and when clock start ...
So OGGCA cleanup for case without blinker on right recomputed (just reduction of debries before the destroyal) ...
Hmmm, I have to stop OGGCA while allocating NNWW and NW, unfortunately the used ott boats are in the way of OGGCA stopping, so the boats should be moved further and another glider lane used for the allocation (after OGGCA stop passes around).
0E0P constructions
Re: 0E0P constructions
Seems construction is finished, clocks are synchronized.
The only problem remains ... the transition function (and state transitions).
Checking the maximal signal 7 passing through neighbors DNA ...
there is no problem at signal crossing to SW, there is collision of 4th glider on path to NW with NW DNA
... spacing in DNA should be slightly altered there. There are no colisions on the paths to SE or NE neighbors.
So I have to generate graphical map of transition function requirements, and modify SimkinECCA.py to preserve comments from the source code to the result ... to allow easier localisation of problems ... (and solutions).
Actually the ONWWW probably requires some changes ... current realisation seems cuts from the 1024 ticks too small portion to allow 7 gliders to be present ... yes 509 consecutive glider positions can hold at most 6 gliders (in sc90 stream). There are 7 forbidden ticks before the portion opening and 63 forbidden ticks after its closing … giving us 954 of 1024 glider positions to be split to in/out portions. 589/365 looks like a reasonable split.
... it was proposal with variable long boat 180 ott position to decide the closing time (mod 1024) ... we need at least 541 consecutive glider positions so at least 4 FD shift, but let us plan the spacing first (we probably prefere gaps of size about 96 corresponding to 9 FD shift ...) and do the change at the end.
Seems a lot of the transition function is currently coded by DNA part waiting for 0hd glider to destroy the snark at the end of the oriented construction. There definitely cannot be gliders added to the DNA. So the transition function reading window should be shifted somewhere else.
Hmmm, I have not published snark conversion by -8hd glider to -13hd glider ... I could use this (and conversion by -13hd glider to nothing) instead of conversion to 0hd glider and 0hd to nothing. This would allow me to continue sending gliders ... .
If we make figure eight at correct lane behind the second snark (before building the snark?), we can use it as eater of %8 well timed gliders and destroy it cleanly by last glider ... this would allow us to encode transition function at this critical portion.
Codding in DNA portion before the second snark destroyal would not be that problematic, we can add almost arbitrary delay to OGGCA destroyal, (the OSSSE could me modified latter as well) we can let escape more gliders if required. (We can plan 7 OGGCA gliders per 0/7 state and use 7 single OGGCA glider anihilations in used portion) to code state 7 and 2*2+3 glider anihilations before the used portion to encode state 0 (using -> pond -> ship->)
The transition function encodding uses almost 1/4 of the DNA length (the distance between portions encoding 7777 and 0004), there are 15 portions encoding transitions from 07 to 0123456 and 511 portions encodding from 0123456 to 07, ideally we want to make these 511 portions to encode selectably (0/7).
We can delay the transition function DNA position by 1/8 DNA length by switching order of block boat on central clock output. Adding K gliders absorber after last semisnark after countdown clock would delay transition function by K/32 DNA length, but that would require repslmaking the most complicated build block. We can change the state of first semisnark after the main clock and change block before the boat to a 2 glider absorber what would shift transition function DNA by another 1/8 DNA length ... this would put it to the start of the shell build, what is probably the most flexible solution. Yep seems it would be "just" after ignition of the second fuse of the doublestretching crab. There is definitely a lot of flexibility there.
Seems it is solvable but there is still a lot of work to do.
OK, I have pslmaked main clock gun neighbourhood and ONWWW part with longboat shifted. I will replace corresponding portions of the recipe ... .
Meanwhile I made the graphic representation of the transition function requirements, I have added comments to gen.txt (timedeltas) with positions in the DNA in octa and I have changed the simkinECCA.py to include comments in output. I have recompiled all the sources ... and now there is some problem in shell construction (wrong synchronization around SSSE interuption of EEEE construction) ... I will be looking for the differences ...
There is a small complication in "looking for differences" as the compilation is "nondeterministic" ... there are often alternative recipes of the same length and there are hidden factors deciding which variant it choses ... so not all changes causes the problem ...
Seems when I was finishing the kernel openning changes to the shell, I have forgot manual splitting of a compiled file ... and I worked with the old version ... not corresponding to the source code ... It would be better to newly resync the SSSE interuption then returning to the old source code.
The only problem remains ... the transition function (and state transitions).
Checking the maximal signal 7 passing through neighbors DNA ...
there is no problem at signal crossing to SW, there is collision of 4th glider on path to NW with NW DNA
So I have to generate graphical map of transition function requirements, and modify SimkinECCA.py to preserve comments from the source code to the result ... to allow easier localisation of problems ... (and solutions).
Actually the ONWWW probably requires some changes ... current realisation seems cuts from the 1024 ticks too small portion to allow 7 gliders to be present ... yes 509 consecutive glider positions can hold at most 6 gliders (in sc90 stream). There are 7 forbidden ticks before the portion opening and 63 forbidden ticks after its closing … giving us 954 of 1024 glider positions to be split to in/out portions. 589/365 looks like a reasonable split.
... it was proposal with variable long boat 180 ott position to decide the closing time (mod 1024) ... we need at least 541 consecutive glider positions so at least 4 FD shift, but let us plan the spacing first (we probably prefere gaps of size about 96 corresponding to 9 FD shift ...) and do the change at the end.
Seems a lot of the transition function is currently coded by DNA part waiting for 0hd glider to destroy the snark at the end of the oriented construction. There definitely cannot be gliders added to the DNA. So the transition function reading window should be shifted somewhere else.
Hmmm, I have not published snark conversion by -8hd glider to -13hd glider ... I could use this (and conversion by -13hd glider to nothing) instead of conversion to 0hd glider and 0hd to nothing. This would allow me to continue sending gliders ... .
If we make figure eight at correct lane behind the second snark (before building the snark?), we can use it as eater of %8 well timed gliders and destroy it cleanly by last glider ... this would allow us to encode transition function at this critical portion.
Codding in DNA portion before the second snark destroyal would not be that problematic, we can add almost arbitrary delay to OGGCA destroyal, (the OSSSE could me modified latter as well) we can let escape more gliders if required. (We can plan 7 OGGCA gliders per 0/7 state and use 7 single OGGCA glider anihilations in used portion) to code state 7 and 2*2+3 glider anihilations before the used portion to encode state 0 (using -> pond -> ship->)
The transition function encodding uses almost 1/4 of the DNA length (the distance between portions encoding 7777 and 0004), there are 15 portions encoding transitions from 07 to 0123456 and 511 portions encodding from 0123456 to 07, ideally we want to make these 511 portions to encode selectably (0/7).
We can delay the transition function DNA position by 1/8 DNA length by switching order of block boat on central clock output. Adding K gliders absorber after last semisnark after countdown clock would delay transition function by K/32 DNA length, but that would require repslmaking the most complicated build block. We can change the state of first semisnark after the main clock and change block before the boat to a 2 glider absorber what would shift transition function DNA by another 1/8 DNA length ... this would put it to the start of the shell build, what is probably the most flexible solution. Yep seems it would be "just" after ignition of the second fuse of the doublestretching crab. There is definitely a lot of flexibility there.
Seems it is solvable but there is still a lot of work to do.
OK, I have pslmaked main clock gun neighbourhood and ONWWW part with longboat shifted. I will replace corresponding portions of the recipe ... .
Meanwhile I made the graphic representation of the transition function requirements, I have added comments to gen.txt (timedeltas) with positions in the DNA in octa and I have changed the simkinECCA.py to include comments in output. I have recompiled all the sources ... and now there is some problem in shell construction (wrong synchronization around SSSE interuption of EEEE construction) ... I will be looking for the differences ...
There is a small complication in "looking for differences" as the compilation is "nondeterministic" ... there are often alternative recipes of the same length and there are hidden factors deciding which variant it choses ... so not all changes causes the problem ...
Seems when I was finishing the kernel openning changes to the shell, I have forgot manual splitting of a compiled file ... and I worked with the old version ... not corresponding to the source code ... It would be better to newly resync the SSSE interuption then returning to the old source code.