Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A basic file describing how to get started working on Silver #458

Draft
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

RandomActsOfGrammar
Copy link
Contributor

We need a way to introduce new students to the logistics of developing the Silver system. My hope is that this document will be something we can tell new students to read before they start working on the Silver system, and which can be referenced for some questions that might come up as they work.

I don't know if this document belongs in the Silver repository or if it should live somewhere else.

I'm hoping everyone will read this and either add their own text or suggest concepts that need to be added. This includes people who have been working on Silver for a long time, and people who are just starting out and have their questions fresh in their minds.

A couple of notes:

  • This is for people who can already write Silver code, but haven't worked on the Silver system before. Therefore it doesn't need to explain what a production is or other similarly simple concepts.
  • This isn't intended to answer every question possible. We're going to get better results from asking people to read something short rather than a book, since they will remember more of a short text. Everything added should be (1) rather short and (2) generally applicable.

@krame505
Copy link
Member

My vote is that this sort of documentation belongs on the website - there is already some similar (and largely duplicated) info at http://melt.cs.umn.edu/silver/dev/. But we should definitely add a link to this from the Silver README.md file.


### `self-compile`

The `self-compile` script does a simple build of Silver to create a
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note that this doesn't write to jars, but sticks in in build; cp build/silver.compiler.composed.Default.jar jars/silver.compiler.composed.Default.jar may be necessary

A good way to see where something (e.g. a function) is used in the
Silver code base is to use the following command:
```
grep -r --include="*.sv" "function name"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I typically just use git grep functionName as that is quicker to type (and also shows up references in the java runtime.)

Also there are some similar tools under support/bin/scripts.

you to get new jars using this script. If you have pulled the
`develop` branch and it won't build, run this.


Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note that if a new-jars PR was just merged and jenkins hasn't finished rebuilding develop after the merge, this is likely to not work as expected

@alexandra-hanson
Copy link
Contributor

It is also good to periodically run ./update, right?

@ericvanwyk
Copy link
Contributor

If it does live on the website then there should be something in Git repo that points to this information on the webpage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants