]> gitweb.factorcode.org Git - factor.git/log
factor.git
2 years agohttp.websockets: Initial commit websockets
Doug Coleman [Wed, 22 Dec 2021 18:10:36 +0000 (12:10 -0600)]
http.websockets: Initial commit

Need to factor out add-origin-header and handling the connections. The
http integration is a little sloppy as well.

Try this:

"demo.piesocket.com/v3/1?api_key=oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm&notify_self=1"

<get-request> add-websocket-headers http-request* nip
[ in>> stream>> ] [ out>> stream>> ] bi dup .
[
    ! "hello" f 1 f send-websocket-text
    [ B default-handle-websocket ] read-websocket-loop
] with-streams

2 years agoeditors: don't show editors.private
Doug Coleman [Wed, 22 Dec 2021 01:41:34 +0000 (19:41 -0600)]
editors: don't show editors.private

2 years agosyntax: Add REUSE: word to easily USE: but reload.
Doug Coleman [Tue, 21 Dec 2021 21:27:18 +0000 (15:27 -0600)]
syntax: Add REUSE: word to easily USE: but reload.

My use case is specifically for load-all with editors. The last
editor on macOS is Xcode and I use vscode, and once you have
``USE: editors.visual-studio-code`` then the next time it's a no-op.

``REUSE: editors.visual-studio-code`` is the same thing but with
two extra characters, as opposed to ``"editors.visual-studio-code" reload``
which requires a lot more typing.

We could have ``EDIT:``, ``EDIT-DOCS:``, ``EDIT-TESTS:`` etc if this REUSE:
word is successful.

2 years agocore: Add auto-use to syntax and add -ea parameter to factor command line.
Doug Coleman [Tue, 21 Dec 2021 21:15:15 +0000 (15:15 -0600)]
core: Add auto-use to syntax and add -ea parameter to factor command line.

./factor -ea="..." will now auto-use

Both of these now work:
./factor -ea="1 1 + ."
./factor -e="auto-use 1 1 + ."

2 years agocompiler.tree.propagation: Eliminate redundant resize calls
timor [Fri, 30 Jul 2021 00:01:50 +0000 (02:01 +0200)]
compiler.tree.propagation: Eliminate redundant resize calls

Resizing an array or other primitive sequence to the exisiting length is a no-op.

2 years agocompiler.tree.propagation: Propagate length slot of primitive resize calls
timor [Thu, 29 Jul 2021 21:19:47 +0000 (23:19 +0200)]
compiler.tree.propagation: Propagate length slot of primitive resize calls

2 years agoextra: Fix test/imports
Doug Coleman [Tue, 21 Dec 2021 14:46:43 +0000 (08:46 -0600)]
extra: Fix test/imports

2 years agofactor: Update split-lines tests, fix other tests
Doug Coleman [Tue, 21 Dec 2021 05:15:39 +0000 (23:15 -0600)]
factor: Update split-lines tests, fix other tests

2 years agocore: fix sequences test
Doug Coleman [Tue, 21 Dec 2021 02:49:41 +0000 (20:49 -0600)]
core: fix sequences test

Test join not join-words

2 years agoBenchmark: fix using
Doug Coleman [Tue, 21 Dec 2021 02:15:25 +0000 (20:15 -0600)]
Benchmark: fix using

2 years agofactor: use more split/join words
Doug Coleman [Tue, 21 Dec 2021 00:01:12 +0000 (18:01 -0600)]
factor: use more split/join words

2 years agofactor: fix using on windows.
Doug Coleman [Tue, 21 Dec 2021 05:38:29 +0000 (23:38 -0600)]
factor: fix using on windows.

2 years agofactor: qualifying blank?, random fixes, renamed test file
Doug Coleman [Mon, 20 Dec 2021 23:26:05 +0000 (17:26 -0600)]
factor: qualifying blank?, random fixes, renamed test file

2 years agoextra: fix using
Doug Coleman [Mon, 20 Dec 2021 22:31:33 +0000 (16:31 -0600)]
extra: fix using

2 years agofactor: fix using
Doug Coleman [Mon, 20 Dec 2021 22:29:53 +0000 (16:29 -0600)]
factor: fix using

2 years agofactor: fix using
Doug Coleman [Mon, 20 Dec 2021 22:26:04 +0000 (16:26 -0600)]
factor: fix using

2 years agofactor: fix a few more errors
Doug Coleman [Mon, 20 Dec 2021 22:24:48 +0000 (16:24 -0600)]
factor: fix a few more errors

2 years agofactor: words -> split-words, lines -> split-lines, fix errors
Doug Coleman [Mon, 20 Dec 2021 22:20:00 +0000 (16:20 -0600)]
factor: words -> split-words, lines -> split-lines, fix errors

2 years agofactor: fix some lines -> read-lines
Doug Coleman [Mon, 20 Dec 2021 21:30:53 +0000 (15:30 -0600)]
factor: fix some lines -> read-lines

2 years agooauth1: Don't use assocs.extras in basis/
Doug Coleman [Mon, 20 Dec 2021 21:19:05 +0000 (15:19 -0600)]
oauth1: Don't use assocs.extras in basis/

2 years agoio.files: exists? -> file-exists? and rename primitive.
Doug Coleman [Mon, 20 Dec 2021 21:06:16 +0000 (15:06 -0600)]
io.files: exists? -> file-exists? and rename primitive.

Fixes #2507

2 years agocore: Add words/unwords/unwords-as and use them.
Doug Coleman [Mon, 20 Dec 2021 20:54:15 +0000 (14:54 -0600)]
core: Add words/unwords/unwords-as and use them.

Related to #2140

2 years agocore: Change lines -> read-lines, contents -> read-contents, string-lines -> lines
Doug Coleman [Mon, 20 Dec 2021 20:12:32 +0000 (14:12 -0600)]
core: Change lines -> read-lines, contents -> read-contents, string-lines -> lines

Add unlines word.

Related to #2140

2 years agoopenssl.libssl: Add SSL_write_ex function
Doug Coleman [Mon, 20 Dec 2021 19:25:35 +0000 (13:25 -0600)]
openssl.libssl: Add SSL_write_ex function

Related to #2508

2 years agomath.matrices: Fix documentation
gifti258 [Mon, 20 Dec 2021 18:31:00 +0000 (19:31 +0100)]
math.matrices: Fix documentation

2 years agocombinators.short-circuit.smart: Fix typo
gifti258 [Mon, 20 Dec 2021 18:34:25 +0000 (19:34 +0100)]
combinators.short-circuit.smart: Fix typo

2 years agogobject-introspection.ffi: Fix typo
gifti258 [Mon, 20 Dec 2021 18:39:27 +0000 (19:39 +0100)]
gobject-introspection.ffi: Fix typo

2 years agooauth1: Fix oauth header to only include oauth_ params.
Doug Coleman [Mon, 20 Dec 2021 18:33:07 +0000 (12:33 -0600)]
oauth1: Fix oauth header to only include oauth_ params.

If the payload is included like before this patch, you can get a 300kb values
in the Auth header. Instead we just need the checksum/oauth params.

Thanks to @gifti258 on github for the fix.

Related to #2487

2 years agoopenssl: Rename (ssl-error) to throw-ssl-error and set
Doug Coleman [Mon, 20 Dec 2021 16:53:22 +0000 (10:53 -0600)]
openssl: Rename (ssl-error) to throw-ssl-error and set
terminated/connected when SSL_ERROR_ZERO_RETURN

Related to #2487

2 years agoio.sockets.secure.openssl: set a terminated slot too so we know we got disconnected
Doug Coleman [Mon, 20 Dec 2021 08:45:36 +0000 (02:45 -0600)]
io.sockets.secure.openssl: set a terminated slot too so we know we got disconnected

2 years agoio.sockets.secure.openssl: Fix docs
Doug Coleman [Mon, 20 Dec 2021 08:26:41 +0000 (02:26 -0600)]
io.sockets.secure.openssl: Fix docs

2 years agoio.sockets.secure.unix: refactor (shutdown)
Doug Coleman [Mon, 20 Dec 2021 08:24:29 +0000 (02:24 -0600)]
io.sockets.secure.unix: refactor (shutdown)

2 years agoio.sockets.secure: Fix error handling for SSL calls.
Doug Coleman [Mon, 20 Dec 2021 08:11:54 +0000 (02:11 -0600)]
io.sockets.secure: Fix error handling for SSL calls.

Fixes:
- SSL_ERROR_SYSCALL -> ERR_get_error -> 0 means EOF from server
- don't throw on SSL_ERROR_ZERO_RETURN
-- in our case, our header value is 300k so it closes the connection
- don't call shutdown if server stops talking to us
- recognize EPIPE in a place

- simplify error handling
- pass around ssl-handle, not SSL, which can be grabbed from ssl-handle with handle>>

Fixes #2487

2 years agoclasses.struct: can't use (struct) in boa>object.
John Benediktsson [Sun, 19 Dec 2021 01:36:20 +0000 (17:36 -0800)]
classes.struct: can't use (struct) in boa>object.

2 years agoprettyprint.backend: fix prettyprinting of special nans.
John Benediktsson [Sun, 19 Dec 2021 00:05:26 +0000 (16:05 -0800)]
prettyprint.backend: fix prettyprinting of special nans.

2 years agobenchmark: print timings with 3 decimal places.
John Benediktsson [Sat, 18 Dec 2021 23:27:46 +0000 (15:27 -0800)]
benchmark: print timings with 3 decimal places.

2 years agoclasses.struct: fix <struct-boa> for read-only slots.
John Benediktsson [Sat, 18 Dec 2021 23:05:55 +0000 (15:05 -0800)]
classes.struct: fix <struct-boa> for read-only slots.

2 years agoio.sockets.secure.openssl: cleanup docs.
John Benediktsson [Fri, 17 Dec 2021 17:17:20 +0000 (09:17 -0800)]
io.sockets.secure.openssl: cleanup docs.

2 years agovm: Move Windows 32bit dlls to factorcode.org/dlls/32
Doug Coleman [Sat, 18 Dec 2021 22:25:02 +0000 (16:25 -0600)]
vm: Move Windows 32bit dlls to factorcode.org/dlls/32

2 years agogithub: disable windows for now.
John Benediktsson [Fri, 17 Dec 2021 03:50:09 +0000 (19:50 -0800)]
github: disable windows for now.

2 years agocore-text: change to not use gl-scale.
John Benediktsson [Thu, 16 Dec 2021 23:06:24 +0000 (15:06 -0800)]
core-text: change to not use gl-scale.

2 years agovocabs.loader: only cache roots for vocabs that are found.
John Benediktsson [Thu, 16 Dec 2021 22:51:02 +0000 (14:51 -0800)]
vocabs.loader: only cache roots for vocabs that are found.

2 years agobuild.cmd: set outside if.
John Benediktsson [Thu, 16 Dec 2021 21:37:14 +0000 (13:37 -0800)]
build.cmd: set outside if.

2 years agocore-text: fix height to round out to a screen pixel.
John Benediktsson [Thu, 16 Dec 2021 21:03:27 +0000 (13:03 -0800)]
core-text: fix height to round out to a screen pixel.

2 years agobuild.cmd: fix url typo.
John Benediktsson [Thu, 16 Dec 2021 20:42:37 +0000 (12:42 -0800)]
build.cmd: fix url typo.

2 years agobuild.cmd: fix shadowed variable.
John Benediktsson [Thu, 16 Dec 2021 20:37:38 +0000 (12:37 -0800)]
build.cmd: fix shadowed variable.

2 years agobuild.cmd: fix.
John Benediktsson [Thu, 16 Dec 2021 20:34:16 +0000 (12:34 -0800)]
build.cmd: fix.

2 years agobuild.cmd: fix usage.
John Benediktsson [Thu, 16 Dec 2021 20:32:25 +0000 (12:32 -0800)]
build.cmd: fix usage.

2 years agobuild.cmd: syntax fixes.
John Benediktsson [Thu, 16 Dec 2021 20:29:46 +0000 (12:29 -0800)]
build.cmd: syntax fixes.

2 years agobuild.cmd: make it a little more consistent with build.sh.
John Benediktsson [Thu, 16 Dec 2021 20:23:23 +0000 (12:23 -0800)]
build.cmd: make it a little more consistent with build.sh.

2 years agobootstrap.image: allow boot image name to be passed on command line.
John Benediktsson [Thu, 16 Dec 2021 18:39:42 +0000 (10:39 -0800)]
bootstrap.image: allow boot image name to be passed on command line.

2 years agogithub: change direction a bit -- load-all, test-core, help-lint.
John Benediktsson [Thu, 16 Dec 2021 01:03:20 +0000 (17:03 -0800)]
github: change direction a bit -- load-all, test-core, help-lint.

2 years agogithub: fix using.
John Benediktsson [Thu, 16 Dec 2021 00:57:22 +0000 (16:57 -0800)]
github: fix using.

2 years agogithub: whooops
John Benediktsson [Thu, 16 Dec 2021 00:26:55 +0000 (16:26 -0800)]
github: whooops

2 years agogithub: fix postgres syntax.
John Benediktsson [Thu, 16 Dec 2021 00:25:52 +0000 (16:25 -0800)]
github: fix postgres syntax.

2 years agogithub: hopefully testing postgres.
John Benediktsson [Thu, 16 Dec 2021 00:08:26 +0000 (16:08 -0800)]
github: hopefully testing postgres.

2 years agogithub: patch udis86 for python3?
John Benediktsson [Wed, 15 Dec 2021 23:17:08 +0000 (15:17 -0800)]
github: patch udis86 for python3?

2 years agogithub: add more linux dependencies.
John Benediktsson [Wed, 15 Dec 2021 23:04:40 +0000 (15:04 -0800)]
github: add more linux dependencies.

2 years agotools.test: add a --fast option.
John Benediktsson [Wed, 15 Dec 2021 22:54:28 +0000 (14:54 -0800)]
tools.test: add a --fast option.

2 years agogithub: try and test basis to see what fails on github.
John Benediktsson [Wed, 15 Dec 2021 22:30:20 +0000 (14:30 -0800)]
github: try and test basis to see what fails on github.

2 years agogithub: fix on windows.
John Benediktsson [Wed, 15 Dec 2021 22:07:49 +0000 (14:07 -0800)]
github: fix on windows.

2 years agogithub: adding build-windows.
John Benediktsson [Wed, 15 Dec 2021 22:02:13 +0000 (14:02 -0800)]
github: adding build-windows.

2 years agobuild.cmd: fix syntax.
John Benediktsson [Wed, 15 Dec 2021 21:49:11 +0000 (13:49 -0800)]
build.cmd: fix syntax.

2 years agobuild.cmd: adding a net-bootstrap.
John Benediktsson [Wed, 15 Dec 2021 19:47:32 +0000 (11:47 -0800)]
build.cmd: adding a net-bootstrap.

2 years agoremove .travis.yml.
John Benediktsson [Wed, 15 Dec 2021 19:38:41 +0000 (11:38 -0800)]
remove .travis.yml.

2 years agogithub: test and help-lint.
John Benediktsson [Wed, 15 Dec 2021 19:26:09 +0000 (11:26 -0800)]
github: test and help-lint.

2 years agovm: Fix C++ warning for comparing a signed to less-than 0.
Doug Coleman [Wed, 15 Dec 2021 06:26:07 +0000 (00:26 -0600)]
vm: Fix C++ warning for comparing a signed to less-than 0.

Still a bit more duplication than I would like.

Found with:

c++ --version
c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Warning:

vm/bignum.cpp: In member function ‘factor::bignum* factor::factor_vm::cell_to_bignum(factor::cell)’:
vm/bignum.cpp:332:11: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
  332 |     if (n < (type) 0 && n == (type) - 1)                              \
      |         ~~^~~~~~~~~~
vm/bignum.cpp:361:1: note: in expansion of macro ‘FOO_TO_BIGNUM’
  361 | FOO_TO_BIGNUM(cell, cell, fixnum, cell)
      | ^~~~~~~~~~~~~
vm/bignum.cpp:336:29: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
  336 |           ((negative_p = (n < (type) 0)) ? ((type)(-(stype) n)) : n); \
      |                           ~~^~~~~~~~~~
vm/bignum.cpp:361:1: note: in expansion of macro ‘FOO_TO_BIGNUM’
  361 | FOO_TO_BIGNUM(cell, cell, fixnum, cell)
      | ^~~~~~~~~~~~~
