powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DelphiWebScript (DWScript), документация/описание
66 сообщений из 66, показаны все 3 страниц
DelphiWebScript (DWScript), документация/описание
    #39860215
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Подскажите насчет документации/описания. Что-то почти ничего не нашел. Ну, кусочки кода здесь.

После инсталляции в Delphi 10.3.2 в компонентах появилась закладка "DWScript", с компонентами:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
TDelphiWebScript
TdwsComConnector
TdwsRTTIConnector
TdwsSimpleDebugger
TdwsDebugger
TdwsUnit
TdwsHtmlFilter
TdwsSymbolsLib
TdwsGlobalVarsFunctions
TdwsGUIFunctions
TdwsRestrictedFileSystem
TdwsNoFileSystem
TdwsClassesLib
TdwsCustomLocalizer
TdwsJSONLibModule



В библиотеке наверняка есть еще много полезных классов, хорошо бы о них узнать до начала процесса "метода тыка".

По примерам потихоньку разбираюсь, конечно, но может быть, кто-либо встречал более-менее толковое описание?
Спасибо.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860220
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Лучший учебник - папка Test.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860225
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexeyёёёёё,

Лучший учебник - папка Test.
Ну да, вот пытаюсь заставить работать содержимое папки \Demos.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860240
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860294
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, полезно, но не очень удобно и очень мало... :(
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860603
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой свободный язык программирования...
Код: pascal
1.
a := if i > 0 then 42 else 7;
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860610
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Тернарный оператор же. Такое много где есть (Kotlin, Rust, Oxygene например).
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860611
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

очень круто. Разбираюсь - просто сказка, после FastScript.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860623
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexeyёёёёё,

Тернарный оператор же. Такое много где есть (Kotlin, Rust, Oxygene например).

Я у себя реализовал, и оказалось что местами очень упрощает код. И инлайновый case еще
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860631
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asviridenkov... И инлайновый case еще
Это что?
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860634
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёasviridenkov... И инлайновый case еще
Это что?Вангую что расширенный IFTHEN.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860635
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

a := case b of 1: 2; 1+1: 4-1; else 4 end;
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860640
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asviridenkovИ инлайновый case еще
Oxygene:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
var s := case i of
  0: 'none';
  1: 'one';
  2: 'two';
  3..5 : 'a few';
  else 'many';
end;


В Kotlin тоже похожая конструкция есть.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860716
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смогли они реализовать DWScript под андроид, ios и linux?
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860721
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014,

The goal is to target Win32 and Win64 compilers, mobile platforms and Delphi Linux are currently not in the scope.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860749
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexeyziv-2014,

The goal is to target Win32 and Win64 compilers, mobile platforms and Delphi Linux are currently not in the scope.
Они обещали, сделать компилятор для мобильных платформ. Жаль конечно же.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860763
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014Они обещали, сделать компилятор для мобильных платформ. Жаль конечно же.
Когда это такое было? Уж не путаешь ли ты его со SmartMobileStudio основанной на DWS?
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860791
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexeyziv-2014Они обещали, сделать компилятор для мобильных платформ. Жаль конечно же.
Когда это такое было? Уж не путаешь ли ты его со SmartMobileStudio основанной на DWS?
Несколько лет тому назад. Но сейчас не могу найти у них на сайте этой информации.
А SmartMobileStudio можно использовать DWS в приложениях для мобильных платформ?
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860851
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помимо отсутствия под мобилки (которое может неожиданно застопорить проект, если заранее не заложились) с некоторого времени только самая последняя Delphi 10.3 (
Если выворачивать систему скриптами наружу (к пользователю), то очень хочется code completion. Пока только в TSM Scripter видел.

А так да, бесспорные плюсы сабжа это скорость и вкуснота синтаксиса/фич.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860886
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm... с некоторого времени только самая последняя Delphi 10.3 (
Если выворачивать систему скриптами наружу (к пользователю), то очень хочется code completion. Пока только в TSM Scripter видел.

А так да, бесспорные плюсы сабжа это скорость и вкуснота синтаксиса/фич.
Странные вещи говоришь.
Дистриб DWS включает пакаджи для D2009 - DX7. Я установил *.DX7 в D10.3.2, и на ранние ставятся.
В дистрибе, в демках, есть связка с SynEdit. Отлично CodeCompletion работает. И на лету подхватывает новые объекты. Или ты о чем-то своем?
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39860963
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёСтранные вещи говоришь.
Дистриб DWS включает пакаджи для D2009 - DX7. Я установил *.DX7 в D10.3.2, и на ранние ставятся.

DWScript lead platform is currently Delphi 10.3, compatibility with older Delphi version is not officially maintained, it may work, or it may not. Автор в коде уже во всю инлайновым var-ом балуется, так что скорее "may not".
ёёёёёВ дистрибе, в демках, есть связка с SynEdit. Отлично CodeCompletion работает. И на лету подхватывает новые объекты. Или ты о чем-то своем?
Пример уже не помню, но частенько подсказки подсказывают только объекты и не могут проперти. Перебирал кучу скриптовых движков, так что уже не помню ситуацию с DWScript.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861007
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmАвтор в коде уже во всю инлайновым var-ом балуется, так что скорее "may not".

Ну и ладно. Легко ищутся и находятся версии DWS даже для D7. Даже они куда круче современного FastScript (например).
Вообще, странно сидеть на старых дельфях и ждать, что бесплатная библиотека будет развиваться с оглядкой на древности. Хотя, FastRepot-овцы поддерживают, начиная с D7, что круто.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861081
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyЛучший учебник - папка Test.
Блин, под Delphi 10.3.2 я проект \DWS\Test\LanguageTests.dpr даже собрать не могу...

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
uses
   Classes, SysUtils,
   {$ifdef FPC}
   fpcunit, testutils, testregistry
   {$else}
   TestFrameWork, TestUtils
   {$endif}
   ;


Файла TestUtils.pas в D10.3.2 больше нет.

Что теперь в DUnitX вместо него?
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861085
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

DUnit вроде все еще можно тут взять
http://dunit.sourceforge.net/
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861094
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Citeёёёёё,

DUnit вроде все еще можно тут взять
http://dunit.sourceforge.net/
Спасибо, но, к сожалению, нет - там совсем древнее.
...
Например, в упомянутых (\DWS\Test\LanguageTests.dpr) тестах генерируется событие OnCheckCalled, реализацию которого я не нашел ни в "штатных" д-юнитах, ни в dws, но еще где.

Ну да и фик с ними.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861132
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёKazantsev Alexeyёёёёё,

Лучший учебник - папка Test.
Ну да, вот пытаюсь заставить работать содержимое папки \Demos.
Зараза, и демки-то не сразу соберешь.
Например, в классе TdwsSymbolDictionary больше нет индексируемого свойства Items[index : ineger] : TSymbolPositionList.
Доступ к элементам теперь через энумератор.
Соответственно, этот код больше не работает:
Код: pascal
1.
2.
3.
4.
        for ItemIndex := 0 to SymbolDictionary.Count - 1 do
        begin
          TestSymbol := SymbolDictionary.Items[ItemIndex].Symbol;
...


теперь нужно вот так:
Код: pascal
1.
2.
3.
        for var Item in SymbolDictionary do begin
           TestSymbol := Item.Symbol;
...
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861136
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014А SmartMobileStudio можно использовать DWS в приложениях для мобильных платформ?
В SMS приложения пишутся на DWS, который затем транслируется в JS. Запускается оно, понятное дело, везде где браузер работает.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861183
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно. В DWS, при декларации типов скриптовых объектов, которые реализуются в коде Delphi, предлагается реализовать соответствующий метод-событие *OnCleanUp(). Который автоматически вызывается при сбросе количества ссылок на конкретный объект данного типа в ноль (например, при выходе из области видимости или явно - путем вызова деструктора). То есть, объекты всех дельфийских классов типа TStringList и т.п., экспортированные в скрипт, нужно только создавать, не заботясь об их освобождении. Ну, или заботясь, если вдруг нужно резко освободить память. Классно, можно без try-finally обходиться.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861189
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

У меня аналогично сделано, только автоматом - если объект создается через вызов конструктора, он уничтожается. Плюс есть спец. функция для регистрации в случае других ситуаций.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861232
kmsskm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёёСпасибо, полезно, но не очень удобно и очень мало... :(
Может так удобней будет DWScript
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861840
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весьма "доставляющая" картинка...

...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861850
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Код покажи. ;)
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861852
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatКод покажи. ;)
Просто DWS умеет в JIT (код есть в демках, там же и сравнение с LaPe). Кстати, если скорость важна, есть ещё интересный движок LaPe , там даже работа с указателями имеется.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861880
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatёёёёё,

Код покажи. ;)
ДэлфА'й
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
// PaintBitmapDelphi
//
procedure TMainForm.PaintBitmapDelphi;
const
   cSize = 500;
var
   i, j, newColor : Integer;
   u, v, x, y, z : Double;
begin
   for i := 0 to cSize-2 do begin
      for j := 0 to cSize-2 do begin
         x := -0.8 + 3.0 * i / cSize;
         y := -1.4 + 2.8 * j / cSize;
         newColor := 0;
         u := 0;
         v := 0;
         repeat
            z := Sqr(u) - Sqr(v) - x;
            v := 2 * u * v - y;
            u := z;
            newColor := newColor + 1;
         until (Sqr(u) + Sqr(v) > 9) or (newColor = 16);
         SetPixel(i + 1, j + 1, newColor);
      end;
   end;
end;



DWS
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
// PaintBitmapDWSscript
//
procedure TMainForm.PaintBitmapDWSscript;
const
   cSource = ''
      +'const cSize = 500;'#13#10
      +'var i, j, newColor : Integer;'#13#10
      +'var u, v, x, y, z : Float;'#13#10
      +#13#10
      +'for i := 0 to cSize-2 do begin'#13#10
      +'   for j := 0 to cSize-2 do begin'#13#10
      +'      x := -0.8 + 3.0 * i / cSize;'#13#10
      +'      y := -1.4 + 2.8 * j / cSize;'#13#10
      +'      newColor := 0;'#13#10
      +'      u := 0;'#13#10
      +'      v := 0;'#13#10
      +'      repeat'#13#10
      +'         z := Sqr(u) - Sqr(v) - x;'#13#10
      +'         v := 2 * u * v - y;'#13#10
      +'         u := z;'#13#10
      +'         newColor := newColor + 1;'#13#10
      +'      until (Sqr(u) + Sqr(v) > 9) or (newColor = 16);'#13#10
      +'      SetPixel(i + 1, j + 1, newColor);'#13#10
      +'   end;'#13#10
      +'end;'
   ;

var
   prog : IdwsProgram;
   {$ifndef WIN64}
   jitter : TdwsJITx86;
   {$endif}
begin
   prog:=DelphiWebScript.Compile(cSource);

   {$ifndef WIN64}
   jitter:=TdwsJITx86.Create;
   jitter.Options:=jitter.Options-[jitoNoBranchAlignment];
   jitter.GreedyJIT(prog.ProgramObject);
   jitter.Free;
   {$endif}

   if prog.Msgs.Count=0 then
      prog.Execute
   else ShowMessage(prog.Msgs.AsInfo);
end;


...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861881
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,


Причем, никакого рисования внутри цикла тестирования не делается:
SetPixel Delph



SetPixel DWS
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
procedure TMainForm.SetPixel(x, y, color : Integer);
const
   cColors: array[0..16] of TColor = (
      $000022, $000033, $000044, $000055, $000066, $000077, $000088,
      $101099, $3030AA, $4040BB, $5050CC, $6060DD, $7070EE, $8080FF,
      $9090FF, $A0A0FF,
      $000000
      );
begin
   PIntegerArray(FScanLines[y])[x]:=cColors[color]; // Здесь FScanLines - FScanLines : array of Pointer;
end;



В DWS обращение к SetPixel() транслируется в ту же дельфийскую процедуру:
SetPixel DWS
Код: pascal
1.
2.
3.
4.
procedure TSetPixelMagic.DoEvalProc(const args : TExprBaseListExec);
begin
   MainForm.SetPixel(args.AsInteger[0], args.AsInteger[1], args.AsInteger[2]);
end;


--------
Процедура тестирования:

Как тестировали
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
procedure TMainForm.Benchmark;
const
   cNB_LOOPS = 10;
var
   tStart, tStop, tFreq : Int64;
   i : Integer;
begin
// Тестирование кода Delphi
   QueryPerformanceFrequency(tFreq);

   PrepareBitmap;
   QueryPerformanceCounter(tStart); // Старт

   for i:=1 to cNB_LOOPS do
      PaintBitmapDelphi;

   QueryPerformanceCounter(tStop); // Стоп

   IMDelphi.Picture.Assign(FBitmap); // Перенос результата на картинку
   FBitmap.Free;
   LADelphi.Caption:=Format('Delphi: %0.1f ms', [1000*(tStop-tStart)/tFreq]);

//******************************
// Тестирование кода DWScript:
   PrepareBitmap;

   QueryPerformanceCounter(tStart); // Старт

   for i:=1 to cNB_LOOPS do
      PaintBitmapDWSscript;

   QueryPerformanceCounter(tStop); // Стоп

   IMDWScript.Picture.Assign(FBitmap); // Перенос результата на картинку
   FBitmap.Free;
   LADWScript.Caption:=Format('DWScript: %0.1f ms (incl. compilation)', [1000*(tStop-tStart)/tFreq]);
end;



...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861882
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

и, это. Код не совсем равнозначен. Например, Integer в Dephi - это 32-битное знаковое. А в DWS интыджер - это 64-битное целое.
И, как мне кажется, надо бы вынести время компиляции за пределы теста. Но тогда результаты совсем уж дикими будут...
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861884
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyrgreatКод покажи. ;)
Просто DWS умеет в JIT (код есть в демках, там же и сравнение с LaPe). Кстати, если скорость важна, есть ещё интересный движок LaPe , там даже работа с указателями имеется.
Да. :)

