Hmm, may need to think about this.
We risk adding adhoc patches on adhoc patches and painting ourselves into a
corner.
Agree we should not add a new keyword just to emulate an obscure special case
that is not well understood or well handled by 'ignore'. So a modifier of
'ignore' would be better, as Tarquin suggests.
>extend ignore end 8 7 #or
>extend ignore 8 7 end
Not sure about the word 'end', as it will not always be evident which end of a
loop is the 'end’. Especially where there are loops within loops or beside
loops. Maybe 'force'. Not sure about that either, but the user rule of thumb
could be, if 'ignore' does not work, try 'ignore force'.
extend ignore force 8 7 #or
extend ignore 8 7 force
Maybe we should take time to think about it for a while. We have a tentative
solution right now, as Stacho has found, using the combination.
extend start 1
extend ignore 7 8
extend ignore 8 7
ie, if extend ignore <leg> does not work, try following it with extend ignore
<reversed leg>
Using Tarquin's example this gives a log like...
START 1@extendedloop
RIGHT 2@extendedloop
RIGHT 10@extendedloop
RIGHT 9@extendedloop
RIGHT 8@extendedloop #ie random branch taken as far as 8
BACK 9@extendedloop
BACK 10@extendedloop
BACK 2@extendedloop #step back to 2
RIGHT 3@extendedloop
RIGHT 4@extendedloop
RIGHT 5@extendedloop
RIGHT 6@extendedloop
RIGHT 7@extendedloop
RIGHT 11@extendedloop #at end branch 11…
BACK 7@extendedloop
BACK 6@extendedloop
BACK 5@extendedloop
BACK 4@extendedloop
BACK 3@extendedloop
BACK 2@extendedloop
BACK 1@extendedloop #step all the way back to 1
START 8@extendedloop #auto restart at 8
RIGHT 7@extendedloop #finish the last leg
done
And vise versa
extend start 1
extend ignore 8 7
extend ignore 7 8
START 1@extendedloop
RIGHT 2@extendedloop
RIGHT 10@extendedloop
RIGHT 9@extendedloop
RIGHT 8@extendedloop #ie random branch taken as far as 8
BACK 9@extendedloop
BACK 10@extendedloop
BACK 2@extendedloop #ie random branch taken as far as 8
RIGHT 3@extendedloop
RIGHT 4@extendedloop
RIGHT 5@extendedloop
RIGHT 6@extendedloop
RIGHT 7@extendedloop
RIGHT 11@extendedloop #at end branch 11…
BACK 7@extendedloop
BACK 6@extendedloop
BACK 5@extendedloop
BACK 4@extendedloop
BACK 3@extendedloop
BACK 2@extendedloop
BACK 1@extendedloop #step all the way back to 1
START 8@extendedloop#auto restart at 8
RIGHT 7@extendedloop #finish the last leg
done
It disturbs me that the sequence is exactly the same.
I agree with Tarquin, “it smells like there will be some unpredictable hidden
behaviours in there”.
A question Stacho.
Are extend statements processed in sequence they are written, or are they all
read by Therion before Therion chooses best order to process them (as it does
with survey data)?
I’m suspecting the latter.
Bruce
-----Original Message-----
From: Therion <[email protected]> On Behalf Of Tarquin Wilton-Jones via
Therion
Sent: Wednesday, 8 July 2020 02:42
To: [email protected]
Cc: Tarquin Wilton-Jones <[email protected]>
Subject: Re: [Therion] Revisiting Breaking extended elevations on specific
stations
> Well, there is one workaround. But to be honest, I have no idea why :/
>
> extend ignore 7 8
> extend ignore 8 7
Wow!
First thought is; that ... really shouldn't work, and it looks almost like a
bug.
Maybe there is logic though, if you look at those two statements in the
opposite order (which also works, by the way).
Therion proceeds along 1-2-10-9-8-7-11
"Therion, please ignore 8-7"
Therion breaks the survey at 8. Therion now goes:
10-9-8 8
/ /
1-2-3-4-5-6-7-11
"Therion, please ignore 7-8"
Therion breaks the survey at 7. It now has a floating 7-8 leg not connected to
anything. So it connects it to the 10-9-8 branch, and ends up with the desired
output.
So maybe this is trustworthy rather than a bug? But it hurts my head to read
it, and it smells like there will be some unpredictable hidden behaviours in
there.
> Something like:
>
> extend end 8 7
>
> ... would be definitely better. Is it OK to implement it like that?
I like that it will never clash with existing stuff. I don't like that it
introduces a new keyword instead of "ignore", that does the same thing as
"ignore". I would personally prefer it as a modifier rather than a keyword, for
consistency:
extend ignore end 8 7
extend ignore 8 7 end
But others may have stronger opinions.
_______________________________________________
Therion mailing list
<mailto:[email protected]> [email protected]
<https://mailman.speleo.sk/listinfo/therion>
https://mailman.speleo.sk/listinfo/therion
_______________________________________________
Therion mailing list
[email protected]
https://mailman.speleo.sk/listinfo/therion