Commit Graph

1361 Commits (7c7bb93c55ce5dc4f6411c83ead3eea1fc726d3a)

Author SHA1 Message Date
John Benediktsson 7c2e8d0fad io.launcher.unix: simplify use of temp-directory. 2016-03-18 10:36:45 -07:00
John Benediktsson 32b29f7079 io.files.info: cleanup by using with-temp-directory. 2016-03-17 17:51:36 -07:00
John Benediktsson 2e85dd2eb3 io.directories: simplify tests by using with-temp-directory. 2016-03-17 17:11:59 -07:00
Doug Coleman d4b8e44399 license rename: fix the rest of it. 2016-03-17 02:36:34 -07:00
John Benediktsson 73de6246b7 io.files.temp: use a startup hook as the temp directory could change from run to run. 2016-03-16 21:40:25 -07:00
Doug Coleman 2aadc94b10 io.files.temp: Initialize symbols after the backends are loaded. Top level code sucks. 2016-03-16 21:25:19 -07:00
John Benediktsson 33b6c0426d io.files.temp: allow changing of current temp and cache directory. 2016-03-16 15:19:10 -07:00
John Benediktsson 497f8cb514 Update tests for LICENSE.txt rename. 2016-03-16 10:13:56 -07:00
John Benediktsson ebfa9402d4 io.sockets.unix: using getsockopt doesn't need to recurse. 2016-03-14 08:42:54 -07:00
Doug Coleman bb7161a46f io.sockets.secure.windows: Add some code for loading the certificates on
windows. Still disabled, and the CA certificates are duplicated.
2016-03-13 16:11:45 -07:00
John Benediktsson a58a2ff7b0 io.sockets.unix: don't need these imports. 2016-03-13 13:43:57 -07:00
John Benediktsson cd90435588 io.sockets.unix: refactor getsockopt into get-socket-option. 2016-03-13 13:34:29 -07:00
John Benediktsson b3fbafcf92 io.sockets.unix: adding tests for connection refused. 2016-03-13 13:15:45 -07:00
John Benediktsson 3fdbbe0fea io.sockets.unix: use getsockopt to check connect success. 2016-03-13 13:08:26 -07:00
Doug Coleman 460555785c io.sockets.secure.openssl: Fix docs. 2016-03-13 01:45:52 -08:00
Doug Coleman df3f58ae61 io.sockets.secure.openssl: Fix subject-name-match? for wildcard domains.
Also remove duplicate names before checking.
2016-03-12 20:22:47 -08:00
Benjamin Pollack b0d62bcdc3 io.sockets.secure: add SNI support for Windows
M: secure ((client)) is identical between Unix and Windows, so this probably
could be moved out of the platform-specific vocab, but doing it sanely would
require a refactor I'm not excited about, so punting on that for now.

