https://toitlang.org/ logo
Missing implementations for 'set-no-delay'
# help
a
Hey there! I'm very new to Toit and all, and I'm trying to install a container on my ESP32. I'm getting this error when running `artemis device container install --trigger interval:60s tracker ./Client/client.toit "ws://192.168.0.58:8080/ws"`:
Copy code
<pkg:pkg-http-2.5.0>/connection.toit:332:7: error: Missing implementations for interface methods
class DetachedSocket_ implements tcp.Socket:
      ^~~~~~~~~~~~~~~
<sdk>/net/tcp.toit:19:3: note: Missing implementation for 'set-no-delay'
  set-no-delay enabled/bool -> none
  ^~~~~~~~~~~~
Compilation failed.
EXCEPTION error. 
toit.compile failed with exit code 0
Any ideas on what to do? The code works when not being installed through artemis, so I'm unsure what the issue could be. Thanks!!
f
This is due to a recent update. I think what happens here is that Jaguar uses a newer version of the SDK than Artemis and has pulled in a version of the http package that doesn't work with the one Artemis uses.
I think things would be solved if we do a new release of Artemis that accepts the same version of the SDK.
I will try to upload a service image for the new SDK.
In the meantime you could download an older version of Jaguar. You would need to run
jag pkg update
to make the used packages compatible again.
Sorry for the inconvenience. When I removed the deprecated function I didn't anticipate how much problems that would give.
Actually found a better solution. If you
jag pkg update
in your project it should now find a newer version of the http package that is again compatible with the SDK that Artemis uses.
Also, could you check if there is a line "The SDK constraint defined in the package.lock file is not satisfied: v2.0.0-alpha.142 < ^2.0.0-alpha.143" in your output? I just modified the compiler not to print other errors if that happens, but just want to make sure that the error was already printed.
a
Yeah that's there too, I'll try updating real quick
Updated, didn't seem to work
f
You updated the packages?
a
Yeah, I ran
jag pkg update
, no output so I'm not sure if anything updated or not
f
Could you paste the content of the package.lock file?
a
Copy code
sdk: ^2.0.0-alpha.143
prefixes:
  http: pkg-http-2.5.0
  websocket: pkg-websocket
packages:
  pkg-http-1.9.3:
    url: github.com/toitlang/pkg-http
    name: http
    version: 1.9.3
    hash: 108c436cc990535f5d70c380ef68081c38840f4c
  pkg-http-2.5.0:
    url: github.com/toitlang/pkg-http
    name: http
    version: 2.5.0
    hash: 4b9c2e4bdf1e57590899e7a42b049e751136aa7c
  pkg-websocket:
    url: github.com/toitlang/pkg-websocket
    name: websocket
    version: 1.0.0
    hash: bf0fedd82f13c44b8f7221582ba585f35b77f2ef
    prefixes:
      http: pkg-http-1.9.3
f
Still uses pkg http 2.5.0...
Could you try
jag pkg uninstall http
and then install it again?
a
Sure
Ah there, updated
f
Good. No idea why the
jag pkg update
didn't work. It should have.
a
I think that was my mistake- wrong directory 😂
f
🙂
a
Thanks for your help! Seems like updating it fixed it
f
Great. Sorry again for the issues. I should have made a compatible http package immediately. Thanks for reporting.
a
No worries! 2.0.0 is still in alpha, thigns are expected to break
f
Yes. We are getting closer, though.