Erlang currently does not support selectively using experimental language features that are not officially part of the Erlang language. Having support for doing so can help users try out and experiment with a potential extension to the language without adding this extension to the main language. This report looks into how support for selectively including experimental language features looks in other languages and how such support might look in Erlang.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import java.util.zip.GZIPInputStream | |
| import java.io.InputStream | |
| import java.util.concurrent.ArrayBlockingQueue | |
| import java.io.ByteArrayInputStream | |
| import java.util.concurrent.TimeUnit | |
| class GZIPDecompressMachine { | |
| private abstract class DataHolder | |
| private case class Data(val bytes: Array[Byte]) extends DataHolder |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * A trait for implementations of DelayedWritesLocks. The guarantees | |
| * mentioned in the description of the methods in the trait are of | |
| * course only given if all threads accessing the data protected by | |
| * the lock are calling appropriate methods on the lock. | |
| */ | |
| trait DelayedWritesLock { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 1. I confirm that I am the sole copyright owner for my contribution to the project or that my contribution to the project are public domain. | |
| 2. I confirm that I grant the project owner (Kjell Winblad, kjellwinblad@gmail.com) full right to relicense the code I contribute to the project under a different license so the project can be dual licensed. |
This page describes how to create a new minor release of EMQX Enterprise Edition and test that hot upgrading from the previous minor release to the current one works. The steps to do the same for EMQX Community Edition should be very similar.
- Identify which internal apps have changed after the previous minor release
- Bump the version number in the
APP_NAME.app.srcfiles for the apps that have changed. For example, if theemqx_rule_actionshas changed, then bump the version number under thevsnproperty inlib-ee/emqx_rule_actions/src/emqx_rule_actions.app.src. If the previous version number was "4.4.5" then the new one should be "4.4.6". - Bump the version number for the main EMQX app. This means bumping the version number under the
vsnproperty in the filesrc/emqx.app.src. If the previous version number was "4.4.5" then the new one should be "4.4.6". - Bump the version numbers in
include/emqx_release.hrl. The version numbers ininclude/emqx_release.hrlshould be the same as in `src/e
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -module(test). | |
| -export([ main/1, is_command/1, get_existing_commands_map/0 ]). | |
| get_bin() -> | |
| erlang:list_to_binary([rand:uniform(127), rand:uniform(127), rand:uniform(127), 1]). | |
| do(0,_Fun) -> | |
| ok; |