Commit graph

369430 commits

Author SHA1 Message Date
nia
0bde2bb0a2 mariadb106: Since upstream's attempt to detect alloca.h without
system-specific defines seems to have failed, we need to force the
issue on SunOS. OmniOS-CE has a patch to revert the change, but that
doesn't quite sit right with me either.
2022-12-28 09:15:17 +00:00
nia
2381a369e0 mpv: Define __EXTENSIONS__ for strcasecmp on SunOS 2022-12-28 09:01:15 +00:00
khorben
dc74f00e60 doc: Updated devel/radare2 to 5.8.0 2022-12-28 04:37:08 +00:00
khorben
9a43665d47 radare2: update to 5.8.0
Changes:

  abi

  * RAnalOp.srcs,dsts are not pointers

  anal

  * Working apt and add apl to list function preludes
  * Rename axj to axlj, because axj is for jmp refs
  * Introduce anal.tailcall.delta and use flags for better metrics
  * Improve the tailcall detection logic
  * Improve warning that only seems to happen when anal.nopskip is set
  * Always show all the archinfo, even when not provided by the plug
  * Dont show analysis progress on non-interactive shells
  * Add esil.dfg.mapinfo and esil.dfg.maps config vars
  * Some more improvements to esil_dfg
  * Fix size returned from r_anal_op
  * Fix warning in aflj when parsing vargarg signatures
  * Add register computed const pointer support for esil dfg
  * Add memory computed const pointer support for esil dfg
  * Introduce R_ANAL_ESIL_DFG_TAG_{REG,MEM}
  * Use treebuf io plugin as memory access backed for esil_dfg
  * Fix pickle asm rejecting empty strings
  * Do not recurse noreturn inspection when !addr or -1
  * Generalize vector instruction types instead of following intel-specific
  * Add /au to search for unknown destination jmp/call
  * Add anal.noret and refactor anal.noret.refs
  * Fix #20827 - Show srcs/dsts in aoj
  * Fix aae argument parsing regression in and improve help
  * Add support for stack-computed const pointers in esil_dfg
  * Fix anal.a2f in aac
  * Increase default anal.depth from 64 to 128
  * Clarify which commands are used on each aaaa line
  * Fix anal.depth usage when analyzing one basic block
  * Loongarch analysis bug fixes (bl, race condition)
  * Implement aflxv and aflx? commands
  * Run /azq in aaaa
  * Fix long1,long4 pickle opcodes
  * Fix #20798 - Fix bx after add lr,pc,0 in arm32
  * Fix null pointer in aflxj
  * Implement aflxj
  * Add noreturn column in afll
  * Use RPVector in RAnalOp src/dst to support ldm/stm/simd
  * Fix pickle arch thinking 0 is 64 bit
  * Don't show the linearsize in the afl output
  * Add anal.vars.newstack - configurable improved stack-relative var

  analysis

  * Working apt and add apl to list function preludes
  * Rename axj to axlj, because axj is for jmp refs
  * Introduce anal.tailcall.delta and use flags for better metrics
  * Improve the tailcall detection logic
  * Improve warning that only seems to happen when anal.nopskip is set
  * Always show all the archinfo, even when not provided by the plug
  * Dont show analysis progress on non-interactive shells
  * Do not recurse noreturn inspection when !addr or -1
  * Generalize vector instruction types instead of following intel-specific
  * Add /au to search for unknown destination jmp/call
  * Add anal.noret and refactor anal.noret.refs
  * Fix #20827 - Show srcs/dsts in aoj
  * Fix aae argument parsing regression in and improve help
  * Fix anal.a2f in aac
  * Increase default anal.depth from 64 to 128
  * Clarify which commands are used on each aaaa line
  * Loongarch analysis bug fixes (bl, race condition)
  * Implement aflxv and aflx? commands
  * Run /azq in aaaa
  * Add noreturn column in afll
  * Add anal.vars.newstack - configurable improved stack-relative var

  api

  * Make RReg refcounted
  * Implement {ctz|clz}{32|64} RNum
  * Define RPluginMeta and RPluginStatus
  * Add new RCore.cmdCallf() helper function
  * Merge RParse into RAsm
  * Refactor RLang api to use the new design
  * Fix null deref on wrong api usage for RCore.cmdStr
  * Moving more logic between asm, arch, parse and anal
  * RAnalEsil -> REsil api refactor
  * Deprecate reil and sysarch defines
  * More refactorings and api redesigns in r_arch
  * Remove eprintf calls in favor of R_LOG
  * Implement RReg.clone()
  * Deprecate r_str_dup() - related to #20959
  * Rename RVector.len to RVector.length for consistency
  * Remove the unnecessary RThread.CpuAffinity()
  * Add portable NaN and INF defines for different float sizes
  * Deprecate r_cons_eprintf and use R_LOG instead
  * Rename RStr.home() to RFile.home() as part of the Plan
  * Rename r_mem_memzero to r_mem_zero
  * Prefer _tostring() instead of _to_string()
  * Improve r_ref implementation with debugging support
  * R_BIN_NM -> R_BIN_LANG
  * Implement thread-safe refcounting - but disabled by default
  * Deprecate the unused RFList
  * Implement r_str_ntrim() and speedup r_str_trim() with it
  * Initial implementation of RString (30% faster than RStrBuf)
  * Implement r_sys_getenv_asint
  * Add r_cons_is_initialized
  * Boolify r_core_yank_file_all() and fix shadow var bug
  * Add r_file_is_executable and r_file_extension apis
  * Fix UB bug when using r_vector random access
  * Change R_LOG_INFO to R_LOG_TODO where suitable
  * Merge rhash into rcrypto and improve apis
  * Fix memory leak in r_str_list_join()
  * Boolify and rename some methods and fields from RFS
  * Add .author field in all the RLang plugins
  * Add a public api for the yank-unset action
  * Constify the help

  arch

  * Add the arch.preludes() callback and new RSearchKeyword constructor
  * Move anal.v850 to arch
  * Fix counted string bug in pickle
  * Fix negative unsigned cast in the xtensa disassembler
  * Add RAnalOp.weakbytes() and move more analop apis to arch
  * Move anal.xap into the arch
  * Update tests and better arch.patch/modify callback
  * Move anal.{6502,snes} into arch
  * Kill RAsmOp, we can reuse RAnalOp in here
  * Improve pickle disasm on invalid instructions
  * Remove RAsmPlugin struct and add the 'aia' command to show archinfo
  * Move the remaining asm plugins into the arch
  * Minor plugin selection improvements
  * Move asm.nasm into the arch
  * Move asm.vasm into arch.any_vasm
  * Assemble large pickle instructions
  * Fix and move failing tests, reorder lib build
  * Move the arm assembler plugin from asm to arch
  * Temporary add RAnal as dependency for REgg
  * Improve x86.nz assembler parsing and other bugs in rnum
  * Initial implementation of the arch.any.as plugin
  * Better handle of RNum errors for egg and arch.x86.nz
  * Support reg+idx and idx+reg in x86.nz assembler
  * Move the x86.nz plugin
  * Fix asm.acur supporting arch, anal and asm plugins
  * Fix asm.acur supporting arch, anal and asm plugins
  * Move anal_riscv to arch_riscv
  * Fix rasm2 -LLL using the new multi-bits macros
  * Introduce RSysBits and its packing/checking macros
  * Implement archinfo() in RAnal.Plugin.tms320
  * Deprecate the unused RArchPlugin.esil field
  * Use PJ to return the list of mnemonics aoml in arm.v35
  * Move anal.rsp to the new home
  * Move anal.v810 into arch.v810
  * Move pickle from anal to arch and add it to meson
  * Remove anal.malbolge and fix CI r_esil issues
  * Move the 'sh' plugin to the new home
  * Honor plugin name in rate matching for RArch.use
  * Move jdh8 from asm/anal to arch
  * Unify RArchOp into RAnalOp using common include files
  * Fix RArchOp.refptr from bool to int
  * Bump cs5 to support FNOP on m68k
  * Wire-up RArch into RAnalOp
  * Fix arm64 plugin to work well with latest arm64 changes in capstone
  * Use the latest capstone5-next with updated aarch64 support
  * Copy anal_amd29k.c to rarch
  * Change arch plugin definition
  * Add some more arch config vars
  * Introduce arch.endian config var
  * Instantiate RArch in anal
  * Introduce RArchConfig->decoder
  * Add R_LIB_TYPE_ARCH and i4004 arch-plugin
  * First arch plugin (arch.null), implement basic lib api
  * Start moving EVM analysis from extras to core
  * First implementation of r_arch decoder api
  * Introduce the new r_arch library, just the skeleton
  * Add some r_arch api declarations
  * Initial commit on RArch structs

  asm

  * Deprecate more unused fields from RAsmPlugin
  * Fix the parse.z80.pseudo plugin and add a test
  * Remove the unused RAsm.binb
  * Internal cleanup of asm.c, deprecate the disassembly callback
  * Load cpu descriptions for multiarch plugins
  * Fix rasm2 x86.nz for "xchg eax,eax" and add tests

  bin

  * Fix JSON encoding of section addresses
  * Add test for cwd source listing, CLL and list
  * Add warning when loading DWARF5 files (not supported)
  * Add test for the obm with CL, support noncwd paths
  * Use obm when spotting a companion dwarf file on macOS
  * Implement RBinFile.merge() and obm command to use it
  * Initial implementation of the ob-- command to close the last binobj
  * Autoload the dwarf companion file on macOS systems if available
  * Use rabin2 -rO for raw dump operations
  * Use glob expressions to specify section name to dump
  * Fix #14540 - klass->super must be an RList instead of char*
  * Support for Xbox 360 PE32 architecture (PPC BE)
  * Fix wrong detection of main in elf-arm32
  * Fix rabin2 -gj and add tests
  * Add bin.types and disable by default for CI reasons
  * Support loading Plan 9 kernels
  * Use API instead of commands to autoload a pdb
  * Fix #21020 - fix json format for rabin2 -jM when no main is found
  * Expose section type for coff, elf and macho formats
  * Fix #18375 - Only patch arm64 relocs when not initialized
  * Add experimental bin.str.nofp config for less false positives
  * Parse the PT_DYNAMIC elf section for the preinit pointers
  * Fix validation check in xnu
  * Initialize macho header pf definitions
  * Speedup class bin loading with bin.filter=false
  * Implement 'ic.' command
  * Fix initial seek for Rosetta2 aot binaries
  * Silent noisy warning in dwarfprocess
  * Expose klass->super details for objc categories
  * Include fields in the ic output
  * Enable the swift metadata parser by default and import classinfo
  * Add lang field for classes, symbols and methods, expose it via ic
  * Warn about unpatched relocs when no bin.cache is set for macho fixups
  * Add support for 32bit Mach-O fixups
  * Expose the macho reloc fixups and use internal buffer for parsing
  * Fix obf and add tests for it
  * Fix Cd4[ invalid syntax used in macho _const section
  * Expose the id_dylib macho command info into the bin kv
  * Enlarge the c++ demangler stack limit to solve a warning
  * Implement Dwarf.register identifier mapping for v850
  * Infuse asm.cpu from the elf flags for v850 ELFs
  * Remove asm.features, improve RBinInfo with flags and abi details
  * Improve brainfuck detection to reduce false positives
  * Implement dwarf.regName() for arm64
  * Import the free pascal symbol demangler from rizin

  build

  * Double lowerdash defines should be defined only by the compiler
  * Fix and improve static build, faster libr.a with libtool if available
  * Improve libr.a creation with ar -rcT instead of ar -x
  * Speedup tcc builds by not using -g
  * Move esil one level up in libs.mk
  * Update sdb to remove double include paths
  * Fix compilation with -lcrypto
  * Do not use macos-latest (macos-11 is fine for LTS)
  * Update the capstone4 support to 4.0.2
  * Fix zig's @Cinclude of r_th.h
  * Add crosscompiling support with sys/zig.sh
  * Do not install the v35 archives (-50MB) in make install
  * Fix capstone dynamic memory allocation setup issue
  * Support sys/debian.sh crossbuilds
  * Remove unused lc-printscan-long-double wasi flag
  * Check if CWD contain spaces in sys/install.sh
  * Add the acr --enable-threadsafety flag and the same for meson
  * Fix meson infinite loop
  * Disable libuv by default on meson and acr
  * Change build order as long as now bin depends on fs

  ci

  * Test r2 build with all sysdependencies enabled
  * Upgrade al-cheb/configure-pagefile-action to the v1.3
  * Run unit tests in parallel
  * Upgrade github actions/checkout from v2 to v3
  * Upgrade actions/upload-artifact from v2 to v3

  cmd

  * Fix bugs in aeg command parser

  config

  * Deprecate the use of comma in e: as stated in the r2580 prophecy
  * Deprecate graph.web eval config var
  * Remove the file.offset unused config variable

  cons

  * Fix static themes listing
  * Add support for statically compiled themes
  * Fix Ctrl+Arrow dietline shortcut for word cursor
  * Fix console history log path regression

  core

  * Enable cmd.undo by default
  * Rename many bin.str evars into bin.str.
  * Use XDG instead of R2_HOME_CACHEDIR and R2_HOME_HISTORY
  * Initial support for XDG env vars and paths
  * Fix RConfig.setB when the key doesnt exist
  * Deprecate scr.seek configuration variable
  * Initial implementation of R_LOG_TODO

  crash

  * Fix segfault in poa 1
  * Fix integer overflow in fuzzed dwarf rendering in graphs
  * Fix use-after-free after @@@e spotted by meme
  * Fix UAF in aaft when the BB is removed during the loop
  * Fix UAF on quit exposed by r2frida

  crypto

  * Initial abi breaking changes in RCrypto/RHash
  * Fix rahash2 -L listing full hash
  * Initial work on the way RCrypto handles plugins
  * Separate SM4 algorithm from plugin
  * Implement the SIP hash algorithm

  debug

  * Bring back the 'dms' command
  * Fixed incorrect thread arena output
  * IO uses PID to read from child, tid is just for regs
  * Fix r2 -d foo\bar.exe and r2 -d bar.exe on windows
  * Make RDebug.regRead() and regWrite() return bool

  decompiler

  * Improve the outpuf of pdc by trimming the addresses of inline nops and colorize numbers
  * Add colorization support to pdc output

  disasm

  * Implement asm.bytes.align to justify them to the right
  * Fix char auto-comment in cmp instructions
  * Improve pseudodisasm for arm64
  * Improve arm.pseudo when no function information is available
  * Fix mips.pseudo shortpath when function is null
  * Fix x86.pseudo shortpath when function is null
  * Fix NULL function xrefs in pd
  * Implement asm.flags.right option
  * Add dummy parse.evm plugin to fix portability of test
  * Add a dummy bpf pseudo plugin
  * Add RParse.justify() to easily fix commas and spaces
  * Better spacing in arm.pseudo parse plugin

  esil

  * Initial support for threads in esil
  * Fix #21052 - wrong emulation for pop rsp
  * Move anal.esil into the new esil
  * Add aegb command as an alias for 'aeg pieq $Fi'
  * Add aegn command to combine N esil instructions into one dfg
  * Use a function instead for the spaguetti code in all cmp esil opcodes -30LOC

  globals

  * Remove one global variable in RCore.cmdEval()
  * Remove two globals from RCons.cpipe
  * Remove the 3 globals in anal.xtensa
  * Remove 3 globals from anal.tricore
  * Remove the 3 globals from anal.vax
  * Remove 3 globals from anal.nios2
  * Remove 3 globals from anal.arc
  * Remove 3 globals from anal.sparc.gnu
  * Remove 3 globals from anal.sh
  * Remove 3 globals from anal.alpha
  * Remove 3 globals from anal.lanai.gnu
  * Remove 3 more globals from anal.pdp11
  * Remove 3 globals from anal.hppa
  * Remove 3 globals from anal.m68k.gnu
  * Remove the 3 globals in anal.ppc.gnu
  * Remove 3 globals from anal.cris
  * Remove 4 globals from anal.mips.gnu
  * Deglob 4 vars in the arm.gnu disassembler
  * Remove 3 globals in s390.gnu
  * Remove 10 more globals from analysis and capstone
  * Remove 3 globals in ccarg analysis
  * Remove all global variables from RCrypto
  * Move colortable global into the RConsContext
  * Remove global from utf8
  * Remove the last global variable in libmagic
  * Remove in_log_process global
  * Remove global in bin.obj.reloc_patch
  * Remove global variable in esil loop

  graph

  * Initial work in graph.bubble for custom bg color in nodes
  * Honor graph.layout in aegv too, instead of harcoding horizontal one
  * Deprecate aegi and aggi, those were dupes for aegv and aggv
  * Fix null deref in agg and avoid destructive manners of 'V ,'

  help

  * Make the anal.depth warning more useful

  indent

  * Balance spacings in braces

  io

  * Initial implementation of the generic io-stream api
  * Fix UAF in streaming io plugins when used with io.va=1
  * Remove invocation of v layer cache in r_io_desc_read
  * Start rewriting io_cache.c
  * Kill r_io_read_at_mapped
  * Initial import of the serial plugin
  * Kill io->buffer
  * Remove unused fcn declarations
  * omfg runs omm if no map is set
  * New o++ command to create and open a new file
  * Add "reset" system command to treebuf io plugin
  * Minor bugfix in treebuf io plugin
  * Add treebuf io plugin
  * Fix free-before-use on r_io_reopen of a rbuf:// fd/desc
  * Handle reloc maps properly in r_io_map_remap and r_io_map_resize
  * Fix reloc map memleak
  * Add rio reloc maps
  * [5.8.0] Disable the default io.basemap

  json

  * Fix tj ttj tfj outputs
  * Fix invalid json in tj command
  * Fix #20772 - ihj rendering an invalid json because of pfj

  lang

  * Make r2 -j work as a hashbang handler for qjs
  * Enable BigNum in qjs
  * Use r2papi 0.0.4 with base64 and R2Api is now known as R2Papi
  * Add requirejs, simplify compilation and add js_ prefix to all the c files
  * Add typescript support
  * Minor improvements for js: with r2.call() and r2.cmdj
  * Enable Bignum support to the QJS interpreter
  * Import the alpha r2papi 0.0.2 api for qjs
  * Integrate the qjs repl into the js: command
  * Initial import of the interactive QJS repl
  * Import the quickjs rlang plugin
  * Implement py command and add stdin slurp support for js- too
  * Add 'js' and 'js:' commands, as well as improve help for #!?
  * Fix null deref in rlang
  * Add "lua" as an alias for "#!lua"

  leaks

  * Fix leaks in pdc
  * Fix more memory leaks in rbin and ranal for arm64
  * Patch more leaks in the analysis and rbin
  * Some safe memleaks related to analysis and registers refcounting
  * Fix memory leak in dietline

  lint

  * Enable the leading spaces linter rule and fix them all
  * Use more tabs and add a (disabled for now) linter for it

  logs

  * Redirect RLog messages into the Corelog
  * Add base64 support to the T and T* commands

  panels

  * Add ve command to set fg/bg colors for current panel

  print

  * New RPrint.spinBar() API used from scr.demo for now
  * Fix pcc trifids confussion issue
  * New command CLL (aka list) show function source using addrline (dwarf) info
  * Fix #21080 - Add cfg.codevar to change the buffer varname from pc
  * ASN.1 and x509: correct OCTET_STRING and Public key info parsing
  * Add ASN1 Algorithm Identifiers for Edwards curves
  * Fix #20993 - Correct ASN.1 BIT_STRING parsing
  * Implement pcn command to print bytes as space separated numbers
  * Add support for the swatch dot-beat internet time
  * Workaround for "too large buffer" in formats
  * px* is an alias for pc*
  * Implement pFoj command
  * Implement pFaj for asn1 json decoding
  * Initial refactoring/cleanup of ASN1 parser api
  * Add pFxj command to print x509 certificates in JSON format
  * Add pFpj command to print PKCS7 files as JSON
  * Fix issue in 'pdc' that was showing empty orphan nodes
  * Implement new 'pcq' command, like pc, but inline-include-friendly
  * Implement the new pieb command as an alias for pie $Fi
  * Fix read buffer overflow in pxq -272
  * Implement pFbJ command with quiet and verbose json formats
  * Implemen pFbj for json printing of protobuf
  * Set hex.hdroff=true by default
  * Implement pFAj to render android xml in JSON (abi break)
  * Implement TSV output format for RTable

  projects

  * Fix some problems when renaming projects
  * Fix some bugs in projects
  * Quote commit message to avoid git error when saving project
  * @radare Do changes in Px->Pc, Pc->PS* as planned

  r2pipe

  * Check magic header before assuming an interpreted file is executable

  r2pm

  * Fix assert in Str.Trim() when r2 is not installed
  * Add support for tarball and zip packages
  * Honor EDITOR in r2pm -e
  * Remove all the references to the old r2pm.sh
  * Implement R2PM_FAIL and mark it as deprecation for r2-5.9.x
  * Implement r2pm -cp like it was in r2pm.sh
  * Fix clean installations with r2pm -c
  * Expose R2PM_SUDO and list R2PM_PREFIX in -H
  * Handle -HH in r2pm for verbose env listing and remove unused R2PM_GITSKIP
  * Fixes pull/install/uninstall on windows
  * r2pm -Ui can be combined now and fix extras package building
  * Honor R2PM_DBDIR env var
  * Honor -f in r2pm -U to force clean the r2pm db
  * Support XDG on r2pm and expose the PKG_CONFIG_PATH
  * Expose R2_LIBEXT for r2pm packages
  * Update r2pm manpage and add -q and -a flags
  * Show package source with r2pm -d
  * Implement r2pm -H to make more packages build
  * Fixes parsing the GIT URL on some packages
  * Test the new default native r2pm fix flushing and using RLOG
  * Make R2PM_NATIVE the default and provide R2PM_LEGACY

  r2r

  * Fix rvector assert when indexing empty ones

  refactor

  * Move the RParse.cparse into RAnal.cparse
  * Stop aeg from abusing agg
  * Rename R_ANAL_ESIL_DFG_BLOCK_ to R_ANAL_ESIL_DFG_TAG_
  * Rename EsilDFGRegVar to EsilDFGVar and introduce EsilDFGVarType
  * Avoid using RArchConfig->big_endian
  * Add addr_bits to RArchPlugins and make info and decode cbs cfg aware
  * Add archcond api to rarch, some small cleanup in anal
  * Make bitness, endianess and esil-support fields of RArchPlugin again
  * Copy value.c and op.c from anal to arch
  * Copy switch.c from anal to arch
  * Add some more typedefs and enums to r_arch
  * Rename r_arch_set_ to r_arch_config_set_
  * Rename R_ASM_SYNTAX to R_ARCH_SYNTAX
  * Simplify x86_cs BSR and BSF esil
  * Use r_strbuf_replacef in anal_mips_gnu esil generation
  * Use r_strbuf_replacef in anal_mips_cs esil generation

  rvc

  * Initial refactoring of the version control api
  * Move rvc from core to util
  * Fix rvc.commit when non-interactive with a default message

  scan

  * Fix crash in the swift metadata parser spotted by coverity

  search

  * Fix JSON encoding of unsigned search values
  * Fix /au after aeim
  * Fix /w and /wi, add tests, minor code cleanup
  * Add r_anal_optype_index to make /atl and /at use full listings of optypes
  * Support space separated instruction types and family in /at and /af
  * Improve json output for /asj and /atj
  * Fix calling /re twice after ^C
  * /az uses anal.in instead of search.in to improve scan results
  * Make /az faster after aeim, skipping unrelated regions
  * Fix last char bug in swift strings found with /az
  * Add x86-64 support to /az
  * Add flags under the asm.str flag prefix when doing /az
  * Honor bin.minsz in /az is no argument is provided
  * Implement /azq to search for assembly strings and add tests
  * Implement the new /az command to find assembly constructed strings
  * Superseed #20447 - remove some magic globals

  shell

  * Fix ?vi:123 and ?v:123 commands
  * Print whatever is taken from io_system to rcons
  * Fix runtime warning after leaving an rlang session
  * Add "" command to run RCore.cmdCall()
  * Fix #21136 - o <tab> autocompletion not working
  * Show help when using invalid subcommand of afi
  * Implement abo and afbo commands to list opcode offsets in function or bb
  * Implement o-. command, add help for future o-$
  * Expose RCore.cmdCall() and fix b64: command + add tests
  * Show number conversion error messages in ?v command
  * Fixes for the line editor using live save/load with new RFile apis
  * Implement oe command to open a file using cfg.editor
  * Add quiet and table listing for lang plugins
  * Implement Ll, Llq and #!?q commands for better rlang listing
  * Fix r2 /directory behaviour
  * Support $r:REGNAME syntax and document it
  * Implement cmd.usr1 and cmd.usr2 to handle signals on unix
  * Add #!qjs and #!tiny for autocompletion
  * Fix behaviour of -a and -b flags (no arg= show current, append? for help)
  * Rename the drm command to drv for consistency
  * Add -s -i -f r2 commands
  * Implement -a, -b, -c and -e commands in r2
  * Add tabhelp exception for pf.
  * Add r2 -LL to list core plugins
  * Improve help message for f subcommands
  * Take into account static themes when listing
  * Add ot command as an alias for touch
  * Implement the ji: command as an alternative to ~{} without cons filtering
  * Also handle (j) and (*), more syntax-consistent and add a test
  * Implement (j for json output of macro commands
  * Initial implementation of ?ie
  * Add missing help for the '?i?' command
  * Use RCoreHelp for /ca?
  * Fix #20760 - Implement native gron via ~{=}
  * Remove RPrintRowlog and use R_LOG isntead
  * Allow changing number of saved input lines
  * Implement log.source and log.origin
  * Add the new ucu and ucd commands using the new core-undo apis
  * Rename asm.{off} variables to asm.offset

  syntax

  * Move the preincrement and void arg from tests to lint.sh

  threads

  * Initial ref-counted RRegItems, needed for threadsafety
  * Move the readahead logic to a local variable
  * Guard more critical sections in cons and core
  * Analysis now waits in background for the bin parsing to finish
  * Add some RThreadLocks and start to use the critical sections

  thready

  * Dont call RCore.seek() and read a new buffer in disasm

  tools

  * rax2: corrects base64 encoding for null bytes
  * Fix r2 -2
  * Fix broken tests for long number conversion
  * Fix base64 null byte decoding bug in rax2
  * Implement rasm2 -LLL to list arch plugins
  * Add Ls to list assemblers, and LA to list analysis plugins
  * Bring back the r2 -t for parsing bin and analysing in background
  * rarun2 supports multiple preload directives

  util

  * Fix the XML parser
  * shlr/yxml -> libr/util/rxml - fork the abandoned yxml parser and expose it
  * Add RStr.ansiStrip() and RStr.insert()
  * Improve internal RBuffer API checks
  * Add log error when pj depth limit reached
  * Add R_SYS_BITS_12
  * Introduce R_SYS_BITS_4
  * Add :header and :noheader in RTable
  * Fix crash in r_vector_shrink
  * Minor COV fix in r_str_char_count
  * Fix return type of r_str_char_count
  * Add new RStr.replaceAll() api
  * Use R_PRINTF_CHECK for r_strbuf_replacef
  * Add r_strbuf_replace{f}

  vc

  * Initial rvc refactoring and cleanup of the api
  * Move rvc apis into callbacks
  * Make ravc2 accessible via blob and r2 shell

  visual

  * Use RAnalOp instead of RAsmOp in r_core_visual_bit_editor
  * Fix issue with cursor disappearing towards the bottom of the screen
  * Don't draw two cursors when too many bytes are on disasm panels
  * Make j/k movement in panels' cursor mode more consistent with it's visual counterpart
  * Don't skip byte when moving left/right in cursor mode (disassembly panel)
  * Fix pdc glitching in panels
  * Handle arrow keys in VT
  * Handle JK0 keys in VT
  * Honor cmd.vprompt and scr.notch in VT
  * RStr.wrap() supports ansi and use it in VT
  * Implement Tv command and use it from VT
  * Fix the cache and other bugs in panels
  * Override scr.maxpage in panels to avoid undesired prompts

  wasm

  * Upgrade to the latest wasi16 sdk
2022-12-28 04:36:55 +00:00
khorben
60bb4906a7 doc: Updated sysutils/py-diffoscope to 229 2022-12-28 03:59:19 +00:00
khorben
512351748a py-diffoscope: updated to 229
Changes in 229:

[ Chris Lamb ]
* Skip test_html.py::test_diff if html2text is not installed.
  (Closes: #1026034)

[ Holger Levsen ]
* Bump standards version to 4.6.2, no changes needed.

Changes in 228:

[ FC Stegerman ]
* As an optimisation, don't run apktool if no differences are detected before
  the signing block. (Closes: reproducible-builds/diffoscope!105)

[ Chris Lamb ]
* Support both the python3-progressbar and python3-progressbar2 Debian
  packages, two modules providing the "progressbar" Python module.
  (Closes: reproducible-builds/diffoscope#323)
* Ensure we recommend apksigcopier. (Re: reproducible-builds/diffoscope!105)
* Make the code clearer around generating the Debian substvars and tidy
  generation of os_list.
* Update copyright years.

Changes in 227:

[ Chris Lamb ]
* Don't attempt to attach text-only differences notice if there are no
  differences to begin with. (Closes: #1024171, #1024349)
* Don't run Python decompiling tests on Python bytecode that both file(1)
  cannot yet detect and Python 3.11 cannot demarshall. (Closes: #1024335)
2022-12-28 03:58:58 +00:00
minskim
78836d443c lang/rust-bin: Add support for Darwin-*-aarch64 2022-12-27 21:26:59 +00:00
fcambus
4519d66fde doc: Updated converters/bdf2psf to 1.212 2022-12-27 20:37:30 +00:00
fcambus
d8eea5536e bdf2psf: update to 1.212.
Nothing applying to bdf2psf in particular noted in the Changelog.
2022-12-27 20:37:18 +00:00
schmonz
6e232cb280 doc: Updated net/rabbitmq to 3.11.5 2022-12-27 20:11:51 +00:00
schmonz
b1c193ab22 Update to 3.11.5. From the changelog:
3.11.5:

## Changes Worth Mentioning

### Core Server

#### Enhancements

 * Backported a number of free disk space monitor resiliency improvements.
   GitHub issue: #5831

 * `raft.adaptive_failure_detector.poll_interval` exposes [`aten`]()'s
   `poll_interval` setting to RabbitMQ users. Increasing it can reduce
   the probability of false positives in clusters where inter-node
   communication links are used at close to maximum capacity. The
   default is `5000` (5 seconds). GitHub issue: #6632

 * When both `disk_free_limit.relative` and `disk_free_limit.absolute`,
   or both `vm_memory_high_watermark.relative` and
   `vm_memory_high_watermark.absolute` are set, the absolute settings
   will now take precedence. GitHub issue: #4980

 * Closing channels will now log a warning if they had any messages
   pending a confirmation from the server. GitHub issue: #1399

 * New quorum queue option for in-memory table (MemTable) compression.
   GitHub issue: #6590

 * Default queue type (a virtual host setting) is now applied when
   importing definitions into a single virtual host. GitHub issue: #6599

#### Bug Fixes

 * Feature flags provided by plugins were mistakingly disabled after
   node restart. GitHub issue: #6500

 * Classic queues with Single Active Consumer enabled could run into an
   exception. GitHub issue: #6502

 * When a global parameter was cleared, nodes emitted an internal event
   of the wrong type. GitHub issue: #6538


### CLI Tools

#### Bug Fixes

 * `rabbitmq-queues grow` and `rabbitmq-queues shrink` misformatted the
   errors they could encounter. GitHub issue: #6601

#### Enhancements

 * Implicit `help` command (when CLI tools were invoked without a
   command name) now respects all global flags (such as `--node`). For
   example, previously the `--node` flag in

       rabbitmqctl --node rabbit@ns1.rabbitmq.cluster.local

   was ignored but now CLI tools would discover what plugins are enabled
   on node `rabbit@ns1.rabbitmq.cluster.local` and include them into
   `help` output. GitHub issue: #6598

 * New key supported by `rabbitmqctl list_queues`:
   `effective_policy_definition` that returns merged definitions of
   regular and operator policies effective for the queue. GitHub
   issue: #6556

### Management Plugin

#### Enhancements

 * It is now possible to omit explicitly specifying queue type when
   declaring a queue (or stream) in the management UI, and rely on the
   default queue type configured for the selected virtual host. GitHub
   issue: #6600

 * New HTTP API endpoint, `GET /api/config/effective`, returns effective
   node configuration. This is an HTTP API counterpart of
   `rabbitmq-diagnostics environment`. GitHub issue: #6016

### Shovel Plugin

#### Enhancements

 * Flow control state for Shovels is now reported with higher fidelity
   (of 1 second vs. several seconds previously). This means it should be
   easier to spot Shovels that run into flow control using management
   UI. GitHub issue: #6615

### Sharding Plugin

#### Bug Fixes

 * Plugin could fail to boot and halt node boot due to incorrect boot
   step metadata. GitHub issue: #6583

## Dependency Upgrades

 * `ra` was upgraded from `2.4.1` to `2.4.5`.


3.11.4:

## Changes Worth Mentioning

### Core Server

#### Enhancements

 * Import of definition files with many streams is now more efficient.
   GitHub issue: #6436

 * Lower CPU throughput in clusters with many mostly idle streams.
   GitHub issue: #6436

 * Streams with `max_age` retention now attempt to reclaim disk space
   every hour. This is relevant in environments with a lot of mostly
   inactive streams that set `max_age`. GitHub issue: #6436

 * Quorum queues are now more resilient to WAL log growth with workloads
   that involve clients that register a consumer and then close the
   channel or connection without ever consuming any deliveries or
   cancelling the consumer. GitHub issue: #6447

#### Bug Fixes

 * When a node encouters an invalid `definitions.local.file` on boot,
   it will refuse to start instead of ignoring the file. GitHub
   issue: #2610

 * Fixed a type analyzer definition. GitHub issue: #6401


### CLI Tools

#### Enhancements

 * `rabbitmq-diagnostics check_if_node_is_quorum_critical` and
   `rabbitmq-upgrade await_online_quorum_plus_one` now consider stream
   (not just quorum queues) replica placement when determining if target
   node is quorum-critical. GitHub issue: #6448

 * Queue info keys now support more inclusive property names related to
   (deprecated) classic mirrored queues. For example, `mirror_pids` can
   now be used instead of `slave_pids`. GitHub issue: #2635

 * `rabbitmq-diagnostics memory_breakdown` now executes significantly
   faster in environments with a large number (say, tens or hundreds of
   thousands) of quorum queues. Two orders of magnitude faster, in fact.
   GitHub issue: #6388

#### Bug Fixes

 * Definition export in JSON failed on nodes that used
   `definitions.skip_if_unchanged`. GitHub issue: #6424

 * Using quorum queue-specific commands on streams now results in
   clearer error messages. GitHub issue: #6488


### LDAP Plugin

#### Bug Fixes

 * LDAP server password could end up in the logs in certain types of
   exceptions. GitHub issue: #4842


### STOMP Plugin

#### Enhancements

  * `x-max-age` stream setting now can be set by STOMP clients via a
    header. GitHub issue: #5003


## Dependency Upgrades

 * `osiris` was upgraded from `1.3.3` to `1.4.0`
2022-12-27 20:11:36 +00:00
abs
27828d70b1 Update to build with python 3.10
Previously max version was 3.9.

Hopefully at some point someone will have the time to upgrade pkgsrc
to a newer version of thunderbird, but in the meantime...
2022-12-27 20:08:45 +00:00
abs
b41f6ead04 Switch to INSTALL_SCRIPT for script file 2022-12-27 20:04:30 +00:00
schmonz
6b2b7154df doc: Updated print/brlaser to 6.2 2022-12-27 19:55:48 +00:00
schmonz
d7efb56909 Update to 6.2. From the changelog:
Merge pull requests:
pdewacht#107 Added DCP-7070DW; Thanks Jan Musinsky
pdewacht#133 Fixed MFC-7460DN; Thanks Peter Ye
pdewacht#169 Changed Code; Thanks Thomas Nixon

Added additional Brother printer entries:
HL-L5000D series
HL-L2370DN series
DCP-7070DW
DCP-8065DN

Errors Fixed:
Fix the ppd file name for the MFC-7460DN, changed from br7365dn.ppd to
br7460dn.ppd

Code Changes:
Explicitly disable duplex in PCL \033&l0S.

Issues Resolved:
The HL-L2350DW printer continued to duplex even when disabled, but every
other page was garbled. Thanks to Thomas Nixon for the fix.
2022-12-27 19:55:39 +00:00
nia
7d8e106081 rust: Clarify platform.mk mess once again. Notably, there is no
bootstrap available for Solaris SPARC64, which is something noticed
by K. Schreiner on pkgsrc-users.
2022-12-27 18:49:55 +00:00
abs
da274f95fa Fix gng to work with python2 and python3
Used "print" without parenthesis. Also add dependency on python (gng
calls python from within a bash script)
2022-12-27 18:28:34 +00:00
abs
f0172a3ca9 Do not try to strip bash scripts
gng & gradlew are scripts, use INSTALL_SCRIPT rather than INSTALL_PROGRAM
2022-12-27 16:59:26 +00:00
schmonz
cfda00ccdf Indent. 2022-12-27 16:57:21 +00:00
schmonz
9b7fb74ca7 doc: Updated lang/elixir to 1.14.2 2022-12-27 16:55:22 +00:00
schmonz
2adc53585f Update to 1.14.2. From the changelog:
## v1.14.2 (2022-11-11)

### 1. Enhancements

#### Elixir

  * [Code] Add `Code.eval_quoted_with_env/4` with support for the
    `:prune_binding` option

#### ExUnit

  * [ExUnit.Case] Allow test cases to not be registered on use
  * [ExUnit.DocTest] Include `:doctest` and `:doctest_line` as meta tags
  * [ExUnit.Formatter] Expose `ExUnit.Formatter.format_assertion_diff/4`

#### Mix

  * [Mix] `Mix.install/2` accepts atoms as paths

### 2. Bug fixes

#### Elixir

  * [Code.Formatter] Fix `size*unit` shortcut in bitstring
  * [Kernel] Generate unique variables for macro expansion of `defguard`
  * [Protocol] Expand `:for` in protocols with the appropriate env

#### ExUnit

  * [ExUnit] Do not run duplicate cases on `ExUnit.run/1`

#### Mix

  * [mix test] Ensure proper error message when there is no test directory


## v1.14.1 (2022-10-10)

### 1. Enhancements

#### Elixir

  * [Kernel] Perform partial expansion of literals in module attributes
  * [Kernel] Do not add compile-time dependencies for literals as
    defaults in `Application.compile_env/3` inside module attributes
  * [Macro] Add `Macro.expand_literals/2` and `Macro.expand_literals/3`
  * [System] Add `:close_stdin` to `System.shell/2`

#### Mix

  * [mix test] Accept `--all-warnings` option

## 2. Bug fixes

#### Elixir

  * [Kernel] Fix misleading warning when `:uniq` is given in `for`
    comprehensions and the result is unused
  * [Kernel] Improve error message for when there is a conflicting
    struct and ignoring module conflict
  * [Kernel] Do not delete `@enforce_keys` attribute after `defstruct`
    declaration
  * [Kernel] Do not crash the checker on modules with missing
    `:debug_info` chunk
  * [Macro] Fix error in `Macro.to_string/2` when converting an AST with
    `:erlang.binary_to_atom/2`
  * [String] Fix `String.split/3` and `String.next_grapheme/1` returning
    invalid results on invalid UTF-8 encoding
  * [System] Do not close stdin by default in `System.shell/2`
  * [URI] Do not return `uri.port` as `:undefined` in certain cases in
    `URI.new/1`

#### ExUnit

  * [ExUnit.DocTest] Do not crash when both `:moduledoc` and functions
    are specified in `:only`

#### IEx

  * [CLI] Fix invalid argument handling when `--no-pry` is given

#### Mix

  * [mix format] Do not cache inputs from `.formatter.exs` so they are
    properly re-evaluted on every call
2022-12-27 16:55:12 +00:00
schmonz
86d2eb5c14 doc: Updated lang/erlang-man to 25.2 2022-12-27 16:51:21 +00:00
schmonz
818abf7f2a doc: Updated lang/erlang-doc to 25.2 2022-12-27 16:51:02 +00:00
schmonz
e95a3c79dd Update to 25.2 to match lang/erlang. 2022-12-27 16:50:43 +00:00
schmonz
fde8e9f621 doc: Updated lang/erlang to 25.2 2022-12-27 16:48:02 +00:00
schmonz
7edcaf5f86 Update to 25.2. From the changelog:
Potential incompatibilities:
- The inet:setopts/2 {reuseaddr, true} option will now be ignored on
  Windows unless the socket is an UDP socket. For more information see
  the documentation of the reuseaddr option part of the documentation of
  inet:setopts/2. Prior to OTP 25 the {reuseaddr, true} option was
  ignored for all sockets on Windows, but as of OTP 25.0 this was
  changed so that it was not ignored for any sockets.
2022-12-27 16:47:52 +00:00
schmonz
27c7812982 doc: Added devel/swagger-codegen version 3.0.36 2022-12-27 16:17:38 +00:00
schmonz
97b6df8749 Add and enable swagger-codegen. 2022-12-27 16:17:21 +00:00
schmonz
78e4155ab8 Add swagger-codegen, for generating clients, server stubs, and docs from
an OpenAPI spec.

swagger-codegen contains a template-driven engine to generate
documentation, API clients and server stubs in different languages by
parsing your OpenAPI / Swagger definition.
2022-12-27 16:16:52 +00:00
schmonz
207480b17b doc: Added devel/gng version 1.0.3 2022-12-27 16:14:47 +00:00
schmonz
60f79d6897 Add and enable gng. 2022-12-27 16:14:29 +00:00
schmonz
0c7e685427 Add gng, a tool to run (or create) each project's own Gradle wrapper.
GNG is a script that automatically search your gradlew when you are
inside your Gradle project and execute it. It also contains an official
Gradle wrapper. You can create gradle projects from scratch without
installing Gradle.

This is originally inspired by gdub and gradlew-bootstrap.
2022-12-27 16:14:03 +00:00
schmonz
290241d654 doc: Added devel/asdf version 0.11.0 2022-12-27 16:12:00 +00:00
schmonz
9b7fb6a6c3 Add and enable asdf. 2022-12-27 16:11:28 +00:00
schmonz
1125fffa38 Add asdf, an extensible tool to manage each of your project runtimes.
asdf is a CLI tool that can manage multiple language runtime versions on
a per-project basis. It is like `gvm`, `nvm`, `rbenv` & `pyenv` (and
more) all in one! Simply install your language's plugin!

Why use asdf?

- single CLI for multiple languages
- consistent commands to manage all your languages
- single global config keeping defaults in one place
- single `.tool-versions` config file per project
- support for existing config files `.node-version`, `.nvmrc`,
  `.ruby-version` for easy migration
- automatically switches runtime versions as you traverse your directories
- simple plugin system to add support for your language of choice
- shell completion available for common shells (Bash, Zsh, Fish, Elvish)
2022-12-27 16:11:00 +00:00
schmonz
71011dcf99 doc: Updated print/lilypond to 2.24.0 2022-12-27 15:57:12 +00:00
schmonz
a881888d4b Update to 2.24.0. pkgsrc changes:
- Modernize patch filenames
- Take MAINTAINER


From the upstream changelog:

2.24.0:

          Note: LilyPond releases can contain syntax changes, which may
          require modifications in your existing files written for older
          versions so that they work in the new version.  To upgrade
          files, it is *strongly recommended* to use the 'convert-ly'
          tool distributed with LilyPond, which is described in *note
          (lilypond-usage)Updating files with convert-ly::.
          'convert-ly' can perform almost all syntax updates
          automatically.  Frescobaldi users can run 'convert-ly'
          directly from Frescobaldi using "Tools > Update with
          convert-ly...".  Other editing environments with LilyPond
          support may provide a way to run 'convert-ly' graphically.

Major changes in LilyPond
*************************

   . LilyPond now requires Guile 2.2.  Even if you are not writing
     Scheme code yourself, you may be using libraries that contain a
     non-trivial amount of customizations.  If they do not work with
     LilyPond version 2.24.0, please report this to the library's
     developers.  If you _are_ a library developer, *note Notes on Guile
     2.2:: below.

   . The infrastructure for creating the official binaries has been
     completely rewritten, incident with the switch to Guile 2.2.  As of
     this release, we provide 64-bit binaries for macOS and Windows.
     Also, all packages are made available as simple archives that can
     be extracted to any "installation" location.  To uninstall, simply
     delete that directory.  We also discontinued the limited editor
     that was installed on macOS and Windows, LilyPad, and recommend
     switching to an external solution instead, such as the popular
     editor Frescobaldi (https://frescobaldi.org), or one of the others
     listed in *note (lilypond-web)Easier editing::.  For more
     information, please refer to the detailed instructions in *note
     (lilypond-learning)Installing::.

     The version of Ghostscript that ships in the official binaries no
     longer includes its own fonts, to reduce download size.  LilyPond
     does not need them (it has its own set of default fonts).  This
     does mean, however, that code such as '/Arial findfont' in '\markup
     \postscript' no longer works.  We recommend using normal '\markup'
     syntax to print glyphs.

Known issues in LilyPond 2.24.0
===============================

On Windows, compiling very large scores (several hundreds of pages) can
result in crashes.(1)  We hope to address this in a future 2.24.X
release.

   ---------- Footnotes ----------

   (1) Note that very large scores could already crash in LilyPond 2.22
due to restrictions imposed by the 32-bit architecture.

Notes for source compilation and packagers
==========================================

This section is aimed at enthusiasts compiling LilyPond from source and
packagers preparing LilyPond for distribution.  If you are not part of
either group, you can skip over this section.

   . As mentioned above, LilyPond now requires Guile 2.2.  If needed for
     distribution reasons, it can also be compiled with Guile 3.0 by
     passing 'GUILE_FLAVOR=guile-3.0' to the 'configure' script.
     However, this is not yet recommended nor officially supported.

   . The Scheme code evaluator in Guile 2.2 is slower than in Guile 1.X.
     To offset most of the performance penalty, we recommend compiling
     the '.scm' files into bytecode by first running 'make bytecode'
     during compilation and then 'make install-bytecode' in addition to
     'make install'.

   . Starting with this stable release, LilyPond's build system does not
     install text fonts anymore.  Please provide them as separate
     packages while paying attention to the fonts' license and notice
     files.

New for musical notation
************************

Pitches improvements
====================

   . Support for alternate accidentals was improved.  Through the
     'alterationGlyphs' property of staff-like contexts, accidental
     glyphs may be set for all grobs at once (refer to *note
     (lilypond-notation)Alternate accidental glyphs::).

   . Ottava brackets may apply to a single voice instead of the entire
     staff.  This used to require workarounds.

Rhythm improvements
===================

   . The new '\section' command inserts a double bar line that interacts
     gracefully with repeat bar lines.  A passage can be named with the
     new '\sectionLabel' command.

   . '\numericTimeSignature' and '\defaultTimeSignature' now act on all
     staves at once (more precisely, on all staves in the same 'Timing'
     context), thus matching the behavior of '\time'.

   . The '\rhythm' markup command has been added.  It is a simple way to
     enter rhythms mixed with text, such as in "swing" indications.

   . The '\enablePolymeter' command is now provided as an input
     shorthand for moving engravers as is necessary to allow different
     time signatures in parallel.

     Independent of this, 'Default_bar_line_engraver' has been removed.

   . The new option 'visible-over-note-heads' can be used to make tuplet
     brackets always appear when their direction is set to be over the
     note heads.  It can be used with the default tuplet bracket
     visibility style or with '#'if-no-beam'.

   . Measure counts now take compressed multi-measure rests and
     alternatives into account.

   . Bar numbers may be centered in their measure, as is common in film
     scores.

   . The alignment of bar numbers appearing in the middle or end of a
     system has been changed to align them on their left edge.  This is
     in keeping with the advice of Elaine Gould ('Behind Bars', p. 237),
     and was mostly the consensus reached in a discussion of the issue
     by developers.  The alignment of bars at the beginning of a system
     remains unchanged.

   . '\bar ","' creates a short bar line.

   . The following predefined bar types no longer appear as a single bar
     line at the end of a line.  Annotated bar types (e.g., '\bar
     "S-|"') have been added for that purpose.

   . '\bar ""' is no longer necessary to print the first bar number.  It
     now suffices to set 'barNumberVisibility' to
     'all-bar-numbers-visible', or one of the other visibility settings
     where the first bar number is visible.

     Note that this is a change in behavior for scores that set
     'barNumberVisibility' to 'all-bar-numbers-visible' or such and
     'BarNumber.break-visibility' to '#t' without having '\bar ""'.
     Now, a bar number is printed at the beginning.  This is just the
     expected behavior (_all_ bar numbers should be visible), but due to
     slightly unclear documentation, users may have used these settings
     to print bar numbers in the middle of systems except for the first
     bar number.  In such cases, simply remove '\set
     Score.barNumberVisibility = #all-bar-numbers-visible' since
     '\override BarNumber.break-visibility = ##t' does the relevant
     setting alone.

   . The '\break' command now always inserts a break, bypassing all
     default decisions about break points.  For example, it is no longer
     necessary to insert '\bar ""' to obtain a mid-measure break.

     The new '\allowBreak' command inserts a possible break point,
     without forcing it, but bypassing default decisions like '\break'
     does.

   . The bar line type '"-"' has been removed.  'convert-ly' converts it
     to '""'.  There is a slight difference in horizontal spacing at
     line breaks.

   . 'automaticBars' has been removed.  'convert-ly' converts
     'automaticBars = ##f' to 'measureBarType = #'()'.

   . '\defineBarLine' now accepts '#t' in lieu of repeating the mid-line
     glyph name.

   . 'Bar_engraver' used to forbid line breaks between bar lines in all
     cases, but now it only does so when the
     'forbidBreakBetweenBarLines' context property is set to '#t', which
     is the default.  The 'barAlways' context property, which previously
     worked around the lack of 'forbidBreakBetweenBarLines', has been
     removed.

   . Due to changes in the internals of '\bar', it is no longer
     supported to use it before creating lower contexts with '\new'.
     Such uses will now create an extra staff.  This is similar to what
     happens with commands such as '\override Staff...' (see *note
     (lilypond-usage)An extra staff appears::).

     The solution is to place '\bar' inside the music for each staff, as
     is usual with most commands.

   . The bar type '"-span|"' creates a mensurstrich.

   . 'Staff' contexts use the new 'Caesura_engraver' to notate the
     '\caesura' command.

Expressive mark improvements
============================

   . Events attached to notes (e.g., dynamics or articulations) can be
     delayed by an arbitrary duration using '\after'.  This simplifies
     many situations that previously required the use of explicit
     polyphony and spacer rests.

   . Broken hairpins now have some left padding by default.  This is in
     line with published scores and it fixes some cases where broken
     hairpins were vertically displaced by the key signature.

   . The ends of hairpins may now be aligned to the 'LEFT', 'CENTER' or
     'RIGHT' of 'NoteColumn' grobs by overriding the property
     'endpoint-alignments'.

   . The direction of a trill spanner can now be set with direction
     indicators like other articulations, i.e.  with '_\startTrillSpan'
     or '^\startTrillSpan'.

   . The default appearance of trill spanners has changed to better
     match classical engraving conventions.  They now end before the
     next note, not over it.  If the next note has an accidental, they
     stop before it.  If the next note is the first note of a measure,
     they stop over the bar line instead.

   . The padding by default for fermatas is now larger.  This avoids
     some cases where the fermata was placed too close to dots and other
     objects.

   . The flageolet symbol is now smaller and slightly thicker.  This is
     in line with published scores and makes the recommended workaround
     to make it smaller ('\tweak font-size -3 \flageolet') unnecessary.

   . The accent glyph is now a bit smaller.  This fixes some cases where
     a natural sign would vertically displace accents.

   . The comma glyph shape, as used in the '\breathe' command, has been
     changed to a more common form.

     The old glyph remains available under the name 'raltcomma'.

   . The new context property 'breathMarkType' selects the mark that
     '\breathe' produces from several predefined types.

Repeat improvements
===================

   . Repeat alternatives may appear within the repeated section.

   . The volta numbers for repeat alternatives may be set with the
     '\volta' command.

   . The new '\repeat segno' command automatically notates a variety of
     _da-capo_ and _dal-segno_ forms.

   . The new '\fine' command inserts a final bar line that interacts
     gracefully with repeat bar lines.  Used inside '\repeat', it also
     prints _Fine_ and ends the music after unfolding.

   . The '\volta' command removes music when a repeat is unfolded.

   . The '\unfolded' command adds music when a repeat is unfolded.

Editorial annotation improvements
=================================

   . The new '\staffHighlight' and '\stopStaffHighlight' commands can be
     used to color a musical passage.

   . A new grob 'FingerGlideSpanner' is now available, indicating a
     finger gliding on a string from one to another position.  Several
     appearances are possible, depending on the setting of 'style'.
     Shown in the image are 'line', 'stub-left', 'stub-right' and
     'stub-both'.

     Also possible is 'dashed-line', 'dotted-line', 'zigzag', 'trill',
     'bow' and 'none'.

   . Balloons now have changeable formatting.

   . Parenthesizing chords is supported.  Currently, the font size of
     the parentheses has to be adjusted manually.

   . Parenthesizing spanners is supported.

   . A "time-based" version of the '\parenthesize' command was added.
     It takes a grob path: '\parenthesize GROBNAME' or '\parenthesize
     CONTEXTNAME.GROBNAME'.  It acts like a '\once \override'.  This
     interface complements the already existing form '\parenthesize
     EVENT', in a fashion similar to '\footnote'.

   . Adding the 'Melody_engraver' to the 'Voice' context now works out
     of the box to change the stem direction of the middle note
     according to the melody.  Previously, this required an additional
     override to 'Stem.neutral-direction'.

     The 'suspendMelodyDecisions' context property may be used to turn
     off this behavior temporarily, as '\override Stem.neutral-direction
     = #DOWN' used to do.

   . The new 'Mark_tracking_translator' takes over from 'Mark_engraver'
     the decision of when to create a mark.  'Mark_engraver' continues
     to control formatting and vertical placement.

     By default, 'Mark_engravers' in multiple contexts create a common
     sequence of marks.  If independent sequences are desired, multiple
     'Mark_tracking_translators' must be used.

Text improvements
=================

   . New commands '\textMark' and '\textEndMark' are available to add an
     arbitrary piece of text between notes, called a text mark.  These
     commands improve over the previously existing syntax with the
     '\mark' command called as '\mark MARKUP' (i.e., '\mark "..."' or
     '\mark \markup ...').

     '\textMark' and '\textEndMark' are now the recommended way to
     create textual marks.  The use of '\mark' for this purpose is still
     supported, but discouraged (note that the '\mark' command itself is
     not discouraged, only calling it on a markup argument; '\mark
     \default' or '\mark NUMBER' is still the recommended and only way
     to create a rehearsal mark).

     The new commands have several differences to '\mark MARKUP'.  There
     can be an arbitrary number of them at a given moment, while there
     can only be one use of '\mark'.  They output grobs of the dedicated
     'TextMark' type, whereas '\mark' creates a 'RehearsalMark' grob
     regardless of whether it is called for a rehearsal mark or a
     textual mark; introducing this distinction allows stylesheets to
     set different layout settings for rehearsal marks and text marks.
     The alignment set by the new commands is different: '\textMark'
     always creates a left-aligned mark, and '\textEndMark' creates a
     right-aligned mark; in contrast, the alignment of a 'RehearsalMark'
     depends on the anchor point of the object it aligns to.

     See *note (lilypond-notation)Text marks:: for full details.

   . Text variant glyphs for sharp, flat, natural, double sharp, and
     double flat are now available in the Emmentaler fonts.  In markup,
     they can be easily accessed with standard Unicode values.

   . It is now possible to control the width and the shape of (some)
     Emmentaler digits using OpenType features.

   . '\smallCaps' now works on any markup, not just on a bare string.

   . The syntax for conditions in markups was made more flexible and
     user-friendly.  It uses the new markup commands '\if' and
     '\unless'.  Here are example replacements:

     2.22 syntax                              2.24 syntax
     --------------------------------------------------------------------------------
     '\on-the-fly #first-page ...'            '\if \on-first-page ...'
     '\on-the-fly #not-part-first-page ...'   '\unless \on-first-page-of-part ...'
     '\on-the-fly #(on-page N) ...'           '\if \on-page #N ...'

   . With the new markup list command 'string-lines' it is now possible
     to split a string at a given character.  The default is to split at
     line break.  Surrounding white space gets dropped.  The resulting
     list of markups may be further formatted.  This is a very
     convenient way of entering additional stanzas for songs.

   . The new markup command '\align-on-other' translates a markup as if
     it was aligned to another markup.

   . Two new markup functions '\with-dimension' and
     '\with-dimension-from' are available.  They are similar to
     '\with-dimensions' and '\with-dimensions-from', respectively,
     modifying only a single dimension (instead of both).

   . New markup commands '\with-true-dimension' and
     '\with-true-dimensions' are available.  They give the markup the
     actual extent(s) of its printed ink, which may differ from the
     default extents for some font glyphs due to text regularity
     constraints.

   . Text replacements can now replace strings with any markup, not just
     with a string.

   . A new markup command '\with-string-transformer' is available.  It
     interprets a markup with a "string transformer" installed; the
     transformer is called when the interpretation of the markup
     requires interpreting a string, and allows to perform modifications
     on this string, such as changing case.

   . The 'markup->string' function converts a markup into an approximate
     string representation; it is used for outputting PDF metadata as
     well as MIDI lyrics and markers.  Markup commands can now define a
     custom method to convert markups created using them into strings,
     for use by 'markup->string'.  For example:

          #(define-markup-command (upcase layout props arg) (string?)
             #:as-string (string-upcase arg)
             (interpret-markup layout props (string-upcase arg)))

New for specialist notation
***************************

Fretted string instrument improvements
======================================

   . The string tunings 'banjo-double-c' and 'banjo-double-d' were
     added.

   . A new grob 'BendSpanner' is now available for 'TabStaff',
     indicating a bent string.  Apart from the default three styles are
     possible: ''hold', ''pre-bend' and ''pre-bend-hold'.

Percussion improvements
=======================

   . The drum notation style 'weinberg-drums-style' was added.  It is
     based on Norman Weinberg's standardization work.

Wind instrument improvements
============================

   . Additional display details of a '\woodwind-diagram' can now be
     specified including the angle of partially-covered-keys and the
     display of non-graphical trill keys.

Chord notation improvements
===========================

   . Support for chord grids has been added.

   . In 'ChordNames', multi-measure rests now also cause the "N.C."
     symbol to be printed, just like normal rests.

   . In figured bass, '_' now creates an empty figure that still takes
     up space.

   . Formatting of figured bass has been improved.  In particular, the
     default size is reduced to a value used by many Urtext editions of
     Baroque music.

   . In figured bass, specially designed glyphs for '6\\', '7\\', and
     '9\\' are now used by default.  Similarly, specially designed
     glyphs for symbols '2\+', '4\+', and '5\+' are used by default if
     plus signs appear after the number.

     Use the new command '\figured-bass' to access these glyphs in
     markup.

   . In figured bass, brackets can now also be added around accidentals.

Ancient notation improvements
=============================

   . A new context 'VaticanaLyrics' is available.  It is similar to
     'Lyrics', providing a hyphenation style (a single, flush-left
     hyphen between two syllables) as used in the notational style of
     Editio Vaticana.

   . The predefined commands for Gregorian divisiones are no longer
     variations on '\breathe'.  '\divisioMinima', '\divisioMaior',
     '\divisioMaxima', and '\virgula' are variations on the basic
     '\caesura'.  '\finalis' is equivalent to '\section'.

     'MensuralStaff' and 'VaticanaStaff' use 'Divisio_engraver' to
     interpret the above commands as well as '\repeat volta' and
     '\fine'.

   . 'KievanStaff', 'MensuralStaff', 'PetrucciStaff', and
     'VaticanaStaff' now allow line breaks anywhere, and they no longer
     create '""' measure bar lines.

   . In 'GregorianTranscriptionStaff', divisiones are now engraved as
     'BarLine' grobs by default.  To change them to 'Divisio' grobs, use
     '\EnableGregorianDivisiones'.

   . 'GregorianTranscriptionStaff' allows a line break after any note
     and no longer uses 'Time_signature_engraver'.

   . 'GregorianTranscriptionVoice' no longer uses 'Stem_engraver'.

World music improvements
========================

   . Support for Persian classical music is now available.  For this,
     two accidental glyphs, _sori_ and _koron_, have been added to
     LilyPond.

Miscellaneous improvements
**************************

   . In the Emmentaler font, identical-looking noteheads whose only
     difference was stem direction have been consolidated into a single
     glyph.  For instance, the glyphs 'noteheads.u2triangle' and
     'noteheads.d2triangle' have been replaced by a single glyph,
     'noteheads.s2triangle'.  Notehead pairs that look visually
     different depending on the direction remain distinct.

     In addition, the 'stem-attachment' property of 'NoteHead' grobs now
     returns its actual, direction-dependent stem attachment point
     instead of a hypothetical upwards-stem attachment point.

   . Two redundant glyphs in the Emmentaler font have been removed:
     'scripts.trillelement' (use 'scripts.trill_element' instead) and
     'scripts.augmentum' (use 'dots.dotvaticana' instead).

   . Using '\paper { bookpart-level-page-numbering = ##t}', it is now
     possible to make bookparts independent with respect to page
     numbering.  If this is used for all bookparts, each bookpart has
     its own numbering sequence, starting at 1 by default.  It can also
     be used in an individual bookpart, which is useful to achieve the
     standard practice of numbers pages in an analytical introduction
     independently and in roman numerals (the latter is achieved using
     'page-number-type = #'roman-lower').

   . A new grob callback function 'break-alignment-list' is now
     available for returning different values depending on a grob's
     break direction.  As an example, use it to provide different
     alignments of a grob depending on whether it is positioned at the
     beginning, the middle, or the end of a line.

   . The new 'Mark_performer' creates MIDI Marker events like
     'Mark_engraver' creates printed marks.

   . Properties of 'PaperColumn' and 'NonMusicalPaperColumn' (such as
     'NonMusicalPaperColumn.line-break-system-details') can now be
     overridden mid-music with the usual command '\once \override'.
     They used to be a special case requiring the '\overrideProperty'
     command.

   . The new 'show-horizontal-skylines' and 'show-vertical-skylines'
     properties allow to display an object's skylines.  This is more
     flexible than the already existing 'debug-skylines' option because
     it works for all grobs.  While primarily meant for debugging
     LilyPond, this can be useful when trying to understand spacing
     decisions or overriding stencils in Scheme.

   . The new command '\vshape' is like '\shape', but also shows the
     control points and polygon for easier tweaking.

   . '\markup \path' now also works in SVG output even if the path does
     not begin with a 'moveto' or 'rmoveto' command.  Also, it now
     accepts single-letter SVG equivalents ('moveto' = 'M', etc.).

   . 'set-default-paper-size' and 'set-paper-size' now accept a custom
     paper size.

   . 'lilypond-book' supports two new music fragment options
     'paper-width' and 'paper-height' to set a custom paper size.

   . 'lilypond-book' supports a new snippet option 'inline' for inline
     music, that is, music snippets like [[image of music]] that appear within a paragraph
     of text.

   . The 'lilypond-book' script now allows braces in the argument of the
     commands '\lilypond' (for LaTeX) and '@lilypond' (for Texinfo).

   . 'lilypond-book' now appends the current directory as the last entry
     to search for included files, instead of prepending it to the list
     of specified include paths.  This allows include directories to
     shadow files from the current directory, and will only be noticed
     if there are files with the same name in both.

   . The new Scheme function 'universal-color' provides an eight-element
     color palette designed to be unambiguous to people with
     dichromatism.

   . The '-dembed-source-code' option now also embeds images added with
     '\epsfile' and files included with '\verbatim-file'.

   . The default of the 'aux-files' program option changed to '#f'.  If
     you are calling LilyPond with the '-dbackend=eps' argument and need
     the auxiliary '.tex' and '.texi' files, you now have to specify
     '-daux-files' explicitly.  The formats for 'lilypond-book' images
     can be set separately for the tall page image (typically PNG for
     HTML output) and per-system images (typically, EPS or PDF for
     printed output) with the '-d' sub-options '-dtall-page-formats' and
     '-dseparate-page-formats' respectively.

   . The 'big point' unit (1bp = 1/72in) is now available by appending
     '\bp' to length values.

   . Scheme-defined translators usable in both '\layout' and '\midi' can
     now be created with 'make-translator'.  Scheme-defined performers
     usable only in '\midi' can now be created with 'make-performer'.
     Those macros work strictly like the previously existing macro
     'make-engraver' for creating engravers only usable in '\layout'.

   . Scheme translators can now define a new slot called
     'pre-process-music'.  It is called on all translators, after all
     listeners but before all 'process-music' slots.  This can be used
     for processing that depends on all events heard but needs to set
     context properties before other translators read them.

   . Scheme translators can now contain listeners written as

          (listeners
           ((event-class engraver event #:once)
            ...))

     These are never triggered more than once per time step.  They emit
     a warning if they receive two events in the same time step, except
     if the events are equal.

   . The same grob definition can now be used to create grobs of
     different classes ('Item', 'Spanner', 'Paper_column', 'System').
     As part of this change, the grob types 'FootnoteItem' and
     'FootnoteSpanner' were consolidated into a single type 'Footnote'.
     Similarly, 'BalloonTextSpanner' and 'BalloonTextItem' are unified
     into 'BalloonText'.

     When the grob definition does not mandate a class, engravers should
     choose what class to create a grob with.  For authors of Scheme
     engravers, this means using either 'ly:engraver-make-item' or
     'ly:engraver-make-spanner'.  The utility function
     'ly:engraver-make-sticky' is provided to support the frequent case
     of _sticky_ grobs, such as footnotes and balloons.  It creates a
     grob with the same class as another grob and administrates parents
     and bounds.

   . The new command-line option '-dcompile-scheme-code', also settable
     in the LilyPond input with '#(ly:set-option 'compile-scheme-code)',
     provides with better diagnostics when running Scheme code leads to
     an error.  Internally, this uses the byte-compiler provided by
     Guile, instead of the interpreter.

     However, due to a limitation in Guile, this currently has the
     disadvantage of making it impossible to run more than a few
     thousand Scheme expressions.  Also, be aware that the Guile
     compiler has a few differences to the interpreter.  For example,
     constant parts of quasiquotes are made actual constants more
     aggressively, making code such as '(let ((x 4)) (sort! `(,x 3 2
     1)))' produce an error because the "cdr" of the quasiquoted list is
     constant, and it is an error in Scheme to mutate literal data.  (In
     this specific case, the code could avoid the issue by using the
     non-destructive 'sort', or by creating a fresh list each time with
     '(list x 3 2 1)'.)

     Furthermore, this option does not currently work on Windows.

Notes on Guile 2.2
******************

This version of LilyPond switches from Guile 1.8 to Guile 2.2.  This
section lists some of the most common incompatibilities that you could
have to deal with in order to upgrade your Scheme code.

   A full, detailed log of changes in Guile can be found in the 'NEWS'
file (https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS) of the
Guile source.

   . The 'format' function now requires a boolean or port as the first
     argument.  This argument was optional in Guile 1.8.  In order to
     make the function return the formatted output as a string, like
     'format' does without this argument in Guile 1.8, pass '#f' for
     this argument, i.e., '(format #f "STRING" ARGUMENTS ...)' instead
     of '(format "STRING" ARGUMENTS ...)'.

   . The rules for internal (i.e., non-toplevel) definitions have become
     stricter.  Definitions are no longer allowed in various expression
     contexts.  This is no longer valid, for example:

          (if (not (defined? 'variable))
              (define variable 'value))

     The solution in this particular example is:

          (define variable
            (if (not (defined? 'variable))
                'value
                variable))

   . Strings now support Unicode characters.  Previously, a Unicode
     character was represented by several characters, and various
     functions were not tailored for Unicode support.

   . Some numeric functions now return exact results in more cases.  For
     instance, '(sqrt 4)' returns '2.0' in Guile 1.8, but '2' (an
     integer) in Guile 2.2.



2.22.2:

New for musical notation
------------------------

Displaying pitch improvements
.............................

   . An accidental glyph corresponding to SMuFL code U+E2E3 has been
     added (Extended Helmholtz-Ellis accidentals: Raise by one undecimal
     quartertone).

   . Quarter-tone note names are now available in all the input
     languages.

   . Setting 'suggestAccidentals' to ''cautionary' turns only cautionary
     accidentals into 'AccidentalSuggestion's.  This can be used to
     distinguish between facsimile and editorial accidentals.

   . The command '\ambitusAfter' has been added.  It is used to move the
     ambitus to a different position.

   . Ottava brackets are now introduced with a single number by default
     (e.g., '8' or '15'), and printed in bold.  A new
     'ottavationMarkups' property has been introduced to modify that
     behavior, with several predefined lists of markups available.

Rhythm improvements
...................

   . Tuplets can now be printed with slurs instead of brackets.

   . French beaming ('\override Stem.french-beaming = ##t') now
     _exactly_ behaves like standard (i.e., default) beaming in every
     respect (beam positioning and placement of any articulation,
     fingering, etc.).  The only remaining difference are inner stems
     not passing through beams.

   . Swing and irregular rhythmic patterns may now be applied to music
     expressions made of regular durations, which may be used to render
     inequal rhythmic interpretation in MIDI.

   . Font glyphs for 256th, 512th, and 1024th flags and rests have been
     added.

   . The new 'Merge_mmrest_numbers_engraver' hides duplicate numbers on
     multi-measure rests.

Expressive mark improvements
............................

   . A dynamic command '\n' for _niente_ has been added.

   . Two new ornaments have been added.

   . A very short fermata and Henze variants of long and short fermatas
     have been added.

   . Fermatas and other articulations can now be added directly to
     multi-measure rests.  Therefore the command '\fermataMarkup' is
     deprecated.

Editorial annotation improvements
.................................

   . The 'New_fingering_engraver' will now consider the
     'X-align-on-main-noteheads' property of the
     'self-alignment-interface'.  If set to true ('##t'), all fingerings
     oriented 'up' or 'down' will be arranged in a straight column and
     aligned on the noteheads on the correct side of the stem.

Text formatting improvements
............................

   . The default fonts are now those from the URW Core 35 set, version
     2.0, replacing the TeX Gyre fonts.  Note that the fonts come with a
     ligature for 'Nr.'; see *note (lilypond-notation)Fonts explained::
     for solutions to avoid it locally and globally.

   . The '\note' markup command now takes as its first argument a
     duration instead of a string.

New for specialist notation
---------------------------

Vocal music improvements
........................

   . A lyric hyphen may now be repeated at the start of a system
     beginning with a new syllable.

   . A gradual change of vowel (or sustained consonant) may be indicated
     by adding a vowel transition between lyric syllables with the
     command '\vowelTransition'.

Unfretted and fretted string instrument improvements
....................................................

   . Fret-diagrams may now be printed left-handed, setting 'handedness'
     to 'LEFT' (as a subproperty of 'fret-diagram-details').

   . Some ukulele fretboard-diagrams have been fixed, and new diagrams
     have also been added.

Chord notation improvements
...........................

   . Chords may now be automatically inverted or voiced with dropped
     notes.

   . Legacy chord naming functions 'banter-chord-names' and
     'jazz-chord-names', have been removed from the main codebase, as
     have been the properties 'chordNamesExceptionsFull' and
     'chordNamesExceptionsPartial'.  As part of that rewrite, power
     chords are now included in the default exceptions; they will be
     printed correctly (with a superscript like all other chords) with
     no additional tweaks required, thereby removing the need for the
     '\powerChords' predefined command.  Anyone interested in the legacy
     functions may find a (somewhat working) copy of them in the
     'chord-names-alternative.ly' snippet.

Contemporary music improvements
...............................

   . A new grob 'DurationLine' is now available.  It continues a
     rhythmic grob with a line, ending at the next rhythmic grob.
     Possible styles are ''beam', ''line', ''dashed-line',
     ''dotted-line', ''zigzag', ''trill' and ''none'.  The duration line
     may end with a hook (beam-style only) or an arrow.

New for input and output
------------------------

Input file improvements
.......................

   . As announced in version 2.17.3 nearly eight years ago, the
     ''relative-includes' option is now enabled by default; included
     files that contain an '\include' command of their own must account
     for their own path rather than the main file's directory.  That
     behavior may however be switched off by setting
     ''relative-includes' to '#f', either as a command line option or
     using 'ly:set-option' in source files.

   . '\compressFullBarRests' has been renamed to
     '\compressEmptyMeasures', to avoid possible confusion with
     '\compressMMRests'.  Likewise, '\expandFullBarRests' has now become
     '\expandEmptyMeasures'.

   . The '\partcombine' command, as well as all 'partCombine'-prefixed
     commands, subroutines and property names, are now written with a
     capital C, such as '\partCombine', '\partCombineApart' etc.  The
     '\autochange' command is now also capitalized as '\autoChange'.

   . All input languages ('\language' statement) can be entered using
     their proper UTF-8 spelling (i.e., including special characters).

Output improvements
...................

   . Skylines will now take account of the 'rotation' property of layout
     objects.  Rotating a crescendo hairpin by applying '\override
     Hairpin.rotation = #'(15 0 0)', for instance, will now actually
     have influence on the skylines and thus help to enhance spacing.

   . Slight padding added between natural glyphs just touching at the
     corners in key cancellations.

   . Skylines of boxes now reflect the actual box outline including
     rounded corners and rotation.

   . CSS-style colors can now be used directly as text strings; either
     with predefined color names (like with the already available
     'css-color' function), or with hexadecimal color codes prefixed
     with '#'.  All stencils that support a 'color' property now accept
     either a list or a string; in the latter case, that string is used
     directly in the SVG output.  This allows to use alpha transparency
     (entered as "#RRGGBBAA" or "#RGBA") in SVG.

   . PDF bookmarks are now supported and allow for '\tocItem' entries to
     appear in the 'table of contents' panel of PDF viewers that support
     it.

   . '\table-of-contents' now accepts a hierarchical structure;
     '\tocItem' entries may optionally take a symbol (like '\label') or
     a dot-separated list of symbols, indicating their position in the
     score's structure.  A side-effect of that feature is that
     '\tocItem' can no longer take a simple string as its argument; a
     '\markup' command must be used.

   . Using the new options '-dpng-width' and '-dpng-height' it is now
     possible to specify the pixel size of PNG output images.

   . SVG output is now available through the '--svg' command-line option
     (or its canonical form '--format=svg', also shortened as '-fsvg').
     Due to its backend's specificity, that option is not yet compatible
     with other output formats; to get a file in both SVG and PDF, PNG
     or EPS, a second LilyPond run is required.



2.20:

New for musical notation
------------------------

*Displaying pitch improvements*

   . Pitches that have a sharp or flat in their name now need to be
     hyphenated.

     Pitches that contain _double_ sharps or flats in their name,
     however, do not need a second hyphen.

   . Accidental rules can now be defined _across_ 'ChoirStaff' contexts.

   . Two new accidental rules have been added.  Both combine the
     characteristics of 'modern-voice', 'piano' and their equivalents:

     'choral'

     This is the now the default accidental style for 'ChoirStaff'.

     'choral-cautionary'

     The same as 'choral' but with the extra accidentals typeset as
     cautionaries instead.

   . Four new clef glyphs are now available; 'GG' (double-G), 'Tenor G',
     'varC' plus related tessitura and 'Varpercussion'.

   . French note names are now explicitly defined -- previously they were
     aliased to Italian note names.

     Double sharps are entered using an 'x' suffix.

   *Rhythm improvements*

   . Multi-measure rests have length according to their total duration,
     under the control of 'MultiMeasureRest.space-increment'.  Note the
     default value is '2.0'.

   . Improvements to the '\partial' command have been made when used
     with parallel music and/or multiple contexts.

   . It is now possible to change the time signature mid-measure by
     using both the '\time' and '\partial' commands together.

   . Isolated durations in music now stand for unpitched notes.  Pitches
     are taken from the preceding note or chord.  This is especially
     convenient for specifying rhythms in both music and scheme
     functions and can help improve the readability of LilyPond source
     files.

   . Beaming exceptions can now be constructed using the simpler
     '\beamExceptions' scheme function. Note that writing the
     exception pattern without pitches is convenient but not
     mandatory (also see the previous documented rhythm improvement --
     _Isolated durations in music now stand for unpitched notes_.

   . The positioning of tuplet numbers for kneed beams has been
     improved.  Previously, tuplet numbers were placed according to the
     position of the tuplet bracket, even if the bracket was not
     printed.  This could lead to tuplet numbers being 'stranded'.

   . Collision detection for the kneed beam tuplet numbers has also been
     added, shifting the offset horizontally if the number is too close
     to an adjoining note column (but still preserving the number's
     vertical distance).  In the event of a collision -- for example with
     an accidental -- the tuplet number will be shifted vertically
     instead.  If the tuplet number is itself too large to fit within
     the available space, the original, 'bracket-based', positioning
     system will be used instead.

     The original kneed-beam tuplet behavior is still available with a
     new, 'knee-to-beam' property for the 'TupletNumber' layout object.

   *Expressive mark improvements*

   . The ends of hairpins may now be fine-tuned using the 'shorten-pair'
     grob property.  This previously only affected text-spanners (e.g.
     'TupletBracket' and 'OttavaBracket').

     Positive and negative values offset right and left respectively.

   . Individual slurs and phrasing slurs may now be started from an
     explicit note within a chord.

   . A new command '\=X' has been added -- where 'X' can be any
     non-negative integer or symbol -- so that a specific 'id' can be
     assigned to the start and end of slurs and phrasing slurs.

     This is useful when simultaneous slurs are required or if one slur
     overlaps another or when nesting short slurs within a longer one.

   *Repeat notation improvements*

   . The visual style of tremolo slashes (shape, style and slope) is now
     more finely controlled.

   . The music function '\unfoldRepeats' can now take an optional
     argument-list specifying which type(s) of repeated music should be
     unfolded.  Possible entries are 'percent', 'tremolo', 'volta'.  If
     the optional argument-list is unspecified, 'repeated-music' will be
     used, unfolding all.

   *Staff notation improvements*

   . A new command '\magnifyStaff' has been added which scales staff
     sizes, staff lines, bar lines, beamlets and horizontal spacing
     generally at the 'Staff' context level.  Staff lines are prevented
     from being scaled smaller than the default since the thickness of
     stems, slurs, and the like are all based on the staff line
     thickness.

   . A new command '\magnifyMusic' has been added, which allows the
     notation size to be changed without changing the staff size, while
     automatically scaling stems, beams, and horizontal spacing.

   . A new command, '\RemoveAllEmptyStaves', has been made available,
     which acts exactly like '\RemoveEmptyStaves', except for also
     removing empty staves on the first system in a score.

   . A new markup command '\justify-line' has been added.  Similar to
     the '\fill-line' markup command except that instead of setting
     _words_ in columns, the '\justify-line' command balances the
     whitespace between them ensuring that when there are three or more
     words in a markup, the whitespace is always consistent.

   *Editorial annotation improvements*

   . It is now possible to add text to analysis brackets through the
     'HorizontalBracketText' object.

   *Text formatting improvements*

   . Support for making it easier to use alternative 'music' fonts other
     than the default Emmentaler in LilyPond has been added.  See *note
     (lilypond-notation)Replacing the notation font:: for more
     information.

   . Default text fonts have been changed from 'Century Schoolbook L',
     'sans-serif', and 'monospace'.

     For 'svg' backend:
     Family      Default font
     -----------------------------------
     _roman_     'serif'
     _sans_      'sans-serif'
     _typewriter_'monospace'

     'serif', 'sans-serif', and 'monospace' are 'generic-family' in SVG
     and CSS specifications.

     For other backends:
     Family      Default font (alias)   Alias definition lists
     ----------------------------------------------------------------------------
     _roman_     'LilyPond Serif'       TeX Gyre Schola, C059, Century
                                        SchoolBook URW, Century Schoolbook L,
                                        DejaVu Serif, ..., serif
     _sans_      'LilyPond Sans         TeX Gyre Heros, Nimbus Sans, Nimbus
                 Serif'                 Sans L, DejaVu Sans, ..., sans-serif
     _typewriter_'LilyPond Monospace'   TeX Gyre Cursor, Nimbus Mono PS,
                                        Nimbus Mono, Nimbus Mono L, DejaVu
                                        Sans Mono, ..., monospace

     'LilyPond Serif', 'LilyPond Sans Serif', and 'LilyPond Monospace'
     are font aliases defined in the LilyPond dedicated FontConfig
     configuration file '00-lilypond-fonts.conf'.  Where a character
     dosen't exist in the first font listed, the next font listed will
     be used instead for that character.  For details of alias
     definitions, please see to '00-lilypond-fonts.conf' under the
     installed directory.

   . When using OpenType fonts, font features can be used.  Note: Not
     all OpenType fonts have all functions.

   . Two new styles of whiteout are now available.  The 'outline' style
     approximates the contours of a glyph's outline, and its shape is
     produced from multiple displaced copies of the glyph.  The
     'rounded-box' style produces a rounded rectangle shape.  For all
     three styles, including the default 'box' style, the whiteout
     shape's 'thickness', as a multiple of staff-line thickness, can be
     customized.

   . A new markup-command, '\with-dimensions-from', makes
     '\with-dimensions' easier to use by taking the new dimensions from
     a markup object, given as first argument.

   . Markup-command '\draw-squiggle-line' is now available.  Customizing
     is possible with overrides of 'thickness', 'angularity', 'height'
     and 'orientation'

   . Markup-commands '\undertie' and '\overtie' are now available, as
     well as the generic markup-command '\tie'.

New for specialist notation
---------------------------

*Vocal music improvements*

   . A new flexible template suitable for a range of choral music, is
     now provided.  This may be used to create simple choral music, with
     or without piano accompaniment, in two or four staves.  Unlike
     other templates, this template is 'built-in', which means it does
     not need to be copied and edited: instead it is simply '\include''d
     in the input file.  For details, see *note
     (lilypond-learning)Built-in templates::.

   . The '\addlyrics' function now works with arbitrary contexts
     incuding 'Staff'.

   . '\lyricsto' and '\addLyrics' have been 'harmonized'.  Both now
     accept the same kind of delimited argument list that '\lyrics' and
     '\chords' accept.  Backward compatibility has been added so music
     identifiers (i.e.  '\mus') are permitted as arguments.  A
     'convert-ly' rule has been added that removes redundant uses of
     '\lyricmode' and rearranges combinations with context starters such
     that '\lyricsto' in general is applied last (i.e.  like
     '\lyricmode' would be).

   *Unfretted and fretted string instrument improvements*

   . A new note head style for Tabulature has been added --
     'TabNoteHead.style = #'slash'.

   . In fret-diagrams the distance between frets and the distance
     between strings is now independently adjustable.  Available are
     'fret-distance' and 'string-distance' as subproperties of
     'fret-diagram-details'.

   . It is now possible to individually color both the dots and
     parentheses in fret diagrams when using the '\fret-diagram-verbose'
     markup command.

   . Two new properties have been added for use in
     'fret-diagram-details' when using the '\fret-diagram-verbose'
     markup command; 'fret-label-horizontal-offset' which affects the
     'fret-label-indication' and 'paren-padding' which controls the
     space between the dot and the parentheses surrounding it.

   . Additional bass strings (for lute tablature) are supported.

   . String numbers can now also be used to print roman numerals (e.g.
     for unfretted string instruments).

   . 'TabStaff' is now able to print micro-tones for bendings etc.

   *Chord notation improvements*

   . '\chordmode' can now use '< >' and '<< >>' constructs.

   . It is now possible to override the 'text' property of chord names.

New for input and output
------------------------

*Input structure improvements*

   . Blocks introduced with '\header' can be stored in variables and
     used as arguments to music and scheme functions and as the body of
     '#{...#}' constructs.  They are represented as a Guile module.

     While '\book', '\bookpart', '\score', '\with', '\layout', '\midi',
     '\paper' blocks can be passed around in similar manner, they are
     represented by different data types.

   *Titles and header improvements*

   . Page numbers may now be printed in roman numerals, by setting the
     'page-number-type' paper variable.

   *Input file improvements*

   . A new command '\tagGroup' has now been added.  This complements the
     existing '\keepWithTag' and '\removeWithTag' commands.

   *Output improvements*

   . LilyPond source files may now be embedded inside the generated PDF
     files.  This experimental feature is disabled by default and may be
     regarded as unsafe, as PDF documents with hidden content tend to
     present a security risk.  Please note that not all PDF viewers have
     the ability to handle embedded documents (if not, the PDF output
     will appear normally and source files will remain invisible).  This
     feature only works with the PDF backend.

   . The 'output-classic-framework' procedure and the '-dclip-systems'
     are now available with the 'SVG' backend.

   . An argument, '-dcrop', has been added, formatting 'SVG' and 'PDF'
     output without margins or page-breaks.

   . A new 'output-attributes' grob property is now used for svg output
     instead of the 'id' grob property.  It allows multiple attributes
     to be defined as an association list.  For example, '#'((id . 123)
     (class . foo) (data-whatever . "bar"))' will produce the following
     group tag in an SVG file: '<g id="123" class="foo"
     data-whatever="bar"> ... </g>'.

   . The PostScript functionality of stroke adjustment is no longer
     applied automatically but left to the discretion of the PostScript
     device (by default, Ghostscript uses it for resolutions up to
     150dpi when generating raster images).  When it is enabled, a more
     complex drawing algorithm designed to benefit from stroke
     adjustment is employed mostly for stems and bar lines.

     Stroke adjustment can be forced by specifying the command line
     option '-dstrokeadjust' to LilyPond.  When generating 'PDF' files,
     this will usually result in markedly better looking 'PDF' previews
     but significantly larger file size.  Print quality at high
     resolutions will be unaffected.

   . Added a new 'make-path-stencil' function that supports all 'path'
     commands both relative and absolute:

     'lineto', 'rlineto', 'curveto', 'rcurveto', 'moveto', 'rmoveto',
     'closepath'.  The function also supports 'single-letter' syntax
     used in standard SVG path commands:

     'L', 'l', 'C', 'c', 'M', 'm', 'Z' and 'z'.  The new command is also
     backward-compatible with the original 'make-connected-path-stencil'
     function.  Also see 'scm/stencil.scm'.

   *MIDI improvements*

   . The most common articulations are now reflected in MIDI output.
     Accent and marcato make notes louder; staccato, staccatissimo and
     portato make them shorter.  Breath marks shorten the previous note.

     This behavior is customizable through the 'midiLength' and
     'midiExtraVelocity' properties on 'ArticulationEvent'.  See
     'script-init.ly' for examples.

   . Improved MIDI output for breathe marks.  After tied notes, breaths
     take time _only_ from the last note of the tie; e.g.  '{ c4~ c8
     \breathe }' performs as '{ c4~ c16 r }' instead of '{ c4 r8 }'.
     This is more consistent with articulations and how humans interpret
     breaths after ties.  It now also makes it easier to align
     simultaneous breathe marks over multiple parts, all with different
     note lengths.

   . There is now support for controlling the 'expression level' of MIDI
     channels using the 'Staff.midiExpression' context property.  This
     can be used to alter the perceived volume of even sustained notes
     (albeit in a very 'low-level' way) and accepts a number value
     between '0.0' and '1.0'.

   . When outputting MIDI, LilyPond will now store the 'title' defined
     in a score's '\header' block (or, if there is no such definition on
     the '\score' level, the first such definition found in a '\header'
     block of the score's enclosing '\bookpart', '\book', or top-level
     scope) as the name of the MIDI sequence in the MIDI file.
     Optionally, the name of the MIDI sequence can be overridden using
     the new 'midititle' '\header' field independently of 'title' (for
     example, in case 'title' contains markup code which does not render
     as plain text in a satisfactory way automatically).

   . Support for making it easier to use alternative 'music' fonts other
     than the default Emmentaler in LilyPond has been added.  See *note
     (lilypond-notation)Replacing the notation font:: for more
     information.

   *Extracting music improvements*

   . '\displayLilyMusic' and its underlying Scheme functions no longer
     omit redundant note durations.  This makes it easier to reliably
     recognize and format standalone durations in expressions like
          { c4 d4 8 }

New for spacing issues
----------------------

*Page breaking improvements*

   . There are two new page breaking functions.  'ly:one-page-breaking'
     automatically adjusts the height of the page to fit the music, so
     that everything fits on one page.
     'ly:one-line-auto-height-breaking' is like 'ly:one-line-breaking',
     placing the music on a single line and adjusting the page width
     accordingly, however it also automatically adjusts the page height
     to fit the music.

   *Vertical and Horizontal spacing improvements*

   . It is now possible to move systems with reference to their current
     position using the 'extra-offset' subproperty of
     'NonMusicalPaperColumn.line-break-system-details'.  Both vertical
     and horizontal changes are possible.  This feature is especially
     useful for making slight adjustments to the default vertical
     position of individual systems.  See *note
     (lilypond-notation)Explicit staff and system positioning:: for more
     information.

   . Improved visual spacing of small and regular 'MI' Funk and Walker
     noteheads so they are now the same width as other shaped notes in
     their respective sets.  'SOL' noteheads are also now visually
     improved when used with both the normal Aiken and Sacred Harp
     heads, as well as with the thin variants.

   . 'LeftEdge' now has a definable 'Y-extent' (i.e.vertical).  See
     *note (lilypond-internals)LeftEdge::.

   . Grobs and their parents can now be aligned separately allowing more
     flexibility for grob positions.  For example the 'left' edge of a
     grob can now be aligned on the 'center' of its parent.

   . Improved horizontal alignment when using 'TextScript', with
     'DynamicText' or 'LyricText'.

New for changing defaults
-------------------------

     An optional argument for the '\afterGrace' command has been added.

     '\afterGrace' now has an optional argument to specificy the spacing
     fraction position of its notes.

   . All of '\override', '\revert', '\set', and '\unset' now work with
     the '\once' prefix for making one-time settings.

New for Internal interfaces and functions
-----------------------------------------

   . The music and grob property 'spanner-id', used for distinguishing
     simultaneous slurs and phrasing slurs, has been changed from a
     string to a _key_ which can be either a non-negative integer or
     symbol (also see the previous documented expressive mark
     improvement -- _A new command \=X has been added_).

   . Context properties named in the 'alternativeRestores' property are
     restored to their value at the start of the _first_ alternative in
     all subsequent alternatives.

   . LilyPond functions defined with 'define-music-function',
     'define-event-function', 'define-scheme-function' and
     'define-void-function' can now be directly called from Scheme as if
     they were genuine Scheme procedures.  Argument checking and
     matching will still be performed in the same manner as when calling
     the function through LilyPond input.  This includes the insertion
     of defaults for optional arguments not matching their predicates.
     Instead of using '\default' in the actual argument list for
     explicitly skipping a sequence of optional arguments,
     '*unspecified*' can be employed.

   . Current input location and parser are now stored in GUILE fluids
     and can be referenced via the function calls '(*location*)' and
     '(*parser*)'.  Consequently, a lot of functions previously taking
     an explicit 'parser' argument no longer do so.

     Functions defined with 'define-music-function',
     'define-event-function', 'define-scheme-function' and
     'define-void-function' no longer use 'parser' and 'location'
     arguments.

     With those particular definitions, LilyPond will try to recognize
     legacy use of 'parser' and 'location' arguments, providing
     backwards-compatible semantics for some time.

   . Scheme functions and identifiers can now be used as output
     definitions.

   . Scheme expressions can now be used as chord constituents.

   . Music (and scheme and void) functions and markup commands that just
     supply the final parameters to a chain of overrides, music function
     and markup command calls can now be defined in the form of just
     writing the expression cut short with '\etc'.

   . Dot-separated symbol lists like 'FretBoard.stencil' were already
     supported as of version 2.18.  They may now also contain unsigned
     integers, and may alternatively be separated by commata.

   . Such lists may also be used in expressions for assignments, sets,
     and overrides.

   . Association list elements could previously be assigned values
     individually (for example, paper variables like
     'system-system-spacing.basic-distance').

     In combination with the previously mentioned changes, this allows
     setting and referencing pseudovariables like 'violin.1'.

   . The markup-list-command '\table' is now available.  Each column may
     be aligned differently.
   . 'InstrumentName' now supports 'text-interface'.

   . The 'thin-kern' property of the 'BarLine' grob has been renamed to
     'segno-kern'.

   . 'KeyCancellation' grobs now ignore cue clefs (like 'KeySignature'
     grobs do).

   . Add support for '\once \unset'
2022-12-27 15:57:01 +00:00
he
1c96ceba87 Note update of lang/clang to 15.0.6nb1. 2022-12-27 13:59:25 +00:00
he
761e6f36a9 lang/clang: fix build on NetBSD.
In IncrementalParser.cpp: NetBSD doesn't have ENOTRECOVERABLE, so
doesn't have std::errc::state_not_recoverable either.  Use
std::errc::operation_not_supported instead.

Bump PKGREVISION.
2022-12-27 10:49:42 +00:00
pin
3db46dbc05 doc: Updated devel/git-cliff to 1.0.0 2022-12-26 22:14:45 +00:00
pin
ff5fb9b2a3 devel/git-cliff: update to 1.0.0
This is a milestone release that marks version 1.0.0 of git-cliff.
It means that the API is somewhat stabilized and development will take a route
in improving the existing functionality and adding new features rather than
changing the internals. There are a couple of breaking changes in this release
(such as the removal of --date-order) so the major version is increased.

Bug Fixes
 - Fix test fixture failures

Documentation
 - Fix GitHub badges in README.md

Features
 - [breaking] Replace --date-order by --topo-order
 - Allow running with --prepend and --output (#120)
 - [breaking] Use current time for --tag argument (#107)
 - Include completions and mangen in binary releases (#115)
 - Publish Debian package via release workflow (#113)

Miscellaneous Tasks
 - Run all test fixtures
 - Remove deprecated set-output usage
 - Update actions/checkout to v3
 - Comment out custom commit preprocessor (#112)

Refactor
 - Apply clippy suggestions

Styling
 - Update README.md about the styling of footer field
2022-12-26 22:14:24 +00:00
wiz
9cb4715fdd doc: Updated meta-pkgs/texlive-collection-latexextra to 2022pre7 2022-12-26 22:14:01 +00:00
wiz
226cf17c14 texlive-collection-latexextra: add tex-ecv
Bump version
2022-12-26 22:13:51 +00:00
pin
07f1f337e2 doc: Updated devel/diffsitter to 0.7.3 2022-12-26 22:13:22 +00:00
wiz
567885deff doc: Added print/tex-ecv-doc version 0.3 2022-12-26 22:13:07 +00:00
pin
f4770119ef devel/diffsitter: update to 0.7.3
What's Changed
 - build(deps): bump clap from 4.0.27 to 4.0.29 by @dependabot in #494
 - chore: Update grammars by @afnanenayet in #501
 - Update deps by @afnanenayet in #499
 - Add related project by @afnanenayet in #500
 - chore: Update dependencies by @afnanenayet in #508
 - chore(grammars): Update grammars by @afnanenayet in #510
 - docs(testing): Add note about why tests break by @afnanenayet in #511
 - ci(windows): Add back windows target by @afnanenayet in #512
2022-12-26 22:13:02 +00:00
wiz
e1b7f01551 doc: Added print/tex-ecv version 0.3 2022-12-26 22:12:58 +00:00
wiz
60afec7376 print/Makefile: + tex-ecv* 2022-12-26 22:12:46 +00:00
wiz
89a0bd09ba print/tex-ecv-doc: import tex-ecv-doc-0.3
Documentation for tex-ecv.
2022-12-26 22:12:35 +00:00
wiz
05a606ccd9 print/tex-ecv: import tex-ecv-0.3
The class provides an environment for creating a fancily laid
out tabular curriculum vitae inspired by the european
curriculum vitae. The distribution comes with a German and an
English template.
2022-12-26 22:12:20 +00:00