Add task for running tests that runs both clutter levels accordingly.
[SquirrelJME.git] / assets / developer-notes / stephanie-gawroriski / 2016 / 06 / 13.mkd
blob5f7aea0fdc491a95938101dde53b6e8f5ecb6297
1 # 2016/06/13
3 ## 13:37
5 I need an efficient way to describe the structure of classes and objects so
6 that they may be allocated by the structure manager.
8 ## 13:43
10 The information of what a current class is and the identity hash code will not
11 be special outside details, they will just be standard fields within a class
12 that are initialized to values on allocation.
14 ## 15:16
16 `String` has `valueOf` and `copyValueOf`.
18 ## 15:25
20 In general, the representation of objects will be shared such as classes and
21 their sizes and field alignments.
23 ## 15:28
25 The question is though, an effective way to represent code and data sections.
26 There would potentially need to be two object allocation schemes. One that is
27 in the data section while another is in the code section. There is no reason
28 that a Harvard architecture has to be unmodifiable. So I suppose what I need
29 then is a memory space which is given an allocator and an accessor and then
30 pass that to the `StructureManager`. Otherwise the structure manager will
31 only ever be capable of allocating structures in the data space which means
32 that Harvard architectures with separated code and data will never be able to
33 use a JIT.
35 ## 15:35
37 It is a `MemoryManager` but does not manage pages, I suppose for that instead
38 there could be something called a `pmmu` for managing memory pages that extend
39 beyond the standard allocator and such.
41 ## 15:43
43 However, having an extra class is rather ugly. The accessor may be tightly
44 bound to an allocator however. So do I have an allocator that is returned by
45 the accessor? Do I have the memory accessor perform primitive memory management
46 in chunks? I can do the later however, since it may actually work out better.
47 The accessor is very specific to a system anyway and there might be a system
48 specific means of allocating chunks of memory. However instead of it just being
49 allocation, it will be reserving for the most part or similar. The structure
50 manager can have a slightly better accessor which can manage memory better
51 anyway and the that can be used instead (ideally a new MemoryAccessor wrapper
52 would be used with the given logic).
54 ## 20:39
56 When it comes to the structure manager, I will need a representation for
57 classes.
59 ## 20:40
61 The structure manager is really a run-time assistance library for the most
62 part. The kernel and the interpreter would use the same structure manager for
63 the most part when it comes to objects. So I suppose it should be called as
64 such. Runtime objects perhaps.