Right — here it is, plainly.
Hal7.uhp vs ultrahal8.uhp
Hal7.uhp ultrahal8.uhp
Size 160,829 bytes 356,669 bytes
Lines 2,634 6,054
Functions/Subs 8 66
DB tables created 1 6
Response blocks 42 60
Comment lines 586 1,806
WordNet calls 4 21
CustomMem uses 24 38
Version stamp none 2026.09.01.0638
Hal7's entire brain is 8 routines: UltraHal, GetResponse, DetectGibberish, SimpleYesNo, Minute_Timer, Script_Load, Script_Unload, AboutOptions.
What was added — 58 new functions
Fact learning & recall (9) — ExtractFact, ExtractHalFact, RecallFact, RecallAllFacts, RecallAllHalFacts, RenderFact, RenderHalFact, FactCount, FactValueOf
Hal stores what you tell him as structured facts instead of just pattern-matching the sentence.
Grammar / person handling (8) — SwapValuePerson, LooksLikeVerb, VerbBase, Deconjugate, Detense, SingularTail, IsPersonWord, NormalizeRelation
This is the reverse-person fix — "you like my ideas" no longer comes back as "I like my ideas".
Query coverage (6) — RelationStartingWith, RelationStartingWithIn, IsMemoryQuestion, TopicalQuestion, FactInsideQuestion, CuriosityGap
Longest-prefix matching, so more phrasings of the same question actually find the stored fact.
Pronouns & multi-clause (5) — ResolvePronoun, ClauseRemainder, CutAtClause, StripHedge, TrimFiller
He/she carry-over across sentences, and up to 4 facts pulled from one sentence.
Time awareness (7) — FactStamp, FactStampOf, FactTimeOf, OldestFactStamp, DescribeWhen, DescribeDuration, DescribeClock
Facts carry timestamps, so Hal can say when he learned something.
Emotion & consistency (10) — CurrentEmotion, RaisedTensions, FindContradiction, IsDenial, IsRetraction, IsDisagreement, IsGoodResponse, IsBadResponse, SaidRecently, WriteMoodFile
New tables (5): userFacts, halFacts, badResponse, goodResponse, raisedTensions
Biggest routines in Hal8: GetResponse 3,493 lines · UltraHal 336 · ExtractFact 214 · ExtractHalFact 109 · FindContradiction 68
Short version: Hal7 pattern-matches the conversation. Hal8 adds a grammar-aware memory layer on top of it — ~3,400 lines doing that one job.
Hal7.uhp vs ultrahal8.uhp
Hal7.uhp ultrahal8.uhp
Size 160,829 bytes 356,669 bytes
Lines 2,634 6,054
Functions/Subs 8 66
DB tables created 1 6
Response blocks 42 60
Comment lines 586 1,806
WordNet calls 4 21
CustomMem uses 24 38
Version stamp none 2026.09.01.0638
Hal7's entire brain is 8 routines: UltraHal, GetResponse, DetectGibberish, SimpleYesNo, Minute_Timer, Script_Load, Script_Unload, AboutOptions.
What was added — 58 new functions
Fact learning & recall (9) — ExtractFact, ExtractHalFact, RecallFact, RecallAllFacts, RecallAllHalFacts, RenderFact, RenderHalFact, FactCount, FactValueOf
Hal stores what you tell him as structured facts instead of just pattern-matching the sentence.
Grammar / person handling (8) — SwapValuePerson, LooksLikeVerb, VerbBase, Deconjugate, Detense, SingularTail, IsPersonWord, NormalizeRelation
This is the reverse-person fix — "you like my ideas" no longer comes back as "I like my ideas".
Query coverage (6) — RelationStartingWith, RelationStartingWithIn, IsMemoryQuestion, TopicalQuestion, FactInsideQuestion, CuriosityGap
Longest-prefix matching, so more phrasings of the same question actually find the stored fact.
Pronouns & multi-clause (5) — ResolvePronoun, ClauseRemainder, CutAtClause, StripHedge, TrimFiller
He/she carry-over across sentences, and up to 4 facts pulled from one sentence.
Time awareness (7) — FactStamp, FactStampOf, FactTimeOf, OldestFactStamp, DescribeWhen, DescribeDuration, DescribeClock
Facts carry timestamps, so Hal can say when he learned something.
Emotion & consistency (10) — CurrentEmotion, RaisedTensions, FindContradiction, IsDenial, IsRetraction, IsDisagreement, IsGoodResponse, IsBadResponse, SaidRecently, WriteMoodFile
New tables (5): userFacts, halFacts, badResponse, goodResponse, raisedTensions
Biggest routines in Hal8: GetResponse 3,493 lines · UltraHal 336 · ExtractFact 214 · ExtractHalFact 109 · FindContradiction 68
Short version: Hal7 pattern-matches the conversation. Hal8 adds a grammar-aware memory layer on top of it — ~3,400 lines doing that one job.