Amazing how forgiving the older LC engines are...

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Amazing how forgiving the older LC engines are...

dunbarx--- via use-livecode
I just got bit by how forgiving older LC engines version are.

Migrating a stack from LC6.7.11 to LC9.5.1. There is a handle to perform
a "select all" on a particular list field where "select all" means
select all lines but the first. The code was essentially:

   put empty into tLineList
   repeat with i=2 to the number of lines in fld 1
     put i & cr after tLineList
   end repeat
   delete last char of tLineList
   set the hilitedLines of fld 1 to tLineList'

This throws an script execution error under LC9.0.5 or 9.5.1 when trying
to execute  the last line, but works perfectly well under LC6.7.11 and
earlier.

The problem, of course, is that the hilitedLines is supposed to be a
COMMA delimited list, not a CR delimited list. Even the LC6.7.11
Dictionary states comma delimited. And yet, LC6.7.11 and earlier happily
allowed and handled correctly wither comma or cr delimited lists for the
hilitedLines property.

Simple change of Cr to comma fixes the routine for LC9xx

I am not sure in what more recent LC versions this list flexibility went
away (7? 8? 9?) but I have mixed feelings that it did go away. On one
hand, I think the versatility of the older engine in forgiving and
working with bad syntax was amazing. On the other had, had they been
stricter, I would have discovered this bug long ago.





_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|

Re: Amazing how forgiving the older LC engines are...

dunbarx--- via use-livecode
Yup.....While upgrading from 7 to 8 and from 8 to 9 I had several "I can't
believe this code worked" moments.  I prefer an unforgiving interpreter.

thats why I fell in love with Rust and its ridiculously unforgiving
compiler.  Haven't had to use it yet, but look forward to it.

On Mon, Nov 11, 2019 at 9:01 AM Paul Dupuis via use-livecode <
[hidden email]> wrote:

> I just got bit by how forgiving older LC engines version are.
>
> Migrating a stack from LC6.7.11 to LC9.5.1. There is a handle to perform
> a "select all" on a particular list field where "select all" means
> select all lines but the first. The code was essentially:
>
>    put empty into tLineList
>    repeat with i=2 to the number of lines in fld 1
>      put i & cr after tLineList
>    end repeat
>    delete last char of tLineList
>    set the hilitedLines of fld 1 to tLineList'
>
> This throws an script execution error under LC9.0.5 or 9.5.1 when trying
> to execute  the last line, but works perfectly well under LC6.7.11 and
> earlier.
>
> The problem, of course, is that the hilitedLines is supposed to be a
> COMMA delimited list, not a CR delimited list. Even the LC6.7.11
> Dictionary states comma delimited. And yet, LC6.7.11 and earlier happily
> allowed and handled correctly wither comma or cr delimited lists for the
> hilitedLines property.
>
> Simple change of Cr to comma fixes the routine for LC9xx
>
> I am not sure in what more recent LC versions this list flexibility went
> away (7? 8? 9?) but I have mixed feelings that it did go away. On one
> hand, I think the versatility of the older engine in forgiving and
> working with bad syntax was amazing. On the other had, had they been
> stricter, I would have discovered this bug long ago.
>
>
>
>
>
> _______________________________________________
> use-livecode mailing list
> [hidden email]
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>


--
Tom Glod
Founder & Developer
MakeShyft R.D.A (www.makeshyft.com)
Office:226-706-9339
Mobile:226-706-9793
_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode