- Improved syntax:
👇instead of 🐕 🆗for 🥑
📏instead of 🐔for collections.
- Enums are now declared with
❎instead of 🚫for integers. 🍿New universal literals #156 🆕 🆕syntax
- Infer generic type variables in initializers.
- String interpolation
- Method and initializer overloading.
- Improved type inference.
- Add sanity checks for memory flow promises.
- Use emoji file extension
🍇more prominently and
- Fix bugs with
♻️, generic boxing, a bug with type methods on generic types, a bug with MFA, stack allocation in loops (fix #151) 🐚Advanced generic dynamism (i.e. casting). 🎉JSON parsing returns in the JSON package. 🏎Fine tuning, custom optimization passes and other improvements bring performance improvements of up to 60%. 🐕Short-cut syntax for calling a method on this object. Just write 🙋 ❗instead of 🙋 🐕 ❗. ◼️No return got its own representation. 📦s package gained additional APIs. 🎍General decorator syntax for a more future-proof syntax.
🤝and 👐and other operator improvements.
- Upgrade to LLVM 8.
🐛Fixes a bug that could cause 🍯 🐔to return incorrect values. 🐜Fixes a bug where boxed optionals with no value would be treated as having a value when releasing. 🦟Fixes a bug that could cause undefined behavior when using 🧠. 🍇Fixes a bug in the pretty printer that caused closures to be printed incorrectly. ⁉️Fixes a bug that could cause memory leaks when calling callables. 🍇Fixes a bug where capture values might be released. ♻️Fixes destruction process to avoid use-after-free in deinitializers. 🔡Fixes a bug with 💯to 🔡conversion (#131) 🔺New, better, more versatile error handling (#112) 🔸Introducing multi-emoji identifiers 🧼Upgrade to LLVM 7 🔲Fixes a bug that caused values to be incorrectly retained in casts. 🖍More precise, path-based variable initialization analysis. 🍇Allow non-escaping closures to modify local variables and value type contexts. ℹ️Allow compiler to display supporting notes when emitting compiler errors. 📦Fixes a bug that could occur when importing packages. ➡️Fixes a bug that would prevent functions with certain return types from compiling. ↪️Improves flow control code generation 🦃Fixes a bug that could cause enums to malfunction across packages 🍬Fixes a bug related to boxing and optionals 🔲Improves errors for incorrect cast operations 🍇 🍉Fixes a minor bug related to closures 📦Bundle testtube package for distribution. 🍇Fixes a bug related to boxing. 🖍Fixes a bug related to the release of variable values.
-rnow outputs its report to the file
It’s time for another update
🐦Adds a method to search for a value in a 🍨. ✴️Introduces references. 🥯Introduces inline functions.
- Adds warnings for variable shadowing.
- Fixes a bug that allowed returned values to be mutated.
- Fixes a bug related to stack allocation.
- Entirely removes extensions.
- Fixes bugs related to instance variables with a default initialization value.
This update brings many improvements:
- Optionals for pointer types are more efficient.
- Strings now use UTF-8, which avoids a lot of copying. The interface has also been changed.
- Concatenation, dictionary and list literals avoid unnecessary allocations.
💈has been renamed to 🧵.
- Lists and dictionaries are value types now. Read more in the documentation.
- Improvements to the LLVM IR the compiler emits—or simply speaking faster executables.
- Emojicode now ships with
testtubefor unit testing.
- Emojicode now has an emoji file extension:
hello.🍇(Thanks to @rozaxe and @zored)
- Improved access level inheritance
- Added an additive inverse method (#106)
- Instance variables can be declared and assigned directly in the type body.
Speed improvements of up to 95% compared to 0.6.4 can be seen.
Keep coding emoji lovers!
- Fixes a serious memory management bug related to
↩️. 🍇Fixes a bug that prevented callables from being used with generics and ⚪️. 🍇Fixes closures inside initializers. ⚗️Seed hash returned by 🔡 ⚗️. 🆕Fixes unexpected initialization behavior.
It is not gonna get any awesomer. Seriously.