JBOF: Just a Bunch of Fixes (#3957)

- Renames orphancompiler.py script to propscheck.py, the name fits better
- Fixes Go props to make them easier to maintain
- Alphabetically sorts some listings in the code
- Adds tests to the props checker script (No idea how to integrate those so it's manual for now)
- Adds 2 missing limit cases for Motd filtering
This commit is contained in:
Rubén Rincón Blanco
2022-08-13 01:39:41 +02:00
committed by GitHub
parent 33f2f28c57
commit 16b176235a
25 changed files with 461 additions and 414 deletions

View File

@@ -22,7 +22,7 @@ jobs:
npm run lint-check
npm run ci-test
npm run ts-check
python3 ./etc/scripts/util/orphancompiler.py
python3 ./etc/scripts/util/propscheck.py
- name: Code coverage
run: npm run codecov

View File

@@ -4,4 +4,4 @@
make prereqs
npx lint-staged
npm run test
python3 ./etc/scripts/util/orphancompiler.py
python3 ./etc/scripts/util/propscheck.py

View File

@@ -1,8 +1,7 @@
compilers=&gccgo:&gl:&cross
defaultCompiler=gl1190
objdumper=/opt/compiler-explorer/gcc-12.1.0/bin/objdump
compilers=&gccgo:&gl:&cross:&armgl:&mipsgl:&ppcgl:&riscvgl:&s390xgl:&wasmgl
group.gccgo.compilers=gccgo494:gccgo630:gccgo720:gccgo830:gccgo930:gccgo950:gccgo102:gccgo111:gccgo112:gccgo113:gccgo121
group.gccgo.isSemVer=true
group.gccgo.baseName=x86 gccgo
@@ -31,13 +30,19 @@ compiler.gccgo113.semver=11.3.0
compiler.gccgo121.exe=/opt/compiler-explorer/gcc-12.1.0/bin/gccgo
compiler.gccgo121.semver=12.1.0
group.gl.compilers=6g141:gl172:gl185:gl187:gl192:gl194:gl1100:gl1101:gl1110:gl1120:gl1130:gl1140:386_gl114:gl1150:386_gl115:gl1160:386_gl116:gl1170:386_gl117:gl1180:386_gl118:gl1190:386_gl119:gltip:386_gltip
group.gl.compilers=&x86gl:&armgl:&mipsgl:&ppcgl:&riscvgl:&s390xgl:&wasmgl
group.gl.versionFlag=version
group.gl.compilerType=golang
group.gl.compilerName=GoLang
group.gl.isSemVer=true
group.gl.baseName=amd64 gc
group.gl.groupName=x86 GC
###### x86 GC ######
group.x86gl.compilers=&amd64gl:&386gl
group.x86gl.groupName=x86 GC
group.amd64gl.compilers=6g141:gl172:gl185:gl187:gl192:gl194:gl1100:gl1101:gl1110:gl1120:gl1130:gl1140:gl1150:gl1160:gl1170:gl1180:gl1190:gltip
group.amd64gl.baseName=amd64 gc
compiler.6g141.exe=/opt/compiler-explorer/golang-1.4.1/go/bin/go
compiler.6g141.semver=1.4.1
compiler.6g141.goroot=/opt/compiler-explorer/golang-1.4.1/go
@@ -91,402 +96,277 @@ compiler.gl1180.goroot=/opt/compiler-explorer/golang-1.18/go
compiler.gl1190.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.gl1190.semver=1.19
compiler.gl1190.goroot=/opt/compiler-explorer/golang-1.19/go
compiler.386_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.386_gl114.semver=1.14
compiler.386_gl114.goarch=386
compiler.386_gl114.baseName=386 gc
compiler.386_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.386_gl115.semver=1.15
compiler.386_gl115.goarch=386
compiler.386_gl115.baseName=386 gc
compiler.386_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.386_gl116.semver=1.16
compiler.386_gl116.goarch=386
compiler.386_gl116.baseName=386 gc
compiler.386_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.386_gl117.semver=1.17
compiler.386_gl117.goarch=386
compiler.386_gl117.baseName=386 gc
compiler.386_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.386_gl118.semver=1.18
compiler.386_gl118.goarch=386
compiler.386_gl118.baseName=386 gc
compiler.386_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.386_gl119.semver=1.19
compiler.386_gl119.goarch=386
compiler.386_gl119.baseName=386 gc
compiler.gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.gltip.semver=(tip)
compiler.gltip.goroot=/opt/compiler-explorer/go-tip
group.386gl.compilers=386_gl114:386_gl115:386_gl116:386_gl117:386_gl118:386_gl119:386_gltip
group.386gl.baseName=386 gc
group.386gl.groupName=x86 GC
group.386gl.goarch=386
compiler.386_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.386_gl114.semver=1.14
compiler.386_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.386_gl115.semver=1.15
compiler.386_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.386_gl116.semver=1.16
compiler.386_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.386_gl117.semver=1.17
compiler.386_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.386_gl118.semver=1.18
compiler.386_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.386_gl119.semver=1.19
compiler.386_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.386_gltip.semver=(tip)
compiler.386_gltip.goarch=386
compiler.386_gltip.baseName=386 gc
group.armgl.compilers=arm_gl114:arm_gl115:arm_gl116:arm_gl117:arm_gl118:arm_gl119:arm_gltip:arm64_gl114:arm64_gl115:arm64_gl116:arm64_gl117:arm64_gl118:arm64_gl119:arm64_gltip
group.armgl.versionFlag=version
group.armgl.compilerType=golang
group.armgl.supportsBinary=false
group.armgl.compilerName=GoLang
group.armgl.isSemVer=true
###### ARM GC ######
group.armgl.compilers=&arm32gl:&arm64gl
group.armgl.groupName=GC ARM
group.armgl.supportsBinary=false
group.arm32gl.compilers=arm_gl114:arm_gl115:arm_gl116:arm_gl117:arm_gl118:arm_gl119:arm_gltip
group.arm32gl.baseName=ARM gc
group.arm32gl.goarch=arm
compiler.arm_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.arm_gl114.semver=1.14
compiler.arm_gl114.goarch=arm
compiler.arm_gl114.name=ARM gc 1.14
compiler.arm_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.arm_gl115.semver=1.15
compiler.arm_gl115.goarch=arm
compiler.arm_gl115.name=ARM gc 1.15
compiler.arm_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.arm_gl116.semver=1.16
compiler.arm_gl116.goarch=arm
compiler.arm_gl116.name=ARM gc 1.16
compiler.arm_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.arm_gl117.semver=1.17
compiler.arm_gl117.goarch=arm
compiler.arm_gl117.name=ARM gc 1.17
compiler.arm_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.arm_gl118.semver=1.18
compiler.arm_gl118.goarch=arm
compiler.arm_gl118.name=ARM gc 1.18
compiler.arm_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.arm_gl119.semver=1.19
compiler.arm_gl119.goarch=arm
compiler.arm_gl119.name=ARM gc 1.19
compiler.arm_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.arm_gltip.semver=(tip)
compiler.arm_gltip.goarch=arm
compiler.arm_gltip.name=ARM gc (tip)
group.arm64gl.compilers=arm64_gl114:arm64_gl115:arm64_gl116:arm64_gl117:arm64_gl118:arm64_gl119:arm64_gltip
group.arm64gl.baseName=ARM64 gc
group.arm64gl.goarch=arm64
compiler.arm64_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.arm64_gl114.semver=1.14
compiler.arm64_gl114.goarch=arm64
compiler.arm64_gl114.name=ARM64 gc 1.14
compiler.arm64_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.arm64_gl115.semver=1.15
compiler.arm64_gl115.goarch=arm64
compiler.arm64_gl115.name=ARM64 gc 1.15
compiler.arm64_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.arm64_gl116.semver=1.16
compiler.arm64_gl116.goarch=arm64
compiler.arm64_gl116.name=ARM64 gc 1.16
compiler.arm64_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.arm64_gl117.semver=1.17
compiler.arm64_gl117.goarch=arm64
compiler.arm64_gl117.name=ARM64 gc 1.17
compiler.arm64_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.arm64_gl118.semver=1.18
compiler.arm64_gl118.goarch=arm64
compiler.arm64_gl118.name=ARM64 gc 1.18
compiler.arm64_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.arm64_gl119.semver=1.19
compiler.arm64_gl119.goarch=arm64
compiler.arm64_gl119.name=ARM64 gc 1.19
compiler.arm64_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.arm64_gltip.semver=(tip)
compiler.arm64_gltip.goarch=arm64
compiler.arm64_gltip.name=ARM64 gc (tip)
group.mipsgl.compilers=mips_gl114:mips_gltip:mips64_gl114:mips_gl115:mips64_gl115:mips_gl116:mips64_gl116:mips_gl117:mips64_gl117:mips_gl118:mips_gl119:mips64_gl118:mips64_gl119:mips64_gltip:mips64le_gl114:mips64le_gl115:mips64le_gl116:mips64le_gl117:mips64le_gl118:mips64le_gl119:mips64le_gltip:mipsle_gl114:mipsle_gl115:mipsle_gl116:mipsle_gl117:mipsle_gl118:mipsle_gl119:mipsle_gltip
group.mipsgl.versionFlag=version
group.mipsgl.compilerType=golang
###### MIPS GC ######
group.mipsgl.compilers=&mips32gl:&mips64gl
group.mipsgl.supportsBinary=false
group.mipsgl.compilerName=GoLang
group.mipsgl.isSemVer=true
group.mipsgl.groupName=GC MIPS
compiler.mips_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.mips_gl114.semver=1.14
compiler.mips_gl114.goarch=mips
compiler.mips_gl114.name=MIPS gc 1.14
compiler.mips_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.mips_gl115.semver=1.15
compiler.mips_gl115.goarch=mips
compiler.mips_gl115.name=MIPS gc 1.15
compiler.mips_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.mips_gl116.semver=1.16
compiler.mips_gl116.goarch=mips
compiler.mips_gl116.name=MIPS gc 1.16
compiler.mips_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.mips_gl117.semver=1.17
compiler.mips_gl117.goarch=mips
compiler.mips_gl117.name=MIPS gc 1.17
compiler.mips_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.mips_gl118.semver=1.18
compiler.mips_gl118.goarch=mips
compiler.mips_gl118.name=MIPS gc 1.18
compiler.mips_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.mips_gl119.semver=1.19
compiler.mips_gl119.goarch=mips
compiler.mips_gl119.name=MIPS gc 1.19
compiler.mips_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.mips_gltip.semver=(tip)
compiler.mips_gltip.goarch=mips
compiler.mips_gltip.name=MIPS gc (tip)
compiler.mips64_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.mips64_gl114.semver=1.14
compiler.mips64_gl114.goarch=mips64
compiler.mips64_gl114.name=MIPS64 gc 1.14
compiler.mips64_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.mips64_gl115.semver=1.15
compiler.mips64_gl115.goarch=mips64
compiler.mips64_gl115.name=MIPS64 gc 1.15
compiler.mips64_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.mips64_gl116.semver=1.16
compiler.mips64_gl116.goarch=mips64
compiler.mips64_gl116.name=MIPS64 gc 1.16
compiler.mips64_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.mips64_gl117.semver=1.17
compiler.mips64_gl117.goarch=mips64
compiler.mips64_gl117.name=MIPS64 gc 1.17
compiler.mips64_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.mips64_gl118.semver=1.18
compiler.mips64_gl118.goarch=mips64
compiler.mips64_gl118.name=MIPS64 gc 1.18
compiler.mips64_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.mips64_gl119.semver=1.19
compiler.mips64_gl119.goarch=mips64
compiler.mips64_gl119.name=MIPS64 gc 1.19
compiler.mips64_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.mips64_gltip.semver=(tip)
compiler.mips64_gltip.goarch=mips64
compiler.mips64_gltip.name=MIPS64 gc (tip)
compiler.mips64le_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.mips64le_gl114.semver=1.14
compiler.mips64le_gl114.goarch=mips64le
compiler.mips64le_gl114.name=MIPS64LE gc 1.14
compiler.mips64le_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.mips64le_gl115.semver=1.15
compiler.mips64le_gl115.goarch=mips64le
compiler.mips64le_gl115.name=MIPS64LE gc 1.15
compiler.mips64le_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.mips64le_gl116.semver=1.16
compiler.mips64le_gl116.goarch=mips64le
compiler.mips64le_gl116.name=MIPS64LE gc 1.16
compiler.mips64le_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.mips64le_gl117.semver=1.17
compiler.mips64le_gl117.goarch=mips64le
compiler.mips64le_gl117.name=MIPS64LE gc 1.17
compiler.mips64le_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.mips64le_gl118.semver=1.18
compiler.mips64le_gl118.goarch=mips64le
compiler.mips64le_gl118.name=MIPS64LE gc 1.18
compiler.mips64le_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.mips64le_gl119.semver=1.19
compiler.mips64le_gl119.goarch=mips64le
compiler.mips64le_gl119.name=MIPS64LE gc 1.19
compiler.mips64le_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.mips64le_gltip.semver=(tip)
compiler.mips64le_gltip.goarch=mips64le
compiler.mips64le_gltip.name=MIPS64LE gc (tip)
group.mips32gl.compilers=&mips32legl:&mips32begl
group.mips32legl.compilers=mipsle_gl114:mipsle_gl115:mipsle_gl116:mipsle_gl117:mipsle_gl118:mipsle_gl119:mipsle_gltip
group.mips32legl.goarch=mipsle
group.mips32legl.baseName=MIPSLE gc
compiler.mipsle_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.mipsle_gl114.semver=1.14
compiler.mipsle_gl114.goarch=mipsle
compiler.mipsle_gl114.name=MIPSLE gc 1.14
compiler.mipsle_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.mipsle_gl115.semver=1.15
compiler.mipsle_gl115.goarch=mipsle
compiler.mipsle_gl115.name=MIPSLE gc 1.15
compiler.mipsle_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.mipsle_gl116.semver=1.16
compiler.mipsle_gl116.goarch=mipsle
compiler.mipsle_gl116.name=MIPSLE gc 1.16
compiler.mipsle_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.mipsle_gl117.semver=1.17
compiler.mipsle_gl117.goarch=mipsle
compiler.mipsle_gl117.name=MIPSLE gc 1.17
compiler.mipsle_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.mipsle_gl118.semver=1.18
compiler.mipsle_gl118.goarch=mipsle
compiler.mipsle_gl118.name=MIPSLE gc 1.18
compiler.mipsle_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.mipsle_gl119.semver=1.19
compiler.mipsle_gl119.goarch=mipsle
compiler.mipsle_gl119.name=MIPSLE gc 1.19
compiler.mipsle_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.mipsle_gltip.semver=(tip)
compiler.mipsle_gltip.goarch=mipsle
compiler.mipsle_gltip.name=MIPSLE gc (tip)
group.ppcgl.compilers=ppc64_gl114:ppc64_gl115:ppc64_gl116:ppc64_gl117:ppc64_gl118:ppc64_gl119:ppc64_gltip:ppc64le_gl114:ppc64le_gl115:ppc64le_gl116:ppc64le_gl117:ppc64le_gl118:ppc64le_gl119:ppc64le_gltip
group.ppcgl.versionFlag=version
group.ppcgl.compilerType=golang
group.ppcgl.supportsBinary=false
group.ppcgl.compilerName=GoLang
group.ppcgl.isSemVer=true
group.mips32begl.compilers=mips_gl114:mips_gl115:mips_gl116:mips_gl117:mips_gl118:mips_gl119:mips_gltip
group.mips32begl.goarch=mips
group.mips32begl.baseName=MIPS gc
compiler.mips_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.mips_gl114.semver=1.14
compiler.mips_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.mips_gl115.semver=1.15
compiler.mips_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.mips_gl116.semver=1.16
compiler.mips_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.mips_gl117.semver=1.17
compiler.mips_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.mips_gl118.semver=1.18
compiler.mips_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.mips_gl119.semver=1.19
compiler.mips_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.mips_gltip.semver=(tip)
group.mips64gl.compilers=&mips64legl:&mips64begl
group.mips64begl.compilers=mips64_gl114:mips64_gl115:mips64_gl116:mips64_gl117:mips64_gl118:mips64_gl119:mips64_gltip
group.mips64begl.goarch=mips64
group.mips64begl.baseName=MIPS64 gc
compiler.mips64_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.mips64_gl114.semver=1.14
compiler.mips64_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.mips64_gl115.semver=1.15
compiler.mips64_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.mips64_gl116.semver=1.16
compiler.mips64_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.mips64_gl117.semver=1.17
compiler.mips64_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.mips64_gl118.semver=1.18
compiler.mips64_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.mips64_gl119.semver=1.19
compiler.mips64_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.mips64_gltip.semver=(tip)
group.mips64legl.compilers=mips64le_gl114:mips64le_gl115:mips64le_gl116:mips64le_gl117:mips64le_gl118:mips64le_gl119:mips64le_gltip
group.mips64legl.goarch=mips64le
group.mips64legl.baseName=MIPS64LE gc
compiler.mips64le_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.mips64le_gl114.semver=1.14
compiler.mips64le_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.mips64le_gl115.semver=1.15
compiler.mips64le_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.mips64le_gl116.semver=1.16
compiler.mips64le_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.mips64le_gl117.semver=1.17
compiler.mips64le_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.mips64le_gl118.semver=1.18
compiler.mips64le_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.mips64le_gl119.semver=1.19
compiler.mips64le_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.mips64le_gltip.semver=(tip)
##### PPC GL #####
group.ppcgl.compilers=&ppc64legl:&ppc64begl
group.ppcgl.groupName=GC PPC
compiler.ppc64_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.ppc64_gl114.semver=1.14
compiler.ppc64_gl114.goarch=ppc64
compiler.ppc64_gl114.name=PPC64 gc 1.14
compiler.ppc64_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.ppc64_gl115.semver=1.15
compiler.ppc64_gl115.goarch=ppc64
compiler.ppc64_gl115.name=PPC64 gc 1.15
compiler.ppc64_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.ppc64_gl116.semver=1.16
compiler.ppc64_gl116.goarch=ppc64
compiler.ppc64_gl116.name=PPC64 gc 1.16
compiler.ppc64_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.ppc64_gl117.semver=1.17
compiler.ppc64_gl117.goarch=ppc64
compiler.ppc64_gl117.name=PPC64 gc 1.17
compiler.ppc64_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.ppc64_gl118.semver=1.18
compiler.ppc64_gl118.goarch=ppc64
compiler.ppc64_gl118.name=PPC64 gc 1.18
compiler.ppc64_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.ppc64_gl119.semver=1.19
compiler.ppc64_gl119.goarch=ppc64
compiler.ppc64_gl119.name=PPC64 gc 1.19
compiler.ppc64_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.ppc64_gltip.semver=(tip)
compiler.ppc64_gltip.goarch=ppc64
compiler.ppc64_gltip.name=PPC64 gc (tip)
group.ppcgl.supportsBinary=false
group.ppc64legl.compilers=ppc64le_gl114:ppc64le_gl115:ppc64le_gl116:ppc64le_gl117:ppc64le_gl118:ppc64le_gl119:ppc64le_gltip
group.ppc64legl.goarch=ppc64le
group.ppc64legl.baseName=PPC64LE gc
compiler.ppc64le_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.ppc64le_gl114.semver=1.14
compiler.ppc64le_gl114.goarch=ppc64le
compiler.ppc64le_gl114.name=PPC64LE gc 1.14
compiler.ppc64le_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.ppc64le_gl115.semver=1.15
compiler.ppc64le_gl115.goarch=ppc64le
compiler.ppc64le_gl115.name=PPC64LE gc 1.15
compiler.ppc64le_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.ppc64le_gl116.semver=1.16
compiler.ppc64le_gl116.goarch=ppc64le
compiler.ppc64le_gl116.name=PPC64LE gc 1.16
compiler.ppc64le_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.ppc64le_gl117.semver=1.17
compiler.ppc64le_gl117.goarch=ppc64le
compiler.ppc64le_gl117.name=PPC64LE gc 1.17
compiler.ppc64le_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.ppc64le_gl118.semver=1.18
compiler.ppc64le_gl118.goarch=ppc64le
compiler.ppc64le_gl118.name=PPC64LE gc 1.18
compiler.ppc64le_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.ppc64le_gl119.semver=1.19
compiler.ppc64le_gl119.goarch=ppc64le
compiler.ppc64le_gl119.name=PPC64LE gc 1.19
compiler.ppc64le_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.ppc64le_gltip.semver=(tip)
compiler.ppc64le_gltip.goarch=ppc64le
compiler.ppc64le_gltip.name=PPC64LE gc (tip)
group.ppc64begl.compilers=ppc64_gl114:ppc64_gl115:ppc64_gl116:ppc64_gl117:ppc64_gl118:ppc64_gl119:ppc64_gltip
group.ppc64begl.goarch=ppc64
group.ppc64begl.baseName=PPC64 gc
compiler.ppc64_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.ppc64_gl114.semver=1.14
compiler.ppc64_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.ppc64_gl115.semver=1.15
compiler.ppc64_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.ppc64_gl116.semver=1.16
compiler.ppc64_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.ppc64_gl117.semver=1.17
compiler.ppc64_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.ppc64_gl118.semver=1.18
compiler.ppc64_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.ppc64_gl119.semver=1.19
compiler.ppc64_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.ppc64_gltip.semver=(tip)
###### RSICV GL ######
group.riscvgl.compilers=riscv64_gl114:riscv64_gl115:riscv64_gl116:riscv64_gl117:riscv64_gl118:riscv64_gl119:riscv64_gltip
group.riscvgl.versionFlag=version
group.riscvgl.compilerType=golang
group.riscvgl.supportsBinary=false
group.riscvgl.compilerName=GoLang
group.riscvgl.isSemVer=true
group.riscvgl.groupName=GC RISC-V
group.riscvgl.baseName=RISCV64 gc
group.riscvgl.goarch=riscv64
compiler.riscv64_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.riscv64_gl114.semver=1.14
compiler.riscv64_gl114.goarch=riscv64
compiler.riscv64_gl114.name=RISCV64 gc 1.14
compiler.riscv64_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.riscv64_gl115.semver=1.15
compiler.riscv64_gl115.goarch=riscv64
compiler.riscv64_gl115.name=RISCV64 gc 1.15
compiler.riscv64_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.riscv64_gl116.semver=1.16
compiler.riscv64_gl116.goarch=riscv64
compiler.riscv64_gl116.name=RISCV64 gc 1.16
compiler.riscv64_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.riscv64_gl117.semver=1.17
compiler.riscv64_gl117.goarch=riscv64
compiler.riscv64_gl117.name=RISCV64 gc 1.17
compiler.riscv64_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.riscv64_gl118.semver=1.18
compiler.riscv64_gl118.goarch=riscv64
compiler.riscv64_gl118.name=RISCV64 gc 1.18
compiler.riscv64_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.riscv64_gl119.semver=1.19
compiler.riscv64_gl119.goarch=riscv64
compiler.riscv64_gl119.name=RISCV64 gc 1.19
compiler.riscv64_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.riscv64_gltip.semver=(tip)
compiler.riscv64_gltip.goarch=riscv64
compiler.riscv64_gltip.name=RISCV64 gc (tip)
##### s390x GL ######
group.s390xgl.compilers=s390x_gl114:s390x_gl115:s390x_gl116:s390x_gl117:s390x_gl118:s390x_gl119:s390x_gltip
group.s390xgl.versionFlag=version
group.s390xgl.compilerType=golang
group.s390xgl.supportsBinary=false
group.s390xgl.compilerName=GoLang
group.s390xgl.isSemVer=true
group.s390xgl.goarch=s390x
group.s390xgl.baseName=S390X gc
group.s390xgl.groupName=GC S390X
compiler.s390x_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.s390x_gl114.semver=1.14
compiler.s390x_gl114.goarch=s390x
compiler.s390x_gl114.name=S390X gc 1.14
compiler.s390x_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.s390x_gl115.semver=1.15
compiler.s390x_gl115.goarch=s390x
compiler.s390x_gl115.name=S390X gc 1.15
compiler.s390x_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.s390x_gl116.semver=1.16
compiler.s390x_gl116.goarch=s390x
compiler.s390x_gl116.name=S390X gc 1.16
compiler.s390x_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.s390x_gl117.semver=1.17
compiler.s390x_gl117.goarch=s390x
compiler.s390x_gl117.name=S390X gc 1.17
compiler.s390x_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.s390x_gl118.semver=1.18
compiler.s390x_gl118.goarch=s390x
compiler.s390x_gl118.name=S390X gc 1.18
compiler.s390x_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.s390x_gl119.semver=1.19
compiler.s390x_gl119.goarch=s390x
compiler.s390x_gl119.name=S390X gc 1.19
compiler.s390x_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.s390x_gltip.semver=(tip)
compiler.s390x_gltip.goarch=s390x
compiler.s390x_gltip.name=S390X gc (tip)
###############################
# WASM GO
group.wasmgl.compilers=wasm_gl114:wasm_gl115:wasm_gl116:wasm_gl117:wasm_gl118:wasm_gl119:wasm_gltip
group.wasmgl.versionFlag=version
group.wasmgl.compilerType=golang
group.wasmgl.supportsBinary=false
group.wasmgl.compilerName=GoLang
group.wasmgl.isSemVer=true
group.wasmgl.groupName=GC WASM
group.wasmgl.goarch=wasm
group.wasmgl.goos=js
group.wasmgl.baseName=WASM gc
compiler.wasm_gl114.exe=/opt/compiler-explorer/golang-1.14/go/bin/go
compiler.wasm_gl114.semver=1.14
compiler.wasm_gl114.goarch=wasm
compiler.wasm_gl114.goos=js
compiler.wasm_gl114.name=WASM gc 1.14
compiler.wasm_gl115.exe=/opt/compiler-explorer/golang-1.15/go/bin/go
compiler.wasm_gl115.semver=1.15
compiler.wasm_gl115.goarch=wasm
compiler.wasm_gl115.goos=js
compiler.wasm_gl115.name=WASM gc 1.15
compiler.wasm_gl116.exe=/opt/compiler-explorer/golang-1.16/go/bin/go
compiler.wasm_gl116.semver=1.16
compiler.wasm_gl116.goarch=wasm
compiler.wasm_gl116.goos=js
compiler.wasm_gl116.name=WASM gc 1.16
compiler.wasm_gl117.exe=/opt/compiler-explorer/golang-1.17/go/bin/go
compiler.wasm_gl117.semver=1.17
compiler.wasm_gl117.goarch=wasm
compiler.wasm_gl117.goos=js
compiler.wasm_gl117.name=WASM gc 1.17
compiler.wasm_gl118.exe=/opt/compiler-explorer/golang-1.18/go/bin/go
compiler.wasm_gl118.semver=1.18
compiler.wasm_gl118.goarch=wasm
compiler.wasm_gl118.goos=js
compiler.wasm_gl118.name=WASM gc 1.18
compiler.wasm_gl119.exe=/opt/compiler-explorer/golang-1.19/go/bin/go
compiler.wasm_gl119.semver=1.19
compiler.wasm_gl119.goarch=wasm
compiler.wasm_gl119.goos=js
compiler.wasm_gl119.name=WASM gc 1.19
compiler.wasm_gltip.exe=/opt/compiler-explorer/go-tip/bin/go
compiler.wasm_gltip.semver=(tip)
compiler.wasm_gltip.goarch=wasm
compiler.wasm_gltip.goos=js
compiler.wasm_gltip.name=WASM gc (tip)
###############################
# Cross GO

View File

@@ -1,6 +1,6 @@
compilers=&pony
defaultCompiler=p0511
group.pony.isSemVer=true
group.pony.compilers=ponynightly:p0332:p0341:p0351:p0360:p0370:p0383:p0391:p0400:p0412:p0420:p0432:p0440:p0452:p0460:p0470:p0480:p0491:p0500:p0511
group.pony.compilerType=pony

View File

@@ -27,6 +27,8 @@ from os import listdir
from os.path import isfile, join
import re
PROP_RE = re.compile(r'[^#]*=.*')
COMPILERS_LIST_RE = re.compile(r'compilers=(.*)')
ALIAS_LIST_RE = re.compile(r'alias=(.*)')
GROUP_NAME_RE = re.compile(r'group\.(.*?)\.')
@@ -39,19 +41,28 @@ LIB_VERSIONS_LIST_RE = re.compile(r'libs\.(.*?)\.versions=(.*)')
LIB_VERSION_RE = re.compile(r'libs\.(.*?)\.versions\.(.*?)\.version')
TOOLS_LIST_RE = re.compile(r'tools=(.+)')
TOOL_EXE_RE = re.compile(r'tools\.(.*?)\.exe')
EMPTY_LIST_RE = re.compile(r'.*(compilers|formatters|versions|tools|alias|exclude|libPath)=.*::.*')
DISABLED_RE = re.compile(r'^# Disabled:\s*(.*)')
EMPTY_LIST_RE = re.compile(r'.*(compilers|formatters|versions|tools|alias|exclude|libPath)=((.*::.*)|(:.*)|(.*:))$')
DISABLED_RE = re.compile(r'^# Disabled?:?\s*(.*)')
def match_and_add(line, expr, s):
match = expr.match(line)
class Line:
def __init__(self, line_number, text):
self.number = line_number
self.text = text.strip()
def __str__(self):
return f'<{self.number}> {self.text}'
def match_and_add(line: Line, expr, s):
match = expr.match(line.text)
if match:
s.add(match.group(1))
return match
def match_and_update(line, expr, s, split=':'):
match = expr.match(line)
def match_and_update(line: Line, expr, s, split=':'):
match = expr.match(line.text)
if match:
s.update(match.group(1).split(split))
return match
@@ -59,27 +70,54 @@ def match_and_update(line, expr, s, split=':'):
def process_file(file: str):
default_compiler = set()
listed_groups = set()
seen_groups = set()
listed_compilers = set()
seen_compilers = set()
listed_formatters = set()
seen_formatters = set()
listed_tools = set()
seen_tools = set()
listed_libs_ids = set()
seen_libs_ids = set()
listed_libs_versions = set()
seen_libs_versions = set()
empty_separators = set()
disabled = set()
with open(file) as f:
for line in f:
match_empty = EMPTY_LIST_RE.match(line)
if match_empty:
empty_separators.add(f"{line}")
match_compilers = COMPILERS_LIST_RE.search(line)
empty_separators = set()
seen_lines = set()
duplicate_lines = set()
disabled = set()
with open(file) as f:
for line_number, text in enumerate(f, start=1):
text = text.strip()
if not text:
continue
line = Line(line_number, text)
match_and_update(line, DISABLED_RE, disabled, ' ')
match_prop = PROP_RE.match(line.text)
if not match_prop:
continue
if line.text in seen_lines:
duplicate_lines.add(str(line))
else:
seen_lines.add(line.text)
match_empty = EMPTY_LIST_RE.match(line.text)
if match_empty:
empty_separators.add(str(line))
match_compilers = COMPILERS_LIST_RE.search(line.text)
if match_compilers:
ids = match_compilers.group(1).split(':')
for elem_id in ids:
@@ -88,32 +126,29 @@ def process_file(file: str):
elif '@' not in elem_id:
listed_compilers.add(elem_id)
match_libs_versions = LIB_VERSIONS_LIST_RE.match(line)
match_libs_versions = LIB_VERSIONS_LIST_RE.match(line.text)
if match_libs_versions:
lib_id = match_libs_versions.group(1)
versions = match_libs_versions.group(2).split(':')
seen_libs_ids.add(lib_id)
listed_libs_versions.update([f"{lib_id} {v}" for v in versions])
match_libs_version = LIB_VERSION_RE.match(line)
match_libs_version = LIB_VERSION_RE.match(line.text)
if match_libs_version:
lib_id = match_libs_version.group(1)
version = match_libs_version.group(2)
seen_libs_versions.add(f"{lib_id} {version}")
if(
match_and_add(line, DEFAULT_COMPILER_RE, default_compiler) or
match_and_add(line, GROUP_NAME_RE, seen_groups) or
match_and_add(line, COMPILER_EXE_RE, seen_compilers) or
match_and_add(line, FORMATTER_EXE_RE, seen_formatters) or
match_and_add(line, TOOL_EXE_RE, seen_tools) or
match_and_update(line, ALIAS_LIST_RE, seen_compilers) or
match_and_update(line, FORMATTERS_LIST_RE, listed_formatters) or
match_and_update(line, TOOLS_LIST_RE, listed_tools) or
match_and_update(line, LIBS_LIST_RE, listed_libs_ids) or
match_and_update(line, DISABLED_RE, disabled, ' ')
):
continue
match_and_add(line, DEFAULT_COMPILER_RE, default_compiler)
match_and_add(line, GROUP_NAME_RE, seen_groups)
match_and_add(line, COMPILER_EXE_RE, seen_compilers)
match_and_add(line, FORMATTER_EXE_RE, seen_formatters)
match_and_add(line, TOOL_EXE_RE, seen_tools)
match_and_update(line, ALIAS_LIST_RE, seen_compilers)
match_and_update(line, FORMATTERS_LIST_RE, listed_formatters)
match_and_update(line, TOOLS_LIST_RE, listed_tools)
match_and_update(line, LIBS_LIST_RE, listed_libs_ids)
bad_compilers = listed_compilers.symmetric_difference(seen_compilers)
bad_groups = listed_groups.symmetric_difference(seen_groups)
bad_formatters = listed_formatters.symmetric_difference(seen_formatters)
@@ -121,15 +156,18 @@ def process_file(file: str):
bad_libs_versions = listed_libs_versions.symmetric_difference(seen_libs_versions)
bad_tools = listed_tools.symmetric_difference(seen_tools)
bad_default = default_compiler - listed_compilers
return (file,
bad_compilers - disabled,
bad_groups - disabled,
bad_formatters - disabled,
bad_libs_ids - disabled,
bad_libs_versions - disabled,
bad_tools - disabled,
bad_default,
empty_separators)
return {
"filename": file,
"bad_compilers": bad_compilers - disabled,
"bad_groups": bad_groups - disabled,
"bad_formatters": bad_formatters - disabled,
"bad_libs_ids": bad_libs_ids - disabled,
"bad_libs_versions": bad_libs_versions - disabled,
"bad_tools": bad_tools - disabled,
"bad_default": bad_default,
"empty_separators": empty_separators,
"duplicate_lines": duplicate_lines
}
def process_folder(folder: str):
@@ -141,7 +179,7 @@ def process_folder(folder: str):
def problems_found(file_result):
return any([len(r) for r in file_result[1:]])
return any([len(file_result[r]) > 0 for r in file_result if r != "filename"])
def print_issue(name, result):
@@ -151,19 +189,15 @@ def print_issue(name, result):
def find_orphans(folder: str):
result = sorted([r for r in process_folder(folder) if problems_found(r)], key=lambda x: x[0])
result = sorted([r for r in process_folder(folder) if problems_found(r)], key=lambda x: x["filename"])
if result:
print(f"Found {len(result)} property file(s) with mismatching ids:")
print(f"Found {len(result)} property file(s) with issues:")
for r in result:
print(r[0])
print_issue("COMPILERS", r[1])
print_issue("GROUPS", r[2])
print_issue("FORMATTERS", r[3])
print_issue("LIB IDS", r[4])
print_issue("LIB VERSIONS", r[5])
print_issue("TOOLS", r[6])
print_issue("UNKNOWN DEFAULT COMPILER", r[7])
print_issue("EMPTY LISTINGS", r[8])
print('################')
print(f'## {r["filename"]}')
for k in r:
if k != "filename":
print_issue(k, r[k])
print("")
print("To suppress this warning on IDs that are temporally disabled, "
"add one or more comments to each listed file:")

View File

@@ -0,0 +1,64 @@
import unittest
from propscheck import process_file, Line
class PropsCheckTests(unittest.TestCase):
def run_test(self, file, expected_key, expected_contents):
result = process_file(file)
self.assertEqual(result[expected_key], expected_contents)
def test_bad_compilers(self):
self.run_test("./test/cases/bad_compilers.properties", "bad_compilers", {"b"})
def test_bad_compilers_alias(self):
self.run_test("./test/cases/bad_compilers_aliases.properties", "bad_compilers", {"c"})
def test_bad_compilers_disabled(self):
self.run_test("./test/cases/bad_compilers_disabled.properties", "bad_compilers", set())
def test_bad_groups(self):
self.run_test("./test/cases/bad_groups.properties", "bad_groups", {"b"})
def test_bad_formatters(self):
self.run_test("./test/cases/bad_formatters.properties", "bad_formatters", {"b"})
def test_bad_libs_ids(self):
self.run_test("./test/cases/bad_libs_ids.properties", "bad_libs_ids", {"b"})
self.run_test("./test/cases/bad_libs_ids.properties", "bad_libs_versions", set())
def test_bad_libs_versions(self):
self.run_test("./test/cases/bad_libs_versions.properties", "bad_libs_versions", {"a a2"})
def test_bad_tools(self):
self.run_test("./test/cases/bad_tools.properties", "bad_tools", {"b"})
def test_bad_default(self):
self.run_test("./test/cases/bad_default.properties", "bad_default", {"b"})
def test_empty_separators(self):
self.run_test("./test/cases/empty_separators.properties", "empty_separators", {
str(Line(1, "compilers=a::b")),
str(Line(1, "compilers=a::b")),
str(Line(2, "compilers=::a:b")),
str(Line(3, "compilers=a:b::")),
str(Line(4, "compilers=::")),
str(Line(5, "compilers=::a")),
str(Line(6, "compilers=a::")),
str(Line(7, "compilers=:a")),
str(Line(8, "compilers=a:"))
})
def test_duplicate_lines(self):
self.run_test("./test/cases/duplicate_lines.properties", "duplicate_lines",
{str(Line(5, "duplicated.prop=true"))})
def test_good_file(self):
result = process_file('../../config/c++.amazon.properties')
for k in result:
if k != "filename":
self.assertEqual(result[k], set(), f"{k} has output in known good file")
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,2 @@
compilers=a:b
compiler.a.exe=/dev/null

View File

@@ -0,0 +1,3 @@
compilers=a:c
compiler.a.exe=/dev/null
compiler.a.alias=b

View File

@@ -0,0 +1,3 @@
compilers=a:b
compiler.a.exe=/dev/null
# Disable: b

View File

@@ -0,0 +1,4 @@
defaultCompiler=b
compilers=a
compiler.a.exe=/dev/null

View File

@@ -0,0 +1,2 @@
formatters=a:b
formatter.a.exe=/dev/null

View File

@@ -0,0 +1,4 @@
compilers=&a:&b
group.a.compilers=a1
compiler.a1.exe=/dev/null

View File

@@ -0,0 +1,3 @@
libs=a:b
libs.a.versions=a1
libs.a.versions.a1.version=/dev/null

View File

@@ -0,0 +1,3 @@
libs=a
libs.a.versions=a1:a2
libs.a.versions.a1.version=/dev/null

View File

@@ -0,0 +1,3 @@
tools=a:b
tools.a.exe=/dev/null

View File

@@ -0,0 +1,6 @@
########### A comment
#commented.prop=true
commented.prop=true
duplicated.prop=true
duplicated.prop=true
unique.prop=true

View File

@@ -0,0 +1,13 @@
compilers=a::b
compilers=::a:b
compilers=a:b::
compilers=::
compilers=::a
compilers=a::
compilers=:a
compilers=a:
compilers=a:b
compilers=a
compiler.a.exe=/dev/null
compiler.b.exe=/dev/null

View File

@@ -280,7 +280,7 @@ export class CompilerFinder {
return [];
}
// This seems like no longer needed with orphancompiler.py checks
// This seems like no longer needed with propscheck.py checks
compilerInfo.libPath = compilerInfo.libPath.split(path.delimiter).filter(p => p !== '');
logger.debug('Found compiler', compilerInfo);

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2020, 2021, Compiler Explorer Authors
// Copyright (c) 2021, Compiler Explorer Authors
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -25,8 +25,8 @@
export {AdaCompiler} from './ada';
export {AnalysisTool} from './analysis-tool';
export {AssemblyCompiler} from './assembly';
export {AvrGcc6502Compiler} from './avrgcc6502';
export {BeebAsmCompiler} from './beebasm';
export {NasmCompiler} from './nasm';
export {CarbonCompiler} from './carbon';
export {Cc65Compiler} from './cc65';
export {CircleCompiler} from './circle';
@@ -37,18 +37,19 @@ export {ClangHipCompiler} from './clang';
export {CleanCompiler} from './clean';
export {CprocCompiler} from './cproc';
export {CrystalCompiler} from './crystal';
export {CSharpCompiler} from './dotnet';
export {DartCompiler} from './dart';
export {DefaultCompiler} from './default';
export {DMDCompiler} from './dmd';
export {CSharpCompiler} from './dotnet';
export {EllccCompiler} from './ellcc';
export {ErlangCompiler} from './erlang';
export {EWARMCompiler} from './ewarm';
export {EWAVRCompiler} from './ewavr';
export {FakeCompiler} from './fake-for-test';
export {FSharpCompiler} from './dotnet';
export {FlangCompiler} from './flang';
export {FortranCompiler} from './fortran';
export {FPCCompiler} from './pascal';
export {FSharpCompiler} from './dotnet';
export {GCCCompiler} from './gcc';
export {GCCRSCompiler} from './gccrs';
export {GolangCompiler} from './golang';
@@ -62,21 +63,21 @@ export {LDCCompiler} from './ldc';
export {LLCCompiler} from './llc';
export {LLVMmcaTool} from './llvm-mca';
export {MLIRCompiler} from './mlir';
export {MrustcCompiler} from './mrustc';
export {NasmCompiler} from './nasm';
export {NimCompiler} from './nim';
export {NvccCompiler} from './nvcc';
export {OCamlCompiler} from './ocaml';
export {OptCompiler} from './opt';
export {OSACATool} from './osaca';
export {FPCCompiler} from './pascal';
export {PascalWinCompiler} from './pascal-win';
export {PonyCompiler} from './pony';
export {PPCICompiler} from './ppci';
export {PtxAssembler} from './ptxas';
export {PythonCompiler} from './python';
export {RubyCompiler} from './ruby';
export {RustCompiler} from './rust';
export {RustcCgGCCCompiler} from './rustc-cg-gcc';
export {MrustcCompiler} from './mrustc';
export {RustCompiler} from './rust';
export {ScalaCompiler} from './scala';
export {SdccCompiler} from './sdcc';
export {SolidityCompiler} from './solidity';
@@ -84,16 +85,15 @@ export {SPIRVCompiler} from './spirv';
export {SwiftCompiler} from './swift';
export {TenDRACompiler} from './tendra';
export {TinyCCompiler} from './tinyc';
export {ToitCompiler} from './toit';
export {TurboCCompiler} from './turboc';
export {TypeScriptNativeCompiler} from './typescript-native';
export {VBCompiler} from './dotnet';
export {Win32Compiler} from './win32';
export {Win32VcCompiler} from './win32-vc';
export {Win32Vc6Compiler} from './win32-vc6';
export {Win32VcCompiler} from './win32-vc';
export {WineVcCompiler} from './wine-vc';
export {WslVcCompiler} from './wsl-vc';
export {ZigCompiler} from './zig';
export {ZigCC} from './zigcc';
export {ZigCompiler} from './zig';
export {ZigCXX} from './zigcxx';
export {TurboCCompiler} from './turboc';
export {AvrGcc6502Compiler} from './avrgcc6502';
export {ToitCompiler} from './toit';

View File

@@ -144,8 +144,6 @@ export type EventMap = {
toolInputChange: (compilerId: number, toolId: number, input: string) => void;
toolInputViewClosed: (compilerId: number, toolId: number, input: string) => void;
toolInputViewCloseRequest: (compilerId: number, toolId: number) => void;
// TODO: Only emitted
toolInputViewOpened: (toolId: number) => void;
toolOpened: (compilerId: number, toolState: unknown) => void;
toolSettingsChange: (compilerId: number) => void;
treeClose: (treeId: number) => void;

View File

@@ -29,8 +29,8 @@ import './asmruby-mode';
import './carbon-mode';
import './clean-mode';
import './cmake-mode';
import './cpp-for-opencl-mode';
import './cppcircle-mode';
import './cpp-for-opencl-mode';
import './cppp-mode';
import './cppx-blue-mode';
import './cppx-gold-mode';

View File

@@ -42,11 +42,11 @@ export function isValidAd(ad: Ad, subLang: string): boolean {
if (!subLang || ad.filter.length === 0 || ad.filter.includes(subLang)) {
const now = Date.now();
try {
if (ad.valid_from && Date.parse(ad.valid_from) > now) {
if (ad.valid_from && now < Date.parse(ad.valid_from)) {
return false;
}
if (ad.valid_until && Date.parse(ad.valid_until) < now) {
if (ad.valid_until && now > Date.parse(ad.valid_until)) {
return false;
}
} catch {

View File

@@ -54,7 +54,6 @@ export class ToolInputView extends MonacoPane<monaco.editor.IStandaloneCodeEdito
this.updateTitle();
this.onSettingsChange(this.settings);
this.eventHub.emit('toolInputViewOpened', this._toolId);
}
override getInitialHTML() {

View File

@@ -94,11 +94,11 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: [],
html: '',
valid_from: '2022-01-01T00:00:00',
valid_from: '2022-01-01T00:00:00+00:00',
},
'langForTest',
true,
@@ -106,11 +106,11 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: [],
html: '',
valid_from: '2022-01-16T00:00:00',
valid_from: '2022-01-16T00:00:00+00:00',
},
'langForTest',
false,
@@ -118,11 +118,11 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: [],
html: '',
valid_until: '2022-01-16T00:00:00',
valid_until: '2022-01-16T00:00:00+00:00',
},
'langForTest',
true,
@@ -130,11 +130,11 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: [],
html: '',
valid_from: '2022-01-16T00:00:00',
valid_from: '2022-01-16T00:00:00+00:00',
},
'langForTest',
false,
@@ -142,12 +142,12 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: [],
html: '',
valid_from: '2022-01-01T00:00:00',
valid_until: '2022-01-16T00:00:00',
valid_from: '2022-01-01T00:00:00+00:00',
valid_until: '2022-01-16T00:00:00+00:00',
},
'langForTest',
true,
@@ -155,12 +155,12 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: [],
html: '',
valid_from: '2022-01-10T00:00:00',
valid_until: '2022-01-16T00:00:00',
valid_from: '2022-01-10T00:00:00+00:00',
valid_until: '2022-01-16T00:00:00+00:00',
},
'langForTest',
false,
@@ -168,12 +168,12 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
978307200000, // 2022-01-20T00:00:00
Date.parse('2022-01-20T00:00:00+00:00'),
{
filter: [],
html: '',
valid_from: '2022-01-10T00:00:00',
valid_until: '2022-01-16T00:00:00',
valid_from: '2022-01-10T00:00:00+00:00',
valid_until: '2022-01-16T00:00:00+00:00',
},
'langForTest',
false,
@@ -181,12 +181,12 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: [],
html: '',
valid_from: '2022-01-16T00:00:00',
valid_until: '2022-01-10T00:00:00',
valid_from: '2022-01-16T00:00:00+00:00',
valid_until: '2022-01-10T00:00:00+00:00',
},
'langForTest',
false,
@@ -194,12 +194,12 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: ['fakeLang'],
html: '',
valid_from: '2022-01-01T00:00:00',
valid_until: '2022-01-16T00:00:00',
valid_from: '2022-01-01T00:00:00+00:00',
valid_until: '2022-01-16T00:00:00+00:00',
},
'langForTest',
false,
@@ -207,17 +207,43 @@ class MotdTests implements ITestable {
);
MotdTests.assertAdWithDateNow(
1641596400000, // 2022-01-08T00:00:00
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: ['langForTest'],
html: '',
valid_from: '2022-01-01T00:00:00',
valid_until: '2022-01-16T00:00:00',
valid_from: '2022-01-01T00:00:00+00:00',
valid_until: '2022-01-16T00:00:00+00:00',
},
'langForTest',
true,
'Keep ad if from < now < until and not filtered by lang'
);
MotdTests.assertAdWithDateNow(
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: ['langForTest'],
html: '',
valid_from: '2022-01-08T00:00:00+00:00',
valid_until: '2022-01-16T00:00:00+00:00',
},
'langForTest',
true,
'Keep ad if from = now < until and not filtered by lang'
);
MotdTests.assertAdWithDateNow(
Date.parse('2022-01-08T00:00:00+00:00'),
{
filter: ['langForTest'],
html: '',
valid_from: '2022-01-01T00:00:00+00:00',
valid_until: '2022-01-18T00:00:00+00:00',
},
'langForTest',
true,
'Keep ad if from < now = until and not filtered by lang'
);
}
}

