Dfx 0.8.3 released with breaking changes

Release notes: Highlights of what’s new in 0.8.3 :: Internet Computer

This release has a breaking change: we removed the --no-artificial-delay command-line option from dfx start and dfx replica, in favor of a value which matches most subnets.

The main feature of this release is to fix the replica and ic-starter binaries in the linux build, which we broke in the 0.8.2 release.

We also fixed the ic-ref binary in the linux build, which had a similar problem though for a different reason. It had been broken since launch. This means that dfx start --emulator can work on linux now.

We also upgraded Motoko from 0.6.10 to 0.6.11.


It would be nice to configure update delays and cycle limits locally with sensible defaults

Does this now mean there is no way to get rid of any artificial delay? Maybe I’m misunderstanding. If there is no way to get rid of the delay it would be bad for testing scripts that run as canisters on local replicas.

1 Like

The previous setting used by “–no-artificial-delay” is now the default.

1 Like

Ah…ok…perfect. Thanks for the clarification.

1 Like


Thanks for a new version!

heartbeat does not work again - it just do not execute the supplied function. I haven’t found any tests or examples with this mechanism enabled and working. Is it really there?

Btw, I’m using #[heartbeat] macro from ic-cdk-macros.


As far as I know, heartbeat functionality is still under development. I’ve been watching for it too. Did I erroneously write something about it in the release notes?

Yes, you’ve mentioned that this version supports this spec which also introduces heartbeat functionality as something that is now supported.

1 Like

Could you, please, elaborate on estimates for this feature in dfx?

Eric, do you know when the Hashmap vals() function will be added per the documentation?

Would you please point me to the location?

It appears that Hashmap.vals() is present in the Motoko base library included with dfx 0.8.3:

$ dfx --version
dfx 0.8.3
$ dfx cache delete
$ dfx cache install
Version v0.8.3 installed successfully.
$ grep vals $(dfx cache show)/base/Hashmap.mo
public func vals() : Iter.Iter<V>

1 Like

I had done a dfx -upgrade and it did not show up.
I did the cache delete and dfx cache install and it shows in the grep out.

I will pass it along to others who are having the same issue.

Thank you very much.

But yet this is the error I am still getting:

/…/hello/src/hello/main.mo:36.10-36.19: type error [M0072], field vals does not exist in type
delete : Name → ();
entries : () → Iter/1<(Name, Entry)>;
get : Name → ?Entry;
put : (Name, Entry) → ();
remove : Name → ?Entry;
replace : (Name, Entry) → ?Entry;
size : () → Nat

1 Like

Are you using the vessel package manager in your project? This may be referencing an older version of the base library.

Another possibility is that dfx.json specifies an older version, say 0.8.1. You can either remove the version field from dfx.json, or set it to a newer version. I usually remove the version field.

Thanks. I did change it. Same problem occurs for me in motoko playground.
sizeof() works fine.
vals() not fine.

I am just playing with the Phonebook example. It must be me.

I created a new project using:

dfx new project1

the program now deploys correctly and the canister function is working.
Thanks. Something was cached/stored somewhere.

1 Like

@ericswanson this link does exactly that

upd: if you’re using a phone, scroll up a little bit

1 Like

Am I doing something wrong? The Hasmap.mo does exist in that directory when manually inspected

And on opening the file using VS Code, I do see this snippet