|
Welcome to MUGS ⚄♠♞🏹 (Multi-User Gaming Services)! | github.com/Raku-MUGS | v0.1.4 has been released! (github.com/Raku-MUGS/MUGS/blob/mai...v0.1.4.md) | This channel is logged for historical purposes; logs at irclogs.raku.org/mugs/index.html Set by japhb on 3 March 2024. |
|||
| japhb | Might have found a workaround. Trying it against Rakudo HEAD now ... | 00:56 | |
| Geth | Terminal-Widgets/main: 66121cb6ff | (Geoffrey Broadwell)++ | lib/Terminal/Widgets/StandardWidgetBuilder.rakumod Work around change in object hash semantics Object hash parameterization changed in Rakudo 2025.03-27-g8f8b95866f . This works around that change, and should work both before and after. |
01:47 | |
| japhb | Xliff: You should be able to pull T-W and be less frustrated now ^^ | 01:48 | |
| lizmat: OOC, was that effect of the object hash change intentional? | 01:55 | ||
| Geth | Terminal-Widgets/main: a594260252 | (Geoffrey Broadwell)++ | lib/Terminal/Widgets/Widget.rakumod Greatly expand and clarify comments in draw-line-spans |
05:36 | |
| Terminal-Widgets/main: 9d09d19b3c | (Geoffrey Broadwell)++ | lib/Terminal/Widgets/Widget.rakumod Fix draw-line-spans bugs found by patrickb++ Also further improve clarity and comments while in that code. |
|||
| japhb | patrickb: The above two commits include your fixes from PR #21, so closed that one. | 05:40 | |
| Need to be up early tomorrow, so will have to leave PR #20 review for later. | 05:41 | ||
|
07:17
Xliff joined
07:53
wayland76 joined
07:55
wayland76 left
|
|||
| Xliff | Think I found a bug. Ping me when you get this. I should be around. | 08:03 | |
|
08:06
wayland76 joined
|
|||
| japhb | Xliff: Bug? | 14:35 | |
| Xliff | Well... oversight. | 14:48 | |
| First off.. I ran into this gem... | 14:49 | ||
| diff --git a/lib/Terminal/Print/Grid.pm6 b/lib/Terminal/Print/Grid.pm6 | |||
| index ae2a4c4..7766d59 100644 | |||
| --- a/lib/Terminal/Print/Grid.pm6 | |||
| +++ b/lib/Terminal/Print/Grid.pm6 | |||
| @@ -117,7 +117,8 @@ method cell-string($x, $y) { | |||
| #| Return the escape string necessary to move to (x1, y) and output every cell (with color) on that row from x1..x2 | |||
| method span-string($x1, $x2, $y) { | |||
| my $row = @!grid[$y]; | |||
| - move-cursor($x1, $y) ~ $row[$x1..$x2].join.subst("\e\e[", "\e[0;", :g); | |||
| + move-cursor($x1, $y) ~ | |||
| + $row[$x1..$x2].map({ $_ // '' }).join.subst("\e\e[", "\e[0;", :g); | |||
| } | |||
| And I'm wondering if that's the correct solve... because while that stopped Nil errors, I am getting weird behavior with my progress bar example. Gist incoming. | 14:50 | ||
| gist.github.com/Xliff/548e2177bc8c...ff503a7651 | 14:52 | ||
| japhb | You shouldn't end up with a case where a cell contains an undefined value ... that would usually only happened if you tried to access a location not actually on the grid. | 14:57 | |
| For performance, T::P::Grid doesn't do coordinate clipping ... calling code should do that. | 14:58 | ||
| I have to be AFK for a bit, but I'll go over your gist when I get back. | |||
| Xliff | kk | 14:59 | |
| ab5tract | Also, there should be no need to wrap the printing in a lock. That’s what the OO::Monitors dependency on T::P is for | ||
| japhb | BAK | 16:05 | |
| I agree with ab5tract, a T::P::Grid is already locked as a monitor, and this is relied on by lots of code in T::P itself and in other Terminal::* modules that depend on it. | 16:06 | ||
| The labels are so far over because you are doing `for $!lb-rendered`, which is treating the two-item array as a single item, which stringifies to a join of its members. | 16:08 | ||
| You can change that to `for $!lb-rendered.list` or `for @!lb-rendered` (changing the sigil on the member variable of course) | 16:09 | ||
| You don't need to `print T.current-grid`, since the draw methods in ProgressLine already print themselves. This is itself redundant, but also wasteful because in a full-screened terminal with the drawing area in the upper left, you're drawing mostly empty space on the right and bottom. | 16:11 | ||
| The reaction of the progress bars to MAX being changed seems slow because it's only happening at each bar's next cue'd time. | 16:14 | ||
| Changing `print T.current-grid;` in check-redraw-threads to `.head.set-value($v, :draw) for @threads;` will get them reacting much more in step. | 16:15 | ||
| Xliff | ooh! | 16:16 | |
| japhb | There's still the inefficiency of treating every bar as its own hbar-chart, rather than treating the entire thing as a single chart with all of the progress bars in it, but that's a larger change with less effect than the above. | 16:20 | |
| I commented on PR #20 as well, but for those not following that: | 17:46 | ||
| patrickb has pointed out that improvements to the role selection we have need either hackish workarounds or 6.e semantics. | 17:48 | ||
| (Sorry, where 'we' is 'people working on Terminal::Widgets') | |||
| Since 6.e roles can only be consumed by 6.e or later objects, that implies that we'll need to switch T-W *and any user code based on it* to `use 6.e.PREVIEW;` | 17:49 | ||
| Unless I hear any objections, I'll be going through and making those changes in T-W itself and the various examples. | 17:50 | ||
| patrickb | This is limiting, but I believe an ok thing to do, since T-W is still pretty much beta-ware and 5.e is coming soon. | 18:05 | |
| japhb | Limiting in what way? Incompatibility with 6.d code? | 18:13 | |
| Added an additional question to PR #20 | 18:33 | ||
| patrickb | Incompatibility with older Rakudos mostly. | 21:51 | |
| Answered | |||
| On a different note, I just now finally got PTYs working on Windows. \o/ | 21:53 | ||
| It'll be more work to finish up all the loose ends, but the difficult problems are now all tackled. (I hope I don't regret saying this...) | 21:54 | ||
| japhb | Yeah, that was pretty much jinxing yourself. :-P | 22:26 | |
| The PR #20 conversation continues. :-D | 22:28 | ||
|
23:00
wayland76 left
|
|||