From 7e1beee1ce50403b4f6aad25fe3f973b48162280 Mon Sep 17 00:00:00 2001 From: Jeroen van der Heijden Date: Thu, 11 Jun 2026 21:51:24 +0200 Subject: [PATCH 1/2] reserve_extra_names --- inc/ti/version.h | 2 +- src/ti/spec.c | 146 +++++++++++++++++++++++++++++------------------ 2 files changed, 90 insertions(+), 58 deletions(-) diff --git a/inc/ti/version.h b/inc/ti/version.h index 1bf04a50..869bc01a 100644 --- a/inc/ti/version.h +++ b/inc/ti/version.h @@ -25,7 +25,7 @@ * "-rc0" * "" */ -#define TI_VERSION_PRE_RELEASE "-alpha0" +#define TI_VERSION_PRE_RELEASE "-alpha1" #define TI_MAINTAINER \ "Jeroen van der Heijden " diff --git a/src/ti/spec.c b/src/ti/spec.c index a054da87..319a8429 100644 --- a/src/ti/spec.c +++ b/src/ti/spec.c @@ -26,8 +26,9 @@ * * pcregrep -o1 ' :: `(\w+)' spec.c | gperf -E -k '*,1,$' -m 200 - :: `any` :: `ano` + :: `any` + :: `big` :: `bool` :: `break` :: `bytes` @@ -37,15 +38,21 @@ :: `date` :: `datetime` :: `else` + :: `email` :: `enum` :: `error` + :: `false` :: `final` :: `float` :: `for` + :: `future` :: `if` :: `in` :: `int` + :: `interface` :: `list` + :: `module` + :: `mpdata` :: `nil` :: `nint` :: `number` @@ -57,24 +64,31 @@ :: `set` :: `str` :: `task` + :: `tel` :: `thing` :: `time` + :: `timedelta` :: `timeval` + :: `trait` + :: `true` :: `try` :: `tuple` + :: `type` + :: `typed` :: `uint` :: `union` + :: `url` :: `utf8` */ enum { - TOTAL_KEYWORDS = 39, + TOTAL_KEYWORDS = 53, MIN_WORD_LENGTH = 2, - MAX_WORD_LENGTH = 8, + MAX_WORD_LENGTH = 9, MIN_HASH_VALUE = 3, - MAX_HASH_VALUE = 46 + MAX_HASH_VALUE = 67 }; static inline unsigned int spec__hash( @@ -83,32 +97,32 @@ static inline unsigned int spec__hash( { static unsigned char asso_values[] = { - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 17, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 15, 10, 13, - 9, 0, 11, 13, 0, 5, 47, 8, 2, 8, - 0, 3, 16, 47, 2, 0, 0, 3, 2, 13, - 11, 19, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47 + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 14, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 5, 11, 11, + 3, 3, 10, 35, 3, 0, 68, 16, 3, 22, + 1, 8, 22, 68, 0, 15, 4, 0, 7, 12, + 4, 20, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68 }; register unsigned int hval = n; @@ -116,6 +130,9 @@ static inline unsigned int spec__hash( switch (hval) { default: + hval += asso_values[(unsigned char)s[8]]; + /*FALLTHROUGH*/ + case 8: hval += asso_values[(unsigned char)s[7]]; /*fall through*/ case 7: @@ -148,47 +165,62 @@ _Bool ti_spec_is_reserved(register const char * s, register size_t n) static const char * wordlist[] = { "", "", "", - "set", - "", - "str", - "else", "in", - "int", - "nint", + "", "", + "url", "nil", - "list", + "int", "uint", + "nint", + "true", + "if", + "tel", "return", - "error", - "enum", "union", - "time", - "if", - "for", - "room", + "error", "ano", - "bool", - "thing", + "trait", + "date", + "raw", + "for", + "str", + "future", + "final", + "set", + "list", "try", + "else", + "any", + "enum", "pint", + "utf8", + "time", + "bool", + "float", + "continue", "tuple", - "task", - "date", + "email", + "catch", + "break", + "false", + "room", "number", + "task", + "module", + "interface", "closure", + "thing", + "big", "regex", - "continue", - "raw", - "bytes", - "utf8", - "float", - "any", - "final", "timeval", - "break", - "", "", "", "", "datetime", - "catch" + "type", + "", "", + "timedelta", + "typed", + "bytes", + "", "", "", "", "", "", "", "", + "mpdata" }; if (n <= MAX_WORD_LENGTH && n >= MIN_WORD_LENGTH) From d2b530b9b16f25f9e4ebf21b1cc04c13453b6b7b Mon Sep 17 00:00:00 2001 From: Jeroen van der Heijden Date: Thu, 11 Jun 2026 21:59:48 +0200 Subject: [PATCH 2/2] Updage changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b79d016e..5188d59d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ -# v1.8.9-alpha0 +# v1.8.9-alpha1 * Include `tasks` and `restarts` for `modules_info()` on _node_ scope, issue #447. +* Added extra reserved named _(see pull request for list of names)_, pr #448. # v1.8.8