<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-21929643</id><updated>2011-07-14T17:37:23.884-07:00</updated><title type='text'>Spiral</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nspiral.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nspiral.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yevgen Voronenko</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_0E4d1Zg5Few/SyaA5J6hfnI/AAAAAAAAAAM/zvc7XkqMX_o/s1600-R/yevgen.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21929643.post-114133197953211576</id><published>2006-03-02T12:39:00.000-08:00</published><updated>2006-07-05T15:16:15.740-07:00</updated><title type='text'>Lecture 3 (3/3/06) : Objects and OOP</title><content type='html'>Cover object oriented programming in Spiral. I will go over several examples of OOP in code generator implementation.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Spiral Material&lt;/h3&gt;&lt;br /&gt;Handout: &lt;a href="http://www.ece.cmu.edu/~yvoronen/spiral-lectures/lec3-oop/oop.txt"&gt;oop.txt&lt;/a&gt;&lt;br /&gt;Demo transcript: &lt;a href="http://www.ece.cmu.edu/~yvoronen/spiral-lectures/lec3-oop/oop-demo.txt"&gt;oop-demo.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Object Model&lt;/h3&gt;Spiral's object model is based on the following paper:&lt;br /&gt;&lt;br /&gt;David Ungar and Randall BB. Smith&lt;br /&gt;&lt;a href="http://research.sun.com/self/papers/self-power.html"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Self: The Power Of Simplicity&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;Proc. OOPSLA '87&lt;br /&gt;&lt;a href="http://research.sun.com/self/papers/selfPower.ps.gz"&gt;[ps.gz]&lt;/a&gt; [&lt;a href="http://research.sun.com/self/language.html"&gt;Self website&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Interesting quote from above:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Elimination of meta&amp;shy;regress&lt;/span&gt;. No object in a class&amp;shy;based system can be self&amp;shy; sufficient; another object (its class) is needed to express its structure and behavior. This leads to a conceptually infinite meta&amp;shy;regress: a point is an instance of class Point, which is an instance of metaclass Point, which is an instance of metameta&amp;shy; class Point, ad infinitum. On the other hand, in prototype&amp;shy;based systems an object can include its own behavior; no other object is needed to breathe life into it. Proto&amp;shy;types eliminate meta&amp;shy;regress.&lt;br /&gt;&lt;/blockquote&gt;&lt;h3&gt;Case study&lt;/h3&gt;To better explain and motivate OOP style programming we will use Spiral's internal representation of generated code as a running example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21929643-114133197953211576?l=nspiral.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nspiral.blogspot.com/feeds/114133197953211576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21929643&amp;postID=114133197953211576' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/114133197953211576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/114133197953211576'/><link rel='alternate' type='text/html' href='http://nspiral.blogspot.com/2006/03/lecture-3-3306-objects-and-oop.html' title='Lecture 3 (3/3/06) : Objects and OOP'/><author><name>Yevgen Voronenko</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_0E4d1Zg5Few/SyaA5J6hfnI/AAAAAAAAAAM/zvc7XkqMX_o/s1600-R/yevgen.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21929643.post-114133134188824633</id><published>2006-03-02T12:29:00.000-08:00</published><updated>2006-03-02T12:35:17.506-08:00</updated><title type='text'>Micro-update</title><content type='html'>Today I was trying to finish recursive vector code, and of course lots of other things interfered. Several things happened today:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fixed radix expansion of DftCt with left recursion in Maude, will produce a tail-recursive program, which can be converted into a loop. This has nice parallel with what FLAME is doing.&lt;/li&gt;&lt;li&gt;I talked to Franz and there are several issues with scalability of Spiral. We need to be able to compose several different codes: real, complex, FMA, fixed-point, vector, SMP, recursive and so forth.&lt;/li&gt;&lt;/ul&gt;Automatic iterative DFT construction is very nice, and easy to to in Maude. I will do this one day. Franz also showed me how to get a large sample of iterative variants automatically (Pease, Stockham, Korn-Lambiot, etc).&lt;br /&gt;&lt;br /&gt;The scond main issue is scalability of Spiral. Here we came up with a list of TODOs:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;RulesFor(pattern, ...)  (for example [TRC, [DFT, @]])&lt;/li&gt;&lt;li&gt;Composable unparsers&lt;/li&gt;&lt;ol&gt;&lt;li&gt;C99Unparser, TRC, TCR, TCC&lt;/li&gt;&lt;li&gt;Composable CodeRuleTree, or at least one should resolve all conflicts within different modes&lt;/li&gt;&lt;li&gt;This is complete when TCR(RDFT(..)) produces assymmetric code (real input, complex output)&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;SPL/DP options record expansion. Franz also suggested the idea of "worksheet". Worksheet would keep options along with all intermediate results (ie. ruletree, formula, sigma-spl formula, and finally code). This should simplify conflict resolution&lt;/li&gt;&lt;li&gt;Eliminate all global variables (2 and 3 basically do this)&lt;/li&gt;&lt;li&gt;DP should return code + file where it is stored.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21929643-114133134188824633?l=nspiral.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nspiral.blogspot.com/feeds/114133134188824633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21929643&amp;postID=114133134188824633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/114133134188824633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/114133134188824633'/><link rel='alternate' type='text/html' href='http://nspiral.blogspot.com/2006/03/micro-update.html' title='Micro-update'/><author><name>Yevgen Voronenko</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_0E4d1Zg5Few/SyaA5J6hfnI/AAAAAAAAAAM/zvc7XkqMX_o/s1600-R/yevgen.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21929643.post-113957903235637208</id><published>2006-02-10T05:43:00.000-08:00</published><updated>2006-02-10T14:50:43.460-08:00</updated><title type='text'>Lection 2 (2/10/06) : Rewriting</title><content type='html'>Today we will discuss rewriting. Below I will list all relevant resources.&lt;br /&gt;&lt;h3&gt;Rewriting in Spiral&lt;/h3&gt;&lt;br /&gt;Handout: &lt;a href="http://www.ece.cmu.edu/~yvoronen/spiral-lectures/lec2-rewriting/rewriting.txt"&gt;rewriting.txt&lt;/a&gt;&lt;br /&gt;Demo transcript: &lt;a href="http://www.ece.cmu.edu/~yvoronen/spiral-lectures/lec2-rewriting/rewriting-demo.txt"&gt;rewriting-demo.txt&lt;/a&gt;&lt;br /&gt;Lecture scratchpad: &lt;a href="http://www.ece.cmu.edu/~yvoronen/spiral-lectures/lec2-rewriting/rewriting-scratch.txt"&gt;rewriting-scratch.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Papers&lt;/h3&gt; &lt;span style="font-weight: bold;"&gt;The main paper on the topic is&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nachum Dershowitz, Jean-Pierre Jouannaud.&lt;br /&gt;&lt;a href="http://citeseer.ifi.unizh.ch/dershowitz90rewrite.html"&gt;&lt;b&gt;Rewrite Systems&lt;/b&gt;&lt;/a&gt;, &lt;a href="http://citeseer.ifi.unizh.ch/context/1420/86872"&gt;(766 citations)&lt;/a&gt;,&lt;br /&gt;Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B), 1990.&lt;br /&gt;(&lt;a href="http://citeseer.ifi.unizh.ch/rd/39997843%2C86872%2C1%2C0.25%2CDownload/http://citeseer.ifi.unizh.ch/cache/papers/cs/1354/http:zSzzSzwww-sal.cs.uiuc.eduzSz%7EnachumzSzpaperszSzsurvey-draft.ps.gz/dershowitz90rewrite.ps.gz"&gt;PS.gz&lt;/a&gt;) (&lt;a href="http://citeseer.ifi.unizh.ch/rd/39997843%2C86872%2C1%2C0.25%2CDownload/http://citeseer.ifi.unizh.ch/compress/0/papers/cs/1354/http:zSzzSzwww-sal.cs.uiuc.eduzSz%7EnachumzSzpaperszSzsurvey-draft.ps.gz/dershowitz90rewrite.ps"&gt;PS&lt;/a&gt;) (&lt;a href="http://citeseer.ifi.unizh.ch/rd/39997843%2C86872%2C1%2C0.25%2CDownload/http://citeseer.ifi.unizh.ch/cache/papers/cs/1354/http:zSzzSzwww-sal.cs.uiuc.eduzSz%7EnachumzSzpaperszSzsurvey-draft.pdf/dershowitz90rewrite.pdf"&gt;PDF&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other interesting papers in the area:&lt;/span&gt;&lt;br /&gt;&lt;p&gt; Narciso Martí-Oliet and José Meseguer.&lt;br /&gt;&lt;a href="http://maude.cs.uiuc.edu/papers/postscript/MMroadmap_2001.ps.gz"&gt;&lt;b&gt;Rewriting Logic: Roadmap and Bibliography&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;(&lt;a href="http://maude.cs.uiuc.edu/papers/abstract/MMroadmap_2001.html"&gt;abstract&lt;/a&gt;) (&lt;a href="http://maude.cs.uiuc.edu/papers/bibtex/MMroadmap_2001.bib"&gt;BibTeX entry&lt;/a&gt;) (&lt;a href="http://maude.cs.uiuc.edu/papers/postscript/MMroadmap_2001.ps.gz"&gt;gzip'ed Postscript&lt;/a&gt;) &lt;/p&gt;&lt;br /&gt;José Meseguer.&lt;br /&gt;&lt;a href="http://maude.cs.uiuc.edu/papers/postscript/Mdirections_1998.ps.gz"&gt;&lt;b&gt;Research Directions in Rewriting Logic&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;Computational Logic, NATO Advanced Study Institute, Marktoberdorf, Germany, 1997. Springer-Verlag, 1998.&lt;br /&gt;(&lt;a href="http://maude.cs.uiuc.edu/papers/abstract/Mdirections_1998.html"&gt;abstract&lt;/a&gt;)  (&lt;a href="http://maude.cs.uiuc.edu/papers/bibtex/Mdirections_1998.bib"&gt;BibTeX entry&lt;/a&gt;) (&lt;a href="http://maude.cs.uiuc.edu/papers/postscript/Mdirections_1998.ps.gz"&gt;gzip'ed Postscript&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Peter Csaba Ölveczky and José Meseguer.&lt;br /&gt;&lt;a href="http://maude.cs.uiuc.edu/papers/postscript/tcs4016.ps.gz"&gt;&lt;b&gt;Specifying Real-Time Systems in Rewriting Logic&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;In &lt;i&gt;1st International Workshop on Rewriting Logic and its Applications (WRLA'96)&lt;/i&gt;.&lt;br /&gt;Electronic Notes in Theoretical Computer Science, Vol. 4. 1996&lt;br /&gt;(&lt;a href="http://maude.cs.uiuc.edu/papers/abstract/tcs4016.html"&gt;abstract&lt;/a&gt;) (&lt;a href="http://maude.cs.uiuc.edu/papers/bibtex/tcs4016.bib"&gt;BibTeX entry&lt;/a&gt;) (&lt;a href="http://maude.cs.uiuc.edu/papers/postscript/tcs4016.ps.gz"&gt;gzip'ed Postscript&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;For additional information refer to the &lt;a href="http://maude.cs.uiuc.edu/papers/"&gt;Maude website&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21929643-113957903235637208?l=nspiral.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nspiral.blogspot.com/feeds/113957903235637208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21929643&amp;postID=113957903235637208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113957903235637208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113957903235637208'/><link rel='alternate' type='text/html' href='http://nspiral.blogspot.com/2006/02/lection-2-21006-rewriting.html' title='Lection 2 (2/10/06) : Rewriting'/><author><name>Yevgen Voronenko</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_0E4d1Zg5Few/SyaA5J6hfnI/AAAAAAAAAAM/zvc7XkqMX_o/s1600-R/yevgen.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21929643.post-113957760887215993</id><published>2006-02-10T05:20:00.000-08:00</published><updated>2006-02-17T10:09:57.256-08:00</updated><title type='text'>Lecture 1 (12/23/05) : Namespaces</title><content type='html'>In reality we also went through OOP programming in Spiral. Since we had many new people, last Friday (2/3/06) I had to do a review session on namespaces. I will also have to repeat OOP.&lt;br /&gt;&lt;br /&gt;Namespace redesign document is available thru SVN : spiral/doc/namespaces.tex&lt;br /&gt;&lt;br /&gt;Status of the namespace redesign : implementation complete, &lt;span style="font-weight: bold;"&gt;testing&lt;/span&gt; .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21929643-113957760887215993?l=nspiral.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nspiral.blogspot.com/feeds/113957760887215993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21929643&amp;postID=113957760887215993' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113957760887215993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113957760887215993'/><link rel='alternate' type='text/html' href='http://nspiral.blogspot.com/2006/02/lecture-1-122305-namespaces.html' title='Lecture 1 (12/23/05) : Namespaces'/><author><name>Yevgen Voronenko</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_0E4d1Zg5Few/SyaA5J6hfnI/AAAAAAAAAAM/zvc7XkqMX_o/s1600-R/yevgen.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21929643.post-113957759616992315</id><published>2006-02-10T05:19:00.000-08:00</published><updated>2006-02-10T06:17:06.266-08:00</updated><title type='text'>Lection 0 (12/16/05): Basic GAP syntax and Spiral extensions.</title><content type='html'>GAP3 Manual : &lt;a href="http://www.gap-system.org/Gap3/Doc3/manual.html"&gt;http://www.gap-system.org/Gap3/Doc3/manual.html&lt;/a&gt;&lt;br /&gt;The manual is quite big, but of main interest is just the main syntax and data structures, and this part is quite compact. It should take only about 2 hours to become comfortable with GAP. Links to relevant chapters:&lt;br /&gt;&lt;ul&gt; &lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C001S000.htm"&gt;About GAP&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C002S000.htm"&gt;The Programming Language&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C003S000.htm"&gt;Environment&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C010S000.htm"&gt;Integers&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C012S000.htm"&gt;Rationals&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C013S000.htm"&gt;Cyclotomics&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C014S000.htm"&gt;Gaussians&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C019S000.htm"&gt;Polynomials&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C020S000.htm"&gt;Permutations&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C027S000.htm"&gt;Lists&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C028S000.htm"&gt;Sets&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C029S000.htm"&gt;Boolean Lists&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gap-system.org/Gap3/Manual3/C031S000.htm"&gt;Ranges&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C032S000.htm"&gt;Vectors&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gap-system.org/Gap3/Manual3/C034S000.htm"&gt;Matrices&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gap-system.org/Gap3/Manual3/C044S000.htm"&gt;Booleans&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.gap-system.org/Gap3/Manual3/C045S000.htm"&gt;Records&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21929643-113957759616992315?l=nspiral.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nspiral.blogspot.com/feeds/113957759616992315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21929643&amp;postID=113957759616992315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113957759616992315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113957759616992315'/><link rel='alternate' type='text/html' href='http://nspiral.blogspot.com/2006/02/lection-0-121605-basic-gap-syntax-and.html' title='Lection 0 (12/16/05): Basic GAP syntax and Spiral extensions.'/><author><name>Yevgen Voronenko</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_0E4d1Zg5Few/SyaA5J6hfnI/AAAAAAAAAAM/zvc7XkqMX_o/s1600-R/yevgen.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21929643.post-113900124678525193</id><published>2006-02-03T13:12:00.000-08:00</published><updated>2006-02-03T13:14:06.786-08:00</updated><title type='text'>Namespace Discussion</title><content type='html'>---- CURRENT -------&lt;br /&gt;load a (look in spiral/*)&lt;br /&gt;  load b (look in spiral/a/*)&lt;br /&gt;&lt;br /&gt;inside mystuff&lt;br /&gt;   Import(A)&lt;br /&gt;&lt;br /&gt;---- MAREK -------&lt;br /&gt;SPIRAL_PATHS = [ "spiral/" ];&lt;br /&gt;Load mystuff (spiral/mystuff/init.g and spiral/mystuff.g)&lt;br /&gt;Include a (spiral/mystuff/a.gi)&lt;br /&gt;Include b (spiral/mystuff/b.gi)&lt;br /&gt;Load mystuff.A  (spiral/mystuff/A/init.g)&lt;br /&gt;&lt;br /&gt;-- inside mystuff&lt;br /&gt;Import mystuff.A&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21929643-113900124678525193?l=nspiral.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nspiral.blogspot.com/feeds/113900124678525193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21929643&amp;postID=113900124678525193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113900124678525193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113900124678525193'/><link rel='alternate' type='text/html' href='http://nspiral.blogspot.com/2006/02/namespace-discussion.html' title='Namespace Discussion'/><author><name>Yevgen Voronenko</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_0E4d1Zg5Few/SyaA5J6hfnI/AAAAAAAAAAM/zvc7XkqMX_o/s1600-R/yevgen.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21929643.post-113900089262584139</id><published>2006-02-03T13:07:00.000-08:00</published><updated>2006-02-03T13:08:12.633-08:00</updated><title type='text'>Welcome to nSpiral</title><content type='html'>Spiralnotes was taken.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21929643-113900089262584139?l=nspiral.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nspiral.blogspot.com/feeds/113900089262584139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21929643&amp;postID=113900089262584139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113900089262584139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21929643/posts/default/113900089262584139'/><link rel='alternate' type='text/html' href='http://nspiral.blogspot.com/2006/02/welcome-to-nspiral.html' title='Welcome to nSpiral'/><author><name>Yevgen Voronenko</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_0E4d1Zg5Few/SyaA5J6hfnI/AAAAAAAAAAM/zvc7XkqMX_o/s1600-R/yevgen.jpg'/></author><thr:total>0</thr:total></entry></feed>
