by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    draco-thuban
    @draco-thuban
    • Hi, I have been looking into your bounty on Gitcoin. Before I apply for the bounty, I was wondering if I could get some more clarity as to what you (all) are looking for.
      • Can you clarify the two following statements from the post?
        • Allow multiple Vyper binaries to play nicely with each other.
        • Can use multiple versions of Vyper in any host framework that is supported with this proposal.
    Bryant Eisenbach
    @fubuloubu
    Yeah, we weren't two clear with the requirements, but thanks for asking here!
    We want vyper/vyper-json CLI scripts in a standalone format that can use multiple versions of those standalone binaries at least in Python and Javascript, so someone can compile a project that uses different versions of Vyper entirely client-side (without running a server or anything). This would be similar to how Solidity distributes their solc library on NPM: https://www.npmjs.com/package/solc and as a separate binary: https://github.com/ethereum/solidity/releases
    Bryant Eisenbach
    @fubuloubu
    I added a comment with some work that @jacqueswww did a long time ago that could help build something really nice we can use to build and distribute these copies to appropiate places: https://github.com/vyperlang/vyper/issues/1953#issuecomment-631596232
    I'd like to refactor that work so it doesn't use a fork of pyodide
    arjuna sky kok
    @arjunaskykok_gitlab
    Vyper can run in browser (JavaScript) now?
    Bryant Eisenbach
    @fubuloubu
    Not right now, but it's something we'd like to add
    arjuna sky kok
    @arjunaskykok_gitlab
    So I guess the bounty should be split into two tasks: 1. multiple versions of Vyper, 2. Porting Vyper to JavaScript/Wasm.
    Bryant Eisenbach
    @fubuloubu
    wee have most of stuff needed to do those things, if you want to think of them logically that way, it helps
    Anh Dung Le
    @anhdungle93
    Hi, I heard that Vyper will receive more support in Ethereum2.0. Is it true? If yes what does it actually contain?
    conta16
    @conta16
    Hi, I read on the online documentation that it's possible to compute a precise upper bound for the gas consumption of any Vyper function call. Since I am trying to make a research on gas bounds, I would like to know, how do you calculate these bounds? Do you already have some kind of tools that statically estimate these bounds, or do you simulate the smart contract (which is known to terminate) in a local environment and then see how much gas it uses?
    Alexis Anand
    @zenithlight
    why isn't there a signed 256 bit integer type?
    Bryant Eisenbach
    @fubuloubu
    @zenithlight working on adding all integer types
    @conta16 static analysis, since all variable data types have an explicit upper bound, and all operations on variable data types can use that to compute the worst case.
    obviously doesn't work for external calls
    @anhdungle93 ETH 2.0 is likely 2+ years away from having support for smart contracts, it's not something we currently support but will make plans to do so as it gets closer
    conta16
    @conta16
    Thank you for the reply! One more thing: do you have something online that does this static analysis? I would like to get a better understanding on the matter.
    Bryant Eisenbach
    @fubuloubu
    @conta16 The compiler itself does it when it produces the gas cost estimates, it's not a separate tool
    it's not a terribly complicated algorithm, most of the gas costs are pretty well-defined already, we only leverage the maximum sizing on variable-length data operations
    Usually it overshoots a large amount, and it's often better to dynamically estimate costs to reduce the gas limit you'd set in a transaction, but it does lead to more predictable transaction costs and helps reduce a class of vulnerabilities using gas cost exploits
    Benjamin Cordes
    @benjyz
    question: does typing.py over ride standard python typing or how does it work. get an error here
    "ImportError: cannot import name 'Dict' from 'typing'"
    Bryant Eisenbach
    @fubuloubu
    I don't believe so, you just have to fully qualify it I think, from vyper.typing import ... or from .typing import ...
    John D Allen
    @johnda98
    hi guys.. long time solidity guy here.. having probs with the make in the virtual env
    install: missing destination file operand after '.'
    doing a make in the vyper directory. all other instructions to install ok except its python3 for the virtualenv -p python3 --no-site-packages ~/vyper-venv NOT python3.6
    stuck on this bit make
    make dev-deps
    make test
    johnda@ymirjda:~/vyper-venv/vyper$ make
    install .
    install: missing destination file operand after '.'
    Try 'install --help' for more information.
    Makefile:12: recipe for target 'init' failed
    make: * [init] Error 1
    .
    thanks :-)
    arjuna sky kok
    @arjunaskykok_gitlab
    @johnda98 Have you activated the virtual environment?
    Here's what I do:
    $ python3 -m venv .venv
    $ source .venv/bin/activate
    $ make
    /MyDirectory/.venv/bin/pip install .
    Processing /MyDirectory/vyper
    Collection.... so on
    I'm already inside vyper directory.
    Anyway I created a first pull request to Vyper. vyperlang/vyper#1992
    I added a test case for validate_version_pragma. Anyway, I noticed that pragma in Vyper does not support more complex cases like ^, >=, etc. Pragma in Solidity supports those cases. Should we add semver capability in pragma checking in Vyper?
    arjuna sky kok
    @arjunaskykok_gitlab
    I am also thorn that the pragma checking is done in comment not using special keyword. But I don't want to make a fuss about it.
    On top of that, why do we install Vyper in "make" step? I think it's better to put the installation step in "make install" step. I used to contribute to Python (CPython) project. It's easier if we have the Python binary in the project root directory after the compilation ("make" step). But in Vyper case, the "vyper" binary is installed already. I have to put "import pdb; pdb.set_trace()" in files inside virtual environment (.venv/lib/python3.7/site-packages/vyper) to debug when I run "vyper" cli application. In a nutshell, I would like to run "./vyper" inside vyper project directory after "make" step. What do you think?
    Bryant Eisenbach
    @fubuloubu

    Should we add semver capability in pragma checking in Vyper?

    Sure!

    I am also thorn that the pragma checking is done in comment not using special keyword.

    Yeah, I want to move it to the module-level natspec

    having it in the comment is gross
    John D Allen
    @johnda98

    @johnda98 Have you activated the virtual environment?
    Here's what I do:
    $ python3 -m venv .venv
    $ source .venv/bin/activate
    $ make
    /MyDirectory/.venv/bin/pip install .
    Processing /MyDirectory/vyper
    Collection.... so on

    yep.. see my post.. i'm in it johnda@ymirjda:~/vyper-venv/vyper$

    Bryant Eisenbach
    @fubuloubu
    @arjunaskykok_gitlab @johnda98 also check out pyenv: https://github.com/pyenv/pyenv
    very useful tool for managing virtual envs and multiple python versions
    John D Allen
    @johnda98
    most humans on planet are following the popular instructions and clearly they are not clear
    git clone https://github.com/vyperlang/vyper.git
    cd vyper
    make
    make dev-deps
    make test
    doesnt cook

    @arjunaskykok_gitlab @johnda98 also check out pyenv: https://github.com/pyenv/pyenv

    thanks Bryant.. will do

    I just changed to johnda@ymirjda:~/vyper-venv/vyper$ directory... oh so i have to activate the environment

    johnda@ymirjda:~/vyper-venv/vyper$ python3 -m venv .venv
    The virtual environment was not created successfully because ensurepip is not
    available. On Debian/Ubuntu systems, you need to install the python3-venv
    package using the following command.

    apt-get install python3-venv

    You may need to use sudo with that command. After installing the python3-venv
    package, recreate your virtual environment.

    Failing command: ['/home/johnda/vyper-venv/vyper/.venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

    Bryant Eisenbach
    @fubuloubu
    yeah, this is why we are trying to create a binary setup that's much easier to use for people who aren't pythonistas
    as an alternative currently, we have Docker images