about summary refs log tree commit diff
path: root/third_party/lisp/mime4cl/streams.lisp (follow)
AgeCommit message (Collapse)AuthorFilesLines
2023-05-09 r/6125 refactor(3p/lisp/mime4cl): rename :stream to :underlying-streamsterni1-8/+8
This makes sure that initializing coder-stream-mixin (for the most part) has the same interface as initializing qbase64:decode-stream. This will make integrating that as a faster replacement to mime4cl:base64-decoder-stream a bit easier. The idea is to replace the char by char base64 decoder with one that supports read-sequence. After that deliminited-input-stream needs to gain support for read-sequence as well, so we can actually take advantage of this fact. Finally, we'll have to evaluate the remaining decoders and think about switching the (base64) encoders over as well. Change-Id: If971da02437506e00a7c9fab2b94efc42725e62d Reviewed-on: https://cl.tvl.fyi/c/depot/+/8555 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
2022-02-02 r/3749 feat(3p/lisp/mime4cl): cache offset in delimited-input-streamsterni1-19/+39
By computing the amount the stream position advanced we can save a syscall on every read which speeds up mime:mime-body-stream by /a lot/, e.g. extracting a ~3MB attachment drops from over 15s to under ~0.5s. There's still a lot to be gained and correctness left to be desired which can be addressed as described in the newly added comment. Change-Id: I5e1dfd213aac41203f271cf220db456dfb95a02b Reviewed-on: https://cl.tvl.fyi/c/depot/+/5073 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-26 r/3677 chore(3p/lisp/mime4cl): remove CMUCL specific codesterni1-2/+0
Having #+cmu all over the place suggests that we maintain CMUCL support or test with CMUCL which is not the case. Change-Id: Ia0828cb1ac48e49acdee6fef7a0fa2c04c1805b3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5068 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-26 r/3676 refactor(3p/lisp/mime4cl): use trivial-gray-streamssterni1-42/+11
This should be a net positive for portability and lets us drop some of the CMUCL cruft (which we don't test anyway, CMU support may have regressed regardless). Change-Id: I85664d82d211177da1db9eebea65c956295b09f7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5067 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-26 r/3675 style(3p/lisp): expand tabs in npg, mime4cl and sclfsterni1-97/+97
Done using find third_party/lisp/{sclf,mime4cl,npg} \ -name '*.lisp' -or -name '*.asd' \ -exec bash -c 'expand -i -t 8 "$0" | sponge "$0"' {} \; Change-Id: If84afac9c1d5cbc74e137a5aa0ae61472f0f1e90 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5066 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-01 r/2815 feat(3p/lisp/mime4cl): build using buildLispsterni1-1/+3
The following changes are required to make mime4cl build: * file-position doesn't like to be called with NIL as the position argument, so we have to make sure to not do that in stream-file-position. My workaround is a bit clunky, but works. * Tests discover the sample file via relative path resolution. This doesn't work when they are imported into the nix store as individual files. Instead we make use of the fact that DEFVAR is a no-op if the variable is already defined and inject a file via the nix build that sets the relevant ones. For the path to sample1.msg, we need to create a new variable. Change-Id: I74eeda7bf2c2a4f64cc2b90e72081513ec3285d5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3270 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 r/2814 chore(3p/lisp): import mime4cl source tarballsterni1-0/+366
Used http://wcp.sdf-eu.org/software/mime4cl-20150207T211851.tbz (sha256 5a914669bba7561efe59a4fd0817204c07ad2add98b03ae206ef185ac04affb3). Importing seems sensible since there's no upstream repo nor has their been a release since 2015. This is just an import commit, so the changes made to make it build are more discoverable as their own commit. Change-Id: I2ff28c3c7433abdf7857204bc89eaf9edc0b1cbc Reviewed-on: https://cl.tvl.fyi/c/depot/+/3378 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>