-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/speed optimizations #88
Open
staleyLANL
wants to merge
238
commits into
master
Choose a base branch
from
feature/speed-optimizations
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some files aren't finished yet, and will be uploaded in a few days. So, this particular update won't build!! Added broad infrastructure for HDF5 handling... ...Wrapper class ...Assignment operators ...convert() functions ...Constructors ...read() functions ...write() functions Etc. Completed many (not all) HDF5 capabilities. Very basic HDF5 write needs to be smarter (not string-only). HDF5 reading still needs work. Touchups are needed here and there throughout the new HDF5 code. In particular, we need smart, non-string handling. Small tweaks were made to XML and JSON material, for consistency. Some comment changes and other odds and ends.
To be used for non-GNDS products, e.g. NDI3. When ProjectDir is given, namespaces and various other constructs are done differently. Made miscellaneous small improvements in various other files. For example: direct read() and write() in Component, aligning with Node's. So: autogenerated classes have those read()s and write(); there's no need for a user to explicitly go through Node.
This will serve, for now, as a place to store alternative versions of certain classes, for the purpose of avoiding circular class references.
More namespaces, for disambiguation. Updated generated code.
Changes in some example specs; will help to analyze a JSON-format issue.
Simplified and clarified some of the JSON-related code. Updated some example/test codes.
It's a convenient way to temporarily "comment out" a child node that's involved in a circular definition (of which the specs have many), until a proper solution is found.
I'm guessing that the specs really shouldn't have both "algorithm" and "hashAlgorithm".
That is, I added a very simple (for now) code that #includes the generated "GNDS 2.0" classes. The code compiles, which is great. However, given the condition of the GNDS 2.0 specs, more work is needed to make this code successfully read and write GNDS 2.0 files.
…nerated classes. Un-required some things in the spec, where I saw in the the GNDS 2.0 files that the values weren't there (so, obviously, couldn't be required).
Sorting of vectors in Component-derived classes is now optional, and OFF by default. That's really the right thing to do. For GNDS data (which is billed as being order-independent), it may seem convenient to sort vectors of objects according to an index or label metadatum in the object. However, (1) doing so takes time, and (2) we think that by default, at least, the order in which somebody enters such vector elements should be preserved. Modified a couple of the GNDS 2.0 JSON specs, based on experience with trying to load GNDS 2.0 files.
…efficient. This includes work in the Core Interface and the Component class, so that queries into Nodes -- to extract objects of prescribed types -- work more efficiently when the objects in question have relatively expensive construction or assignment. This can easily happen with complicated, highly hierarchical generated classes.
Regenerated some sample classes.
…fficient. Also allowed for additional debug printing in generated classes.
This helps with some efficiency issues. Some new, alternative query formulations elsewhere allow the T to go. This other work will be uploaded shortly.
…ave a T. Removed some constructs elsewhere that were no longer needed.
…ons. Small changes to a couple of test codes.
Update to the code generator. Updates to some example/test material.
Via reformulation and extension of some floating-point read/write capabilities.
…rsion. Used in BlockData::get(). So, relevant for getting vector<floating-point> in Component-derived classes.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Might as well put this in.