5 Commits
Author SHA1 Message Date
zeekay 3cfebaa7bd fix(go.mod): declare module path github.com/hanzoai/expr
Go 1.21+ rejects 'replace X => Y vN' when Y's go.mod declares a module
path other than Y. The prior v1.17.8 kept 'module github.com/expr-lang/expr'
while being hosted+required at github.com/hanzoai/expr, so consumers on
Go 1.26 fail with:

  module declares its path as: github.com/expr-lang/expr
          but was required as: github.com/hanzoai/expr

Rehome the declared module path to github.com/hanzoai/expr and repath all
internal imports to match. Consumers keep 'require github.com/expr-lang/expr'
and 'replace github.com/expr-lang/expr => github.com/hanzoai/expr vX' — the
standard renaming-fork pattern that Go's replace path-check accepts.
2026-06-30 20:12:29 -07:00
zeekay 961d4a47d0 fork: keep upstream module path github.com/expr-lang/expr (consumed via replace), rehome to hanzoai/expr 2026-06-30 17:46:21 -07:00
zeekay 1e8be921d2 fork: rename module to github.com/hanzoai/expr 2026-06-30 17:34:46 -07:00
Anton MedvedevandGitHub fee5690347 Refactor checker to use Nature (#665)
This PR introduces a new concept inside Expr's type checker - Nature.

It's an abstraction other reflect.Type which carries additional information about possible type, methods and builtin function.

I was able to find and fix a few bugs in type checker and optimizer. Implementation of nature concept has proven itself. As well nature will allow to bring more feature for type checker in future.

Why Nature? I was looking for a name to replace Type. Type name already carries much information, as well can be confused with reflect.Type. Nature name should be understood as "nature of the node", same as "type of the node".
2024-06-01 00:09:22 +02:00
Anton Medvedev 8589d34039 Add sum([]) optimization 2024-04-13 23:16:08 +02:00