[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