Fixes #1551
2016-03-12 09:27:31 -05:00
Björn Lindqvist 2713153273 io.sockets.tests: these needs to be conditional, in case you are ipv4 only 2016-03-10 04:11:23 +01:00
Doug Coleman a1f3378365 io.sockets: Default make-sockaddr-outgoing to make-sockaddr. 2016-03-08 09:21:49 -08:00
Doug Coleman 3cd2775855 io.sockets.unix: Fix ipv6 sends for udp on osx. 2016-03-08 04:46:26 -08:00
Doug Coleman a12a56f777 io.sockets: Special-case 0.0.0.0 and f for outgoing sockets so we can use
them on windows. Add some tests that shouldn't fail. Fixes #85.
2016-03-08 02:27:01 -08:00
Doug Coleman 027a9fb1a2 io.sockets: Fix send-once for inet6. 2016-03-07 16:58:56 -08:00
Doug Coleman 05a8ac2423 Revert "io.sockets: Windows doesn't recognize 0.0.0.0. Add a method for"
This reverts commit 2c82dfb51b.
2016-03-07 14:31:40 -08:00
Doug Coleman 2c82dfb51b io.sockets: Windows doesn't recognize 0.0.0.0. Add a method for
resolve-localhost for Windows, and make the default ipv4 make-sockaddr use
127.0.0.1 since we are making a sockaddr for ipv4 anyway and 127.0.0.1 is
cross-platform. Fixes #85.
2016-03-07 14:07:01 -08:00
Doug Coleman 334cc880ec io.standard-paths.windows: We call >lower on the paths being compared, but
not on the original file we are looking for. So searching for something
like "Code.exe" would never find it. Fixed.
2016-03-07 13:21:30 -08:00
John Benediktsson ee134373f0 ip-parser: some cleanup, move ipv6 parsing here. 2016-03-05 09:51:37 -08:00
Benjamin Pollack e707374085 Make <inet4> and <ipv4> use ip-parser:parse-ipv4
Fixes #1209
2016-03-05 09:11:56 -05:00
Doug Coleman a303637850 io.sockets.secure.windows: Try to fix compile error. 2016-03-05 02:57:39 -08:00
Doug Coleman c077ee91e9 openssl: More ciphers. 2016-03-04 18:42:35 +00:00
Doug Coleman 46c9143232 openssl: call SSL_CTX_set_ecdh_auto() for forward secrecy. 2016-03-04 10:05:09 -08:00
Doug Coleman 0bfe6ff826 openssl: support more protocols for forward secrecy. 2016-03-04 09:19:08 -08:00
Doug Coleman 3576c0930c openssl: Prefer tls1.2. Only use secure ciphers. 2016-03-04 09:15:12 -08:00
Benjamin Pollack e83e791a7a Do not attempt to set an SNI hostname on a server 2016-03-03 13:58:31 -08:00
Benjamin Pollack 62d1425971 Add SNI support to Factor
Fixes #1527
2016-03-03 09:48:20 -08:00
Benjamin Pollack bfd656df17 Dump everything before TLSv1
All versions of SSL are deprecated and have major security issues. Just
kill the whole thing. If you want to deliberately expose yourself to
POODLE, you can do it on your own time.
2016-03-01 19:43:06 -05:00
Doug Coleman 3f07cbd194 io.sockets.secure.openssl: Nuke RSA. 2016-03-01 14:02:47 -08:00
Benjamin Pollack 12af22f3ee openssl: only set RSA keys if required to do so
Modern OpenSSL and LibreSSL both do not require SSL_CTX_set_tmp_rsa to
be called unless SSL_CTX_need_tmp_rsa returns true, and LibreSSL and
OpenSSL compiled with deprecation warnings both will fail if this
happens. This commit resolves that.

With this change, it becomes possible to use LibreSSL in place of
OpenSSL with Factor.
2016-02-23 08:11:04 -05:00
Benjamin Pollack 8073c8a77e Update OpenSSL calls to work with LibreSSL/newer OpenSSL
RSA_generate_key has been deprecated, and is not available in either
LibreSSL or newer OpenSSL that are not compiled with deprecated call
support. This commit switches to the still-supported
RSA_generate_key_ex, which is supported by both libraries.

Note that this is still insufficient for Factor to work under LibreSSL,
though we now get a call further than before.
2016-02-22 14:21:39 -08:00
Doug Coleman 69d5a3a276 io.sockets: remove send-n-times, broadcast-n-times. 2016-02-20 18:37:08 -08:00
Doug Coleman e4347f5254 io.sockets: Add more utility words for working with udp. 2016-02-19 19:21:13 -08:00
Doug Coleman 67e7874e91 io.files.info.unix.linux: Special characters in mount points are encoded as octal escape sequences. 2015-11-03 15:55:14 -08:00
Doug Coleman acdd529983 io.monitors.windows: ADS pathnames crashing the monitors threads is the
real culprit. Back out change and print out the crash and error message instead of ignoring
errors!
2015-11-02 21:19:12 -08:00
Doug Coleman 51ecaa5ab4 io.files.windows: ALIEN: -1 puts an expired alien in the image. -1 <alien>
it is then.
2015-11-02 21:18:49 -08:00
Doug Coleman d645b2e17c io.monitors.windows: Strip the :Zone.Identifier from pathnames reported
by the file change api.
2015-11-01 19:58:05 -08:00
Doug Coleman 26e5c1aecf windows.kernel32, io.files.windows: Add support for listing alternate data
streams, e.g. file paths like foo.txt:Zone.Identifier.
2015-11-01 18:17:51 -08:00
Björn Lindqvist 575da3e478 VM: fix so that errno is set if MoveFileEx fails, should fix #1490 2015-10-12 12:19:21 +02:00
Björn Lindqvist 37cd54cfbb io.files.windows.tests: windows test for the save-image not failing failure #1489
this one really should always throw permission denied or else something
is very spooky
2015-10-11 04:21:43 +02:00
Björn Lindqvist e35087fb22 io.files.windows: fix incorrect parsing of file attribute bitfield in win32-file-attributes 2015-10-11 04:11:30 +02:00
Doug Coleman db793e06f6 io.files.windows: SetFilePointer takes a PLONG not a uint pointer. 2015-10-09 19:50:06 -07:00
Doug Coleman 78f9fe9053 io.monitors.windows: make a DWORD ref instead of a uint. probably
irrelevant but it's what the win32 api header uses.
2015-10-09 19:21:24 -07:00
Björn Lindqvist 75b8b4a408 io.servers: filter the list of addrspecs in listen-on so that only
usable ones remains

