Error: "index out of bounds: the len is 20 but the index is 20"

Description
After several useful diffs, the output stops with this error. It's unclear to me whether this is a trailing error, or whether there would have been more output without this error. I worry the latter.
<cut>

thread 'main' panicked at src/display/side_by_side.rs:488:58:
index out of bounds: the len is 281 but the index is 281
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread '<unnamed>' panicked at src/main.rs:284:38:
Receiver should be connected: SendError { .. }

Test case
cd /tmp
git clone https://github.com/jquery/blog.jquery.com-theme blog && cd blog/ && git checkout -q<PHONE_NUMBER>eb && cd ../
git clone --depth 1 -b v4.9.14 https://github.com/jquery/jquery-wp-content
difft blog/jquery jquery-wp-content/themes/jquery

Version
macOS 13. Using Homebrew to install difft. Details at https://formulae.brew.sh/formula/difftastic and https://github.com/Homebrew/homebrew-core/blob/b5b224ebe92c94a69806ca1c3b90b9fbe7739e11/Formula/d/difftastic.rb.
$ difft --version
Difftastic 0.57.0 (built with rustc 1.77.1)

RUST_BACKTRACE=1 RUST_BACKTRACE=full difft blog/jquery/ jquery-wp-content/themes/jquery/

thread 'main' panicked at src/display/side_by_side.rs:488:58:
index out of bounds: the len is 281 but the index is 281
stack backtrace:
   0:        0x102e85ae4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6e13e5c1f43a2491
   1:        0x102c9625c - core::fmt::write::ha2c1956860377338
   2:        0x102e8bf80 - std::io::Write::write_fmt::ha4b28c52ceab65a6
   3:        0x102e858d8 - std::sys_common::backtrace::print::h479f79ccc1585c96
   4:        0x102e9b09c - std::panicking::default_hook::{{closure}}::h3432bfbcced8e86b
   5:        0x102e9adb8 - std::panicking::default_hook::h0a224004d0f52354
   6:        0x102e9b4ec - std::panicking::rust_panic_with_hook::h0a46a8ecc3586611
   7:        0x102e8606c - std::panicking::begin_panic_handler::{{closure}}::hafb87b136ffd6947
   8:        0x102e85d28 - std::sys_common::backtrace::__rust_end_short_backtrace::h35ccaf072a47767f
   9:        0x102e9b288 - _rust_begin_unwind
  10:        0x103666b78 - core::panicking::panic_fmt::h11c5b4b324cc1c7c
  11:        0x103666cd0 - core::panicking::panic_bounds_check::hc32fa3cf74afc646
  12:        0x102d158f8 - difft::display::side_by_side::print::h89ef2d4f6f4c33bb
  13:        0x102cc7c14 - difft::print_diff_result::hacca16cc5ae65f90
  14:        0x102cc0488 - std::panicking::try::h05eefcd74c88f1da
  15:        0x102cb6a40 - std::thread::scoped::scope::he2f7263efb18026e
  16:        0x102cc48dc - difft::main::hc24eec628cb9e943
  17:        0x102ccecc0 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb7290b100c936322
  18:        0x102cea768 - std::rt::lang_start::{{closure}}::h4506ff0be546a910
  19:        0x102e9b190 - std::panicking::try::h339e50e350ac9bf3
  20:        0x102e87bc0 - std::rt::lang_start_internal::ha7854c9dc8ed1474
  21:        0x102cc7f9c - _main
