Remove Twitter links.
[SquirrelJME.git] / assets / developer-notes / stephanie-gawroriski / 2017 / 02 / 20.mkd
blobccbee3026dc3db1bd00f2ae77db394ff5ed011ea
1 # 2017/02/20
3 ## 07:54
5 `CacheState` will need some global state such as for the stack and such.
7 ## 10:59
9 I believe a future goal would be to condense the build specific projects into
10 the standard librares and such so that SquirrelJME is self hosting. Also I can
11 have a replacement system for build system specific things so that libraries
12 that purely depend on a SquirrelJME environment do not fail.
14 ## 11:00
16 Another thing I need is a benchmark so I can gauge how the code operates. I
17 suppose for now the benchmark would be a simple one that calculates some
18 benchmark algorithm for the primitive types. Also, for the `SquirrelJME` class
19 I was thinking again of the service specific method. Basically it would be as
20 the following: `public static <C> C systemService(Class<C> __cl)` which would
21 have only a singular set of system specific services. So for example for the
22 LCDUI engine the class sent would be `DisplayEngineProvider`. The service
23 loader could be used as is currently, however that would be unreliable and
24 would require the classes implement some kind of priority or replacement
25 system. At least the system specific services could be well defined.
27 ## 11:09
29 Actually my idea on the build system could be done now, since it is quite
30 simple. I am not performing a major rewrite at all. Having symlinks are nice
31 but they are not as portable as they should be, so as such they should be
32 removed and the build setup should not rely on them at all. Also, Fossil does
33 not have support for them on non-UNIX platforms. Also symlinks would hurt
34 self hosting because systems such as Mac OS Class or Palm OS do not support
35 them. I do know these systems are old, but the major thing is Windows.
37 ## 11:11
39 So essentially, this would also remove the build depends thing too. The
40 lookup for a project will check the `build` directory first. If that directory
41 lacks a project then it will fallback to the standard `apis`, `mids`, and
42 `libs` and locate one. The fallback ones will be treated as a single namespace
43 and the build as a single one also. Then for projects such as `cldc` and
44 `cldc-compact`, they will just be bare minimum classes. I can also move the
45 software floating point code out of unsafe and have it in a standard library.
46 To the VM, as long as the class exists in the classpath it does not matter if
47 it is in `cldc-compact` or not.
49 ## 11:35
51 Ok so that makes things much easier now, I do not need to manage two sets of
52 dependencies, which will be a good thing. I just now need to move the stuff
53 from `build` to the appropriate places.
55 ## 12:07
57 Maybe this means I can get the doclet generator working again perhaps.
59 ## 12:15
61 Well wow, there was a dependency on SortedTreeMap but it was only in an
62 import. Also the cldc-compact project depended on it (well what was previously
63 the virtual unsafe support).
65 ## 12:17
67 So now I have no symlinks.
69 ## 17:16
71 So `MIPSRegister nextArgument(MIPSRegister __r)` should be simple to use.