1. Pjotr Kourzanov
  2. LIME

Commits

Pjotr Kourzanov  committed 0121b13

linked to SVN repos on SF.net

  • Participants
  • Parent commits 20258c7
  • Branches combined-opensource

Comments (0)

Files changed (208)

File .hgignore

View file
 
 # Automatically generated by `hgimportsvn`
 syntax:glob
-.svn
+#.svn
 .hgsvn
 
 # These lines are suggested according to the svn:ignore property

File .svn/all-wcprops

View file
+K 25
+svn:wc:ra_dav:version-url
+V 39
+/svnroot/sub-lime/!svn/ver/14/LIME-core
+END

File .svn/entries

View file
+9
+
+dir
+16
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime/LIME-core
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime
+
+
+
+2008-10-29T13:43:47.277300Z
+14
+pjotr
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+d6f20ea8-f736-4af6-a003-26290cddb016
+
+dom
+dir
+
+tex
+dir
+
+doc
+dir
+
+lib
+dir
+
+bin
+dir
+
+inc
+dir
+

File .svn/format

View file
+9

File bin/.svn/all-wcprops

View file
+K 25
+svn:wc:ra_dav:version-url
+V 43
+/svnroot/sub-lime/!svn/ver/14/LIME-core/bin
+END
+mk2dot
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/mk2dot
+END
+typeq
+K 25
+svn:wc:ra_dav:version-url
+V 48
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/typeq
+END
+igawk
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svnroot/sub-lime/!svn/ver/17/LIME-core/bin/igawk
+END
+fwdecl
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/fwdecl
+END
+en2xml
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/en2xml
+END
+imp2hdr
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/imp2hdr
+END
+nvp2cpp
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/nvp2cpp
+END
+gxfdump
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/gxfdump
+END
+maps-parser
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svnroot/sub-lime/!svn/ver/14/LIME-core/bin/maps-parser
+END
+uniq
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/uniq
+END
+xmlnorm
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/xmlnorm
+END
+cparse
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svnroot/sub-lime/!svn/ver/3/LIME-core/bin/cparse
+END

File bin/.svn/entries

View file
+9
+
+dir
+16
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime/LIME-core/bin
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime
+
+
+
+2008-10-29T13:43:47.277300Z
+14
+pjotr
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+d6f20ea8-f736-4af6-a003-26290cddb016
+
+mk2dot
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+typeq
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+igawk
+file
+17
+
+
+
+2008-10-29T20:29:44.000000Z
+7b32390e0226cc3fa054e23281ed033a
+2008-10-29T20:58:39.923666Z
+17
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3087
+
+fwdecl
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+en2xml
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+imp2hdr
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+nvp2cpp
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+gxfdump
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+maps-parser
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-29T13:43:47.277300Z
+14
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+uniq
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+xmlnorm
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+
+cparse
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+152bd1d18ed8a8772dc3de02be221850
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188
+

File bin/.svn/format

View file
+9

File bin/.svn/prop-base/cparse.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/en2xml.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/fwdecl.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/gxfdump.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/igawk.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/imp2hdr.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/maps-parser.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/mk2dot.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/nvp2cpp.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/typeq.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/uniq.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/prop-base/xmlnorm.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File bin/.svn/text-base/cparse.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/en2xml.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/fwdecl.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/gxfdump.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/igawk.svn-base

