That is definitely true. It is possible to make pd-gui execute line-by-line by
setting the buffering on the socket to be per-newline, then reintroducing the
logic that used to be in the C code. But I think its faster to have Tcl parse,
compile, and execute the code in larger blocks, but I don't have any data to
back that up.
.hc
On Dec 27, 2011, at 1:37 PM, Miller Puckette wrote:
> I believe the difference between 0.42 and 0.43 is that the C code in 0.42
> actually spat each 'line' of TCL, separately, to the interpreter, whereas
> in 0.43 entire batches of TCL script get fed to the interpreter as a block.
>
> The 0.42 code wasn't airtight (checked for newlines at which {'s were
> balanced with }'s - this happened to work for all the TCL that Pd generated,
> but one could construct valid tcl code that gave false positives.) So I'm
> not in favor of 'fixing' 0.43 to work like 0.42 in this aspect. But I sure
> would like to be able to tell the interpreter to bull through if any
> individual
> statement failed - it won't fix any bugs but could make it less catastrophic
> when they manifest themselves.
>
> cheers
> Miller
>
>>
>> The 'catch' is already in place in Pd 0.43 in pd_connect::pd_readsocket, and
>> that is indeed what is printing out the Tcl error dump that started this
>> discussion.
>>
>> As for whether pd-gui stops working after an error or not, I think this is a
>> behavior of the Tcl interpreter, not Pd 0.43 or Pd 0.42. In both Pd 0.42
>> and 0.43, fatal errors stop the Tcl interpreter. Try sending a message with
>> "{" in it. In both Pd 0.42 and 0.43, the Tcl interpreter will print an
>> error message for non-fatal errors and then continue to execute the next
>> commands.
>>
>> About the bug report, that particular bug report shows a bug where Tcl
>> commands are being split in the middle of the line, causing incomplete
>> commands to be executed. The Tcl error dump that Cyrille posted in this
>> thread is not the same error at all. Cyrille's error shows a complete Tcl
>> command, but the ".x235b3d0.c "canvas does not exist. So Cyrille's error is
>> like the errors that are triggered by the christchurch GOP that were fixed
>> for 0.43-1test7.
>>
>> On Sat, Dec 24, 2011 at 11:08:54PM +0100, cyrille henry wrote:
>>> when starting a patch using few GOP, i've got :
>>> (Tcl) INVALID COMMAND NAME: invalid command name ".x235b3d0.c"
>>> while executing
>>> ".x235b3d0.c create rectangle 610 115 710 215 -tags
>>> 234f0601 -fill grey"
>>> ("uplevel" body line 1)
>>> invoked from within
>>> "uplevel #0 $cmd_from_pd"
>>
>> .hc
>>
>>
>>
>> ----------------------------------------------------------------------------
>>
>> Access to computers should be unlimited and total. - the hacker ethic
>>
>>
----------------------------------------------------------------------------
Computer science is no more related to the computer than astronomy is related
to the telescope. -Edsger Dykstra
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list