Comments (9)
I want to create a branch/tag for BSC v4.0.0 soon, but there are some cleanups that we'd like to get in first. (For example, if we're going to make changes to the installation layout, as in issue #85 , then we should do that now.) When that's in place, we can make pre-built versions available here on GitHub (via the "releases" tab) and it can be packaged and distributed elsewhere. Hopefully that will satisfy the immediate need, while we decide the process for when/how next versions are branched/tagged.
from bsc.
It has taken a long time, but I hope that we can now close this issue, with the release of BSC 2021.07?
@BracketMaster , I appreciate that you filed this and I apologize that it has taken so long! If you are still offering to maintain packaging for homebrew (or any other system) that would be appreciated. I'd like to see BSC available in more package systems, now that we have versioning.
The release page also has pre-built tar-files for download. And I believe this should make it easier for CI environments to download a known binary distribution, and not have to build from source.
Since my earlier comment, there have been some changes. The date field has been removed. And the interpretation of the version string as three fields has been removed, allowing it to be a string of any form. And that string is no longer hardcoded in Version.hs
but is instead auto-generated by the update-build-version.sh
script.
When run inside a Git repo, the script will use git describe --tags
to produce the version string. If the current commit is tagged, then that will be the version string. So building from the 2021.07
tag will result a BSC with that version. If you build from a later commit, you get 2021.07-g<hash>
. There is also support for building from an exported snapshot, outside of Git.
from bsc.
BSC will show the version like this:
Bluespec Compiler, version 2017.07.A (build 0b249fb2a, 2017-07-21)
but will omit the version name and the date if those fields are empty, which is why you only see the git commit at the moment. The version name and date are defined in src/comp/Version.hs
.
These fields are empty because we don't yet have a system for versions and releases. I would very much like to have that, though.
Bluespec switched to using a YYYY.MM.TAG format, similar to how some other commercial EDA releases are versioned. But before that, the numbering was 3.8.#. We could start versioning the open BSC at 4.0 or 5.0. But first I want to fix a few behavior differences that have accidentally creeped into this code, and I'm first working on publishing a test suite.
from bsc.
Awesome. I've almost got a bsc ready to push into homebrew.
Just tell me what version number I should use - right now I have it set to 0.0 in homebrew, and am setting the package name to bsc
Does this sound good?
I set 0.0 Because I imagine you'll want to update the version number later...
from bsc.
I'd be excited about a release too, so that we could just download that in our CI instead of building it from source each time our CI runs.
from bsc.
I'd be excited about a release too, so that we could just download that in our CI instead of building it from source each time our CI runs.
#147 could alleviate the problem for CI until a release happens. And after a release happens, it is just a matter of tagging versions.
from bsc.
Also note that the CI does create artifacts that are available after it has run. Prebuilt releases from the HEAD (as of this post) are available here for Ubuntu 18.04, Ubuntu 16.04, and macOS 10.13+ (tested on 10.15).
from bsc.
Also note that the CI does create artifacts that are available after it has run. Prebuilt releases from the HEAD (as of this post) are available here for Ubuntu 18.04, Ubuntu 16.04, and macOS 10.13+ (tested on 10.15).
It's nice to have these artifacts, but GitHub does not want people to download them programmatically: You can only download them if you're logged into your GitHub account, as far as I can tell, and therefore I think a CI script would not be able to use them.
from bsc.
Thanks for following up on this. I can look into this next week, seeing if it can build on homebrew without any issues.
from bsc.
Related Issues (20)
- Improve the mechanism for testing Bluespec Inc bug 1490 HOT 3
- `-dparsed` output produces invalid register updates with BSV HOT 2
- `-dparsed` produces invalid BSV module function that takes another module as an argument HOT 2
- Missing `Ord Bool` instance HOT 7
- Static check of file descriptor argument to tasks like $fgetc HOT 3
- Testsuite reports an error getting BSC version HOT 2
- Internal Compiler Error when quoting a character value. HOT 4
- Bluesim's symbol-probing interface has wrong values for FIFO
- Unresolved numeric contexts that should be resolvable HOT 6
- Verilog import fails in macro substitution HOT 2
- Unexpected syntax error HOT 1
- expandPorts.tcl has hardcoded paths which do not exist. HOT 1
- Unexpected behavior in Stmt sequence when using par HOT 2
- Bluesim divide-by-zero behavior is inconsistent on arm64 HOT 2
- Type synonyms with phantom parameters can lead to strange behaviors (E.g., compiler hang) HOT 4
- doc example for mkUniqueWrapper2 HOT 7
- -remove-unused-modules flag doesn't work with mkProbe module provided in std library HOT 2
- Failures with compilation on raspberry-pi 5 HOT 4
- GCC 14 emits extra warnings HOT 1
- Github's macos-11 runner is going away 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 bsc.