Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace a lot of uses of expect with tokenCheck. #403

Merged
merged 2 commits into from
May 3, 2023
Merged

Conversation

Hackerpilot
Copy link
Collaborator

This will cause the parsing functions to correctly return null when a token is missing. Fixes #392 and other similar issues that have not yet been discovered.

@codecov
Copy link

codecov bot commented May 4, 2020

Codecov Report

Merging #403 (62a544c) into master (f0b1f14) will decrease coverage by 0.12%.
The diff coverage is n/a.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #403      +/-   ##
==========================================
- Coverage   83.71%   83.59%   -0.12%     
==========================================
  Files          11       11              
  Lines        8540     8478      -62     
==========================================
- Hits         7149     7087      -62     
  Misses       1391     1391              
Impacted Files Coverage Δ
src/dparse/parser.d 91.32% <ø> (-0.15%) ⬇️

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f0b1f14...62a544c. Read the comment docs.

@WebFreak001
Copy link
Member

wouldn't this remove a lot from the current error recovery? For example in line 839 it would now return null for the entire AsmStatement because of a nearly complete AsmInstruction just missing a semicolon.

@Hackerpilot
Copy link
Collaborator Author

I think that we should replace that accidental error recovery with intentional error recovery. If we're parsing a list of things, each of the element functions should return null if they fail, and the parsing function for the list should handle creating an incomplete list.

An example of this is the parseDeclarationsAndStatements, which relies on parseDeclarationOrStatement returning null on error.

@WebFreak001
Copy link
Member

maybe we should add more tests for the error recovery though to avoid confusing users with libdparse updates or tools offering automatic fixes which depend on certain errors being present.

I'm not a fan of so many expect(tok!";") being replaced, because missing semicolons shouldn't affect the AST so drastically

@Hackerpilot
Copy link
Collaborator Author

Do you know what kind of behavior resulting from these mistakes that we'd like to preserve?

Copy link
Member

@WebFreak001 WebFreak001 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have commented where I think we have rather small breakages from the previous version. Error recovery wasn't very good but now at these parts it's slightly worse.

For good error recovery we probably want a separate PR doing better recovery from semicolons, but for this PR I think the marked lines shouldn't be changed.

Test script
#!/bin/bash

echo "input:"
echo '```d'
INPUT=$(cat)
echo '```'
echo
echo "AST before:"
echo '```d'
echo $INPUT | ./testrecovery-old
echo '```'
echo
echo "AST after:"
echo '```d'
echo $INPUT | ./testrecovery
echo '```'
Test App
#!/usr/bin/env dub
/+ dub.sdl:
        name "testrecovery"
        dependency "libdparse" path="."
+/

import std;
import dparse.ast;
import dparse.formatter;
import dparse.lexer;
import dparse.parser;
import dparse.rollback_allocator;

void main()
{
        auto code = appender!string;
        foreach (c; stdin.byChunk(4096))
                code.put(c);

        StringCache cache = StringCache(64);
        LexerConfig config;
        auto tok = getTokensForParser(cast(ubyte[])code.data, config, &cache);
        auto mod = parseModule(tok, "stdin", new RollbackAllocator());

        auto output = appender!string;
        format(output, mod, true);
        writeln(output.data);
}

@@ -3064,7 +3064,7 @@ class Parser
else
{
mixin(parseNodeQ!(`node.test`, `Expression`));
expect(tok!";");
mixin(tokenCheck!";");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

input:

void foo()
{
        for (; i < 3)
        {}
}

AST before:

stdin(1:26)[error]: Expected `;` instead of `)`


void foo()do
{

for (; i < 3; ) {}
}

AST after:

stdin(1:26)[error]: Expected `;` instead of `)`
stdin(1:26)[error]: Primary expression expected


void foo()do
{ {}
}

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the block should be dropped as well

@@ -4534,7 +4534,7 @@ class Parser
error("`(` or identifier expected");
return null;
}
expect(tok!";");
mixin(tokenCheck!";");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

input:

mixin Something

void main()
{
}

AST before:

stdin(1:17)[error]: Expected `;` instead of `void`
stdin(1:29)[error]: declaration expected instead of `{`
mixin Something ;

AST after:

stdin(1:17)[error]: Expected `;` instead of `void`
stdin(1:29)[error]: declaration expected instead of `{`

mixin(parseNodeQ!(`node.expression`, `Expression`));
expect(tok!";");
mixin(tokenCheck!";");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

input:

void main()
{
        throw new Exception()

        writeln("hello");
}

