| … | … | @@ -33,7 +33,7 @@ discarded when execution completes. Thus, the execution is "pure". |
| 33 | 33 | Next `PureExec` got used to define tail-recursive loops. The structure |
| 34 | 34 | here is |
| 35 | 35 | ``` |
| 36 | | (DefineLink (DefinedProcedutre "foo") |
| 36 | (DefineLink (DefinedProcedure "foo") |
| 37 | 37 | (PureExec AST (DefinedProcedutre "foo"))) |
| 38 | 38 | ``` |
| 39 | 39 | so the AST performs a single-step of the loop, and the |
| … | … | @@ -51,9 +51,7 @@ Until `PureExec` was introduced, there wasn't anything analogous for |
| 51 | 51 | execution. The `ParallelLink` and cousins run threads, but there was no |
| 52 | 52 | `SerialLink` mostly because step-wise execution was not needed. |
| 53 | 53 | |
| 54 | | The whole Threaded/Serial Atomese toolset needs to be revised to be |
| 55 | | cleaner. ThreadJoinLink should be marked obsolete. PureExec needs to |
| 56 | | be redesigned as described below. |
| 54 | PureExec needs to be redesigned as described below. |
| 57 | 55 | |
| 58 | 56 | Since the initial idea of `PureExec` was purity, it could not be used |
| 59 | 57 | for tail-recursive, serialized execution in the current AtomSpace: so an |
| … | … | @@ -62,14 +60,13 @@ to generalize this to allow a GPU to be specified, or more generally an |
| 62 | 60 | external object. |
| 63 | 61 | |
| 64 | 62 | But first, a distraction: |
| 65 | | The `ExecutThreadedLink` gathers results into a QueueValue. There needs |
| 66 | | to be a `NullLink` which says "execute me but discard the return value". |
| 67 | | But such a `NullLink` could naturally do serial execution. So ... it |
| 68 | | suggests that we need a "serial exec and gather the return values" as |
| 69 | | well as a "serial exec and discard the return values" link types. What |
| 70 | | names should they be given? |
| 63 | The `ExecuteThreadedLink` gathers results into a QueueValue. The |
| 64 | `ParallelLink` fires and forgets: it runs threads, dettaches, does |
| 65 | not wait for completion; does not collect results. Also does not specify |
| 66 | max-threads to use (because doing so des not seem to make sense, if |
| 67 | one is not going to wait?) |
| 71 | 68 | |
| 72 | 69 | TODO List |
| 73 | 70 | --------- |
| 74 | 71 | Writiing the above, the TODO list expands: |
| 75 | | * The ThreadJoinLink should be removed from Atomese. |
| 72 | * The ThreadJoinLink should be removed from Atomese. DONE. |