vm/bignum.cpp: In member function ‘factor::bignum* factor::factor_vm::ulong_long_to_bignum(uint64_t)’:
vm/bignum.cpp:332:11: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
  332 |     if (n < (type) 0 && n == (type) - 1)                              \
      |         ~~^~~~~~~~~~
vm/bignum.cpp:364:1: note: in expansion of macro ‘FOO_TO_BIGNUM’
  364 | FOO_TO_BIGNUM(ulong_long, uint64_t, int64_t, uint64_t)
      | ^~~~~~~~~~~~~
vm/bignum.cpp:336:29: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
  336 |           ((negative_p = (n < (type) 0)) ? ((type)(-(stype) n)) : n); \
      |                           ~~^~~~~~~~~~
vm/bignum.cpp:364:1: note: in expansion of macro ‘FOO_TO_BIGNUM’
  364 | FOO_TO_BIGNUM(ulong_long, uint64_t, int64_t, uint64_t)
      | ^~~~~~~~~~~~~

2 years agovm: Silence more unused parameters warnings.
Doug Coleman [Wed, 15 Dec 2021 03:21:22 +0000 (21:21 -0600)]
vm: Silence more unused parameters warnings.

2 years agoui.backend.windows: Add a couple more error checks.
Doug Coleman [Wed, 15 Dec 2021 09:58:26 +0000 (03:58 -0600)]
ui.backend.windows: Add a couple more error checks.

2 years agowindows: Add check-hresult function.
Doug Coleman [Wed, 15 Dec 2021 09:58:05 +0000 (03:58 -0600)]
windows: Add check-hresult function.

2 years agoui.backend.windows: Don't throw an error on timeout for wglMakeCurrent.
Doug Coleman [Wed, 15 Dec 2021 09:40:31 +0000 (03:40 -0600)]
ui.backend.windows: Don't throw an error on timeout for wglMakeCurrent.
Fixes #2173.

2 years agovm: Silence unused parameters warnings.
Doug Coleman [Sat, 11 Dec 2021 21:41:35 +0000 (15:41 -0600)]
vm: Silence unused parameters warnings.

2 years agoirc: s/freenode/libera/
Doug Coleman [Mon, 6 Dec 2021 00:46:58 +0000 (18:46 -0600)]
irc: s/freenode/libera/

2 years agoAdd test for rolling-map
gifti258 [Sun, 5 Dec 2021 03:21:53 +0000 (04:21 +0100)]
Add test for rolling-map

2 years agoFix off-by-one error in rolling-map
gifti258 [Sun, 5 Dec 2021 00:47:32 +0000 (01:47 +0100)]
Fix off-by-one error in rolling-map

2 years agoaudio.engine: fix docs typo.
John Benediktsson [Fri, 3 Dec 2021 18:49:17 +0000 (10:49 -0800)]
audio.engine: fix docs typo.

2 years agoREADME: update mailing list link.
John Benediktsson [Fri, 3 Dec 2021 16:47:17 +0000 (08:47 -0800)]
README: update mailing list link.

2 years agoREADME: adding Discord channel.
John Benediktsson [Fri, 3 Dec 2021 16:46:29 +0000 (08:46 -0800)]
README: adding Discord channel.

2 years agoREADME: Add slack update IRC.
John Benediktsson [Fri, 3 Dec 2021 16:45:24 +0000 (08:45 -0800)]
README: Add slack update IRC.

2 years agoworkflows: Test on macOS too
Doug Coleman [Thu, 2 Dec 2021 17:47:43 +0000 (11:47 -0600)]
workflows: Test on macOS too

2 years agosequences: fix help-lint warnings in map-reduce.
John Benediktsson [Wed, 1 Dec 2021 18:06:06 +0000 (10:06 -0800)]
sequences: fix help-lint warnings in map-reduce.

2 years agoworkflows: fix yaml syntax error
Doug Coleman [Wed, 1 Dec 2021 03:27:33 +0000 (21:27 -0600)]
workflows: fix yaml syntax error

2 years agoBuild and test core
Doug Coleman [Wed, 1 Dec 2021 03:18:17 +0000 (21:18 -0600)]
Build and test core

