Difference between revisions of "User:Vikram Atreya/GSoC21/Log"
From BRL-CAD
m (→Weekly update - Coding Period) |
(Week 4 update) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
== Weekly update - Coding Period == | == Weekly update - Coding Period == | ||
* Week - 1 | * Week - 1 | ||
− | ** Day 1-2 | + | ** Day 1-2 |
*** Working version of undo command implemented in mged which prints name of database when command is given. | *** Working version of undo command implemented in mged which prints name of database when command is given. | ||
*** Understood how commands use wrapper functions and function of cmd_ged_plain_wrapper() | *** Understood how commands use wrapper functions and function of cmd_ged_plain_wrapper() | ||
Line 14: | Line 14: | ||
*** Understood how hidden objects work, have to explore temporary file alternative to save backup objects | *** Understood how hidden objects work, have to explore temporary file alternative to save backup objects | ||
*** Stuck, trying to iterate over all objects in database but not finding the right function | *** Stuck, trying to iterate over all objects in database but not finding the right function | ||
+ | *** Finally found way to iterate over all objects from move_all.c | ||
+ | *** Converted undo.c to undo.cpp so that code can be more functional | ||
+ | ** Day 3-4 | ||
+ | *** Had a discussion with my mentor how to proceed further on the undo | ||
+ | *** Data accesible over all processes stored in _GLOBAL as name, value pairs | ||
+ | *** Name of the last added object and last killed object stored in _GLOBAL | ||
+ | *** Wrappers of make and kill modified to add the labels | ||
+ | *** Introduced 3 variables in undo.cpp to keep track of latest_change and then take necessary action to undo | ||
+ | ** Day 5-6 | ||
+ | *** Enabled undo for in command; Now working to enable undo for killall | ||
+ | *** Did tutorials to understand how combinations and regions work | ||
+ | *** Went in the wrong direction intially; Took a day to understand how combinations are stored | ||
+ | * Week - 2 | ||
+ | ** Day 1-2 | ||
+ | *** Encountered many bugs while implementing undo for killall | ||
+ | *** Ubuntu had some problems; mouse and keyboard stopped working and stopped work for sometime | ||
+ | *** Tired refactoring code of backup storage for make; Chose to make a gmd_cmd for it but did not happen, also felt it was not the best option | ||
+ | *** Succesfully implemented undo for kill by modifying code in libged/killrefs; Might have to write a new wrapper for this | ||
+ | *** Created new wrapper for g (group) command and implemeted undo for it; Some refinement left here | ||
+ | ** Day 3-4 | ||
+ | *** Refined code of g cmd undo and updated PR | ||
+ | *** Attempt at reefactoring code to libged/undo.cpp failed; Not right place to put the code | ||
+ | *** Refactored make's undo code into mged/utility1.c and replaced code in make, in and g | ||
+ | *** Solved major bug that made children objects disappear when any object was killed | ||
+ | *** logic: renamed all leaves by adding sufffix, thereby poiting to imaginary objects and not hiding the references it had previously | ||
+ | ** Day 5-6 | ||
+ | *** Implemented undo for mv and mvall | ||
+ | *** Also restructured code in undo.cpp to accommodate more cmds easily | ||
+ | *** Made a spreadsheet with status of implementation for all commands | ||
+ | |||
+ | * Week - 3 | ||
+ | ** Day 1-2 | ||
+ | *** Solved a long pending bug | ||
+ | ** Day 3-4 | ||
+ | *** Took a break | ||
+ | ** Day 5-6 | ||
+ | *** Started work on storing objects as data in binary objects | ||
+ | *** Understood code of mk_binunif, make and libged/bo.c | ||
+ | |||
+ | * Week - 4 | ||
+ | ** Day 1-2 | ||
+ | *** Done writing basic test to store and recover objects from a binary object | ||
+ | *** Stored internal data in binary object, storing external data is better since it contains type information as well | ||
+ | *** Switched code from storing internal to external of object | ||
+ | ** Day 3-4 | ||
+ | *** Ideated and tried different ways in which we could store the recovery data | ||
+ | *** Wrote code implementing a new struct in ged/defines.h | ||
+ | *** Mimicked history implementation for the struct | ||
+ | ** Day 5-6 | ||
+ | *** Implemented undo using the struct but realized it would not work | ||
+ | *** Thought of using char** arrays to store the commands | ||
+ | *** Have to discuss with mentor on a better approach |
Latest revision as of 15:01, 5 July 2021
Development Logs[edit]
Community Bonding Period[edit]
- Forked github repo and compiled working version of BRL-CAD
- Made the pages for project plan and dev logs
- Ideated various ways to implement undo and set constraints
Weekly update - Coding Period[edit]
- Week - 1
- Day 1-2
- Working version of undo command implemented in mged which prints name of database when command is given.
- Understood how commands use wrapper functions and function of cmd_ged_plain_wrapper()
- Set flags -n and -h aimed to execute multiple undos and show usage respectively
- Understood how hidden objects work, have to explore temporary file alternative to save backup objects
- Stuck, trying to iterate over all objects in database but not finding the right function
- Finally found way to iterate over all objects from move_all.c
- Converted undo.c to undo.cpp so that code can be more functional
- Day 3-4
- Had a discussion with my mentor how to proceed further on the undo
- Data accesible over all processes stored in _GLOBAL as name, value pairs
- Name of the last added object and last killed object stored in _GLOBAL
- Wrappers of make and kill modified to add the labels
- Introduced 3 variables in undo.cpp to keep track of latest_change and then take necessary action to undo
- Day 5-6
- Enabled undo for in command; Now working to enable undo for killall
- Did tutorials to understand how combinations and regions work
- Went in the wrong direction intially; Took a day to understand how combinations are stored
- Day 1-2
- Week - 2
- Day 1-2
- Encountered many bugs while implementing undo for killall
- Ubuntu had some problems; mouse and keyboard stopped working and stopped work for sometime
- Tired refactoring code of backup storage for make; Chose to make a gmd_cmd for it but did not happen, also felt it was not the best option
- Succesfully implemented undo for kill by modifying code in libged/killrefs; Might have to write a new wrapper for this
- Created new wrapper for g (group) command and implemeted undo for it; Some refinement left here
- Day 3-4
- Refined code of g cmd undo and updated PR
- Attempt at reefactoring code to libged/undo.cpp failed; Not right place to put the code
- Refactored make's undo code into mged/utility1.c and replaced code in make, in and g
- Solved major bug that made children objects disappear when any object was killed
- logic: renamed all leaves by adding sufffix, thereby poiting to imaginary objects and not hiding the references it had previously
- Day 5-6
- Implemented undo for mv and mvall
- Also restructured code in undo.cpp to accommodate more cmds easily
- Made a spreadsheet with status of implementation for all commands
- Day 1-2
- Week - 3
- Day 1-2
- Solved a long pending bug
- Day 3-4
- Took a break
- Day 5-6
- Started work on storing objects as data in binary objects
- Understood code of mk_binunif, make and libged/bo.c
- Day 1-2
- Week - 4
- Day 1-2
- Done writing basic test to store and recover objects from a binary object
- Stored internal data in binary object, storing external data is better since it contains type information as well
- Switched code from storing internal to external of object
- Day 3-4
- Ideated and tried different ways in which we could store the recovery data
- Wrote code implementing a new struct in ged/defines.h
- Mimicked history implementation for the struct
- Day 5-6
- Implemented undo using the struct but realized it would not work
- Thought of using char** arrays to store the commands
- Have to discuss with mentor on a better approach
- Day 1-2