Rilis

  • include.d version 0.0.1.8.0.0.0.1

    y.st. 6 tahun lalu 1 melakukan master sejak rilis ini

    This release simply fixes a small design error in the Hack-assembling logic/API.

    As mentioned in the last release's notes, changes in certain parts of the library now require immediate release and the project is now effectively unstable.Previously, I tried to avoid releasing such small point releases ...

    Anyway, the depth of the point release isn't arbitrary, and I apologise for the long version number. I've written some code to codify include.d's version-incrementation logic (both to make it less like a black box and to make it so I don't have to calculate the version number by hand for small point releases), and hopefully I'll be able to clean up and release that in the debug suite soon. It's low priority though, and could take time.

     
  • include.d version 0.0.1.8

    y.st. 6 tahun lalu 2 melakukan master sejak rilis ini

    Unfortunately, a negative element indirectly threatens to censor this project. Because it's indirect, there's still something I can do about it: namely, I need to publish quickly, often without having time to fully test first. For that reason, include.d should not be considered super stable for the next three years. After that, I should be freer to put the needed time and care into releases.

    Due to the above, a bug ended up in the code of the last release. Despite having a dedicated symbol table class, symbols were not handled correctly. In particular, single-character symbols were treated as invalid and multi-character symbols were allowed to contain invalid characters as long as they contained a substring that was valid. This release fixes the error in the regexp that caused the problem.

    Also due to the issue of a rushed release, the namespace used for the classes added in the last release wasn't as well-thought-through as it should have been and the full code for the assembler wasn't included. The classes added assumed that a script would be built up to process a lot of the messy stuff for them. This processing has been now added as a function. In naming that function though, it only makes sense to have the namespace of the classes match the name of the function, as this function is the only place these classes will likely ever be used. I've had to rename the classes, and in doing so, I've broken the old API. It should be quick enough that nothing has been built on the old API, but still, I apologise.

     
  • include.d version 0.0.1.7

    y.st. 6 tahun lalu 3 melakukan master sejak rilis ini

    This release adds a couple classes for assembling Hack code. Most people won't have a use for this, so there's no need to update to this version.

     
  • include.d version 0.0.1.6

    y.st. 6 tahun lalu 4 melakukan master sejak rilis ini

    The master branch of this project should no longer be considered stable; there no longer exists a stable branch. If you're looking for stable code, check out the releases section.

    This release mainly has three advantages over past releases. First, all serialsable object classes now implement the __set_state() method, which means that the \var_export() function works as intended. Second, the exception classes now detect a 32-bit execution environment and, if needed, split the single 64-bit integer into two 32-bit integers. This allows us to not cut code size in half for 64-bit PHP, but instead double the code size for 32-bit PHP, so code length is now eight bytes. Code strings are now 8-byte Unicode strings, and no separate namespace is used for library and non-library code. Lastly, all function/method signatures have a return value type, and all functions and methods have a return value. In a future version, void functions and void methods will be implemented, but for now, we're keeping compatibility with PHP7, so void functions and void methods aren't available. Where possible, all arguments also include a type hint now. Having improved the function/method signatures though, include.d is no longer compatible with PHP versions prior to PHP7.

    The URI-handling API has seen an almost-complete overhaul. the set_scheme() method was previously broken for classes that dealt with URIs of particular schemes, as URI-modification methods modified URI objects in place, and a given scheme class couldn't handle schemes of another class. This has been fixed by uniformly changing all URI-modification methods to return new URI objects instead of modifying in place the existing ones. The schemes can be changed by the set_scheme() method now by simply returning an object of the required class.

    The URI-handling API should be mostly stable. This is especially true for if it's used for just normalising and validating URIs. However, the return values of URI methods are subject to change. PHP 7.1 is a bit more flexible than PHP7, allowing the specification of null and sometimes-null return values, and when we drop support for PHP7, we'll be making use of that feature. Some return values will change entirely, too. For example, the normalisation functions need to be able to change components to null, but null can't be returned. To accommodate that, an array of all components is returned, instead of just the one component that is supposed to be normalised. Once PHP 7.1 has been out a while, it's more wide-spread, and we're able to safely make use of nullable types, the single normalised component will be returned from these methods instead of entire arrays. That'll ensure more-consistent behaviour in normalisation. Likewise, if child classes are ever allowed to specify a more-specific return type than their parent classes, the return types of several URI methods will be made more specific. It's not currently recommended that the URI classes be extended and/or that their more-advanced features be used. I apologise for the inconvenience.

     
  • include.d version 0.0.1.5

    y.st. 7 tahun lalu 31 melakukan master sejak rilis ini

    The main purpose of this release is to introduce the used() function, which attempts to figure out which library components have been used in a project in case these components need to be bundled into another project.

    However, this release also introduces some major cleanup to the URI-handling API. This cleanup was originally intended for a much later release, but it prevents false errors in the debugging code. All code in include.d that throws exceptions now uses the new exceptions introduced in version 0.0.1.4. Additionally, two particularly useless exception classes have been removed, hopefully before anyone started using them in their code. These exceptions were meant to be used for when a callback function or method passed to a function or method is invalid. The preferred way to deal with this situation is to instead use the "callable" key word as a type hint when defining the function or method that asks for a callback.

    As a word of warning, the exception\invalid_argument class is also scheduled for removal, though this won't happen until Debian 9 is released and PHP7 is brought to Debian Stable. This exception is meant for cases in which a function or method receives arguments of the wrong type. The preferred way to deal with this in PHP7 is to use type hinting to prevent arguments of the wrong type from being passed into functions.

     
  • include.d version 0.0.1.4

    y.st. 7 tahun lalu 72 melakukan master sejak rilis ini

    This is just a minor update, making exceptions a bit more intuitive for use internally and making exception code unpacking easier externally.

    Due to the fact that code dealing with URIs has been heavily modified in another branch, it hasn't been updated in this release to reflect the new exception classes. This shouldn't present any issues for most use cases. It can't be helped, as URI code is practically frozen in the main branch right now.

     
  • include.d version 0.0.1.3

    y.st. 8 tahun lalu 75 melakukan master sejak rilis ini

    The main goal of this release is to improve the \st\y\gopher() function's output. However, include.d version 0.0.1.3 also greatly improves the URI-handling API for future expansion, provides a much more tested and stable code base than version 0.0.1.2.0.5, and provides unique exception codes for all thrown exceptions.

     
  • include.d version 0.0.1.2.0.5

    y.st. 8 tahun lalu 130 melakukan master sejak rilis ini

    While previous versions have been considered stable, they were under-documented and were not officially given a "release" state. Starting with this release, include.d contains documentation comments and "to do" notes that can be parsed with phpDocumentor. Further work on include.d will be done in non-master branches and the master branch will hold only stable code. Previously, incomplete work was not committed until finished, so large changes were not made between versions and the version number was incremented often. With our new branching and releasing strategy, we can be less afraid to break things, leave them incomplete for a while, and make many changes in one new version.