Commit graph

3268 commits

Author SHA1 Message Date
Alex Shinn
7b6a928974 adding levenshtein distance 2019-11-04 20:15:32 +08:00
Alex Shinn
10b713284c
Merge pull request #589 from ekaitz-zarraga/docs
Update sxml docs
2019-10-31 23:17:28 +08:00
Ekaitz Zárraga
bbe279b825 Update sxml docs 2019-10-30 10:15:52 +01:00
Alex Shinn
6f57d6ac71
Merge pull request #586 from amirouche/wasm-improvements
WASM improvements
2019-10-29 21:58:32 +08:00
Amirouche
9604fa361b Makefile: js/chibi.js: ALLOW_MEMORY_GROWTH=1
`ALLOW_MEMORY_GROWTH=1` allows to grow the wasm vm memory space as
needed and avoid out-of-memory issues. This is for development
purpose, production build will want to set memory size to something
that is fit the application (I don't remember the actual option name,
but removing ALLOW_MEMORY_GROWTH=1 from the compilation, and
re-running the app will display the good option to use).
2019-10-28 12:21:37 +01:00
Amirouche
61684647d6 Makefile: js/chibi.js: disable optimization
Optimizations will (sometime) lead to broken build.
2019-10-28 12:19:37 +01:00
Amirouche
9acd71735c Makefile: whitespace cleanup 2019-10-28 12:18:09 +01:00
Alex Shinn
4ad228a0f6
Merge pull request #585 from ekaitz-zarraga/safe-string
[WIP] Add option to ignore escaping
2019-10-24 21:00:29 +08:00
Ekaitz Zárraga
12f941dbfe Add option to ignore escaping 2019-10-24 09:56:08 +02:00
Alex Shinn
b33df19274
Merge pull request #583 from ekaitz-zarraga/patch-2
Correct typo
2019-10-24 10:27:35 +08:00
Ekaitz Zárraga
5dfc3b7909
Correct typo 2019-10-23 18:29:48 +02:00
Alex Shinn
c836311918
Merge pull request #582 from ekaitz-zarraga/patch-1
Missing ) in code example
2019-10-21 23:39:47 +08:00
Ekaitz Zárraga
cb63e9130c
Missing ) in code example 2019-10-19 13:01:10 +02:00
Alex Shinn
f4b0277d01 allow rest param in let-optionals 2019-10-14 22:04:23 +08:00
Alex Shinn
58e10b2a7d assert types in boolean=? and symbol=? (fixes issue #579) 2019-10-06 22:29:58 +08:00
Alex Shinn
544eaa79c7
Merge pull request #578 from katterjohn/mmap-heap-fixes
Fixes for mmapped heaps
2019-10-06 08:26:16 +08:00
Alex Shinn
e3935695a1
Merge pull request #577 from katterjohn/fix-mime-type
(chibi net server-util): file-mime-type: fix load-mime-types call
2019-10-06 08:20:45 +08:00
Kris Katterjohn
a1473f69ba mmapped heaps: fix for systems with W^X policies
Using read/write/exec causes an error (or possibly abort) on systems
with W^X policies (like OpenBSD and NetBSD have by default).

Since the heap does not need to be executable, just use read/write.
2019-10-04 20:50:41 -05:00
Kris Katterjohn
25d4807f50 mmapped heaps: fix the file descriptor argument to mmap for the BSDs
On the BSDs, the file descriptor passed to mmap when using MAP_ANON
must be -1.  Passing 0 causes mmap to fail.
2019-10-04 20:39:37 -05:00
Kris Katterjohn
650be6adc0 mmapped heaps: correctly check for mmap failure
When mmap fails it returns MAP_FAILED, not NULL.  POSIX does not
define the value for MAP_FAILED, but on at least the BSDs and Linux
its value is ((void *) -1).
2019-10-04 20:38:15 -05:00
Kris Katterjohn
9bbf48d084 (chibi net server-util): file-mime-type: fix load-mime-types call
Use find instead of any so load-mime-types will get the filename
instead of #t when a mime.types file is found.  Otherwise an error
occurs in load-mime-types.
2019-10-01 20:00:36 -05:00
Alex Shinn
3749d29883
Merge pull request #576 from katterjohn/memv-fix
memv: compare using eqv? instead of equal?
2019-09-24 22:07:17 +08:00
Kris Katterjohn
ea92d228b3 memv: compare using eqv? instead of equal?
memv has been defined to be member, so it has been comparing
using equal? (by default) instead of eqv?.
2019-09-23 20:43:25 -05:00
Alex Shinn
e2d43bceb8
Merge pull request #575 from katterjohn/listener-socket-leak
(chibi net): make-listener-socket: close the socket on error
2019-09-23 16:52:48 +08:00
Alex Shinn
eaf8e90e8c fix inexact json parsing 2019-09-23 12:09:52 +08:00
Alex Shinn
72971fd4f4 pipes should be escaped in symbols (fixes issue #571) 2019-09-23 11:53:54 +08:00
Kris Katterjohn
a28da66990 (chibi net): make-listener-socket: close the socket on error
A socket was leaked in the case where setting socket-opt/reuseaddr
failed.  (The socket was closed in the cases where bind or listen
failed.)
2019-09-22 19:18:18 -05:00
Alex Shinn
144581b834
Merge pull request #573 from katterjohn/net-export-addrinfo-flags
(chibi net): export address-info-flags
2019-09-20 23:02:19 +08:00
Alex Shinn
41d1f11dd3
Merge pull request #572 from katterjohn/system-export-groupp
(chibi system): export group?
2019-09-20 23:01:52 +08:00
Kris Katterjohn
407d420c21 (chibi system): export the struct group predicate group? 2019-09-19 15:47:41 -05:00
Kris Katterjohn
bb4239bac8 (chibi net): export the struct addrinfo getter address-info-flags 2019-09-19 15:45:26 -05:00
Alex Shinn
b9c25ab3f1
Merge pull request #567 from katterjohn/sockaddr-port-fix
(chibi net): sockaddr-port: return the port number in host byte order
2019-09-17 00:10:42 +08:00
Alex Shinn
dc18568236 forgot the factor of 8 in the range 2019-09-13 23:31:40 +08:00
Alex Shinn
713c6f7135 fix range check in unicode-string-width from edit-line 2019-09-13 23:10:39 +08:00
Alex Shinn
aa85d53989
Merge pull request #568 from katterjohn/sockaddr-name-fix
(chibi net): sockaddr-name: fix support for IPv6 addresses
2019-09-12 10:59:46 +08:00
Kris Katterjohn
fd7ff6d33f (chibi net): sockaddr-name: fix support for IPv6 addresses
The buffer was too small to hold all IPv6 addresses in string form
2019-09-10 18:04:01 -05:00
Kris Katterjohn
a7a620af1a (chibi net): sockaddr-port: return the port number in host byte order 2019-09-10 17:54:14 -05:00
Alex Shinn
197894eb87 fix (expt fixnum flonum) by reverting ce9c60c1 2019-09-09 23:25:27 +08:00
Alex Shinn
af686a8b50 Merge branch 'master' of github.com:ashinn/chibi-scheme 2019-09-03 19:57:12 +08:00
Alex Shinn
e9c8bed95a random-integer should check for positive bounds 2019-09-03 19:56:59 +08:00
Alex Shinn
00d084414e
Merge pull request #563 from fisherro/chicken-5-support
Change snow-chibi to work with Chicken 5
2019-08-31 22:37:50 +08:00
Alex Shinn
ae98680259
Merge pull request #564 from katterjohn/process-bsd-fix
(chibi process): fix process-running? on OpenBSD, NetBSD and DragonFly
2019-08-31 22:36:49 +08:00
Kris Katterjohn
3da3f3cab3 (chibi process): fix process-running? on OpenBSD, NetBSD and DragonFly
tl;dr process-running? would always return #f on OpenBSD and
NetBSD, and in the one-argument case it would always return #t
on DragonFly.

To get the process information from the process table on OpenBSD
and NetBSD, we need to pass 6 level names to sysctl instead of 4.
Passing the wrong number of level names to sysctl has caused it
to always fail, which in turn caused process-running? to always
return #f:

  (process-running? 1)                        =>  #f
  (process-running? (current-process-id))     =>  #f

and so on.

After the above fix, we also need to check the amount of data
actually filled in by sysctl.  It appears that on OpenBSD, NetBSD
and DragonFly, if the requested process doesn't exist then sysctl
will return with a return value of 0 and just not actually fill in
the given structure.  This caused process-running? to return #t
when no process with the given PID existed:

  (process-running? -1)                       =>  #t
  (process-running? <other nonexistent pid>)  =>  #t

and so on.

I have tested on OpenBSD, NetBSD, DragonFly BSD and FreeBSD, and
process-running? now behaves as expected on all of them.
2019-08-30 13:05:32 -05:00
Robert Fisher
7f3d322407 Fix installation for Chicken 5
To get the repository path in Chicken 5, we not only have to require the
chicken.platform module, we also need to take the car of the result
since it now returns a list.
2019-08-29 11:42:21 -05:00
Robert Fisher
13d4bbf1d1 Change snow-chibi to work with Chicken 5
The method snow-chibi used to get the version of Chicken installed
doesn't work with Chicken 5. Adding "-R chicken.platform" would make it
work with Chicken 5, but then it wouldn't work with Chicken 4.

In both Chicken 4 & 5, however, csi has a -release option that will just
give the version number. So, I've changed the Chicken version detection
in snow-chibi to use this option.

Testing with...

	./chibi-scheme tools/snow-chibi.scm implementations

...then seemed to work with both Chicken 4 & 5.
2019-08-29 09:16:36 -05:00
Alex Shinn
0bfc31a1e5 check for too many args to if (issue #561) 2019-08-29 21:56:00 +08:00
Alex Shinn
4282a6da0d
Merge pull request #562 from katterjohn/git-ignore-pty
Add lib/chibi/pty.c to .gitignore
2019-08-29 21:50:25 +08:00
Kris Katterjohn
789abbabb3 Add lib/chibi/pty.c to .gitignore 2019-08-28 19:38:08 -05:00
Alex Shinn
19f408a041 Merge branch 'master' of github.com:ashinn/chibi-scheme 2019-08-24 22:34:30 +08:00
Alex Shinn
e7b9510656 allowing required args in opt-lambda, adding define-opt 2019-08-24 22:34:20 +08:00