concurrent-programming-web merge requestshttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests2024-03-21T14:55:00+01:00https://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/49Use new CCS and pseuCo packages2024-03-21T14:55:00+01:00Felix FreibergerUse new CCS and pseuCo packagesThree repositories need updating:
- [x] pseuCo.com must be udpated (this MR)
- [x] `pseuco-shared-components` must be updated as it contains the `parseSupport` file (https://dgit.cs.uni-saarland.de/pseuco/pseuco-shared-components/-/merg...Three repositories need updating:
- [x] pseuCo.com must be udpated (this MR)
- [x] `pseuco-shared-components` must be updated as it contains the `parseSupport` file (https://dgit.cs.uni-saarland.de/pseuco/pseuco-shared-components/-/merge_requests/4)
- [x] pseuCo Book must update its `package.json` to work with the updated `pseuco-shared-components` (https://dgit.cs.uni-saarland.de/fefrei/pseuco-book/-/merge_requests/3)Felix FreibergerFelix Freibergerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/48Merge new CPN editor2024-02-28T16:26:33+01:00Dominic ZimmerMerge new CPN editorThe goal of this MR is to finally incooperate a certain master thesis into `edge`. After some effort by @fefrei some dependencies cause fewer headaches and I finally managed to convince `npm` to build this project and its relevant depend...The goal of this MR is to finally incooperate a certain master thesis into `edge`. After some effort by @fefrei some dependencies cause fewer headaches and I finally managed to convince `npm` to build this project and its relevant dependencies.
A little bit of a roadmap for this MR:
* [x] Merge branch `dominic` of [pseuco-cpn-compiler](https://dgit.cs.uni-saarland.de/pseuco/pseuco-cpn-compiler#dominic) into its corresponding `master`
* [x] Merge branch `dominic` of [colored-petri-nets](https://dgit.cs.uni-saarland.de/pseuco/colored-petri-nets#dominic) into its corresponding `master`
* [x] Check that the UI/UX seems/is pretty bug-free™Petrify pseuCoDominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/47Address issue #892023-05-12T15:21:44+02:00Dominic ZimmerAddress issue #89Please test and confirm that this fixes the issue we discussed.Please test and confirm that this fixes the issue we discussed.Felix FreibergerFelix Freibergerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/46Remove scrollbars on file page2023-04-25T15:30:05+02:00Felix FreibergerRemove scrollbars on file pageThis removes the top-level scroll container, moving it to the file edit page. All other pages appear to already be in a container and therefore be unaffected, but someone™ should check for unintended side effects.This removes the top-level scroll container, moving it to the file edit page. All other pages appear to already be in a container and therefore be unaffected, but someone™ should check for unintended side effects.Felix FreibergerFelix Freibergerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/45Enable strict mode. Fixes #79.2023-04-05T14:52:32+02:00Felix FreibergerEnable strict mode. Fixes #79.Know bugs:
- [x] Data Authority kills its worker on unmount, does not re-launch one
- no translations show
- crash when navigating away (worker already terminated)
- [x] TextEditor somehow gets disconnected from the real file, i...Know bugs:
- [x] Data Authority kills its worker on unmount, does not re-launch one
- no translations show
- crash when navigating away (worker already terminated)
- [x] TextEditor somehow gets disconnected from the real file, is empty and editing has no effect
- [x] pseuCo Debugger is brokenFelix FreibergerFelix Freibergerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/44Implement flag to hide/show editorManager windows2022-09-08T13:39:07+02:00Dominic ZimmerImplement flag to hide/show editorManager windowsI think this has little implications elsewhere. Translations still happen in the background an they remain unaffected by the `hidden` flag. Simple prototype editors worked out of the box.I think this has little implications elsewhere. Translations still happen in the background an they remain unaffected by the `hidden` flag. Simple prototype editors worked out of the box.Dominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/42Model checking2022-04-04T11:52:23+02:00Lena BeckerModel checkingAdds the model checking action, which lets users compile their pseuCo program to Promela. Also includes some documentation of this feature on the help page.Adds the model checking action, which lets users compile their pseuCo program to Promela. Also includes some documentation of this feature on the help page.https://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/43Allow for multiple lines in the TextEditor to be highlighted2022-04-01T16:55:11+02:00Dominic ZimmerAllow for multiple lines in the TextEditor to be highlightedFeature as discussed (totally™ not implementing easter eggs when I should be working on my thesis instead).
I had to adapt some types in PSC. When highlighting lines in the editor, the empty highlighting is now `[]` instead of `undefine...Feature as discussed (totally™ not implementing easter eggs when I should be working on my thesis instead).
I had to adapt some types in PSC. When highlighting lines in the editor, the empty highlighting is now `[]` instead of `undefined` (hurray for `map` support!).Felix FreibergerFelix Freibergerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/40React angularlegacy legacy2022-03-07T10:50:04+01:00Dominic ZimmerReact angularlegacy legacyAngular is no more! There is plenty more to do, some quite obvious, but some interactions may be rather surprising. Let me give some examples
Obvious:
- Refactoring directory structure
- Getting rid of angular leftovers
Not so obvious:...Angular is no more! There is plenty more to do, some quite obvious, but some interactions may be rather surprising. Let me give some examples
Obvious:
- Refactoring directory structure
- Getting rid of angular leftovers
Not so obvious:
- Action X breaks in certain circumstances in react because an infinite render cycle is caused which was not the case in Angular+React
- Any kind of obvious bug, quirk, improvement or performance complaint
I want to focus this draft MR on the not so obvious stuff. To anyone reviewing the code, it should be clear that the obvious stuff is due in given time. If you are not sure if behaviour is intended or not, still comment on it.Re(a)ctify pseuCo.comDominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/41Help page fixes2022-02-24T16:46:08+01:00Lena BeckerHelp page fixeshttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/39Implement /pseuco-ide and /pseuco-java-compiler2022-01-28T13:32:18+01:00Dominic ZimmerImplement /pseuco-ide and /pseuco-java-compilerI was about to tear off the entire angular skeleton when I stumbled over these two (kind of) innocent pages.
The resulting pages look (almost) identical to their pseuco.com (AngularJS) equivalent and the changelog protocol of `/pseuco-i...I was about to tear off the entire angular skeleton when I stumbled over these two (kind of) innocent pages.
The resulting pages look (almost) identical to their pseuco.com (AngularJS) equivalent and the changelog protocol of `/pseuco-ide` is working fine, too. Give or take some Nitpicks from @fefrei, this MR should be of little hassle.Re(a)ctify pseuCo.comDominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/38React importfile2022-01-24T11:20:13+01:00Dominic ZimmerReact importfileThis is a very early version of the ImportFile page, thus a draft MR. I did not thorughly check all features, but they do not differ implementation-wise, so I assume they work as intended.
Bodies found on the way:
- pegJS parsers as typ...This is a very early version of the ImportFile page, thus a draft MR. I did not thorughly check all features, but they do not differ implementation-wise, so I assume they work as intended.
Bodies found on the way:
- pegJS parsers as typescript modules should be typed to `any` and be type asserted when neededDominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/37Make keys of ActionModalComponents unique2022-01-18T13:41:47+01:00Dominic ZimmerMake keys of ActionModalComponents uniqueI forgot to apply this fix before merging `react-actions` into `react`. `ActionComponentHost` provides `spawnComponent`, which embeds `ActionModalComponents` into the DOM, but using `ActionModalComponent.name` as key was a little bit rec...I forgot to apply this fix before merging `react-actions` into `react`. `ActionComponentHost` provides `spawnComponent`, which embeds `ActionModalComponents` into the DOM, but using `ActionModalComponent.name` as key was a little bit reckless. That's fixed now.
![image](/uploads/93b9814b8ef8b1951c2ba07c974da3db/image.png)https://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/35Implement most remaining Actions2022-01-18T11:46:18+01:00Dominic ZimmerImplement most remaining ActionsThis (overdue) MR implements the remaining EditorManager actions.
Known shortcomings:
- PseucoDebugger has been ported to React independently and will only be merged once we upgrade to react-bootstrap4
- Though most pseuco.com features ...This (overdue) MR implements the remaining EditorManager actions.
Known shortcomings:
- PseucoDebugger has been ported to React independently and will only be merged once we upgrade to react-bootstrap4
- Though most pseuco.com features are quite robust, it is reasonable to expect external tools (eg. arbitrary JANI servers) to report unexpected error messages that are not further wrapped by the frontendDominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/36Implement New File page2022-01-17T11:36:51+01:00Dominic ZimmerImplement New File pageThere is not too much to say. This MR implements the missing `/new/{fileType}` pages in React.
As intended, the client stores the templates locally and can (automatically and on demand) query templates from the API endpoint.
Issues:
-...There is not too much to say. This MR implements the missing `/new/{fileType}` pages in React.
As intended, the client stores the templates locally and can (automatically and on demand) query templates from the API endpoint.
Issues:
- Since the server is providing the template descriptions as HTML string, the current implementation relies on using React's `dangerouslySetInnerHTML` feature which is discouraged and a security risk. Particularly, <a> tags will not prevent the default event for their behavior and thus, when clicked, click their DOM parent as well. When clicking the highlighted link in the attached picture, the user will create a file from the template and then be redirected to the link's target page.
![image](/uploads/3664e0bacbb3522e54192ed9b43d5c8b/image.png)Dominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/34Migrate exercise page and all exercises to React2022-01-17T10:49:51+01:00Dominic ZimmerMigrate exercise page and all exercises to ReactThis MR aims to implement the `/exercises` and `/exercise/*` pages in React.
For the most part, the previous layout and styling has been kept as is. Completing exercises unlocks features of the tool.
Left to do:
- [ ] Thoroughly test a...This MR aims to implement the `/exercises` and `/exercise/*` pages in React.
For the most part, the previous layout and styling has been kept as is. Completing exercises unlocks features of the tool.
Left to do:
- [ ] Thoroughly test and QA the exercises, make sure no unintended dodging of exercises is possible
- [x] Apply the fix that's been applied elsewhere here to fix the pipeline (npm version??)Dominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/27Port pseuCo Debugger to React and make it usable for pseuCo Book.2022-01-13T16:21:39+01:00Felix FreibergerPort pseuCo Debugger to React and make it usable for pseuCo Book.The pseuCo Debugger should be usable in the book to visualize failing traces for testing-based pseuCo exercises. The current state is:
- [x] Port the Debugger to React.
- [ ] Move it to `pseuco-shared-components`.
- [ ] Generalize it to...The pseuCo Debugger should be usable in the book to visualize failing traces for testing-based pseuCo exercises. The current state is:
- [x] Port the Debugger to React.
- [ ] Move it to `pseuco-shared-components`.
- [ ] Generalize it to work in pseuCo Book, too. (Bootstrap, Glyphicons, Dark Mode, …)
- [ ] Generalize it to work as a trace explorer without allowing to modify choices.
- [ ] Add support to visualize test violations.
As this MR touches actions and `taskManager`, I'd like a look from you, @thamma. If everything is OK, I'll merge this to `react` and continue development there. Further development will only concern `PseuCoDebugger.tsx` (which will move to `pseuco-shared-components`) and its interface in `actionDebugPseuCo.js`.Felix FreibergerFelix Freibergerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/31Implement `Memory Models` action2021-12-06T12:51:23+01:00Dominic ZimmerImplement `Memory Models` actionThis merge intends to implement the Memory Model action. I typed the protocol used (correctly, I hope), ported it to react and vastly overhauled the UI/UX.
I did not port/implement the Drag'n'Dropping of assertions as we are not using j...This merge intends to implement the Memory Model action. I typed the protocol used (correctly, I hope), ported it to react and vastly overhauled the UI/UX.
I did not port/implement the Drag'n'Dropping of assertions as we are not using jQuery and I planned to not change that. Since we can still rearrange assertions with the up and down arrows, I left it out (for now).
I'll be happy to fix any bug you guys may come across when playing around with the new implementation. In particular, I am looking forward to @fkosmale's comments!
Things left to (discuss whether or not to) be done:
- [ ] Implement drag'n'drop
- [ ] Use other means of inputting values from the user than `prompt()`Dominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/33Update stale execution information2021-12-06T11:05:17+01:00Fabian KosmaleUpdate stale execution informationIf a user has asserted multiple relations or values, he might repair the
state by removing any of them, not necessarily the last one. In that
case, we would get a list of valid executions, however the - now
outdated - error message would...If a user has asserted multiple relations or values, he might repair the
state by removing any of them, not necessarily the last one. In that
case, we would get a list of valid executions, however the - now
outdated - error message would still persist. Fix that by iterating over
the partial execution array and marking all of them as confirmed when
we get a new execution. This is slightly wasteful, because we update the
array for every new execution we get, but realistically speaking this
pales compared to the necessary rendering, and there won't be many
executions.
Test plan:
- Open https://pseuco.com/#/edit/remote/0eicrm56aorld6yvwz57
- Use the "Memory Model Analysis" action
- Add a "write-seen" assertion from the read to the write of 3.
- Add a "value was read" assert with value 2.
- Undo the "write-seen" assertion.
Without this patch:
- The error message is still there.
With this patch:
- The error is no longer there, as it should be.Dominic ZimmerDominic Zimmerhttps://dgit.cs.uni-saarland.de/pseuco/concurrent-programming-web/-/merge_requests/30Make best efforts to draft action/trace as Modal.2021-09-29T15:02:54+02:00Dominic ZimmerMake best efforts to draft action/trace as Modal.The broad structure for how to implement and type actions has been designed. Some actions have already been typed and implemented in React.
I'd like to merge the current state with a sidenote that further actions remain to be implemented.The broad structure for how to implement and type actions has been designed. Some actions have already been typed and implemented in React.
I'd like to merge the current state with a sidenote that further actions remain to be implemented.Felix FreibergerFelix Freiberger