Let's see if this works as a CI.

2 years agovin: adding a VIN decoding tool.
John Benediktsson [Thu, 18 Nov 2021 23:11:27 +0000 (15:11 -0800)]
vin: adding a VIN decoding tool.

2 years agoio.sockets.unix: switch to port 8888.
John Benediktsson [Wed, 27 Oct 2021 02:51:41 +0000 (19:51 -0700)]
io.sockets.unix: switch to port 8888.

2 years agogit: allow main branch to pass test.
John Benediktsson [Wed, 27 Oct 2021 02:50:55 +0000 (19:50 -0700)]
git: allow main branch to pass test.

2 years agogdbm: disable set-cache-size twice test on macos.
John Benediktsson [Tue, 26 Oct 2021 19:48:48 +0000 (12:48 -0700)]
gdbm: disable set-cache-size twice test on macos.

2 years agometar: print all-stations.
John Benediktsson [Tue, 26 Oct 2021 19:45:43 +0000 (12:45 -0700)]
metar: print all-stations.

2 years agometar: fix some international metar parsing.
John Benediktsson [Tue, 26 Oct 2021 19:17:35 +0000 (12:17 -0700)]
metar: fix some international metar parsing.

2 years agosystem-info: remove duplicate IN:.
John Benediktsson [Tue, 26 Oct 2021 17:47:43 +0000 (10:47 -0700)]
system-info: remove duplicate IN:.

2 years agometar: some fixes for weather out of place.
John Benediktsson [Tue, 26 Oct 2021 17:47:27 +0000 (10:47 -0700)]
metar: some fixes for weather out of place.

2 years agometar: fix "1 1/2SM" visibility.
John Benediktsson [Tue, 26 Oct 2021 17:01:14 +0000 (10:01 -0700)]
metar: fix "1 1/2SM" visibility.

2 years agosystem-info.macosx: adding codename for macOS Monterey.
John Benediktsson [Mon, 25 Oct 2021 20:07:40 +0000 (13:07 -0700)]
system-info.macosx: adding codename for macOS Monterey.

2 years agofeature(browser): shortcut to focus search bar
Rudi Grinberg [Mon, 25 Oct 2021 03:35:42 +0000 (21:35 -0600)]
feature(browser): shortcut to focus search bar

Signed-off-by: Rudi Grinberg <me@rgrinberg.com>
2 years agofix: add missing vocabulary in example
Rudi Grinberg [Sat, 23 Oct 2021 05:33:43 +0000 (23:33 -0600)]
fix: add missing vocabulary in example

Signed-off-by: Rudi Grinberg <me@rgrinberg.com>
ps-id: 43D3A81F-4D51-46DD-AE2B-B584996C192D

2 years agosequences.extras: Add Kadane's algorithm for finding the maximum sum
Doug Coleman [Fri, 22 Oct 2021 18:45:31 +0000 (13:45 -0500)]
sequences.extras: Add Kadane's algorithm for finding the maximum sum
of consecutive elements from a sequence.

2 years agohacker-news: remove ' from stack effect
Doug Coleman [Mon, 26 Jul 2021 01:56:44 +0000 (20:56 -0500)]
hacker-news: remove ' from stack effect

2 years agoRevert "hashtables: Preserve access semantics for alist >hashtable conversion"
John Benediktsson [Sat, 24 Jul 2021 15:30:19 +0000 (08:30 -0700)]
Revert "hashtables: Preserve access semantics for alist >hashtable conversion"

This reverts commit 471289907c4443ca239835e68c61118fbbf12498.

2 years agoRemoving XCode project for now.
John Benediktsson [Wed, 14 Jul 2021 02:21:28 +0000 (19:21 -0700)]
Removing XCode project for now.

2 years agoassocs.extras: Add assoc-collapse! and assoc-collapse-as
timor [Thu, 22 Jul 2021 16:29:11 +0000 (18:29 +0200)]
assocs.extras: Add assoc-collapse! and assoc-collapse-as

`assoc-collapse!` is the destructive version of `assoc-collapse`, but takes the
target assoc as extra element.

For `assoc-collapse-as`, the size of resulting assoc is based on the first assoc
in the input sequence.