View File

@@ -23,52 +23,52 @@
// POSSIBILITY OF SUCH DAMAGE.
export type LanguageKey =
| 'mlir'
| 'jakt'
| 'c++'
| 'llvm'
| 'cppx'
| 'cppx_gold'
| 'cppx_blue'
| 'c'
| 'openclc'
| 'cpp_for_opencl'
| 'rust'
| 'd'
| 'erlang'
| 'go'
| 'ispc'
| 'haskell'
| 'hlsl'
| 'java'
| 'kotlin'
| 'scala'
| 'ocaml'
| 'pony'
| 'python'
| 'swift'
| 'pascal'
| 'fortran'
| 'assembly'
| 'analysis'
| 'cuda'
| 'zig'
| 'clean'
| 'ada'
| 'nim'
| 'crystal'
| 'analysis'
| 'assembly'
| 'c'
| 'c++'
| 'carbon'
| 'circle'
| 'circt'
| 'ruby'
| 'clean'
| 'cmake'
| 'cpp_for_opencl'
| 'cppx'
| 'cppx_blue'
| 'cppx_gold'
| 'crystal'
| 'csharp'
| 'fsharp'
| 'vb'
| 'cuda'
| 'd'
| 'dart'
| 'typescript'
| 'erlang'
| 'fortran'
| 'fsharp'
| 'go'
| 'haskell'
| 'hlsl'
| 'ispc'
| 'jakt'
| 'java'
| 'kotlin'
| 'llvm'
| 'mlir'
| 'nim'
| 'ocaml'
| 'openclc'
| 'pascal'
| 'pony'
| 'python'
| 'ruby'
| 'rust'
| 'scala'
| 'solidity'
| 'swift'
| 'toit'
| 'carbon';
| 'typescript'
| 'vb'
| 'zig';
export interface Language {
/** Id of language. Added programmatically based on CELanguages key */