View file
+#! /bin/sh
+# igawk --- like gawk but do @include processing
+#
+# Arnold Robbins, arnold@gnu.org, Public Domain
+# July 1993
+
+if [ "$1" = debug ]
+then
+    set -x
+    shift
+fi
+
+# A literal newline, so that program text is formmatted correctly
+n='
+'
+
+# Initialize variables to empty
+program=
+opts=
+
+while [ $# -ne 0 ] # loop over arguments
+do
+    case $1 in
+    --)     shift; break;;
+
+    -W)     shift
+            # The ${x?'message here'} construct prints a
+            # diagnostic if $x is the null string
+            set -- -W"${@?'missing operand'}"
+            continue;;
+
+    -[vF])  opts="$opts $1 '${2?'missing operand'}'"
+            shift;;
+
+    -[vF]*) opts="$opts '$1'" ;;
+
+    -f)     program="$program$n@include ${2?'missing operand'}"
+            shift;;
+
+    -f*)    f=`expr "$1" : '-f\(.*\)'`
+            program="$program$n@include $f";;
+
+    -[W-]file=*)
+            f=`expr "$1" : '-.file=\(.*\)'`
+            program="$program$n@include $f";;
+
+    -[W-]file)
+            program="$program$n@include ${2?'missing operand'}"
+            shift;;
+
+    -[W-]source=*)
+            t=`expr "$1" : '-.source=\(.*\)'`
+            program="$program$n$t";;
+
+    -[W-]source)
+            program="$program$n${2?'missing operand'}"
+            shift;;
+
+    -[W-]version)
+            echo igawk: version 2.0 1>&2
+            gawk --version
+            exit 0 ;;
+
+    -[W-]*) opts="$opts '$1'" ;;
+
+    *)      break;;
+    esac
+    shift
+done
+
+if [ -z "$program" ]
+then
+     program=${1?'missing program'}
+     shift
+fi
+
+# At this point, `program' has the program.
+expand_prog='
+
+function pathto(file,    i, t, junk)
+{
+    if (index(file, "/") != 0)
+        return file
+
+    for (i = 1; i <= ndirs; i++) {
+        t = (pathlist[i] "/" file)
+        if ((getline junk < t) > 0) {
+            # found it
+            close(t)
+            return t
+        }
+    }
+    return ""
+}
+BEGIN {
+    path = ENVIRON["AWKPATH"]
+    ndirs = split(path, pathlist, ":")
+    for (i = 1; i <= ndirs; i++) {
+        if (pathlist[i] == "")
+            pathlist[i] = "."
+    }
+    stackptr = 0
+    input[stackptr] = ARGV[1] # ARGV[1] is first file
+
+    for (; stackptr >= 0; stackptr--) {
+        while ((getline < input[stackptr]) > 0) {
+            if (tolower($1) != "@include") {
+                print
+                continue
+            }
+            fpath = pathto($2)
+            if (fpath == "") {
+                printf("igawk:%s:%d: cannot find %s\n",
+                    input[stackptr], FNR, $2) > "/dev/stderr"
+                continue
+            }
+            if (! (fpath in processed)) {
+                processed[fpath] = input[stackptr]
+                input[++stackptr] = fpath  # push onto stack
+            } else
+                print $2, "included in", input[stackptr],
+                    "already included in",
+                    processed[fpath] > "/dev/null"
+        }
+        close(input[stackptr])
+    }
+}'  # close quote ends `expand_prog' variable
+
+processed_program=`gawk -- "$expand_prog" /dev/stdin <<EOF
+$program
+EOF
+`
+eval gawk $opts -- '"$processed_program"' '"$@"'

File bin/.svn/text-base/imp2hdr.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/maps-parser.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/mk2dot.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/nvp2cpp.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/typeq.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/uniq.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File bin/.svn/text-base/xmlnorm.svn-base

View file
+#!/bin/sh
+stem=`basename $0`
+base=`dirname $0`
+[ -z "$LIME" ] && LIME=$base/..
+[ -z "$iawk" ] && iawk=igawk
+AWKLIB=$LIME/lib
+export AWKPATH=$AWKLIB:$AWKPATH
+$iawk -f $AWKLIB/$stem.awk $@
+

File doc/.svn/all-wcprops

View file
+K 25
+svn:wc:ra_dav:version-url
+V 43
+/svnroot/sub-lime/!svn/ver/13/LIME-core/doc
+END
+paper.pdf
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svnroot/sub-lime/!svn/ver/13/LIME-core/doc/paper.pdf
+END
+Description
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svnroot/sub-lime/!svn/ver/3/LIME-core/doc/Description
+END
+TODO
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svnroot/sub-lime/!svn/ver/3/LIME-core/doc/TODO
+END
+C-Semantics
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svnroot/sub-lime/!svn/ver/3/LIME-core/doc/C-Semantics
+END

File doc/.svn/entries

