Commit Graph

1352 Commits

Author SHA1 Message Date
Yuichi Nishiwaki 7de95e2817 user-defined printers for record objects 2014-08-06 16:54:18 +09:00
Yuichi Nishiwaki 2b66b7c5a2 allow arbitrary objects at codegen time 2014-08-06 15:53:54 +09:00
Yuichi Nishiwaki a4a2bde6ba use read-time eval literals for eof-object and dictionries 2014-08-06 15:53:29 +09:00
Yuichi Nishiwaki d62727bef9 add read-time eval 2014-08-06 15:53:22 +09:00
Yuichi Nishiwaki e339b7c64a external form using srfi-10 for dictionaries 2014-08-06 15:10:48 +09:00
Yuichi Nishiwaki 312914fa0d use #, reader literal to write eof-object 2014-08-06 15:02:19 +09:00
Yuichi Nishiwaki b64cdd6724 remove redundant code 2014-08-06 14:58:23 +09:00
Yuichi Nishiwaki 7a98c3619a store rectype information to slot hash 2014-08-06 11:36:36 +09:00
Yuichi Nishiwaki 7b251a7129 change record API; remove record-of? and add record-type 2014-08-06 11:30:14 +09:00
Yuichi Nishiwaki bac96b2e54 s/slotname/slot/g 2014-08-06 11:26:35 +09:00
Yuichi Nishiwaki 772c59dead add (picrin symbol) 2014-08-06 02:14:43 +09:00
Yuichi Nishiwaki bc47968ea1 add (picrin list) and (picrin base list) 2014-08-06 02:07:02 +09:00
Yuichi Nishiwaki f70b6c5240 add (picrin base macro) primitives 2014-08-06 01:46:59 +09:00
Yuichi Nishiwaki 1d42771b54 define 'define' as a user-level macro 2014-08-06 01:34:07 +09:00
Yuichi Nishiwaki 261c592d79 move core syntaxes from (scheme base) to (picrin base core) 2014-08-06 01:14:43 +09:00
Yuichi Nishiwaki db7c129e71 s/pic_record_record/pic_record_make_record/g 2014-08-05 12:05:18 +09:00
Yuito Murase ef38874850 add predicate record? to (picrin record), and fix bug of record-type predicate 2014-08-04 23:01:47 +09:00
Yuito Murase cd96014104 record-ref and record-set! don't check type 2014-08-04 12:45:11 +09:00
Yuito Murase 8934c99ac2 move (picrin record-primitive) to (picrin record) 2014-08-04 07:38:27 +09:00
Yuito Murase 9e9666999e fix style 2014-08-04 07:36:31 +09:00
Yuito Murase fa0de0c3fa Merge remote-tracking branch 'upstream/master' into native-record
Conflicts:
	include/picrin/value.h
	piclib/prelude.scm
	src/codegen.c
	src/gc.c
	src/init.c
	src/macro.c
	src/vm.c
	src/write.c
2014-08-03 15:48:24 +09:00
Yuito Murase c76dfcb861 implement native record
native record primitives are defined in (picrin record-primitive)
- (make-record rectype)
- (record-of? record rectype)
- (record-ref record rectype field-name)
- (record-set! record rectype field-name value)

define-record-type is defined using these primitives
2014-08-03 15:30:48 +09:00
Yuichi Nishiwaki e73d9cc590 compiler may perform tco against macroexpand_node 2014-08-03 13:52:18 +09:00
Yuichi Nishiwaki 48003c2ce1 Merge branch 'update-xhash' 2014-08-01 18:52:31 +09:00
Yuichi Nishiwaki c1e6645086 use brand new API style of xhash 2014-08-01 18:48:14 +09:00
Yuichi Nishiwaki 52aa837bea support #!fold-case directive 2014-07-29 18:12:45 +09:00
Yuichi Nishiwaki d9958143e3 file functions should return file-error 2014-07-29 17:45:40 +09:00
Yuichi Nishiwaki 2f7f2a5b93 s/lib_tbl/libs/g 2014-07-29 16:22:55 +09:00
Yuichi Nishiwaki f26def254d remove commented function 2014-07-29 16:10:31 +09:00
Yuichi Nishiwaki 1ae29c8449 inline global_ref and global_def. 2014-07-29 16:09:04 +09:00
Yuichi Nishiwaki 38076e738e lookup global variable by name 2014-07-29 16:09:04 +09:00
Yuichi Nishiwaki 83ba9af7aa comment out an assertion 2014-07-29 16:01:12 +09:00
Yuichi Nishiwaki ea0ebf5126 [bugfix] command-line returned reversed list of command line arguments 2014-07-29 15:31:24 +09:00
Yuichi Nishiwaki bc0b1aa6d6 Merge pull request #181 from KeenS/rspi
Fix build error on Raspberry Pi
2014-07-28 02:23:02 +09:00
Yuichi Nishiwaki 7a64ecc8bf refactor macroexpand-1 2014-07-28 02:22:02 +09:00
Yuichi Nishiwaki 9b50d9133d remove debug print 2014-07-28 02:04:00 +09:00
Yuichi Nishiwaki c8918b8e63 support renaming import (including 'only', 'rename', 'except', 'prefix' clauses) 2014-07-28 02:00:16 +09:00
Yuichi Nishiwaki d31e20c25c define 'import' and 'export' as macros 2014-07-28 01:02:48 +09:00
Yuichi Nishiwaki 9c1a397ead define 'define-library' as a macro 2014-07-28 00:48:13 +09:00
Sunrim KIM on Raspberry Pi 39a4a12a10 Merge branch 'master' into rspi
Conflicts:
	src/read.c
