nabaztag_hack_kit 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. data/.gitignore +7 -0
  2. data/.travis.yml +3 -0
  3. data/CHANGELOG.md +11 -0
  4. data/Gemfile +4 -0
  5. data/README.md +119 -0
  6. data/Rakefile +21 -0
  7. data/bin/mtl_comp +41 -0
  8. data/bin/mtl_merge +22 -0
  9. data/bin/mtl_simu +40 -0
  10. data/bytecode/lib/buffer.mtl +109 -0
  11. data/bytecode/lib/button.mtl +27 -0
  12. data/bytecode/lib/data_helper.mtl +88 -0
  13. data/bytecode/lib/ear.mtl +90 -0
  14. data/bytecode/lib/led.mtl +33 -0
  15. data/bytecode/lib/rfid.mtl +50 -0
  16. data/bytecode/main.mtl +129 -0
  17. data/config.ru +6 -0
  18. data/ext/bytecode/Commands.md +172 -0
  19. data/ext/bytecode/Docs.md +488 -0
  20. data/ext/bytecode/README.md +5 -0
  21. data/ext/bytecode/lib/arp.mtl +159 -0
  22. data/ext/bytecode/lib/cfg.mtl +74 -0
  23. data/ext/bytecode/lib/choreos.mtl +1487 -0
  24. data/ext/bytecode/lib/dhcp.mtl +152 -0
  25. data/ext/bytecode/lib/dns.mtl +89 -0
  26. data/ext/bytecode/lib/http.mtl +84 -0
  27. data/ext/bytecode/lib/tcp.mtl +340 -0
  28. data/ext/bytecode/lib/udp.mtl +49 -0
  29. data/ext/bytecode/lib/util.mtl +74 -0
  30. data/ext/bytecode/lib/var.mtl +15 -0
  31. data/ext/bytecode/lib/wifi.mtl +243 -0
  32. data/ext/bytecode/nominal-ping.mtl +5828 -0
  33. data/ext/mtl/Makefile +42 -0
  34. data/ext/mtl/README.md +13 -0
  35. data/ext/mtl/bc.cpp +1891 -0
  36. data/ext/mtl/conf.bin.sans_password +0 -0
  37. data/ext/mtl/config.txt +5 -0
  38. data/ext/mtl/dumpbc.c +2566 -0
  39. data/ext/mtl/extconf.rb +1 -0
  40. data/ext/mtl/linux_simu.c +271 -0
  41. data/ext/mtl/linux_simuaudio.c +16 -0
  42. data/ext/mtl/linux_simuaudio.h +18 -0
  43. data/ext/mtl/linux_simunet.c +620 -0
  44. data/ext/mtl/linux_simunet.h +7 -0
  45. data/ext/mtl/log.c +297 -0
  46. data/ext/mtl/log.h +20 -0
  47. data/ext/mtl/main_compiler.cpp +104 -0
  48. data/ext/mtl/main_simu.cpp +221 -0
  49. data/ext/mtl/mp3/GTKANAL.H +97 -0
  50. data/ext/mtl/mp3/LAYER3.C +2090 -0
  51. data/ext/mtl/mp3/TABINIT.C +82 -0
  52. data/ext/mtl/mp3/common.c +265 -0
  53. data/ext/mtl/mp3/dct64_i386.c +316 -0
  54. data/ext/mtl/mp3/decode_i386.c +155 -0
  55. data/ext/mtl/mp3/huffman.h +332 -0
  56. data/ext/mtl/mp3/interface.c +258 -0
  57. data/ext/mtl/mp3/mpg123.h +182 -0
  58. data/ext/mtl/mp3/mpglib.h +44 -0
  59. data/ext/mtl/properties.c +293 -0
  60. data/ext/mtl/properties.h +10 -0
  61. data/ext/mtl/simu.c +750 -0
  62. data/ext/mtl/simuaudio.c +662 -0
  63. data/ext/mtl/simuaudio.h +74 -0
  64. data/ext/mtl/simunet.c +400 -0
  65. data/ext/mtl/simunet.h +30 -0
  66. data/ext/mtl/utils/correct_const.sh +34 -0
  67. data/ext/mtl/vaudio.c +677 -0
  68. data/ext/mtl/vaudio.h +46 -0
  69. data/ext/mtl/vbc.h +160 -0
  70. data/ext/mtl/vbc_str.h +166 -0
  71. data/ext/mtl/vcomp/Makefile +29 -0
  72. data/ext/mtl/vcomp/bootstrap.cpp +89 -0
  73. data/ext/mtl/vcomp/compiler.cpp +470 -0
  74. data/ext/mtl/vcomp/compiler.h +200 -0
  75. data/ext/mtl/vcomp/compiler_file.cpp +929 -0
  76. data/ext/mtl/vcomp/compiler_prog.cpp +250 -0
  77. data/ext/mtl/vcomp/compiler_term.cpp +1053 -0
  78. data/ext/mtl/vcomp/compiler_type.cpp +872 -0
  79. data/ext/mtl/vcomp/compiler_var.cpp +289 -0
  80. data/ext/mtl/vcomp/file.cpp +79 -0
  81. data/ext/mtl/vcomp/file.h +39 -0
  82. data/ext/mtl/vcomp/filesystem.h +14 -0
  83. data/ext/mtl/vcomp/interpreter.cpp +85 -0
  84. data/ext/mtl/vcomp/interpreter.h +121 -0
  85. data/ext/mtl/vcomp/memory.cpp +241 -0
  86. data/ext/mtl/vcomp/memory.h +326 -0
  87. data/ext/mtl/vcomp/param.h +95 -0
  88. data/ext/mtl/vcomp/parser.cpp +427 -0
  89. data/ext/mtl/vcomp/parser.h +97 -0
  90. data/ext/mtl/vcomp/parser_xml.cpp +124 -0
  91. data/ext/mtl/vcomp/prodbuffer.cpp +125 -0
  92. data/ext/mtl/vcomp/prodbuffer.h +42 -0
  93. data/ext/mtl/vcomp/resource.h +17 -0
  94. data/ext/mtl/vcomp/stdlib_core.cpp +122 -0
  95. data/ext/mtl/vcomp/terminal.cpp +73 -0
  96. data/ext/mtl/vcomp/terminal.h +30 -0
  97. data/ext/mtl/vcomp/util.cpp +48 -0
  98. data/ext/mtl/vcomp/util.h +31 -0
  99. data/ext/mtl/vinterp.c +1349 -0
  100. data/ext/mtl/vinterp.h +11 -0
  101. data/ext/mtl/vloader.c +127 -0
  102. data/ext/mtl/vloader.h +31 -0
  103. data/ext/mtl/vlog.c +589 -0
  104. data/ext/mtl/vlog.h +69 -0
  105. data/ext/mtl/vmem.c +424 -0
  106. data/ext/mtl/vmem.h +107 -0
  107. data/ext/mtl/vnet.c +255 -0
  108. data/ext/mtl/vnet.h +19 -0
  109. data/lib/nabaztag_hack_kit/message/api.rb +39 -0
  110. data/lib/nabaztag_hack_kit/message/helper.rb +39 -0
  111. data/lib/nabaztag_hack_kit/message.rb +36 -0
  112. data/lib/nabaztag_hack_kit/server.rb +50 -0
  113. data/lib/nabaztag_hack_kit/version.rb +3 -0
  114. data/lib/nabaztag_hack_kit.rb +4 -0
  115. data/nabaztag_hack_kit.gemspec +29 -0
  116. data/public/bytecode.bin +0 -0
  117. data/test/bytecode/helper.mtl +60 -0
  118. data/test/bytecode/native.mtl +28 -0
  119. data/test/bytecode/test.mtl +221 -0
  120. data/test/spec_helper.rb +5 -0
  121. data/test/unit/message_spec.rb +56 -0
  122. metadata +209 -0
