<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>Hi Chris and Co.</div><div><br></div><div>Sorry this email has turned into a bit of a documentation exercise, as I think processes in Impromptu are still a little misunderstood.</div><div><br></div><div><blockquote type="cite">&nbsp;callback seems like a misnomer because if i'm not mistaken, callback can be used to call any process,&nbsp; not just the one that encapsulates it?<br></blockquote><br></div><div>Actually no, callback always calls the specified function in the process that it was called in. &nbsp;&nbsp;However, it is trivial to schedule calls to other processes using a combination of callback and Impromptu's IPC architecture.&nbsp;</div><div>&nbsp;</div><div><font class="Apple-style-span" color="#000467" face="Monaco"><font class="Apple-style-span" color="#000000" face="Helvetica"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(183, 76, 0); "><span style="color: #000467">(</span>callback<span style="color: #000467"> (</span>+<span style="color: #000467"> (</span>now<span style="color: #000467">) </span>*second*<span style="color: #000467">) '* </span><span style="color: #000bff">2</span><span style="color: #000467"> </span><span style="color: #000bff">3</span><span style="color: #000467">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">(<span style="color: #b74c00">callback</span> (<span style="color: #b74c00">+</span> (<span style="color: #b74c00">now</span>) <span style="color: #b74c00">*second*</span>) 'ipc:call <span style="color: #7e09ff">"utility process"</span> '* <span style="color: #000bff">2</span> <span style="color: #000bff">3</span>)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">The first line calls (* 2 3) in one second in the current process (whatever that is currently set to). &nbsp;The second callback calls (ipc:call "utility process" '* 2 3) in one second (in whatever the current process is) - which then immediately calls (* 2 3) in the "utility process" - always the "utility process" no matter what the current process is set to.</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><font class="Apple-style-span" color="#000000" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;"><br></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><font class="Apple-style-span" color="#000000" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><font class="Apple-style-span" color="#000000" face="Helvetica"><span class="Apple-style-span" style="font-size: medium; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">Of course you could easily tidy the call up with a macro.</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><font class="Apple-style-span" color="#000467"><span class="Apple-style-span" style="font-size: medium; "><font class="Apple-style-span" color="#000000" face="Helvetica"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(157, 0, 0); "><span style="color: rgb(0, 4, 103); ">(</span>define-macro<span style="color: rgb(0, 4, 103); ">&nbsp;(</span><span style="color: rgb(183, 76, 0); ">proc-cb</span><span style="color: rgb(0, 4, 103); ">&nbsp;. args)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp;&nbsp;&nbsp;`(<span style="color: rgb(183, 76, 0); ">callback</span>&nbsp;,(<span style="color: rgb(183, 76, 0); ">cadr</span>&nbsp;args) 'ipc:call ,(<span style="color: rgb(183, 76, 0); ">car</span>&nbsp;args) ,@(<span style="color: rgb(183, 76, 0); ">cddr</span>&nbsp;args)))</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(183, 76, 0); "><span style="color: rgb(0, 4, 103); ">(</span>proc-cb<span style="color: rgb(0, 4, 103); ">&nbsp;</span><span style="color: rgb(126, 9, 255); ">"utility process"</span><span style="color: rgb(0, 4, 103); ">&nbsp;(</span>+<span style="color: rgb(0, 4, 103); ">&nbsp;(</span>now<span style="color: rgb(0, 4, 103); ">)&nbsp;</span>*second*<span style="color: rgb(0, 4, 103); ">)&nbsp;'*&nbsp;</span><span style="color: rgb(0, 11, 255); ">2</span><span style="color: rgb(0, 4, 103); ">&nbsp;</span><span style="color: rgb(0, 11, 255); ">3</span><span style="color: rgb(0, 4, 103); ">)</span></div></font></span></font></div></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><font class="Apple-style-span" color="#000000" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;"><br></span></font><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; "></span></div></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; "><div>This makes it trivially easy to spawn work off onto other cores/hosts etc.. &nbsp;Here's an example of an alarm clock distributed over four processes (note that these processes could potentially be running remotely).</div><div><br></div></span></div></font></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(206, 191, 126); min-height: 16px; "><font class="Apple-style-span" color="#000000" face="Helvetica"><span class="Apple-style-span" style="font-size: medium; "><font class="Apple-style-span" color="#CEBF7E" face="Monaco"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; a distribued alarm clock</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; define four process names</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); "><span style="color: #000467">(</span><span style="color: #9d0000">define</span><span style="color: #000467"> </span><span style="color: #b74c00">procs</span><span style="color: #000467"> (</span><span style="color: #b74c00">list</span><span style="color: #000467"> </span>"proc one"<span style="color: #000467"> </span>"proc two"<span style="color: #000467"> </span>"proc three"<span style="color: #000467"> </span>"proc four"<span style="color: #000467">))</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; start four processes</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(183, 76, 0); "><span style="color: #000467">(</span>dotimes<span style="color: #000467"> (i </span><span style="color: #000bff">4</span><span style="color: #000467">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(183, 76, 0); "><span style="color: #000467">&nbsp;&nbsp; (</span>ipc:new-process<span style="color: #000467"> (</span>list-ref<span style="color: #000467"> </span>procs<span style="color: #000467"> i) (</span>+<span style="color: #000467"> </span><span style="color: #000bff">8990</span><span style="color: #000467"> i)))</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; define a worker function to set and call alarms in each of four processes</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(183, 76, 0); "><span style="color: #000467">(</span>dotimes<span style="color: #000467"> (i </span><span style="color: #000bff">4</span><span style="color: #000467">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(183, 76, 0); "><span style="color: #000467">&nbsp;&nbsp; (</span>ipc:define<span style="color: #000467"> (</span>list-ref<span style="color: #000467"> </span>procs<span style="color: #000467"> i) 'worker&nbsp;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span style="color: #9d0000">lambda</span> (time)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span style="color: #b74c00">print</span> 'set-alarm-in-proc: (<span style="color: #b74c00">ipc:get-process-name</span>)&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'for-time: (<span style="color: #b74c00">objc:date:make</span> time))</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span style="color: #b74c00">sys:wait</span> (<span style="color: #b74c00">clock-&gt;samples</span> time))</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span style="color: #b74c00">print</span> 'alarm: (<span style="color: #b74c00">ipc:get-process-name</span>)&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'time: (<span style="color: #b74c00">objc:date:make</span> (<span style="color: #b74c00">samples-&gt;clock</span> (<span style="color: #b74c00">now</span>)))))))</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; color: #000467; min-height: 16.0px">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br class="webkit-block-placeholder"></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; start loop firing off alarm requests randomly to four processes</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(157, 0, 0); "><span style="color: #000467">(</span>define<span style="color: #000467"> </span><span style="color: #b74c00">loop</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp;&nbsp; (<span style="color: #9d0000">lambda</span> (beat)&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp; &nbsp; &nbsp; (<span style="color: #b74c00">callback</span> (<span style="color: #b74c00">*metro*</span> beat) 'ipc:call (<span style="color: #b74c00">list-ref</span> <span style="color: #b74c00">procs</span> (<span style="color: #b74c00">random</span> <span style="color: #000bff">4</span>))&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'worker (<span style="color: #b74c00">+</span> (<span style="color: #b74c00">clock</span>) (<span style="color: #b74c00">random</span> <span style="color: #000bff">60</span>)))</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">&nbsp; &nbsp; &nbsp; (<span style="color: #b74c00">callback</span> (<span style="color: #b74c00">*metro*</span> (<span style="color: #b74c00">+</span> beat (<span style="color: #b74c00">*</span> <span style="color: #000bff">1/2</span> <span style="color: #000bff">1</span>))) 'loop (<span style="color: #b74c00">+</span> beat <span style="color: #000bff">1</span>))))</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; start manager loop</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">(<span style="color: #b74c00">loop</span> (<span style="color: #b74c00">*metro*</span> 'get-beat <span style="color: #000bff">4</span>))</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); "><span class="Apple-style-span" style="font-size: medium;"><br></span></div></font></span></font></div><div>This example is really all you need to understand how to do your own load balancing, distributed computation etc..</div><div><br></div><div>Just a note on remote vs local processes. &nbsp;You spawn a new process in impromptu by calling ipc:new-process. &nbsp;This creates a new impromptu process which you give a name to and then call using ipc commands. &nbsp;Remote processes work slightly differently because you do not create them. &nbsp;They already exist and you just connect to them with an alias. &nbsp;So for example. &nbsp;Creating a process locally works like this:</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(183, 76, 0); "><span style="color: #000467">(</span>ipc:new-process<span style="color: #000467"> </span><span style="color: #7e09ff">"my-new-proc"</span><span style="color: #000467"> </span><span style="color: #000bff">9287</span><span style="color: #000467">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">(<span style="color: #b74c00">print</span> 'result: (<span style="color: #b74c00">ipc:call</span> <span style="color: #7e09ff">"my-new-proc"</span> '* <span style="color: #000bff">2</span> <span style="color: #000bff">3</span>))</div><div><font class="Apple-style-span" color="#000467" face="Monaco"><br></font></div><div>&nbsp;If someone wanted to connect to this existing "my-new-proc" process from another host they would do this:</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); "><span style="color: #000467">(</span><span style="color: #b74c00">ipc:connect-to-process</span><span style="color: #000467"> </span>"the-remote-proc"<span style="color: #000467"> </span>"varese.local"<span style="color: #000467"> </span><span style="color: #000bff">9287</span><span style="color: #000467">)&nbsp;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); "><span style="color: #000467">(</span><span style="color: #b74c00">ipc:call-async</span><span style="color: #000467"> </span>"the-remote-proc"<span style="color: #000467"> 'print </span>"hello world"<span style="color: #000467">)</span></div><div><font class="Apple-style-span" color="#000467" face="Monaco"><br></font></div><div>The remote host can call the connection whatever they like, the important details are the hostname and the port to connect to. &nbsp;The important thing to note is that they have not created a new process on the host varese.local they have just connected an "alias" to an existing process.</div><div><br></div><div>One last thing in this ever expanding email. &nbsp;In order to use ipc:call (i.e. an ipc call that returns a value) from a remote host, you need to supply an additional argument which is the process name (as named by the remote host) to send the result to. &nbsp;You don't need to supply this argument locally but you do need to supply it remotely. &nbsp;So here's a common example that connects to a remote hosts "primary process" - by convention I usually prefix the hosts name.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; connecting from debussy.local to varese.local</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; first create alias to "primary process" on varese - called "varese:primary process"</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); "><span style="color: #000467">(</span><span style="color: #b74c00">ipc:connect-to-process</span><span style="color: #000467"> </span>"varese:primary process"<span style="color: #000467"> </span>"varese.local"<span style="color: #000467"> </span><span style="color: #000bff">7010</span><span style="color: #000467">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; secondly use the alias to establish another alias&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; going the other way - from varese back to debussy</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 4, 103); ">(<span style="color: #b74c00">ipc:call-async</span> <span style="color: #7e09ff">"varese:primary process"</span> 'ipc:connect-to-process&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); "><span style="color: #000467">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span>"debussy:primary process"<span style="color: #000467"> </span>"debussy.local"<span style="color: #000467"> </span><span style="color: #000bff">7010</span><span style="color: #000467">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; now we can make synchronous calls from debussy to varese like this</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); "><span style="color: #000467">(</span><span style="color: #b74c00">print</span><span style="color: #000467"> 'result: (</span><span style="color: #b74c00">ipc:call</span><span style="color: #000467"> </span>"varese:primary process"<span style="color: #000467"> </span>"debuss:primary process"<span style="color: #000467"> '* </span><span style="color: #000bff">2</span><span style="color: #000467"> </span><span style="color: #000bff">3</span><span style="color: #000467">))</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; of course you can also spawn new processes remotely</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); "><span style="color: #000467">(</span><span style="color: #b74c00">ipc:call-async</span><span style="color: #000467"> </span>"varese:primary process"<span style="color: #000467"> 'ipc:new-process </span>"another-new-proc"<span style="color: #000467"> </span><span style="color: #000bff">9288</span><span style="color: #000467">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; and connect to them remotely with an alias</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); "><span style="color: #000467">(</span><span style="color: #b74c00">ipc:connect-to-process</span><span style="color: #000467"> </span>"varese:another-new-proc"<span style="color: #000467"> </span>"varese.local"<span style="color: #000467"> </span><span style="color: #000bff">9288</span><span style="color: #000467">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(0, 102, 23); ">;; etc..</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; color: rgb(126, 9, 255); min-height: 16px; "><br></div><div>Processes in Impromptu are quite powerful but are generally under-utilised. &nbsp;I expect that this is in part because I haven't document them very well so please let me know if something is unclear.</div><div><br></div><div>Cheers,</div></div></div><div>Andrew.</div><div><br></div><div><br></div><div><br></div><div><blockquote type="cite"><br><div class="gmail_quote"> 2010/1/2 Andrew Brown <span dir="ltr">&lt;<a href="mailto:a.brown@qut.edu.au">a.brown@qut.edu.au</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); margin-top: 0pt; margin-right: 0pt; margin-bottom: 0pt; margin-left: 0.8ex; padding-left: 1ex; position: static; z-index: auto; "> I think "schedule" would be easier to understand for many and is probably more broadly useful, but "callback" does have an important meaning too and so should be maintained. Besides, I more likely to mis-spell schedule during live coding performances :)<br> <br> Cheers,<br> <font color="#888888"><br> Andrew<br> </font><div><div></div><div class="h5"><br> On 29/12/2009, at 3:32 PM, Andrew Sorensen wrote:<br> <br> &gt; I'm thinking of changing the symbol name callback to schedule?<br> &gt;<br> &gt; callback will still work as an alias but documentation would start<br> &gt; using schedule<br> &gt;<br> &gt; Any thoughts?<br> &gt; Got a better name?<br> &gt; Good idea, bad idea, don't care?<br> &gt; _______________________________________________<br> &gt; Impromptu mailing list<br> &gt; <a href="mailto:Impromptu@lists.moso.com.au">Impromptu@lists.moso.com.au</a><br> &gt; <a href="http://lists.moso.com.au/mailman/listinfo/impromptu" target="_blank">http://lists.moso.com.au/mailman/listinfo/impromptu</a><br> <br> _______________________________________________<br> Impromptu mailing list<br> <a href="mailto:Impromptu@lists.moso.com.au">Impromptu@lists.moso.com.au</a><br> <a href="http://lists.moso.com.au/mailman/listinfo/impromptu" target="_blank">http://lists.moso.com.au/mailman/listinfo/impromptu</a><br> </div></div></blockquote></div><br><br clear="all"><br>-- <br>----------------------------------------<br>Christopher Chong<br>Composition for Screen<br>Royal College of Music<br>SW7 2BS<br><a href="http://www.MajorC.co.uk">http://www.MajorC.co.uk</a><br> <a href="http://majorc.wordpress.com">http://majorc.wordpress.com</a><br>----------------------------------------<br> _______________________________________________<br>Impromptu mailing list<br><a href="mailto:Impromptu@lists.moso.com.au">Impromptu@lists.moso.com.au</a><br>http://lists.moso.com.au/mailman/listinfo/impromptu<br></blockquote></div><br></div></body></html>