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

[Submission] Open source proposal: enhancement of embedded Rust libraries (testing) #1673

Merged
merged 12 commits into from
Apr 9, 2022
Merged

[Submission] Open source proposal: enhancement of embedded Rust libraries (testing) #1673

merged 12 commits into from
Apr 9, 2022

Conversation

Dajamante
Copy link

@Dajamante Dajamante commented Apr 4, 2022

Assignment Proposal

Title

Contributing to Rust Embedded ecosystem to improve developers experience. Submission on proposal #1587.

Names and KTH ID

Deadline

Task 1

Category

Contribution to open-source

Description

As anyone would say, Rust is hot 😉. The Rust Embedded ecosystem is also blooming to provide support to embedded platforms. For example The Knurling project is an open source project to automate Rust Embedded development by providing Rust-native level of support.

In Knurling

  • probe-run is a custom runner to use Rust on embedded devices.
  • defmt provides an effective logger for testing
  • flip-link offers stack protection. When sensitive memory regions are reached, compilation fails instead of undefined behaviour.

flip-link needs some enhancements to improve developper experience:
rust-lld is a linker for GNU files. flip-link should accept the same files as rust-lld. Currently, some memory.x files (describing the memory) are not accepted by flip-link while being accepted by rust-lld. Meaning that developers must updates files by hand if they are incorrect.

This OSS contribution fits in CI/Testing as it automates necessary work that was precedently done manually (i.e. a human needed to check if files were formatted correctly to avoid failure), and support for testing programs.

Contribution

  1. We added in total 7 tests to manage input that is currently accepted by rust lld, to make flip-link more resilient.
    Target PR

  2. Fixed a bug about arithmetic operations handled incorrectly:
    Issue #65 Easy bug

Self-assessment

Yes No
bug: The contribution fixes bugs Yes
documentation: The contribution improves documentation Yes*
feat: The contribution adds new features Yes
difficulty: The contribution is a difficult piece of engineering Yes**
conversation: There is an interesting engineering conversation with the maintainers Yes
merge: The contribution is merged in the main branch. Yes

* Added documentation on the components.

** It is quite a hefty code base that we needed to dive in.
The change we got merged was not a difficult piece of engineering, more code reformatting. But understand and rewrite a parser is more challenging.

@dd2482-bot
Copy link
Collaborator

Readme is not correctly formatted
Need exactly: ['Assignment Proposal', 'Title', 'Names and KTH ID', 'Deadline', 'Category', 'Description']

Got: ['Brouillon', 'Assignment Proposal', 'Title', 'Names and KTH ID', 'Deadline', 'Category', 'Description', 'Description', 'Self-assessment']

@dd2482-bot
Copy link
Collaborator

Readme is not correctly formatted
Need exactly: ['Assignment Proposal', 'Title', 'Names and KTH ID', 'Deadline', 'Category', 'Description']

Got: ['Brouillon', 'Assignment Proposal', 'Title', 'Names and KTH ID', 'Deadline', 'Category', 'Description', 'Description']

@dd2482-bot
Copy link
Collaborator

Readme is not correctly formatted
Need exactly: ['Assignment Proposal', 'Title', 'Names and KTH ID', 'Deadline', 'Category', 'Description']

Got: ['Assignment Proposal', 'Title', 'Names and KTH ID', 'Deadline', 'Category', 'Description', 'Description']

@javierron
Copy link
Collaborator

Thanks for the submission!

@javierron javierron merged commit c83bad4 into KTH:2022 Apr 9, 2022
nikolim pushed a commit to nikolim/devops-course that referenced this pull request Apr 11, 2022
…ries (testing) (KTH#1673)

* open source proposal: embedded rust libraries

* changed email email

* added missing assignment

* essay devops sec

* typo

* [Submission]: Contribution to OSS, adding features + bug

* [Submission]: Contribution to OSS, adding features + bug

* contribution merged

* formatting

* right format

* fix
@monperrus
Copy link
Member

@Dajamante good progress here, the fix was merged. regarding the tests, ping me when there is progress on the PR (knurling-rs/flip-link#69)

@Dajamante
Copy link
Author

Dajamante commented Apr 28, 2022

@monperrus There is progress on the PR and all the tests we wrote are passing.
But during the discussion, it was identified that doing a recursive lexer and parser would be better for the project.
This got out of scope of the original PR for this task. While I am basically done with the lexer, I still need to integrate the lexer (https://github.com/Dajamante/linker_flip_link/blob/main/src/main.rs), to flip link, do a syntax tree, modify the flip link parser completely ....

@monperrus
Copy link
Member

monperrus commented Apr 28, 2022 via email

@Dajamante
Copy link
Author

@Dajamante good progress here, the fix was merged. regarding the tests, ping me when there is progress on the PR (knurling-rs/flip-link#69)

In the frame of this course, we want to do a final submission, and continue oss activities later on our own schedule.

@joloev
Copy link

joloev commented May 2, 2022

@monperrus we have tried to reach you via email regarding this PR. This PR was intended to be our final submission of task 1. Unfortunately, as this was the beginning of the course and we were not yet familiar with the naming of PRs it was named submission and not Final submission. We have completed the task we proposed and was approved by a TA. Why have we not received a grade for task 1 on canvas? Should we simply rename it [Final Submission]?

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