Comments (11)
@Denton-L thank you! Answered your question on the PR.
from solc-js.
@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.
@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.
@Latrasis both are generated by this script
from solc-js.
Can you please explain a bit more why you think this is a bug?
from solc-js.
@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.
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.
@chriseth if this versioning/build behaviour is not explained in the documentation (readthedocs), it should be. cc @Denton-L
from solc-js.
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.
@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.
@Latrasis yes, good idea!
from solc-js.
Related Issues (20)
- Switch to audited and fast version of sha3/keccak HOT 4
- Exception in an import callback leaves the compiler in an inconsistent state, leading to `You shall not have another CompilerStack aside me` error on next compilation HOT 13
- Does solc.loadRemoteVersion() download a new version of solc each time it is run? HOT 2
- Different bytecode when compiling from both solc-js and remix IDE
- cannot uninstall HOT 2
- OSError: [Errno 86] Bad CPU type in executable: HOT 1
- Cannot remap openzeppelin to use when I compile with solc HOT 1
- Release types on npm HOT 3
- Handle standard JSON transalation with `outputSelection` for `=<0.4.19`
- Failed to compile large json inputs HOT 1
- Callback not supported... HOT 2
- Identifier already declared HOT 2
- solc-select is out of date. Please run `solc-select upgrade` HOT 1
- Support for `--metadata` flag HOT 4
- 0.8.23 npm release won't install on Windows due to a stray dependency HOT 3
- findImports fallback on webWorkers not working HOT 5
- loadRemoteVersion is not working with jest test HOT 3
- 'Expected Pragma' error in solc but same code compiles in remix HOT 1
- Improvement: `content` not a key in solidity `input description` in solidity official doc (except under `destructible`) .
- Web3ContractError: code couldn't be stored HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from solc-js.