Changes
Page history
Update Spring 2021
authored
Apr 06, 2021
by
Jonathan Goble
Hide whitespace changes
Inline
Side-by-side
Spring-2021.md
0 → 100644
View page @
cc1975dc
## **Week 1:** February 5 to February 10
-
Set up repo ✅
## **Week 2:** February 10 to February 17
-
Build system ✅
-
Book progress:
-
Chapter 14 code and notes ✅
## **Week 3:** February 17 to February 24
-
Book progress:
-
Chapter 15 code and notes ✅
-
Challenges:
-
Compressed line information ✅ (issue #30, merge request !2)
-
More than 256 constants ✅ (issue #31, merge request !3)
## **Week 4:** February 24 to March 10 (includes spring break)
-
Book progress:
-
Chapter 16 code and notes ✅
-
Chapter 17 code and notes ✅
-
Chapter 18 code and notes [EXTRA] ✅
-
Challenges:
-
String interpolation: determine syntax and tokenization ✅ (issue #33)
-
Ternary operator: write parsing code ✅ (issue #34, merge request !4)
-
Modulo and exponent operator [EXTRA] ✅ (issue #9, merge request !6)
-
Scientific notation and hexadecimal literals [EXTRA] ✅ (issue #4, merge request !7)
## **Week 5:** March 10 to March 17
-
Book progress:
-
Chapter 19 code and notes ✅
-
Chapter 20 code and notes ✅
-
Challenges:
-
String interpolation implementation ✅ (issue #33, merge request !8)
-
String escape sequences ❌ [moved to backlog] (issue #1)
-
Generic hash tables [stretch goal] ❌ [moved to backlog] (issue #35)
## **Week 6:** March 17 to March 24
-
Book progress:
-
Chapter 21 code and notes ✅
-
Chapter 22 code and notes ✅
-
Chapter 23 code and notes [stretch goal] ✅
-
Challenges:
-
Duplicate constant elimination ✅ (issue #36, merge request !9)
-
Ternary operator bytecode [stretch goal] ✅ (issue #34, merge request !4)
## **Week 7:** March 24 to March 31
-
Book progress:
-
Chapter 24 code and notes ✅
-
Challenges:
-
`break`
and
`continue`
statements ✅ (issue #22, merge request !10)
-
`switch`
statements ✅ (issue #38, merge request !11)
-
Native function improvements (merge request !13):
-
Arity checking ✅ (issue #40)
-
Errors from native functions [stretch goal] ✅ (issue #41)
-
Instruction pointer optimization [stretch goal] ❌ [moved to backlog] (issue #39)
## **Week 8:** March 31 to April 7
-
Book progress:
-
Chapter 25 code and notes ✅
-
Chapter 26 code and notes ✅
-
Chapter 27 code and notes ✅
-
Chapter 28 code and notes [stretch goal] ✅
-
Challenges (all in merge request !11):
-
Handling missing fields ✅ (issue #44)
-
Dynamic field access ✅ (issue #45)
-
Deleting fields ✅ (issue #46)
## **Week 9:** April 7 to April 14
-
Book progress:
-
Chapter 29 code and notes
-
Chapter 30 code and notes
-
Challenges:
-
`init()`
optimization (issue #47)
-
Resolve all merge conflicts and merge all branches into
`main`
-
Define opcode set for register-based bytecode (issue #32)
## **Week 10:** April 14 to April 21
-
Challenges:
-
Implement register-based bytecode (issue #32)
-
Begin generational garbage collector [stretch goal] (issue #43)
## **Week 11:** April 21 to April 28 (finals week)
-
Challenges:
-
Finish generational garbage collector (issue #43)
-
Generic hash tables [stretch goal] (issue #35)
## Summer
In order to keep my mind fresh on this, I plan to spend an average of about an hour per week over the summer on this. Some potential summer tasks:
-
Design a complete C API, including a way to define classes
-
Maybe implement part or all of it?
-
Design a standard library using that C API
-
Add basic collection types (issue #5)
-
At minimum, lists/arrays and dictionaries
-
???
## Backlog
The backlog has been moved to
[
this page
](
Backlog
)
and expanded to include potential future tasks for later implementation.
\ No newline at end of file