dtolnay / paste

Macros for all your token pasting needs
Apache License 2.0
1.02k stars 56 forks source link

More backwards compatibility breakage in paste >=0.1.13 #33

Closed shssoichiro closed 4 years ago

shssoichiro commented 4 years ago

We encountered a failure to compile in rav1e after paste 0.1.13 was released. We have tested that this failure still occurs in 0.1.14. The errors are of the following form:

error: expected expression, found `TxType::H_FLIPADST`
   --> src/asm/x86/transform/inverse.rs:67:33
    |
67  |               out[get_tx_type_idx($ENUM)] = Some([<rav1e_inv_txfm_add_$TYPE2 _$TYPE1 _$W x $H _$OPT_LOWER>]);
    |                                   ^^^^^ expected expression
...
134 | / impl_itx_fns!(
135 | |   // 64x
136 | |   [(TxType::DCT_DCT, dct, dct)],
137 | |   [(64, 64), (64, 32), (32, 64), (16, 64), (64, 16)],
...   |
163 | |   [(avx2, AVX2), (ssse3, SSSE3)]
164 | | );
    | |__- in this macro invocation
    |
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

Within a variety of macros. We were able to fix the issue in latest master via this change, but all previous commits are broken. We depend on the ability to run prior commits to compare encoding efficiency. I have confirmed that the commit prior to our fix, https://github.com/xiph/rav1e/tree/7d617a479d1d1a7051993d71ff92c1e2287fc955, builds if we hardcode paste to 0.1.12 and fails to build against any newer versions.

dtolnay commented 4 years ago

Sorry about the breakage. I published 0.1.15 with a fix that should allow all old commits of rav1e to work. Please let me know if anything still seems broken.

shssoichiro commented 4 years ago

Thank you, verified 0.1.15 works for rav1e, both older and latest commits.