thread '<unnamed>' panicked at src/main.rs:284:38:
Receiver should be connected: SendError { .. }
stack backtrace:
   0:        0x102e85ae4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6e13e5c1f43a2491
   1:        0x102c9625c - core::fmt::write::ha2c1956860377338
   2:        0x102e8bf80 - std::io::Write::write_fmt::ha4b28c52ceab65a6
   3:        0x102e858d8 - std::sys_common::backtrace::print::h479f79ccc1585c96
   4:        0x102e9b09c - std::panicking::default_hook::{{closure}}::h3432bfbcced8e86b
   5:        0x102e9adb8 - std::panicking::default_hook::h0a224004d0f52354
   6:        0x102e9b4ec - std::panicking::rust_panic_with_hook::h0a46a8ecc3586611
   7:        0x102e8606c - std::panicking::begin_panic_handler::{{closure}}::hafb87b136ffd6947
   8:        0x102e85d28 - std::sys_common::backtrace::__rust_end_short_backtrace::h35ccaf072a47767f
   9:        0x102e9b288 - _rust_begin_unwind
  10:        0x103666b78 - core::panicking::panic_fmt::h11c5b4b324cc1c7c
  11:        0x103666ff0 - core::result::unwrap_failed::h24fe7f07a22cd818
  12:        0x102ccec5c - std::sys_common::backtrace::__rust_begin_short_backtrace::h270b367dbe1c5372
  13:        0x102cd0524 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb2772cc423f7dcb4
  14:        0x102ea7dd8 - std::sys::pal::unix::thread::Thread::new::thread_start::he51aaef8aee5f8eb
  15:        0x19ae0ffa8 - __pthread_joiner_wake

