-
Notifications
You must be signed in to change notification settings - Fork 7
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
605 hide collaboration functioanlity #612
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Dammshine
force-pushed
the
605-hide-collaboration-functioanlity
branch
from
March 17, 2024 16:49
8e5cba9
to
3ec6a3c
Compare
Dammshine
added a commit
that referenced
this pull request
Mar 18, 2024
* Development mode layout (#497) * Dev mode page layout, tabs component * follow export conventions * Fix css indentation * Removed package lock because there are merge conflicts in that file :/, gonna regenerate * Resolved merge conflicts, placed David's Visualiser on Luke's UI layout * Ran lint-fix, there are some issues i can't resolve tho :/ --------- Co-authored-by: jedwed <[email protected]> * add rm * chore(deps): update dependency eslint-config-prettier to v9 (#502) * Override react-json-view dependency * chore(deps): update dependency eslint-config-prettier to v9 * Update lock --------- Co-authored-by: Joanna Lin <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency typescript to v5 (#479) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency vite-tsconfig-paths to v4 (#481) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update vite & plugins to v4 (#484) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency prettier to v3 (#494) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency eslint-plugin-prettier to v5 (#495) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v6 (major) (#496) * chore(deps): update dependency eslint-plugin-prettier to v5 * Update eslint-config-airbnb-typescript version * chore(deps): update typescript-eslint monorepo to v6 --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Joanna Lin <[email protected]> * fix(deps): update weekly patch updates (#486) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update weekly minor updates (#487) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): lock file maintenance (#488) * chore(deps): lock file maintenance * Add further overrides for peer dependency of react-json-view --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Joanna Lin <[email protected]> * fix(deps): update dependency @radix-ui/colors to v2 (#504) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v6 (#506) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * David/linked list (#503) * add prog * add prog * upload latest progress * refactor css and width height svg * give great type def for drawable objects * add prog * add code to pass prop to drawable * add pos for node * refactor drawable objects * add animation to node * add edge sim effect * add zustland * server port 8001 -> 8000 * fix * remove pack * update package --------- Co-authored-by: david zhou <[email protected]> Co-authored-by: david zhou <[email protected]> Co-authored-by: Gordon Huang <[email protected]> * Add user variable vsiualization (#517) * add pointer drawable * remove vs setting * gitignore c samples --------- Co-authored-by: david zhou <[email protected]> Co-authored-by: Gordon Huang <[email protected]> * Debugger (#508) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: shubh <[email protected]> Co-authored-by: edward <[email protected]> * Struct definitions parser (#518) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance * parse struct definitions --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: shubh <[email protected]> Co-authored-by: edward <[email protected]> * Code editor (#519) * created code editor with syntax highlighting * Insert editor into layout * fix visualiser layout * switch back to light theme for consistency with json view * placeholder run button * debugger server send backend_dict as object not string --------- Co-authored-by: Audrey Tanama <[email protected]> Co-authored-by: Gordon Huang <[email protected]> * chore(deps): update actions/checkout action to v4 (#520) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * add some unfinished class * add pane and pos * add tree vis * Added basic login functionality and registering users * small register ui fix * cleaned up server url as constant * Debugger: Capture Output (#525) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance * Input intercepting from c stdout (#523) * Added files for printing * remove unused directory * move to appropriate .gitignore file * add printing.c make target * update instructions for execute printing.py --------- Co-authored-by: Gordon Huang <[email protected]> --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: shubh <[email protected]> Co-authored-by: edward <[email protected]> Co-authored-by: James Treloar <[email protected]> * fixed login to have unique logins * merging * Add rows to dummy data * Remove table styling * Change dummy data format to include stack frames * added login and register functions * removed error catching in login * Started <dl>-based stack inspector layout * Stack data collection (#529) * Stack data function complete * Frame info function * Added current line to stack information * Commented out testing on stack varaible collection (#530) * Implemented IO manager * IO manager class * Cleaned up issues with test_io * Js/database (#528) * Created Basic connection to Mongodb using express and node.js * renamed server.ts to index.ts and added mongodb connection * Completed mongodb connection with basic routes * using axios library added save function to create menu to save linked list data * renamed files and removed test files * added reloading function for linked list * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * commiting for pull * contructing tree from pre order traversal * added toggle loadoptions context into visualiser context * adding login thing * added simple login ui with initial login backend funcionalitly * Added basic login functionality and registering users * small register ui fix * cleaned up server url as constant * fixed login to have unique logins * merging * added login and register functions * removed error catching in login * Changed server URL port to 8001 so that 3000 is free for the frontend * Add linting to backend server + ran lint fix on client + replace yarn with npm --------- Co-authored-by: Jin Sunwoo <[email protected]> Co-authored-by: edward <[email protected]> * Interactive `next` (#531) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * Create program * Extracted malloc line and compiled * Detect whether or not malloced was called on a line of C code * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance * Created basic script to print malloc info * document get_type_decl_ast() * resolve merge * create stack frames test c file * function for extracting stack frame info * support incremental user interaction for custom gdb command `my_next` * fix: enable socketio client in gdb instance to send to server (#532) * clean up * resolve merge --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: shubh <[email protected]> Co-authored-by: edward <[email protected]> * Interactive next execution (#533) * integrate stack data extractor into execute next * integrate program output reader via pty into interactive next execution * clean up * Shubh/debugger/malloc (#515) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * Create program * Extracted malloc line and compiled * Detect whether or not malloced was called on a line of C code * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance * Created basic script to print malloc info * resolve merge * Recompiled program * Modified variable extraction from pycparser * Removed buggy stub file * Created test script to determine how to access ast data * Got variable from ast malloc assignment for simple assignment, and pointer declaration AND initialisation with malloc * Implemented recursive variable extraction from ast for variables of the form l->next->next->next..., etc * Accounted for all variable assignment methods for intercept malloc function * Modified sample c code * modified test data * got free detection working * created new sample file to test intercept free function * rename c files used for pycparser * some cleanin up * Got byte allocation extraction working from malloc * Got variable type but unformatted * Created sample script to extract the struct name from the ptype output for a struct node * Got type extraction working for all structs (but might break on e.g. heap arrays) * Got address extraction working by printing $ (last evaluated expression) * Added try block on parser to execute 'next' if line cannot be parsed * Update linked_list_things.py * merge dev * resolve merge --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: edward <[email protected]> Co-authored-by: Gordon Huang <[email protected]> Co-authored-by: Gordon Huang <[email protected]> Co-authored-by: Shubh <[email protected]> * Update sample file * create DebugSession class * extend DebugSession class to handle commands previously in gdb script * fix parse user-defined types and typedefs * Embed stack inspector into dev page with dummy data * push * clean up tree visualizer prototype * Debugger: Capture Output (#525) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance * Input intercepting from c stdout (#523) * Added files for printing * remove unused directory * move to appropriate .gitignore file * add printing.c make target * update instructions for execute printing.py --------- Co-authored-by: Gordon Huang <[email protected]> --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: shubh <[email protected]> Co-authored-by: edward <[email protected]> Co-authored-by: James Treloar <[email protected]> * Stack data collection (#529) * Stack data function complete * Frame info function * Added current line to stack information * Commented out testing on stack varaible collection (#530) * Implemented IO manager * IO manager class * Cleaned up issues with test_io * Js/database (#528) * Created Basic connection to Mongodb using express and node.js * renamed server.ts to index.ts and added mongodb connection * Completed mongodb connection with basic routes * using axios library added save function to create menu to save linked list data * renamed files and removed test files * added reloading function for linked list * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * commiting for pull * contructing tree from pre order traversal * added toggle loadoptions context into visualiser context * adding login thing * added simple login ui with initial login backend funcionalitly * Added basic login functionality and registering users * small register ui fix * cleaned up server url as constant * fixed login to have unique logins * merging * added login and register functions * removed error catching in login * Changed server URL port to 8001 so that 3000 is free for the frontend * Add linting to backend server + ran lint fix on client + replace yarn with npm --------- Co-authored-by: Jin Sunwoo <[email protected]> Co-authored-by: edward <[email protected]> * Interactive `next` (#531) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * Create program * Extracted malloc line and compiled * Detect whether or not malloced was called on a line of C code * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance * Created basic script to print malloc info * document get_type_decl_ast() * resolve merge * create stack frames test c file * function for extracting stack frame info * support incremental user interaction for custom gdb command `my_next` * fix: enable socketio client in gdb instance to send to server (#532) * clean up * resolve merge --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: shubh <[email protected]> Co-authored-by: edward <[email protected]> * Interactive next execution (#533) * integrate stack data extractor into execute next * integrate program output reader via pty into interactive next execution * clean up * Shubh/debugger/malloc (#515) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * Create program * Extracted malloc line and compiled * Detect whether or not malloced was called on a line of C code * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance * Created basic script to print malloc info * resolve merge * Recompiled program * Modified variable extraction from pycparser * Removed buggy stub file * Created test script to determine how to access ast data * Got variable from ast malloc assignment for simple assignment, and pointer declaration AND initialisation with malloc * Implemented recursive variable extraction from ast for variables of the form l->next->next->next..., etc * Accounted for all variable assignment methods for intercept malloc function * Modified sample c code * modified test data * got free detection working * created new sample file to test intercept free function * rename c files used for pycparser * some cleanin up * Got byte allocation extraction working from malloc * Got variable type but unformatted * Created sample script to extract the struct name from the ptype output for a struct node * Got type extraction working for all structs (but might break on e.g. heap arrays) * Got address extraction working by printing $ (last evaluated expression) * Added try block on parser to execute 'next' if line cannot be parsed * Update linked_list_things.py * merge dev * resolve merge --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: edward <[email protected]> Co-authored-by: Gordon Huang <[email protected]> Co-authored-by: Gordon Huang <[email protected]> Co-authored-by: Shubh <[email protected]> * clean up * render tree * clean up * update import * fix width height * Shubh/debugger/malloc (#515) * Setup new branch and requirements * Added a global gitignore * Added the basic test files * Modified backend server to send linked list data to the client * Feat/canvas scroll zoom (#491) * Added scroll to zoom, currently uncentered and not smooth * Set origin for transformations the center, reduced zoom speed * Added transition for transformations on svg * Fixed lint issues * Replaced magic numbers in VisualiserCanvas with constant variables * Created MUI styled component for ZoomableSvg to avoid inline styling * Fixed lint issue, import styled from @mui/material/styles rather than @mui/system * Changed navbar position to be sticky on the visualiser page such that the canvas is behind the navbar * Added getBreakpoints socket connection * Fixed getBreakpoints socket * update eslint working directories * change unused vars eslint to warn * forwardRef Tabs component * docker debugger install nodemon to restart python server.py on save * move python script to separate file and source it in gdb * add treelike linked list test case * write up linked list sample c programs * update program.c * make use of websocket event getBreakpoints * modify args in server to account for multiple line numbers, files * use nodemon for autocompile and start python server * mock up custom step operation * update linked list example c files * gdb + python pseudo-scripting * add debugger readme * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * Create program * Extracted malloc line and compiled * Detect whether or not malloced was called on a line of C code * Debugger: code parser (#513) * docker documentation * makefile for compiling sample c programs * readme for sample c programs * compile and debug instructions * write function declaration parser * script preprocess c file before parsing function decls * remove nodemon from debugger for watching edits to .py doesnt seem to work * update debugger readme * add pycparser python dependency to docker * add types and typedefs to generated c files for func decl parser to work * prevent buggering python server output so that docker will log it immediately * add python package requirements for requests package * update custom next command pseudocode * add socketio event to handle compiling multi-file c program and running gdb script to extract user-defined function declarations * implement function declarations parser python script for running in gdb * extract placeholder heapdict data and change subprocess gdb start method * add to .gitignore * use subprocess.Popen to start gdb instance instead of subprocess.run, to support gdb interactive mode * docker mount /debugger/src and restructure debugger files * use relative paths to c file in gdb python command * visitors * clean up * send structs and typedefs from gdb instance -> server -> FE client * FE attach socketio event handler to receive parsed types from debugger * refactor vistor pattern with inheritance * Created basic script to print malloc info * resolve merge * Recompiled program * Modified variable extraction from pycparser * Removed buggy stub file * Created test script to determine how to access ast data * Got variable from ast malloc assignment for simple assignment, and pointer declaration AND initialisation with malloc * Implemented recursive variable extraction from ast for variables of the form l->next->next->next..., etc * Accounted for all variable assignment methods for intercept malloc function * Modified sample c code * modified test data * got free detection working * created new sample file to test intercept free function * rename c files used for pycparser * some cleanin up * Got byte allocation extraction working from malloc * Got variable type but unformatted * Created sample script to extract the struct name from the ptype output for a struct node * Got type extraction working for all structs (but might break on e.g. heap arrays) * Got address extraction working by printing $ (last evaluated expression) * Added try block on parser to execute 'next' if line cannot be parsed * Update linked_list_things.py * merge dev * resolve merge --------- Co-authored-by: James Treloar <[email protected]> Co-authored-by: edward <[email protected]> Co-authored-by: Gordon Huang <[email protected]> Co-authored-by: Gordon Huang <[email protected]> Co-authored-by: Shubh <[email protected]> * Update heap dictionary working for struct node and struct list * Updated main3.c with comments for lines that gdb script breaks on * Modified sample c file * . * Configuration tab added, users can annotate linked list variables and data type * fix visualizer * Replace contentEditable spans with input fields * remove redundant code * gdb call setbuf(stdout, NULL) * clean up gdb scripts * clean up gdb scripts * cast heap structs to the correct user-defined types for reading field values * split devmode interface into two operations: execute next for dummy data, and execute next on debugger * gracefully handle end of dummy data * clean up * Get backend working for testing stack inspector * Modified main3 for debugging * Removed dummy data emmission to prevent code from breaking after 10 nexts * Structs updating heap working and sample program modified * Add struct_test sample program * . * remove gitignored files from cache * Map each type declaration received into a row + select menu * Check if type declarations are self referencing to detect potential linked list types * Add radio group for users to select linked list type and select menu to select data and next fields * Users select between a struct's fields instead of between 'Next Node' and 'Node Data', store all node annotations * Handle updating state of node annotations * Change font of node names and field names to monospace * Refactor: move select drop down into its own component * Reduced Select Trigger height to prevent overlap * Add C syntax highlighting to linked list node type declarations * undelete important stuff * remove useless package-lock * important fixes * Update code mirror version to prevent type error on mouse events * Run button emits 'mainDebug' event on click, remove unnecessary next event emit on connection * Debugger server accepts code, compiles and debugs code sent to 'mainDebug' * transition to new backend types and integrate into FE * Added empty directory for the debugger server to write received code to * Add user directory to .gitignore to prevent received code from the server being pushed * Rename linked_list_things.py to custom_next.py * use type annotator to annotate user-defined structs and integrate into linked list visualiser * Heap dictionary generalised to work with all structs, not just struct node or struct list * Removed unnecessary backup file * Replace code mirror with react-ace editor * Code editor highlights current line of the frame * Debugger send frame line_num as integer instead of string * Fix type annotator to check if a linked list node references itself * Fixed .eslintrc.json and run lint-fix * coerce debugger heap_data format into new backend type system.. LINKED LIST VISUALISED * resolve visible eslint errors * refactor type * refactor type * fix all types * coerce debugger stack data into correct format * coerce debugger stack data into correct format (#547) * Revert "coerce debugger stack data into correct format (#547)" (#548) This reverts commit 16f375bdf546f319434da1c86f49fcba0ae25d1b. * fix extract struct typename * refactor uistate usage * fix react error * move logic to uistate store * move logic to uistate store * move update annotation to store * rename global store * coerce structs on stack from debugger into format of new backend type system * move things into global store * moving type declration into global store * Console frontend * update sample stack_frames.c program * fix some eslint errors * send FE user input to gdb tty stdin via IoManager * rename\remove some files * debugger send typedecls in correct format according to backend type system * UI UX Enhancements (#554) * Add NavBar and About Dialog for Development Mode * Added linked list program from COMP1511 Programming Fundamentals as a placeholder for the editor * Move compile button and next button onto Controls component at the bottom of the visualiser * Visualiser canvas fills entire pane * Initialize backend state to undefined rather than placeholder * Add autocompletion and snippets to code editor, change highlight color to be lighter * Disable Next button until there is an active session * Reset backend state, type declarations and annotations when user clicks 'Compile' * Move 3 tabs such that the Configure tab is the default, add link to COMP1511 lecture code for users to test debugger with * Run npm lint --fix * Modified z-index of dialog such that the overlay is on top of ace scrollbars and gutter * fix errors * sabe * fix debugger type stuff --------- Co-authored-by: david zhou <[email protected]> Co-authored-by: Gordon Huang <[email protected]> * detach event handler onExecuteNext after DevMode component unmount * rearrange files (#555) * rearrange files * small fixes --------- Co-authored-by: david zhou <[email protected]> Co-authored-by: Gordon Huang <[email protected]> * Prepare for deployment: create new debugger Dockerfile for deployment and modified frontend debugger URL * Escaped newline in placeholder C program * try debugger request user input * Added .env containing environment variable for debugger server URL * Handle compilation errors (#556) * Debugger server emits compileError event on compilation error with stderr as message * On compilation error, switch the tab to the console for user to see stderr * Run lint --fix * console styles * reduce timout duration * CTF challenge for projects fair (#558) * Removed .env from client * Add CTF challenge for projects fair * Changed linked list word from olli to dev after the groundbreaking realisation that ollie is actually spelt with an 'e' at the end * parse char in struct fields * Make console output persistent by moving it out to DevelopmentMode.tsx, compilation errors are now displayed in console * Changed console error text to red, compilation occurs in directory to prevent displaying absolute file paths in compilation * error text smaller * David/stack annotator (#561) * add accordian * writing type declration for one * add editor type * remove unused code * make sure it update user annotation in global store * make pointer to work * cheat user * show user can zokom in zoom ouy * automatic annotate possible linked list node * overflow scroll for type annotator --------- Co-authored-by: david zhou <[email protected]> Co-authored-by: david zhou <[email protected]> Co-authored-by: Gordon Huang <[email protected]> * Remove directory if compilation fails, Moved development mode to base path * add placeholder programs * prevent displaying flag after initial view * sample program selector * rename files and format locals annotation * display about text in filetree, temporary * saving datastructures under users * main3.dSYM fixed merge conflicts with main3 * Add default backend URL * added permalink functionality * Added basic code to extract free variable * Finished intercept free (need to fix up style) * Intercept free done * delete unnecessary ptype file * Bug-fix for reading return statement * fixed style * ran lint * creating link for data strucutre * lint fixes * made fetching logic be part of server * Remove unnecessary yarn.lock files and vite.config.timestamp files * Refactor link generation and data structure display to use .map() Strictly typed integerArray in VisualiserPage * Dockerise collaboration server * remove redundant dockerfile commands * fix python module imports * fixed up ui for loading and saving (#577) Co-authored-by: Jin Sunwoo <[email protected]> * Hotfix: fix utils.py to import from src * Feature/collab/file system (#578) * Feature/visualiser/panning (#522) * Panning complete, need to adjust viewBox to have the correct height and width * Panning pointer events handled by visualiser container rather than SVG * Remove commented out console.log statements in VisualiserCanvas * import React to fix eslint error react/react-in-jsx-scope * Limit x and y of viewbox to prevent infinite panning * Add onPointerLeave event listener to stop panning if mouse exits visualiser container * added file creation route to server * added user files folder * added route to retrieve files * added file uploading to dev mode, pls ignore messy code will refactor later :O * connected backend to adding workspaces and changed button pos * refactored workspaces and files and added route for fetching files * removed dead code * added file modification and saving, (concurrency issues) * connected backend to file creation * file creation and fixed some bugs * Removed node_modules * npm run lint-fix on client and server directories --------- Co-authored-by: edward <[email protected]> Co-authored-by: Ben Patel <[email protected]> * David quick task (#573) * save * improve scale * imporve center posiion * adding lock view button * add the lock-view functionality * make annotation update the state * remove console * fix conflict * improve uiux for svg comp * add background transition * dynamically sizing svg * adjust node sizing * remove hover effect as its for debug * add bold * make it wokr on smaller screen * remove ignore * add more gap in y-dir --------- Co-authored-by: david zhou <[email protected]> Co-authored-by: david zhou <[email protected]> * change workspace and sample c programs * add * Hotfix: Removed unnecessary @material-ui dependency * feat: Add devsoc name and replace most csesoc references * updated samples * chore(cd): use new cluster for cd * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * David cleanup frontend (#595) * refactor attachable entity * refactor entity to use same name * refactor drawable * refactor entity * add comment for CTF code * mod name * mod name * addr CodeEditor * addr FileTree * refactor name * refactor types * improve docs --------- Co-authored-by: david zhou <[email protected]> * clean up stack stub code from state * improve frontendStateStore (#606) Co-authored-by: david zhou <[email protected]> * 605 hide collaboration functioanlity (#610) * add back homepage * revert back font default color to whit * rearrange file locations * introduce devMode state => for releasing new feature that won't deploy * change to isDev => is in development --------- Co-authored-by: david zhou <[email protected]> * 605 hide collaboration functioanlity (#612) * disable no-plusplus * fix lint for graphical tree generator * fix lint * fix logi * add a pre-merge action * remove unused * adjust ci * fix tabs * add ignoreRestSibling option * fox unused var lint * fix format * ignore workspace selector * fix util * console rework * fix create link --------- Co-authored-by: david zhou <[email protected]> * chore(deps): lock file maintenance --------- Co-authored-by: Luke Fisk-Lennon <[email protected]> Co-authored-by: jedwed <[email protected]> Co-authored-by: david zhou <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Joanna Lin <[email protected]> Co-authored-by: david zhou <[email protected]> Co-authored-by: Gordon Huang <[email protected]> Co-authored-by: david zhou <[email protected]> Co-authored-by: Gordon Huang <[email protected]> Co-authored-by: James Treloar <[email protected]> Co-authored-by: shubh <[email protected]> Co-authored-by: Audrey Tanama <[email protected]> Co-authored-by: david zhou <[email protected]> Co-authored-by: david zhou <[email protected]> Co-authored-by: Jin Sunwoo <[email protected]> Co-authored-by: James Treloar <[email protected]> Co-authored-by: Jonah Hopkin <[email protected]> Co-authored-by: JinTheHuman <[email protected]> Co-authored-by: Shubh <[email protected]> Co-authored-by: Shubh <[email protected]> Co-authored-by: david zhou <[email protected]> Co-authored-by: Ben Patel <[email protected]> Co-authored-by: Ben Patel <[email protected]> Co-authored-by: Bob Chen <[email protected]> Co-authored-by: Jared L <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.