-
Notifications
You must be signed in to change notification settings - Fork 2
/
todo_skipped.nim
171 lines (156 loc) · 7.56 KB
/
todo_skipped.nim
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#[
## even newer list of todos
- stop doing the async stuff and finish off nim in action book notes
- js backend
- foreign function interface
- templates
- macros
- [read this book before mastering nim](https://ssalewski.de/nimprogramming.html#_about_this_book)
- [figure out what genode is](https://genode.org/)
- [nim has a dir dedicated to genode](https://github.com/nim-lang/Nim/tree/devel/lib/genode)
- [and another](https://github.com/nim-lang/Nim/tree/devel/lib/genode_cpp)
## new list of TODOs
- async / para stuff
- https://github.com/nim-lang/Nim/blob/devel/lib/std/typedthreads.nim
- https://github.com/nim-lang/Nim/blob/devel/lib/pure/concurrency/threadpool.nim
- https://github.com/nim-lang/Nim/blob/devel/lib/system/threadids.nim
- https://github.com/nim-lang/Nim/blob/devel/lib/pure/asyncstreams.nim
- https://github.com/nim-lang/Nim/blob/devel/lib/pure/asyncfutures.nim
- https://github.com/nim-lang/Nim/blob/devel/lib/pure/asyncfile.nim
- https://github.com/nim-lang/Nim/tree/devel/lib/pure
- take the impure dir one by one: https://github.com/nim-lang/Nim/tree/devel/lib/impure
- then std: https://github.com/nim-lang/Nim/tree/devel/lib/std
- then linux: https://github.com/nim-lang/Nim/tree/devel/lib/posix
- then posix: https://github.com/nim-lang/Nim/tree/devel/lib/posix
- then js: https://github.com/nim-lang/Nim/tree/devel/lib/js
- haha fk the windows dir
- run this repo on the mac and deal with any errors
- should only have to update the .github/scripts that use apt to install deps
## new skipped (and (maybe) not categorized)
- https://github.com/nim-lang/Nim/blob/devel/lib/pure/ioselects
- https://github.com/nim-lang/Nim/blob/devel/lib/pure/unidecode
## extracted from some file
# echo "############################ use cases"
# formatting objects
# type
# Nirv = object
# paths, strats, actions: bool
# var nirv = Nirv(paths: true, strats: true, actions: true)
# echo "we need better $ " & $nirv
# echo "we need better % $1 " % [$nirv]
# echo &"we need better & {nirv}"
# echo &"we need better & {$nirv}"
## copypasta from readme
---
### quickies
- [js issues](https://github.com/nim-lang/Nim/labels/Javascript)
---
- stay away from nimpretty [until this is ever merged](https://github.com/nim-lang/Nim/issues/8458)
- [read through concepts](https://nim-lang.org/docs/compiler/concepts.html)
- [and this forum post](https://forum.nim-lang.org/t/9992)
- [probably should review each module here](https://nim-lang.org/docs/compiler/theindex.html)
- [haha we skipped experimental features](https://nim-lang.org/docs/manual_experimental.html)
- this is a must do
- move the creation of htmldocs to a github action
- [chaining anonymouse procs using with](https://forum.nim-lang.org/t/9500)
- add example
- [check how qrgen overrides docgen with nimdoc.cfg](https://github.com/aruZeta/QRgen/blob/main/nimdoc.cfg)
- not sure how we missed this in the beginning
- dont forget about the nimlang/tools dir
- find the rst syntax for creating links between pages and remove all the markdown links
- fix tests/src/skip and add it to a new `good examples of bad code` section
- [check how getTime handles os checks](https://github.com/nim-lang/Nim/blob/devel/lib/pure/times.nim#L897)
- [skipped most of the section on cross compilation](https://nim-lang.org/docs/nimc.html#crossminuscompilation-for-windows)
- [checkout status opensource theyve already built bunch of things you'll need for nirv](https://github.com/status-im)
- you should review compile_backends.nim again stuff should be alot clearer now
- [optmizing nim](https://nim-lang.org/docs/nimc.html#optimizing-for-nim)
- [pacman devkitpro for nix](https://github.com/devkitPro/pacman/releases)
- forgot why this is here but its mentioned in the docs for something
TODOs
-----
.. code-block:: Nim
# probably need a memory_mgmt.nim file
# skipped everything in this section
# but they look intersting
addAndFetch doesnt have a description
copyMem copies content from memory at source to memory at dest
compileOption(x[, y]) check if a switch is active and/or its value at compile time
create allocates a new memory block with atleast T.sizeof * size bytes
createShared allocates new memory block on the shared heap with atleast T.sizeof * bytes
createSharedU allocates new memory block on the shared heap with atleast T.sizeof * bytes
createU allocates memory block atleast T.sizeof * bytes
dealloc frees the memory allocated with alloc, alloc0, realloc, create or createU
deallocHeap frees the thread local heap
deallocShared frees the mem allocated with allocShared, allocShared0 or reallocShared
equalMem compares size bytes of mem blocks a and b
freeShared frees the mem allocated with createShared, createSharedU, or resizeShared
GC_disable()
GC_disableMarkAndSweep()
GC_enable()
GC_enableMarkAndSweep()
GC_fullCollect()
GC_getStatistics():
getAllocStats():
getFrame():
getFrameState():
isNotForeign returns true if x belongs to the calling thread
moveMem copies content from memory at source to memory at dest
prepareMutation string literals in ARC/ORC mode are copy on write, this must be called before mutating them
rawEnv retrieve the raw env pointer of a closure
rawProc retrieve the raw proc pointer of closer X
resize a memory block
resizeShared
setControlCHook proc to run when program is ctrlc'ed
sizeof blah in bytes
- [dll generation](https://nim-lang.org/docs/nimc.html#dll-generation)
- https://nim-by-example.github.io/bitsets/
- https://nim-by-example.github.io/macros/
- https://nim-lang.org/docs/atomics.html
- https://nim-lang.org/docs/bitops.html
- https://nim-lang.org/docs/cgi.html
- https://nim-lang.org/docs/colors.html
- https://nim-lang.org/docs/complex.html
- https://nim-lang.org/docs/dynlib.html
- https://nim-lang.org/docs/editdistance.html
- https://nim-lang.org/docs/encodings.html
- https://nim-lang.org/docs/endians.html
- https://nim-lang.org/docs/highlite.html
- https://nim-lang.org/docs/lexbase.html
- https://nim-lang.org/docs/locks.html
- https://nim-lang.org/docs/macrocache.html
- https://nim-lang.org/docs/macros.html
- https://nim-lang.org/docs/nimc.html#nim-for-embedded-systems
- https://nim-lang.org/docs/punycode.html
- https://nim-lang.org/docs/rlocks.html
- https://nim-lang.org/docs/rst.html
- https://nim-lang.org/docs/rstast.html
- https://nim-lang.org/docs/rstgen.html
- https://nim-lang.org/docs/tut1.html#sets-bit-fields
- https://nim-lang.org/docs/tut2.html#templates-examplecolon-lifting-procs
- https://nim-lang.org/docs/typeinfo.html
- https://nim-lang.org/docs/typetraits.html
- https://nim-lang.org/docs/volatile.html
- https://nim-lang.org/docs/segfaults.html
]#
echo "############################ REEEAAALLLY should list"
# GC_Strategy (enum) the application should use
# gcThroughput, ## optimize for throughput
# gcResponsiveness, ## optimize for responsiveness (default)
# gcOptimizeTime, ## optimize for speed
# gcOptimizeSpace ## optimize for memory footprint
# owned[T] mark a ref/ptr/closure as owned
# pointer use addr operator to get a pointer to a variable
# using statement provides syntactic convenience where the same param names & types are used over and over
echo "############################ skipped list"
# @see https://nim-lang.org/docs/system.html#7 are somewhere on this page
# AllocStats
# AtomType
# Endianness
# FileSeekPos
# ForeignCell
# lent[T]
# sink[T]
# StackTraceEntry a single entry in a stack trace
# TFrame something to do with callstacks
# TypeOfMode something to do with proc/iter invocations
# asm assembler statements enabled direct embedding of assemlber code in nim code