- Fixed a bunch of compilation errors and warnings
- Added frameworks for retrieving specific filesystem information for a target platform
This commit is contained in:
66
README.md
66
README.md
@@ -65,24 +65,24 @@ fennec Standards:
|
||||
called `detail`. Helper functions should be documented with C-Style comments, however it is not necessary to provide
|
||||
Doxygen documentation.
|
||||
|
||||
- **DO NOT USE C++ EXCEPTIONS** they will not be supported because they are shit. No, I won't elaborate.[[1]](#f1)
|
||||
- **DO NOT USE C++ EXCEPTIONS** they will not be supported because they are shit. No, I won't elaborate.<sup>[[1]](#f1)</sup>
|
||||
|
||||
* Most behaviours should be type independent. Specifically interactions with the core systems of the engine.
|
||||
|
||||
<br><br>
|
||||
|
||||
<a id="f1"></a>
|
||||
[1] Okay, I will elaborate. If we were to use the exception paradigm for all erroneous behaviour, we couldn't
|
||||
guarantee that the state will not be corrupted when an exception is thrown. The behaviour afterward is
|
||||
undefined because of this, and we also don't really know when, how, or where that exception will be handled.
|
||||
The assertion paradigm is better at handling this because you are defining erroneous behaviour in the code and how
|
||||
it is handled. In a debug build we can immediately halt the program, we don't care about the state afterward, only
|
||||
beforehand. Now for a release build, this is first and foremost a game engine, so we want to crash as gracefully as
|
||||
possible, prevent data loss, and get some debug information for it. fennec defines its own `assert` macro to
|
||||
be used, defining a hook in the private version of the function. This hook is used to clean up any state information
|
||||
within the engine and may be used to send immediate events to listeners so that outside functionality may decide
|
||||
how to handle the impending crash. In Debug Mode there is nothing that can be done to stop the crash, as soon as the branch
|
||||
finishes, `abort()` will be called.
|
||||
<sup>[1]</sup> Okay, I will elaborate. If we were to use the exception paradigm for all erroneous behaviour, we couldn't
|
||||
guarantee that the state will not be corrupted when an exception is thrown. The behaviour afterward is
|
||||
undefined because of this, and we also don't really know when, how, or where that exception will be handled.
|
||||
The assertion paradigm is better at handling this because you are defining erroneous behaviour in the code and how
|
||||
it is handled. In a debug build we can immediately halt the program, we don't care about the state afterward, only
|
||||
beforehand. Now for a release build, this is first and foremost a game engine, so we want to crash as gracefully as
|
||||
possible, prevent data loss, and get some debug information for it. fennec defines its own `assert` macro to
|
||||
be used, defining a hook in the private version of the function. This hook is used to clean up any state information
|
||||
within the engine and may be used to send immediate events to listeners so that outside functionality may decide
|
||||
how to handle the impending crash. In Debug Mode there is nothing that can be done to stop the crash, as soon
|
||||
as the branch finishes, `abort()` will be called.
|
||||
|
||||
|
||||
<br>
|
||||
@@ -199,6 +199,44 @@ information displayed is correct.
|
||||
<a id="usage"></a>
|
||||
## Usage
|
||||
|
||||
|
||||
### Licensing
|
||||
|
||||
The following statement is not legal advice, nor is it legally binding, and nor does it change the terms of the license.
|
||||
|
||||
fennec is licensed under GPLv3. The primary reason for the choice of license is to dissuade corporations from modifying
|
||||
fennec and using it in a commercial manner. This of course does not bar them from using fennec commercially, however
|
||||
it will prevent them from being able to make the derivative work proprietary. You are free to use and redistribute
|
||||
fennec however you wish according to the terms of the license, which does not bar you from commercializing software
|
||||
based on fennec.
|
||||
|
||||
I encourage those who wish to commercialize derivative works crowdfund rather than use a sales model. I also ask
|
||||
that you kindly support me as a developer, I will set up a Buy Me a Coffee link at some point.
|
||||
|
||||
GPLv3 is bound by fair use; here is the clause, 17 U.S. Code § 107:
|
||||
|
||||
```
|
||||
107. Limitations on exclusive rights: Fair use
|
||||
|
||||
Notwithstanding the provisions of sections 106 and 106A, the fair use of a copyrighted work, including such use by
|
||||
reproduction in copies or phonorecords or by any other means specified by that section, for purposes such as criticism,
|
||||
comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an
|
||||
infringement of copyright. In determining whether the use made of a work in any particular case is a fair use the
|
||||
factors to be considered shall include—
|
||||
|
||||
(1) the purpose and character of the use, including whether such use is of a commercial nature or is for nonprofit
|
||||
educational purposes;
|
||||
(2) the nature of the copyrighted work;
|
||||
(3) the amount and substantiality of the portion used in relation to the copyrighted work as a whole; and
|
||||
(4) the effect of the use upon the potential market for or value of the copyrighted work.
|
||||
|
||||
The fact that a work is unpublished shall not itself bar a finding of fair use if such finding is made upon
|
||||
consideration of all the above factors.
|
||||
```
|
||||
|
||||
If you have any questions or concerns, please seek legal council. If you believe someone else has violated the terms
|
||||
of this license, please contact me at [mslockbo@gmail.com](mailto:mslockbo@gmail.com).
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
@@ -207,5 +245,5 @@ information displayed is correct.
|
||||
|
||||
There are some principles to keep in mind when contributing to fennec.
|
||||
|
||||
1. You must follow the style guide provided by the [GNU Coding Standard](https://www.gnu.org/prep/standards/html_node/Writing-C.html).
|
||||
2. Any changes must allow all projects to be forward compatible with newer engine verisons.
|
||||
1. You must follow the [standards provided above](#coding-standards).
|
||||
2. Any changes must allow all projects to be forward compatible with newer engine versions.
|
||||
|
||||
Reference in New Issue
Block a user