Size: a a a

Сообщество Scheme

2020 August 04

AP

Alex Peresmeshnik in Сообщество Scheme
А подскажите, можно на ракете как-то список подключенных модулей вывести?
Цепляюсь к удаленному реплу через geiser, в емаксе делаю C-c C-a и текущий буфер отправляется на удаленный репл и в емаксорепле появляется соответствующее приглашение racket@modulename> . Хочу теперь в самом репле зайти в тот же модуль (enter! modulename) только что-то по тому же самому названию не хочет. Или как-то по особому емакс модуль обзывает, что то же самое название не подходит
источник

AZ

Aydar Zarifullin in Сообщество Scheme
Получилось кросс-компильнуть https://github.com/iZarif/tsra с линукса для винды

и я не очень понимаю почему, ведь в коде есть вызовы функций из unistd.h (часть POSIX)
источник

AZ

Aydar Zarifullin in Сообщество Scheme
Alex Peresmeshnik
А подскажите, можно на ракете как-то список подключенных модулей вывести?
Цепляюсь к удаленному реплу через geiser, в емаксе делаю C-c C-a и текущий буфер отправляется на удаленный репл и в емаксорепле появляется соответствующее приглашение racket@modulename> . Хочу теперь в самом репле зайти в тот же модуль (enter! modulename) только что-то по тому же самому названию не хочет. Или как-то по особому емакс модуль обзывает, что то же самое название не подходит
Я в доке вчера рылся не нашел. (Даже способа вывести все задефайненные символы)
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Aydar Zarifullin
Я в доке вчера рылся не нашел. (Даже способа вывести все задефайненные символы)
Я вот тоже копаюсь и что-то как-то нифига. Недавно Newlisp советовали, вот там прям зачетно в этом отношении, сразу наглядно где какой неймспейс и т.д. А в ракете что-то это не предусмотрено
источник

AZ

Aydar Zarifullin in Сообщество Scheme
Alex Peresmeshnik
Я вот тоже копаюсь и что-то как-то нифига. Недавно Newlisp советовали, вот там прям зачетно в этом отношении, сразу наглядно где какой неймспейс и т.д. А в ракете что-то это не предусмотрено
Ньюлисп выглядит очень годно. У него вроде тоже дока хорошая.
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Aydar Zarifullin
Ньюлисп выглядит очень годно. У него вроде тоже дока хорошая.
Ага, прям годнота, но требует допила. Пока на потом отложил
источник

c

corpix in Сообщество Scheme
Вывести задефайненные символы можно с помощью namespace-mapped-symbols:
/h/user  λ  racket
Welcome to Racket v7.7.
> (car (memq 'x (namespace-mapped-symbols)))
; car: contract violation
;   expected: pair?
;   given: #f
; [,bt for context]
> (define x 1)
> (car (memq 'x (namespace-mapped-symbols)))
'x


Для модулей есть https://docs.racket-lang.org/reference/Namespaces.html#%28def._%28%28quote._~23~25kernel%29._namespace-module-registry%29%29
Но я не понимаю как заглянуть внутрь этой структуры данных
источник

AP

Alex Peresmeshnik in Сообщество Scheme
corpix
Вывести задефайненные символы можно с помощью namespace-mapped-symbols:
/h/user  λ  racket
Welcome to Racket v7.7.
> (car (memq 'x (namespace-mapped-symbols)))
; car: contract violation
;   expected: pair?
;   given: #f
; [,bt for context]
> (define x 1)
> (car (memq 'x (namespace-mapped-symbols)))
'x


Для модулей есть https://docs.racket-lang.org/reference/Namespaces.html#%28def._%28%28quote._~23~25kernel%29._namespace-module-registry%29%29
Но я не понимаю как заглянуть внутрь этой структуры данных
> (length (namespace-mapped-symbols))
2490
> (requre json)
> (length (namespace-mapped-symbols))
2498
> (enter! json)
<collects>/json/main> (enter! #f)
>
источник

AP

Alex Peresmeshnik in Сообщество Scheme
С помощью enter! можно в модуль заглянуть
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Но проблема что сам модуль не выводится, namespace-mapped-symbols выдает только функции которые экспортируются модулем
источник

c

corpix in Сообщество Scheme
О, про enter! не знал, прикольно.

Да, точно. Печалька :(
источник
2020 August 09

AZ

Aydar Zarifullin in Сообщество Scheme
Попробовал короче в своем тестовом проекте использовать свой тестовый форк tinyscheme и он на удивление работает. Для меня правка интерпретатора это рокет сайнс. (Хотя правки там по большей части косметика)

Почти все проблемы которые видел решил:
Нормальная система сборки вместо мейкфайла

Новый тип данных userdata для хранения указателей на кастомные сишные структуры

Добавлен префикс к именам функций

Поддержка Windows систем (Удачная кросс-компиляция и запуск в wine)
источник

AP

Alex Peresmeshnik in Сообщество Scheme
Ништяк
источник

AP

Alex Peresmeshnik in Сообщество Scheme
А в тинисхеме стандарт схемы полностью реализован?
источник

AZ

Aydar Zarifullin in Сообщество Scheme
Alex Peresmeshnik
А в тинисхеме стандарт схемы полностью реализован?
Нет
источник

AP

Alex Peresmeshnik in Сообщество Scheme
да что ж за стандарт такой, вроде минимальный всего пару десятков функций, а нигде не реализован :)
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
Aydar Zarifullin
Попробовал короче в своем тестовом проекте использовать свой тестовый форк tinyscheme и он на удивление работает. Для меня правка интерпретатора это рокет сайнс. (Хотя правки там по большей части косметика)

Почти все проблемы которые видел решил:
Нормальная система сборки вместо мейкфайла

Новый тип данных userdata для хранения указателей на кастомные сишные структуры

Добавлен префикс к именам функций

Поддержка Windows систем (Удачная кросс-компиляция и запуск в wine)
А что вместо мейкфайла взял?
источник

AZ

Aydar Zarifullin in Сообщество Scheme
bouncepaw ⛅
А что вместо мейкфайла взял?
Premake. На выходе конечно мейкфайлы, но проблем немного меньше
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
Прикольный формат
источник

AP

Alex Peresmeshnik in Сообщество Scheme
А что там от стандарта не хватает?
источник