Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Vladimir Vasilyev
    @9214

    to "<" "foo" можно прочитать как дойти до "<" или же что foo является тоже аргументом и нужно дойти до "<foo"

    Нет, тут как раз таки всё однозначно. Но например в

    >> parse "aab" [2 3 thru "a"]
    == true

    2 3 косячит.

    Dmitry Bubnenkov
    @bubnenkoff
    Вот не совсем понятно: "converting textual code representation into a structured memory representation".
    Я думал интерпритатор просто ходит по JSON-подобной структуре в памяти и исполняет ее на ходу. Что кроется за: "structured memory representation"?
    Vladimir Vasilyev
    @9214
    Та самая "JSON-подобная структура" по которой интепретаторы ходят.
    Dmitry Bubnenkov
    @bubnenkoff

    Лексер = интерпритатор?
    Просто в моем понимании загрузчик - загружает в память, интерпритатор интерпритирует.

    Или фроентэнд интерпритатора называется лексер и там еще какие-то операции производятся?

    Vladimir Vasilyev
    @9214

    Лексер = интерпритатор?

    Это вообще какой-то прыжок веры у тебя получается.

    Лексер это и есть загрузчик, из текста в структуру.
    Dmitry Bubnenkov
    @bubnenkoff
    т.е. лексер просто трансформирует в какое-то представление по которому уже интерпритатор умеет ходить и все?
    А перед лексером есть еще какие-то фазы?
    Vladimir Vasilyev
    @9214
    Да. Других фаз нету, ты скармливаешь текст и тебе выплёвывают синтаксическое дерево. По этому дереву потом интерпретаторы/компиляторы лазят как обезьяны.
    Dmitry Bubnenkov
    @bubnenkoff
    А чем принципиально это от JIT отличается? Там же тоже AST по идее
    Vladimir Vasilyev
    @9214
    JIT и AST это вообще принципиально разные вещи. И Red работает с CST, а не AST.
    Dmitry Bubnenkov
    @bubnenkoff
    CST получается сами значения узлов еще сохраняет?
    Просто я не совсем понимаю в чем отличие интерпритаторов в других языках. Они же ходят тоже по промежуточному представлению. Или вся разница в том, что тут CST, а у других языков AST?
    Vladimir Vasilyev
    @9214
    Не все интерпретаторы AST используют.
    Dmitry Bubnenkov
    @bubnenkoff
    А что еще кроме AST пригодно для подобных целей? Шитый код это в эту степь?
    Есть еще языки где CST используется?
    Vladimir Vasilyev
    @9214
    Книжки по компиляторам и парсерам читай :)
    Dmitry Bubnenkov
    @bubnenkoff
    Ты про книгу дракона? Мне просто она сложной показалась очень. Есть что-то для гуманитариев?)
    Vladimir Vasilyev
    @9214
    "Parsing Techniques, Dick Grune" первую главу полистай. Результат парсинга это и есть CST. AST подразумевает уже некоторый анализ и пост-процессинг CST. К примеру CST это [1 + 2 * 3], которое само по себе смысла не имеет. AST к этому добавит что "вот здесь инфиксное выражение с арифметическими операциями над целыми числами и * имеет приоритет над +" и придаст этому некий смысл, необходимый для компиляции/интерпретации.
    Dmitry Bubnenkov
    @bubnenkoff
    "которое само по себе смысла не имеет" а в случае с Red как тогда оно обрабатывается?
    Vladimir Vasilyev
    @9214
    Я это уже сотню раз объяснял.
    Dmitry Bubnenkov
    @bubnenkoff
    контекст получается смысл задает?
    Dmitry Bubnenkov
    @bubnenkoff
    open: ["<" copy opening to ">" if (find tags opening) ">"]
    Никак не могу понять смысл if (find tags opening). Оно нужно, чтобы передвинуться к закрывающему тегу: ">"?
    Dmitry Bubnenkov
    @bubnenkoff
    @9214 я тут читаю про copy/deep red/red#2167
    Я правильно понимаю, что даже он не обеспечивает глубинное копирование всего? И какая причина такого поведения?
    Vladimir Vasilyev
    @9214
    @bubnenkoff в квитке вроде всё расписано, хотя он четырехлетней давности и может не соответствовать действительности.
    Dmitry Bubnenkov
    @bubnenkoff
    @9214 скажи, а ты в какой стране живешь? Просто я у тебя в письменном английском вижу обороты не характерные даже для европейцев
    Vladimir Vasilyev
    @9214
    Большую часть жизни провел на среднем Урале.
    Dmitry Bubnenkov
    @bubnenkoff
    А еще знаешь русско-язычных программистов на Red?
    Vladimir Vasilyev
    @9214
    Лично нет. Из здесь присутствующих @maximvl был активен пару-тройку лет назад когда я только начинал, потом пропал с радара. @uralbash вроде работает в УрФУ, так же пару лет назад склепал примеры с Red для курса по сетевому программированию, состряпал пакет для NixOS и пропал.
    Dmitry Bubnenkov
    @bubnenkoff
    А ты где работаешь? Работа как-то связана с Red или это хобби?
    Vladimir Vasilyev
    @9214
    Как-то связана :)
    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    Здравствуйте. Подскажите пожалуйста где есть рускоязычные ресурсы/книги по Red/Rebol (второй)? Так же как найти/приобрести лицензию на Rebol/Pro, SDK, Command? Тут http://www.rebol.com/cgi-bin/feedback/post2.r писал, но ответа не получил. Гугль тоже не принёс результата... С английским плохо, а переводчик достаточно сильно порой (часто :( )коверкает смысл, поэтому ищу информацию на русском. Rebol нужен из-за того, что в Red отсутствует поддержка работы с COM портом, а Pro/SDK/Command чтобы работать с HTTPS (SSL3), а то "load https://gitter.im/red/Russian" выдаёт (** Command Error: SSL Error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure)
    DVL333
    @DVL333
    Привет!
    Русскоязычных ресурсов/книг, насколько мне известно, нет. Я, когда только начинал свое знакомство с Red, написал статью с коротким пособием: https://habr.com/ru/post/351100/
    Что касается работы с https, то не совсем понятно, что вы ожидаете от выполнения команды "load https://gitter.im/red/Russian". Наверное, для ваших целей следует использовать функцию read:
    read https://gitter.im/red/Russian
    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    Хочу код страницы получить, а получаю ошибку SSL...
    >> read https://gitter.im/red/Russian
    connecting to: gitter.im
    ** Command Error: SSL Error:  error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
    ** Where: build-port
    ** Near: system/words/set-modes port/sub-port [secure: true]
    https://habr.com/ru/post/351100/
    Доступ к публикации закрыт
    Вы пытаетесь открыть публикацию, написанную пользователем DVL333, однако, публикация скрыта в черновики (самим автором или НЛО)
    DVL333
    @DVL333

    Насчет ошибки SSL ничего подсказать не смогу - в консоли Red у меня все работает нормально.

    >> read https://gitter.im/red/Russian
    == {<!doctype html>^/<html class="no-js " lang="en">^/  <head>^/    <meta http-equiv="X-UA-Compatibl...

    Насчет статьи вы правы - на Хабре я ее вижу, т.к. являюсь ее автором. ) Но эта статья была скопирована на ряд ресурсов, поэтому вы можете ее посмотреть, например, здесь: http://othermedia.info/?p=3147

    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab

    В Red есть поддержка SSL3, но нет поддержки работы с COM портом (RS232)

    >> ? system/ports
    SYSTEM/PORTS is an object! with the following words and values:
    
    >>

    В Rebol есть поддержка COM

    >> ? system/ports
    SYSTEM/PORTS is an object of value:
       input           port!     make port! [ scheme: 'console host: none port-id: ...
       output          port!     make port! [ scheme: 'console host: none port-id: ...
       echo            none!     none
       system          port!     make port! [ scheme: 'system host: none port-id: n...
       serial          block!    length: 2
       wait-list       block!    length: 1
    
    >> ? system/ports/serial
    SYSTEM/PORTS/SERIAL is a block of value: [com1 com2]
    >>

    но нет поддержки SSL3
    Мне нужно написать программу, которая будет работать с устройством подключенным к COM порту и данными в сети через https (ssl3)... Не Red не Rebol/View не подходят, есть надежда на Rebol/SDK (Pro, Command) но не могу на них найти/купить лицензию.

    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    Про статью - спасибо за неё, читал и она, вместе с интервью с Nenad Rakocevic ( https://habr.com/ru/post/265685/ ) была основными аргументами, которые меня направили в сторону Red, а оттуда и в Rebol .
    DVL333
    @DVL333
    Сергей, насколько я помню, несколько лет назад был анонс, что Rebol/SDK теперь бесплатен.
    Я быстро посмотрел в поисковике, нашел вот такой репозиторий:
    http://www.rebol.com/downloads/v278/sdk/index.html
    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    К сожалению он не бесплатен, а свободно скачиваемый. При запуске говорит:
    *** License key is missing. Special features are not available.
    *** Please put your license.key file in the correct directory.
    >>
    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    Собственно этот "license.key" и пытаюсь найти/купить...
    DVL333
    @DVL333

    Я немного ошибся, бесплатным из SDK делали лишь Rebol/Command - похоже, он и вправду работает, хоть и требует ключ.
    Но на сайте Rebol написано, что функциональность работы с SSL/HTTPS доступна в Rebol/View в полном объеме (http://www.rebol.com/docs/ssl.html) Другое дело, что поддерживаются лишь SSLv2, SSLv3 и TLSv1 Скорее всего https://gitter.im/red/Russian имеет более позднюю версию шифрования (TLSv1.1, TLSv1.2).
    Например, с тем же yandex.ru все работает :

    >> read https://yandex.ru/
    connecting to: yandex.ru
    == {<!DOCTYPE html><html class="i-ua_js_no i-ua_css_standart i-ua_browser_unknown i-ua_browser-engine_unknown i-ua_browser_de
    sktop ...

    Поэтому проблема тут не в версии Rebol и платная версия вам не поможет. С другой стороны, с сайтами с SSLv2, SSLv3 и TLSv1 все должно работать нормально.

    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    Работаь Rebol/Command вроде как работает, как и Rebol/Pro, но на уровне Rebol/View, с отключением всех дополнительных возможностей, о чём собственно и сообщает.
    Где-то читал, что в Command/Pro/SDK кроме всяческих баз данных, ещё и протоколы шифрования расширены. Command более не продаётся (http://www.rebol.com/command.html ) и хоть он бесплатно скачивается, но всё равно требует лицензию.
    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    Извиняюсь за вопрос не совсем по теме, но некому не удавалось в linuxе (debian) у скрипта на R2 кириллицу отобразить? Перепробовал всевозможные кодировки для текста скрипта - кириллицы нет не в консоли, не в xterme, не в графическом окошке (VID)... Как то через wine пытаться юзать - некомельфо...
    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    xterm - разобрался, utf-8 отображается и обрабатывается замечательно, остался вопрос с графикой.
    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    Ребята, а есть русское сообщество по Rebol2 или вопросами по нему можно офтопить тут?
    Vladimir Vasilyev
    @9214
    @Sergey_Vladivostok_gitlab Оффтопь сюда, лучше места всё равно не найдёшь.
    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab

    Офтоплю:
    У R2 проблемы с SSL3:

    >> a: read https://github.com
    ** Command Error: SSL Error:  error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 aler
    t protocol version
    ** Where: build-port
    ** Near: system/words/set-modes port/sub-port [secure: true]

    выкручиваюсь с помощью cURL:

    >> a: copy ""
    >> call/output "curl -l https://github.com" a

    а вот как бы перенаправит трафик для почты через curl?
    send работает только для серверов без шифрования (поднял на свём хостинге), тогда как все почтовые сервисы ушли в "https" и чтобы работать сними приходится поднимать проксю "stunnel", возможно есть способ для сетевых протоколов задействовать curl "по умолчанию"? Stunnel настроить на "обёртывание" https у меня чего то не получилось, хотя pop и smtp "обернулись" без проблем.

    Sergey Vladivostok
    @Sergey_Vladivostok_gitlab
    Собираю книжки и документацию по Rebol, в меру возможностей перевожу на русский, т.к. в английском не селён. Если у кого-то есть что добавить или желание за гуглпереводчиком поправить текст на человечий язык - пишите, почта внизу страницы http://pochinoksergey.ru/rebol/doc.html