View file
+9
+
+dir
+16
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime/LIME-core/doc
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime
+
+
+
+2008-10-27T16:23:36.707688Z
+13
+pjotr
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+d6f20ea8-f736-4af6-a003-26290cddb016
+
+paper.pdf
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+3366f7e99cc6b3a5bddb51e1517e18ec
+2008-10-27T16:23:36.707688Z
+13
+pjotr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+394724
+
+Description
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+38650af557cd74e750c44a85148ba9fa
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1120
+
+TODO
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+05d56e4df7e0ee9f32ec2126577d761d
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+476
+
+C-Semantics
+file
+
+
+
+
+2008-10-29T19:44:36.000000Z
+e0b22b7efb006ba8432326c04065ceac
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7208
+

File doc/.svn/format

View file
+9

File doc/.svn/text-base/C-Semantics.svn-base

View file
+Meaning of type-qualifiers and static storage class in LIME:
+
+1. const type array[size]
+ 
+   (standard C) regular input port. Without const, its a regular
+   output port.
+
+2. volatile type array[size]
+
+   (standard C) device I/O port. Otherwise its a regular port.
+   Must be used when the other side is an asynchronous entity
+   such as I/O device or an interrupt
+
+These only work for the first dimension of the array.
+
+3. type array[restrict size]
+
+   (standard C99) non-aliased pointer. Otherwise, it can be aliased by
+   other ports in the same function. All "state" ports must be unrestricted.
+   All other shared ports must specify restrict.
+
+
+1, 2, 3, 4, 6 can be freely combined
+-------------------------------------------------------------------------------------------
+
+4. type array[const size]
+
+   array itself is const (elements are not const). It can not be re-assigned
+   withing this function. This should probably be the default semantic...
+
+     One use for it could be static or dynamic multi-ports, specified via a
+   multi-dimensional array. The const specifier is used then to distinguish 
+   a multi-port from a single ports transporting a multi-dimensional array:
+
+   type port[const nports][size] declares a multi-port with nports each having
+                                 the same type and the same size.
+
+   type port[size1][size2] on the other hand declares a single port transporting
+                           a multi-dimentsional array.
+
+   According to C the array pointer can not be reassigned, but that's good;-)
+
+   Also works for static multi-ports:
+
+   fun(type array[const 5][size]) declares 5 ports each having the same type and 
+                                  the same size, named array_1, array_2, etc...
+
+
+5. type array[volatile size]
+
+   array itself is volatile (elements are not volatile). accesses through it go
+   directly to memory. Elements, however, can still be cached in registers...
+
+   Can be useful when array pointer is asynchronously changing
+   while function is executing, which can not happen, since the
+   function gets its own copy...
+
+6. type array[static size]
+
+   array is non-null and contains at least that many elements, and possibly more.
+
+   1. Could be used to specify relaxed type matching semantics, where the array (of
+      size 1) can have different, but overlapping types at the consumer and the
+      producer's sides.
+
+   2. Also, can be used to silence the warning when the sizes of types match, but the
+      exact type name doesn't, irrespective of the array size.
+
+   3. When the array size is not 1, and the types have different sizes then this can be 
+      used to trigger insertion of data realignment operations.
+
+
+-------------------------------------------------------------------------------------------
+
+7. struct sel { 
+	enum { E1, E2 } sel; 
+	union { type1 array1[size1]; 
+		type2 array2[size2];
+	} ports;
+   } array[nsel]
+
+   specifies a selective multi-port, i.e., a (de-)multiplexor, where a function
+   can select the port to be activated (either of array1 or array2). The selection
+   process can happen nsel times, where nsel must not be larger that the number 
+   of possibilities (2 in this case).
+
+   can be combined with other multi-ports by specifying:
+
+   struct sel array[const nports][nsel]
+
+8. union cast {
+	type1 array1[size1];
+	type2 array2[size2];
+    } array[const nports]
+
+    specifies a multi-cast port, where a function can once initialize (presumably
+    the largest object) which would then be automatically multi-casted to ports
+    array1 and array2. 
+
+    a) The meaning of nports in this case is unclear. Should always be 1 I think...
+    Alternatively, it could indicate the number of such multi-cast ports...
+
+    b) This has interesting implications for the case of: const union cast array[1].
+    The implementation should then ensure that all producers produce the same value...
+
+    It is thus a mechanism to do a MAP/REDUCE operation, with the operation of == by 
+    default for the reading side. Writing side is a simple multicast.
+
+    HOW TO SPECIFY OTHER OPS???
+
+    Combining a) and b), we could say that every array[i] should get the same value
+    from those ports. The real ports (array1 and array2) should be indexed then:
+    array1_1, array1_2,.... array2_1, array2_2... So, array1_1==array2_2, 
+    array1_2==array_2_2 etc...
+
+    This can also be used to relax type checking the producer is under control (can
+    be given this type).
+
+9. fun(struct {
+	type1 array1[size1];
+	type2 array2[size2];
+    } array[const nports])
+
+    specifies a multi-port having nports*size1 ports of type1, nports*size2 ports of
+    type2. 
+
+    When size is 1 it is basically equivalent to:
+
+      fun(type1 array1[size1], type2 array2[size2])
+
+
+10. fun(int size, type array[size])
+ 
+    (Standard C) specifies a VLA parameter
+
+11. fun(enum {ZERO=0, ONE=1} size, type array[size])
+
+    (Standard C) specifies a VLA where size can be either 0 or 1
+
+-------------------------------------------------------------------------------------------
+
+. type array[]
+
+   undefined size, leads to an incomplete type...
+
+   Probably not useful at all.
+
+. type array[*]
+
+   unknown size, presumed variable. Only possible in prototypes...
+
+   Probably not useful at all.
+
+
+===========================================================================================
+
+(0) Fixed ports:
+
+Fixed-rate: 			fun(int port[SIZE])
+
+1. Flexible ports:
+
+Variable-rate:	 		fun(int size, int port[size])
+  Optional:			fun(enum {Z=0,C=1} size, int port[size])
+  Enumerated:			fun(enum {C1=1,C2=2} size, int port[size])
+  Ranged:			fun(enum {R_START=11, R_END=21} size, int port[size])
+
+2. Multi-dimensional ports:
+
+Fixed-rate:			fun(int port[SIZE1][SIZE2])
+	... (see 1) ...
+
+3. Multi-ports:
+
+Fixed-rate:			fun(int port[const NPORTS][SIZE])
+	Optional...
+Dynamic fixed-rate:		fun(int nports, int port[const nports][SIZE])
+	Optional...
+Variable-rate:			fun(int size, int port[const NPORTS][size])
+	Optional...
+Dynamic variable-rate:		fun(int nports, int size, int port[const nports][size]) 
+	... all combinations from above ...
+
+If sizes or types differ, a list of normal ports should be used, or, these can be packed 
+into a struct:
+
+4. Grouped multi-ports: fun(struct { int ibuf[ISIZE]; float fbuf[FSIZE]; } port[const NPORTS])
+
+   All tricks from 1, 2 and 3 can be applied...
+
+   A grouped multi-port cardinality must always be "const" as it always specifies NPORTS
+
+(5) Selective multi-ports: fun(struct { enum {S1, S2} sel; union { int b1[SIZE1]; int b2[SIZE2]; } buf; } port[NSEL])
+
+   A grouped multi-port cardinality must not be "const" as it always specifies NSEL, however, it can be
+   combined with 3 by specifying port[const NPORTS][NSEL].
+
+6. Map/Reduce multi-ports: fun(union { int b1[SIZE1]; int b2[SIZE2]; } port[const NPORTS])
+
+   Reduction operation OP is by default "==", otherwise it can be specified in the DSL XML. The semantic is to
+   apply the OP to the contents of the union and "this" data, and store it in the union, if the union is already
+   "initialized". Otherwise, just initialize it.
+
+   A map/reduce multi-port cardinality must always be "const" as it always specifies NPORTS.

