cycle buffer for console #608

Open
c4simba wants to merge 2 commits from c4simba/kolibrios:main into main
First-time contributor

Use cycle buffer for console instead request-answer
other buffer for bulk draw many lines.

need for python interpreter https://github.com/c4simba/minipy

Use cycle buffer for console instead request-answer other buffer for bulk draw many lines. need for python interpreter https://github.com/c4simba/minipy
c4simba added 1 commit 2026-07-26 18:46:19 +00:00
cycle buffer for console
Test PR / Build (en_US) (pull_request) Successful in 2m35s
Test PR / Build (es_ES) (pull_request) Successful in 2m41s
Test PR / Build (ru_RU) (pull_request) Successful in 2m37s
b1825f2756
bulk lines draw

format
c4simba added 1 commit 2026-08-02 19:05:55 +00:00
bump shell version
Test PR / Build (ru_RU) (pull_request) Successful in 1m49s
Test PR / Build (es_ES) (pull_request) Successful in 1m53s
Test PR / Build (en_US) (pull_request) Successful in 1m56s
f42f3178c1
Leency approved these changes 2026-08-02 19:15:54 +00:00
Egor00f left a comment
Owner

Why you need it? minipy really need it? you can just use libc stdout/stdin.

Why you need it? `minipy` really need it? you can just use libc stdout/stdin.
Egor00f added the
Category
Applications
Kind
Enhancement
Priority
Low
4
labels 2026-08-03 11:05:22 +00:00
@@ -45,0 +77,4 @@
}
while (__shell_ring_free() < total) // back off until there is room
_ksys_delay(1);
Owner

maybe _ksys_thread_yeld? _ksys_delay(1) will be so long, especially if cpu is faster enough

maybe `_ksys_thread_yeld`? `_ksys_delay(1)` will be so long, especially if cpu is faster enough
@@ -45,0 +82,4 @@
wp = h->write_ptr;
ring[wp] = cmd; wp++; if (wp == SHELL_RING_SIZE) wp = 0;
ring[wp] = (unsigned char)(len & 0xff); wp++; if (wp == SHELL_RING_SIZE) wp = 0;
Owner

ugh...

ugh...
@@ -78,1 +99,3 @@
free(buf1k);
command = ring[rp]; rp++; if (rp == ring_size) rp = 0;
len = ring[rp]; rp++; if (rp == ring_size) rp = 0;
Owner

ugh x2

ugh x2
@@ -79,0 +105,4 @@
len = ring_size - 1;
for (j = 0; j < len; j++) {
frame[j] = ring[rp]; rp++; if (rp == ring_size) rp = 0;
Owner

ugh x3.

Please use autoformatting.

ugh x3. Please use autoformatting.
@@ -36,0 +42,4 @@
}
while (sc_ring_free() < total)
kol_sleep(1);
Owner

kol_yield?

`kol_yield`?
@@ -36,0 +47,4 @@
wp = h->write_ptr;
ring[wp] = cmd; wp++; if (wp == ring_size) wp = 0;
ring[wp] = (unsigned char)(len & 0xff); wp++; if (wp == ring_size) wp = 0;
Owner

ugh x4

ugh x4
All checks were successful
Test PR / Build (ru_RU) (pull_request) Successful in 1m49s
Required
Details
Test PR / Build (es_ES) (pull_request) Successful in 1m53s
Required
Details
Test PR / Build (en_US) (pull_request) Successful in 1m56s
Required
Details
Checking for merge conflicts…
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u http://git.kolibrios.org/c4simba/kolibrios main:c4simba-main
git checkout c4simba-main
Sign in to join this conversation.
No Reviewers
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KolibriOS/kolibrios#608