User Tools

Site Tools


notes:internals

This is an old revision of the document!


Internals

NOTE: these are internals as I (smj-edison) understand them, not necessarily how things work in practice.

main.tcl overview (entry point to system)

Lots of setup:

  • Kill other tcl scripts
  • Select entry script
  • Import essential libs:
    • C compiler (lib/c.tcl) and utils (lib/c-utils.tcl)
    • Trie data structure (lib/trie.tcl)
    • Evaluator (lib/evaluator.tcl)
    • Environment handling
    • Language extensions (lib/language.tcl)
    • Set up core words:
    • Assert
    • Retract
    • Say
    • Claim
    • Wish
    • When
    • Every
    • Start
    • On
    • After
    • Hold
    • Step
    • Implement shared heap
    • Implement mailboxes

Kick everything off:

  • Init zygote
  • Define program loading function:
    • Put all programs in file system into dictionary
    • Share programs with all threads
    • Claim programs into existence
  • Start web server
  • Run entry script

Tag transformation from camera to projector

From what I understand, all spaces (tag space, camera space, projector space) are in meters.

Claim/Wish/When scheduling

Core words are inserted into a queue. When statements serialize their environment (meaning there's no exfiltration of information).

Running Step runs through the queue(?).

Say is a step above Wish/Claim(?). Say ::thisNode wishes the sky is blue vs Wish the sky is blue

TODO: definitely more to talk about here

Mason Jones 2025/02/07 18:33

notes/internals.1738957295.txt.gz · Last modified: by smj-edison

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki