-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlog.yml
115 lines (103 loc) · 3.32 KB
/
log.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Project: Silk
Description: A reference implementation to the HCLAN language in C
Author: M.V.Harish Kumar
Date Started: 17 January, 2024
Note : |
This log is written as a way to track the progress of the project.
Since this project takes a very long time to complete, logging the progress of
this project is helpful when developing later.
This reference implementation is written in C, in accordance with the clox language.
Development workflow: |
Since the documentation for the Silk language is not yet fully completed(as of writing),
the development workflow of the project should be as follows:
- Create documentation for the implemented part of language.
- Implement that part of the language.
- If any errors, or bugs, create an issue until the problem is fixed.
- Make sure that the documentation is in accordance with the implementation.
---
Day: 1
Date: 17-01-2024
Level: null
Log:
- Initialized project
- Initialized document
---
Day: 2
Date: 02-02-2024
Level: [14, 15, 16]
Log:
- Created a basic skeleton for the Bytecode Interpreter
- Added support for storing 2^24 constants for a chunk
- Added a new VM for code execution
- Added support for Modulo and Power operations
- Added support for processing Long Constant types
- Added scanner and compiler interfaces with support for recognizing all HCLAN tokens
- Added simple frontend
---
Day: 3
Date: 03-02-2024
Level: [17]
Log:
- Added a functional Pratt expr parser
- Tweaked the code to support long constant types
- Added temporary support for parsing right associative power operator
---
Day: 4
Date: 04-02-2024
Level: [18, 19, 20, 21]
Log:
- Changed the default compiler from MSVC to TCC
- Changed the Makefile to support it
- BUG: Corrcted precedence of the power operator
- Added support for basic immutable types (bool, number, null)
- Added support for strings and its operation(concat, repeat)
- Included (a minimal) GC implementation
- Added a hash table implementation
- BUG: Added makeConstant function with support for long consts
- Added support for global variables and statements
---
Day: 5
Date: 01-05-2024
Level: [22]
Log:
- Added support for local variables and block statements
- IMPORTANT: removed support for println statement; use print statement instead
- Added support for conditional statements and logical operators
---
Day: 6
Date: 03-05-2024
Level: [23]
Log:
- Added support for ternary if Expression operator
- Added support for both single and double quotes
- Added while and for loops
- Added support for break and continue statements
- Added support for augumented assignment operators and postfix increment/decrement operators
---
Day: 7
Date: 04-05-2024
Level: [24]
Log:
- Added support for function declarations and function calls
- Added support for Native functions
- Added native functions like
- [input, chr, ord, clock, exit, int, float, str, type]
- Added multi-parameter support for print statement
---
Day: 8
Date: 05-05-2024
Level: [25]
Log:
- Added expression printing feature for REPL mode
- Added newline supresssion for print statement
- Added fmt native function
- Added support for closures
---
Day: 9
Date: 28-05-2024
Level: [26, 27, 28]
Log:
- Added GC support
- Fixed bug in print statement.
- Added Minimal Class support
- Added support for method calls