summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-12-23Switch to FxHash for hash maps and such.Emilio Cobos Álvarez
This isn't such a massive win as I'd have hoped, but it is consistently faster, so there's no reason not to. > ./bindgen-old tests/stylo.hpp --no-rustfmt-bindings > /dev/null 2>&1 6.17s user 0.84s system 98% cpu 7.079 total > ./target/release/bindgen tests/stylo.hpp --no-rustfmt-bindings > /dev/null 2> 5.92s user 0.87s system 98% cpu 6.866 total Which isn't _that_ much but it's quite a bit.
2018-12-23Allow to turn off the matches recording introduced in #1469.Emilio Cobos Álvarez
2018-12-23regex_set: Avoid allocations in unmatched_items().Emilio Cobos Álvarez
2018-12-23regex_set: Derive Default instead of manually implementing it.Emilio Cobos Álvarez
2018-12-23Merge pull request #1469 from sanxiyn/warn-unused-option. r=emilioEmilio Cobos Álvarez
Warn about unused whitelist options
2018-12-23Add some diagnostics about which clang we find and which flags we derive ↵Emilio Cobos Álvarez
from it.
2018-12-20Warn about unused whitelist optionsSeo Sanghyeon
2018-12-19Store original strings in RegexSetSeo Sanghyeon
2018-12-14ir: Put function attribute detection under an opt-in flag.Emilio Cobos Álvarez
Given it was a considerable performance hit under some workloads. Closes #1465.
2018-12-14clang: Tokenize more lazily.Emilio Cobos Álvarez
Instead of converting all the tokens to utf-8 before-hand, which is costly, and allocating a new vector unconditionally (on top of the one clang already allocates), just do the tokenization more lazily. There's actually only one place in the codebase which needs the utf-8 string, all the others can just work with the byte slice from clang. This should have no behavior change, other than be faster. In particular, this halves the time on my machine spent on the test-case from #1465. I'm not completely sure that this is going to be enough to make it acceptable, but we should probably do it regardless.
2018-12-10User-guide link update on docs.rsRoy Buitenhuis
The link to the user guide pointed to https://rust-lang-nursery.github.io/rust-bindgen/
2018-12-02codegen: Properly detect bindgen unions.Emilio Cobos Álvarez
The root cause of the issue was the missing: ``` self.saw_bindgen_union |= new.saw_bindgen_union; ``` But I also cleaned up a bit more and removed the unused saw_union. Fixes #1457
2018-11-30Update which as well.Emilio Cobos Álvarez
2018-11-30Remove the hack now that rustfmt-nightly properly preserves the comments.Emilio Cobos Álvarez
2018-11-30Use rustfmt's normalize_doc_attributes, to mostly preserve behavior re. doc ↵Emilio Cobos Álvarez
comments.
2018-11-30Update quote and proc-macro.Bastien Orivel
I give up on the doc comments. This is a rebase of #1334 keeping the formatting of the comments and using TokenStream::from_str instead because one can hope. Fixes #1407.
2018-11-30Merge pull request #1452 from emilio/whitelist-nameEmilio Cobos Álvarez
Don't mangle using the parse callbacks for whitelisting / blacklisting / etc.
2018-11-28Add source annotation to express explicit derives for a type.Porter Smith
This allows for explicit selection of which traits are derived for a type, e.g. deriving custom traits on particular types that need it. Example usage: ```C++ /// <div rustbindgen derive="Clone"></div> /// <div rustbindgen derive="MyDerivableTrait"></div> struct foo { ... }; ``` generates into ```Rust #[derive(Clone,MyDerivableTrait)] struct foo { ... } ```
2018-11-28Don't mangle using the parse callbacks for whitelisting / blacklisting / etc.Emilio Cobos Álvarez
2018-11-27Add #[must_use] to functions annotated with __attribute__((warn_unused_result))Porter Smith
2018-11-26callbacks: Allow reporting string macroschrysn
There is no useful action to take on those, but receiving their values (to re-export them as cfg() options) would be helpful right now in integrating with RIOT's build system.
2018-11-13Auto merge of #1444 - scoopr:fix_noisy, r=emiliobors-servo
Fix noisy errors This silences errors from template functions and dependant types.
2018-11-14Fix noisy errorsMikko Lehtonen
This silences errors from template functions and dependant types.
2018-11-13Fix namespaces with macro namesMikko Lehtonen
2018-11-10Auto merge of #1438 - ekse:item_name, r=emiliobors-servo
Add item_name parse callback. Issue: #428
2018-11-10Add item_name parse callback.Sébastien Duquette
2018-11-09Fix unit tests for `--generate functions` argJosh Channings
2018-11-08Fix Builder::command_line_args() --generate typoJosh Channings
Looks like the accepted argument has always been "functions", and this output has always been "function".
2018-11-07Use canonical path for type alias loop detectionSeo Sanghyeon
2018-11-06codegen: Make the mangling name check work in presence of ↵Emilio Cobos Álvarez
attribute(overloadable). Fixes #1350
2018-10-29ir: Consistently append implicit template parameters when not using Rust unions.Emilio Cobos Álvarez
Fixes #1429.
2018-10-22codegen: Teach bindgen to respect constness of statics.Emilio Cobos Álvarez
2018-10-13Changed 'identifier' to 'item', added c++ testJason Reed
2018-10-12Re-add ability to blacklist arbitrary identifiersJason Reed
(regardless of which sort of Item they are)
2018-10-11Minor cleanup after #1419.v0.42.2Emilio Cobos Álvarez
The previous PR ended up with a lot of just-called-once methods. Just inline them since they're confusing otherwise. Also avoid testing all the variants of an enum if there was a match already, or if the enum is not anonymous. This is mostly a minor optimization.
2018-10-11ir: Ensure everything agrees in which kind of variation an enum generates.Emilio Cobos Álvarez
2018-10-07Skip bitfield unit tests on big-endian platforms.Emilio Cobos Álvarez
Fixes #1412.
2018-10-04Puts blocks behind a switch.Emilio Cobos Álvarez
Since #1378 broke a bunch of OSX builds. Most people don't care about them and they're in some OSX system headers which means that this could break normal C and C++ stuff. This introduces --generate-block / generate_block to generate these signatures, and adds tests so that this is getting tested.
2018-10-04Update cexpr dependencykpcyrd
2018-10-01ir: Fix tabs in context.rs.Emilio Cobos Álvarez
2018-10-01adds 'async' to list of matches in 'rust_mangle'Azi Crawford
2018-09-30Fix args_are_cpp to look for -x without =David Vo
Clang doesn't allow `=` between `-x` and the language name.
2018-09-26A better fix for the calling convention madness.Emilio Cobos Álvarez
Seems like a better fix, which allows us to preserve typedefs properly, and also to find the calling convention. Fixes #1402.
2018-09-26Better detect effective target.Emilio Cobos Álvarez
I just realized that we don't really check for this but that clang does.
2018-09-25Back out changesjkozlowski
2018-09-25Indicate the anonymous lifetime in Formatter.jkozlowski
2018-09-24Auto merge of #1396 - tathanhdinh:master, r=emiliobors-servo
PartialOrd and Ord for enum Hello all, This PR tries to fix #1395. Many thanks for any comment.
2018-09-22PartialOrd and Ord for enumTA Thanh Dinh
2018-09-22codegen: Explicitly align unions if needed.Emilio Cobos Álvarez
Also adds a test header I missed from the previous PR. Fixes #1393
2018-09-19Always force repr(align) attributes for stuff with alignment >= 16Emilio Cobos Álvarez
To work-around some cases of https://github.com/rust-lang/rust/issues/54341. Other cases where u128 and u64 are mixed in fields might not behave correctly, but the field offset assertions would catch them. Fixes #1370