Commit Graph

1436 Commits (revert-2214-feature-commandline-documentation)

Author SHA1 Message Date
John Benediktsson 1abe794205 io.buffers: refactor buffer-read-until to use buffer-find. 2016-11-09 10:43:47 -08:00
John Benediktsson 4bebe98fa1 io.buffers: adding another test of buffer-read-until. 2016-11-09 10:11:51 -08:00
John Benediktsson 816d1e31d5 io.pipes: allow "|" separated strings in run-pipeline. 2016-11-09 09:56:34 -08:00
John Benediktsson 3cc16ccd9e io.files.temp.unix: allowing TMPDIR to override /tmp. 2016-11-08 21:37:51 -08:00
John Benediktsson deac792fc7 io.files.temp.unix: changing cache directory to use XDG spec.
Typically this means ~/.cache/factor.
2016-11-08 21:24:34 -08:00
John Benediktsson fd13a94150 io.launcher: fix timeouts for process streams. 2016-11-08 20:57:47 -08:00
Björn Lindqvist 93661e9ea6 io.launcher.unix: better to use current-directory variable 2016-10-31 07:27:14 +01:00
Alexander Iljin 560caf8e4d io.directories.search-docs: fix indentation 2016-10-30 14:18:53 -07:00
Alexander Iljin 924880cb50 Add cp437 8-bit encoding, AKA IBM437 2016-10-27 08:44:15 -07:00
John Benediktsson 2628dbc5c9 io.directories.search.windows: merging with io.standard-paths.windows. 2016-10-06 14:57:40 -07:00
John Benediktsson 303367c57a io.launcher.windows: need to USE: io.launcher.private. 2016-10-06 13:50:04 -07:00
Alexander Iljin 65a2281188 io.launcher-docs: add notes on the hidden slot usage 2016-09-20 22:51:31 +03:00
Alexander Iljin c822395597 io.launcher: hide processes created by (process-stream) 2016-09-20 06:59:43 -07:00
Alexander Iljin 85710ced87 io.launcher: add the hidden slot to the process tuple
Implemented on Windows only.
2016-09-20 06:59:43 -07:00
Björn Lindqvist b0495b5fe3 io.backend.unix.tests: missed this none reference 2016-09-16 19:38:02 +02:00
Björn Lindqvist 20711a0fd3 Adding escaping to CHAR: " -> CHAR: \"
It is not necessary to escape the " character, but it doesn't hurt and
is necessary for syntax-highlighting (FUEL) to work correctly.
2016-09-04 06:40:43 +02:00
Björn Lindqvist 2f12413595 io.sockets.windows: WSASocket-flags not needed 2016-08-04 23:55:56 +02:00
John Benediktsson b864d49e8c io.sockets: adding docs and tests for port-protocol. 2016-08-01 10:22:16 -07:00
John Benediktsson ab66a73744 io.sockets: adding port-protocol to match protocol-port. 2016-07-30 11:12:40 -07:00
Björn Lindqvist ca2aef8e67 io.monitors.recursive: with-qualified-directory-files works here 2016-07-30 19:03:23 +02:00
Björn Lindqvist ba4bb45d4d io.directories.*: move of the qualified directory listing words to io.directories 2016-07-30 19:03:22 +02:00
Alexander Iljin ebfce1deea io.files.info-docs: fix links to file-info-tuple parameters 2016-07-30 09:25:30 -07:00
Alexander Iljin 2fd5654473 Add EOL at EOF for all authors.txt files for consistency
In some instances replaced CR/LF with LF.
2016-07-30 09:25:30 -07:00
John Benediktsson 6b12e2e3bc use ?delete-file instead of [ delete-file ] ignore-errors. 2016-07-10 20:28:46 -07:00
John Benediktsson e146309a0c io.encodings.binary: move to core. 2016-06-30 12:30:58 -07:00
Alexander Iljin ef29e0947f io.directories.windows: remove synchronous copy-file implementation 2016-06-29 14:17:57 -07:00
Alexander Iljin b43c7b4fd7 io.files.info.windows: suppress ERROR_FILE_NOT_FOUND in volume>paths 2016-06-22 11:27:26 -07:00
Alexander Iljin b35294eade io.sockets.secure-docs: update and add some documentation 2016-06-22 11:27:26 -07:00
Alexander Iljin d243e00f54 io.files.windows: use open-file to implement maybe-create-file
This fixes error throwing in case of CreateFile failure, and calls
add-completion for the file handle on success.
2016-06-22 11:27:26 -07:00
Alexander Iljin f530692362 io.files.windows: replace open-existing with open-r/w
This fixes error throwing in case of CreateFile failure, and calls
add-completion for the file handle on success.
2016-06-22 11:27:26 -07:00
Alexander Iljin ae1c7b7a54 io.files.windows: use CreateFileW in open-file for consistency 2016-06-22 11:27:26 -07:00
Jon Harper e9454fc310 io.files.info docs, sync link-info and file-info docs 2016-06-22 11:22:43 -07:00
Björn Lindqvist 6a76bf9084 io.directories.unix: normalize-path doesn't need to be called
It is already called by the words copy-file delegates to.
2016-06-15 01:25:53 +02:00
Björn Lindqvist ea4333e490 io.directories: new utility word make-parent-directories, for making sure directories exists 2016-06-15 00:33:44 +02:00
Doug Coleman c7041fe96e io.sockets.secure.windows: Windows sockets are a bit confused. Make a word
to get the handle out of two different paths. Probably needs more
refactoring but this makes it work.
2016-06-02 11:07:19 -07:00
Doug Coleman 05083ba503 io.sockets.secure.windows: No need to call file>> because we have a
win32-socket on the stack already.
2016-06-02 10:56:50 -07:00
Doug Coleman b63aaff1c5 io.sockets.secure: (server) needs a method on secure for Windows too. Move the method to a vocab that both platforms load. 2016-06-02 10:25:11 -07:00
Björn Lindqvist a80aeea7f9 io.files.windows: make CreateFile-flags a normal word (fixes the recent test failures) 2016-05-31 17:04:34 +02:00
Alexander Iljin 8e2a65e5a2 io.files.info.windows: add a comment to open-read-handle 2016-05-30 12:35:26 -07:00
Alexander Iljin aa7a285390 io.files.info.windows: fix flags in open-read-handle
Add FILE_SHARE_WRITE and FILE_SHARE_DELETE flags and calls CreateFile-flags
hook. This fixes file-readable? so that it uses the same flags as open-read
(issue #1470).
2016-05-30 12:35:25 -07:00
Alexander Iljin ff26c3d39c io.files.windows: add FILE_FLAG_BACKUP_SEMANTICS to CreateFile-flags
This provides additional access rights if the process has SE_BACKUP_NAME
or SE_RESTORE_NAME privileges. Does nothing otherwise.
2016-05-30 12:35:25 -07:00
Alexander Iljin 043c6984b9 io.files.info.windows: fix file-readable?
This fixes issue #1470. Now the method tries to open the file handle for
reading and returns t on success. This approach makes Windows check the
current user's permissions.
2016-05-30 12:35:24 -07:00
Alexander Iljin 2264638a61 io.files.info.windows: add open-read-handle to reuse later 2016-05-30 12:35:23 -07:00
Alexander Iljin 2b68636207 io.files.info.windows: fix parameter name for get-file-information-stat 2016-05-30 12:35:23 -07:00
Doug Coleman 3494576ad8 io.files.windows: Add a unit test to make sure shared flags stay on. 2016-05-30 12:24:17 -07:00
Doug Coleman 3307876cc2 io.files.unique: clean up the files that are created if not all files can be created. 2016-05-26 14:05:58 -07:00
Doug Coleman a399439a5f io.files.unique: Make sure the files are the same except for the suffix. Add unit test. Fix paths typo. 2016-05-25 17:49:59 -07:00
Doug Coleman e19df707da io.servers: Fix a regression where we couldn't listen on several ports at once. 2016-05-23 15:28:51 -07:00
Doug Coleman 48d9b2b4eb io.files.unique: Add a way to create multiple unique files at the same time. If any of them fail, then the whole operation fails. 2016-05-23 13:17:29 -07:00
Alexander Iljin 1e0bf40b7f docs: minor fixes and amendments. 2016-05-22 07:53:21 -07:00
John Benediktsson 9439c5a684 io.encodings.iso2022: stop using sets:unique. 2016-04-18 21:10:17 -07:00
Doug Coleman 9427c78506 ui.debugger: quotation stack effect wants ( .. -- * ), throw causes infinite loop, but rethrow works. change previous patch to rethrow everywhere. 2016-04-06 17:35:13 -07:00
Doug Coleman 363e08b6a8 factor: fix whitespace at end of files. 2016-04-06 16:53:25 -07:00
John Benediktsson 5cfd5ff224 io.streams.byte-array.fast: don't need >c-ptr. 2016-04-06 12:39:50 -07:00
Doug Coleman 49be5b2c52 io.directories.search: Fix unit test using list. 2016-04-05 14:49:27 -07:00
John Benediktsson 2269b07d33 use with-temp-file and with-temp-directory in some tests. 2016-04-04 10:33:03 -07:00
John Benediktsson c09312d881 io.files.unix: more test cleanup. 2016-03-31 21:32:05 -07:00
John Benediktsson 68b0f7d0f0 io: fix some temp-file uses in tests. 2016-03-31 21:32:05 -07:00
John Benediktsson d2daa05790 io: fix some temp-files in the tests to use unique-files. 2016-03-31 00:23:13 -07:00
John Benediktsson 498285d7dd unicode: make this the API for all unicode things. 2016-03-30 23:29:48 -07:00
Doug Coleman 95dc2f89e5 io.mmap: Clean up mmap tests so they can run at the same time. 2016-03-30 16:29:06 -07:00
Doug Coleman 9b3e522869 io.monitors.linux: fix a set. 2016-03-29 18:27:47 -07:00
John Benediktsson 71ef8a22c2 disambiguate namespaces:set and sets:set. 2016-03-29 17:14:42 -07:00
John Benediktsson 3f18b71d07 cleanup some QUALIFIED: that are no longer needed. 2016-03-29 10:20:16 -07:00
John Benediktsson 7d0c596c92 Hopefully fix stack effects of error hooks to throw when required. 2016-03-28 22:27:35 -07:00
Doug Coleman d3bc2035a2 factor: remove rest of double paren words. 2016-03-25 03:13:27 -07:00
Björn Lindqvist 0bb3228063 unix: fixed read-symbolic-link (#1074) + tests 2016-03-23 16:15:30 +01:00
Björn Lindqvist 53467d4e21 io.files.unix: loop getcwd with an expanding buffer, fixes part of #1074
It appears that the right way to do it is using an arbitrary sized buffer
and just expanding it in case getcwd reports ERANGE.
2016-03-23 16:15:29 +01:00
Björn Lindqvist 579875821b VM: removes the OBJ-ERROR special object in favor of a constant
The special object contained the string "kernel-error" which were used
to tag VM errors. But it is simplier and removes a little complexity to
just tag them with a fixnum constant.
2016-03-22 17:52:19 +01:00
John Benediktsson 50759f4bc6 io.files.unique: change cleanup-unique-file quot stack effect. 2016-03-19 13:03:15 -07:00
John Benediktsson bde8f522f1 fix some tests broken by my io.files.unique change. 2016-03-19 09:50:01 -07:00
John Benediktsson 9c323e2884 cleanup some uses of current-directory. 2016-03-18 17:04:05 -07:00
John Benediktsson e36727db23 io.files.unique: some cleanup. 2016-03-18 16:54:17 -07:00
John Benediktsson baae677276 io.files.unique: change to create unique files and directories relative to the current-directory. 2016-03-18 10:57:54 -07:00
John Benediktsson f5b31a85c0 io.monitors: change tests to not use unique because it only ever used temp-file. 2016-03-18 10:36:45 -07:00
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