File: tarctypesections.nim

package info (click to toggle)
nim 2.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,911,644 kB
  • sloc: sh: 24,603; ansic: 1,761; python: 1,492; makefile: 1,013; sql: 298; asm: 141; xml: 13
file content (70 lines) | stat: -rw-r--r-- 1,045 bytes parent folder | download | duplicates (4)
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
discard """
  output: "MEM 0"
  cmd: "nim c --gc:arc $file"
"""

type
  RefNode = ref object
    le, ri: RefNode
    name: char

proc edge0(a, b: RefNode) =
  if a.le == nil: a.le = b
  else: a.ri = b

proc createNode0(name: char): RefNode =
  new result
  result.name = name

proc main0 =
  let r = createNode0('R')
  let c = createNode0('C')
  c.edge0 r


type
  NodeDesc = object
    le, ri: Node
    name: char
  Node = ref NodeDesc

proc edge(a, b: Node) =
  if a.le == nil: a.le = b
  else: a.ri = b

proc createNode(name: char): Node =
  new result
  result.name = name

proc main =
  let r = createNode('R')
  let c = createNode('C')
  c.edge r


type
  NodeB = ref NodeBo
  NodeBo = object
    le, ri: NodeB
    name: char

proc edge(a, b: NodeB) =
  if a.le == nil: a.le = b
  else: a.ri = b

proc createNodeB(name: char): NodeB =
  new result
  result.name = name


proc mainB =
  let r = createNodeB('R')
  let c = createNodeB('C')
  c.edge r


let memB = getOccupiedMem()
main0()
main()
mainB()
echo "MEM ", getOccupiedMem() - memB