2026/06/05

From WoozleCodes
< 2026 | 06
Jump to navigation Jump to search
Friday, June 5, 2026 (#156)
Thursday Friday Saturday posts:prev <this> next

References

Working on Ferreteria FileSys stuff in order to support sftp in FTM.

Updating yesterday's summary to use the new terminology:

  • $oWild->OIdent->OVenue->Exists fails because creating ident->OVenue calls ident->NewProto()[1] which reads ident->SUSpec[2] which needs to read ident->OPSpec->SUSpec[3] which needs to read $OPChain->OLeaf (wait, what?*) in order to call OLeaf->SPSpec().
  • Remaining question: why isn't FromSUSpec($fs) initializing $oChain->OLeaf?

Maybe more renaming is called for:

old name new name why done
NodeURL USpecNode to update "URL" and put the spec-type first
PathChain PSpecChain to update/disambiguate "Path"
PathPiece PSpecPiece to update/disambiguate "Path"

*Okay, this may be at the heart of the problem. PSpecChain has a $SUSpec property (which Ident's $SUSpec shortcuts to). Does this make sense? Or should PSpecChain just be managing the on-device path (PSpec)?

  • It made more sense when Venue was just a utility and required passing the PSpec for every operation, but that is no longer the case.
  • Some restructuring is needed. I may need a diagram...

The current situation:

                                         ┌───────────┐      ┌────────────┐      ┌────────────┐
                          ┌──────────────► USpecNode ┼──────► PSpecChain ┼──────► PSpecPiece │
┌───────┐           ┌─────┼─┐            └───────────┘      └────────────┘      └────────────┘
│ Ident │──────────►│ Venue │                                                             
└───────┘           └─────┬─┘            ┌──────┐                                         
                          └──────────────► Stat │                                         
                                         └──────┘                                         

Maybe this is ok? On the other hand:

  • Venue & Stat are more about InOut stuff
  • the *Spec* classes are about Ident stuff (which fits with their being under Ident\spex)

Maybe things should be reorganized along those lines:

┌───────┐        ┌───────┐      ┌────────────┐      ┌────────────┐
│ Ident │────────► USpec ┼──────► PSpecChain ┼──────► PSpecPiece │
└───────┘        └───────┘      └────────────┘      └────────────┘
                                                                  
┌───────┐        ┌───────┐      ┌──────┐                          
│ InOut │───────►│ Venue ┼──────► Stat │                          
└───────┘        └───────┘      └──────┘                          

12:47

Ok, so, I've moved [WFe]Sys\FileSys\Aspect\Ident\native\Stat to [WFe]Sys\FileSys\Aspect\InOut\native\Stat, because that one seems kind of obvious.

I have to think more carefully about Venue, because I seem to recall that the stuff it covers is a mixture of InOut and Ident... and, wait a sec, so does Stat. Ok, let's try going with the idea that Venue is a third prong: I've now put it in [WFe]Sys\FileSys\Aspect\Venue\native\Stat instead.

15:35

So now it's like this (, cat):

                    ┌───────┐        ┌───────┐      ┌────────────┐      ┌────────────┐
     ┌──────────────► Ident │────────► USpec ┼──────► PSpecChain ┼──────► PSpecPiece │
     │              └───────┘        └───────┘      └────────────┘      └────────────┘
     │                                                                                
┌────┼─┐            ┌───────┐                                                         
│ Node ┼────────────► InOut │                                                         
└────┬─┘            └───────┘                                                         
     │                                                                                
     │              ┌───────┐      ┌──────┐                                           
     └──────────────► Venue ┼──────► Stat │                                           
                    └───────┘      └──────┘                                           

...or will be, after I make the necessary edits.

21:20

I think maybe Node needs to retain the $SUSpec, and perhaps be the primary source for it, because the Aspect objects are all initialized from Node and nothing else.

Footnotes

    1. ...which still should be renamed NewVenue(), but deal with that later.
    2. formerly "calls $this->SpecFull()"
    3. OUSpec formerly known as OSpec