summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-12-24ir: Move a variable to where it's used.Emilio Cobos Álvarez
2018-12-23codegen: We should not iterate over codegen_items.Emilio Cobos Álvarez
This should allow making it a HashSet.
2018-12-23Stop using a BTreeSet to store items.Emilio Cobos Álvarez
We use sequential id's so a Vec<Option<T>> does the trick. This reduces the time for: time ./target/release/bindgen tests/stylo.hpp --no-rustfmt-bindings From ~6s to less than 5s on my machine.
2018-12-23Switch to hashbrown.Emilio Cobos Álvarez
This wins between 2 and 5 milliseconds more in the test-case above, so no reason not to I guess.
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-23Merge pull request #1472 from emilio/record-matches-flagEmilio Cobos Álvarez
Allow to turn off the matches recording introduced in #1469.
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-14Merge pull request #1467 from emilio/attr-detection-flagv0.45.0Emilio Cobos Álvarez
ir: Put function attribute detection under an opt-in flag.
2018-12-14Version bump.Emilio Cobos Álvarez
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-14Merge pull request #1466 from emilio/token-lazyEmilio Cobos Álvarez
clang: Tokenize more lazily.
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-10Merge pull request #1462 from royb3/patch-1. r=emilioEmilio Cobos Álvarez
User-guide link update on docs.rs
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-02Merge pull request #1458 from emilio/bindgen-union-namespace. r=emilioEmilio Cobos Álvarez
codegen: Properly detect bindgen unions.
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-30Merge pull request #1409 from emilio/update-some-crates. r=emilioEmilio Cobos Álvarez
Update which, quote and proc_macro.
2018-11-30While at it, gcc -> cc in the integration tests.v0.44.0Emilio Cobos Álvarez
2018-11-30Version bump.Emilio Cobos Álvarez
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-30Rustfmt the bindgen-integration crate.Emilio Cobos Álvarez
2018-11-30Add a test for the interaction between blacklisting and parse callbacks.Emilio Cobos Álvarez
2018-11-30Merge pull request #1453 from flowbish/custom_derive. r=emilioEmilio Cobos Álvarez
Add source annotation to express explicit derives for a type.
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-28Merge pull request #1451 from flowbish/must_use. r=emilioEmilio Cobos Álvarez
Add #[must_use] to functions annotated with __attribute__((warn_unused_result))
2018-11-27Add #[must_use] to functions annotated with __attribute__((warn_unused_result))Porter Smith
2018-11-26Merge pull request #1388 from chrysn-pull-requests/str_macro. r=emilioEmilio Cobos Álvarez
callbacks: Allow reporting string macros
2018-11-26Integration tests for str_macro callbackschrysn
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-24Update ReadmeAlex Touchet
2018-11-24Update broken links: Rust-lang-nursery => Rust-lang (#1447)diwic
* Fix broken link to user's guide * rust-lang-nursery => rust-lang * rust-lang-nusery => rust-lang
2018-11-23Version bump.v0.43.2Emilio Cobos Álvarez
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-13Auto merge of #1441 - scoopr:fix_namespace_macro, r=emiliobors-servo
Fix namespaces with macro names This fixes 1. When the name of the namespace is actually a `#define` macro, which previosly got the name of the macro 2. When the namespace is started from a included file (the header is wrapped in a `nsbegin.h`/`nsend.h` includes), which previously got generated name for the namespace The change is small, but I feel it is a bit of a hack. It wasn't obvious to me what is a better path though.
2018-11-13Fix namespaces with macro namesMikko Lehtonen
2018-11-12Auto merge of #1440 - Eijebong:envloggerup, r=emiliobors-servo
Update env_logger
2018-11-11Update env_loggerBastien Orivel
2018-11-10Auto merge of #1438 - ekse:item_name, r=emiliobors-servo
Add item_name parse callback. Issue: #428