compile + loadbc в избранное  новое    подписка   модер. 
От: 4day 
Дата: 19.10.09 10:19
Оценка:38 (1)
файл test.htm:
<html><head>
<script type="text/tiscript">
    compile("test.tis","test.js");
    loadbc("test.js");
</script>
</head>
<body>
</body>
</html>


файл test.tis:
function foo()
{
  return "Hello sciter!";
}

view.msgbox(#alert,foo());

Что-то совсем не работает...
При запуске test.htm в sciter.exe ничего не происходит...
По закрытию sciter.exe вылетает ошибка.
Re[8]: compile + loadbc в избранное  новое    модер. 
От: 4day 
Дата: 26.10.09 18:30
Оценка:38 (1)
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, 4day, Вы писали:


4>>Здравствуйте, c-smile, Вы писали:


CS>>>Скачай SDK еще раз. Должно работать.


4>>не компилица:

4>>
4>>var SomeObj  = {color: 0, vertex: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0}}; 
4>>


CS>компилица то оно компилица. Просто при сохранении байткода проблема какая-то в этом случае. Починю.


маленькое исследование на данную тему, может будет полезно
var SomeObj  = {color: 0, vertex: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0}} //Ошибка
var SomeObj  = {color: 0, vertex: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}} //Нет ошибки(убрал один элемент вложенного массива)


+ если в файле кроме данной строки нет больше кода, то все пучком, а стоит добавить строчку, ломается...
Re: compile + loadbc в избранное  новое    модер. 
От: c-smilehttp://terrainformatica.com
Дата: 19.10.09 17:58
Здравствуйте, 4day, Вы писали:

Починю сегодня.
Re[2]: compile + loadbc в избранное  новое    модер. 
От: 4day 
Дата: 25.10.09 10:43
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, 4day, Вы писали:


CS>Починю сегодня.

45-ый релиз все равно не компилит (затыкается на строках с рус. комментариями, как на блоковых так и на потоковых):
файл test.tis:
//Функция foo - очень важная функция!
function foo()
{
  return "Hello sciter!"; 
}
Re[3]: compile + loadbc в избранное  новое    модер. 
От: c-smilehttp://terrainformatica.com
Дата: 25.10.09 16:17
Здравствуйте, 4day, Вы писали:

4>Здравствуйте, c-smile, Вы писали:


CS>>Здравствуйте, 4day, Вы писали:


CS>>Починю сегодня.

4>45-ый релиз все равно не компилит (затыкается на строках с рус. комментариями, как на блоковых так и на потоковых):
4>файл test.tis:
4>
4>//Функция foo - очень важная функция!
4>function foo()
4>{
4>  return "Hello sciter!"; 
4>}
4>


Скачай SDK еще раз. Я только что обновил его.
Должно работать если входной файл в utf-8 encoding.
Обрати внимание что сигнатура compile() функции расширена — она может принимть на вход также объекты класса Stream.
Re[4]: compile + loadbc в избранное  новое    модер. 
От: 4day 
Дата: 25.10.09 17:19
Здравствуйте, c-smile, Вы писали :

CS>Скачай SDK еще раз. Я только что обновил его.

CS>Должно работать если входной файл в utf-8 encoding.

неа, даже с utf-8
var SomeTextStr="Это строка "; //Это комментарий

function foo()
{
  stdout.printf("It's foooonction...\n");
}
Re[5]: compile + loadbc в избранное  новое    модер. 
От: c-smilehttp://terrainformatica.com
Дата: 25.10.09 20:25
Здравствуйте, 4day, Вы писали:

4>Здравствуйте, c-smile, Вы писали :


CS>>Скачай SDK еще раз. Я только что обновил его.

CS>>Должно работать если входной файл в utf-8 encoding.

4> неа, даже с utf-8

4>
4>var SomeTextStr="Это строка "; //Это комментарий

4>function foo()
4>{
4>  stdout.printf("It's foooonction...\n");
4>}
4>


Скачай SDK еще раз. Должно работать.
Re[6]: compile + loadbc в избранное  новое    модер. 
От: 4day 
Дата: 26.10.09 11:42
Здравствуйте, c-smile, Вы писали:

CS>Скачай SDK еще раз. Должно работать.


неа....
var SomeTextStr="А эта строка очень длиная строка, ее длина немного больше выделенного буфера, который как оказалось равен 128 байтам, а жаль... ";

Re[6]: compile + loadbc в избранное  новое    модер. 
От: 4day 
Дата: 26.10.09 12:31
Здравствуйте, c-smile, Вы писали:

CS>Скачай SDK еще раз. Должно работать.


не компилица:
var SomeObj  = {color: 0, vertex: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0}};
Re[7]: compile + loadbc в избранное  новое    модер. 
От: c-smilehttp://terrainformatica.com
Дата: 26.10.09 17:48
Здравствуйте, 4day, Вы писали:

4>Здравствуйте, c-smile, Вы писали:


CS>>Скачай SDK еще раз. Должно работать.


4>неа....

4>
4>var SomeTextStr="А эта строка очень длиная строка, ее длина немного больше выделенного буфера, который как оказалось равен 128 байтам, а жаль... ";
4>

4>

Это не ко мне. Все претензии к консольным функциям Windows.

Если ты напишешь так:

var SomeTextStr="А эта строка очень длиная строка, ее длина немного больше выделенного буфера, который как оказалось равен 128 байтам, а жаль... ";
    self#out.text = SomeTextStr;


И у тебя будет элемент
<p #out />


то ты увидишь строку целиком.
Re[7]: compile + loadbc в избранное  новое    модер. 
От: c-smilehttp://terrainformatica.com
Дата: 26.10.09 17:50
Здравствуйте, 4day, Вы писали:

4>Здравствуйте, c-smile, Вы писали:


CS>>Скачай SDK еще раз. Должно работать.


4>не компилица:

4>
4>var SomeObj  = {color: 0, vertex: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0}}; 
4>


компилица то оно компилица. Просто при сохранении байткода проблема какая-то в этом случае. Починю.
Re[8]: compile + loadbc в избранное  новое    модер. 
От: 4day 
Дата: 26.10.09 18:24
Здравствуйте, c-smile, Вы писали:

CS>Если ты напишешь так:


CS>
CS>var SomeTextStr="А эта строка очень длиная строка, ее длина немного больше выделенного буфера, который как оказалось равен 128 байтам, а жаль... ";
CS>    self#out.text = SomeTextStr;
CS>


CS>И у тебя будет элемент

CS>
CS><p #out />
CS>


CS>то ты увидишь строку целиком.


да, это я знаю...
может в функцию compile какую-нибудь диагностику(протоколирование)
добавить. А то черный ящик какой-то получается, туда код а в ответ true, и не поймешь
правильно все скомпилировалось или нет...

Ну и философский такой вопрос: есть выгода в производительности работы tis-кода до и после компиляции? Какие преимущества дает использование предварительной компиляции, а затем вызова loadbc в html, вместо include?
Re[9]: compile + loadbc в избранное  новое    модер. 
От: c-smilehttp://terrainformatica.com
Дата: 26.10.09 19:25
Здравствуйте, 4day, Вы писали:

4>Здравствуйте, c-smile, Вы писали:


CS>>Если ты напишешь так:


CS>>
CS>>var SomeTextStr="А эта строка очень длиная строка, ее длина немного больше выделенного буфера, который как оказалось равен 128 байтам, а жаль... ";
CS>>    self#out.text = SomeTextStr;
CS>>


CS>>И у тебя будет элемент

CS>>
CS>><p #out />
CS>>


CS>>то ты увидишь строку целиком.


4>да, это я знаю...


А чего не сказал? Я бы время не потерял в поисках ...

4>может в функцию compile какую-нибудь диагностику(протоколирование)

4>добавить. А то черный ящик какой-то получается, туда код а в ответ true, и не поймешь
4>правильно все скомпилировалось или нет...

А что еще надо кроме:
try { compile(...) } 
catch (e) { error; }

?

4>Ну и философский такой вопрос: есть выгода в производительности работы tis-кода до и после компиляции? Какие преимущества дает использование предварительной компиляции, а затем вызова loadbc в html, вместо include?


Сильной выгоды в общем-то нет. Компиляция достаточно быстрая.
Собстсвенно это есть requirement ибо вызов eval() должен быть тоже быстрым.
compile() имеет смысл если код не хочется открывать.
Re[9]: compile + loadbc в избранное  новое    модер. 
От: c-smilehttp://terrainformatica.com
Дата: 26.10.09 22:28
Здравствуйте, 4day, Вы писали:

4>маленькое исследование на данную тему, может будет полезно

4>
4>var SomeObj  = {color: 0, vertex: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0}} //Ошибка
4>var SomeObj  = {color: 0, vertex: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}} //Нет ошибки(убрал один элемент вложенного массива)
4>


"вложенный массив" это не то что ты написал. Вот вложенный массив:


var SomeObj  = {color: 0, vertex: [0, 0, 0, 0, 0, 0, 0] };
Re[10]: compile + loadbc в избранное  новое    модер. 
От: 4day 
Дата: 27.10.09 04:50
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, 4day, Вы писали:


4>>Здравствуйте, c-smile, Вы писали:


CS>>>Если ты напишешь так:

CS>>>то ты увидишь строку целиком.

4>>да, это я знаю...


CS>А чего не сказал? Я бы время не потерял в поисках ...


4>>может в функцию compile какую-нибудь диагностику(протоколирование)

4>>добавить. А то черный ящик какой-то получается, туда код а в ответ true, и не поймешь
4>>правильно все скомпилировалось или нет...

CS>А что еще надо кроме:

CS>
CS>try { compile(...) } 
CS>catch (e) { error; }
CS>

CS>?

Видимо мы друг-друга не поняли
берем test.tis:
 
var SomeTextStr="А эта строка очень длиная строка, ее длина немного больше выделенного буфера, который как оказалось равен 128 байтам, а жаль... ";
self#out.text=SomeTextStr;

берем test.htm
<html><head><script type="text/tiscript">
  var res;
  try { res=compile("test.tis","test.bc") } 
  catch (e) { stderr.printf("Can't compile\n");  };
  stdout.printf("Compile: %d\n",res?1:0);
  res=loadbc("test.bc");
  stdout.printf("loadbc: %d\n",res?1:0);
  var SomeTextStr1="А эта строка очень длиная строка, ее длина немного больше выделенного буфера, который как оказалось равен 128 байтам, а жаль... ";
  view.msgbox(#alert,SomeTextStr1); //выводит ("я знаю" - относилось к этому, т.с. до/без компиляции)
  view.msgbox(#alert,SomeTextStr);  //stderr:Error: Variable not found - SomeTextStr (ну никак не выводит...)
</script></head>
<body>
<p#out>undef...</p>
</body>
</html>


результат:

stdout:Compile: 1
stdout:loadbc: 1
stderr:Error: Variable not found - SomeTextStr
stderr: at undefined (file://test.htm(10))
stderr:

Так скомпилилось или нет? Или скомпилилось но криво. А где попадание в catch?
Как узнать что компилятор не испортил исходный код?
А если испортил пусть сознаётся, вот в чем был вопрос.
Re[11]: compile + loadbc в избранное  новое    модер. 
От: 4day 
Дата: 28.10.09 09:00
up