Commit Graph

1221 Commits (f7b7b5afbf419cc8ea06e1c55e21b9bb5a32cecd)

Author SHA1 Message Date
John Benediktsson e50d1375a1 io: need to use libc for OS X? 2014-04-03 21:43:37 -07:00
Doug Coleman a02e8e3cda io.sockets.secure.openssl: Fix using list. 2014-04-02 23:11:52 -05:00
Björn Lindqvist ee19a97869 io.sockets.windows: wrap ioctlsocket and related constants to enable
setting sockets in non-blocking mode
2014-04-02 16:50:20 -05:00
Björn Lindqvist f8387a08ae Merge:
io.sockets.secure.windows: use non-blocking sockets to prevent
SSL_connect from blocking

On Windows, SSL_connect may hang forever if the server doesn't send any
data. To counteract that we temporarily set the socket non-blocking and
then call select in the wait-for-fd method.

Conflicts:
	basis/io/sockets/secure/openssl/openssl-tests.factor
2014-04-02 12:16:51 -05:00
Björn Lindqvist 4d8f3e8a78 io.sockets.secure.openssl: do-ssl-connect needs to call wait-for-fd 2014-04-02 12:13:21 -05:00
Björn Lindqvist eaca04de3b libc: several vocabs now need to depend on libc 2014-04-02 12:13:00 -05:00
Björn Lindqvist 753b2f0177 io.files: make wait-for-fd generic and dispatch depending on backend
do-ssl-accept need to call wait-for-fd so it needs to be generic. On
windows it's a noop but on unix it will wait for the fd.
2014-04-02 12:12:49 -05:00
Björn Lindqvist 6421af3401 io.sockets.secure.*: unification of lots of platform-independent code
Code that is duplicated in the backends moved to
io.sockets.secure.openssl. The wait-for-fd verb used by do-ssl-accept
doesn't have any equivalent on Windows so that needs to be
implemented.
2014-04-02 12:12:37 -05:00
Björn Lindqvist 5f38df7741 io.sockets.secure.windows: reading and writing from ssl sockets
Unified the drain and refill generics and put their definition in
io.files. They are now used by both the windows and unix ssl backend
for io. Windows ssl kind of works now, but the error cases are not
implemented correctly.
2014-04-02 12:12:14 -05:00
Björn Lindqvist 8c5ceb8b0c io.files.windows: new generic words drain and refill, like in io.backend.unix
The purpose of these words is to abstract out the pushing of the bytes
to the ports so that you can insert the ssl layer in between. Exactly
like how drain and refill are specialized on ssl-handle in
io.sockets.secure.unix.
2014-04-02 12:12:04 -05:00
Björn Lindqvist 6ed3a09b5d io.sockets.secure: new hook variable ssl-certificate-verification-supported?
t if the backend is able to verify certificates, f
otherwise. Currently certificate validation isn't implemented on Windows
2014-04-02 12:11:53 -05:00
John Benediktsson 03b7e67547 fix some help-lint errors. 2014-03-12 20:08:15 -07:00
John Benediktsson 0a2fef0775 io.sockets: change protocol-port to handle ``f`` on all platforms. 2014-03-12 07:27:39 -07:00
John Benediktsson 0a2e632d4c io.standard-paths.unix: fix tests on arch linux. 2014-03-11 11:37:00 -07:00
John Benediktsson b039b6a542 io.streams.string: cleanup tests. 2014-03-11 11:25:53 -07:00
John Benediktsson ee040a242c io.streams: some more test cases for sequence-read-until. 2014-03-10 15:29:11 -07:00
Björn Lindqvist 39b13b6736 io.sockets.secure.openssl: guard against SSL_get_peer_certificate returning null 2014-03-06 18:41:37 +01:00
John Benediktsson 332fc7bc1a io.files.info.unix.linux: cleanup stack effects. 2014-02-27 15:26:38 -08:00
John Benediktsson bf1f4e9aa2 io.streams.sequence: cleanup by moving type checks. 2014-02-25 09:32:47 -08:00
John Benediktsson f243b31ddd io.streams.sequence: rename (stream-seek) to sequence-seek. 2014-02-25 07:56:28 -08:00
John Benediktsson ee9ead89f8 io.streams.sequence: bounds check sequence-read-until. 2014-02-25 07:52:07 -08:00
John Benediktsson 0b04d3f279 io.streams.string: faster M\ string-reader stream-readln. 2014-02-24 21:47:49 -08:00
John Benediktsson 2fe03b6711 io.streams.string: inline <string-writer> so with-string-writer is faster. 2014-02-10 20:46:25 -08:00
John Benediktsson 517268c18f io.encodings.utf7: add copyright for Björn Lindqvist. 2014-01-11 08:55:54 -08:00
Björn Lindqvist a47c41e45c io.encodings.utf7: cleaned up vocab per review
1. Tuple is used to hold the decoding buffer instead of a global
2. Fixed problematic sequence type conversions.
2014-01-11 08:43:36 -08:00
Björn Lindqvist 797d73bb8c io.encodings.utf7: documentation and metadata files 2014-01-11 08:43:36 -08:00
Björn Lindqvist c286d91289 io.encodings.utf7: working utf7 decoding with tests 2014-01-11 08:43:36 -08:00
Björn Lindqvist 9a7a2648fd io.encodings.utf7: decoder implementation, doesn't support utf7imap4 yet 2014-01-11 08:43:36 -08:00
Björn Lindqvist 9c90bc0c67 io.encodings.utf7: better encoding using the group-by combinator 2014-01-11 08:43:36 -08:00
Björn Lindqvist 900c670894 io.encodings.utf7: implementation of decoding for new codec utf7 2014-01-11 08:43:36 -08:00
John Benediktsson 1acf307e15 io.streams: make stream-element-type inline on string-reader and byte-reader. 2013-12-02 17:44:03 -08:00
Doug Coleman a71e2d8060 io.sockets.secure.openssl: Fix docs. 2013-11-28 12:59:36 -06:00
John Benediktsson 473fdc0d84 io.encodings.string: faster decode by using sbufs. 2013-11-24 16:22:29 -08:00
John Benediktsson 13ec450ac8 io.encodings.string: faster for ascii and utf8. 2013-11-24 16:08:26 -08:00
John Benediktsson 0806a8ce15 io.encodings: string>byte-array-fast for when aux>> is f. 2013-11-24 13:43:00 -08:00
John Benediktsson 53592b9c7d io.sockets.secure.windows: add platforms.txt. 2013-11-16 16:20:34 -08:00
Doug Coleman 4bcb356ba8 io.sockets.secure.openssl: libssl error is opaque, check that cert files
exist in Factor beforehand so we can get a nicer error message.
Add missing USE: and neaten up the list.
2013-11-16 15:59:31 -08:00
Björn Lindqvist 5f2238f7d4 io.sockets.secure.windows: secure socket implementation for windows, it works reasonably but certificate validation is not working correctly yet 2013-10-11 10:23:40 -07:00
Björn Lindqvist 729bd8a362 io.sockets.secure.openssl.tests: remove windows.winsock import and another test for subject-name 2013-10-11 10:23:40 -07:00
Björn Lindqvist ad627a1395 openssl.libssl: on windows the X509_* family of functions is in a
different dll than the other functions in libssl
2013-10-11 10:23:40 -07:00
Doug Coleman e407981e12 io.directories: Add with-resource-directory word and use it. 2013-09-24 13:13:39 -07:00
John Benediktsson 602e0aab94 io.ports: speed up stream-flush. 2013-09-18 19:27:40 -07:00
Björn Lindqvist bc56b5099f io.sockets, urls: move documentation for protocol-port 2013-09-16 17:31:37 -07:00
Björn Lindqvist 7c179f876c unix.ffi, windows.winsock: wraps for servent functions 2013-09-16 17:31:37 -07:00
John Benediktsson 32b07016b0 io.sockets.secure.openssl: some style improvements. 2013-09-16 17:24:31 -07:00
Björn Lindqvist 44a1d61bd4 io.sockets.secure: common-name -> subject-name 2013-09-16 17:17:48 -07:00
Björn Lindqvist c2fd5031e0 io.sockets.secure, io.sockets.secure.openssl: improved host name verification that takes into account a certificates subject alternative names. 2013-09-16 17:17:48 -07:00
Björn Lindqvist f4f60b8ba3 io.sockets.secure.openssl: support for getting issuer name 2013-09-16 17:17:47 -07:00
Doug Coleman 7ed9365c00 io.monitors.recursive: Fry quotations - do not apply liberally. 2013-07-16 14:43:29 -07:00
Doug Coleman 36a4eb7ee1 io.monitors.recursive: Bug - <recursive-monitor> could fail and leak a file monitor.
Fix - Monitors tests were "leaking" dummy-monitors objects.
2013-07-16 14:30:38 -07:00
Doug Coleman ec1ecbe549 io.directories.unix: If you mount a .iso, all the file types are +unknown+ according to directory-files.
Fall back to file-info on +unknown+ file types and use with-directory in with-unix-directory so the paths are correct for file-info.
Fixes #911.
2013-07-11 09:46:26 -07:00
Doug Coleman 1136ed9c19 io.launcher: Fix bug -- if dispose fails, still call dispose on the other
resource.
2013-05-19 10:22:07 -07:00
Doug Coleman 7c1caacc35 io.launcher: Fix two potential bugs.
1) If first (pipe) succeeds but second one fails, first pipe leaks.
2) out>> dispose fails, then in>> dispose is never called and leaks.
2013-05-19 10:18:14 -07:00
Doug Coleman c64cb2c886 io.pipes: If dispose on in>> throws, then out>> leaks. 2013-05-19 10:12:38 -07:00
Doug Coleman 19002c93a6 io.files.info: Longer names for file-info predicates. 2013-04-18 10:08:42 -07:00
Doug Coleman 345b5bb678 io.files.info: Add file? and symlink? words. 2013-04-18 07:35:47 -07:00
Doug Coleman 7a35d85f30 io.directories.search: Show directory entries instead of throwing them away. 2013-04-13 16:18:54 -07:00
Doug Coleman 84a93dd998 io.directories.search.windows: Windows8 doesn't find ProgramFiles with the
existing methods, find it in an os-env.
2013-04-09 12:19:06 -07:00
John Benediktsson 1718c69e56 io.files: use split instead of split*. 2013-03-31 16:04:11 -07:00
John Benediktsson 5a99bbaf1d io.directories.unix: style fix to line up code. 2013-03-25 19:47:56 -07:00
Doug Coleman 4bb509ccdf io.encodings.strict: Fix docs 2013-03-25 11:57:25 -07:00
Doug Coleman efc2dedab4 io.pools: Fix load 2013-03-24 21:40:29 -07:00
Doug Coleman f12633e73b io.launcher.unix, unix.ffi: Reset ignored signal in process launcher. Fix SIG_DFL etc. 2013-03-24 12:38:02 -07:00
Doug Coleman e0216808e2 io.encodings.strict: Rename 2013-03-24 10:11:18 -07:00
Doug Coleman dc1adc942b io.pools: Rename 2013-03-24 10:11:17 -07:00
Doug Coleman 20e14a96df unix.statfs etc: Naming conflicts. 2013-03-23 22:38:38 -07:00
Doug Coleman f4410e295a io.files.info.windows: Fix file-info-tuple inheritance. 2013-03-23 19:14:28 -07:00
Doug Coleman 3b7d0681af unix: rename C function kevent. 2013-03-23 17:44:00 -07:00
Doug Coleman 2761c45277 io.files.info: Fix unit test. 2013-03-23 17:20:00 -07:00
Doug Coleman d2024a84e3 io.files.info: Rename file-info and file-system-info. 2013-03-23 16:43:32 -07:00
Doug Coleman 8c19602ae9 assocs: Add of and ?of. Change all the things at once! Fixes #701. 2013-03-23 14:59:07 -07:00
Doug Coleman f9ea61bf91 basis/extra: Update last usages of <sliced-groups> to <groups>. 2013-03-23 12:08:18 -07:00
Doug Coleman 8917ae9ad7 grouping: Remove <groups>, old <sliced-groups> is now <groups>. Fixes 2013-03-23 11:37:51 -07:00
John Benediktsson 67a2b9dc9a io.encodings: speed up ascii and utf8 stream-read-until. 2013-03-18 13:35:22 -07:00
John Benediktsson 86b2dea8d5 io.encodings: remove duplication in decoder-readln. 2013-03-15 10:50:40 -07:00
John Benediktsson 68fed78c7d io.encodings.strict: some fixes. 2013-03-15 07:55:20 -07:00
John Benediktsson d11805228f io.files.info.unix.linux: use string>csv instead. 2013-03-15 06:40:24 -07:00
Doug Coleman ce72121c7a basis: End <PRIVATE with PRIVATE>. 2013-03-10 22:36:57 -07:00
Doug Coleman d7a61ae809 io.encodings.utf32: Fix unmatched <PRIVATE. 2013-03-10 22:20:59 -07:00
John Benediktsson 85d0c607b0 io.directories: fix docs for (directory-entries). 2013-03-06 17:35:53 -08:00
Doug Coleman f4834ce51c io.backend.unix: Nobody uses (refill), remove it. 2013-02-05 09:35:51 -08:00
John Benediktsson 83712ad87e io.directories: defining "?delete-file". 2012-10-25 10:07:15 -07:00
Doug Coleman 2921829b79 windows: Attempt to fix circularity. 2012-10-24 19:03:25 -07:00
John Benediktsson 04e783a886 io.files.info.unix: errno EACCES should be handled separately. 2012-10-24 17:51:13 -07:00
John Benediktsson 83b40e44d2 io.files.info: make access checks throw on file-does-not-exist. 2012-10-24 17:40:00 -07:00
Doug Coleman c458b7dcaf io.files.info.windows: Implement file-readable?, writable?, and executable? 2012-10-24 17:29:32 -07:00
John Benediktsson 379f060636 io.files.info.unix: make sure to normalize so special paths work. 2012-10-24 17:11:35 -07:00
John Benediktsson 37bb5f6917 io.files.info: adding checks for read, write, or execute permissions. 2012-10-24 16:44:12 -07:00
John Benediktsson 013160df9a change some "2drop 2drop" to "4drop". 2012-10-23 12:21:30 -07:00
John Benediktsson 87f55eb033 Change "3dup drop" to "2over". 2012-10-22 20:45:15 -07:00
John Benediktsson adb3a15d21 io.launcher.unix: fix tests to use arch in file names. 2012-09-22 10:30:10 -07:00
Doug Coleman 0bdcf5173f io.files.info: On my Windows7 box, D: is "not really there" and it kills
file-systems. Ignore errors instead of dying.
2012-09-16 17:23:25 -07:00
Doug Coleman bcc86baf45 io.sockets: Minor cleanup. 2012-08-26 00:04:53 -07:00
Doug Coleman 30673f65cf io.ports: More correct memory handling. There are still leaks in the tests... 2012-08-25 19:44:22 -07:00
Doug Coleman 27f445d505 assocs: Add sift-keys and sift-values. Remove three other implementations
of sift-values and use the new one.
2012-08-23 22:36:10 -07:00
John Benediktsson 8343c88f4d io.sockets: fix stack effect names. 2012-08-02 14:49:50 -07:00
John Benediktsson 7d8d6cdd51 core-foundation.run-loop: remove reset on every iteration. 2012-08-01 16:59:33 -07:00
John Benediktsson 1b32690d22 io.backend.unix.multiplexors.run-loop: switch to "mx get-global". 2012-08-01 16:20:31 -07:00
John Benediktsson 1a3e8a2994 io.backend: fix docs to show nanoseconds instead of micros. 2012-08-01 12:08:18 -07:00
John Benediktsson 3e6e6458e5 core-foundation.run-loop: do less work, speeds up yield by 50%. 2012-08-01 10:57:58 -07:00
Doug Coleman c448ea0e3e io.launcher.windows.tests: dos2unixfy it 2012-07-25 23:18:15 -07:00
Doug Coleman a4d7a76143 io.launcher: Bad usage of if-zero. Fixes #584. 2012-07-25 23:17:46 -07:00
John Benediktsson 4e72d80256 Using "same?" in more places. 2012-07-21 10:22:44 -07:00
John Benediktsson 2398580eb8 io.sockets.secure.unix.debug: move to io.sockets.secure.debug (not unix specific). 2012-07-19 19:17:52 -07:00
John Benediktsson 1a73e79ef7 cleanup some use of with-scope. 2012-07-19 13:55:34 -07:00
Doug Coleman 1da8666a70 io.sockets.unix: Needs to still use namespaces. Clean up using lists. 2012-07-19 00:53:09 -07:00
Doug Coleman 42f4dc36b2 namespaces: Rename ``bind`` to ``with-variables``. Update a few places that called ``global [ ] with-variables`` to use ``with-global``. 2012-07-19 00:02:47 -07:00
John Benediktsson 2f7e8c0352 io.directories: fix mistaken refactor. 2012-07-17 08:39:31 -07:00
John Benediktsson c507293d41 io.directories.hierarchy: faster directory-tree-files. 2012-07-17 08:25:53 -07:00
John Benediktsson b519b52fa3 io.directories: cleanup and some performance improvements with move/copy. 2012-07-16 22:03:49 -07:00
John Benediktsson 2f325e4fee using if-zero in even more places. 2012-07-16 19:38:49 -07:00
John Benediktsson 5cc30f46f5 using if-zero in more places. 2012-07-16 15:45:21 -07:00
Doug Coleman 82dd2ca3c9 utf16n: botched merge commit. oops 2012-06-21 09:04:09 -07:00
Doug Coleman 3dd30d2f49 issue #358: rename ole32-error -> check-ole32-error 2012-06-21 08:38:02 -07:00
Doug Coleman eccf5a82ae io.files.info.windows: Fix file-systems word in two ways. First, don't
allocate 32k on the local alloc stack (which causes a 'double fault.')
Second, if the volume doesnt look up to a real path, don't make a dummy
object for that. volume
Use alien>native-string and native-string>alien wherever possible instead of
utf16n for Windows.
2012-06-21 08:32:53 -07:00
John Benediktsson a20f12005a io.files.temp: adding with-temp-directory and with-cache-directory. 2012-06-18 12:22:59 -07:00
Doug Coleman 3447136e2a io.files.info.unix: When setting access or modified time alone, don't set the other time to 1970.
See #490.
2012-06-01 16:03:41 -07:00
John Benediktsson f53f6993ec io.sockets: fix stack effect for <broadcast>. 2012-05-29 15:47:15 -07:00
John Benediktsson 2db76ac23c io.sockets.windows: get the handle from the handle. 2012-05-29 11:20:55 -07:00
John Benediktsson 51fcae2d8b io.sockets: adding "broadcast port", ideally would just be +broadcast+ or something, but this works. 2012-05-29 10:46:19 -07:00
Doug Coleman 3507b9bad7 classes:
- Allow methods to dispatch off union{ } and intersection{ } classes.
- Add not{ } anonymous-complement syntax.
- Define class-name for anonymous-union/intersection/complement and maybes, and clean up pprint.
- Change maybe: foo to maybe{ foo }
- Call sort-classes when making anonymous-union/anonymous-intersection classes so that they are canonicalized.
2012-05-03 19:45:30 -07:00
Joe Groff 8b9b8df457 io.files.temp.windows: fix up 2012-04-16 11:55:33 -07:00
Joe Groff 480545a683 io.files.temp: use OS tmp dir; add cache-directory
Change temp-directory to return an OS-sanctioned temporary directory instead of "resource:temp". Add a new function cache-directory to return an OS-sanctioned directory for storing staging images etc. Fixes #365.
Windows implementation needs to be finished and tested.
2012-04-16 11:55:22 -07:00
Joe Groff b26ddc37e8 io.encodings.iana: remove values 2011-11-29 13:22:23 -08:00
Joe Groff 255d024e51 io.sockets: remove unneeded USING: values 2011-11-29 09:46:51 -08:00
Joe Groff 1ef6fc03e6 remove values vocab 2011-11-28 21:26:33 -08:00
Joe Groff 25ec33dc10 io.directories.unix: remove redundant using 2011-11-28 20:36:46 -08:00
Joe Groff 4c0d73da3c io.files.info: fix circularity
Remove the undocumented and redundant "copy-file-and-info" word, since "copy-file" does the same thing, and the circular dependency on "io.directories" was causing some deploys to fail
2011-11-28 19:37:01 -08:00
Joe Groff 7754ab2c06 io.directories.unix: make copy-file copy perms
Like the docs claim it does
2011-11-27 12:37:54 -08:00
Joe Groff 72de75b881 let's pretend BIN: HEX: OCT: never happened 2011-11-23 19:22:37 -08:00
Joe Groff 943596575a use radix literals 2011-11-23 19:03:40 -08:00
Doug Coleman 067f9830ef classes.union: Define a maybe: word that makes a tuple that acts as an anonymous union for a type and f. Updated all the places we define UNION: ?foo foo POSTPONE: f ;. Fixes #416 and lots of headaches. 2011-11-22 01:56:13 -08:00
Joe Groff 9b73ecdf70 io.monitors: kill outdated doc about kqueue on BSD 2011-11-17 16:56:34 -08:00
Doug Coleman 62f652a5a1 io.directories: fix delete-file on windows, add unit test 2011-11-12 18:28:07 -08:00
Joe Groff 1c99568492 io.sockets.windows: plug receive-from memory leak
Should fix #387.
2011-11-11 17:56:04 -08:00
Slava Pestov 98d98ab04a io.ports: clean up 2011-11-10 00:40:31 -05:00
Joe Groff d685cb6502 io.ports: make read-step inline 2011-11-09 19:59:46 -08:00
Joe Groff a67931b7c5 io.ports: fix bootstrap
Apparently can't use TYPED: or have HINTS: in the wrong place.
2011-11-09 16:32:47 -08:00
Joe Groff 9443f30b7d io.backend.unix: hints on M\ fd refill
Trims some low-order dispatch overhead for #376.
2011-11-09 16:32:47 -08:00
Joe Groff 5a3537b90a io.files: add file-reader, file-writer mixins
This lets us do some trickery so that the stream-element-type propagates from <file-reader>/<file-writer>. For #376.
2011-11-09 14:43:39 -08:00
Joe Groff bab801b321 io.ports: make read-step TYPED:
Eliminates more dispatch. For #376.
2011-11-09 14:13:41 -08:00
Joe Groff 63c48aa952 io.buffers, io.ports: trim some dispatch
For #376. Still some work to do.
2011-11-09 13:31:02 -08:00
Joe Groff feb8c6149a io.backend: start signal thread after io-backend
The c-io-backend can't handle input-ports and raises an error during bootstrap.
2011-11-08 11:54:54 -08:00
Joe Groff fc7c175c9f new module unix.signals: app-level signal handlers
example:

