Skip to content

Releases: SpaceManiac/SpacemanDMM

SpacemanDMM suite v1.11

30 Aug 21:52
suite-1.11

Choose a tag to compare

This maintenance update improves SpacemanDMM's support for BYOND 516, thanks to ShiftyRail, Zonespace, and other contributors.

Core

Core updates apply to all components.

  • Add support for call_ext(LoadedFunc) syntax (by Lucy, #433).
  • Add support for for (var/k, v in X) syntax (by ShiftyRail, #431).
  • Add missing /pixloc/var/x and y (by ZeWaka, #441).
  • Remove warning for using a macro too close to undefining it, as it is now irrelevant (#423).
  • Add a field list to the unnamed type used by /callee/var/proc, so its vars can be checked.

Language Server

  • Add caller and callee vars to the completions list.

dreamchecker

  • Lint for set SpacemanDMM_ statements that have no effect (by Drathek, #435).
  • Fix /alists not being considered iterable (by Zonespace, #442).
  • Fix filter() not accepting name() as a keyword argument (by Zonespace, #436).

dmm-tools

  • Simplify some internals and improve sprite clipping performance.

SpacemanDMM suite v1.10

12 May 06:03
suite-1.10

Choose a tag to compare

SpacemanDMM now supports most BYOND 516 features, with many thanks to harry and LemonInTheDark.

Core

Core updates apply to all components.

  • Add definitions for new types, vars, and procs for BYOND 516 (by harry, #420).
  • Add <=> operator (by harry, #425).
  • Add support for as movable, as atom, and as list (#399).
  • Allow operator in type names again (#374).
  • Add pixel_w and pixel_z to image() (by Waterpig, #424).
  • Improve speed by changing the hasher used for HashMaps and HashSets (by ZeWaka, #414).
  • Fix relative paths in preprocessor fexists() (by ZeWaka, #401).

Language Server

  • Fix document outline being inaccurate in some cases (#394).
  • Fix a crash in the document outline (#395).

Debugger

  • Fix debugger not working if the configured DLL path override was set to the empty string (by Lucy, #428).
  • Update auxtools debug server from v2.3.3 to v2.3.5.

dreamchecker

  • Handle as return types same as set SpacemanDMM_return_type types (#406).
  • Fix configuration errors being silently ignored.

dmdoc

  • Add proc parameter as types, return as types, and set SpacemanDMM_return_type types to proc documentation.
  • Add var as types to var documentation.
  • Fix configuration errors being silently ignored.

SpacemanDMM suite v1.9

23 Jun 23:49
suite-1.9

Choose a tag to compare

A maintenance update with fixes to dmdoc, more BYOND 515 support, and improvements under the hood.

Core

Core updates apply to all components.

  • Implement /proc/operator:=
  • Accept input types on bare variables like var/foo as text|null
  • Support preprocessor fexists() (by ZeWaka, #388)
  • Add delay argument to animate() (by Waterpig, #387)
  • Overhaul doc comment parsing to fix some cases where comments would be dropped (#332)
  • Fix Unicode being mangled in doc comments
  • Fix parsing of union proc return types like as num|text (#385)

Language Server

Debugger

  • Update auxtools debug server from v2.2.4 to v2.3.3
  • Allow setting environment variables on DS/DD launch

dmdoc

  • Speed up rendering massively
  • Fix Markdown headings rendering as <hh2> instead of <h2>

DMM-Tools

  • Fix the /tg/station gravity generator render pass (by mc-oofert, #393)

SpacemanDMM suite v1.8

29 Oct 20:17
suite-1.8

Choose a tag to compare

SpacemanDMM now supports most BYOND 515 features, with many thanks to LemonInTheDark and others.

Core

Core updates apply to all components.

  • Bump declared BYOND version to 515.1619
  • Add call_ext (by willox, #353)
  • Add v515 proc and constant builtins (by Spookerton, #354)
  • Fix operator/ and operator/=
  • Add %%, %%=, and operator"" (by LemonInTheDark, #371)
  • Add __TYPE__ and __PROC__ (by LemonInTheDark, #366)
  • Add __IMPLIED_TYPE__ (by LemonInTheDark, #368)
  • Add #pragma multiple (by LemonInTheDark, #372)
  • Add proc/final, connected to existing "should not override" lint (by LemonInTheDark, #369)
  • Add :: scope operator (by LemonInTheDark, #367)
  • Add constant-evaluation for nameof()

Language Server

  • Handle ::, __TYPE__, __PROC__, and __IMPLIED_TYPE__ in "Find All References"

Debugger

  • Update auxtools debug server from v2.2.3 to v2.2.4, adding support for BYOND 515.1606

DreamChecker

  • Handle type::somevarname so uses do not give type errors

SpacemanDMM suite v1.7.3

02 Feb 03:17
suite-1.7.3

Choose a tag to compare

Another maintenance release with minor additions and fixes.

Component version numbers have been synchronized at v1.7.3 instead of being versioned separately.

Core

Core updates apply to all components.

  • Fail gracefully instead of crashing when encountering bad .dmi files (by moxian, #319)
  • Fix parsing heredocs with multiple quotes in a row
  • Add some undocumented builtins for completeness:
    • /dm_filter type (by Spookerton, #312)
    • /database/var/_binobj and /database/query/var/database vars (by Cyberboss, #326)
    • /generator/var/_binobj var (by TiviPlus, #342)

Language Server

  • Add documentation on hover for macros
  • Fix a possible crash if the environment loaded fast enough to cause rounding errors

Debugger

  • Update auxtools debug server from v2.2.2 to v2.2.3, adding support for BYOND 514.1584

DreamChecker

  • Add lints for the switch(rand(L, H)) pattern (by pali, #302)
  • Fix some proc overrides suppressing sleep/purity checks (by fira, #311)

DMM-Tools

  • Improve error locations in DMM parser

SpacemanDMM suite v1.7.2

19 Dec 01:03
suite-1.7.2

Choose a tag to compare

A small maintenance release, with performance and correctness improvements.

DM Language

DM language updates apply to all components.

  • Properly handle files with UTF-8 byte order mark (by PJB, #285)
  • Add /particle/var/fadein builtin (by Azrun, #290)
  • Fix var_in_proc_parameter diagnostic configuration not being properly applied (by igorsaux, #292)
  • Use IndexMap and AHash to improve speed (by LatteKat, #293)
  • Reorganize AST structures to reduce memory usage of the parser

Language Server v1.5.1

  • Fix new variable.field() syntax not being included in Find All References for variable or field
  • Run DreamChecker and Find All References in the background in order to become responsive to queries sooner

SpacemanDMM suite v1.7.1

09 Sep 07:53

Choose a tag to compare

This is a minor release primarily to resolve the dmdoc panic bug that exists in suite-1.7.

DM Language

DM language updates apply to all components.

  • Increased claimed BYOND version to 513.1556, by Watermelon914 (#273)

dmdoc v1.4.1

  • Fix crash if a type proc and global proc with the same name were both documented (#268)
  • Set sans-serif fonts in dmdoc stylesheet, by LetterN (#278)

DreamChecker v1.7.1

  • Fix particles not actually being assumed to be particles by TiviPlus (#275)

SpacemanDMM suite v1.7

19 May 02:45
suite-1.7

Choose a tag to compare

This release's headline is BYOND 514 support, thanks largely to ZeWaka and spookydonut. Additionally, new configuration options have been added to dmdoc and new lints have been added to dreamchecker. Willox's work on the auxtools debug server has made debugging smoother and more interactive and will allow us to eventually deprecate extools.

DM Language

DM language updates apply to all components.

  • Improve memory usage of parser significantly, about 45% for /tg/station13 (#113).
  • Add BYOND 514 entries to the builtins table (by ZeWaka, #240).
  • Add constant-evaluation support for 514's expanded rgb() function (by ZeWaka, #254).
  • Fix new x[y] being parsed incorrectly (by Willox, #257).
  • Add support for infinite for() loops (by Willox, #259).
  • Add support for L?[x] list access syntax (by Willox, #262).
  • Fix in and ternary precedence (by Willox, #260).
  • Support CRASH() with no arguments (#245).

Language Server v1.5.0

  • Track disk I/O separately from parsing in the load time report.

Debugger

  • Add auxtools debugging support (by Willox, #230).
    • Meant to eventually replace extools, which is no longer maintained.
    • Debug console allows evaluating expressions (by Willox, #263).
    • #dis and #dis /type/proc/name can be used to read disassembly (by Willox, #233).
  • Show stdout/stderr of the launched process in the debug console.

dmdoc v1.4.0

  • Types, global procs, and global vars are now always included in the module tree as well.
  • The module tree will start with the first level (usually "code") expanded.
  • The dmdoc.index_file configuration option can be used to specify a file to be used as the documentation's index page.
  • The dmdoc.module_directories option can be used to override the default module directory detection.
  • Attempting to link to some builtins will now properly link to the DM reference (#215).

DreamChecker v1.7.0

  • Fix "should not sleep" to catch world.Export and world.Import (by spookydonut, #216).
  • Add warning for return x in spawn context (by pali6, #228).
  • Fix flag values for filters (by ZeWaka, #243).
  • Add detection of sleeping client procs (by spookydonut, #252).
  • Fix missing detection of world Import()/Export() calls (by spookydonut, #252).
  • Lint for ambiguous use of ! on the left-hand side of a bitwise operation (by ZeWaka, #265).

DMM-Tools v1.3.1

  • Speed up map rendering by approximately 9% (by PJB, #242).

SpacemanDMM suite v1.6

09 Oct 02:13
suite-1.6

Choose a tag to compare

This release stars many dmdoc improvements, especially around crosslinking. Updates to the /tg/ fancy map rendering, more robust debugger output, and DreamChecker bug fixes are also included.

DM Language

DM language updates apply to all components.

  • Add missing filter flags for the outline filter (by Neerti, #206)

Language Server v1.4.0

  • Add documentation to hovers, add hovers for var uses and proc calls (by Bobbahbrown, #210)
  • Make type definitions count as an implementation rather than a reference
  • Exclude ..() parent calls from the references list
  • Add document links for #include lines
  • Add document links for 'resource' expressions

Debugger

  • Rearrange variables pane so "Locals" is at the top
  • Work around some variables being hidden if the same name is re-used within a proc
  • Pull variable names from BYOND rather than using SpacemanDMM's parser
  • Implement the "step out" feature
  • Show the sleeping proc queue as threads in VSC

dmdoc v1.3.0

  • Search for module documentation in any #included directory rather than just code
  • Add --index <filename.md> flag to display a file on the docs index page
  • Include .txt files as module documentation
  • Strip \proper and \improper prefixes from names
  • Promote README files to represent their parent directory
  • Add detailed crosslink error information
  • Allow crosslinking to modules by their source file name
  • Add --dry-run flag to skip HTML output and exit with the number of crosslink errors

DreamChecker v1.6.0

  • Add lint for attempting to iterate over known non-list types
  • Add lint for line comments ending in backslashes
  • Remove error if a proc has both should_not_sleep and set waitfor = 0 (by MrStonedOne, #211)
  • Fix "relatively pathed type" warnings, which were broken by a previous update
  • Populate errortype on more errors, to allow disabling them (by Leshana, #201)
  • Fix sleep and purity lints not counting proc overrides (by spookydonut, #214)

DMM-Tools v1.3.0

  • Update renderer for /tg/ icon smooth refactor (twice)
  • Update unary atmos icons for existence of layer 4
  • Add relics to random render pass and fix kirbyplants

SpacemanDMM suite v1.5

11 Jul 21:22
suite-1.5

Choose a tag to compare

This release mainly improves performance, fixes bugs, and adds missing builtins.

DM Language

DM language updates apply to all components.

  • Improve I/O speed by buffering entire files during parsing.
  • Speed up object tree traversal during parsing.
  • Fix ; in proc parameters causing parse failure (by Cyberboss, #176).
  • Fix interpolated strings always being assumed to be truthy (#180).
  • Fix precedence for bitwise operations (by mloc, #197).
  • Improve builtins around bounds vars, /image vars (#184, #186).
  • Add missing opacity var to /mutable_appearance (by spookydonut).
  • Add the PASS_MOUSE builtin (by ZeWaka, #195).

Language Server v1.3.0

  • Add environment config option to choose which .dme file to load if several are present.
  • Add expression and statement keywords to autocomplete list (#76).
  • Fix "go to definition" not working for relative-pathed proc argument types (#190).
  • Show full #define body in completion details.
  • Format procpath variables in debugger.
  • Add "Globals" alongside "Arguments" and "Locals" in debugger.
  • Supply stddef.dm source when stepped into.

dmdoc v1.2.2

  • No specific changes.

DreamChecker v1.5.0

  • Emit error when proc is defined multiple times (by willox, #181).
  • Add --parse-only flag which skips most lints.
  • Fix sleep/purity checks failing to cross parent_type boundaries in some situations.
  • Fix sleeping code under spawn() triggering "should not sleep" lints (by Cyberboss, #177).
  • Fix false positive diagnostic on PureProc().Foo() calls (#188).

DMM-Tools v1.2.0

  • Remove check subcommand in favor of dreamchecker --parse-only.