File doc/.svn/text-base/Description.svn-base

View file
+  LIME (Less-is-More) is a programming environment based on
+C. Internally, it uses XML technology to describe tasks and their
+dependencies. Externally, it offers the ANSI C99 programming
+interface as well as a set of visually-oriented interfaces. 
+
+  Its purpose is to simplify the development of parallel/concurrent
+applications in a variety of settings, including low-level
+platforms such as POSIX Threads or NVidia CUDA, or higher-level
+platforms such as MPI/PVM and OpenMP.
+
+  One goal is to achieve a high level of integration with an already
+existing standard (C99) without addition of bogus features such
+as API calls, new keywords or an abundance of new types (hence
+"Less"). Another goal is to achieve more expressiveness such that
+all common parallel/concurrent constucts are expressed naturally by
+C99 functions, augmented by an XML-based description of their inter-
+and intra-dependencies (hence "More"). The focus of LIME are multi-
+and many-cores, including e.g., SMP and GPU systems. LIME only
+uses standard UNIX tooling such as GNU awk, sed, gcc and make,
+as well as a Scheme system (currently, Bigloo).

File doc/.svn/text-base/TODO.svn-base

View file
+. open-ended collectives and selectives (specify just one sub-port 
+  inside the union, and just an int as a selective tag - then, any
+  number of sub-ports can be derived: sortof a "phatom")
+
+. derivation of ports in edges, in a node has only one
+. multi-dimensional ports
+. "init" edges (for delays)
+. optional ports
+. CUDA BE
+. Pthread BE
+. UNIX BE
+. "phantom" nodes
+. variable-rate ports
+. multi-ports
+. map/reduce multi-ports
+. grouped multi-ports
+. relaxed type matches

