-
Notifications
You must be signed in to change notification settings - Fork 0
Meeting Minutes
We schedules a weekly meeting together with our supervisor, Thomas Bocek. The meeting takes place every Thursday at 10:20 a.m. CET in Thomas' office.
If not mentioned otherwise, the following people did attend to the meeting: Remo Pfister, Keerthikan Thurairatnam, Thomas Bocek.
Topic: Kickoff Meeting
Goal:
- First introduction to the topic
- Gather required information
- Specify which project methods and technologies will be used
- Move Repo to Bazo Repo
- Give Thomas an Overview over the current project state (Structure, Documents a.s.o.)
- (Maybe) Define core features of the language which the minimal compiler should fulfill
Questions & Answers:
- Definition of Task (Aufgabestellung)
Proposals:
- Use an agile project management method
- Use Minimum Viable Product to build software
- Use Go as programming language
- Use Travis CI
- Use Sonar Cube
Conclusion & Decisions:
- @OffChain: Client Local Variables (Not stored in Blockchain)
- Primary Goal is to have a running MVP
Weekly Goal:
- Define the Task, create Project Structure, integrate CI and SonarCube and finish project plan and risk analysis
Topic: Define core language features
Goal:
- Give Thomas an Overview over the current project state (Structure, Documents a.s.o.)
- Define core features of the language which the minimal compiler should fulfill
Questions & Answers: See https://github.com/bazo-blockchain/lazo/wiki/Core-Feature-Proposal
Weekly Goal:
- Implement Lexer for the core features
Topic: Lexer & Parser
Goal:
- Present the current state of Lexer & Parser
Weekly Goal:
- Complete Lexer & Parser implementations
Topic: Checker
Goal:
- Code feedback from Thomas
- Present the current state of Checker (Symbol construction phase)
- Discuss Checker Rules for the first version
Weekly Goal:
- Complete Checker implementation
Topic: Checker & Code Generator
Absent: Remo Pfister
Goal:
- Present the current state of Checker (Type Resolution, Designator Resolution & Type Checker)
- Discuss about VM integration and contract execution on blockchain
Decisions:
- Function hash: first 4 bytes of SHA-3 hash of return types, function name and parameter types
()test()
(int)test(int,bool)
(int,int)test(int,bool)
- Differentiate between constract creation and function call at the beginning of the byte code
- Contract creation --> jump to constructor
- Function call --> jump to function (VM doesn't support this at the moment. It requires a map of function hash and byte position on contract)
Weekly Goal
- Generate Bazo byte code
Topic: Code Generator
Goal:
- Present the current state of Generator
- Discuss about the issues with the Bazo VM and next steps
Decisions:
- Adapt and extend the current Bazo VM for better high-level language support
Weekly Goal
- Technical documentation of the current compiler version
Topic: Technical Documentation
Goal:
- Present the technical documentation
Decisions:
- Refactor lazo compiler
- Fix Bazo VM issues and extend the opcodes
Weekly Goal
- Finish documentation
- Refactoring
Topic:
- Lazo Refactoring
- Bazo VM fixes and improvements
- Update Lazo Generator with the new opcodes
Questions:
- LoadSt changes: https://github.com/bazo-blockchain/bazo-vm/issues/4
Decisions:
- New compiler features are defined: https://github.com/bazo-blockchain/lazo/wiki/Feature#additional-features-sorted-by-implementation-order
Weekly Goal
- Fix VM and Miner
- Implement new compiler features one after the other
The meeting did not take place.
Topic:
- What we have done in the past two weeks
- Bugfixes in VM & Miner
- Go Module Usage in VM & Miner
- Reference Types in the VM
Questions:
Decisions:
- We created Github Issues for the troubles discussed
Weekly Goal
- Fix VM and Miner
- Implement structs and arrays as far as we get
The meeting was postponed to friday afternoon.
Topic:
- SetContractVariables in Miner had an implementation issue
- Solution for Struct Initialization Loops (Person in Person). Null Type, Nil in Background or Default Struct.
- Feature Priorization
Questions:
- Should we implement structs using null types, nil or with a default struct?
- Are null checks now required?
- Should we allow Contract variables initialization outside of the construction or functions?
Decisions:
- We will try to use default structs to break the initialization loop. To do this, big changes in the vm are required, therefore an issue is created.
Weekly Goal
- Fix VM and Miner
- Implement new compiler features one after the other
Topic:
- Status Update
- Issues we have with arrays
Weekly Goal
- Implement further features
The meeting did not take place as Thomas was at a conference.
Topic:
- Abstract + Management Summary
- Presentation
- Show current state of documentation and code
- Feature Freeze
- Feature Priorization
- Individual Reports
Questions:
- How long should the presentation be?
Decisions:
Weekly Goal
- Implement and Test Generator for Expressions