-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Logs
A semi-formal place for repository/code changes. Use it as the place to look for important updates, if you will.
A transition from C++ 11 to C99 will be made on the source code starting on the next release. All .cpp files and its corresponding .h files are no longer under active development. The files will be depreciated later on, though which release will start excluding the files is still uncertain.
A change in license to MPL-2.0 is also considered, though not yet final.
v0.5.0-alpha has just been released.
This version includes support for binary numbers, floats, characters, and string constants. Building and/or modifying the flathill executable is now easier, with a dedicated folder for build scripts, and support for Notepad++ and Visual Studio code.
Speaking of build scripts, the bin/ folder is now automatically created upon running any of the scripts, so there is no longer a need to manually create a bin/ directory on your own. All scripts are now found on the scr/ folder.
v0.4.0-alpha has just been released.
This version includes support for variable arrays (e.g. d16 10 var, d32 2 50 var), multiple inline variable declaration (e.g. d32 10 a, b = 20), explicitly dynamic/static function calls, and explicit size-based dereference prefixes ($b, $w, $d, $q).
It should be made clear that existing .flat code that targeted any of the previous versions should be modified for compatibility for this and future versions, since the changes in favor of explicitness in functions and dereference prefixes will break functionality of code designed for previous versions of flathill.
If using, for example, $func[] in code for compilation with previous versions of flathill, change it immediately to @func[], as the function calls are more defined in this release, such that @func translates to call func in assembly, which is a function call in static-linking, while $func[] stands for call [func], for dynamically-linked libraries.
As for the use of pointers, variables with the dereference ($) prefix should be changed to one of these four prefixes -- $b, $w, $d, $q -- depending on the preferred type for the resulting value of the reference. The ptrxx types should be changed to the d64 type since such types are now depreciated, and the functionality of resizing in the end of a dereference recursion has been transferred to the prefixes themselves.
A change in license for this software is now again considered, this time leaning more towards a more protective license. This is in order to make free all changes to this software, as well as to protect this software from unfair proprietarization and derivation by companies without the need to pay any fees for the developer.
v0.3.1-alpha has just been released.
This version includes support for inline assembly (lang asm: <asm code>;). Also some improvements and bugfixes, but that's about it.
v0.3.0-alpha has just been released. (Yes, I was a bit late to announce since I released it on August 17)
This version includes support for functions, pointers (ptr8, ptr16, ptr32, ptr64), referencing (@var), dereferencing ($var), bitwise operators (|, &, !, \) in arithmetic parsing, and some more error checking (-Wall) on both Windows and *nix scripts when building the compiler's binary format. isnumeric function now properly identifies hex values as valid numbers.
The license used in the prior source code was word-for-word the same software license used by Facebook for their React software; the same license that infamously got Facebook under fire due to abuse of its contributors' patents. It has since been listed under "Category X" in the ASF 3rd Party License Policy, meaning the previous license made "flathill" incompatible with the Apache 2.0 license.
Fortunately, the current repository is now under the Universal Permissive License, version 1.0. It provides the same copyright and patent grants to use and modify the software, and it is listed under "Category A" in the ASF 3rd Party License Policy. It is now recommended to acquire the source code directly from the repository, and releases starting from v0.3.0-alpha.
v0.2.0-alpha has just been released.
Parentheses support in arithmetic parsing mainly accompanies the release of this version. There are also some design changes in the source code, as well as a few bug fixes.
v0.1.2-alpha has just been released.
v0.1.0-alpha is supposed to provide the binary when the flathill repository was first released. However, the repository at that moment was not integrated with GitHub Desktop, and more importantly, I, the repository owner, was just getting started at GitHub. I did not know anything about GitHub Desktop, and I did not know about Releases (since I was under the assumption that binary files shouldn't be included in a repository, at all costs).
Thus, software development for the project, for the next few days was performed in a rather uncoordinated, and haphazard manner. As I kept improving the source code, I was pasting the changes to the individual files online. Some file changes did not get pulled in the repository due to human error. Eventually, when the GitHub Desktop was finally installed, the source code didn't even work with the C++ compiler.
Thankfully, since then, I was able to easily pull my file changes to the remote repository. By then, it could be named v0.1.1-alpha, but I decided to hold it off (for some reason), until I could create a function that could find substrings outside quotes. Now it's become v0.1.2-alpha.
Thankfully, my computer still has the v0.1.1-alpha source code (before GitHub Desktop), so its respective binary could be released together with the v0.1.2-alpha. Unfortunately, this is not the case for v01.1.0-alpha.
- Build flathill
- Setup and use flathill
- Code using flathill
- Hello World
- Arithmetic
flat.cpplinemod.cppcompile-[win/nix].*