Skip to content

sdeverywhere: v0.6.0

Compare
Choose a tag to compare
@climateinteractive-bot climateinteractive-bot released this 04 Jun 01:11
07fd164

0.6.0 (2022-06-04)

Features

  • 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

Bug Fixes

  • 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

Performance Improvements

  • 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