AST before:

stdin(1:37)[error]: Expected `;` instead of `writeln`
stdin(1:53)[warn]: Empty declaration


void main()do
{
        throw new Exception();
}

AST after:

stdin(1:37)[error]: Expected `;` instead of `writeln`
stdin(1:53)[warn]: Empty declaration


void main()do
{
}

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no surprise here, tokenCheck returns early and drop the invalid node

@@ -7561,7 +7561,7 @@ class Parser
return null;
}
node.token = advance();
expect(tok!";");
mixin(tokenCheck!";");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

input:

version = 5

void main()
{
}

AST before:

stdin(1:13)[error]: Expected `;` instead of `void`
stdin(1:25)[error]: declaration expected instead of `{`

version = 5;

AST after:

stdin(1:13)[error]: Expected `;` instead of `void`
stdin(1:25)[error]: declaration expected instead of `{`

StackBuffer instructions;
while (moreTokens() && !currentIs(tok!"}"))
{
auto c = allocator.setCheckpoint();
if (!instructions.put(parseAsmInstruction()))
allocator.rollback(c);
else
expect(tok!";");
mixin(tokenCheck!";");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is probably a big change, but the dparse.formatter doesn't support dumping ASM so I can't easily test it.

@Hackerpilot
Copy link
Collaborator Author

Most of these are consequences of the way that the error function works. When the parser encounters an error it tries to scan up until the next closing brace, closing paren, closing bracket, or semicolon. I think that the better way to resolve this is to enhance the error recovery that's present in that function instead of continuing to have the parsing return nodes when they should be returning null.

…parsing functions to correctly return null when a token is missing.
@github-actions
Copy link

github-actions bot commented May 3, 2023

DCD BUILD FAILED
dub build of DCD has failed with these changes! Please check your changes again.

Build statistics:

 ------ libdparse statistics ------
 
 statistics (-before, +after)
-library size=3544196 libdparse.a
+library size=3544684 libdparse.a
 rough build time=17s
 
 
 ------ DCD statistics ------
 
 statistics (-before, +after)
 client size=1055832 bin/dcd-client
 server size=3052720 bin/dcd-server
-rough build time=80s
+rough build time=81s
 
-DCD run_tests.sh 	Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.92
-DCD run_tests.sh 	Maximum resident set size (kbytes): 7896
+DCD run_tests.sh 	Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.91
+DCD run_tests.sh 	Maximum resident set size (kbytes): 7904
 
 short requests: (217x)
     min request time =     0.013ms
-    10th percentile  =     0.129ms
-    median time      =     0.481ms
-    90th percentile  =     0.820ms
-    max request time =     1.642ms
+    10th percentile  =     0.128ms
+    median time      =     0.465ms
+    90th percentile  =     0.797ms
+    max request time =     1.448ms
 
 
 top 5 GC sources in server:
Full build output
DUB version 1.31.1, built on Apr 17 2023
LDC - the LLVM D compiler (1.32.1):
  based on DMD v2.102.2 and LLVM 15.0.7
  built with LDC - the LLVM D compiler (1.32.1)
  Default target: x86_64-unknown-linux-gnu
  Host CPU: skylake-avx512
  http://dlang.org - http://wiki.dlang.org/LDC

  Registered Targets:
    aarch64    - AArch64 (little endian)
    aarch64_32 - AArch64 (little endian ILP32)
    aarch64_be - AArch64 (big endian)
    amdgcn     - AMD GCN GPUs
    arm        - ARM
    arm64      - ARM64 (little endian)
    arm64_32   - ARM64 (little endian ILP32)
    armeb      - ARM (big endian)
    avr        - Atmel AVR Microcontroller
    bpf        - BPF (host endian)
    bpfeb      - BPF (big endian)
    bpfel      - BPF (little endian)
    hexagon    - Hexagon
    lanai      - Lanai
    mips       - MIPS (32-bit big endian)
    mips64     - MIPS (64-bit big endian)
    mips64el   - MIPS (64-bit little endian)
    mipsel     - MIPS (32-bit little endian)
    msp430     - MSP430 [experimental]
    nvptx      - NVIDIA PTX 32-bit
    nvptx64    - NVIDIA PTX 64-bit
    ppc32      - PowerPC 32
    ppc32le    - PowerPC 32 LE
    ppc64      - PowerPC 64
    ppc64le    - PowerPC 64 LE
    r600       - AMD GPUs HD2XXX-HD6XXX
    riscv32    - 32-bit RISC-V
    riscv64    - 64-bit RISC-V
    sparc      - Sparc
    sparcel    - Sparc LE
    sparcv9    - Sparc V9
    systemz    - SystemZ
    thumb      - Thumb
    thumbeb    - Thumb (big endian)
    ve         - VE
    wasm32     - WebAssembly 32-bit
    wasm64     - WebAssembly 64-bit
    x86        - 32-bit X86: Pentium-Pro and above
    x86-64     - 64-bit X86: EM64T and AMD64
    xcore      - XCore
   Upgrading project in /home/runner/work/libdparse/libdparse/
    Starting Performing "release" build using /opt/hostedtoolcache/dc/ldc2-1.32.1/x64/ldc2-1.32.1-linux-x86_64/bin/ldc2 for x86_64.
    Building libdparse 0.22.0+commit.18.gf5c3f10: building configuration [library]
STAT:------ libdparse statistics ------
STAT:
STAT:statistics (-before, +after)
STAT:library size=3544684 libdparse.a
STAT:rough build time=17s
STAT:
STAT:
STAT:------ DCD statistics ------
STAT:
{
  "name": "dcd",
  "description": "The D Completion Daemon is an auto-complete program for the D programming language",
  "copyright": "Copyright © 2015-2020, Brian Schott",
  "authors": [
    "Brian Schott"
  ],
  "license": "GPL-3.0",
  "dependencies": {
    ":dsymbol": "*",
    "libdparse": {"path":".."},
    ":common": "*",
    "emsi_containers": "~>0.9.0"
  },
  "subPackages": ["dsymbol", "common"],
  "versions": ["built_with_dub"],
  "configurations": [
    {
      "name": "library",
      "targetType": "library",
      "excludedSourceFiles": [
        "src/dcd/client/*",
        "src/dcd/server/main.d"
      ]
    },
    {
      "name": "client",
      "targetType": "executable",
      "targetPath": "bin/",
      "targetName": "dcd-client",
      "excludedSourceFiles": [
        "src/dcd/server/*"
      ]
    },
    {
      "name": "server",
      "targetType": "executable",
      "targetPath": "bin/",
      "targetName": "dcd-server",
      "excludedSourceFiles": [
        "src/dcd/client/*"
      ]
    }
  ]
}
{
	"fileVersion": 1,
	"versions": {
		"dsymbol": "0.14.1",
		"emsi_containers": "0.9.0",
		"libdparse": {"path":".."},
		"msgpack-d": "1.0.4",
		"stdx-allocator": "2.77.5"
	}
}
STAT:statistics (-before, +after)
STAT:client size=1055832 bin/dcd-client
STAT:server size=3052720 bin/dcd-server
STAT:rough build time=81s
STAT:
�[33munix:tc001:�[0m ... �[32mPass�[0m
�[33munix:tc002:�[0m ... �[32mPass�[0m
�[33munix:tc003:�[0m ... �[32mPass�[0m
�[33munix:tc004:�[0m ... �[32mPass�[0m
�[33munix:tc005:�[0m ... �[32mPass�[0m
�[33munix:tc006:�[0m ... �[31mFail�[0m
�[33munix:tc007:�[0m ... �[32mPass�[0m
�[33munix:tc008:�[0m ... �[32mPass�[0m
�[33munix:tc009:�[0m ... �[32mPass�[0m
�[33munix:tc010:�[0m ... �[32mPass�[0m
�[33munix:tc011:�[0m ... �[32mPass�[0m
�[33munix:tc012:�[0m ... �[32mPass�[0m
�[33munix:tc013:�[0m ... �[32mPass�[0m
�[33munix:tc014:�[0m ... �[32mPass�[0m
�[33munix:tc015:�[0m ... �[32mPass�[0m
�[33munix:tc016:�[0m ... �[32mPass�[0m
�[33munix:tc017:�[0m ... �[32mPass�[0m
�[33munix:tc018:�[0m ... �[32mPass�[0m
�[33munix:tc019:�[0m ... �[32mPass�[0m
�[33munix:tc020:�[0m ... �[32mPass�[0m
�[33munix:tc021:�[0m ... �[32mPass�[0m
�[33munix:tc022:�[0m ... �[32mPass�[0m
�[33munix:tc023:�[0m ... �[32mPass�[0m
�[33munix:tc024:�[0m ... �[32mPass�[0m
�[33munix:tc025:�[0m ... �[32mPass�[0m
�[33munix:tc026:�[0m ... �[32mPass�[0m
�[33munix:tc027:�[0m ... �[32mPass�[0m
�[33munix:tc028:�[0m ... �[32mPass�[0m
�[33munix:tc029:�[0m ... �[32mPass�[0m
�[33munix:tc030:�[0m ... �[32mPass�[0m
�[33munix:tc031:�[0m ... �[32mPass�[0m
�[33munix:tc032:�[0m ... �[32mPass�[0m
�[33munix:tc033:�[0m ... �[32mPass�[0m
�[33munix:tc034:�[0m ... �[32mPass�[0m
�[33munix:tc035:�[0m ... �[32mPass�[0m
�[33munix:tc036:�[0m ... �[32mPass�[0m
�[33munix:tc037:�[0m ... �[32mPass�[0m
�[33munix:tc038:�[0m ... �[32mPass�[0m
�[33munix:tc039:�[0m ... �[32mPass�[0m
�[33munix:tc040:�[0m ... �[32mPass�[0m
�[33munix:tc041:�[0m ... �[32mPass�[0m
�[33munix:tc042:�[0m ... �[32mPass�[0m
�[33munix:tc043:�[0m ... �[32mPass�[0m
�[33munix:tc044:�[0m ... �[32mPass�[0m
�[33munix:tc045:�[0m ... �[32mPass�[0m
�[33munix:tc046:�[0m ... �[32mPass�[0m
�[33munix:tc047:�[0m ... �[32mPass�[0m
�[33munix:tc048:�[0m ... �[32mPass�[0m
�[33munix:tc049:�[0m ... �[32mPass�[0m
�[33munix:tc050:�[0m ... �[32mPass�[0m
�[33munix:tc051:�[0m ... �[32mPass�[0m
�[33munix:tc052:�[0m ... �[32mPass�[0m
�[33munix:tc053:�[0m ... �[32mPass�[0m
�[33munix:tc054:�[0m ... �[32mPass�[0m
�[33munix:tc055:�[0m ... �[32mPass�[0m
�[33munix:tc056:�[0m ... �[32mPass�[0m
�[33munix:tc057:�[0m ... �[32mPass�[0m
�[33munix:tc058:�[0m ... �[32mPass�[0m
�[33munix:tc059:�[0m ... �[32mPass�[0m
�[33munix:tc060:�[0m ... �[32mPass�[0m
�[33munix:tc061:�[0m ... �[32mPass�[0m
�[33munix:tc062:�[0m ... �[32mPass�[0m
�[33munix:tc620:�[0m ... �[32mPass�[0m
�[33munix:tc_access_modifiers:�[0m ... �[32mPass�[0m
�[33munix:tc_accesschain_type:�[0m ... �[32mPass�[0m
�[33munix:tc_anon_class:�[0m ... �[32mPass�[0m
�[33munix:tc_anon_struct:�[0m ... �[32mPass�[0m
�[33munix:tc_bang_op_or_template:�[0m ... �[32mPass�[0m
�[33munix:tc_base_template_type:�[0m ... �[32mPass�[0m
�[33munix:tc_body_var:�[0m ... �[32mPass�[0m
�[33munix:tc_calltip_in_func:�[0m ... �[32mPass�[0m
�[33munix:tc_char_dot:�[0m ... �[32mPass�[0m
�[33munix:tc_complete_kw:�[0m ... �[32mPass�[0m
�[33munix:tc_currmod_fqn:�[0m ... �[32mPass�[0m
�[33munix:tc_ditto_scopes:�[0m ... �[32mPass�[0m
�[33munix:tc_empty_module:�[0m ... �[32mPass�[0m
00000�[33munix:tc_empty_requests:�[0m ... �[32mPass�[0m
�[33munix:tc_erroneous_body_content:�[0m ... �[32mPass�[0m
�[33munix:tc_extended_ditto:�[0m ... �[32mPass�[0m
�[33munix:tc_extended_types:�[0m ... �[32mPass�[0m
�[33munix:tc_if_auto_array:�[0m ... �[32mPass�[0m
�[33munix:tc_if_var:�[0m ... �[32mPass�[0m
�[33munix:tc_import_symbol_list:�[0m ... �[32mPass�[0m
�[33munix:tc_incomplete_switch:�[0m ... �[32mPass�[0m
�[33munix:tc_issue558:�[0m ... �[32mPass�[0m
�[33munix:tc_locate_ufcs_function:�[0m ... �[32mPass�[0m
�[33munix:tc_middle_of_utf:�[0m ... �[32mPass�[0m
�[33munix:tc_module_scope_op:�[0m ... �[32mPass�[0m
�[33munix:tc_named_mixin:�[0m ... �[32mPass�[0m
�[33munix:tc_opaque_structs:�[0m ... �[32mPass�[0m
�[33munix:tc_pointer_type_printing:�[0m ... �[32mPass�[0m
�[33munix:tc_pointers:�[0m ... �[32mPass�[0m
�[33munix:tc_recursive_public_import:�[0m ... �[32mPass�[0m
�[33munix:tc_rm_import:�[0m ... �[32mPass�[0m
�[33munix:tc_scope_mess:�[0m ... �[32mPass�[0m
�[33munix:tc_selective_import_list:�[0m ... �[32mPass�[0m
�[33munix:tc_super_scope:�[0m ... �[32mPass�[0m
�[33munix:tc_template_param_props:�[0m ... �[32mPass�[0m
�[33munix:tc_traits:�[0m ... �[32mPass�[0m
�[33munix:tc_ufcs_alias_this_completion:�[0m ... �[32mPass�[0m
�[33munix:tc_ufcs_array_type_completion:�[0m ... �[32mPass�[0m
�[33munix:tc_ufcs_calltip_in_func:�[0m ... �[32mPass�[0m
�[33munix:tc_ufcs_fundamental_types_completion:�[0m ... �[32mPass�[0m
�[33munix:tc_ufcs_pointer_type_completion:�[0m ... �[32mPass�[0m
�[33munix:tc_ufcs_string_and_string_literal_completion:�[0m ... �[32mPass�[0m
�[33munix:tc_ufcs_struct_completion:�[0m ... �[32mPass�[0m
STAT:DCD run_tests.sh 	Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.91
STAT:DCD run_tests.sh 	Maximum resident set size (kbytes): 7904
STAT:
STAT:short requests: (217x)
STAT:    min request time =     0.013ms
STAT:    10th percentile  =     0.128ms
STAT:    median time      =     0.465ms
STAT:    90th percentile  =     0.797ms
STAT:    max request time =     1.448ms
STAT:
STAT:
Error dmd failed with exit code 139.
DCD BUILD FAILED
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc001:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc002:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc003:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc004:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc005:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc006:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc007:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc008:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc009:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc010:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc011:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc012:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc013:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc014:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc015:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc016:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc017:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc018:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc019:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc020:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc021:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc022:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc023:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc024:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc025:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc026:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc027:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc028:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc029:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc030:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc031:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc032:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc033:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc034:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc035:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc036:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc037:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc038:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc039:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc040:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc041:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc042:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc043:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc044:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc045:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc046:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc047:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc048:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc049:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc050:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc051:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc052:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc053:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc054:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc055:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc056:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc057:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc058:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc059:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc060:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc061:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc062:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc620:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_access_modifiers:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_accesschain_type:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_anon_class:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_anon_struct:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_bang_op_or_template:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_base_template_type:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_body_var:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_calltip_in_func:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_char_dot:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_complete_kw:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_currmod_fqn:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_ditto_scopes:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_empty_module:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_empty_requests:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_erroneous_body_content:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_extended_ditto:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_extended_types:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_if_auto_array:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_if_var:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_import_symbol_list:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_incomplete_switch:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_issue558:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_locate_ufcs_function:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_middle_of_utf:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_module_scope_op:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_named_mixin:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_opaque_structs:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_pointer_type_printing:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_pointers:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_recursive_public_import:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_rm_import:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_scope_mess:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_selective_import_list:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_super_scope:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_template_param_props:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_traits:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_ufcs_alias_this_completion:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_ufcs_array_type_completion:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_ufcs_calltip_in_func:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_ufcs_fundamental_types_completion:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_ufcs_pointer_type_completion:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_ufcs_string_and_string_literal_completion:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
std.socket.SocketOSException@std/socket.d(2873): Unable to connect socket: No such file or directory
�[33munix:tc_ufcs_struct_completion:�[0m ... �[31mFail�[0m
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
STAT:top 5 GC sources in server:
./run_tests.sh: line 55: ../bin/dcd-server: No such file or directory
head: cannot open 'profilegc.log' for reading: No such file or directory

@WebFreak001
Copy link
Member

DCD build failure is due to https://issues.dlang.org/show_bug.cgi?id=23874

@WebFreak001 WebFreak001 merged commit 1566830 into master May 3, 2023
@WebFreak001 WebFreak001 deleted the fix-392 branch May 3, 2023 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Out of bounds access when parsing PragmaExpression
2 participants