Skip to content
Permalink
develop
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.

0.12.6 (2022-04-07)

♻️ Refactoring

  • replace deprecated .substr() w/ .substring() (0710509)

0.12.0 (2021-11-17)

🚀 Features

  • Using workspaces for local tools (bf7a404) Improving the overall build ergonomics
    • introduced a tools workspaces
    • imported it in all needed packages/examples
    • inclusive project root

♻️ Refactoring

  • testrunner to binary (4ebbbb2) this commit reverts (partly) changes made in: ef346d7a8753590dc9094108a3d861a8dbd5dd2c overall purpose is better testament ergonomics: instead of having to pass NODE_OPTIONS with every invocation having a binary to handle this for us.

0.11.1 (2021-10-13)

♻️ Refactoring

  • update imports in all tests/pkgs (effd591)
  • update imports in all pkgs (5fa2b6f)
    • add .js suffix for all relative imports

0.11.0 (2021-10-12)

🛑 Breaking changes

  • remove AST optimization tools (a1174db)
  • BREAKING CHANGE: migrate AST optimizations to new package
  • major update of ALL pkgs (export maps, ESM only) (0d1d6ea)
  • BREAKING CHANGE: discontinue CommonJS & UMD versions
    • only ESM modules will be published from now on
    • CJS obsolete due to ESM support in recent versions of node:
      • i.e. launch NodeJS via:
      • node --experimental-specifier-resolution=node --experimental-repl-await
      • in the node REPL use await import(...) instead of require()
    • UMD obsolete due to widespread browser support for ESM Also:
    • normalize/restructure/reorg all package.json files
    • cleanup all build scripts, remove obsolete
    • switch from mocha to @thi.ng/testament for all tests

🚀 Features

  • update & export gensym() (8a3f1ff)
    • add opt prefix arg for better re-use

♻️ Refactoring

  • sideeffect-free defmulti specs (1282973)
  • update deps & imports in various pkgs (e1cf29e)
    • largely related to recent updates/restructuring of these packages:
      • api
      • defmulti
      • errors
      • logger
  • update imports (138571a)
  • update all tests in all pkgs (8b582bc)

0.10.0 (2021-08-17)

🚀 Features

  • add reciprocal() syntax sugar (c710d81)
  • add node type for matrix indexing (394dd49)
    • add idxm node Tag
    • add IndexM node type interface
    • update indexMat(), add column type LUT
    • update TargetImpl interface

Performance improvements

  • avoid nested literals (998cf35)
    • update lit() to avoid nesting if already same type & info

0.9.0 (2021-08-13)

🚀 Features

  • add optimizers for built-in fns (b0124d7)
  • update/improve AST optimizer (ad60add)
    • add support for lit hoisting & single comp swizzling
    • add logger support in replaceNode()
    • update constantFolding() to run iteratively as many times as needed
    • fix op1/op2 optimizers to use correct node predicates
  • add module logger (24c8ad5)
  • add/update AST node predicates (8a4855e)
  • add/update vec2/3 & float consts (2748f0b)

0.8.14 (2021-06-08)

🩹 Bug fixes

  • add missing vector coercions (a84e053)
    • update ivec/uvec/bvec2/3/4 ctors

0.8.13 (2021-04-24)

🩹 Bug fixes

  • fix/extend vec coercions info (6679b52)

0.8.1 (2021-03-03)

♻️ Refactoring

  • simplify texture fns (a0a2bda)
    • update $call helper to support all texture lookup args, re-use

0.8.0 (2021-02-24)

🚀 Features

  • add more texture lookup fns (3c95d13)
    • add tests

0.7.1 (2020-09-13)

♻️ Refactoring

0.7.0 (2020-08-28)

🚀 Features

  • allow nullish defn() func name (autogen) (d959858)
    • make name arg optional and auto-generate if nullish
  • add PrimTerm, PrimTypeMap, TermType (ffdfe81)

🩹 Bug fixes

  • fix vec3(vec2, float) ctor version (bd5395d)

0.6.1 (2020-08-12)

♻️ Refactoring

  • update madd()/addm() args (cfce142)

0.6.0 (2020-08-10)

🚀 Features

  • add/update vec coercions (764f4e5)
    • add $info() helper to allow new coercion details:
      • b = bvec
      • i = ivec
      • u = uvec
      • v = vec
    • add tests

0.5.2 (2020-08-08)

🩹 Bug fixes

  • fix typo in isTerm(), add tests (615c8d2)

0.5.1 (2020-08-08)

🩹 Bug fixes

  • update allChildren(), add isTerm() (267a0c0)
    • update allChildren() to descend into literals if value is a Term

0.5.0 (2020-08-08)

🚀 Features

  • add vec coercions (bvec, ivec..) (a0d0c55)

♻️ Refactoring

0.4.0 (2020-07-28)

🚀 Features

  • add sym interpolation qualifiers (0601af2)
    • add Interpolation type
    • add SymOpts.smooth option

0.3.6 (2020-02-25)

♻️ Refactoring

0.3.0 (2019-08-21)

🚀 Features

  • add modf(), isnan(), isinf() built-ins (7fae67b)

♻️ Refactoring

  • update constant folding using defmulti (e9dfacb)
  • update allChildren() (e3ae743)
  • more re-use vec/mat ctors (bcd5829)
  • improve re-use vec ctors, bvec ops, texture fns (1774c9b)
  • split large TS files into smaller subfolders (9a4881b)

