Comments (4)
they depend on building the solc compiler first which takes a long time
This and the instance would run out of memory and kill the build. We could reduce the number of cores used to build solc, which might prevent the build from using too much memory, but at that point we're looking at almost an hour to build the whole thing.
Wondering if we can fetch a binary from somewhere instead to skip that step.
Something along these lines would probably work, but it would introduce a bit of complexity to the build.
My feeling right now is that we should wait until #28 is complete and then re-enable these tests in CI. Otherwise, we could investigate running the build of solc-rust with less cores or somehow provide it with the solc artifacts so that it doesn't need to run the solidity build.
On a side note: I think the solc-backend feature is something that we'll want to keep indefinitely. The reason being is that it eliminates the requirement of installing cmake, libboost, and libclang. This is nice for new devs who may just want to pull the repo and start tinkering, but don't necessarily care to build the whole compiler. I will add a section to the readme describing how to build the entire compiler with the solc-backend.
from fe.
I briefly looked into #28 and while I agree that having slim rust bindings to libyul would be a nice dependency diet (since we don't need the full solc compiler) I'm not sure if there aren't better alternatives from an time vs reward perspective.
GitHub Actions allows for a maximum runtime of 6 hours which goes far beyond the time it takes to compile solc. Combine that with the fact that artifacts can be cached and I think we arrive at a place where the inconvenience caused by the solc build will be rather low. Every once in a while if the cache wasn't used for 7 subsequent days we would see a longer build to rebuild solc but I wouldn't assume that too affect us too much.
I think I will give that a shot.
from fe.
Oh I guess #28 is related to this.
from fe.
Closing #20.
We will need to make sure that libclang, cmake, and libboost are available in the CI environment if we are to run the build of libsolc or libyul.
from fe.
Related Issues (20)
- `std::evm` functions should take buffer types HOT 5
- The example given in the README gives errors in new compiler HOT 1
- Implement `std::abi` and use in Fe v2 to provide Contract ABI support
- The fe test command should default to run from the project directory
- Test with assert string panics HOT 1
- Reconsider salsa recovery fn usage
- [FOLLOW UP] Type system
- Failed to Verify Contract HOT 3
- Unexpected event in ABI for compiler v0.26.0 on macOS
- Using fe build without a path should defaut to the root project directory just like fe test does
- Can't run Fe language on M2 MacOS Ventura: bad CPU type in executable HOT 2
- internal error: entered unreachable code', crates/parser/src/lexer/token.rs:313:22
- internal parser error at crates/parser/src/parser.rs:186:9
- Panic due to result::unwrap() called on an `Err` value: TypeError(DiagnosticVoucher(PhantomData<()>)) at crates/analyzer/src/namespace/items.rs:1918:64 HOT 2
- Panic in dependency (Salsa) due to no value set for FileContentQuery(SourceFileId(4294967295))
- Allow ingot dependencies to be resolved via git, ipfs etc HOT 2
- Yul codegen should use relooper algorithm
- Add support for transient storage HOT 4
- Github
- Add support for specifying generic arg in path segment
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 fe.