Commit Graph

352 Commits

Author SHA1 Message Date
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
Yuichi Nishiwaki db1a99c63a write down list of picrin's standard libraries by hand 2014-05-21 01:23:43 +09:00
Yuichi Nishiwaki e78ad9f452 split into piclib/CMakeLists.txt 2014-05-21 00:48:56 +09:00
Yuichi Nishiwaki 7132c0714e support => in cond syntax. close #95 2014-04-06 11:59:29 +09:00
Yuito Murase 388987c55b move code from piclib/syntax-rules.scm to piclib/built-in.scm 2014-04-03 15:40:48 +09:00
Yuito Murase 7af2f1e11d clean up code 2014-04-03 15:30:42 +09:00
Yuito Murase 85db821ad2 remove definition of number->string 2014-04-03 02:16:29 +09:00
Yuito Murase 8c2e69336e <literal> superiors to <ellipsis>, when there is conflict 2014-04-03 02:13:52 +09:00
Yuito Murase cf8bf2c32b fix bug of matching symbol literal 2014-04-03 01:49:23 +09:00
Yuito Murase cb28c52e9b fix bug on matching string litral 2014-04-03 01:47:26 +09:00
Yuito Murase 1352735f3d remove redundunt code 2014-04-02 01:32:24 +09:00
Yuito Murase d8ed0b384c add support match/expand vector 2014-04-02 01:31:54 +09:00
Yuito Murase 7ad3782f3f bug fix 2014-04-02 01:16:56 +09:00
Yuito Murase 62e887e89c remove debug code 2014-04-02 00:07:38 +09:00
Yuito Murase 894954117d fix bugs around matching (... p <ellipsis> ...) pattern 2014-04-01 23:43:46 +09:00
Yuito Murase da7b76a77a implement syntax-rules
need to fix
* number->string
* check-vars
* vector pattern/template
2014-04-01 01:21:29 +09:00
stibear b825da0e5a implemented completely 2014-03-26 00:48:46 +09:00
Yuichi Nishiwaki 794c87b870 resolve redefinition warnings 2014-03-25 14:39:44 +09:00
Yuichi Nishiwaki a7ff80090b delete trailing whitespaces in 1.scm 2014-03-25 14:32:56 +09:00
koba-e964 dfb525157e [bugfix] circular-list? in srfi-1
circular-list? does not get stuck in an infinite loop if it is given a list such as '(1 2 3 2 3 2 3 2 3 ...).
2014-03-17 10:43:39 +09:00
koba-e964 21b17cfd59 [bigfix] circular-list?
Fix a bug in circular-list?
2014-03-17 10:03:29 +09:00
Yuichi Nishiwaki 0e1b6d93b4 load srfi files at init. close #61 2014-03-15 20:53:07 +09:00
Yuichi Nishiwaki 5b0bce9ce3 cleanup 2014-03-15 20:43:22 +09:00
Yuichi Nishiwaki d9841a6e16 Merge pull request #66 from koba-e964/master
SRFI 95 Sorting and Merging
2014-03-15 10:06:31 +09:00
koba-e964 309ac59a7e [bugfix] merge-sort!
merge-sort! returns correct lists.
Sort functions for vectors are not implemented.
2014-03-15 03:29:58 +09:00
koba-e964 4dd7af5799 Sort functions for lists
There are some bugs in merge-sort!.
2014-03-15 03:19:23 +09:00
Yuichi Nishiwaki 8a9bd366a1 define display function in C 2014-03-04 00:12:28 +09:00
Yuichi Nishiwaki 078b72ff17 cleanup 2014-02-20 20:44:30 +09:00
stibear cb1414dfa6 implemented (scheme lazy) 2014-02-19 02:18:21 +09:00
Yuichi Nishiwaki 54c0ded876 move (picrin record) to the head of file 2014-02-19 02:01:02 +09:00
Yuichi Nishiwaki ca8a1f3bf7 export define-record-type from (scheme base) 2014-02-19 01:59:37 +09:00
Yuichi Nishiwaki 9e6612c0cb s/(scheme record)/(picrin record)/g 2014-02-19 01:59:22 +09:00
Yuichi Nishiwaki f17f2f3a77 comment out eval redefinition 2014-02-19 01:59:05 +09:00
Yuichi Nishiwaki 0b1438a9da cleanup 2014-02-19 01:41:35 +09:00
stibear 487b99d2e5 implemented scheme-record 2014-02-19 01:22:54 +09:00
Yuichi Nishiwaki 64e98d3e9b remove old exports 2014-02-18 17:30:11 +09:00
Yuichi Nishiwaki 26808c1f51 add write function in C level (must not enter into a infinite loop) 2014-02-18 04:22:58 +09:00
Yuichi Nishiwaki cd34417c42 add write-shared 2014-02-18 03:40:03 +09:00
Yuichi Nishiwaki c69687d234 quasiquote is now safe for nesting 2014-02-12 22:31:17 +09:00
stibear 95561ba3e8 fixed trivial bugs 2014-02-11 22:53:51 +09:00
stibear 88706bddad fixed trivial bug 2014-02-11 22:29:25 +09:00
stibear cfdeae686c Merge branch 'master' of git://github.com/wasabiz/picrin into srfi1 2014-02-11 21:53:31 +09:00
stibear 47594a07e2 implemented Set operations on lists 2014-02-11 21:52:36 +09:00
stibear bdfaef4467 implemented Association lists 2014-02-11 21:52:15 +09:00
Yuichi Nishiwaki 634c9e0e2f fix #38 2014-02-11 21:35:56 +09:00
stibear 00c8351d5f implemented Deleting 2014-02-11 16:40:59 +09:00
stibear 978e800104 implemented Searching 2014-02-11 06:28:36 +09:00
stibear 2f550aee49 implemented Filtering & partitioning 2014-02-11 05:34:32 +09:00
stibear 4e00cfc86a implemented Fold, unfold & map 2014-02-11 05:06:05 +09:00
stibear 270f5aa8f0 Merge branch 'master' of git://github.com/wasabiz/picrin into srfi1 2014-02-10 23:22:11 +09:00
stibear 4e2becb642 implemented Miscellaneous completely 2014-02-10 23:20:20 +09:00
stibear 2c491001a5 implemented Miscellaneous 2014-02-10 23:01:17 +09:00
Yuichi Nishiwaki 6538dfa2cf cleanup 2014-02-09 03:41:13 +09:00
Yuichi Nishiwaki cf152e2249 remove (picrin bootstrap-utils) library 2014-02-09 03:17:51 +09:00
Yuichi Nishiwaki a08a19bed1 cosmetic changes 2014-02-09 03:15:50 +09:00
Yuichi Nishiwaki 668ace7901 implement some string functions in c 2014-02-09 03:10:58 +09:00
Yuichi Nishiwaki 39af5ca254 implement string-append in C 2014-02-09 02:42:50 +09:00
stibear a89d88d276 implemented Selectors 2014-02-09 02:20:48 +09:00
stibear bc51836440 implemented Constructors and Predicates 2014-02-08 23:11:17 +09:00
Yuichi Nishiwaki 5d1c00bb06 add write/write-shared/display, but incomplete 2014-02-08 19:45:05 +09:00
Yuichi Nishiwaki 1adecf5cf5 style clenaup 2014-02-08 17:32:40 +09:00
Yuito Murase d5b0b7bf19 implement standard library : (scheme cxr) 2014-02-08 03:24:26 +09:00
Yuichi Nishiwaki b6637842e7 Revert "Revert "suppress duplicate definition warnings, variables are hoisted""
This reverts commit 968c0b53df.
2014-02-08 03:18:13 +09:00
Yuichi Nishiwaki 968c0b53df Revert "suppress duplicate definition warnings, variables are hoisted"
This reverts commit 15e95f82da.
2014-02-08 03:12:39 +09:00
Yuichi Nishiwaki f051de77c5 support 'else' syntax in cond 2014-02-08 02:55:17 +09:00
Yuichi Nishiwaki 15e95f82da suppress duplicate definition warnings, variables are hoisted 2014-02-08 02:48:57 +09:00
Yuichi Nishiwaki a99cf8458a implement ir-macro-transformer with C 2014-01-19 01:14:32 -08:00
Yuichi Nishiwaki 0425dbdd1e implement values and call-with-values with C 2014-02-02 14:26:58 +09:00
Yuichi Nishiwaki dd784c589b implement some of important list functions listed on srfi-1 2014-02-01 23:20:13 +09:00
Yuichi Nishiwaki 78d82e4d12 add srfi-1 prototype 2014-02-01 22:45:59 +09:00
Yuichi Nishiwaki 95c5361197 rewrite min/max/gcd/lcm with C 2014-01-22 23:47:33 +09:00
Yuichi Nishiwaki 2f965fa809 replace some number predicates with c imples 2014-01-22 22:58:08 +09:00
Yuichi Nishiwaki 5dd66cbcd1 replace list-copy and make-list impls by scheme with ones by C 2014-01-22 22:37:27 +09:00
Yuichi Nishiwaki c539f889cd native implementatino of for-each 2014-01-22 22:21:48 +09:00
Yuichi Nishiwaki 85a5745716 native implmentation of map 2014-01-22 22:18:25 +09:00
Yuichi Nishiwaki e417439f4a reduce exports 2014-01-22 21:36:32 +09:00
Yuichi Nishiwaki 74088d0130 replace list-set! impl with C impl 2014-01-22 21:35:13 +09:00
Yuichi Nishiwaki d07456466d replace cxxr and list? impls by scheme with ones by C 2014-01-22 21:29:11 +09:00
Yuichi Nishiwaki 7fc2885fad replace list impl by scheme with impl by C 2014-01-22 21:20:13 +09:00
Yuichi Nishiwaki bbd1ec3fbb replace length/reverse/append impls with c functions 2014-01-22 21:14:10 +09:00
Yuichi Nishiwaki 67d4d28d19 impl list-ref and list-tail as C functions 2014-01-22 21:00:29 +09:00
Yuichi Nishiwaki 82dd55f77f er macro no longer requires identifier? defined 2014-01-11 12:56:51 +09:00
Yuichi Nishiwaki 64855bfcec er-macro-transformer is no longer defined using sc 2014-01-11 12:56:07 +09:00
Yuichi Nishiwaki c66a217e87 Types that can be passed to the rename procedure is only a symbol 2014-01-11 12:55:34 +09:00
Yuichi Nishiwaki d0713456ef add make-parameter and parameterize 2014-01-09 00:39:45 +09:00
Yuichi Nishiwaki 8273659bd0 [bugfix] `do` macro should execute epilogue expressions iff test
evaluates *true*
2014-01-08 20:18:44 +09:00
Yuichi Nishiwaki 55105dc14f gather utility functions which are necessary in bootstrap stage 2013-12-10 09:14:08 -08:00
Yuichi Nishiwaki cb41d9262a add `define-values` syntax 2013-12-10 08:48:26 -08:00
Yuichi Nishiwaki d4ebf6c926 letrec and let-values should be declared as aliases of letrec* and let*-values 2013-12-10 08:37:33 -08:00
Yuichi Nishiwaki 38a3a0936d define let*-values as an alias to let-values 2013-12-10 08:34:57 -08:00
Yuichi Nishiwaki 11c0d78957 [bugfix] exact-integer-sqrt was broken 2013-12-10 08:30:20 -08:00
Yuichi Nishiwaki acd70f108d implement let-values 2013-12-10 08:30:06 -08:00
Yuichi Nishiwaki 45fb1be04f strict check whether given expression is multiple value or not 2013-12-10 08:14:14 -08:00
Yuichi Nishiwaki 7fe6a5007c separate functions and syntaces related to multiple value 2013-12-10 08:11:54 -08:00
Yuichi Nishiwaki c6e828ef3e utf8<->string conversion 2013-12-10 07:58:25 -08:00
Yuichi Nishiwaki 6958730fa4 export all symbols defined in built-in.scm 2013-12-10 07:13:57 -08:00
Yuichi Nishiwaki db9de51d07 [bugfix] min and max are broken 2013-12-10 07:13:17 -08:00
Yuichi Nishiwaki c67c81c1aa add call-with-port 2013-12-10 05:53:59 -08:00
Yuichi Nishiwaki cdb1911f9f define (scheme inexact) library 2013-12-10 05:40:44 -08:00
Yuichi Nishiwaki 11b0796187 add syntax-error 2013-12-10 03:21:29 -08:00
Yuichi Nishiwaki d1752bb236 add a comment 2013-12-10 03:14:08 -08:00
Yuichi Nishiwaki cb43c9f35d ir-macro-transformer seems not work properly 2013-12-10 03:11:01 -08:00
Yuichi Nishiwaki ae3164643e [bugfix] let may take an identifier as a loop name 2013-12-10 03:10:42 -08:00
Yuichi Nishiwaki 79f6f5c034 rewrite core syntaces with explicit renaming macro 2013-12-10 03:09:27 -08:00
Yuichi Nishiwaki fad425fcb9 export core syntaces from (scheme base) 2013-12-10 01:49:07 -08:00
Yuichi Nishiwaki 7cdd997f34 define 'case' syntax in (pircin core-syntax) library 2013-12-10 01:48:53 -08:00
Yuichi Nishiwaki 7520de3dcd cosmetic changes 2013-12-10 00:21:43 -08:00
Yuichi Nishiwaki 49c0330fb7 declare core syntaces individually separate from (scheme base) 2013-12-09 23:00:47 -08:00
Yuichi Nishiwaki 738fd549d8 add more auxiliary syntaces 2013-12-09 10:01:09 -08:00
Yuichi Nishiwaki ea7dc37dbc reorder and cleanup built-in libraries 2013-12-09 10:00:33 -08:00
Yuichi Nishiwaki a35434461d move functions related to hygienic macros to the top 2013-12-09 09:47:15 -08:00
Yuichi Nishiwaki 761cef4efb do not use let syntax in the definition of ir-macro-transformer 2013-12-09 09:44:11 -08:00
Yuichi Nishiwaki 51657e9412 remove walk function's support for vector for a moment 2013-12-09 09:43:20 -08:00
Yuichi Nishiwaki fdf06d591c remove 'else' 2013-12-09 09:34:32 -08:00
Yuichi Nishiwaki b231d63297 [bugfix] avoid auxiliary keywords such as unquote or unquote-splicing
from being renamed
2013-12-09 09:27:28 -08:00
Yuichi Nishiwaki 0dddddab55 ir-macro-transformer was broken 2013-12-09 07:26:51 -08:00
Yuichi Nishiwaki 1ad4c309f4 [bugfix] case and or should be declared by ir-macro-transformer 2013-12-09 15:41:57 +09:00
Yuichi Nishiwaki daae383938 add hygienic `or` syntax 2013-12-09 15:37:29 +09:00
Yuichi Nishiwaki 3c6fd93b5a add hygienic `case` syntax 2013-12-09 15:37:21 +09:00
Yuichi Nishiwaki 28da6d71ba add pic_equal_p 2013-12-07 20:52:58 -08:00
Yuichi Nishiwaki 220c7856cd cosmetic changes 2013-12-04 20:33:38 +09:00
Yuichi Nishiwaki 708af9f00f untabify 2013-12-03 22:29:35 +09:00
Yuichi Nishiwaki d9398828c0 ir-macro-transformer was broken 2013-12-03 13:09:38 +09:00
Yuichi Nishiwaki 4e98d37ab1 remove old debug prints 2013-12-03 13:08:23 +09:00
Yuito Murase 3c79c0df00 add vector-map, vector-for-each, string-map, string-for-each 2013-11-29 01:50:10 +09:00
Yuichi Nishiwaki 6d0f75dd7e add ir-macro-transformer 2013-11-28 18:39:27 +09:00
Yuichi Nishiwaki 7b8ee3eb97 add er-macro-transformer 2013-11-27 17:26:07 +09:00
Yuichi Nishiwaki 7b026fbd0a add sc-macro-transformer/rsc-maro-transformer 2013-11-27 17:25:42 +09:00
Yuichi Nishiwaki 0f127917e8 primitive overridings may cause circular reference at the stage of
variable renaming
2013-11-27 13:52:16 +09:00
Yuichi Nishiwaki 7352cf8bcf add missing bytevector functions 2013-11-18 01:45:08 +09:00
Yuichi Nishiwaki 926924982d add missing vector functions 2013-11-18 01:29:54 +09:00
Yuichi Nishiwaki 7fbff9384e add missing string functions 2013-11-18 01:26:03 +09:00
Yuichi Nishiwaki ca66291d93 vector<->list conversion 2013-11-17 18:35:45 +09:00
Yuichi Nishiwaki b19df05e81 add vector-fill! 2013-11-17 17:33:37 +09:00
Yuichi Nishiwaki 6d825666e2 add vector-append 2013-11-17 13:13:16 +09:00
Yuichi Nishiwaki 0690fbbdb4 add vector-copy and vector-copy! 2013-11-17 02:31:32 +09:00
Yuichi Nishiwaki d9749ef854 add for-each 2013-11-15 22:57:46 +09:00
Yuichi Nishiwaki c57f1bfbe1 define math comp predicates as C functions 2013-11-15 22:51:51 +09:00
Yuichi Nishiwaki a2f022df4e implement native version of some primitive functions such as car,crd... 2013-11-15 16:07:03 +09:00
Yuichi Nishiwaki 6b742a7fa3 using any instead of every in map function may make the run a bit faster 2013-11-14 22:48:06 +09:00
Yuichi Nishiwaki a272f9d27c map may take multiple list 2013-11-14 22:16:30 +09:00
Yuichi Nishiwaki cc1adb93ce add min and max 2013-11-14 21:58:30 +09:00
Yuichi Nishiwaki 23ebe14da0 support all functions under section 6.6 2013-11-14 20:41:51 +09:00
Yuichi Nishiwaki 26bf0970f9 add bytevector function 2013-11-14 18:01:44 +09:00
Yuichi Nishiwaki 819a2e6a96 add vectro funtion 2013-11-14 17:58:12 +09:00
Yuichi Nishiwaki 4d6c2d99fe [bugfix] do's condition was broken 2013-11-14 17:57:56 +09:00
Yuichi Nishiwaki 1b7774eec8 add some missing function listed in section 6.2. Numbers 2013-11-14 17:51:57 +09:00
Yuichi Nishiwaki 8d1bfc026b add do macro 2013-11-14 17:41:03 +09:00
Yuichi Nishiwaki 62069af4f9 add named-let 2013-11-14 17:31:59 +09:00
Yuichi Nishiwaki 249061982f add symbol=? function 2013-11-14 16:52:10 +09:00
Yuichi Nishiwaki 6296d4bee2 add boolean=? 2013-11-14 14:31:57 +09:00
Yuichi Nishiwaki 0462aebce0 add let* and letrec* 2013-11-14 13:17:54 +09:00
Yuichi Nishiwaki bc61cc4665 add letrec macro 2013-11-13 18:19:35 +09:00
Yuichi Nishiwaki d6c377a33b native support for dynamic-wind 2013-11-11 18:04:21 +09:00
Yuichi Nishiwaki 28979c0e62 add dynamic-wind 2013-11-11 08:03:52 +09:00
Yuichi Nishiwaki 901cf0ed09 add values/call-with-values 2013-11-11 08:01:29 +09:00
Yuichi Nishiwaki 71b0f8c686 add memv, assv, member, and assoc 2013-11-09 16:45:04 +09:00
Yuichi Nishiwaki c211d9ffde add some math built-in functions: even?, odd?, gcd, lcm 2013-11-09 16:33:52 +09:00
Yuichi Nishiwaki d0d3feeb4b add when and unless macros 2013-11-06 16:18:29 +09:00
Yuichi Nishiwaki fc42c71304 add eqv? and equal? 2013-11-06 16:12:31 +09:00
Yuichi Nishiwaki eede3242a5 add memq/assq 2013-11-04 20:52:57 -05:00
Yuichi Nishiwaki 404ccb7fb1 cleanup 2013-11-01 19:19:51 +09:00
Yuichi Nishiwaki ff61f8c0f5 support quasiquote syntax 2013-11-01 18:57:35 +09:00
Yuichi Nishiwaki 5e74caa7a5 add some important primitive macros such as cond, and, or, ...etc 2013-10-31 00:31:33 +09:00
Yuichi Nishiwaki b10ef13ca0 define (unhygienic) let macro 2013-10-30 17:09:51 +09:00
Yuichi Nishiwaki 787dae1fe5 add missing list functions 2013-10-29 16:39:04 +09:00
Yuichi Nishiwaki ec3a32ef24 implement some list functions in built-in.scm 2013-10-29 02:50:26 +09:00