0.7.20 (2024-09-15)
- The following workspace dependencies were updated
- dependencies
- @sdeverywhere/parse bumped from ^0.1.0 to ^0.1.1
- dependencies
0.7.19 (2024-08-28)
- cache sorted variables to improve compile performance (#531) (0c359c8), closes #528
- include 'initial' variables in JSON model listing (#529) (2e1a004), closes #527
0.7.18 (2024-08-17)
- add bundleListing, customLookups, and customOutputs settings to control code generation (#504) (fcea642), closes #503
- add compiler and runtime support for generating pure JS models (#486) (42d4dc6), closes #437
- add support for GAME function and for providing gaming inputs at runtime (#505) (338e91e), closes #483
- allow for creating a LookupDef without manually initializing a ModelListing (#502) (5690055), closes #501
- allow for overriding data variables and lookups at runtime (#490) (6c888e8), closes #472
- change encoding of variable and lookup indices to allow for arbitrary number of subscripts (#507) (697e943), closes #506
- remove old implementation of read and code gen phases (#473) (8de0d16), closes #448
- update build and plugin packages to support JS code generation (#487) (18b0873), closes #479
0.7.17 (2024-04-22)
0.7.16 (2024-04-19)
0.7.15 (2024-04-17)
- correct generation of level variables when SMOOTH3[I] input param has subscripts but delay param does not (#457) (fd3bfab), closes #313
0.7.14 (2024-03-12)
0.7.13 (2024-03-11)
- prevent subscripted input variables from being pruned (#439) (876dad7), closes #438
- rewrite recordRefsOfVariable to avoid blowing the stack (#443) (a2bbce9), closes #442
0.7.12 (2024-02-23)
- improve error handling/reporting and prevent premature exit in dev mode (#434) (98ab523), closes #260
0.7.11 (2024-01-17)
- add new expandVarNames function that works with both old and new parsers (#423) (2964887), closes #422
- add new implementation of read and code gen phases based on
parse
package (#413) (5538a4f), closes #412 - allow
--genc
and--list
arguments to be used in the samesde generate
command (#425) (9f97332), closes #424
0.7.10 (2023-11-15)
- allow lowercase cell reference in GET DIRECT function calls (#396) (76f890c), closes #395
- handle case where subscript/index appears in expression position (#398) (7ff1380), closes #397
- handle XLSX files in GET DIRECT {CONSTANTS,DATA,LOOKUPS} (#400) (16b1ddf), closes #399
0.7.9 (2023-10-18)
- allow numeric ranges in subscript range definitions (#375) (da13dc4), closes #318
- correct handling of lookups defined by GET DIRECT LOOKUPS when used as function call arguments (#379) (a032779), closes #378
0.7.8 (2023-09-29)
- prevent error in JSON listing creation when Time variable is not explicitly referenced in the model (#368) (4bf0a39), closes #365
0.7.7 (2023-09-28)
0.7.6 (2023-09-05)
0.7.5 (2023-01-26)
0.7.4 (2022-12-13)
0.7.3 (2022-12-10)
0.7.2 (2022-12-09)
0.7.1 (2022-10-25)
0.7.0 (2022-06-28)
- The
sdeverywhere
package is deprecated and effectively replaced by@sdeverywhere/cli
. Additionally, thesde generate --genhtml
command and supporting code has been removed and will be replaced with a different solution in the near future.
0.6.0 (2022-06-04)
- add
runModelWithBuffers
entry point that takes pre-allocated input/output buffers (#50) (083109a), closes #49 - add basic support for GET DATA BETWEEN TIMES function (#42) (8a294aa), closes #33
- add sde command for flattening parent+submodels (#59) (50e11ec), closes #58
- add support for external data variables that use subscript or dimension (#41) (035ab5c), closes #32
- add support for external data variables with > 2 dimensions (#47) (6683e63), closes #45
- allow for specifying I/O variables using Vensim names in spec file (#61) (a6bc98d), closes #60
- implement ALLOCATE AVAILABLE function (#106) (ebd0311)
- implement DELAY FIXED function (#108) (bd3b3e8), closes #29
- implement GET DIRECT CONSTANTS for CSV (#86) (beedd4f)
- implement GET DIRECT DATA for CSV (#82) (b40e738), closes #81
- implement GET DIRECT LOOKUPS including a test model (#99) (47f6fe5), closes #98
- implement GET DIRECT SUBSCRIPT for CSV (#79) (51691e7)
- implement NPV function (#95) (9fa17eb), closes #94
- implement QUANTUM function (#89) (42225f9), closes #87
- implement the <-> subscript alias operator (#80) (a43917f), closes #78
- increase the number of dimension and array loop index vars (#138) (4c66470), closes #137
- remove inline comments in the preprocessor (#74) (d23b1c3)
- sort equations alphabetically when preprocessing mdl file (#56) (bb968f7), closes #55
- abort code generation on finding a lookup of size zero (#162) (44c1202), closes #161
- add async and await to some chained cli functions (#37) (afdbb77), closes #35
- allow > 2 dimensions when generating Vensim array names (#155) (6575ea9), closes #154
- allow extra index subscripts in 2D const lists (#110) (f5494af), closes #109
- allow GET DIRECT CONSTANTS to use 2 subscripts in the same family (#144) (e53d876), closes #143
- correct declarations when subscripted variable is initialized from data and constants (#116) (7c51641), closes #115
- correct GET DIRECT DATA with mapped dim by directly comparing indices (#146) (fa2097b), closes #145
- correct initialization of 2D arrays to allow dimensions with matching subscript names (#101) (2ed7e42), closes #84
- emit any expression for the offset arg of VECTOR ELM MAP (#129) (bd0a724), closes #128
- exclude data vars from initLevels (#127) (93a49cf), closes #126
- expand references to vars with any number of separated dimensions (#112) (0d0d40e), closes #111
- expand variables allowing for any number of indices in EXCEPT clause (#118) (d92343e), closes #117
- fix LOOKUP FORWARD to correctly handle fractional inputs (#38) (c1f9580), closes #36
- generate correct references for the ALLOCATE AVAILABLE priority profile (#136) (b1d8ae2), closes #135
- get direct data offset from the separated dimension (#114) (ebbaa01), closes #113
- handle subdimensions correctly for GET DIRECT CONSTANTS and fix EXCEPT handling (#125) (2fdfb34), closes #124 #134
- handle subscripts correctly when nested in expr within array function call (#48) (b2458ab), closes #46
- make
sde log
wait for DAT file to be fully written and improve error handling (#123) (34f25f8), closes #122 - make browserify an optional dependency (#53) (e9bbbc6), closes #52
- make flatten command work when equations don't include continuation backslash (#173) (ac7c027)
- prevent memory leaks in fixed delay initialization (#160) (e158b2f), closes #159
- record variants of a subscripted variable in removeUnusedVariables (#65) (f6d7035), closes #64
- refine the ALLOCATE AVAILABLE search algorithm (#141) (bca43a0), closes #139
- remove fcmp library and rewrite expressions without using its macros (#131) (df76872), closes #107
- remove unnecessary memcpy loop in lookup data initialization (#166) (b94d9c4), closes #165
- set model directory in the sde causes command (#142) (44d326e), closes #140
- take DELAY FIXED value from input when delay time = 0 (#148) (328d050), closes #147
- terminate generated equations with ~~| (#120) (44d1c2a), closes #119
- use a global replace to join multiple line Vensim equations in comments (#175) (678f2bb)
- use case-insensitive sort and remove trailing whitespace in preprocessor (#57) (d58390a), closes #55
- use chunkedFunction to break up initLookups into smaller functions (#133) (bad4580), closes #132
- use correct subdimension index for delay aux vars (#92) (7158b0f), closes #91
- use subdim indices for GET DIRECT DATA (#164) (d7b46c6), closes #163
- wrap conditional branch expression in parentheses when optimizing IF THEN ELSE (#153) (bd42d54), closes #152
- cache last input and last accessed index for faster lookups (#43) (0933a89), closes #34
- cache parsed CSV file data and replace Array with Set to improve code gen performance (#168) (58a45ba), closes #167
- improve code gen performance by avoiding linear searches (#63) (d4bf555), closes #62
- optimize IF THEN ELSE for cases where condition expression resolves to a constant (#103) (f9ef675), closes #102
- remove variables that are not referenced by input or output variables (#44) (6c80c59), closes #1
- improved performance of LOOKUP
- optimized dimension name references to avoid array accesses
- changed lookup initialization to use static arrays for improved Wasm performance
- replaced wrapper functions with C macros to reduce function call overhead
- split large functions reduce stack frame size (improves Wasm memory use and performance)
- includes fixes that more fully automate conversion of complicated MDL model files
- moved tools to Python 3
- use the updated ANTLR-Version package
- improved support for two-dimensional arrays
- added handling of 2D constant arrays with subscripts in any order
- added support for dimension name references
- added support for ELMCOUNT
- added support for PULSE TRAIN
- updated documentation
- updated npm package dependencies
- support multiple chartDatfiles delimited by semicolons in app.csv
- override generated app styles in an optional custom.css file in the config folder
- add optional varname prefix to readDat
- web app generation uses simpler CSV configuration instead of YAML
- three-dimensional arrays
- :EXCEPT: subscripts
- two-dimensional const arrays
- GET DIRECT DATA for Excel at code generation time
- read output variables from DAT files to WITH LOOKUP variables
- generate variable documention in text and YAML formats
- allow all special characters in variable names
- improved coverage of subrange and mapping edge cases
- enable a blank cell in the HTML input panel with an empty value in
sliders
- add
sde causes
command to print model variable dependencies - fixed HTML generation on Linux
- corrected instructions for building from the repo
- updated web app generation to use an improved template
- added new app.yaml web app specification file
- generate complete web app with the
sde generate --genhtml
command - removed the Vensim grammar to an independent package
- removed the lotka sample model
- added the SIR sample model
- optimized performance by making high-precision floating point comparisons optional
- added support for generating code to run the model interactively
- removed unnecessary glib2 dependency
- added a warning message when an input or output variable does not exist in the model
- fill in all ref ids for a generated variable that is expanded over a non-apply-to-all array
- implement Vensim data variables in DAT files with lookups