Skip to content

Releases: SpaceManiac/SpacemanDMM

SpacemanDMM suite v1.9

23 Jun 23:49
suite-1.9
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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.

SpacemanDMM suite v1.4

04 Apr 22:53
suite-1.4
Compare
Choose a tag to compare

This release stars more DreamChecker additions by spookydonut, with minor bugfixes elsewhere.

DM Language

DM language updates apply to all components.

  • Update language support to 513.1514 (by spookydonut).
  • Fix location of do while condition (by spookydonut).
  • Fix locations for if else arm and switch if arms (by spookydonut, #173).
  • Add missing documented and undocumented /icon vars (by spookydonut).
  • Fix case on /client/proc/MeasureText() arguments (by spookydonut).
  • Add undocumented parameter radius for animate() (by spookydonut).
  • Fix bad WAVE_BOUNDED check on ripple and wave filters (by Valtos, #171).

Language Server v1.2.2

  • Add "Find Implementations" for procs and vars and remove its results from "Find References".

dmdoc v1.2.1

  • No specific changes.

DreamChecker v1.4.0

  • Warn on weird values given to built-in set directives (by spookydonut, #168).
  • Add lints for private/protected vars and procs (by spookydonut, #124).
  • Add should-be-pure & should-not-sleep lints (by spookydonut, #132).
  • Make local vars locally scoped (by spookydonut, #130).
  • Add filter() flag checking (by spookydonut, #165).
  • Add basic unreachable code detection (by spookydonut, #123).
  • Add config options for constant eval condition errors (by spookydonut).

DMM-Tools v1.1.2

  • Fix overlays render pass causing "error loading icon" warnings if airlocks have no overlays_file var.

SpacemanDMM suite v1.3

19 Feb 06:12
suite-1.3
Compare
Choose a tag to compare

This release features parsing improvements and DreamChecker additions brought to you by spookydonut, as well as some improvements to dmdoc.

DM Language

DM language updates apply to all components.

  • Add various BYOND 513 beta builtin declarations.
  • Fix incorrect locations of warnings in "else if" conditions (by spookydonut, #144).
  • Readd override-precedes-definition handling (by spookydonut, #147).
  • Fix regression on defined() preprocessing (by spookydonut, #152).
  • Fix new .() not parsing correctly (by spookydonut, #153).
  • Fix constant evaluation of expressions like 10 ** -1 (by spookydonut, #164).

Language Server v1.2.1

  • No specific changes.

dmdoc v1.2.0

  • Add option to disable using the name var in the type tree (by spookydonut, #149).
  • Add links to parent vars and procs when documented (#93).
  • Add automatic cross-link syntax (#92).
  • Add deep-linking attributes to Markdown headings (#91).

DreamChecker v1.3.0

  • Add configuration option for final_var warnings (by spookydonut, #157).
  • Warn about invalid filter() keyword arguments (by spookydonut, #154).
  • Add off-by-default lint to forbid relative pathing (by spookydonut, #150).
  • Add static return types for built-in global procs (by spookydonut, #128).

DMM-Tools v1.1.1

  • No specific changes.