Mercurial > repos > rhope
diff nworker.rhope @ 47:6202b866d72c
Cleaned up constructor names and merged some other changes in to support the Rhope website
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 22 Dec 2009 01:22:09 -0500 |
parents | a7c79ac22efc |
children | a24eb366195c |
line wrap: on
line diff
--- a/nworker.rhope Tue Dec 01 03:59:31 2009 -0500 +++ b/nworker.rhope Tue Dec 22 01:22:09 2009 -0500 @@ -172,7 +172,7 @@ Worker Ref[name,convention,inputs,outputs,ismethod?:out] { - out <- [[[[[Build["Worker Ref"]]Name <<[name]]Convention <<[convention]]Inputs <<[inputs]]Outputs <<[outputs]]Is Method ? <<[ismethod?] + out <- [[[[[Build["Worker Ref"]]Name <<[name]]Convention <<[convention]]Inputs <<[inputs]]Outputs <<[outputs]]Is Method? <<[ismethod?] } Blueprint Node Ref @@ -300,7 +300,7 @@ NWorker[convention:out] { - out <- [[[[[[[[Build["NWorker"]]Convention <<[convention]]Nodes <<[()]]Inputs <<[()]]Outputs <<[()]]Input Types <<[()]]Output Types <<[()]]Name <<["Anonymous"]]Builtin <<[No] + out <- [[[[[[[[Build["NWorker"]]Convention <<[convention]]Nodes <<[()]]Inputs <<[()]]Outputs <<[()]]Input Types <<[()]]Output Types <<[()]]Name <<["Anonymous"]]Builtin? <<[No] } Add Node@NWorker[worker,type,data,inputs,outputs:out,node index] @@ -345,7 +345,11 @@ new type <- Val[type] new count <- 1 } - new node <- [node]Input Types <<[ [[node]Input Types >>]Set[[dest]IO Num >>, new type] ] + new node <- [node]Input Types <<[ + [[()]Append[ + [ [node]Input Types >> ]Set[ [dest]IO Num >>, new type ] + ]]Append[new count] + ] out <- Infer Types Node[[nodelist]Set[[dest]Index >>, new node], new node, [dest]Index >>, prog, worker] } @@ -361,9 +365,14 @@ //Temporary hack If[[Type Of[[node]Data >>]] = ["Whole Number"]] { - outtype <- Type Instance["Whole Number"] - }{ - outtype <- Type Instance[Type Of[[node]Data >>]] + outtype <- Type Instance["Int32"] + }{ + If[[Type Of[[node]Data >>]] = ["Type Instance"]] + { + outtype <- Type Instance["Blueprint"] + }{ + outtype <- Type Instance[Type Of[[node]Data >>]] + } } nextnode <- [node]Output Types <<[ [()]Append[outtype] ] @@ -1135,7 +1144,7 @@ Compile Program@NProgram[prog, backend:out] { - out <- Fold["_Compile Program", Fold["_Compile Program BP Special", Fold["_Compile Program BP", backend, [prog]Blueprints >>], [prog]Blueprints >>], [prog]Workers >>] + out <- Fold["_Compile Program", Fold["_Compile Program BP Special", Fold["_Compile Program BP", backend, [prog]Blueprints >>], [prog]Blueprints >>], Map[[prog]Workers >>, ["Infer Types"]Set Input[1, prog]] ] } Register Method@NProgram[prog, name, convention, inputs, outputs: out] @@ -1146,14 +1155,18 @@ Register Worker@NProgram[prog, name, convention, inputs, outputs: out] { Print[["Register Worker "]Append[name]] - after reg <- [prog]Worker Refs <<[ [[prog]Worker Refs >>]Set[name, Worker Ref[name, convention, inputs, outputs, No]]] - parts <- [name]Split["@"] - [parts]Index[1] - { - out <- [after reg]Register Method[[parts]Index[0], convention, inputs, outputs] - }{ - out <- Val[after reg] - } + after reg <- [prog]Worker Refs <<[ + [ [prog]Worker Refs >> ]Set[name, + Worker Ref[name, convention, inputs, outputs, No] + ] + ] + parts <- [name]Split["@"] + [parts]Index[1] + { + out <- [after reg]Register Method@NProgram[[parts]Index[0], convention, inputs, outputs] + }{ + out <- Val[after reg] + } } Register Builtins@NProgram[prog:out] @@ -1174,81 +1187,81 @@ ]Bind Worker["+@Int32", [[[[[NWorker["rhope"] ]Inputs <<[("left","right")] - ]Input Types <<[ [[()]Append[Type Instance["Int32"]]]Type Instance["Int32"] ] + ]Input Types <<[ [[()]Append[ Type Instance["Int32"]]]Append[Type Instance["Int32"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Worker["-@Int32", [[[[[NWorker["rhope"] ]Inputs <<[("left","right")] - ]Input Types <<[ [[()]Append[Type Instance["Int32"]]]Type Instance["Int32"] ] + ]Input Types <<[ [[()]Append[ Type Instance["Int32"]]]Append[Type Instance["Int32"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Worker["*@Int32", [[[[[NWorker["rhope"] ]Inputs <<[("left","right")] - ]Input Types <<[ [[()]Append[Type Instance["Int32"]]]Type Instance["Int32"] ] + ]Input Types <<[ [[()]Append[ Type Instance["Int32"]]]Append[Type Instance["Int32"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Worker["/@Int32", [[[[[NWorker["rhope"] ]Inputs <<[("left","right")] - ]Input Types <<[ [[()]Append[Type Instance["Int32"]]]Type Instance["Int32"] ] + ]Input Types <<[ [[()]Append[ Type Instance["Int32"]]]Append[Type Instance["Int32"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Worker["LShift@Int32", [[[[[NWorker["rhope"] ]Inputs <<[("left","right")] - ]Input Types <<[ [[()]Append[Type Instance["Int32"]]]Type Instance["Int32"] ] + ]Input Types <<[ [[()]Append[ Type Instance["Int32"]]]Append[Type Instance["Int32"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Worker["RShift@Int32", [[[[[NWorker["rhope"] ]Inputs <<[("left","right")] - ]Input Types <<[ [[()]Append[Type Instance["Int32"]]]Type Instance["Int32"] ] + ]Input Types <<[ [[()]Append[ Type Instance["Int32"]]]Append[Type Instance["Int32"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Worker["<@Int32", [[[[[NWorker["rhope"] ]Inputs <<[("left","right")] - ]Input Types <<[ [[()]Append[Type Instance["Int32"]]]Type Instance["Int32"] ] + ]Input Types <<[ [[()]Append[ Type Instance["Int32"]]]Append[Type Instance["Int32"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Worker[">@Int32", [[[[[NWorker["rhope"] ]Inputs <<[("left","right")] - ]Input Types <<[ [[()]Append[Type Instance["Int32"]]]Type Instance["Int32"] ] + ]Input Types <<[ [[()]Append[ Type Instance["Int32"]]]Append[Type Instance["Int32"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Blueprint["Boolean", NBlueprint[]] ]Bind Worker["If@Boolean", [[[[[NWorker["rhope"] ]Inputs <<[("condition")] ]Input Types <<[ [()]Append[Type Instance["Boolean"]] ] ]Outputs <<[("isyes","isno")] - ]Output types <<[ [[()]Append[Type Instance["Boolean"]]]Append[Type Instance["Boolean"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [[()]Append[Type Instance["Boolean"]]]Append[Type Instance["Boolean"]] ] + ]Builtin? <<[Yes]] ]Bind Worker["Print", [[[[[NWorker["rhope"] ]Inputs <<[("value")] ]Input Types <<[ [()]Append[Type Instance["Any Type"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Int32"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Int32"]] ] + ]Builtin? <<[Yes]] ]Bind Worker["Build", [[[[[NWorker["rhope"] ]Inputs <<[("type")] ]Input Types <<[ [()]Append[Type Instance["Blueprint"]] ] ]Outputs <<[("out")] - ]Output types <<[ [()]Append[Type Instance["Any Type"]] ] - ]Builin? <<[Yes]] + ]Output Types <<[ [()]Append[Type Instance["Any Type"]] ] + ]Builtin? <<[Yes]] } Find Worker@NProgram[prog, name:out,notfound]