Сейчас прогоню без JIT.
И так, на моей машинке, с JIT:
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861886
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

с отключенным JIT.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861888
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi все же в 18 раз быстрее... :)
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861934
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще интересна раскладка по ядрам процессора. Есть стойкое подозрение, что жит 'мухлюет' ядрами. И если распараллелить делфи код (что в общем можно элементарно сделать в одну строку буквально), то картина поменяется на обратную.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861937
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonЕще интересна раскладка по ядрам процессора. Есть стойкое подозрение, что жит 'мухлюет' ядрами. И если распараллелить делфи код (что в общем можно элементарно сделать в одну строку буквально), то картина поменяется на обратную.
Ты всерьез считаешь, что следует доказывать преимущество Delphi перед скриптовым движком? :)
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861938
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Почему нет, если он компилируемый.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861939
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Я не люблю нездоровых сенсаций :)
И так. Один поток, 100 итераций, 2700 ms. 100 итераций + либа распараллеливания STParallel, режим pfAtomic. 400 ms. i7, 4 ядра x 2 Ht
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861940
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonёёёёё,

Я не люблю нездоровых сенсаций :)
И так. Один поток, 100 итераций, 2700 ms. 100 итераций + либа распараллеливания STParallel, режим pfAtomic. 400 ms. i7, 4 ядра x 2 Ht