File doc/.svn/text-base/paper.pdf.svn-base

Binary file added.

File dom/.svn/all-wcprops

View file
+K 25
+svn:wc:ra_dav:version-url
+V 42
+/svnroot/sub-lime/!svn/ver/3/LIME-core/dom
+END

File dom/.svn/entries

View file
+9
+
+dir
+16
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime/LIME-core/dom
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime
+
+
+
+2008-10-27T11:23:02.404685Z
+3
+pjotr
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+d6f20ea8-f736-4af6-a003-26290cddb016
+

File dom/.svn/format

View file
+9

File dom/CUDA/.svn/all-wcprops

View file
+K 25
+svn:wc:ra_dav:version-url
+V 38
+/svnroot/sub-lime/!svn/ver/9/LIME-CUDA
+END
+README
+K 25
+svn:wc:ra_dav:version-url
+V 45
+/svnroot/sub-lime/!svn/ver/5/LIME-CUDA/README
+END

File dom/CUDA/.svn/entries

View file
+9
+
+dir
+9
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime/LIME-CUDA
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime
+
+
+
+2008-10-27T14:31:12.912024Z
+9
+pjotr
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+d6f20ea8-f736-4af6-a003-26290cddb016
+
+lib
+dir
+
+project
+dir
+
+src
+dir
+
+bin
+dir
+
+inc
+dir
+
+README
+file
+
+
+
+
+2008-10-29T19:19:04.000000Z
+8a72b7f6ec8490a6c9b464bd3e08c0fa
+2008-10-27T11:44:27.129265Z
+5
+pjotr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+194
+

File dom/CUDA/.svn/format

View file
+9

File dom/CUDA/.svn/text-base/README.svn-base

View file
+This domain folder contains all tools, scripts and configuration files
+for converting LIME components (limes) into a set of CUDA kernels
+scheduled on an NVIDIA device and activated by the host.

File dom/CUDA/bin/.svn/all-wcprops

View file
+K 25
+svn:wc:ra_dav:version-url
+V 42
+/svnroot/sub-lime/!svn/ver/5/LIME-CUDA/bin
+END
+slimer
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svnroot/sub-lime/!svn/ver/5/LIME-CUDA/bin/slimer
+END

File dom/CUDA/bin/.svn/entries

View file
+9
+
+dir
+9
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime/LIME-CUDA/bin
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime
+
+
+
+2008-10-27T11:44:27.129265Z
+5
+pjotr
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+d6f20ea8-f736-4af6-a003-26290cddb016
+
+slimer
+file
+
+
+
+
+2008-10-29T19:19:04.000000Z
+1054073abb7cb47d0996389575dfeb8f
+2008-10-27T11:44:27.129265Z
+5
+pjotr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+477
+

