x39 101 Posted February 26, 2016 Release v0.7.4-ALPHA Changelog Version 0.7.4-ALPHA |v- Compiler: Fixed error in PreProcessor preventing some macros to work |v- Compiler: Fixed define compiler flag |v- Compiler: Added internal defines: ||- __VERSION <-- Contains current compiler version ||- __NEXCEPT(MSG) <-- Wrapper for Exception Object |\ Only working in Native Functions |- Compiler: `async` attribute functions now have to be of type script |- Compiler: Added `inline` attribute to functions | static inline [ async ] | <TYPE> <IDENT> ( <ARGLIST> ) [ throwing ] {...} |- Compiler: Added `throwing` attribute to functions | throwing is required when using the "throw" operation. | functions that call such a function but do not catch the | potential exception will generate a warning | Syntax: | static [ inline | external ] [ async ] [ virtual ] | <TYPE> <IDENT> ( <ARGLIST> ) throwing {...} |v- Compiler: Added internal object Exception (extendable for custom) ||- catch now has to use Exception type |\- throw now has to use Exception type |v- Compiler: updated vec3 (thx to Zeven90`s PR #48) ||- new constructor `vec3(array<scalar>)` ||- new member function `vec3 add(vec3 other)` ||- new member function `vec3 diff(vec3 other)` ||- new member function `vec3 dot(vec3 other)` ||- new member function `vec3 cross(vec3 other)` ||- new member function `scalar cos(vec3 other)` ||- new member function `scalar magnitude()` ||- new member function `scalar magnitudeSqr()` ||- new member function `vec3 multiply(scalar n)` ||- new member function `scalar distance(vec3 other)` ||- new member function `scalar distanceSqr(vec3 other)` |\- new member function `vec3 normalized()` |- stdLib: Updated ::std::Marker to use vec3 |- stdLib: Updated ::std::base::VehicleBase to use vec3 |v- stdLib: ::std::base::VehicleBase (thx to Zeven90` PR #48) |\- Fixed error in `::std::Config getConfigEntry()` |v- stdLib: ::std::Man (thx to Zeven90` PR #47) ||- Added enum ::std::Man::VisionMode ||- Fixed locality on `void disableAI(AiSection)` (throws now) ||- Fixed locality on `void enableAI(AiSection)` (throws now) |\- Updated enum ::std::Man::AiSection to 1.56 \v- stdLib: ::std::Group (thx to Zeven90` PR #47) | Fixed locality on `void delete()` (throws now) | Added `void join()` \ Added `::std::Man getLeader()` Known Issues - Passing an object of the same class which you are in right now will result in the object getting assigned an invalid type ((Internally it will ref to the function which is for sure nonsense ... however ... harder to fix then it might sounds in first place due to the lower logic behind it)) - (Not rly an issue but more of a note) currently only idents are allowed to be callen. Thus you cannot call from an expression following would be invalid: `(new foobar()).foo()` due to the fact that it is the following: `<EXPRESSION>.<IDENT><FUNCTIONCALL>` - Casts currently do not check if given object is kind of cast target thus you can enforce invalid object types - Downcasting has to be done explicit - casting to an object having a template requires you to write it like so (example shows array<scalar> cast): < array<scalar> >yourVariable - creating a new template object which gets another template object as kind requires you to write it like so (example shows array<scalar> in another array): new array< array<scalar> >() Share this post Link to post Share on other sites
x39 101 Posted March 31, 2016 Release v0.8.0-ALPHA Changelog Version 0.8.0-ALPHA |- stdLib: Added interface ::std::ISerializable |- stdLib: Added ::std::Vehicle(string, vec3) constructor |v- stdLib: Added `using ::std::Tupel` ||- Added Tupel2<T1, T2> ||- Added Tupel3<T1, T2, T3> ||- Added Tupel4<T1, T2, T3, T4> |\- Added Tupel5<T1, T2, T3, T4, T5> |- Compiler: ReEnabled (& implemented) interfaces |- Compiler: Fixed TryCatch variable is not getting printed |- Compiler: Changed how virtual functions are adressed |- Compiler: Changed where object meta data is located |- Compiler: Fixed issue in switch |- Compiler: Fixed NPE in Idents on LNK errors \v- Compiler: Only one PreInit function is allowed now \- Added new Linker exception LNK0060 Known Issues - Passing an object of the same class which you are in right now will result in the object getting assigned an invalid type ((Internally it will ref to the function which is for sure nonsense ... however ... harder to fix then it might sounds in first place due to the lower logic behind it)) - (Not rly an issue but more of a note) currently only idents are allowed to be callen. Thus you cannot call from an expression following would be invalid: `(new foobar()).foo()` due to the fact that it is the following: `<EXPRESSION>.<IDENT><FUNCTIONCALL>` - Casts currently do not check if given object is kind of cast target thus you can enforce invalid object types - Downcasting has to be done explicit - casting to an object having a template requires you to write it like so (example shows array<scalar> cast): < array<scalar> >yourVariable - creating a new template object which gets another template object as kind requires you to write it like so (example shows array<scalar> in another array): new array< array<scalar> >() 1 Share this post Link to post Share on other sites
Guest Posted April 2, 2016 Thanks again for the headsup about the new version :) The new version has been frontpaged on the Armaholic homepage. ObjectOrientedScripting v0.8.0 Alpha Share this post Link to post Share on other sites