-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathtodo.txt
More file actions
47 lines (36 loc) · 2.27 KB
/
todo.txt
File metadata and controls
47 lines (36 loc) · 2.27 KB
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
- Implement constant flags and allow native functions to pass them (for example, O_RDONLY or O_CREAT in @open)
- Kind of, but only for boolean literals. Nowhere else besides that though
Add in proper support for arrays and index over strings, arrays, etc. - Add standard test for this.
Add struct returns
add in the lsp fully
Fix Hover requests to be put in the right place
Fix Completion requests to not just hang and eventually crash (Infinite loop?)
NOTE: Read into the calling convention for the lsp to comminicat with vscode and nvim respectfully
NOTE: Good source for lsp integration
https://code.visualstudio.com/api/language-extensions/language-server-extension-guide
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/
Allow integer literals to be inferred into whatever size they need; kind of like the signedness except for char, longs, shorts, etc.
Also change templates to be inline for example 'fn<T> () {};' instead of '@template<T> fn () T {};'
look into adding in defer to the language.
A test for if adding TCP/HTTP requests
Change @input/@output to be @read/@write and make file descriptor manually declared (0 for stdin; 1 for stdout)
Pointers implemented now. Still backwards from C declarations tho but shh
- Implement sockets (HTTP requests ??)
- Note for HTTP:
- $ man 2 socket
@socket(DOMAIN, TYPE, PROTOCOL) ->
- the protocol of communication- IPv4 sized addresses
- the, well, type of connection- SOCK_STREAM = 'sequenced, reliable, two-way, connection-based byte streams'
- 0 lol
- on return : file descriptor
@bind(FD, *ADDR, ADDRLEN) ->
- file descriptor returned by @socket
- an address to a struct (the members don't really matter as it will just be type punned)
- sizeof previous struct
- on return : status code (success/error)
@accept(FD, *ADDR, *ADDRLEN) ->
- file descriptor returned by @socket
- these could technically be null if we wanted lol but its basically the same as @bind
Congratulations! Just read from the socket file descriptor and that is that.
Make sure to close it before reading another!
TRHEN WE AT VERSION 1 BABY!