File dom/CUDA/bin/.svn/format

View file
+9

File dom/CUDA/bin/.svn/prop-base/slimer.svn-base

View file
+K 14
+svn:executable
+V 1
+*
+END

File dom/CUDA/bin/.svn/text-base/slimer.svn-base

View file
+#!/bin/bash
+base=`dirname $0`
+export dom=$base/..
+export root=$dom/../..
+export rlib=$root/lib
+
+export FLAGS="-DNDEBUG -DTARGET $FLAGS"
+
+echo FLAGS:$FLAGS >/dev/stderr
+
+source $rlib/slimer.sh
+
+#CUDA=/usr/local/cuda
+#export C_INCLUDE_PATH=$C_INCLUDE_PATH:$CUDA/include
+#export LIBRARY_PATH=$CUDA/lib
+#export PATH=$PATH:$CUDA/bin
+
+#dmake Applications: ${graph//.graph/-run.cu}
+
+if [[ $DOCS == 1 ]];then
+	dmake Docs: comps-doc
+fi
+
+if [[ $INST == 1 ]];then
+	dmake Comps: comps
+fi
+

File dom/CUDA/inc/.svn/all-wcprops

View file
+K 25
+svn:wc:ra_dav:version-url
+V 42
+/svnroot/sub-lime/!svn/ver/5/LIME-CUDA/inc
+END
+CUDA.h
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svnroot/sub-lime/!svn/ver/5/LIME-CUDA/inc/CUDA.h
+END
+CUDA_stdio.h
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svnroot/sub-lime/!svn/ver/5/LIME-CUDA/inc/CUDA_stdio.h
+END

File dom/CUDA/inc/.svn/entries

View file
+9
+
+dir
+9
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime/LIME-CUDA/inc
+https://sub-lime.svn.sourceforge.net/svnroot/sub-lime
+
+
+
+2008-10-27T11:44:27.129265Z
+5
+pjotr
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+d6f20ea8-f736-4af6-a003-26290cddb016
+
+CUDA.h
+file
+
+
+
+
+2008-10-29T19:19:04.000000Z
+059d93f870e3a629f312b903d8d97330
+2008-10-27T11:44:27.129265Z
+5
+pjotr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+650
+
+CUDA_stdio.h
+file
+
+
+
+
+2008-10-29T19:19:04.000000Z
+2b0a4930c4fe3c797c73354753349036
+2008-10-27T11:44:27.129265Z
+5
+pjotr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+143
+

File dom/CUDA/inc/.svn/format

View file
+9

File dom/CUDA/inc/.svn/text-base/CUDA.h.svn-base

View file
+#ifndef __CUDA__
+#define __CUDA__
+// this is the x.y.z version (x.y.z)=x*100^2+y*100+z of the CUDA
+#define __CUDA_VERSION 2 // x.y.z=0.0.1
+
+#if defined(__LIME__)
+#include <common.h>
+#include <pragmas.h>
+#endif
+
+#if !defined(__LIME__)
+// Hide Lime pragmas to the tail toolchain
+#define Lime(x)
+#endif
+
+#if defined(__CUDACC__)
+#define actor __device__ void
+#define helper __device__
+#endif
+
+#if !defined(__CUDACC__)
+#include <limits.h>
+#define atomicInc(p,v) (*(p)= (*(p) >= v ? 0 : *(p)+1))
+#define atomicAnd(p,v) (*(p)= *(p) & v)
+#define actor void
+#define helper
+#endif
+
+// CUDA local policies for defaults:
+
+Lime(type relax fold)
+
+#endif//__CUDA__

File dom/CUDA/inc/.svn/text-base/CUDA_stdio.h.svn-base

View file
+#ifndef CUDA_stdio_defined
+#define CUDA_stdio_defined
+
+#if defined(__DEVICE_EMULATION__)
+#include <stdio.h>
+#endif
+
+#endif//CUDA_stdio_defined

File dom/CUDA/lib/.svn/all-wcprops

View file
+K 25
+svn:wc:ra_dav:version-url