Можешь в исходниках DWS посмотреть, что там да как, если настолько подгорает.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861945
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

в jit то как залезть? раскладку по ядрам так и не показали, увы.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861946
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и нет, не подгорает. в отличие от сенсационстов я всегда ищу причины.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861947
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonи нет, не подгорает. в отличие от сенсационстов я всегда ищу причины.

В теории он может for распараллеливать, но вряд ли это делает без спроса, т.к. side эффекты могут быть неожиданными. Я добавил специальный parallel for синтаксис для этого.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861949
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The DWScript JIT compiler relies on SSE2 to outperform the Delphi 32bit compiler , its current main limitations are:

JIT centers around floating point and a limited subset of integer and Boolean operations, the rest isn’t JITted yet.
Function calls aren’t JITted at the moment, and neither are a variety of other statements.
The JIT works with the same data structures as the interpreted engine, that means script debuggers and everything else works on JITted code as if it was still interpreted, but that also means the basic data unit is still the 16 bytes Variant at the moment.
The JIT register allocator is currently limited to floating point (ie. no integer or pointer allocations).
DWScript Integer type is 64bit sized, so for 32bit values, Integer performance is lower than what Delphi 32 can do, even though the JIT can generate typically faster code for it than the Delphi 32bit compiler does for Int64.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861951
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyThe DWScript JIT compiler relies on SSE2 to outperform the Delphi 32bit compiler , its current main limitations are:

JIT centers around floating point and a limited subset of integer and Boolean operations, the rest isn’t JITted yet.
Function calls aren’t JITted at the moment, and neither are a variety of other statements.
The JIT works with the same data structures as the interpreted engine, that means script debuggers and everything else works on JITted code as if it was still interpreted, but that also means the basic data unit is still the 16 bytes Variant at the moment.
The JIT register allocator is currently limited to floating point (ie. no integer or pointer allocations).
DWScript Integer type is 64bit sized, so for 32bit values, Integer performance is lower than what Delphi 32 can do, even though the JIT can generate typically faster code for it than the Delphi 32bit compiler does for Int64.


Может, кто-нибудь когда-нибудь и для Delphi напишет... JIT - компайлер... :(
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861952
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёМожет, кто-нибудь когда-нибудь и для Delphi напишет... JIT - компайлер... :(
Надо бы, а то в некстгене совсем всё тухло...
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861953
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FPC вроде умеет в jit.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39861954
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

Это большой секрет. Тихо!
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862006
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёВ дистрибе, в демках, есть связка с SynEdit. Отлично CodeCompletion работает. И на лету подхватывает новые объекты. Или ты о чем-то своем?
Таки дошёл по случаю проверить. Не нормальный там code completion. Объекты подсказывает, а вот вот их свойства уже нет.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862009
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmёёёёёВ дистрибе, в демках, есть связка с SynEdit. Отлично CodeCompletion работает. И на лету подхватывает новые объекты. Или ты о чем-то своем?
Таки дошёл по случаю проверить. Не нормальный там code completion. Объекты подсказывает, а вот вот их свойства уже нет.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862013
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmёёёёёВ дистрибе, в демках, есть связка с SynEdit. Отлично CodeCompletion работает. И на лету подхватывает новые объекты. Или ты о чем-то своем?
Таки дошёл по случаю проверить. Не нормальный там code completion. Объекты подсказывает, а вот вот их свойства уже нет.

И, это же всего лишь демки, показывающие возможность.
Список элементов откомпилированной программы доступен, и список элементов каждого элемента также доступен. Берешь да подставляешь куда надо. Хоть в SynEdit, хоть в Scintilla, хоть сам на лету в попап-меню (например).
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862019
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

"вложенные" объекты:
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862020
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm, и, да, в демке что-то не работает или работает не так гладко, как хотелось бы - но ведь это всего лишь демонстрашка.
Но ведь информация о том, где брать данные - вся имеется.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862022
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыыы... крутяк...
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862024
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёИ, это же всего лишь демки, показывающие возможность.
Список элементов откомпилированной программы доступен, и список элементов каждого элемента также доступен. Берешь да подставляешь куда надо. Хоть в SynEdit, хоть в Scintilla, хоть сам на лету в попап-меню (например).
Я скачал последнюю из репозитория. Может чего и поломалось. Буду знать, спасибо!
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862026
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm...Я скачал последнюю из репозитория...

Отсюда надо: https://bitbucket.org/egrange/dwscript/src/master/

Наверное. :)

...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39862122
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, в dws недоступны private/protected члены класса, определенные в том же модуле...
Впрочем, для сриптов это, наверное, логично.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39870955
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Citeёёёёё,

DUnit вроде все еще можно тут взять
http://dunit.sourceforge.net/
На самом деле, используется DUnit2 . Для запуска которого требуются как минимум FastMM4 и Jedi (тьфу). "Джедаев" я ставить пока не готов...
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39871249
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DUnitX не вариант? Он вроде совместим
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39871271
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2DUnitX не вариант? Он вроде совместим
Собрал с DUnit2 . Понадобился FastMM4 , и mORMot .
Вместо установки Jedi добавил файлик jedi.inc следующего содержания:
Код: pascal
1.
2.
{$DEFINE DELPHIX_TOKYO}
{$DEFINE DELPHIXE_UP}


- тесты собрались.
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39871312
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёВместо установки Jedi добавил файлик jedi.inc следующего содержания:
Код: pascal
1.
2.
{$DEFINE DELPHIX_TOKYO}
{$DEFINE DELPHIXE_UP}


- тесты собрались.А-ха-ха!

Из 30 мегабайт сорцов используются 2 строчки.

Клевый DUnit2!
...
Рейтинг: 0 / 0
DelphiWebScript (DWScript), документация/описание
    #39871387
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatёёёёёВместо установки Jedi добавил файлик jedi.inc следующего содержания:
Код: pascal
1.
2.
{$DEFINE DELPHIX_TOKYO}
{$DEFINE DELPHIXE_UP}



- тесты собрались.А-ха-ха!


Из 30 мегабайт сорцов используются 2 строчки.

Клевый DUnit2!Наводит на мыслю про... например, биты и адреса(указатели) :|
...
Рейтинг: 0 / 0
66 сообщений из 66, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DelphiWebScript (DWScript), документация/описание
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]