[Swift-devel] Re: Swift Error!

Michael Wilde wilde at mcs.anl.gov
Wed Oct 10 12:32:57 CDT 2007


Andrew, due to Swift's highly parallel nature, debugging is stil tricky.

Ben and Mihael may have other suggestions, but I used the debug function 
  (coded as "myapp") in the example I sent you, to print various 
variable values and to confirm that various functions were entered and 
exited.

Ive got a lot of notes to write up (and userguid text to suggest) 
related to this, but in the meantime we need to give you a clear 
understanding of how variables and expression evaluation works in swift.

In a nutshell:

- every statement in a function is evaluated in data-dependency order, 
not in source-code order
- variable instances can only be set once
- expressions, including function calls, that consume values wait until 
the value is set
- references to arrays as objects (ie by using one n a foreach) block 
until the array is set ("closed")
- arrays are closed only when they are returned as the result of a 
procedure (note: not "array members" = the entire array)
- print() does not currently wait for its arguments to close (it will 
soon: this is a deficiency)

(All - please correct/extend this as needed. I will try to write text 
and examples of each of these points for the userguide/tutorials but 
please dont wait for me if you get the urge).

Until you get the hang of this "data flow" model, writing even simple 
code can be tricky.

Whats worse is that we dont yet have the ability to a) include line 
numbers in errors once you are out of the swift parser) and b) its hard 
to tell what you are hanging on when the whole script hangs.

Thats why I urged you, and urge you again, Andrew, to start testing the 
program in small pieces, from the inside working outwards, so that you 
are building on known working code.

This gets quite easy once you develop a solid mental model of how swift 
behaves, but getting there takes a few days of experimentation (at least 
it did for me, and Im about 75% there ;)

I'll try to help you tomorrow, but others may be able to spot some 
problems in your source code.

- Mike


On 10/10/07 12:17 PM, andrewj at uchicago.edu wrote:
> On that note, is there anyway to grab more information in real
> time as to what is going on with swift?
> 
> de at mcs.anl.gov>, swiftdevel <swift-devel at ci.uchicago.edu>
>> none of those messgaes are errors in themselves - they're
> debugging 
>> messages about what is going on inside.
>>
>> Do you mean to report that it then hangs 'forever'?
>>
>> On Wed, 10 Oct 2007, andrewj at uchicago.edu wrote:
>>
>>> Hello all,
>>>
>>>   I am getting the following to happen when I try to run swift:
>>>
>>> [andrewj at terminable Swifty]$ swift -debug 10-10-07-CADWF.swift
>>> 10-10-07-CADWF.swift: source file is new. Recompiling.
>>> Validation of XML intermediate file was successful
>>> Using sites file:
>>> /home/andrewj/CADGrid/Swifty/vdsk-0.3/bin/../etc/sites.xml
>>> Using tc.data:
>>> /home/andrewj/CADGrid/Swifty/vdsk-0.3/bin/../etc/tc.data
>>> Swift v0.3 r1319 (modified locally)
>>>
>>> Swift v0.3 r1319 (modified locally)
>>>
>>> RunID: 20071010-1204-pvgabtv1
>>> RunID: 20071010-1204-pvgabtv1
>>> Waiting for org.griphyn.vdl.mapping.RootDataNode with no value
>>> at dataset=malFMatrix
>>> Waiting for org.griphyn.vdl.mapping.RootDataNode with no value
>>> at dataset=malFMatrix
>>> Waiting for org.griphyn.vdl.mapping.RootDataNode with no value
>>> at dataset=malFMatrix
>>> Waiting for org.griphyn.vdl.mapping.RootDataNode with no value
>>> at dataset=malFMatrix
>>> Waiting for org.griphyn.vdl.mapping.RootDataNode with no value
>>> at dataset=feature
>>> Waiting for org.griphyn.vdl.mapping.RootDataNode with no value
>>> at dataset=feature
>>> Waiting for org.griphyn.vdl.mapping.RootDataNode with no value
>>> at dataset=feature
>>>
>>> You guys are free to look at the swift code located in
>>> /home/andrewj/CADGrid/Swifty/ mounted on the ci disk.
>>>
>>> Suggestions?
>>>
>>> Thanks,
>>> Andrew
>>>
>>>
> 
> 



More information about the Swift-devel mailing list