Автор Тема: Online компилятор Oberon-07/11.  (Прочитано 165107 раз)

Romiras

  • Sr. Member
  • ****
  • Сообщений: 264
    • Просмотр профиля
    • Romiras Dev Lab
Re: Online компилятор Oberon-07/11.
« Ответ #315 : Ноябрь 25, 2013, 12:04:51 pm »
Корявое решение, на мой взгляд. Чую, что можно сделать лучше.

Кроме того,
Цитата: bryanmac
Also, just so you're aware, you should never call readFileSync in a node express/webserver since it will tie up the single thread loop while I/O is performed. You want the node loop to process other requests until the I/O completes and your callback handling code can run.
http://stackoverflow.com/questions/17604866/difference-between-readfile-and-readfilesync

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #316 : Ноябрь 25, 2013, 02:18:05 pm »
Корявое решение, на мой взгляд. Чую, что можно сделать лучше.
...
Если это мне, то мысль не уловил.

А если предложение сделать компиляцию асинхронной, то лично я не вижу пока еще смысла в этом, на мой взгляд, "усложнении", но это уж конечно как нащальника скажет :)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #317 : Ноябрь 25, 2013, 03:23:20 pm »
Корявое решение, на мой взгляд. Чую, что можно сделать лучше.

Кроме того,
Цитата: bryanmac
Also, just so you're aware, you should never call readFileSync in a node express/webserver since it will tie up the single thread loop while I/O is performed. You want the node loop to process other requests until the I/O completes and your callback handling code can run.
http://stackoverflow.com/questions/17604866/difference-between-readfile-and-readfilesync

Я так понимаю у adva там ни разу не вебсервер (да еще и однопоточный :) Так что все эти коллбэки нафиг не сдались.
Если уж критиковать решение, что я бы обратил внимание на то, что читать файл надо все-таки один раз (в переменную). Уж очень в глаза бросается.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #318 : Декабрь 31, 2013, 07:40:42 am »
На какое-то время пришлось отложить работу с компилятором, вопрос, он как-то дорабатывался в связи c выявленными новшествами CASE и пр. ?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #319 : Декабрь 31, 2013, 07:53:39 am »
На какое-то время пришлось отложить работу с компилятором, вопрос, он как-то дорабатывался в связи c выявленными новшествами CASE и пр. ?

Нет, ждем официального репорта.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #320 : Январь 03, 2014, 06:38:22 am »
Что-то я не понял, в каком виде подсовывать теперь опции файлу oc_nodejs.js ?

Пример приведите, пожалуйста.

А то указал в таком виде, не работает:

CompileJs\node CompileJs\oc_nodejs.js --out-dir=%CD% --import-dir=%CD% %1

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #321 : Январь 03, 2014, 03:29:20 pm »
А то указал в таком виде, не работает:

Вроде все правильно. Что говорит?

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #322 : Январь 04, 2014, 01:45:15 am »
выяснил что имя файла не верно передал, предыдущий вопрос снят.

Но в итоге у меня почему-то не появилось аналогичного файла js, или что должно было появиться?

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #323 : Январь 04, 2014, 01:55:07 am »
Извиняюсь, вопрос тоже снят, забыл что не по имени файла, а по имени модуля файлы образуются.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #324 : Январь 04, 2014, 02:17:19 am »
Код, который ранее компилился без ошибок, перестал:

имеем:

Date* = POINTER TO IDate;
IDate* = RECORD (ObjectRec)
    getTime: PROCEDURE (): INTEGER
END;

d.getTime()  (* здесь d имеет тип Date *)
ругается, что IDate не имеет данного поля
File "D:\GoogleDisk\_snegopat\scripts\Oberon\Tools.ob", line 67: type 'IDate' ha
s no 'getTime' field
D:\GoogleDisk\_snegopat\scripts\Oberon>pause
Для продолжения нажмите любую клавишу . . .

Как надо переделать, или какую опцию запустить, чтобы сработало?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #325 : Январь 04, 2014, 02:22:11 am »
Код, который ранее компилился без ошибок, перестал:

Надо экспортнуть поле:

IDate* = RECORD (ObjectRec)
    getTime*: PROCEDURE (): INTEGER
END;

Раньше работало в результате бага :)

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #326 : Январь 04, 2014, 08:03:55 am »
Ясно, точно :)

Тогда еще вот вопрос:

Object* = POINTER TO ObjectRec;
ObjectRec* = RECORD
     toString*: PROCEDURE (): String
END;

В этом коде ругается:
cannot declare field, record already has method 'toString' . Это мне у себя чего искать, или так задумано?

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #327 : Январь 04, 2014, 04:00:52 pm »
А ObjectRec никто не расширяет?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #328 : Январь 04, 2014, 11:10:56 pm »
В этом коде ругается:
cannot declare field, record already has method 'toString' . Это мне у себя чего искать, или так задумано?

Хм. Интересно. Это видимо потому, что "toString" есть у всех объектов в JS. Попробую пофиксить.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #329 : Январь 07, 2014, 07:20:38 am »
имеем вложенную процедуру, которую вызываем после BEGIN внешней процедуры. Передаем параметры, количеством отличающимся (ругается, что количество параметров не то, но при этом указывает на первую строку, в результате очень сложно обнаружить ошибку)