data/ext/mtl/vinterp.h ADDED
@@ -0,0 +1,11 @@
1
+ // VLISP Virtual Machine - 2006 - by Sylvain Huet
2
+ // Lowcost IS Powerfull
3
+
4
+ #ifndef _INTERPRETER_
5
+ #define _INTERPRETER_
6
+
7
+ void interpGo();
8
+
9
+ #include"vbc.h"
10
+ #endif
11
+
data/ext/mtl/vloader.c ADDED
@@ -0,0 +1,127 @@
1
+ // VLISP Virtual Machine - 2006 - by Sylvain Huet
2
+ // Lowcost IS Powerfull
3
+
4
+ #include <string.h>
5
+ #include"vmem.h"
6
+ #include"vloader.h"
7
+
8
+ char *bc_tabfun;
9
+ int bc_nbfun;
10
+ int sys_start;
11
+ int global_start;
12
+
13
+ int loaderGetByte(char *src)
14
+ {
15
+ int i;
16
+ i=(src[0]&255);
17
+ return i;
18
+ }
19
+ int loaderGetShort(char *src)
20
+ {
21
+ int i;
22
+ i=((src[1]&255)<<8)+(src[0]&255);
23
+ return i;
24
+ }
25
+ int loaderGetInt(char *src)
26
+ {
27
+ int i;
28
+ i=((src[3]&255)<<24)+((src[2]&255)<<16)+((src[1]&255)<<8)+(src[0]&255);
29
+ return i;
30
+ }
31
+
32
+ /**
33
+ Charge les variables globales
34
+ */
35
+ char *loaderInitRec(char *src)
36
+ {
37
+ int l,i;
38
+
39
+ l=loaderGetInt(src);
40
+ src+=4;
41
+ if (l==-1)
42
+ {
43
+ // printf("nil\n",l>>1);
44
+ VPUSH(NIL);
45
+ }
46
+ else if (l&1)
47
+ {
48
+ l>>=1;
49
+ if (l&1)
50
+ {
51
+ l>>=1;
52
+ // printf("tuple %d\n",l);
53
+ for(i=0;i<l;i++) src=loaderInitRec(src);
54
+ VMKTAB(l);
55
+ }
56
+ else
57
+ {
58
+ l>>=1;
59
+ // printf("string taille %d\n",l);
60
+ VPUSH(PNTTOVAL(VMALLOCSTR(src,l)));
61
+ src+=l;
62
+ }
63
+ }
64
+ else
65
+ {
66
+ // printf("int %d\n",l>>1);
67
+ VPUSH(l);
68
+ }
69
+ return src;
70
+ }
71
+
72
+ int loaderSizeBC(char *src)
73
+ {
74
+ int n,b;
75
+ n=loaderGetInt(src);
76
+ src+=n;
77
+ b=loaderGetInt(src);
78
+ src+=4+b;
79
+ n+=4+b;
80
+ n+=2+(loaderGetShort(src)<<2);
81
+ return n;
82
+ }
83
+
84
+ int loaderInit(char *src)
85
+ {
86
+ int n,nw,i;
87
+ char* src0;
88
+ char* dst;
89
+
90
+ n=loaderSizeBC(src);
91
+ dst=(char*)vmem_heap;
92
+ memcpy(dst,src,n);
93
+ nw=(n+3)>>2;
94
+ vmemInit(nw);
95
+
96
+ src=(char*)vmem_heap;
97
+
98
+ sys_start=vmem_stack-1;
99
+ for(i=0;i<SYS_NB;i++) VPUSH(NIL);
100
+
101
+ src0=src;
102
+ n=loaderGetInt(src);
103
+ src+=4;
104
+ global_start=vmem_stack-1;
105
+ while(((int)(src-src0))<n) src=loaderInitRec(src);
106
+
107
+ n=loaderGetInt(src);
108
+ src+=4;
109
+
110
+ bc_tabfun=&bytecode[n+2]; // bytecode == vmem_heap == src ...
111
+ bc_nbfun=loaderGetShort(src+n);
112
+ n+=2+(bc_nbfun<<2);
113
+ for(i=0;i<n;i++) bytecode[i]=src[i];
114
+ vmemSetstart((n+3)>>2);
115
+
116
+ return 0;
117
+ }
118
+
119
+
120
+ /**
121
+ Retourne l'adresse du début d'une fonction dans le bytecode
122
+ */
123
+ int loaderFunstart(int funnumber)
124
+ {
125
+ return loaderGetInt(bc_tabfun+(funnumber<<2));
126
+ }
127
+
data/ext/mtl/vloader.h ADDED
@@ -0,0 +1,31 @@
1
+ // VLISP Virtual Machine - 2006 - by Sylvain Huet
2
+ // Lowcost IS Powerfull
3
+
4
+ #ifndef _LOADER_
5
+ #define _LOADER_
6
+
7
+ #define SYS_NB 6
8
+ #define SYS_CBPLAY 0
9
+ #define SYS_CBUDP 1
10
+ #define SYS_CBTCP 2
11
+ #define SYS_CBLOOP 3
12
+ #define SYS_ENV 4
13
+ #define SYS_CBREC 5
14
+
15
+ #define bytecode ((char*)vmem_heap)
16
+ //extern char bytecode[65536];
17
+ //extern char *bytecode;
18
+
19
+
20
+ extern char *bc_tabfun;
21
+ extern int bc_nbfun;
22
+ extern int sys_start;
23
+ extern int global_start;
24
+
25
+ int loaderGetInt(char *src);
26
+ int loaderGetShort(char *src);
27
+ int loaderFunstart(int funnumber);
28
+ int loaderInit(char *src);
29
+
30
+ #endif
31
+