I can reproduce this with just the two license.txt files (the last file it diff'ed before the panic). If this is the same root cause, then this might narrow it down considerably. It does look a bit different, so maybe it's no the same?
$ RUST_BACKTRACE=1 RUST_BACKTRACE=full difft --display=inline -- blog/jquery/license.txt jquery-wp-content/themes/jquery/license.txt
jquery/license.txt --- 1/2 --- Text
1                GNU GENERAL PUBLIC LICENSE
2                   Version 2, June 1991
3
<cut>
279
280                 END OF TERMS AND CONDITIONS
281
thread 'main' panicked at src/display/inline.rs:115:38:
index out of bounds: the len is 281 but the index is 281
stack backtrace:
   0:        0x100d21ae4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6e13e5c1f43a2491
   1:        0x100b3225c - core::fmt::write::ha2c1956860377338
   2:        0x100d27f80 - std::io::Write::write_fmt::ha4b28c52ceab65a6
   3:        0x100d218d8 - std::sys_common::backtrace::print::h479f79ccc1585c96
   4:        0x100d3709c - std::panicking::default_hook::{{closure}}::h3432bfbcced8e86b
   5:        0x100d36db8 - std::panicking::default_hook::h0a224004d0f52354
   6:        0x100d374ec - std::panicking::rust_panic_with_hook::h0a46a8ecc3586611
   7:        0x100d2206c - std::panicking::begin_panic_handler::{{closure}}::hafb87b136ffd6947
   8:        0x100d21d28 - std::sys_common::backtrace::__rust_end_short_backtrace::h35ccaf072a47767f
   9:        0x100d37288 - _rust_begin_unwind
  10:        0x101502b78 - core::panicking::panic_fmt::h11c5b4b324cc1c7c
  11:        0x101502cd0 - core::panicking::panic_bounds_check::hc32fa3cf74afc646
  12:        0x100b5a4c8 - difft::display::inline::print::h2ee45b9e0c3ddfb0
  13:        0x100b63db4 - difft::print_diff_result::hacca16cc5ae65f90
  14:        0x100b6086c - difft::main::hc24eec628cb9e943
  15:        0x100b6acc0 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb7290b100c936322
  16:        0x100b86768 - std::rt::lang_start::{{closure}}::h4506ff0be546a910
  17:        0x100d37190 - std::panicking::try::h339e50e350ac9bf3
  18:        0x100d23bc0 - std::rt::lang_start_internal::ha7854c9dc8ed1474
  19:        0x100b63f9c - _main

I have encountered the same issue and made this small reproducer:
file a.yaml:
---
asdf: |-
  foo:
    foo:
      bar: b
      foo: a

  foo:

file b.yaml:
---
asdf: |-
  foo:
    foo:
      foo: a

  foo:

command used to provoke the error: difft a.yaml b.yaml

Merging into https://github.com/Wilfred/difftastic/issues/688, thanks for the report!


Podman 4.6.2 issue

2023/09/18 14:54:13.729369 DEBUG:  Host Settings:
2023/09/18 14:54:13.729374 DEBUG:    Binds: pack-cache-matzew_func-llm_latest-018cb1178e83.build:/cache /tmp/func-podman-4256474490/podman.sock:/var/run/docker.sock pack-cache-matzew_func-llm_latest-018cb1178e83.launch:/launch-cache pack-layers-coemaotrtl:/layers pack-app-mbcvgbqpev:/workspace
2023/09/18 14:54:13.729375 DEBUG:    Network Mode: host
🕒
Error: failed to build the function: executing lifecycle: unable to upgrade to tcp, received 409

I do not have the /var/run/docker.sock file

I have
 func version
v0.38.0-12-g0d6e2106

the issue was originally reported to podman in 2019, but it seems like it was a recent regression.
Here is the work-around to move on: https://github.com/containers/podman/issues/3024#issuecomment-1722582668

/close
as this is more a podman thingy


Request code for MSCap

Hello,
do you plan to release the code for paper MSCap: Multi-Style Image Captioning with Unpaired Stylized Text???
Thanks a lot!

I'm sorry. MSCap is a cooperative project with Huawei company. We cannot release the code before getting their permission.


fix syntax error

This fixes the below error
$ ocm-container hivep03uw1
/usr/local/bin/ocm-container: line 266: syntax error: unexpected end of file

This was fixed in #192


Feature: color palette

Create the custom color palette on theme.json and in tailwind.
For tailwind info: https://tailwindcss.com/docs/customizing-colors
Match the color palette on the old geoffcordner.com and/or create a new one.

The basic color palette is "Death Valley Artists Palette", which was actually derived from a photo I took in Death Valley.
$Death-Valley-Artists-Palette-1-hex: #262425;
$Death-Valley-Artists-Palette-2-hex: #E4E7DC;
$Death-Valley-Artists-Palette-3-hex: #504027;
$Death-Valley-Artists-Palette-4-hex: #D9AB73;
$Death-Valley-Artists-Palette-5-hex: #735C40;
eggshell white #FAFAF9;
pecan brown: #B9905F;

Final color palette:
 "palette": [
        {
          "name": "Pecan Brown",
          "slug": "primary",
          "color": "#B9905F"
        },
        {
          "name": "Desert Sand",
          "slug": "desert-sand",
          "color": "#D9AB73"
        },
        {
          "name": "Eggshell White",
          "slug": "white",
          "color": "#FAFAF9"
        },
        {
          "name": "Parchment",
          "slug": "parchment",
          "color": "#E4E7DC"
        },
        {
          "name": "Mocha",
          "slug": "mocha",
          "color": "#735C40"
        },
        {
          "name": "Tobacco Brown",
          "slug": "secondary",
          "color": "#504027"
        },
        {
          "name": "Espresso",
          "slug": "grey-800",
          "color": "#3d2f1f"
        },
        {
          "name": "Obsidian",
          "slug": "obsidian",
          "color": "#262425"
        }
      ]

Replaced grey-900 with obsidian. Replaced footer bg of bg-grey-50 with bg-parchment.  Replaced footer text-gray-500 with text-gray-800.


build with go 1.18

Description

Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

compiled using go-1.18

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

/merge-when-ready

OK, I will merge the pull request when it's ready, leave the commits as is when I merge it, and leave the branch after I've merged it.


DataObjects do not fully support static deserializer fromJson(JsonObject json)

Questions
Do not use this issue tracker to ask questions, instead use one of these channels. Questions will likely be closed without notice.
Version
4.5.9
Context
I have been trying to use service proxies and DataObjects but I have found it difficult to implement the json deserializer as a constructor. I am using lombok @Value which dont seem to be compatible with @JsonGen and I would like to use something more flexible than writing all the serializers myself.
I noticed in the @DataObject annotated types section it mentions there is a static factory method fromJson(JsonObject json) which can be used. When I tried to implement this the code generation didnt pick this up as a deserializer. I looked into the code and found many places where the JsonObject constructor is assumed instead of checking for the static factory.
It looks like the TypeMirrorFactory.java around line 159 seems to be the source of the issue however there are many other places this constructor is assumed.
Do you have a reproducer?
It can be reproduced by creating a DataObject as follows:
@DataObject
public MyDataObject {
  String name;

  public static MyDataObject fromJson(JsonObject json) {
    return json.mapTo(MyDataObject.class);
  }

  public JsonObject toJson() {
    new JsonObject("name", this.name);
  }
}

Steps to reproduce

Run vertx-codegen annotation processor

https://github.com/eclipse-vertx/vertx-codegen/pull/376