Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - vlad

Страницы: 1 ... 5 6 [7] 8 9 ... 93
91
Общий раздел / Re: Oberon-07/13: заметки
« : Ноябрь 13, 2014, 03:27:34 pm »
Приделал динамические массивы: https://github.com/vladfolts/oberonjs/wiki/eberon-dynamic-arrays
Основная особенность - не ссылочный тип, может быть возвращен из процедуры и не может быть NIL.

92
Урочище Флуда / Re: Что - то скучно у вас...
« : Ноябрь 12, 2014, 04:50:11 pm »
Уфф  окинул взглядом Оберонную активность на этом форуме на этом форуме (за последний год) - и есть ощущение, что тема исчерпала себя  :D Господа... что скажете?

Уже все обсудили ;) Хотя я тут собираюсь закинуть тему про динамические массивы в ебероне (сейчас доку пишу) - можно будет пообсуждать.

93
Общий раздел / Re: Oberon-07/13: заметки
« : Сентябрь 19, 2014, 02:16:40 am »
Тут ещё один проект есть, наверно в чём-то похожий...
Называется LLJS

Ну да, только там пляшут от С и сразу низкоуровневый бакенд в духе asm.js. Не очень понятно зачем оно, если у LLVM уже есть такой бакенд, но при этом и полноценный фронт (полный С/С++).

94
Общий раздел / Re: Вопросы по OberonJS
« : Сентябрь 17, 2014, 11:54:42 pm »
В данном случае я имел в виду при "взаимоотношении" между имеющейся кодовой базой на JS и новым кодом, написанным на OberonJS. Возможно, будут некоторые особенности из-за скомпилированного кода.

Посколько код сейчас компилируется в читабельный js (не asm.js), то сильно заковыристых проблем быть не должно. Самое страшное - из js придет непотребность с точки зрения оберона. Например:
PROCEDURE test*(i: INTEGER);

Будет вызвана из js как:
oberon.test("abc");

В каком месте после такого упадет (и упадет ли вообще) "обероновский" код - угадать/отладить может быть трудно (особенно без дебагера). В обратную сторону (из оберона звать js) - должно быть намного лучше, потому что js библиотеки более устойчивы к таким вещам (точнее там оно в порядке вещей).

95
Общий раздел / Re: Вопросы по OberonJS
« : Сентябрь 17, 2014, 08:19:22 pm »
    Цитата: Роман М.
    • Как провести грань между мелким скриптингом и приложением? Если можно, привести наглядные примеры.
    Вообще на js даже очень маленькое приложение быстро теряет какую бы то ни было структуру. Буквально на днях пытался отбиться "голым js" и уже через 200 строк почувствовал, что теряю контроль. В смысле если и дальше продолжать на js, то со всем арсеналом - тесты, библиотеки.

    Цитата: Роман М.
    • Расскажите что-нибудь из опыта отладки заковыристых мест при одновременной работе с OberonJS и JavaScript.
    Неисследованная область - очень тяжело может быть.

    Цитата: Роман М.
    • Каковы преимущества использования OberonJS перед TypeScript касательно статической проверки типов.
    Не могу сказать - не пробовал TypeScript. С первого взгляда там все не так плохо (как в js) и на старте точно лучше, чем в oberonjs (за счет готовой инфраструктуры с поддержкой от M$).

    Цитата: Роман М.
    • Каковы перспективы использования Asm.js?

    По всем признакам должно очень хорошо ложиться в asm.js. Просто пока не до него.

    96
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 21, 2014, 05:42:56 pm »
    Наткнулся на интересную проблему - получить указатель на объект в реализации метода этого объекта. В ебероне SELF - это ссылка на объект (VAR T: SELF, а не POINTER TO T: SELF). Кроме того, метод может быть вызван для стекового объекта (или статического - переменной модуля), поэтому просто кастнуть SELF в указатель нельзя (без риска получить ошибку в рантайме).

    Бурно обсудили в курилке (всем участникам спасибо). В итоге я пришел к такому компромиссу:
    - специальный конструкт SELF(POINTER) для получения указателя
    - отсутствие проблем в рантайме гарантируется тем, что объект в методах которого используется такой конструкт не может быть объявлен на стеке (или в модуле) - т.е., может быть создан только через NEW (компилятор проверяет).

    Оригинальная проблема (когда понадобился указатель): https://github.com/vladfolts/oberonjs/blob/7c63179c809490ea6c65a9842512c3ad481f95e4/src/ob/Scope.ob#L194

    Решение (с помощью SELF(POINTER): https://github.com/vladfolts/oberonjs/blob/master/src/ob/Scope.ob#L192

    97
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 16, 2014, 03:59:25 pm »
    К чёрту оберонщиков -- они всё равно не оценят, делай как в Аде -- счётчик по месту, только на чтение, и за пределами цикла не виден!!!

    В данном расширении он тоже не виден за пределами.  Только для чтения сделать легко, но пока не буду отвлекаться на косметику.

    98
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 15, 2014, 06:45:12 pm »
    При этом использование переменной из VAR выглядит ненужным и скорее вредным, но оставил для совместимости и в ебероне.
    А совместимость-то зачем? Толпы обладателей легаси кода заклюют?

    Чтобы минимизировать количество неконцептуальной критики и не пугать оберонщиков сразу - их мнение важно. Если ломать совместимость, то я уже говорил - надо вообще синтаксис пересматривать.

    99
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 15, 2014, 05:43:02 pm »
    Добавил возможность использовать переменную "по месту" непосредственно в FOR:
    FOR i <- 0 TO 10 DO
    ...
    END
    [code]

    При этом использование переменной из VAR выглядит ненужным и скорее вредным, но оставил для совместимости и в ебероне.

    100
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 14, 2014, 04:56:21 pm »
    Они потому "нек только для чтения", что их используют в качестве локальных переменных, для экономии, видимо

    Да, наверное, можно сэкономить сколько-то тактов и стека. Но для ЯВУ неактуально (не говоря уже о js-бакенде) и мешает.

    101
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 13, 2014, 06:59:28 am »
    Долго думал. Пока склоняюсь к идее, что это "константа по месту". Т.е., ведет себя аналогично CONST s = "abc", только с поправкой на область видимости.

    Или всегда делать строкой STRING...

    102
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 13, 2014, 06:41:41 am »
    В свете переменнных по месту очень интересно начинает выглядеть такой конструкт:
    s <- "abc";

    Долго думал. Пока склоняюсь к идее, что это "константа по месту". Т.е., ведет себя аналогично CONST s = "abc", только с поправкой на область видимости.

    103
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 13, 2014, 05:39:45 am »
    Даже записи? На всю глубину? Круто.

    Записи и так были read-only, на всю глубину, согласно Вирту. Их, кстати, даже кастать нельзя - тоже согласно Вирту. Мое ограничение по сравнению с оригинальным обероном касается только скалярных типов.

    А OUT параметры уже выпилены?

    В обероне нет OUT-параметров, только VAR - здесь никаких изменений нет.

    104
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июль 11, 2014, 06:27:33 am »
    Ну вот, нашел таки место, где оригинальный оберон можно еще больше ограничить ;) Сделал non-VAR аргументы только для чтения: https://github.com/vladfolts/oberonjs/wiki/Eberon-non-VAR-arguments-are-read-only

    105
    Общий раздел / Re: Oberon-07/13: заметки
    « : Июнь 28, 2014, 03:20:19 pm »
    А чем не понравилось слово "as", как в C#?

    Надо новое имя переменной придумывать. В случае message bus не очень удобно.

    Страницы: 1 ... 5 6 [7] 8 9 ... 93