GithubHelp home page GithubHelp logo

Comments (11)

axic avatar axic commented on May 22, 2024 1

@Denton-L thank you! Answered your question on the PR.

from solc-js.

axic avatar axic commented on May 22, 2024

@Latrasis as an improvement it would be nice to improve solc-bin by having the versions in a JSON file.

solc-bin contains list.txt and list.js for the versions. The latter has two fields: versions (equals to list.txt) and releases (which is the first build of each version).

Do you think you could improve the process in solc-bin? That could help solc-js :)

from solc-js.

Latrasis avatar Latrasis commented on May 22, 2024

@axic: Sure thing! Just to understand a bit more, what is the process of adding a new version? Is the list.txt appended to? Or is it generated?

from solc-js.

axic avatar axic commented on May 22, 2024

@Latrasis both are generated by this script

from solc-js.

chriseth avatar chriseth commented on May 22, 2024

Can you please explain a bit more why you think this is a bug?

from solc-js.

Latrasis avatar Latrasis commented on May 22, 2024

@chriseth:
The very reason I stumbled upon this was when the latest version3.2 got an update on soljson-v0.3.2-2016-05-06-9e36bdd.js which allowed inlined library contracts: ethereum/solidity#493.
(It seems like it should have been 3.3 from my option, but I digress)

While the realtime solidity compiler (RSC) fetches the latest version, with the current issue beforehand solc-js does not. Which meant that any contract that would compile on RSC, would not compile on truffle or other tools. This produces confusion that RSC and solc-js would have conflicting latest versions.

from solc-js.

chriseth avatar chriseth commented on May 22, 2024

Ok, thanks, now I understand. The "inline library functions" feature is not yet released. It is part of the nightly developer snapshots that are used by browser-solidity. Version 0.3.3 will be released as soon as solidity is stable enough and it will of course contain this new feature.

The npm version is created for releases only in order to prevent people from deploying contracts with non-release versions (which are less stable and harder to verify because they might not be as well archived as the released versions).

Using loadRemoteVersion('latest'), you can always get the latest version just as browser-solidity does, but I think it is not a good idea to release a new npm version with every development snapshot.

The reason why browser-solidity uses development snapshots is because it is trivial to switch back to an older version if something goes wrong.

from solc-js.

axic avatar axic commented on May 22, 2024

@chriseth if this versioning/build behaviour is not explained in the documentation (readthedocs), it should be. cc @Denton-L

from solc-js.

Denton-L avatar Denton-L commented on May 22, 2024

Sorry, I'm not too familiar with web development. Just to make sure I'm updating the documentation correctly, if I wanted to use the latest development snapshot, I'd do the following?

var solc = require('solc');
var snapshot = solc.loadRemoteVersion('latest');

from solc-js.

Latrasis avatar Latrasis commented on May 22, 2024

@chriseth I see, I missed that. But as a suggestion: how about using stable, and nightly version labels instead? This would be more semantic than simply using latest with can be ambiguous, and is a common used practice that has proved itself within many projects.

from solc-js.

chriseth avatar chriseth commented on May 22, 2024

@Latrasis yes, good idea!

from solc-js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.