0.2.3 (2019-08-17)

🩹 Bug fixes

  • update atan built-in handling (9f0c739)
    • add call info for 2-arg version

0.2.0 (2019-07-12)

🚀 Features

  • support number casts from bools (119f257)

🩹 Bug fixes

  • builtin not (bvec) used wrong internal fn name (237c6f3)

0.1.1 (2019-07-08)

🩹 Bug fixes

  • fix #98, update defn() arg lists, add/update docs (bcfbcfd)

♻️ Refactoring

0.1.0 (2019-07-07)

🚀 Features

  • add powf(), update matchingPrimFor() (ac179a3)
  • add support for (iu)sampler types, add textureGrad() (f8f245b)
  • update texture builtins, add texelFetchOffset (a0af395)
  • update numeric ctors/casts, update swizzles, add uvec/bvec ctors (423fd84)
  • add $xy, $xyz swizzle sugar (ff0ed9e)
  • add arraySym(), update op2 to accept plain numbers (dc4dc15)
  • add % modulo operator as modi() (e7ace59)
  • add builtins, discard, add/refactor ControlFlow node type (663e992)
    • add texelFetch()
    • add dFdx / dFdy / fwidth()
  • add defMain, allow null values in scope bodies (de0a3da)
  • update program() to accept global syms & fns, add/update docs (95524fb)
  • add post-increment/decrement, update op1() (c809af1)
  • add input(), output(), uniform(), update SymOpts (1307b3f)
  • add isBool() helper, update gensym() to use base36 ids (2b23b83)
  • add ivec / uvec support, bitwise ops, update types (4f7ca39)
  • add type aliases, update all uses, minor additions (0914c56)
    • XXXTerm & XXXSym aliases
    • add transformMVP() & surfaceNormal std lib fns
    • fix tests
  • add WASM target basics & C runtime (ef06c74)
  • add/update stdlib functions & docs (e36c5b8)
  • add single component swizzle fns (8b36527)
  • add/update sdf fns, fix fogExp2, update readme (d5115ff)
  • update GLSL & JS targets to support texture fns (10782e2)
    • JS target only provides stubs for now
  • add texture built-ins (42ffed9)
  • add program(), add docs (fd1fca9)
  • simplify fn dep/call graph handling, fix allChildren() (6ee63ea)
  • add trilight lighting model (0705e9d)
  • add buildCallGraph(), add deps (4017284)
  • major updates (51d42b4)
    • add initial collection of re-usable shader functions
      • SDF primitives & combinators
      • raymarch helpers
      • fog/falloff functions
      • clamp / fit
      • lambert / diffuse lighting
    • add constantFolding() tree optimizer
    • add userland function dependencies (mandatory, but still unused)
    • optimize single component swizzles in JS target
    • add more node type checkers, update walk()
    • update types
  • rename swizzle() => $(), add break/continue (5db7d1c)
  • add forLoop(), ternary(), fix float/int casts, docs (474e320)
  • add sym() fn overrides, args (02d62a2)
  • update JS codegen (1d4cc58)
    • add matrix impls
    • add vector/matrix scalar impls
    • update op2 gen
  • add op2 info, fix result type, make var names optional (9cc13ab)
  • major update JS codegen, implement most builtin fns, fixes (7da1738)
    • add JSBuiltins* interfaces, update JSEnv
    • add JS_DEFAULT_ENV w/ all implementations (for actual code execution)
    • fix swizzle assignments
    • update fn & operator calls
    • update JSTarget.compile()
  • add builtins, update codegens, sym/lit opts, matrices (3caede4)
  • add JS target, re-org (c4a35e1)
  • add AST node types, builtins, major refactor (f8caed5)
    • add scope nodes for functions, branching and as mechanism to create var declarations from existing embedded symbols. any direct descendant Sym within a scope will transformed into a Decl node (var declaration)
    • update defn() to traverse local scope to check for correct return type
    • implement array indexing (Index)
    • update assignments to allow Sym, Swizzle, Index nodes on LHS
    • update swizzle() to support ivec2/3/4 types
    • update vec2/3/4 ctors
    • update math ops to support more types
    • add comparison ops
    • add builtinCall()
    • add various builtin GLSL func call wrappers
    • refactor / simplify GLSL code gen
    • update readme
  • update/rename targetGLSL() (2e405f8)
    • add builtin output vars (gl_Position etc)
    • add GLSLTarget interface
    • implement assignment
  • add assignments, re-org types, update vec ctors (7dc32d1)
    • temp disable ret type check in defn()
  • more fn arities, add defTarget(), add/update types (fdceb65)
  • initial pkg import w/ updated deps & readme (30efebe)

🩹 Bug fixes

  • update allChildren() (1711064)
  • mod() type inference (1412f71)
  • allChildren() (while loop support) (3a559cf)
  • use GLSL style mod in JS codegen (b4ca8e4)
  • buildCallGraph zero-dep fn handling (2f9da96)
  • use JS op2 info hints to delegate (162c1ae)
  • fix op2(), update Tag, general cleanup (46bcb04)

♻️ Refactoring

  • update/add op2 info tags (incl. integer ops) (4e0cf46)
  • rename numeric types, make defTarget generic (ba0eaa6)
    • f32 => float
    • i32 => int
    • u32 => uint
  • rename predef'd bool consts (8a8eecc)
  • internal reuse in emitGLSL() (9dacac6)