-
Notifications
You must be signed in to change notification settings - Fork 50
/
ToDo 2018.txt
168 lines (120 loc) · 5.24 KB
/
ToDo 2018.txt
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
=================== 2018 Short List ===================
===== VS Code =====
*For now, use X# core as is for integration. We will return to X# itself after.
*Notion of an X# project
*Building
-xsconfig.json (VS Code version of .xsproj)
-CompilerOptions (Future, nothing yet)
-Exclude files
-Include dir
-Launch.json
-asm
-Bochs - First
-VMWare and Hyper-V later
-Libs for this are already in Cosmos. Should be separated into new project and moved down into X# repo.
-Normally we should use a separate repo, but 3 is already enough so common stuff we are putting in X# since the other 2 need it.
-Ability to install as an extension via Extensions gallery
*XSC allow local overrides
--------------------
-Language Service Protocol Support
*Syntax highlighting
-Code formatting
Other build targets
-windows exe, obj other...
Notes:
-For XSC, building all parts of X# itself, we stay VS for now.... ie VS code is for X# use.. not dev of X# project itself.... maybe later we will look at VS code but its C# support is well behind VS.
===== VS =====
For X# we want to focus on VS code, but we want basic functionality in VS. This is due to both limited resources, but other factors as well.
-Building - Must be able to build X# projects to allow Cosmos to work in VS fully.
-Editing, even if just text.
-Syntax highlighting is nice, but if VS code requires TS for syntax highlighting this may create a duplication of code and a liabilty.
===== X# =====
-TODO - Update this section (Kudzu)
-After Gen2 is complete
-Move down a mini base DebugStub and share with Cosmos
-VS Code debug integration, Watches, stacks, etc...
===== Publicity (Kudzu) =====
Docs, Videos, website, Microsoft, CodeProject, YouTube C9
=================== OLD 2017 Notes - Slowly importing and reassessing ===================
Kudzu
-xsharp.Eval("x = {aVal}")
-Macros - ie inline functions of sort
-Cosmos dev rules page
-spacing
-naming
-reformatting
-Ownership of files, if not look at project but where?
comparisons as enum
IfPredicate - { and return - goto has value. Can compound front intead wtih compuonds, ie {if, compare, return/goto abc123/{ as sep attribs}
-Flesh out emitters
-able to parse all existing .xs
-Do emitting
-Do all 8086/88 ops from Wikipedia
-DebugTool
-Show tree
-Show duplicate matches (ie + and ++)
-Live input to pl0ay and graph path
-Generate attrib signature, and also optionally empty method with args
-Assignments.cs
- Check generation of var = const.
Kudzu ----------------------------------------------------
*** PrivateAssets to G3
Enrique 500
Change XSC to use Clogger
Parser
-SyntaxMap - can be circular
-UI for map, read from file? and code?
-Multiline comments
-Feedback from line to tell it "more" - use /* for both ends
-Call() - integrate into pre process so all passed later must be tokens
-Call(Params, can be regs or memroy or labelws or const..)
-function(params)
-/! Cosmos.Plug - params?
-Direct plugs - ie in .xs to types
Plugins - Use XSharp.Build.Plugins
pre/post directives, separate api than normal pre/post
-as namespaces - process for - ie Cosmos.directive
pre/post as plugins
-Emit into ONE .asm file. If output file is specified, all goes to one. Else does one .asm per .xs as now. Also append option to existing .asm
---
EmitUserComments
-Take from property first
-Each .xs can turn on or off with directive, or use inherit. If no directive, then inherit
-Settings only apply for that .xs and reset to the master property when new .xs is processed
-Same for .EmitSourceCode
.EmitSourceCode comments - if on then above each section it should emit a comment in the .ASM file showing the X# source.
/! include <file ref>
Does an inline include of the reffed file.
X# plugs
X# still has that hard ref to INTs last known address
X# method arguments
X# local vars - Zed style? . .. ..
Asm debugging, modularize DS and then Cosmos expands it. Remote over serial too
X# can be in C# with variable use etc through stack or special area for single X# calls
Change IL2CPU to use X# instead of XSharp.Assembler
DebugStub ReferenceHelper - Better way? Not needed if we merge probably, needed at all beyond?
Convert DebugStub as necessary
Move all X# code into Cosmos.CPU except that which is used as a plug to .NET Framework (that goes to CpuPlug, later)
CpuPlug
Redo parser (careful, need to work it out first).
Possibly can be done earlier as part of CXSC
To replace entirely current X# usage.
Remove old syntax and support after all ported
Separate out X# into separate repo when it can stand alone.
VS Code support (Jp2masa already has code, work with him and merge it in)
X64, ARM etc
UEFI integration
Charles -------------------------------------------------
VSIP
-Change VS items into X# / X Sharp
name/section
-X# Project Type
Make X# into a nuget pkg so users can find it easily
jp2masa ------------------------------------------
XSC
-append/output params (see program.cs)
-Expand program.cs etc in XSC to allow compiling from resources in .dll files
Can you modify our build process to to call XSC separately from IL2CPU? This will separate it out, and also let us handle plugins to XSC easier.
Arawn ------------------------------------------
UEFI
Move stuff to XSharp.Build