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