"localhost" resolve-host can return unusable ipv6 addresses on hosts not
supporting ipv6. So a filtering step is needed in listen-on.
2015-10-08 15:08:07 +02:00
Björn Lindqvist 0a3b4b4872 io.sockets.secure.debug: use <test-secure-config> in some places
the word can be reused in a few places when setting up ssl. it removes
some duplicated code
2015-10-04 01:25:11 +02:00
Björn Lindqvist dbcfc178ff io.directories.unix,environment.unix: better to use
native-string-encoding over hardcoding utf8
2015-10-01 15:52:51 +02:00
Alexander Iljin 156a2d0b90 Minor documentation fixes. 2015-09-29 09:12:29 -07:00
John Benediktsson 924fc60e30 io.ports: bring back file read performance, ignoring zeroes. 2015-09-23 20:07:53 -07:00
Doug Coleman 84e0034168 io.standard-paths.unix: iterm2 integration has some spew before every bash command if you have enabled shell integration. these commands end in ascii 7, so find the last one, strip it off, and then split on ":". Fixes the mac graphviz install problem. 2015-09-23 17:11:47 -07:00
John Benediktsson 59caf874a3 syntax: removing #! as a comment character.
We don't need two types of comments and shebang (#!) is handled
natively by the lexer, so the original reason for #! is not valid.
2015-09-09 18:28:08 -07:00
John Benediktsson e477f6996f Fix comments to be ! not #!. 2015-09-08 16:15:10 -07:00
John Benediktsson ceb75057da change ERROR: words from throw-foo back to foo. 2015-08-13 16:13:05 -07:00
John Benediktsson c9bd438d18 io.launcher: fix bad refactor. 2015-08-13 06:51:44 -07:00
Doug Coleman b6be8685c3 basis: ERROR: changes. 2015-08-13 03:20:39 -07:00
Doug Coleman 02008979d9 factor: Change ERROR: foo ; to define ``throw-foo`` instead of having ``foo`` throw implicitly. The old ``foo`` still throws implicitly because this is a big change to get right in one patch, but it should be removed soon. 2015-08-12 15:26:18 -05:00
Doug Coleman e0d1b14e5c factor: don't need FROM: namespaces => set or namespaces:set anymore 2015-08-12 11:25:57 -05:00
Doug Coleman 46587f8457 factor: arch -> arch-name. fix breakage caused by other patch. 2015-08-12 11:08:24 -05:00
Doug Coleman 16fac5981e io.styles: image -> image-style in docs too 2015-08-12 09:09:41 -05:00
Doug Coleman 330c7ba156 factor: Removing SLOT: nth/at/global in favor of using change: at for tuple slots named ``at`` and change-at for hashtables.
Redo many FROM: and QUALIFIED: and using lists.
2015-08-12 08:49:02 -05:00
Doug Coleman 00338f62f3 factor: put inline on same line as ; for experimentation 2015-08-10 12:55:27 -05:00
John Benediktsson 2a3427bdff io.files.info: use directory?, symbolic-link?, and regular-file?. 2015-08-05 18:33:35 -07:00
Doug Coleman 23899e2d83 io.files.windows: Need the SLOT: file from io.sockets.secure.openssl 2015-07-30 00:05:37 -07:00
John Benediktsson 823524c3a0 io.backend.unix.macosx: change to << require >>. 2015-07-28 19:33:24 -07:00
John Benediktsson e26493b97b io.backend.unix.macosx: change USE: to require. 2015-07-28 19:13:29 -07:00
Björn Lindqvist 5e29aac0a6 Docs: various more compiler-related docs 2015-07-28 17:58:28 -07:00
Doug Coleman 1fcf96cada factor: remove """ string syntax for now. there are HEREDOC:, STRING:, escaping \", and something else soon. 2015-07-25 22:59:56 -07:00
Doug Coleman 89ffe8fa82 io.encodints.iso2022: fix unit tests 2015-07-21 19:33:08 -07:00
Doug Coleman c1a330ac7a io.encodings.iso2022: use $ instead of making ESC a parsing word. 2015-07-21 17:33:14 -07:00
John Benediktsson 5eec781b40 use ``if*`` instead of ``dup [ ] [ drop ] if``. 2015-07-20 22:24:30 -07:00
Doug Coleman 2f6548d6d2 factor: fix breakage with word renamings. 2015-07-20 05:51:16 -07:00
Doug Coleman 618330b31e factor: rename system:vm -> vm-path to differentiate it from vm:vm (which is a STRUCT:) 2015-07-20 00:10:29 -07:00
Doug Coleman 5f8426cfbe factor: rename files that are not loadable on mac, too 2015-07-19 16:55:36 -07:00
Doug Coleman 0176591527 factor: actual patch to remove ; from all c/fortran functions 2015-07-19 16:25:30 -07:00
Doug Coleman 4ec2311406 factor: Trim whitespace after ! comments and a few USING: lines that got skipped before. 2015-07-18 20:14:22 -07:00
John Benediktsson 5d6632514a io.sockets: make host-name a hook and throw correct errors. 2015-07-16 13:15:14 -07:00
Doug Coleman 892c62e1dc factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test 2015-07-03 09:39:59 -07:00
Doug Coleman 59f3b1ea57 Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"
Needs a bit more work.

This reverts commit 7e54cc2824.
2015-07-02 13:47:06 -07:00
Doug Coleman 7e54cc2824 factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool! 2015-07-02 11:36:08 -07:00
Doug Coleman 999aa7c897 factor: clean up spaces in -tests files 2015-07-02 10:34:01 -07:00
Doug Coleman e3cb325040 factor: clean up whitespace in -docs files 2015-07-02 10:31:22 -07:00
Doug Coleman 352e5de16a core, basis, extra: Remove DOS line endings from files.
Remove whitespace from end of lines.
Add a newline to the end of each file.
2015-06-29 17:25:40 -07:00
Doug Coleman 9d2c641a99 io.standard-paths: On mac when you launch Factor from the doc it doesn't have the login shell PATH variable for paths such as /usr/local/bin for homebrew. Add a word that finds things in this path as well.
Note that launching a binary found this way needs the full path, as the PATH variable itself is not modified and the binary will still not be in PATH if it wasnt before.
2015-06-24 18:44:09 -07:00
Doug Coleman 6e60c811ac core: Rename create to create-word, create-in to create-word-in. 2015-06-08 12:47:35 -07:00
Doug Coleman 2ee3516bf1 io.files.unique: Better docs for with-unique-directory. 2015-06-01 15:22:05 -07:00
John Benediktsson 22402a2e07 Revert "io.standard-paths: adding support for PATHEXT."
This reverts commit be9bff0e5b.
2015-06-01 14:59:36 -07:00
John Benediktsson be9bff0e5b io.standard-paths: adding support for PATHEXT. 2015-06-01 14:57:47 -07:00
John Benediktsson 0d7c3c5291 io.standard-paths: add ?find-in-path. 2015-06-01 14:26:38 -07:00
John Benediktsson 2884f8dabe io.standard-paths.windows: use map-find. 2015-06-01 14:26:27 -07:00
Doug Coleman cf3ccd0abe io.directories.search: Add some more combinators for finding files. 2015-05-21 22:35:24 -07:00
Doug Coleman 12bd42c663 io.monitors: Fix using, speed up test from 3 second timeouts to 100ms timeouts. 2015-05-19 12:37:07 -07:00
Doug Coleman 0962b4a697 io.monitors: Run each set of monitors tests in its own directory. Fixes #1106. 2015-05-19 10:50:58 -07:00
John Benediktsson b366a06c41 use reject instead of [ ... not ] filter. 2015-05-12 18:50:34 -07:00
Björn Lindqvist ba8caa72fb io.crlf: the lf>crlf and crlf>lf words looks generally useful, lets put them in io.crlf to reduce some code duplication 2015-05-12 09:32:05 -07:00
Doug Coleman f2c67d6ab4 io.directories.search: Add two tests for find-up-to-directory, one that finds a file and one that doesn't. 2015-05-08 21:02:29 -07:00
Doug Coleman 2aa6ce7e8c io.directories.search: fix inline recursive combinator compilation. fix
reversed logic for containing-directory
2015-05-07 16:49:32 -07:00
Doug Coleman 510f605df9 io.directories.search: Add find-up-to-root combinator and helper words.
Example:  "c:\\factor64\\.git\\objects" [ ".txt" tail? ] find-up-to-root .
"c:\\factor64\\.git"
2015-05-05 23:26:52 -07:00
Doug Coleman 74f5eacec7 editors.visual-studio-code: Support for m$ft's new code editor. Can't
figure out command line parameters yet.
io.files.temp.windows: Make (get-appdata-directory) not private and rename
it to get-appdata-directory.
2015-04-30 18:21:15 -07:00
Doug Coleman 7895e0fcaa io.launcher.windows tests: Use unique-file instead of temp-file. Fixes 2015-04-01 15:44:55 -07:00
John Benediktsson 3f3c11c446 ui.backend.cocoa: fix reset of thread-timer. 2015-01-17 15:58:57 -08:00
John Benediktsson be173c8a43 core-foundation.run-loop: cleanup timer-thread code. 2015-01-17 14:16:24 -08:00
John Benediktsson 3515a45b84 io.launcher: fix stack effects. 2014-12-30 17:23:24 -08:00
John Benediktsson 3e7bc051d4 io.launcher: fix docs for with-process-reader and with-process-writer. 2014-12-30 15:04:34 -08:00
John Benediktsson 9fd568267d io.launcher: add versions of with-process that preserve process and status. 2014-12-30 14:51:23 -08:00
John Benediktsson 83f7b31910 io.launcher: cleanup public interface, make some things private or internal. 2014-12-30 10:04:09 -08:00
Doug Coleman c59a025288 io.ports: Make buffered-port not have a length because of Linux virtual files and TCP sockets.
Related to issues #1256 and #1259.
2014-12-23 13:47:50 -08:00
John Benediktsson 76761b2e59 more minor cleanup. 2014-11-30 19:26:23 -08:00
John Benediktsson 49bcbaee7a removing small and unnecessary files. 2014-11-29 17:24:42 -08:00
Doug Coleman d23ab51ce8 io.files: Move with-cd to the tests file so that nobody uses it. My bad. Basically nobody should ever use cd or cwd for anything. Fixes #1214. 2014-11-23 01:39:36 -08:00
Doug Coleman aff0150a8c io.files: add with-cd. Related to #1214. 2014-11-22 22:21:35 -08:00
John Benediktsson 7badef25ce libc: reduce code duplication. 2014-11-21 10:19:12 -08:00
John Benediktsson 39093727b1 libc: rename (io-error) to throw-errno. 2014-11-21 09:29:45 -08:00
John Benediktsson 3f362dfc99 destructors: change check-disposed not to drop the disposable. 2014-11-21 08:19:05 -08:00
John Benediktsson 45bd145596 io: use errno case instead of cond. 2014-11-20 19:46:14 -08:00
John Benediktsson c0b4c1adb1 io.buffers: unsafe code is more unsafe. 2014-11-20 17:46:36 -08:00
John Benediktsson 25f3032d04 io.ports: use fixnum where possible, assert c-ptr since we use memcpy. 2014-11-20 17:19:16 -08:00
John Benediktsson f6ed37a6f7 io.ports: some cleanup before optimizations. 2014-11-20 16:19:39 -08:00
John Benediktsson e55af0ebfe io.buffers: simplify test word. 2014-11-20 15:46:07 -08:00
John Benediktsson c60a3e6e80 io.buffers: adding a buffer-read-into that can take a c-ptr or a sequence. 2014-11-20 14:40:43 -08:00
John Benediktsson 0a31a7c17a io.backend.unix: { fixnum } read will be a { fixnum } . 2014-11-20 13:23:53 -08:00
Doug Coleman 0fe5b2d90f io.directories: Add unit test for #890. 2014-11-18 14:11:13 -08:00
Doug Coleman 831ec24b14 io.sockets.windows: Spacing cleanup. 2014-11-18 14:06:24 -08:00
Doug Coleman 09f0edfb2f io.launcher.windows: Don't cd to directory when calling run-process. Fixes 2014-11-18 14:03:06 -08:00
Doug Coleman cab001234a io.sockets.windows: Fix unit test--recover leaves socket on stack, nip
it.
2014-11-18 14:02:44 -08:00
John Benediktsson 0826d8468c io.launcher: really minor cleanup. 2014-11-16 20:31:50 -08:00
John Benediktsson f79d61060e io.buffers: cleanup interface a bit. 2014-11-16 18:54:24 -08:00
John Benediktsson b7ed0a431c basis/extra: cleanup some platform requires. 2014-11-15 14:25:12 -08:00
John Benediktsson d6b6f3893d basis/extra: switch to "vocab." os name>> append require. 2014-11-13 13:00:44 -08:00
Björn Lindqvist bbab41ade4 io.sockets.windows.tests: plugs the socket leaks (#1104) 2014-11-12 19:32:44 -08:00
Benjamin Pollack 2c3dd8c3c8 Remove executable bit from tons of files that aren't 2014-11-05 20:40:42 -08:00
John Benediktsson 21b4e31d60 Revert "io.backend.unix.macosx: Trying to change instances of USE: to require if"
This reverts commit 4bab33bddb.
2014-11-01 15:29:37 -07:00
Doug Coleman 4bab33bddb io.backend.unix.macosx: Trying to change instances of USE: to require if
the vocab must be loaded but no symbols are directly depended upon.
2014-11-01 13:16:13 -07:00
John Benediktsson 321186f6c5 io.backend.unix.macosx: need this for deploy. 2014-10-27 19:40:22 -07:00
John Benediktsson 8033741135 io/ui: slim down the USE: list 2014-10-24 17:33:27 -07:00
Doug Coleman be232dac9b io.backend: Remove duplicate definition of file-mode. Add mkdir-mode using non-magic symbols. Cleanup imports. 2014-10-24 17:16:40 -07:00
Doug Coleman 026aa163c8 io.launcher.windows: Make unit tests show that process fails rather than
reporting bogus error. Fixes #1152 (it wasn't really a bug, just bad
tests).
2014-10-16 16:40:49 -07:00
Doug Coleman d8121a9622 io.launcher.windows.test/env.factor: Fix script for new . behavior. 2014-10-07 13:51:13 -07:00
Björn Lindqvist c1187500de io.ports.tests: better to use with-disposal than calling the dispose word explicitly 2014-09-24 14:40:34 -07:00
Björn Lindqvist 47c16ed078 io.streams.limited.tests: use with-stream in the tests to ensure that the pipes are disposed 2014-09-24 14:40:34 -07:00
John Benediktsson d6019337f9 core-foundation: define some more callbacks. 2014-08-05 16:09:04 -07:00
John Benediktsson 8c58b99b1d Revert "openssl: define a startup-hook so that openssl initializes automatically"
This reverts commit 981ea313a0.

Conflicts:
	basis/openssl/openssl.factor
2014-08-05 12:14:53 -07:00
John Benediktsson fec182d2d8 io.backend.unix.multiplexers.run-loop: don't enable-all-callbacks twice. 2014-08-05 10:31:42 -07:00
Björn Lindqvist 60ffe0680e kernel: new combinator 2with = with with 2014-07-22 07:40:13 -07:00
John Benediktsson 5771cae818 io.monitors.recursive: fix second test. 2014-07-11 18:03:37 -07:00