Автор Тема: Вопрос по биндингу ? Или что тут еще требуется?  (Прочитано 111383 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #135 : Ноябрь 01, 2013, 04:29:25 am »
Я таким образом могу модули независимо компилировать, или как в браузере надо, если есть импорт, то должен быть и модуль?

Обероны не поддерживают же независимую компиляцию, это же не си...
А при раздельной компиляции либо нужны definition modules как в модуле-2, либо sym-файлы, которых в этом компиляторе нет, либо исходные коды самих импортированных модулей...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #136 : Ноябрь 01, 2013, 04:35:18 am »
И еще, у cmd  файла есть какое нибудь возвращаемое значение? Или как мне можно получить, код ошибки/успеха?

Записывать число в переменную %ERRORLEVEL% и потом её анализировать (в других cmd-файлах)
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #137 : Ноябрь 01, 2013, 04:37:29 am »
Может можно из яваскрипта задать/записать переменную окружения? Это было бы проще

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #138 : Ноябрь 01, 2013, 04:39:29 am »
Хотя пожалуй даже вывод в файл подойдет. Вроде в node есть работа с файловой системой, попробую реализовать

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #139 : Ноябрь 01, 2013, 05:27:01 am »
Изменил файл oc_nodejs.js на так:
"use strict";

var nodejs = require("nodejs.js");
var fs = require("fs");

function main(){
    if (process.argv.length <= 3){
        console.info("Usage: <oc_nodejs> <output dir> <input oberon module file(s)>");
        return -1;
    }

    var outDir = process.argv[2];
    var sources = process.argv.slice(3);
    var errors = "";
    nodejs.compile(sources, function(e){errors += e;}, outDir);
    if (errors.length){
fs.writeFile('error.txt', errors, function (err) {
  if (err) throw err;
  console.log('It\'s saved!');
});       
        console.error(errors);
return -2;
    }

    console.info("OK!");
    return 0;
}

process.exit(main());

Файл ошибок при этом формируется, но пустой (хотя сообщение об ошибке выдается в консоль), на какое значение надо заменить errors в fs.writeFile ?

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #140 : Ноябрь 01, 2013, 05:49:43 am »
Даже если строку туда задаю, все равно файл пустой

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #141 : Ноябрь 01, 2013, 06:13:51 am »
В общем пока могу пожалуй ошибку смотреть в консоли без обработки (без перехода на строку ошибки), но если вдруг подскажите, как в файл выводить, то буду признателен. Но это уже не срочный вопрос.

Спасибо еще раз.

Пока перейду к более актуальным задачам

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #142 : Ноябрь 01, 2013, 06:40:01 am »
Все таки еще раз прощу уточнить про "раздельную" (на самом деле имел в виду другое) компиляцию, я могу компилировать через node модуль, если у меня оберонмодуля будут лежать в отдельных файлах? Или надо сначала получить общий файл?

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #143 : Ноябрь 01, 2013, 06:47:56 am »
И еще такой вопрос, можно ли возвращать не -2 а -№ строки ошибки?

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #144 : Ноябрь 01, 2013, 07:06:11 am »
Про раздельную компиляцию выявил, компилируется, при наличии соответствующего файла (с названием модуля). Вопрос снят.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #145 : Ноябрь 01, 2013, 08:43:43 am »
Вопрос: если сделаю отдельную ветку по компилятору (или как там это называется, имею в виду исходники на гитхабе). То при изменении основной ветки если конфликтов не будет, ветка будет автоматически обновляться?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #146 : Ноябрь 01, 2013, 09:57:20 am »
Вопрос: если сделаю отдельную ветку по компилятору (или как там это называется, имею в виду исходники на гитхабе). То при изменении основной ветки если конфликтов не будет, ветка будет автоматически обновляться?
Нет, надо руками обновлять (но это в общем то не так уж с тяжело)
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #147 : Ноябрь 01, 2013, 02:01:06 pm »
О заменил в NODE_PATH слеши на обратные, node.js нашелся, но теперь говорит, что нету RTL$.js

Надо еще путь к подкаталогу oberon.js прописать.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #148 : Ноябрь 01, 2013, 02:56:04 pm »
О заменил в NODE_PATH слеши на обратные, node.js нашелся, но теперь говорит, что нету RTL$.js

Надо еще путь к подкаталогу oberon.js прописать.
Да, так тоже работает, спасибо, так не придется структуру каталогов менять после обновления компилятора. Просто не сразу разобрался, как сразу 2 каталога в переменной среды прописать, были ссылки на линукс, а там разделителем двоеточие являлось, что в винде не работало.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #149 : Ноябрь 01, 2013, 03:01:16 pm »
Я таким образом могу модули независимо компилировать, или как в браузере надо, если есть импорт, то должен быть и модуль?

Нет, не можешь. Если бы были символьые файлы - тогда можно былор бы раздельно компилировать. Сейчас процесс выглядит так:
- на входе список файлов .ob, которые входят в твою программу
- в процессе компиляции если компилятор натыкается на IMPORT еще не скомпилированного файла .ob - он его компилит (процесс повторяется рекурсивно)
- все файлы можно не указывать, если они импортятся модулями из оригинального списка
- когда все скомпилировано генерится RTL$.js с нужной подеержкой времени исполнения для всех скомпилированных файлов

Я не считаю этот механизм правильным (можно не критиковать), просто на данном этапе это то, что мне нужно для переписывания кусков компилятора на оберон.