Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating of tinyGo => cosmwasm #11

Closed
8 of 10 tasks
KamiD opened this issue Aug 4, 2020 · 10 comments
Closed
8 of 10 tasks

Updating of tinyGo => cosmwasm #11

KamiD opened this issue Aug 4, 2020 · 10 comments

Comments

@KamiD
Copy link
Contributor

KamiD commented Aug 4, 2020

Overview

This issue is used for progress updating in tinyGo => cosmwasm
it will update every 2 weeks util first public version released

Requirement of alpha version (in developing)

  • Updating simulate tool depends version of cosmwasm-vm and cosmwasm-std from v0.8 to 0.10

  • Developing json lib for tinyGo => wasm, support Marshal and Unmarshal

    • Finish progress about 70%, Marshal is support now, Unmarshal will finished in this week
    • (Update) wjson lib need refactor, working already started
  • Developing API Support between cosmwasm-go and cosmwasm, based on cosmwasm-v0.10

    • API Support has already finished( Based on v0.8 )
    • now, we are bring them to v0.10
  • Debugging loading process in wasmd, make sure every func check*** will passed

  • Building a development framework of contract which is writing by Go

    • not start, will finish this week
  • Fix Issue458 in cosmwasm

    • doing now
  • Add messages analyze support such as Staking\Bank\Wasm

    • not start, depending on json lib support
  • Add SafeMath support

    • not start
  • Add Type of Uint128 support on tinyGo (using BigInt?)

    • not start
  • Translating return message in init\handle\query

    • not start, depending on json lib support
@ethanfrey
Copy link
Member

Thank you for the update @KamiD

As to #458 don't block on that and please do the same in cosmwasm simulate, disabling it. The way to disable without forking is setting the feature flag to default-cranelift. This will turn off enforcing no floats (and also disable gas metering).

I will look into making the json lib float-free

@KamiD
Copy link
Contributor Author

KamiD commented Aug 4, 2020

As to #458 don't block on that and please do the same in cosmwasm simulate, disabling it. The way to disable without forking is setting the feature flag to default-cranelift. This will turn off enforcing no floats (and also disable gas metering).

cool, I will try it in cosmwasm simulate~

@ethanfrey
Copy link
Member

ethanfrey commented Aug 4, 2020

Great. You just need this line in Cargo.toml:

cosmwasm-vm = { version = "0.10.0", default-features = false, features = ["default-cranelift"] }

@ethanfrey
Copy link
Member

In general, I don't see many PRs that I can review, and work seems to happen on branches, so it is a bit hard to contribute. If there were a more clear workflow (where any important branch has a PR, even in draft mode), it is easier to see where there work is.

When I find time, I would love to figure out how to deal with the float issue, ideally by making the json library float-free, so we can keep the VM as is, and generate "legal" code from TinyGo. But it would be good to know what branch to fork from when trying that.

@KamiD
Copy link
Contributor Author

KamiD commented Aug 5, 2020

OK, I will cleanup those branches, make a clear workflow, all works will doing based a PR~

@ethanfrey
Copy link
Member

ethanfrey commented Aug 5, 2020

Thank you @KamiD

If all important work is either on master (or develop if you prefer) or on a open PR, that makes it easier to track.

Ideally PRs are smaller and merged frequently, so I can make PRs off master to eg. change the json codec to not produce floating point ops without worrying about which branch to merge off of.

Other than that, I am open to any flow. But it may be helpful to create a number of issues that need doing and make a project board for them. (My experience in other remote teams) But you can choose the process that works best for you.

My PR #9 is still hanging for a while, and I don't know if it will ever be merged, or if there is other work building off of it (or an alternate form of it) in another branch.

@KamiD
Copy link
Contributor Author

KamiD commented Aug 6, 2020

Hi @ethanfrey
thanks for your suggestion, very happy to learn some remote dev method from your experience, your PR #9 is depending json lib dev, after json lib published, I will merge your changes
json lib will finished in few days, we are building a branch that named alpha-json, also bind a PR with it, you will see the progress updating in there~

@KamiD
Copy link
Contributor Author

KamiD commented Aug 6, 2020

BTW: Now our working branch is Alpha, all jobs will working based on this branch, also it will be the first release branch when main requirement finished

@KamiD
Copy link
Contributor Author

KamiD commented Sep 1, 2020

alpha-json branch has merged into Alpha

@ethanfrey
Copy link
Member

I just merged all of this except uint128 into master. That has it's own issue.

I will add CI and an example hackatom contract to match the rust demo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants