User Tools

Site Tools


notes:internals

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:internals [2025/02/07 20:59] – [Claim/Wish/When scheduling] smj-edisonnotes:internals [2025/02/14 05:57] (current) – Grammerizing smj-edison
Line 13: Line 13:
     * Environment handling     * Environment handling
     * Language extensions (lib/language.tcl)     * Language extensions (lib/language.tcl)
-    * Set up core words:+  * Set up core words:
     * Assert     * Assert
     * Retract     * Retract
Line 26: Line 26:
     * Hold     * Hold
     * Step     * Step
-    * Implement shared heap +  * Implement shared heap 
-    * Implement mailboxes+  * Implement mailboxes
 **Kick everything off:** **Kick everything off:**
   * Init zygote   * Init zygote
Line 57: Line 57:
  
 TODO: definitely more to talk about here TODO: definitely more to talk about here
- 
- --- //[[stephen.mason.jones@gmail.com|Mason Jones]] 2025/02/07 18:33// 
  
 ===== Process communication diagram ===== ===== Process communication diagram =====
 {{:notes:process-notes.jpg?600|}} {{:notes:process-notes.jpg?600|}}
 +
 +===== folk2 notes =====
 +==== Libraries ====
 +Libraries are a new concept in order to facilitate code reuse consistently across threads. Create a library using something like ''[library create myNewLib {varFromCurrentEnv} { # my library code }]''. It'll return something like ''<library:/tmp/myNewLib_TaaRfi.tcl>''. Whenever that library handle is called, it'll be lazily loaded. Lazy loading works because when an unknown command (e.g. the library handle) is called, it will execute the ''unknown'' proc. The ''unknown'' proc will then source the library, and in the process create a namespace with the name of the library handle. With that namespace, it'll no longer call ''unknown'' (unless of course the last 6 characters change because the library was modified).
notes/internals.1738961992.txt.gz · Last modified: by smj-edison

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki