Commit Graph

418 Commits

Author SHA1 Message Date
zeptometer a35dd8463c in syntax-rules, literals is prior to underscore 2014-08-06 21:48:54 +09:00
zeptometer 4f59e07539 fix bug that errors when matching vector rule with non-vector expression 2014-08-06 21:05:20 +09:00
zeptometer b91939f5aa fix bug when syntax-rules expand rules including vector 2014-08-06 20:11:59 +09:00
Yuichi Nishiwaki 0eecddb5da set array printer 2014-08-06 17:00:32 +09:00
Yuichi Nishiwaki 7de95e2817 user-defined printers for record objects 2014-08-06 16:54:18 +09:00
Yuichi Nishiwaki 0f89e04548 small refactoring on <record-type> 2014-08-06 16:27:12 +09:00
Yuichi Nishiwaki 9316ba468b import (picrin array) and (picrin dictionary) in (picrin user) by default 2014-08-06 15:54:16 +09:00
Yuichi Nishiwaki b0c9c468c0 s/<type>/<record-type>/g 2014-08-06 14:34:46 +09:00
Yuichi Nishiwaki 86698f974f add <type> type 2014-08-06 11:45:03 +09:00
Yuichi Nishiwaki 0610c0e95b use <foo> style in naming record type 2014-08-06 11:33:07 +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 1a7df924ab export destructuring-bind 2014-08-06 03:09:36 +09:00
Yuichi Nishiwaki 5a3443a881 add destructuring-define 2014-08-06 03:09:36 +09:00
Yuichi Nishiwaki b0b60d3f01 renaming export in d-lambda 2014-08-06 03:09:36 +09:00
Yuichi Nishiwaki f37c2c25f7 refactor destructuring-lambda 2014-08-06 03:09:36 +09:00
Yuichi Nishiwaki 41f1c9962a add missing files 2014-08-06 02:15:29 +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 610e1013f7 add (picrin base) library 2014-08-06 01:17:01 +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 d669d48aa7 add destructuring lambda 2014-08-05 12:53:33 +09:00
Yuichi Nishiwaki f44c5189f0 reorder functions following the guide by r7rs. 2014-08-05 02:20:05 +09:00
Yuichi Nishiwaki a022941c98 inline cxr functions 2014-08-05 02:08:14 +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 0c4d2b9cef Merge remote-tracking branch 'upstream/master' into native-record
Conflicts:
	piclib/scheme/base.scm
2014-08-03 16:19:54 +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
Yuichi Nishiwaki 0095fa6a57 prelude to base 2014-08-03 15:47:25 +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 c2982a4252 no need to overwrite eval 2014-08-03 14:46:08 +09:00
Yuichi Nishiwaki e16de03b65 abort execution when an error occurred during running a file program 2014-08-03 14:38:38 +09:00
Yuichi Nishiwaki 9375aadf4b split files 2014-08-03 14:19:55 +09:00
Yuichi Nishiwaki a2fc679fab inline 'with' macro 2014-08-03 14:18:47 +09:00
Yuichi Nishiwaki e795b4a75a small refactor 2014-08-03 14:18:27 +09:00
Yuichi Nishiwaki 82f82da213 remove old code that has been commented out for a long 2014-08-03 14:04:26 +09:00
Yuichi Nishiwaki 3f2b1d85bf remove unused helper function 2014-08-03 14:02:13 +09:00
Yuichi Nishiwaki 48b5d6b578 [bugfix] interleave newline 2014-07-29 15:57:26 +09:00
Yuichi Nishiwaki 1a891036f2 [bugfix] print should print a newline to given port 2014-07-29 15:56:50 +09:00
Yuichi Nishiwaki a15ec868ba -h option should return exit status 1 2014-07-29 15:44:22 +09:00
Yuichi Nishiwaki 36f4a8fa66 support file execution 2014-07-29 15:43:43 +09:00
Yuichi Nishiwaki 96f8a969e0 print takes an optional argument for output port, and returns obj itself 2014-07-29 15:42:52 +09:00
Yuichi Nishiwaki f09a27cd0a [bugfix] case doesn't compare string equality 2014-07-29 15:42:35 +09:00
Yuichi Nishiwaki 2f7a51c096 move the repl source to under piclib 2014-07-29 15:23:40 +09:00
Yuichi Nishiwaki 28c486261c move test-read-error to r7rs-tests.scm 2014-07-27 18:39:27 +09:00
Yuichi Nishiwaki 9c1f8809ed add missing files 2014-07-27 14:33:46 +09:00
Yuichi Nishiwaki 137a01e74e add environment procedure 2014-07-27 14:29:29 +09:00
Yuichi Nishiwaki 076698c84a add null-environment and scheme-report-environment 2014-07-27 14:29:08 +09:00
Yuichi Nishiwaki 01061efc5a move test-numeric-syntax to r7rs-tests.scm. test-numeric-syntax is a
test runner specific to r7rs-tests.scm. It should not be placed in
generic test library.
2014-07-27 12:46:10 +09:00
Yuichi Nishiwaki b7c76ccc2a [bugfix] test statistics displays failures in reverse order. 2014-07-27 12:42:14 +09:00
Yuichi Nishiwaki 27b157fb19 grammer error 2014-07-26 16:20:26 +09:00
Yuichi Nishiwaki f922a7a0cd reimplement identifier=? in scheme 2014-07-26 14:54:44 +09:00
Yuichi Nishiwaki e53472d9cc add strip-syntax 2014-07-26 14:13:12 +09:00
Yuichi Nishiwaki c584b7baa9 add guard macro 2014-07-24 11:03:40 +09:00
Yuichi Nishiwaki 2f44145d3e refactor vector-map 2014-07-23 09:41:55 +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 4d108ac299 move include syntax to core-syntax library 2014-07-22 14:34:39 +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 cba4a6ebf5 remvoe unused helper function 2014-07-22 14:08:54 +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 3f6ec5f878 implement assoc and member in c 2014-07-22 13:19:25 +09:00
Yuichi Nishiwaki 44e80e62f4 Merge pull request #176 from KeenS/test-values
fix a bug of `test-values` and unlock the test cases that use `test-valu...
2014-07-22 09:28:23 +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
Sunrim KIM (keen) 341e4048eb fix a bug of `test-values` and unlock the test cases that use `test-values` 2014-07-21 22:58:38 +09:00
Yuichi Nishiwaki 1e4bc04112 rewrite list<->vector converters in c 2014-07-21 22:51:33 +09:00
Yuichi Nishiwaki f8904d199f Merge pull request #173 from KeenS/test
separate (picrin test) and import some test macros from chibi scheme
2014-07-21 00:01:42 +09:00
Sunrim KIM (keen) 720eb94395 separate (picrin test) and import some test macros from chibi scheme 2014-07-20 17:24:03 +09:00
Yuichi Nishiwaki 7a2f8abd9c rewrite let-syntax in scheme 2014-07-20 14:55:17 +09:00
Yuichi Nishiwaki 240c5d9ac4 implement define-macro in scheme 2014-07-20 11:15:00 +09:00
Yuichi Nishiwaki 3e5fd1a54b vector-map is no longer used 2014-07-19 18:46:09 +09:00
Yuichi Nishiwaki 8b82498cd7 inline some trivial functions 2014-07-19 18:29:41 +09:00
Yuichi Nishiwaki 63c34327b9 fix a bug in walk function 2014-07-19 18:26:09 +09:00
Yuichi Nishiwaki 1297ef9fb8 add memoize function 2014-07-19 18:26:03 +09:00
Yuichi Nishiwaki 03cc21953f walk-symbol by default 2014-07-19 18:15:38 +09:00
Yuichi Nishiwaki 2c1db4472b add walk-symbol 2014-07-19 18:14:11 +09:00
Yuichi Nishiwaki 346494524f share cache between wrap and inject 2014-07-19 18:10:14 +09:00
Yuichi Nishiwaki 34f7497f4f Merge branch 'memq-in-c'
Conflicts:
	piclib/prelude.scm
2014-07-19 16:15:02 +09:00
Yuichi Nishiwaki 5779fcd4e4 no need to override vector? with export syntax 2014-07-19 15:13:47 +09:00
Yuichi Nishiwaki 88d86e1312 rename (picrin multiple-value) to (picrin values) 2014-07-19 15:11:32 +09:00
Yuichi Nishiwaki c148f74618 include core-syntax at early stage 2014-07-19 15:11:17 +09:00
Yuichi Nishiwaki c468b343d2 missing file 2014-07-19 14:59:34 +09:00
Yuichi Nishiwaki d5a314b186 refactor define-values 2014-07-19 14:30:29 +09:00
Yuichi Nishiwaki 6a203d236a eliminate (scheme cxr) dependency 2014-07-19 14:26:09 +09:00
Yuichi Nishiwaki 301c97245c split prelude into files 2014-07-19 14:15:53 +09:00
Yuichi Nishiwaki 02ebced87b prelude cosmetic changes 2014-07-19 13:22:24 +09:00
Yuichi Nishiwaki ad2434cde7 implement memv and assv with C 2014-07-19 12:51:19 +09:00
Yuichi Nishiwaki a2c00017ea implement memq and assq with c 2014-07-19 12:48:27 +09:00
Yuichi Nishiwaki e715ca10ea add capture-syntactic-environment. close #96 2014-07-19 11:23:14 +09:00
Yuichi Nishiwaki 8a1d068519 fix many bugs around sc 2014-07-19 11:20:54 +09:00
Yuichi Nishiwaki f66bea4e97 add close-syntax 2014-07-17 16:47:50 +09:00
Yuichi Nishiwaki 690bdcb83d add srfi 111 2014-07-17 16:43:25 +09:00
Yuichi Nishiwaki b99bddcad0 rename built-in.scm to prelude.scm 2014-07-17 16:22:53 +09:00
Yuichi Nishiwaki 5b41b979d9 [bugfix] abuse compare of er-macro 2014-07-17 16:11:33 +09:00
Yuichi Nishiwaki e5511027e8 add type check guards to comparators 2014-07-17 13:58:08 +09:00
Yuichi Nishiwaki f4d68d691b remove c impls of ir/er macros 2014-07-17 13:44:18 +09:00
Yuichi Nishiwaki c0b83759a8 re-implement ir-macro-transformer in scheme 2014-07-17 13:40:45 +09:00
Yuichi Nishiwaki 2e35f03f35 remove type check guards in compare function 2014-07-17 13:40:18 +09:00
Yuichi Nishiwaki 5e8c4af84b fix bugs introduced in prev commit 2014-07-17 13:39:28 +09:00
Yuichi Nishiwaki cf509a4922 [bugfix] move define-auxiliary-syntax to the beginning. This made
mac-env and use-env of cond expression different
2014-07-17 11:32:52 +09:00
Yuichi Nishiwaki 73a6eaf9da rewrite er-macro-transformer in scheme 2014-07-17 11:32:41 +09:00
Yuichi Nishiwaki 5d9242f5b5 rewrite make-syntactic-closure in scheme 2014-07-17 11:32:30 +09:00
Yuichi Nishiwaki bdcb83296e update case-lambda impl 2014-07-16 14:47:36 +09:00
Yuichi Nishiwaki b86d010b76 add letrec-syntax 2014-07-16 14:30:45 +09:00
Yuichi Nishiwaki b1962ef61b Merge branch 'array' 2014-07-15 23:55:56 +09:00
Yuichi Nishiwaki fa0cde8d77 publish call-with-{in,out}put-file 2014-07-15 23:09:20 +09:00
Yuichi Nishiwaki 632529c9a5 add array-map and array-for-each 2014-07-15 22:45:04 +09:00
Yuichi Nishiwaki 318475c14b optional argument for make-array 2014-07-15 22:27:48 +09:00
Yuichi Nishiwaki 4f5a92d921 rename array type; avoid variable conflict 2014-07-15 22:20:45 +09:00
Yuichi Nishiwaki d358c8873d add array<->list converters 2014-07-15 22:20:32 +09:00
Yuichi Nishiwaki 2da5d440a8 more array functions 2014-07-15 21:26:08 +09:00
Yuichi Nishiwaki 443bd6e830 initial array support 2014-07-15 20:59:29 +09:00
Yuichi Nishiwaki 1d5fa803aa add case-lambda 2014-07-15 17:51:27 +09:00
Yuichi Nishiwaki fda89b1604 [bugfix] broken hygiene of cond expression 2014-07-13 22:51:22 +09:00
Yuichi Nishiwaki b7a44ee810 fix not-implemented errors 2014-07-13 12:33:13 +09:00
Yuichi Nishiwaki 71677d3e85 add dictionary.scm 2014-07-13 12:18:39 +09:00
Yuichi Nishiwaki 9c78a9a51f refactor parameterize 2014-07-13 11:16:38 +09:00
Yuichi Nishiwaki 7ffcbb7a7d refactor var. c api no longer supports converters. 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki 05309a1d38 don't use pic_defvar 2014-07-13 11:07:42 +09:00
Sunrim KIM (keen) 351d7948c0 fix bug of `{bytevector, vector}-copy!` with the same src and dst 2014-07-07 04:16:40 +09:00
Yuichi Nishiwaki 2af2362b4f support `(define-values (x y . z) ...)` 2014-06-29 15:08:23 +09:00
Yuichi Nishiwaki a6ac56d311 rewrite `include` macro with scheme 2014-06-29 15:08:23 +09:00
Yuichi Nishiwaki cee98a9954 [bugfix] support vector literal in quasiquote 2014-06-28 19:43:49 +09:00
Yuichi Nishiwaki 1e458d9691 fix #153 2014-06-28 12:40:02 +09:00
stibear 31acb21093 rewrite an unavailable symbol into an available one 2014-06-28 11:48:30 +09:00
Yuichi Nishiwaki 39a87d1c60 Merge pull request #131 from KeenS/missing-functions
( ref #130 ) Missing functions
2014-06-27 09:03:50 +09:00
Yuichi Nishiwaki 195ccf199d [bugfix] make-promise makes a promise that is done all along 2014-06-27 08:55:02 +09:00
Yuichi Nishiwaki a98411cd0b syntax error around comma 2014-06-27 08:55:01 +09:00
stibear 2526474fb3 implements delete-duplicates(!) tail-recursively 2014-06-26 22:44:38 +09:00
koba-e964 5b215eb57a Make filter tail-recursive 2014-06-26 18:40:40 +09:00
Yuito Murase d39a2eb4c9 fix bug that filter-map fails when called with multiple clists 2014-06-26 09:53:30 +09:00
stibear 694d5eafe3 implements (srfi 60) 2014-06-23 03:11:43 +09:00
stibear d765d803cb implements (srfi 43) 2014-06-19 03:23:47 +09:00
stibear 5f4dcd331c implements (srfi 8) 2014-06-19 03:21:53 +09:00
stibear 72dabaa24d correct `pair-for-each` 2014-06-18 22:00:24 +09:00
Sunrim KIM (keen) 6ccfa7ad69 some bug fixes 2014-05-29 03:58:04 +09:00
Yuichi Nishiwaki 65038c9504 Merge pull request #120 from KeenS/bytevector-append
fix bug of `bytevector-append`
2014-05-29 01:37:38 +09:00
Sunrim KIM (keen) a9c4cefe88 `quotient` is defined in base 2014-05-29 01:23:06 +09:00
Sunrim KIM (keen) 49e2148d38 fix bug of `bytevector-append` 2014-05-29 00:31:40 +09:00
Sunrim KIM (keen) b9a783c23e if `=>` is specified, treat expression as a function 2014-05-27 17:49:51 +09:00
Sunrim KIM (keen) 0fea822ac0 allow `else` and `=>` keyword in `case` 2014-05-27 13:24:59 +09:00