Skip to content

Anklang 0.2.0.nightly2310101358

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 10 Oct 23:59
· 879 commits to trunk since this release

Anklang 0.2.0.nightly2310101358

Development version - may contain bugs or compatibility issues.

Merge branch 'release-fixes'    # 2023-09-08 Tim Janik d8465fd
    * release-fixes:
      MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version`
      GITHUB: workflows/release.yml: set prerelease:false for annotated tags
    	Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of
    	the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290
      MISC: mknews.sh: for release tags, copy news section from NEWS.md

Merge branch 'ci-fixes'    # 2023-09-10 Tim Janik 9a7e628
    * ci-fixes:
      MISC: mkassets.sh: remove unused file generations
      MISC: dbuild.sh: delete, now unused
      MISC: cirun.sh: add missing arg to help
      MISC: publish.sh: remove --draft
      MISC: publish.sh: determine version from tarball, show progress
      MISC: publish.sh: use assets/ directory contents if present
      GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets
      GITHUB: workflows/testing.yml: make sure to generate PDF docs early on
      GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh
      GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact
      GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs
      GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC
      GITHUB: workflows/testing.yml: use github expression for negating if
      GITHUB: workflows/testing.yml: escape exclamation mark for yaml
      GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags
      GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh
      GITHUB: workflows/release.yml: remove, releases moved into testing.yml
      MISC: publish.sh: download artifacts and create a release
      MISC: cirun.sh: properly dockerize clang-tidy
      MISC: cirun.sh: support V=1
      GITHUB: workflows/testing.yml: run clang-tidy on focal
      MISC: cirun.sh: use 1000:1000 to chown files for docker containers
      MISC: mkassets.sh: add missing auto to cp --reflink=auto
      GITHUB: workflows/testing.yml: fix env syntax for gha
      GITHUB: workflows/testing.yml: use cirun.sh for all CI jobs
      GITHUB: workflows/testing.yml: use cirun.sh on Focal for docs
      MISC: cirun.sh: support $CITAG to determine docker run image
      MISC: Dockerfile.lunar: install missing clang aliases
      MISC: cirun.sh: add script that runs all CI stages via docker
      MISC: Dockerfile.focal: install poxy==0.13.0
    	Versions poxy>=0.13.1 have problems with python-3.8 on focal.
      MISC: Dockerfile.focal: install pandoc-3.1.6.2
    	Using pandoc-3.1.7 seems to have issues with PDF generation, anchors
    	in section titles cause an error and SVG images are not found.
      .gitignore: minor addition
      MISC: Dockerfile.focal: add clang-17 aliases
      MISC: Dockerfile.focal: provide xetex, poxy and clang++-17
      GITHUB: workflows/release.yml: upload draft releases for CI tests
      GITHUB: workflows/release.yml: cache focal docker builds with buildx
      GITHUB: workflows/testing.yml: fix comment
      GITHUB: workflows/testing.yml: cache arch docker builds with buildx
      GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx

Merge branch 'cirun-docker-caching' - let cirun handle image build and caching    # 2023-09-17 Tim Janik 00c0537
    * cirun-docker-caching:
      GITHUB: workflows/testing.yml: use separate steps for docker image builds
      GITHUB: workflows/testing.yml: make use of cirun which handles docker builds
    	* workflows/testing.yml: use misc/cirun -u 1000 to fix ownership
    	* workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy
    	* workflows/testing.yml: move nproc out of env variables
      MISC: cirun.sh: remove, use simpler cirun
      MISC: gh_delete_assets.sh: remove old helper
      MISC: Dockerfile.lunar: remove old file
      MISC: docker_*: remove old helpers
      MISC: cirun: add docker build, run, chown and caching
      MISC: cirun: add script to run commands in dockerized environments
      GITHUB: workflows/testing.yml: use buildx with selective caching
      GITHUB: workflows/testing.yml: configure and use buildx with selective caching
      GITHUB: workflows/testing.yml: remove unused actions/upload-artifact
      GITHUB: workflows/testing.yml: split asset builds into separate job
      MISC: cirun.sh: add --build, note that --check includes --build
      MISC: mkassets.sh: fix outdated globs

Merge branch 'thin-lto' - improve LTO builds    # 2023-09-17 Tim Janik 0e21fc8
    * thin-lto:
      ASE: main.cc: add missing formats to WAV output help
      MISC: config-uname.mk: when using LTO, enable Thin LTO with clang
    	Thin LTO can result in smaller binaries and better performance.

Merge branch 'use-git-submodule'    # 2023-09-21 Tim Janik 22cf347
    * use-git-submodule:
      DOC: copyright.ini: apply MPL-2.0 to .gitmodules
      MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh
      MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh
      GITHUB: workflows/testing.yml: use `make mkassets` for release builds
      .gitignore: ignore .submodule-stamp
      UI: global.scss, index.html: move AnklangIcons to assets/
      UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download
      EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16
    	git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b
      UI: global.scss, index.html: move fork-awesome to assets/
      UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download
      MISC: package.json.in: install [email protected]
      UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download
      EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36
    	git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang
    	git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a
      Makefile.mk: skip `git submodule` in tarball builds
      Makefile.mk: dist: exclude unused external subdirs from tarball
      Makefile.mk: include submodule archives in dist tarball
      ASE: Makefile.mk: use blake3 submodule, remove download rule
      ASE: compress.cc: use external/blake3/c/blake3.h
      EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1
    	git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3
    	git -C external/blake3/ checkout 1.3.1
      ASE: Makefile.mk: use websocketpp submodule, remove download rule
      EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2
    	git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp
    	git -C external/websocketpp/ checkout 0.8.2
      ASE: Makefile.mk: use clap submodule, remove download rule
      EXTERNAL: clap: add free-audio/clap version 1.1.1
    	git submodule add --name clap https://github.com/free-audio/clap.git external/clap
    	git -C external/clap/ checkout 1.1.1
      ASE: Makefile.mk: use rapidjson submodule, remove download rule
      EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13
    	git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson
    	git checkout 232389d4f1012dddec4ef84861face2d2ba85709
      Makefile.mk: update all submodules before building sources
      Makefile.mk: remove external/ subdir from ls-tree.lst
      MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI
      ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433
      ASE: minizip: build against external/minizip-ng/
      ASE: Makefile.mk: use minizip-ng submodule, remove download rule
      EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0
    	git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng
      .gitignore: remove entries of files the build is not generating

Merge branch 'bug-fixes'    # 2023-09-23 Tim Janik e9015b9
    * bug-fixes:
      GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact
      GITHUB: workflows/testing.yml: upgrade to actions/[email protected]
      MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17

Merge branch 'fix-warnings'    # 2023-09-29 Tim Janik 9c1a062
    * fix-warnings:
      ASE: track.cc: fix signedness
      ASE: utils.cc: cosmetic change
      ASE: project.cc: cosmetic change
      ASE: nativedevice.cc: fix signedness
      ASE: midilib.cc: fix signedness
      ASE: midievent.cc: cosmetic change
      ASE: internal.hh: cosmetic change
      ASE: inifile.cc: fix signedness
      ASE: engine.cc: cosmetic change
      ASE: compress.cc: fix write check signedness
      ASE: combo: fix insert position signedness
      ASE: clapplugin.cc: cosmetic change
      ASE: device.cc: remove unused code
      ASE: blob.cc: cosmetic fix
      MISC: Makefile.mk: clang-tidy: fix missing includes
      ASE: clapplugin.cc: cosmetic fix
      ASE: loop.cc: fix typo

Merge branch 'main-rt-jobs'    # 2023-09-30 Tim Janik a3f8f29
    * main-rt-jobs:
      ASE: main.cc: fit one RtCallJob into a cache line
    	This becomes possible with RtCall allocating just 4 pointer sizes.
    	Since Loft allocates at cache line boundaries only, this essentially
    	halves the size of an RtCallJob allocation.
      ASE: callback: shrink struct RtCall by a pointer
      ASE: loft: fix and test LoftPtr<T> actually running ~T
      ASE: engine.hh: add comment about main_rt_jobs
      ASE: main.cc: turn debugging code into real job_queue_tests
      ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc()
      ASE: callback: RtCall: wrap simple callback pointers, without using malloc
      ASE: cxxaux.hh: add unalias_ptr<> helper
      ASE: callback.cc: add a small callback list test
      ASE: callback: add CallbackList - reentrant cb list with configurable arguments
      ASE: callback: move JobQueue implementation here

Merge branch 'websocket-fix'    # 2023-10-01 Tim Janik a5f9ca9
    * websocket-fix:
      ASE: jsonapi.cc: cache socket nickname for use during errors
      ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint()
      ASE: callback.hh: remove (sync) return value handling in JobQueue
      ASE: jsonapi.cc: wait for main loop callback completion via semaphore

Merge branch 'audio-engine-job-cleanups'    # 2023-10-01 Tim Janik 8067acc
    * audio-engine-job-cleanups:
      ASE: engine.hh: document engine lifetime
      ASE: engine: remove BorrowedPtr, simplify EngineJobImpl
      ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread
      ASE: clapplugin.cc: rename ClapAudioProcessor
      ASE: project.cc: do not (auto) destroy all projects during atexit
      ASE: main.cc: shutdown: unset engine project and handle main loop callbacks
      ASE: engine: make transport a reference, move job queues into AudioEngine
      ASE: engine: rename AudioEngineThread

Merge branch 'c++20'    # 2023-10-10 Tim Janik 3a7c2d3
    * c++20:
      MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so
      MISC: Dockerfile.focal: install latest poxy (again)
      MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml
      MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms
    	Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which
    	is close to Haswell, the clang docs say:
    	-march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2
    	-march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3
    	-march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE
    	-march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
      MISC: mkassets.sh: adopt compiler config and fix make V=1
    	* Support make with V=1 during asset builds
    	* Copy compiler config from config-defaults.mk for mkassets
      Makefile.mk: ignore leading spaces in config-defaults.mk
      ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId
      ASE: memory.cc: test CString operators
      ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate
      JSONIPC: cxxjip.py: switch from C++17 to C++20
      README.md, *.mk: switch from C++17 to C++20
      ASE: memory.hh: always provide ctor for Block initialization