Tags: zorael/dialect
Tags
v3.3.0
This fixes `library` and `bot` builds not being `pure` and `@safe`, which
we always assumed they were. It turns out `auto this() { /* ... */ }`
doesn't actually work. The fix is to mark constructors as `pure` and
`@safe` explicitly.
It's technically not a breaking change, but let's bump the minor
version to commemorate it; a fix to something that should never have been.
v3.2.0 This release makes further changes to the structs in `dialect.defs`, and as such bumps the minor version. The `IRCEvent` string member `channel` is now an instance of struct `IRCEvent.Channel`. In a normal build it only has a string member `name`, which fills the same role as the previous `IRCEvent.channel` string. In a Twitch build it additionally has a `ulong` member `id`, which corresponds to the numeric user ID of the owner (broadcaster) of a channel. This is a breaking change and will require use of `IRCEvent.channel` to be string-replaced with `IRCEvent.channel.name` in any existing code. Compatibility methods were added to `IRCEvent.Channel` to help transition to the new struct. Declare version `ChannelMigrationCompatibility` to use them. It's not fully a drop-in replacement to the old behaviour, but it should help with the transition. Added an `altcontent` member to `IRCEvent`. This is a string that is used for events where there are two separate message bodies; either two chat messages, such as in a Twitch reply, or when the event is accompanied by things like a system/server message. `IRCEvent.content` makes up the primary body, and any secondary messages are to be stored in `IRCEvent.altcontent`. This frees up `IRCEvent.aux[0]`, which was becoming crowded for some events. The Twitch-specific `IRCUser.id` is now a `ulong` instead of a `uint`. This is potentially a breaking change, depending on how the value is used in importing code. One solution is to migrate everything else to `ulong` too; another is to cast the value to `uint` when needed.
v3.1.0 This release raises the `lu` dependency to a minimum of v3.2.0, and as such bumps the minor version. Added a `subchannel` member to `IRCEvent`. It's loosely defined, but the idea is it refers to the secondary channel of an event, when there are two. A concrete example would be Twitch's new shared channel chat, where (when enabled) messages are repeated into one or more secondary channels. In such a scenario, `IRCEvent.channel` would refer to the channel in which the message effectively plays out, and `IRCEvent.subchannel` would refer to the originating "source" channel. Refactored the monolith that was `assertgen.d` into something more modular and easier to maintain. It now also takes enough command-line flags to be able to support reading tests from standard input, such as when piping raw IRC lines to it. This was always possible when `--twitch` was passed, as the prompts for server daemon, network and address were then skipped, but this is possible for all networks now that these can be specified at the command line. Refactored `postprocessing/twitch.d` to be able to support the `source-msg-id` tag. It now also is more careful when assigning values to `IRCEvent` members, and will warn the user (more) if something is overwritten. * Reparsed all Twitch tests and updated the `tests/twitch.d` file with the modern parsing * Added type `TWITCH_CHARITYDONATION` * Balanced some Twitch tags so they don't overwrite each other * Added a simple CI tool for running `dscanner` style checks on the codebase
PreviousNext