Yuichi Nishiwaki
5fa24f9767
global variable table may be weak
2015-08-05 09:36:32 +09:00
Yuichi Nishiwaki
9d25be2e76
[bugfix] update prototype
2015-08-05 09:03:09 +09:00
Yuichi Nishiwaki
537e5b0eed
use boxes for global variable cells
2015-08-05 08:52:28 +09:00
Yuichi Nishiwaki
ee9ee2f03e
add inline expansion optimization
2015-07-22 16:09:41 +09:00
Yuichi Nishiwaki
5f9a6880e2
[bugfix] rest argument does not work with local definitions
2015-07-22 16:08:54 +09:00
Yuichi Nishiwaki
51a42708b5
saner redefinition warning
2015-07-14 07:12:57 +09:00
Yuichi Nishiwaki
d1e5e81580
khash doesn't need to require int32
2015-07-13 09:13:45 +09:00
Yuichi Nishiwaki
d0c442d451
add picrin/opcode.h
2015-07-09 04:40:15 +09:00
Yuichi Nishiwaki
1e104921eb
cache gref slot
2015-07-07 14:42:50 +09:00
Yuichi Nishiwaki
9e04a80636
add OP_GT and OP_GE
2015-07-06 19:13:00 +09:00
Yuichi Nishiwaki
7e970258f4
cleanup
2015-07-04 18:14:31 +09:00
Yuichi Nishiwaki
1a886ee50f
check number of arguments at runtime
2015-07-04 18:05:57 +09:00
Yuichi Nishiwaki
1d1e41e122
refactor create_activation
2015-07-04 17:24:39 +09:00
Yuichi Nishiwaki
1c538a13f1
OP_RET's operand is no longer used
2015-07-04 14:04:16 +09:00
Yuichi Nishiwaki
b01042505f
remove OP_MINUS
2015-07-04 14:04:16 +09:00
Yuichi Nishiwaki
c9245bbe84
optimize vm set operators
2015-07-02 05:59:54 +09:00
Yuichi Nishiwaki
f622ba3db4
refactor codegen_call
2015-07-02 05:26:05 +09:00
Yuichi Nishiwaki
28b180ac3f
split codegen function
2015-07-02 05:07:16 +09:00
Yuichi Nishiwaki
43f385760d
simplify management of deferred forms
2015-07-02 04:36:21 +09:00
Yuichi Nishiwaki
0a0c94fb91
perform tail position analysis on the fly at codegen
2015-07-02 04:23:07 +09:00
Yuichi Nishiwaki
9c908b2622
cosmetic changes
2015-07-02 03:33:25 +09:00
Yuichi Nishiwaki
d097a021e3
optimize begin emitter
2015-06-30 01:13:54 +09:00
Yuichi Nishiwaki
e5f7eda432
more arena freeing during compilation
2015-06-30 01:13:54 +09:00
Yuichi Nishiwaki
849032ef1a
cosmetic changes
2015-06-30 01:13:54 +09:00
Yuichi Nishiwaki
1595be099b
define emit_x functions as macros
2015-06-30 01:13:54 +09:00
Yuichi Nishiwaki
62dbdb79dd
cleanup
2015-06-30 01:13:54 +09:00
Yuichi Nishiwaki
428e006098
add symbol macro
2015-06-29 18:26:12 +09:00
Yuichi Nishiwaki
3428803bdb
less consing
2015-06-27 19:19:43 +09:00
Yuichi Nishiwaki
885942b541
more cleanup
2015-06-27 19:10:15 +09:00
Yuichi Nishiwaki
ddcf96f689
remove pic_proc_name (for a moment)
2015-06-27 19:02:18 +09:00
Yuichi Nishiwaki
36c498e7d7
cleanup analyzer
2015-06-27 18:48:21 +09:00
Yuichi Nishiwaki
f98a5ab14d
cleanup
2015-06-27 18:23:08 +09:00
Yuichi Nishiwaki
1bed1bd420
remove unnecessary error checks
2015-06-27 18:08:57 +09:00
Yuichi Nishiwaki
4d18610a79
refine error messages
2015-06-27 17:50:03 +09:00
Yuichi Nishiwaki
8c6496ef24
remvoe dead code
2015-06-27 16:44:05 +09:00
Yuichi Nishiwaki
ac094a9477
cosmetic changes
2015-06-27 16:33:31 +09:00
Yuichi Nishiwaki
df645b68ae
more optimization
2015-06-27 15:59:22 +09:00
Yuichi Nishiwaki
03792f85de
fast compile
2015-06-27 15:30:17 +09:00
Yuichi Nishiwaki
4a8e59e04b
don't run malloc while anazlyze/codegen
2015-06-27 14:23:31 +09:00
Yuichi Nishiwaki
5cbb44d6b8
use khash for env
2015-06-25 07:26:48 +09:00
Yuichi Nishiwaki
d500dd5d76
don't use xhash in codegen
2015-06-25 07:19:11 +09:00
Yuichi Nishiwaki
5cf1822813
use khash for dictionary impl
2015-06-25 05:56:15 +09:00
Yuichi Nishiwaki
f0434a8b37
abandon xvect.h, move on to kvec.h
2015-06-23 22:08:18 +09:00
Yuichi Nishiwaki
aa79797334
fix #234
2015-06-22 17:41:17 +09:00
Yuichi Nishiwaki
535cd0c21e
don't reformat error message because it removes trace info
2015-06-20 02:32:25 +09:00
Yuichi Nishiwaki
7ec81ab1d5
add pic_resolve
2015-06-19 17:31:47 +09:00
Yuichi Nishiwaki
62b7c1a0f9
warn macro redefinition only when transformer object slot is being overwritten
2015-06-17 00:11:02 +09:00
Yuichi Nishiwaki
cf66d600bb
move macroexpander to codegen.c
2015-06-16 21:01:46 +09:00
Yuichi Nishiwaki
2e5b66fabd
s/macroexpand/expand/g
2015-06-16 20:27:58 +09:00
Yuichi Nishiwaki
84a3eaee35
change eval interface: eval takes an expression and an environment
...
macroexpand should be done in the context in which the expansion is
running. As of now I only changed c interface of eval but should change
the scheme interface as well ASAP.
2015-06-16 19:16:06 +09:00