Граф коммитов

299 Коммитов

Автор SHA1 Сообщение Дата
Teo Magnino Chaban 7827612fa5 Merged PR 4858: CheckPolicy adaptability
Modified CheckPolicy.py so its easier to add a new type to the list of accepted types.
2019-07-31 15:52:36 +00:00
David Brownell 1357c64e35 Merged PR 4815: Added Sample Featurizer and Infrastructure
Added Sample Featurizer and Infrastructure
2019-07-26 21:18:30 +00:00
Teo Magnino Chaban 10294a6334 Merged PR 4814: General Improvements
Fixed some naming conventions.
Added more UnitTests.
2019-07-24 21:38:42 +00:00
Teo Magnino Chaban 212b948d9e Merged PR 4767: Support for type verification on Structs
Integrated the type verification with the Structs verification.
Changed UnitTests and IntegrationTests to act accordingly, and to cover new cases.
2019-07-24 20:53:01 +00:00
Teo Magnino Chaban 509abaa5e7 Merged PR 4743: Removed Class support
Removed support for class. Renamed variables to reflect this change.
Improved IntegrationTests by reducing number of function calls, running time decreased by 50%.
2019-07-17 20:12:35 +00:00
Teo Magnino Chaban bec7fa73d1 Merged PR 4737: Policy Change
Modified CheckPolicy and its UnitTest to reflect the last decision on supported types. Still need to add the processing of structs.
Changed the UnitTests of CppToJson to reflect better the types we want to accept. This is not needed, since its strictly testing CppToJson. Also added tests that were discussed with David, that will make sure that the warnings are working as expected.
Modified IntegrationTests so that now deserialize is called with the flaw always_include_optional, and removed temporary comments.
Improved performance on the UnitTests by reducing the amount of function calls it was performing. Execution time went from 5 seconds to 1.6 seconds.
2019-07-15 23:35:36 +00:00
David Brownell ba548978c2 Merged PR 4721: Refactor to move classes into separate files
Refactor to move classes into separate files
2019-07-12 21:09:51 +00:00
David Brownell 7f33613d54 Merged PR 4719: Refactor to create the ArgumentInfo class
Refactor to create the ArgumentInfo class
2019-07-12 20:52:02 +00:00
David Brownell c6a1612c89 Merged PR 4717: Moved CppToJson python code to its own directory
Moved CppToJson python code to its own directory
2019-07-12 20:32:44 +00:00
Teo Magnino Chaban a9649457e8 Merged PR 4695: Integration and Hierarchy
Added support for struct hierarchy. Now each struct has a list of the structs it depends on.
Changed 'obj_type_list' to 'struct_list'.
Changed 'struct_name' and 'function_name' to 'name' on the SimpleSchema.
Created a deserialization IntegrationTest to make sure that the output from CppToJson matches the SimpleSchema.
Removed function AddVar, and instead now the variables are set on the constructor.
2019-07-12 19:55:07 +00:00
Teo Magnino Chaban ec092c4d35 Merged PR 4685: Declaration/Definition line adjustment
Changed the way that Declaration/Definition lines where being added into the Class Function.
Changed name from isValid to Verify in a couple functions. It makes more sense now, since they are not only checking validity, but also throwing errors where needed.
2019-07-11 16:11:14 +00:00
Teo Magnino Chaban 89bd64f8cc Merged PR 4679: Fixed consistency and spelling
Only changed Function to a dictionary at the last second (similar to obj_type).
Fixed spelling of a couple words.
Changed 'func_name' to 'name' to keep function and struct consistent.
2019-07-09 22:26:06 +00:00
Teo Magnino Chaban 88eb76fad5 Merged PR 4669: Improved error messages
Gave more detailed information on errors within functions and structs.
Updated UnitTests and IntegrationTests accordingly.
2019-07-09 18:44:17 +00:00
Teo Magnino Chaban c3a9caee65 Merged PR 4667: Structs as arguments
We will not support structs as parameters given to functions. UnitTests and IntegrationTests were modified to reflect this change. Added TODOs.
2019-07-08 22:18:34 +00:00
Michael Sharp f5015f3c6c Merged PR 4660: Added unit tests for the Debug plugin and the MlNet Plugin
Added unit testing for Debug plugin and MlNet plugin.

We had an error with file names previously due to no testing on the MlNet plugin. This PR adds testing to prevent issues like that in the future.
2019-07-08 17:14:16 +00:00
Michael Sharp 80e38d5d56 Merged PR 4653: Added simple mapping for C++ to C# types. Added the includes for the C++ wrapper.
Added a mapping from some C++ to C# types. This list will have to be updated/modified after we confirm the types we support. It will also need to be modified when we support structs.

