Developer Release Notes

The DFINITY Canister Software Development Kit (SDK) enables developers to develop applications for the Internet Computer using the Motoko programing language. Motoko is a new programming language optimized for creating tamper-proof software and open internet services that will be hosted on the Internet Computer.

The DFINITY Canister SDK provides everything you need to perform the following key tasks:

  • Author canisters in Motoko and compile them to WebAssembly.

  • Run Internet Computer replica processes locally on your development computer.

  • Deploy compiled programs as standalone canisters and interact with the canisters using a command-line interface.

This 0.5.7 version of the DFINITY Canister Software Development Kit (SDK) is an interim update of the Alpha release recently shared with the development community and made available to the public for preliminary testing, demonstration, and exploration. As part of our commitment to continuous improvement and iterative development focused on addressing developer feedback, this version includes numerous fixes and enhancements.

Note that DFINITY Canister Software Development Kit (SDK) and Motoko programming language are Alpha-quality releases intended to give you an early look at the potential for building applications that run on the Internet Computer. This 0.5.7 version of the software and programming language should not be used for developing production applications at this time.

Highlights of what’s new in 0.5.7

The 0.5.7 release includes the following new features and capabilities:

  • Motoko and the JavaScript library now support floating point numbers (Float).

  • When using the Candid UI, you can view return values in text, UI, and JSON formats.

    You can switch between the formats for representing values by clicking the results bar.

  • Internal updates that are not yet user-visible to support future features.

Breaking change

The 0.5.7 release includes the following changes that might require updates to existing programs:

  • The name of the built-in Motoko library has changed from stdlib to base.

  • All of the module names in the base library start with an upper case letter.

  • The principalId module has been changed to Principal.

Modifying existing programs

If you have programs that rely on modules in the stdlib library, you must change the import statement to use the new base library name. For example, you might have previously imported the Array module using the following statement:

import Array "mo:stdlib/array";

With this release, you would change the statement like this:

import Array "mo:base/Array";

Addressing case-sensitivity

If your local development environment runs on macOS, you might be able to build your Motoko program using a lower case module name because the macOS file system is not case-sensitive by default.

If you use lower case module names, however, the same code will not compile on Linux computers. Therefore, the recommended best practice is to always capitalize module names. For example, use import Array "mo:base/Array", not import Array "mo:base/array".

Issues fixed in this release

This section covers the issues fixed in this release. The 0.5.7 release includes internal fixes and improvements to the Candid user interface, the interface description library, and some refactoring of dfx commands.

Known issues and limitations

This section covers any known issues or limitations that might affect how you work with the DFINITY Canister SDK in specific environments or scenarios. If there are workarounds to any of the issues described in this section, you can find them in the Troubleshooting section.

The 0.5.7 release includes the following known issues and limitations:

  • Using fixed-length Word data type arguments when running dfx commands.

    Fixed-length Word32 data types are not yet supported in the dfx command-line interface. As an alternative, you can convert integers to Word32 using the standard library function int32ToWord32(intToInt32(value))` until the support for fixed-length Word32 and Nat32 data types is added.

Additional questions and feedback

Check out Troubleshooting for additional technical support.