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

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


Сообщения - vlad

Страницы: 1 [2] 3 4 ... 93
16
Общий раздел / Re: OberonJS
« : Февраль 18, 2017, 07:31:21 am »
Создал тебе issue на GitHub. А обновлять надо с Ctrl+F5, чтобы весь кэш обновился.

Фикснул. Но возможно еще будут какие-то похожие штуки вылазить - сообщай плз.
А с кэшем надо что-то делать - иначе у других пользователей такая же проблема будет.

17
Общий раздел / Re: OberonJS
« : Февраль 17, 2017, 06:18:40 am »
А в качестве value нельзя будет подставить "Math.sin(x)" ?

Можно и так сделать.

Цитата: Ivan Denisov
Дополнительные переменные, это ведь получается лишние затраты на оперативную память. Лучше сразу вернуть значение как-то.

Этого нельзя предположить для современного JS движка. Скорее всего в данном случае код с дополнительной переменной будет оптимизирован так же как и без. Эта фича имеет смысл только для того, чтобы биндинги проще писать было.

18
Общий раздел / Re: OberonJS
« : Февраль 16, 2017, 03:02:04 pm »
Возможно ли вернуть результат без создания переменной res?

В текущей реализации нельзя. Можно сделать что-то типа "JS.cast(value, type)". Как там принято в обероновском SYSTEM - SYSTEM.VAL?

19
Общий раздел / Re: OberonJS
« : Февраль 15, 2017, 04:02:17 pm »
А у тебя похоже moduleLog не может найти, поскольку в кэше старый main.js. Обнови страницу, пожалуйста.

Я пробовал F5 не помогало, на другом компе обновило. Тебе надо поправить вот эту функцию:
function readModule(name){
    return modules['mod'+name];
}

Во-первых, кидай исключение если модуль с именем name не найден. JS так просто исключения не кидает, поэтому это все падает много позже в непонятном месте.

Во-вторых, поскольку компилятор пытается избежать конфликтов со стандартными JS классами, то для Math модуля name будет 'Math$'. Пока можешь сделать костыль типа:
function readModule(name){
    if (name == "Math$" )
        name = "Math";
    return modules['mod'+name];
}

В-третьих, создай issue на гитхабе :) Я его фиксну - имя в читатель модулей должно приходить оригинальное - 'Math'.

В-четвертых, таки нажми F12 и посмотри, что там есть для отладки. Убогость языка компенсируется неплохим дебаггером в любом популярном браузере: Chrome, IE, FireFox, Safari.

20
Общий раздел / Re: OberonJS
« : Февраль 15, 2017, 06:15:04 am »
добавление префиксов к именам модулей в переменных JavaScript не помогло :(

Какие префиксы? Зачем?

21
Общий раздел / Re: OberonJS
« : Февраль 15, 2017, 06:14:28 am »
Упс, не все работает.
TypeError: internal compiler error while parsing line 2: self.s is undefinedhttps://models.molpit.org/model/52

Как это поправить?

У меня оно падает с "moduleLog is not defined" в main.js:273.
Ты в курсе отладочных средств в браузере? F12 + break on exceptions и вперед :)

22
Общий раздел / Re: OberonJS
« : Февраль 12, 2017, 06:59:56 am »
С нетерпением буду ждать. Боюсь, что без твоей помощи с глубоким пониманием собственного транслятора, мое решение будет всегда костыльным.

Вот мой "глубокий" коммит: https://github.com/vladfolts/oberonjs/commit/e25413ba63621ccd68997b0760e49106bfb77046
Запулай его и тогда сможешь у себя написать так (см. main.js):
result = require('oc.js').compile(
src,
language,
function(e){errors += e;},
options,
                        readModule // функция чтения импортируемого модуля
)

readModule() будет выглядет так:
function readModule(name){
    return modules[name];
}

Ну и модули будут задаваться примерно так:
var modules = {
    Log: "MODULE Log;...",
    Draw: "MODULE Draw;...
    ....
};

Все извращения с конкатенацией текста модулей убери.

23
Общий раздел / Re: OberonJS
« : Февраль 09, 2017, 02:46:22 pm »
Подскажите, пожалуйста, как отключить добавление пробелов при переходе на новую строку?!?!

Ты про редактор? Это надо спрашивать/смотреть где-то здесь: https://codemirror.net/doc/manual.html

24
Общий раздел / Re: OberonJS
« : Февраль 07, 2017, 06:43:34 pm »
С нетерпением буду ждать. Боюсь, что без твоей помощи с глубоким пониманием собственного транслятора, мое решение будет всегда костыльным.

Оно у тебя есть в виде исходников на каком-нибудь гитхабе? А то я боюсь готового html будет мало...

25
Общий раздел / Re: OberonJS
« : Февраль 07, 2017, 06:40:22 pm »
Я пытался сделать как там, но не понимаю как правильно объявить глобальную переменную
PFont font;

Я так понял эта штука пришла из Java и примеры тоже оттуда ;) Поэтому надо допиливать напильником. В JavaScript нет типов при объявлении переменной, поэтому будет просто:
var font;

26
Общий раздел / Re: OberonJS
« : Февраль 07, 2017, 03:21:03 pm »
Техническая проблема с номерами строк. Решение сейчас сделал в виде парсинга ответа твоего компилятора и вычета числа строк базовых модулей. Но это такой костылище :)

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

27
Общий раздел / Re: OberonJS
« : Февраль 07, 2017, 03:13:47 pm »
Помогите, пожалуйста, разобраться со шрифтами! Как нарисовать текст?

Раз уж ты связался с processing.js, то вот это не подходит? http://processingjs.org/reference/text_

28
Общий раздел / Re: OberonJS
« : Февраль 07, 2017, 05:16:24 am »
Влад, а насколько легко сделать так, чтобы единицей компиляции был все таки модуль, а не множество модулей?
У тебя там как-то все монолитно сделано? Возможно ли использовать как-то трансилированные ранее модули?

Сделано по виртовской классике - мухи с котлетами, компиляция и генерация кода в один проход. Следующий запланированный этап это как раз распил монолита на несколько проходов с промежуточным представлением, которое можно сериализовать как "скомпилированный модуль".
У тебя какая-то реальная техническая проблема или просто не кошерно?

29
Общий раздел / Re: OberonJS
« : Январь 27, 2017, 06:16:04 pm »
Немного продвинулся, почти доделал некий менеджер модулей.
http://models.molpit.org/model/49

Выглядит прикольно. А что в итоге будет и для кого?

Возможно менять несколько модулей и потом компилировать. И также к модулям возможно добавлять документацию.
Надо теперь будет сделать, чтобы модули автоматически выстаивались в правильном порядке при компиляции.

Еще раз - надо делать on demand подгрузку, тогда такой проблемы не будет - оно естественным образом будет выстраиваться.

30
Общий раздел / Re: OberonJS
« : Январь 24, 2017, 05:13:43 pm »
А нет, он обнаруживает... но из-за того, что сверху приклеены другие модули, он неправильно строку показывает :)

Придется вычислять сдвиг и корректировать сообщения об ошибке.

Я бы все-таки предложил сделать по-правильному - чтение импортируемого модуля "on demand". Тогда не будет таких проблем. Мне кажется это не должно быть проблемой. Для HTML это будет что-то типа <script> секций, указывающих на исходные файлы модулей, oc.compile будет вытаскивать текст из соответствующей секции. Я могу помочь ближе к воскресенью, если у тебя не получится.

Страницы: 1 [2] 3 4 ... 93