summary refs log tree commit diff stats
path: root/compiler/spawn.nim
Commit message (Expand)AuthorAgeFilesLines
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-17/+17
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-53/+54
* scoped memory management (#14790)Andreas Rumpf2020-07-041-2/+2
* init checks and 'out' parameters (#14521)Andreas Rumpf2020-06-231-2/+2
* Fixes #14014 (#14029)cooldome2020-04-201-2/+7
* Step2: fixes #13781, fixes #13805 (#13897)cooldome2020-04-161-13/+11
* drnim: tiny progress (#13882)Andreas Rumpf2020-04-151-21/+4
* Fix sym owner in wrapper proc (#13878)cooldome2020-04-051-27/+27
* fixes #13708 (#13711)cooldome2020-03-211-8/+18
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-23/+23
* refactoring: --newruntime consists of 3 different switchesAraq2019-10-201-1/+1
* fixes #1188Araq2019-08-161-1/+1
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-428/+428
* [refactoring] moves transformation for 'spawn' into its own spawn.nim impleme...Araq2019-07-141-0/+428
e the previous revision' href='/akkartik/mu/blame/cpp/999spaces.cc?h=main&id=255cc28813b9f53dd678c78551e3adb036002553'>^
7feea75b ^





c1041a26 ^
7feea75b ^




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

                                                                              


                                                                           



                                                        

                                                                                                    

                                          
                                                                                                                           

                                   


                                 


                                                             
                                    
                                                            





                                           
                                




                                                       
//: Since different layers all carve out different parts of various namespaces
//: (recipes, memory, etc.) for their own use, there's no previous place where
//: we can lay out the big picture of what uses what. So we'll do that here
//: and just have to manually remember to update it when we move boundaries
//: around.
//:
//:: Memory
//:
//: Location 0 - unused (since it can help uncover bugs)
//: Locations 1-899 - reserved for tests
//: Locations 900-999 - reserved for predefined globals in mu scenarios, like keyboard, screen, etc.
:(before "End Setup")
assert(Max_variables_in_scenarios == 900);
//: Locations 1000 ('Reserved_for_tests') onward - available to the allocator in chunks of size Initial_memory_per_routine.
assert(Reserved_for_tests == 1000);

//:: Recipes
//:
//: 0 - unused (IDLE; do nothing)
//: 1-199 - primitives
assert(MAX_PRIMITIVE_RECIPES < 200);
//: 200-999 - defined in .mu files as sequences of primitives
assert(Next_recipe_ordinal == 1000);
//: 1000 onwards - reserved for tests, cleared between tests

//:: Depths for tracing
//:
//: 0 - unused
//: 1-99 - app-level trace statements in mu
//: 100 - schedule
assert(Scheduling_depth == 100);
//: 101-9998 - call-stack statements (mostly label run)
assert(Initial_callstack_depth == 101);
assert(Max_callstack_depth == 9998);
//: 9999 - intra-instruction lines (mostly label mem)
assert(Primitive_recipe_depth == 9999);