Commit graph

1685 commits

Author SHA1 Message Date
spookydonut
a8aedd733e Bump versions for minor release 2021-09-08 16:17:15 +08:00
Letter N
521233aa0d
Set fonts for dmdoc (#278)
Uses a less "sharp" font. All the contents will be using Arial while 
code blocks will use Consolas.

Co-authored-by: Tad Hardesty <tad@platymuus.com>

Add fallback font chains.
2021-08-26 21:15:43 -07:00
Tad Hardesty
ab2ef99671 Add dmm-tools render-many subcommand to speed up MapDiffBot 2021-08-26 20:33:30 -07:00
Tad Hardesty
394a287f50 Microoptimize cli::output_json 2021-08-21 17:31:15 -07:00
Tad Hardesty
3588de97ff Update dockerfile to Rust 1.54
Fixes #281.
2021-08-13 17:14:04 -07:00
Tad Hardesty
2b3ede3602 Run cargo update 2021-08-10 16:39:58 -07:00
Tad Hardesty
fac8986f03 Update to auxtools debug server v2.2.2 2021-08-10 16:30:53 -07:00
Tad Hardesty
87248cd0c1 Count SafeLBracket in string interpolations
Fixes #276.
2021-07-14 18:28:48 -07:00
TiviPlus
ea3c44d56b
Fix particles not actually being assumed to be particles (#275)
* Fix particles not actually being assumed to be particles

* Adds requested unit test
2021-07-15 00:04:02 +08:00
AffectedArc07
b069b57cb0
Add hide_invisible config and only-wires-and-pipes pass (#272)
This PR adds in a configuration for the `hide_invisible` render pass, 
to add extra types to it to forcibly hide. Configuration is as follows:
```toml
[map_renderer]
hide_invisible = [
    "/obj/effect/mapping_helpers",
    "/obj/effect/landmark",
    "/obj/effect/spawner/random_spawners",
]
```

This PR also adds a new render pass, `only-wires-and-pipes`. This is 
functionally a combination of `only-wires` and `only-pipes`, as you 
currently cannot stack both the passes.

Co-authored-by: Tad Hardesty <tad@platymuus.com>
2021-06-27 23:13:05 -07:00
Watermelon914
c64a35abba
Bump minor BYOND version to 1556 (#273) 2021-06-27 22:59:18 -07:00
Tad Hardesty
953d4abc25 Allow configuring overrides to fancy-layers render pass 2021-06-20 15:18:22 -07:00
Tad Hardesty
c01baaa2a5 Fix negative layers sorting incorrectly 2021-06-20 14:19:17 -07:00
Tad Hardesty
a19cc58e32 Add [map_renderer.render_passes] section to SpacemanDMM.toml 2021-06-20 14:19:17 -07:00
Tad Hardesty
4beb1f35af Exclude global procs from parent var/proc linking
Fixes #268.
2021-05-27 18:07:40 -07:00
Tad Hardesty
64e7ffd995 Include commits since tag in langserver version number 2021-05-22 16:40:32 -07:00
Tad Hardesty
838ddf5974 Add script to download extools 2021-05-22 16:07:10 -07:00
Tad Hardesty
3d30bb6f81 Update copyright years to 2021 2021-05-22 16:07:10 -07:00
Tad Hardesty
107c05b92f Add script to build langserver release 2021-05-22 16:07:10 -07:00
Tad Hardesty
5ad8eebb7f Include auxtools with suite releases 2021-05-22 16:07:10 -07:00
Tad Hardesty
087ac47f11 Add script to update auxtools 2021-05-22 16:07:13 -07:00
Tad Hardesty
eb83d179f3 Add script to download auxtools 2021-05-22 16:07:10 -07:00
Tad Hardesty
212ff9aa48 Rename prepare-binaries.sh to build-suite-release 2021-05-22 15:12:27 -07:00
Tad Hardesty
4149da7c13 Bump versions for suite 1.7 2021-05-18 19:27:39 -07:00
Tad Hardesty
4f8e6da845 Run cargo update 2021-05-18 18:17:20 -07:00
Tad Hardesty
3562c659ff Support CRASH() with no arguments
Fixes #245.
2021-05-18 00:00:47 -07:00
Tad Hardesty
74f1cf0ed7 Improve ambiguous_not_bitwise error messages 2021-05-17 23:43:08 -07:00
William Wallace
80f40fe9f7
Fix in & ternary precedence (#260)
Fixes https://github.com/SpaceManiac/SpacemanDMM/issues/122
Fixes `x ?  y : z = 0` being treated as `x ? y : (z = 0)` instead of 
`(x ? y : z) = 0`.

The issue happened with any assignment operator, hopefully this change 
is reasonable.
2021-05-17 23:43:01 -07:00
ZeWaka
f81223ba17
Lints for ambiguous ! on the left hand side of a bitwise operation (#265)
Puts some helpful hints in order of likelihood. Could be intended to 
be: `!(x & y)`

Fulfills
https://github.com/SpaceManiac/SpacemanDMM/projects/1#card-37357276
2021-05-17 23:33:49 -07:00
Tad Hardesty
a47a7d2b02 Add debug-only VSC setting to use a different debug_server.dll 2021-05-17 23:21:43 -07:00
William Wallace
ced2a7f084
auxtools debug server: expression evaluation (#263)
The changes for the language server are minimal. This will require 
shipping version 2.0.0 of the debug server: use 
https://github.com/willox/auxtools/releases/tag/v2.2.0

There are plenty of compiler features missing on the debug server's 
end, but it is definitely more than usable so I want to get it 
published. I plan on going a lot further this all of this, maybe we'll 
even have hot loading one day.

Noticeable differences from actual BYOND are:
1. It only compiles expressions! This means no for loops, no if 
   statements, etc.
2. It lacks all static typing - the compiler has no access to type 
   definitions and will treat all `.` accesses as `:` accesses and 
   ignore the rules of const.
3. There are no implicit uses of `src`. This comes from the fact that 
   there is no static typing, so to access a field on `src` you have to 
   explicitly use `src.xyz` syntax.
4. Strings are lame. There is no interpolation support and the escape 
   sequences are super limited too.
5. Some built-in procs aren't supported, but most are. They'll 
   gracefully error if you try to use them.
6. No pre-processor.

For other limitations, just view the error list: 
9ba328ef8c/src/compiler.rs (L45-L76)

tl;dr: relatively well-working debug console eval, watch eval, and 
conditional breakpoints
2021-05-17 23:14:34 -07:00
AnturK
f2cdca6fb1
Bump minor BYOND version to 1554 (#264) 2021-05-10 18:15:49 -07:00
William Wallace
9c756347de
Add support for L?[x] list access syntax (#262)
I renamed the current `IndexKind` enum to `PropertyAccessKind` purely 
based off of the fact that somewhere in the byond ref both procs and 
vars are referred to as a datum's "properties" and I had no better name 
ideas.

The checker treats conditional list accesses exactly the same as normal 
ones. I was going to add some linting stuff for them but their expected 
behaviour is completely up in the air at the moment.
2021-04-21 18:43:47 -07:00
William Wallace
ba09a43447
Add support for infinite for() loops (#259) 2021-04-21 17:59:41 -07:00
Tad Hardesty
15291e493e Fix 'panic message is not a string literal' warning 2021-04-02 17:51:15 -07:00
Tad Hardesty
e0095431da Disable editor 2021-03-24 20:34:58 -07:00
William Wallace
8c751bde99
Remove list indexing from MiniExpr (#257)
I noticed that this was different from BYOND's behaviour where
`new x[y]` actually compiles as `(new x)[y]`. The same behaviour
applies for `new x?[y]` so I don't anticipate the code I am removing
being needed for that.

I confirmed that BYOND has been compiling it this way since at least
513.1490, so if it changed it was long ago.

[SpaceManiac] As far as I can tell, there was no BYOND change and this 
code was wrong all along.
2021-03-23 17:50:31 -07:00
William Wallace
7c2b92189c
pipe_output no longer stops piping after encountering invalid utf-8 (#256)
This only becomes a problem when stuff we haven't got control over 
decides to output to stdin or stderr.

vgstation-coders/vgstation13#28789 shows (in the most recent responses) 
that they're using an internet explorer plugin which outputs some debug 
info to stderr and terminates it with some invalid utf-8 or something. 
I don't think the details on that side are too important, we just need 
to fix the next part: This makes the language server's pipe_output 
close the stream which then makes auxtools panic when it tries writing 
to said stream (because eprintln!() will panic in such a case.)

Auxtools could handle this better, but there's no reason for the 
debugger to just stop piping output because it sees some wacky bytes.
2021-03-19 17:14:53 -07:00
Tad Hardesty
2dbdeb855f Improve readability of rgb() tests 2021-03-18 22:07:32 -07:00
ZeWaka
7e3731ea92
Add 514 rgb() support (#254)
Allows for `rgb()` with arguments of form 
`[r,g,b|h,s,[v|l|y]],(a),(space)`

Also allows the full names of the arguments. Technically, BYOND 
supports just the first letter so `halifax` works for `hue` but fuck 
that.

Also now lints to see if the values are in the valid ranges.

Co-authored-by: Tad Hardesty <tad@platymuus.com>
2021-03-18 21:56:05 -07:00
ZeWaka
0a108b69af
panic! supports formatting (#255) 2021-03-16 03:39:03 +08:00
spookydonut
3d798cee8c Remove debugging println macro. 2021-03-12 14:36:05 +08:00
Tad Hardesty
d2b3f61032 Track disk I/O time separately from parse time 2021-03-11 19:24:14 -08:00
spookydonut
f8641c71e8 Remove duplicate particle grow var 2021-03-11 17:05:06 +08:00
spookydonut
42163b5d91
Add detection of sleeping client procs (#252)
* This should work but doesn't.

* bugfix maybe?

* working now
2021-03-11 17:00:18 +08:00
spookydonut
8999f1cc63 Add new 514.1549 features and increment DM version constants to match 2021-03-10 16:01:12 +08:00
Tad Hardesty
635434f8ee Add /world/var/movement_mode to builtins 2021-02-18 17:04:35 -08:00
Pieter-Jan Briers
e07801070e
Optimize map rendering (#242)
It is much faster now, way less terrible blitting code.

---
SpaceManiac's benchmarks indicate about 9% speedup when rendering MetaStation with `--release` on.
2021-02-16 18:00:18 -08:00
Tad Hardesty
0b95746cb8 Add a ConstFn entry for generator()
Fixes #244.
2021-02-16 17:51:30 -08:00
ZeWaka
2826cb3af3
Add new particle variable added by 514.1547 (#246)
Supporting new `particles/var/grow` variable.

http://www.byond.com/forum/?forum=6&command=search&scope=local&text=resolved%3a514.1547
2021-02-16 17:43:22 -08:00