Prior, the C++ wrapper didn't include any of the `#includes` from the C++ files. Now, it parses the includes list and includes them as well.

NOTE: The includes list does not say whether it was `#includes "file"` or `#includes <file>` and after talking with @<Teo Magnino Chaban>, determining that is not trivial. According to the [C standard](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf#page=182), section 6.10.2 the only real difference is where the compiler looks initially for the file. If it is `#includes "file"` the compiler will first look somewhere (specific to each compiler, but usually in that directory) and then if it can't find the file will reprocess that line as if it were `#includes <file>`. Due to this, I have decided to do all includes as `#includes "file"`. The only potential problem I see with this is if there is a file in the local directory with the exact same name as in the system directory. Open to discussion on this point.
2019-07-03 21:23:18 +00:00
Teo Magnino Chaban 5a2026eba4 Merged PR 4649: Removed constructor_name and minor changes
Removed constructor_name from the .SimpleSchema, made ENUMS be unsupported, fixed the empty name that would be caused by a default constructor.
2019-07-03 16:19:12 +00:00
Michael Sharp 4b9812696a Merged PR 4641: ML.NET code to auto generate C# files and C++ wrapper.
Code that creates the ML.NET C# classes and the C++ wrapper to interface C++ DLL files with ML.NET.

Related work items: #3571
2019-07-03 16:10:36 +00:00
Teo Magnino Chaban a5a8777775 Merged PR 4642: Cleaning and Refactoring
Changed the code to be easier to understand, this includes the creation of new Classes and the removal of code that was not going to be used.
2019-07-02 21:24:18 +00:00
Jamie Gordon 9b74999a18 Merged PR 4630: fixes for build/parse issues and ide integration
Build cpp files separately instead of #including them, as that masks some errors.
Add header files as well as cpp files to the cmake, for IDE purposes.
2019-06-28 18:38:34 +00:00
Teo Magnino Chaban 6996e9721c Merged PR 4615: Support for Includes
Added support to multiple files, will now recursively go looking for structs/classes that are required for functions that are on included files
2019-06-27 19:54:54 +00:00
Jamie Gordon a5ea64f005 Merged PR 4600: Regex Vectorizer Transform
Adds a transform for "Regex Vectorization", creating creating a matrix of matches of a list of regular expressions on a list/column of strings.

There are a lot of unknowns on what this should *really* be doing and what the interface should be, but for now it is emulating the functionality of a python implementation.
2019-06-27 16:17:39 +00:00
Teo Magnino Chaban 91d0502fba Merged PR 4603: Adaptability to DateTime
Added required functionalities to make date_time work, but its not complete since there are a few functionalities that need multiple file access, which is not currently implemented.
2019-06-26 23:26:20 +00:00
Teo Magnino Chaban f5fd69061f Merged PR 4576: Structs/Classes and Includes
Added all object_type functionalities, exporting includes and fixed general problems
2019-06-25 20:53:50 +00:00
Teo Magnino Chaban 9375dee935 Merged PR 4590: Json SimpleSchema
Added necessary files for the new Json SimpleSchema
2019-06-24 15:36:36 +00:00
Jamie Gordon 6c335c69ed Merged PR 4570: Add DateTime conversion
Adds DateTime structure and DateTime from c++chrono::system_clock::time_point.
Conversion available as a function and as conversion constructor and assignment operator in the DateTime struct.

Though the input is time_point, we have to convert and use the old C lib methods, because there is still nothing else.
C++2x is set to finally have useful time_point functions ... I suspect we will wind up wanting to take time_t directly from callers as well, since I would imagine that's a common format for them to have and it would be silly to convert from time_t for the function to just convert right back.

I have made some assumptions about input and expected output that may need updating - most values I had to get whether they want to be 0-based or 1-based. All are documented in the struct declaration, and are trivial to change where needed.

Bigger and more important, I also assumed that we will not be operating on dates earlier than 1970. Earlier dates require a completely different implementation on Windows. (msvcrt doesn't support negative time_t, earlier dates require a win32 solution).

Related work items: #3538
2019-06-19 18:51:51 +00:00
David Brownell 3cd18d47ac Merged PR 4575: Generating CMake files that can be used to compile C++ code for the ML.NET Plugin on Windows and Linux
Generating CMake files that can be used to compile C++ code for the ML.NET Plugin on Windows and Linux
2019-06-19 17:56:19 +00:00
David Brownell 9c07ef70bb Merged PR 4574: Scaffolding for MlNetPlugin
Right now, the plugin just writes a file header and TODO message.
2019-06-19 15:19:17 +00:00
David Brownell 3161594382 Merged PR 4572: Invoking CppToJson within the code generator
Invoking CppToJson within the code generator
2019-06-18 21:37:33 +00:00
David Brownell 457bb43790 Merged PR 4569: Added scaffolding to support include file parsing in CppToJson script (which isn't implemented yet)
Added scaffolding to support include file parsing (which isn't implemented yet)
2019-06-18 17:35:53 +00:00
David Brownell 2b207cb18d Merged PR 4568: Added status_stream param
The underlying code generator system was updated to include a required "status_stream" parameter when creating context used during the code generation process. This was a breaking change.

This fix adds that parameter so that the build is no longer broken - it is not currently being used.
2019-06-18 14:44:22 +00:00
David Brownell 6e5c465a88 Merged PR 4558: Interface code generator and plugin framework
Interface code generator and plugin framework
2019-06-17 15:29:42 +00:00
Jamie Gordon f98c3a85e8 Merged PR 4559: use .hpp instead of .h for C++ for the sake of parsers
use .hpp instead of .h for C++ headers, so parsers operating on them independently (Like CPPToJSON via clang) know they are C++, not C.
2019-06-14 17:35:59 +00:00
David Brownell 6944ca7b8b Merged PR 4557: Changing file ownership on Linux to user after bootstrapping
Changing file ownership on Linux to user after bootstrapping
2019-06-14 17:03:48 +00:00
David Brownell 2cbfb3f8d6 Merged PR 4556: Updated tests to account for string constraint updates based on changes in
Updated tests to account for string constraint updates based on changes in dependency repositories
2019-06-14 15:26:32 +00:00
Jamie Gordon 9e7b6dd2b6 Merged PR 4547: C++ infrastructure
Adds directory structure, etc. for C++ implementations, with basic Add functions as a placeholder.

This is the same as cppimpl request and updates, but without the weird whitespace only changes and with the right branch name.
2019-06-13 17:18:39 +00:00
Teo Magnino Chaban 703ce9672d Merged PR 4545: [Version 2]Namespaces
[Version 2]The parser can now deal with namespaces, and it also reports the line that the function was declared on, and the line that it was defined on. Added test cases to cover new functionalities.
2019-06-13 15:48:57 +00:00
David Brownell 7fb976568d Merged PR 4542: Updated Readme.md and ignoring build dirs
Updated Readme.md and ignoring build dirs
2019-06-12 21:13:22 +00:00
David Brownell 79305ed055 Merged PR 4541: Addressed CppToJson issues on Linux
Fixed some tests and added an explicit include path on Linux.
2019-06-12 20:25:47 +00:00
Teo Magnino Chaban a569610ae2 Merged PR 4525: Prototype for verification
Added basic verification of validity of functions, added some extra Unit and Integration tests to verify correctness.
2019-06-10 23:32:45 +00:00
Teo Magnino Chaban 84d4f9faba Merged PR 4509: CppToJson First Version
Added all basic files required for the functionality of CppToJson, including some basic testing
2019-06-07 17:08:06 +00:00
David Brownell 007601c4da Merged PR 4501: Updated repository dependencies
Added new repository dependencies for Linux and Windows that put GCC (Linux) and Visual Studio Build Tools/MSVC (Windows) on your system.

Note that you will need to re-run bootstrap.cmd|.sh on your system to get the new dependencies.
2019-06-05 20:25:28 +00:00
David Brownell 909f1dfa75 Merged PR 4493: CppToJson Schema Deserialization Code
Most of this code is boilerplate code that creates an environment that can be used to generate code that deserializes the output of CppToJson.py.

The important files are:
- CppyToJson.SimpleSchema
- GeneratedCode/CppToJson_PythonJsonSerialization.py
- SchemaBuildEnvironment/Build.py
- SchemaBuildEnvironment/Readme.rst
2019-06-05 17:05:51 +00:00
David Brownell 31ca95c271 Merged PR 4496: Fix occasional error when calling bootstrap.cmd with a relative path
Fix occasional error when calling bootstrap.cmd with a relative path
2019-06-05 02:10:16 +00:00
David Brownell 8f29ac010f Merged PR 4472: Updated CI build to include Windows and check for unit tests
Updated CI build to include Windows and check for unit tests
2019-05-29 17:29:56 +00:00
David Brownell c4ef830b65 Merged PR 4455: Added CI files
Added CI files.

Example output at https://aiinfra.visualstudio.com/DataPipelines/_build/results?buildId=86703.
2019-05-24 16:18:38 +00:00
David Brownell 3c06bccc8c Added bootstrap support for custom environment names 2019-05-22 22:33:48 -07:00
David Brownell 7dc15a0ed9 Added placeholder files 2019-05-22 10:14:16 -07:00
David Brownell f1236b8440 Initial checkin 2019-05-22 10:10:31 -07:00