Size: a a a

Сообщество Scheme

2021 May 03

AZ

Aydar Zarifullin in Сообщество Scheme
Возможно после записи надо flush-output например вызывать.
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Нет, не помогает
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Видимо это вообще не подходит
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Например в питоне есть из коробки os.openpty()
источник

AP

Alex Peresmeshnik in Сообщество Scheme
здесь же какая-то проблема с процесса вывод считать, при чем pty только в чикене нашел но устаревший, в ракете нету. Лиспопроблемы.
источник

AZ

Aydar Zarifullin in Сообщество Scheme
Мы с тобой пока не можем такой вывод сделать. И я на текущий момент уверен что псевдотерминал здесь не нужен или необязателен. Если будет время завтра попробую что-нибудь придумать
источник

AZ

Aydar Zarifullin in Сообщество Scheme
А и ещё зачем всё-таки оболочку запускать? Насколько я понимаю expect может напрямую процессы спавнить почему в схеме надо делать иначе?
источник

AP

Alex Peresmeshnik in Сообщество Scheme
На прямую в каком смысле?
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Я хочу инструмент, чтобы можно было полноценно в две стороны печатать в терминал и из терминала получить вывод. Это например чтобы через ssh конфижить сервер
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Ну и вообще на все случаи жизни, как expect
источник

AP

Alex Peresmeshnik in Сообщество Scheme
последний кончено свое дело делает хорошо, но хочется схемы
источник

AZ

Aydar Zarifullin in Сообщество Scheme
Ну напрямую в смысле сразу запускать ls (в данном случае она конечно не интерактивная)
источник

AZ

Aydar Zarifullin in Сообщество Scheme
Можно получать вывод, в рэкете точно помню что читал из процесса (писать не пробовал только).
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Сразу работает
источник

AZ

Aydar Zarifullin in Сообщество Scheme
read-line очевидно зависает потому что нечего читать, а нечего читать возможно потому что write не отправил текст процессу а буфферизировал. Я вот про такого рода проблемы говорю, они не зависят от языка, я такие грабли и в питоне ловил. Другое дело что запуск оболочки а не сразу программы может потребовать дополнительных костылей
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Welcome to Racket v7.2.
> (define p (process "/bin/ls"))
> (read-line (car p))
"run"
источник

AP

Alex Peresmeshnik in Сообщество Scheme
в этом случае read-line отрабатывает как надо - выводит текст до символа конца строки. Просто read выводит текст до пробела
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Что костыли - это на то похоже, глянул немного кода как на чикене pty сделан. Там вызовы сишные сунули
источник
2021 May 04

AP

Alex Peresmeshnik in Сообщество Scheme
заработало. Правильно писать не write'ом а display'ем, а при чтении проверять читабельность с помощью char-ready? . Это в чикене
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Хм... в GNU Guile write пишет в том виде, который можно read обратно прочитать, насколько знаю.  А display печатает в более дружелюбном для человеков виде.

Например,
(display "hello") => hello
(write "hello") => "hello"
источник