2014-07-27 18:51:12 +09:00
Yuichi Nishiwaki 6a0cc4c9f7 single ')' should be an read error 2014-07-27 18:35:50 +09:00
Yuichi Nishiwaki 730a827d0e fix vm_tear_off is broken 2014-07-27 18:29:59 +09:00
Sunrim KIM on Raspberry Pi 415cf30ae6 restore some redundant changes 2014-07-27 17:24:56 +09:00
Sunrim KIM on Raspberry Pi 331fe21297 use `int` in place of `char` when you compare it to EOF 2014-07-27 17:05:57 +09:00
Yuichi Nishiwaki 6f7543e3a2 Merge pull request #177 from wasabiz/number-string
Number string
2014-07-27 14:49:25 +09:00
Yuichi Nishiwaki e680b4a6bb change deflibrary API 2014-07-27 14:47:14 +09:00
Yuichi Nishiwaki fd8330cca3 add eval error handling 2014-07-27 13:57:15 +09:00
Yuichi Nishiwaki e258529e8a primary eval support 2014-07-27 13:41:55 +09:00
Yuichi Nishiwaki 09efa4715c add another argument to eval 2014-07-27 13:23:59 +09:00
Yuichi Nishiwaki 2caefd0c39 refactor write. don't run unnecessary alloc 2014-07-27 12:36:02 +09:00
Yuichi Nishiwaki 300f87d569 refactor write 2014-07-27 11:38:30 +09:00
Yuichi Nishiwaki 1f98f2ab4e Merge pull request #180 from KeenS/master
silence warning
2014-07-27 11:37:26 +09:00
Sunrim KIM (keen) f457030a8d silence warning 2014-07-26 18:06:34 +09:00
Yuichi Nishiwaki 8f419c5eab write +inf.0, -inf.0, +nan.0, ... 2014-07-26 18:03:51 +09:00
Yuichi Nishiwaki fcd332be9f read +INF.0, +InF.0, +Nan.0, ... 2014-07-26 16:56:27 +09:00
Yuichi Nishiwaki 5689abb483 move debug print 2014-07-26 15:08:04 +09:00
Yuichi Nishiwaki 4f957b6cc5 remove unused UNREACHABLE() 2014-07-26 14:57:25 +09:00
Yuichi Nishiwaki f922a7a0cd reimplement identifier=? in scheme 2014-07-26 14:54:44 +09:00
Yuichi Nishiwaki 317ea10006 unlock restriction of value types that can appear at macro-expansion time 2014-07-26 14:30:51 +09:00
Yuichi Nishiwaki b4a0761eb3 publish ungensym 2014-07-26 14:10:17 +09:00
Yuichi Nishiwaki 5ba0c56308 add pic_ungensym 2014-07-26 14:04:34 +09:00
Yuichi Nishiwaki 6966cdfa31 change gensym convension: don't rename renamed symbols with '@', use '.' instead 2014-07-26 13:58:31 +09:00
Yuichi Nishiwaki 3fb986a463 warn syntax redefinition 2014-07-26 13:48:07 +09:00
Yuichi Nishiwaki a38ba15010 raise-continuable broken 2014-07-25 15:50:29 +09:00
Yuichi Nishiwaki 0111cd19ed mark error handlers 2014-07-25 15:50:29 +09:00
Yuichi Nishiwaki 50879dd7b6 Allocate pic_blocks in picrin's gc pool; reference count may cause problems 2014-07-25 14:41:56 +09:00
Yuichi Nishiwaki 4ddf7fb163 fix a bug in pic_pop_try 2014-07-25 12:02:05 +09:00
Yuichi Nishiwaki 0c8ef0bd32 hold destination stack locations by offset 2014-07-24 11:03:40 +09:00
Yuichi Nishiwaki e3e7c53762 fix memory leak 2014-07-24 11:03:40 +09:00
Yuichi Nishiwaki f176fadb89 tear off on longjmp 2014-07-24 11:03:40 +09:00
Yuichi Nishiwaki 01c657ddba [bugfix] pic_get_args supports 'e' specifier 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki 70ace29b7c initial raise-continuable support 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki f52ef27a81 [bugfix] unwrap raised error object 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki be2fbc394e realloc jmpbuf if necessary 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki 3cb46b9b79 allocate jmpbuf array in heap 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki aeb9c2bcee define current-*-ports in port.c 2014-07-23 09:24:28 +09:00
Yuichi Nishiwaki 8846776f2f refactor (picrin parameter) 2014-07-23 09:18:58 +09:00
Yuichi Nishiwaki 424216ca23 manage converter in var 2014-07-23 09:11:31 +09:00
Yuichi Nishiwaki e3887691d2 applicable var 2014-07-23 09:05:35 +09:00
Yuichi Nishiwaki f7bbe31ee5 change var API 2014-07-22 14:55:13 +09:00
Yuichi Nishiwaki b17a2002f3 refactor dynamic-wind 2014-07-22 14:28:30 +09:00
Yuichi Nishiwaki bdd15261b1 rewrite bytevector-append in c 2014-07-22 14:14:58 +09:00
Yuichi Nishiwaki 4676550961 rewrite vector-append in c 2014-07-22 14:08:48 +09:00
Yuichi Nishiwaki 5244b2f45d rewrite bytevector-copy in c 2014-07-22 13:55:35 +09:00
Yuichi Nishiwaki 18b07fc853 change blob API 2014-07-22 13:55:21 +09:00
Yuichi Nishiwaki 3f6ec5f878 implement assoc and member in c 2014-07-22 13:19:25 +09:00
Yuichi Nishiwaki 09bb977c50 rewrite vector-fill! in c 2014-07-22 09:24:30 +09:00
Yuichi Nishiwaki 4e895c97d0 rewrite symbol=? in c 2014-07-22 09:15:16 +09:00
Yuichi Nishiwaki 0d59eee27b rewrite boolean=? in c 2014-07-22 09:13:42 +09:00
Yuichi Nishiwaki b1ae2c24e5 rewrite exact-integer-sqrt in c 2014-07-22 09:07:25 +09:00
Yuichi Nishiwaki 3caf070043 rewrite floor/ and truncate/ in c 2014-07-22 09:07:09 +09:00
Yuichi Nishiwaki b834553c34 rewrite vector-copy in c 2014-07-22 08:58:48 +09:00
Yuichi Nishiwaki 1e4bc04112 rewrite list<->vector converters in c 2014-07-21 22:51:33 +09:00
koba-e964 8b134ddd56 number->string (exact number)
number->string in src/number.c
Supports arbitrary radix
2014-07-21 22:41:08 +09:00
Yuichi Nishiwaki 12fb80b857 allow multiple identifier aliasing 2014-07-21 16:33:18 +09:00
Yuichi Nishiwaki 72422343c0 s/lib->senv/lib->env/g 2014-07-20 15:30:48 +09:00
Yuichi Nishiwaki 7a2f8abd9c rewrite let-syntax in scheme 2014-07-20 14:55:17 +09:00
Yuichi Nishiwaki 95a3f8880c disallow non-symbol objects at places where symbol is required 2014-07-20 13:52:48 +09:00
Yuichi Nishiwaki 1b104a00a7 add macroexpand-1 2014-07-20 13:16:50 +09:00
Yuichi Nishiwaki c43120077c remove internal defmacro expander 2014-07-20 11:15:12 +09:00