IN: scratchpad USING: unix.ffi unix.signals ;
Loading resource:basis/unix/signals/signals.factor
IN: scratchpad [ V{ "Me not that kind of orc!" "Me busy, leave me alone!" "Work work" "Zug zug" } pop print flush ] SIGINFO add-signal-handler
IN: scratchpad load: 0.60  cmd: factor 41541 running 0.28u 0.16s
Zug zug
load: 0.71  cmd: factor 41541 running 0.28u 0.16s
Work work
load: 0.71  cmd: factor 41541 running 0.28u 0.16s
Me busy, leave me alone!
load: 0.73  cmd: factor 41541 running 0.28u 0.16s
Me not that kind of orc!
2011-11-08 10:21:49 -08:00
Joe Groff 8337b08d0d io.backend.unix: startup hook for signal-pipe 2011-11-08 08:42:48 -08:00
Joe Groff ed24890dce io.backend.unix: init-signal-pipe function
Currently just reads off signal numbers and drops them.
2011-11-08 08:42:48 -08:00
Joe Groff 55a316248e io.launcher.windows: update tests for prompt 2011-11-08 00:09:25 -08:00
Doug Coleman 69ffe6377a io.backend.unix.macosx: Remove duplicate USE: 2011-11-02 17:47:15 -07:00
Joe Groff 8cf18d1a82 remove BSD,solaris,etc. misc platform support code 2011-11-02 17:13:51 -07:00
Doug Coleman 94db86a6db Make "foo.private" require load foo instead.
Move require from vocabs.loader to vocabs. Update everything.
Fixes #201.
2011-11-02 11:50:03 -07:00
Doug Coleman c44a998ef4 Fix typo in tests 2011-11-02 09:15:32 -07:00
Doug Coleman a647df58f6 Make editors use the new path-finding vocabulary and protocol.
Implement io.standard-paths on Windows.
2011-10-31 13:16:37 -07:00
Joe Groff bf0c7eaa22 io.encodings.string: make binary decode/encode nop
Fixes #319.
2011-10-31 11:07:44 -07:00
Doug Coleman ada631c202 Add core-foundation.launch-services for finding the path of a bundle. Add a new standard-paths vocabulary for finding files. 2011-10-30 16:11:18 -07:00
Doug Coleman ff27f2c3f7 Change order or articles in io.launcher. 2011-10-29 15:13:45 -07:00
Doug Coleman eb7fd4a69b Add options to set the child process group id or session for Unix. This fixes part of #307. 2011-10-29 02:47:10 -07:00
Slava Pestov 5b69026f59 io.launcher: change kill-process to also close the pipe, if there is one, so that try-output-process can timeout even if the process spawns a subprocess which inherits the pipe. This fixes part of #307 2011-10-28 21:53:25 -07:00
Doug Coleman 4ebe5218c7 Update Windows for word renames, fix lint errors 2011-10-24 21:50:02 -07:00
Doug Coleman 51c033a1f6 Fix all failures in the linux64 build email 2011-10-24 19:33:09 -07:00
Doug Coleman f9257959fd Rename class to class-of 2011-10-24 06:47:42 -05:00
John Benediktsson 5a943b32c4 Remove stack effects from HELP: declarations. 2011-10-20 19:36:11 -07:00
John Benediktsson fb2aab3545 Remove unused words. Fixes #132. 2011-10-19 11:01:16 -07:00
Doug Coleman 3507a0cc4b Don't use exception handling for handle>file-size 2011-10-19 10:15:09 -07:00
Doug Coleman 55bb863704 Create attributes>> accessor in io.files.windows 2011-10-19 03:14:19 -07:00
Doug Coleman b58688f87d Add throw-win32-error, use it in (delete-file) 2011-10-19 02:51:36 -07:00
Doug Coleman 5608178389 When deleting a file, if it fails with "Access is denied" then set the file
attributes to normal and try again. Some files in the .git directory are set
to read-only, preventing the build machines from deleting old builds.
2011-10-19 02:28:45 -07:00
Doug Coleman 55790cc6e4 Check if streams are seekable in Windows 2011-10-19 01:16:53 -07:00
Joe Groff e40453ebee io.streams.limited: missed INSTANCE: input-stream 2011-10-18 21:27:08 -07:00
Joe Groff 13b17fb84a io: input-stream and output-stream mixins 2011-10-18 16:25:09 -07:00
Joe Groff 9b2634fbd7 io.files.windows: fix can-seek? and length 2011-10-18 12:42:53 -07:00
Doug Coleman 5c694767cd Report which file doesn't get deleted on Windows. 2011-10-18 00:59:57 -07:00
Doug Coleman 24a6895436 io.sockets.windows - Add a using, output count to fix compile error. Not bad for having no Windows box. 2011-10-17 23:28:22 -07:00
Joe Groff 90e1002349 io.sockets: rename (receive) to (receive-unsafe) 2011-10-17 21:23:37 -07:00
Joe Groff 9a812cc5c9 io.ports: lift common methods onto buffered-port 2011-10-17 21:23:37 -07:00
Joe Groff 67cccc63b3 formatting 2011-10-17 21:23:36 -07:00
Joe Groff 68621c4d79 io.sockets.windows: recv to byte-array via malloc
WSARecvFrom on Windows does its work asynchronously, so the buffer cannot be in the managed heap during the extent of the operation.
2011-10-17 21:23:36 -07:00
Joe Groff 8fc0be3c2f io.sockets: remove unix.ffi inserted by auto-use 2011-10-17 21:23:36 -07:00
Joe Groff 5d0ff43613 io.sockets: receive directly into byte array 2011-10-17 21:23:11 -07:00
Joe Groff 20e49c273f io.sockets: receive-unsafe and receive-into
Analogous to read-unsafe/read-into for streams (and thereby TCP sockets), provide receive-unsafe and receive-into words for datagram sockets that receive into a caller-supplied buffer.
2011-10-17 21:23:11 -07:00
Joe Groff e426512534 more stream-seekable? and stream-length methods
- limited-streams and throw-on-eof-streams
- string-readers and byte-readers
2011-10-17 21:23:09 -07:00
Joe Groff 863ab575e3 io.ports: stream-seekable? and stream-length
io.files.windows, io.backend.unix: platform-specific backends for those methods
2011-10-17 21:23:08 -07:00
Joe Groff 09f55f82fa clean up forwarding stream-read-partial-unsafe
Now that "io" provides a method on object for stream-read-partial-unsafe that forwards to stream-read-unsafe, individual stream class that don't implement partial reads don't need to provide such a method themselves.
2011-10-17 21:23:06 -07:00
Joe Groff 6f12322bda kill noncopying-reader mixin, stream-read generic
Now that all streams have been updated to implement the stream-read-unsafe protocol, take out the noncopying-reader shim. Turn stream-read and stream-read-partial into plain functions over the -unsafe generics.
2011-10-17 21:23:05 -07:00
Joe Groff 5c945595ee io.encodings.string: faster decode and encode
stream-contents is apparently way slow for decoders. Write decode out more directly as a read1/push loop so it's faster. encode isn't quite as bad, but we can still get a 25% speed improvement by writing to an appropriately sized byte-vector.
2011-10-17 21:23:02 -07:00
Joe Groff 055196d4b7 io.streams.(limited,throwing): read-unsafe methods 2011-10-17 21:23:00 -07:00
Joe Groff 01419b3e6b io.streams.null: read-unsafe methods 2011-10-17 21:23:00 -07:00
Joe Groff a3b15543e1 io.ports: implement read-unsafe operations 2011-10-17 21:22:59 -07:00
Joe Groff 7e9dbde99f io.buffers: factor out buffer-read-unsafe word
buffer-read-unsafe returns a length and a pointer into the buffer instead of a copy.
2011-10-17 21:22:59 -07:00
Joe Groff d5f4b6f155 io.streams.sequence: change to provide read-unsafe
Change io.streams.sequence and its children io.streams.byte-array and io.streams.string to implement the -unsafe protocol and mixin noncopying-reader.
2011-10-17 21:22:59 -07:00
John Benediktsson f20e5df501 io.files.info.unix.linux: fix more M: stack effects. 2011-10-13 17:55:30 -07:00
John Benediktsson 2d8e7c77e8 io.files.info.unix.linux: fix M: stack effect. 2011-10-13 17:38:30 -07:00
John Benediktsson 1987deb359 Fix M: stack effects. 2011-10-13 16:41:17 -07:00
John Benediktsson 24232cb095 io.crlf: add a word that reads an optional CR. 2011-10-12 12:36:54 -07:00
Doug Coleman 7228c2df2c stream-element-type on output-ports was broken -- it looked for a stream>> slot but no such slot exists. add some unit tests 2011-10-12 01:05:01 -07:00
Doug Coleman c74402dad9 Fix using list because I'm dumb for developing Windows changes from a Mac. 2011-10-11 13:33:44 -07:00
Doug Coleman 63fa01fd4f Proper double-quote and backslash escaping for windows command line arguments. Fixes #245. 2011-10-11 12:21:04 -07:00
Doug Coleman 871dfb9a3a On Windows, escape command line arguments with double quotes with a backslash: " -> \". Fixes #245. 2011-10-10 22:24:23 -07:00
Doug Coleman 044a03dc34 On Windows, the overlapped structure high bits were always zero, so reading through a file > 4gb would loop forever. 2011-10-07 15:04:00 -07:00
Doug Coleman 2402345794 Add examples to encode/decode docs. 2011-10-06 13:21:18 -07:00
Slava Pestov dabbe35bd9 concurrency.mailboxes: linked-thread's error reporting should still work even when debugger.threads is not loaded. This addresses part of #95 2011-10-03 00:24:37 -07:00