|
RXL
|
|
« Ответ #1 : 09-03-2015 15:23 » |
|
Компилировать под винду — то еще «удовольствие».
В changeslog сказано, что поддержка win32 есть с 2004-го года. В чем сложность сборки?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #2 : 09-03-2015 15:41 » |
|
Компилировать под винду — то еще «удовольствие». Спасибо, что ответили, уважаемый RXL. Да, действительно, есть определенные проблемы, видимо, из-за специфичности движка что ли. В changeslog сказано, что поддержка win32 есть с 2004-го года. В чем сложность сборки? Сложность сборки, на мой взгляд, в dmake-e. Причем, даже на stable/testing версии дебиан данный модуль не всегда собирается успешно, в зависимости от версии компилятора. По поводу винды, лично мной установлено, что на ранних версиях ошибка возникает на финальной стадии линковки, а на новейшей на текущий момент библиотеке libmoz185 и последней версии модуля 1.16 даже до линковки не доходит, сыпятся ошибки в консоль во время компиляции. Но, в ppm-репозиториях bribes есть успешно откомпилированная версия данного модуля под винду, правда, для perl версии 5.10. К сожалению, уж слишком старая версия, для других , более свежих версий, видать и у них не получилось. Добавлено через 1 день, 2 часа, 14 минут и 31 секунду:Итак, продолжаю свои попытки откомпилировать под винду модуль JavaScript.pm. Автор модуля, некий Клейс Джейкобсон, то ли подзабил на разработку, то ли шибко занят, т.к. последняя версия на данный момент - 1.16 датирована аж февралем 2010 г. К слову, именно к движку js spidermonkey есть еще один модуль, позволяющий связать перл и яваскрипт, модуль так и называется JavaScript:Spidermonkey. Я его под винду хоть и не без геморроя, но все же смог откомпилировать и даже удачно отработал пример с cpan'a, но модуль этот уж больно замысловатый, корявый какой-то api реализует... C:\JavaScript-SpiderMonkey-0.21>perl Makefile.PL --js_lib_dir C:\\js\\src --js_l ib_name js32 JS_LIB_DIR: C:\\js\\src JS_INCL_DIR: C:\\js\\src JS_LIB_NAME: js32 Checking if your kit is complete... Warning: the following files are missing in your kit: INSTALL Please inform the author. Warning (mostly harmless): No library found for -lmoldname Warning (mostly harmless): No library found for -lkernel32 Warning (mostly harmless): No library found for -luser32 Warning (mostly harmless): No library found for -lgdi32 Warning (mostly harmless): No library found for -lwinspool Warning (mostly harmless): No library found for -lcomdlg32 Warning (mostly harmless): No library found for -ladvapi32 Warning (mostly harmless): No library found for -lshell32 Warning (mostly harmless): No library found for -lole32 Warning (mostly harmless): No library found for -loleaut32 Warning (mostly harmless): No library found for -lnetapi32 Warning (mostly harmless): No library found for -luuid Warning (mostly harmless): No library found for -lws2_32 Warning (mostly harmless): No library found for -lmpr Warning (mostly harmless): No library found for -lwinmm Warning (mostly harmless): No library found for -lversion Warning (mostly harmless): No library found for -lodbc32 Warning (mostly harmless): No library found for -lodbccp32 Generating a dmake-style Makefile Writing Makefile for JavaScript::SpiderMonkey Writing MYMETA.yml and MYMETA.json
C:\JavaScript-SpiderMonkey-0.21>dmake cp SpiderMonkey.pm blib\lib\JavaScript\SpiderMonkey.pm Running Mkbootstrap for JavaScript::SpiderMonkey () "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "SpiderMon key.bs" "C:\strawberry\perl\bin\perl.exe" "C:\strawberry\perl\lib\ExtUtils\xsubpp" -typ emap "C:\strawberry\perl\lib\ExtUtils\typemap" -typemap "typemap" SpiderMonkey. xs > SpiderMonkey.xsc && "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Command - e mv -- SpiderMonkey.xsc SpiderMonkey.c gcc -c -IC:\\js\\src -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DUSE_SITECUSTOMIZE -DP ERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READ FIX -s -O2 -DVERSION=\"0.21\" -DXS_VERSION=\"0.21\" "-IC:\strawberry\ perl\lib\CORE" -DXP_WIN SpiderMonkey.c In file included from SpiderMonkey.xs:14:0: C:\strawberry\perl\lib\CORE/XSUB.h:565:0: warning: "popen" redefined [enabled by default] In file included from C:\strawberry\perl\lib\CORE/win32.h:72:0, from C:\strawberry\perl\lib\CORE/win32thread.h:4, from C:\strawberry\perl\lib\CORE/perl.h:2819, from SpiderMonkey.xs:13: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw 32/include/stdio.h:450:0: note: this is the location of the previous definition In file included from SpiderMonkey.xs:14:0: C:\strawberry\perl\lib\CORE/XSUB.h:566:0: warning: "pclose" redefined [enabled b y default] In file included from C:\strawberry\perl\lib\CORE/win32.h:72:0, from C:\strawberry\perl\lib\CORE/win32thread.h:4, from C:\strawberry\perl\lib\CORE/perl.h:2819, from SpiderMonkey.xs:13: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw 32/include/stdio.h:451:0: note: this is the location of the previous definition "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"JavaScript::SpiderMonkey\", 'DLBASE' => 'SpiderMon key', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []); " dlltool --def SpiderMonkey.def --output-exp dll.exp g++ -o blib\arch\auto\JavaScript\SpiderMonkey\SpiderMonkey.dll -Wl,--base-file - Wl,dll.base -mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" Spi derMonkey.o "C:\strawberry\perl\lib\CORE\libperl510.a" "js32.lib" dll.exp dlltool --def SpiderMonkey.def --base-file dll.base --output-exp dll.exp g++ -o blib\arch\auto\JavaScript\SpiderMonkey\SpiderMonkey.dll -mdll -s -L"C:\st rawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" SpiderMonkey.o "C:\strawberry\ perl\lib\CORE\libperl510.a" "js32.lib" dll.exp "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 755 blib\arch\ auto\JavaScript\SpiderMonkey\SpiderMonkey.dll
C:\JavaScript-SpiderMonkey-0.21>dmake install Files found in blib\arch: installing files in blib\lib into architecture depende nt library tree Installing C:\strawberry\perl\site\lib\auto\JavaScript\SpiderMonkey\SpiderMonkey .dll Installing C:\strawberry\perl\site\lib\JavaScript\SpiderMonkey.pm Appending installation info to C:\strawberry\perl\lib/perllocal.pod
C:\JavaScript-SpiderMonkey-0.21>cd C:\JavaScript-SpiderMonkey-0.21
C:\JavaScript-SpiderMonkey-0.21>cd\
C:\>perl js.pl URL is http://www.aol.com Перл взял версии 5.10 , компилятор под винду - gcc 4.7.3. Саму библиотеку от mozill'ы скомпилировал в visual studio 2012, версию взял не слишком старую, но и не новую (с последней у многих проблемы даже на *.nix системах). Скомпилировать JavaScript.pm, на мой взгляд, более удобный, по прежнему не удается. Добавлено через 2 часа, 53 минуты и 9 секунд:В общем, не собирается ни под какой версией перла, даже версия компилятора не играет роли. Вот, что выдает в консоль... C:\>cd J*
C:\JavaScript-1.16>perl Makefile.PL Is your SpiderMonkey compiled with JS_THREADSAFE (most things will fail if you a nswer wrong)? [y/N] n Is your SpiderMonkey compiled with support for unicode (t/23-unicode.t will fail if you answer wrong) ? [y/N] [N] y Do you want support for E4X (requires SpiderMonkey > 1.5) ? [y/N] [N] y Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for JavaScript Writing MYMETA.yml and MYMETA.json
C:\JavaScript-1.16>dmake cp PJS_Property.h blib\arch\auto\JavaScript\PJS_Property.h cp PJS_Function.h blib\arch\auto\JavaScript\PJS_Function.h cp PJS_Script.h blib\arch\auto\JavaScript\PJS_Script.h cp PJS_PerlHash.h blib\arch\auto\JavaScript\PJS_PerlHash.h cp lib/JavaScript/Boxed.pm blib\lib\JavaScript\Boxed.pm cp JavaScript.h blib\arch\auto\JavaScript\JavaScript.h cp PJS_PerlArray.h blib\arch\auto\JavaScript\PJS_PerlArray.h cp PJS_Call.h blib\arch\auto\JavaScript\PJS_Call.h cp PJS_Context.h blib\arch\auto\JavaScript\PJS_Context.h cp PJS_Common.h blib\arch\auto\JavaScript\PJS_Common.h cp JavaScript_Env.h blib\arch\auto\JavaScript\JavaScript_Env.h cp lib/JavaScript/Error.pm blib\lib\JavaScript\Error.pm cp PJS_Types.h blib\arch\auto\JavaScript\PJS_Types.h cp PJS_Exceptions.h blib\arch\auto\JavaScript\PJS_Exceptions.h cp lib/JavaScript/Context.pm blib\lib\JavaScript\Context.pm cp PJS_Class.h blib\arch\auto\JavaScript\PJS_Class.h cp PJS_PerlSub.h blib\arch\auto\JavaScript\PJS_PerlSub.h cp lib/JavaScript.pm blib\lib\JavaScript.pm cp PJS_TypeConversion.h blib\arch\auto\JavaScript\PJS_TypeConversion.h cp PJS_Runtime.h blib\arch\auto\JavaScript\PJS_Runtime.h cp lib/Test/JavaScript/More.pm blib\lib\Test\JavaScript\More.pm cp lib/JavaScript/PerlHash.pm blib\lib\JavaScript\PerlHash.pm cp lib/JavaScript/Runtime.pm blib\lib\JavaScript\Runtime.pm cp lib/JavaScript/Function.pm blib\lib\JavaScript\Function.pm cp typemap blib\arch\auto\JavaScript\typemap cp lib/JavaScript/PerlArray.pm blib\lib\JavaScript\PerlArray.pm cp lib/JavaScript/Generator.pm blib\lib\JavaScript\Generator.pm cp lib/JavaScript/Script.pm blib\lib\JavaScript\Script.pm Running Mkbootstrap for JavaScript () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 JavaScript.bs C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils\xsubpp -typemap C:\Perl\lib\ExtUtils\ typemap -typemap typemap JavaScript.xs > JavaScript.xsc && C:\Perl\bin\perl.exe -MExtUtils::Command -e mv -- JavaScript.xsc JavaScript.c gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPER L_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fno-strict-aliasing -mms-bi tfields -s -O2 -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" "-IC:\Perl\lib\CO RE" JavaScript.c JavaScript.xs:7:19: warning: extra tokens at end of #ifndef directive [enabled b y default] JavaScript.xs: In function 'XS_JavaScript__Context_jsc_ptr': JavaScript.xs:128:18: warning: cast from pointer to integer of different size [- Wpointer-to-int-cast] JavaScript.xs: In function 'XS_JavaScript__Context_jsc_call': JavaScript.xs:353:13: warning: passing argument 2 of 'PJS_call_javascript_functi on' makes integer from pointer without a cast [enabled by default] PJS_Call.h:30:1: note: expected 'jsval' but argument is of type 'struct JSObject *' gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPER L_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fno-strict-aliasing -mms-bi tfields -s -O2 -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" "-IC:\Perl\lib\CO RE" PJS_Call.c PJS_Call.c:11:5: warning: 'PJS_call_perl_method' redeclared without dllimport at tribute: previous dllimport ignored [-Wattributes] PJS_Call.c:40:5: warning: 'perl_call_sv_with_jsvals_rsv' redeclared without dlli mport attribute: previous dllimport ignored [-Wattributes] PJS_Call.c:113:5: warning: 'perl_call_sv_with_jsvals' redeclared without dllimpo rt attribute: previous dllimport ignored [-Wattributes] PJS_Call.c:124:8: warning: 'PJS_call_javascript_function' redeclared without dll import attribute: previous dllimport ignored [-Wattributes] PJS_Call.c:161:8: warning: 'perl_call_jsfunc' redeclared without dllimport attri bute: previous dllimport ignored [-Wattributes] gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPER L_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fno-strict-aliasing -mms-bi tfields -s -O2 -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" "-IC:\Perl\lib\CO RE" PJS_Class.c PJS_Class.c:14:16: warning: 'PJS_get_method_by_name' redeclared without dllimpor t attribute: previous dllimport ignored [-Wattributes] PJS_Class.c:30:15: warning: 'PJS_get_property_by_id' redeclared without dllimpor t attribute: previous dllimport ignored [-Wattributes] PJS_Class.c:49:6: warning: 'PJS_free_class' redeclared without dllimport attribu te: previous dllimport ignored [-Wattributes] PJS_Class.c:91:6: warning: 'PJS_bind_class' redeclared without dllimport attribu te: previous dllimport ignored [-Wattributes] PJS_Class.c:175:6: warning: 'PJS_store_class' redeclared without dllimport attri bute after being referenced with dll linkage [enabled by default] PJS_Class.c:194:6: warning: 'PJS_finalize' redeclared without dllimport attribut e after being referenced with dll linkage [enabled by default] PJS_Class.c:205:8: warning: 'PJS_construct_perl_object' redeclared without dllim port attribute after being referenced with dll linkage [enabled by default] PJS_Class.c:243:17: warning: 'PJS_add_class_properties' redeclared without dllim port attribute after being referenced with dll linkage [enabled by default] PJS_Class.c:310:17: warning: 'PJS_add_class_functions' redeclared without dllimp ort attribute after being referenced with dll linkage [enabled by default] PJS_Class.c:377:8: warning: 'PJS_invoke_perl_object_method' redeclared without d llimport attribute after being referenced with dll linkage [enabled by default] PJS_Class.c:442:1: warning: 'PJS_GetClassName' redeclared without dllimport attr ibute: previous dllimport ignored [-Wattributes] PJS_Class.c:451:1: warning: 'PJS_GetClassPackage' redeclared without dllimport a ttribute: previous dllimport ignored [-Wattributes] gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPER L_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fno-strict-aliasing -mms-bi tfields -s -O2 -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" "-IC:\Perl\lib\CO RE" PJS_Context.c PJS_Context.c:25:16: warning: 'PJS_GetFunctionByName' redeclared without dllimpo rt attribute: previous dllimport ignored [-Wattributes] PJS_Context.c:41:1: warning: 'PJS_GetClassByName' redeclared without dllimport a ttribute: previous dllimport ignored [-Wattributes] PJS_Context.c:57:1: warning: 'PJS_GetClassByPackage' redeclared without dllimpor t attribute: previous dllimport ignored [-Wattributes] PJS_Context.c:75:15: warning: 'PJS_CreateContext' redeclared without dllimport a ttribute: previous dllimport ignored [-Wattributes] PJS_Context.c:139:6: warning: 'PJS_DestroyContext' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default] PJS_Context.c:169:1: warning: 'PJS_DefineFunction' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] PJS_Context.c:202:8: warning: 'PJS_branch_handler' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPER L_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fno-strict-aliasing -mms-bi tfields -s -O2 -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" "-IC:\Perl\lib\CO RE" PJS_Exceptions.c gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPER L_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fno-strict-aliasing -mms-bi tfields -s -O2 -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" "-IC:\Perl\lib\CO RE" PJS_Function.c In file included from PJS_Function.h:14:0, from PJS_Function.c:4: C:\Perl\lib\CORE/perl.h:174:0: warning: "aTHX" redefined [enabled by default] C:\Perl\lib\CORE/XSUB.h:430:0: note: this is the location of the previous defini tion In file included from PJS_Function.h:14:0, from PJS_Function.c:4: C:\Perl\lib\CORE/perl.h:1464:0: warning: "socketpair" redefined [enabled by defa ult] C:\Perl\lib\CORE/XSUB.h:635:0: note: this is the location of the previous defini tion In file included from C:\Perl\lib\CORE/win32.h:383:0, from C:\Perl\lib\CORE/win32thread.h:4, from C:\Perl\lib\CORE/perl.h:2869, from PJS_Function.h:14, from PJS_Function.c:4: C:\Perl\lib\CORE/sys/socket.h:210:16: error: redefinition of 'struct Perl_fd_set ' c:\perl\site\lib\auto\mingw\bin\../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i6 86-w64-mingw32/include/psdk_inc/_fd_types.h:15:16: note: originally defined here
C:\Perl\lib\CORE/sys/socket.h:212:6: error: conflicting types for 'Perl_fd_set' c:\perl\site\lib\auto\mingw\bin\../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i6 86-w64-mingw32/include/psdk_inc/_fd_types.h:19:3: note: previous declaration of 'Perl_fd_set' was here PJS_Function.c:8:6: warning: 'PJS_free_JSFunctionSpec' redeclared without dllimp ort attribute: previous dllimport ignored [-Wattributes] PJS_Function.c:23:8: warning: 'PJS_invoke_perl_function' redeclared without dlli mport attribute: previous dllimport ignored [-Wattributes] PJS_Function.c:44:1: warning: 'PJS_CreateFunction' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] PJS_Function.c:73:6: warning: 'PJS_DestroyFunction' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] PJS_Function.c:94:1: warning: 'PJS_GetFunctionName' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] PJS_Function.c:103:1: warning: 'PJS_GetFunctionTarget' redeclared without dllimp ort attribute: previous dllimport ignored [-Wattributes] dmake.exe: Error code 129, while making 'PJS_Function.o'
|
|
« Последнее редактирование: 10-03-2015 17:57 от perl6 »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #3 : 10-03-2015 23:50 » |
|
Какой дистрибутив перла? GCC из комплекта mingw? In file included from C:\Perl\lib\CORE/win32.h:383:0, from C:\Perl\lib\CORE/win32thread.h:4, from C:\Perl\lib\CORE/perl.h:2869, from PJS_Function.h:14, from PJS_Function.c:4: C:\Perl\lib\CORE/sys/socket.h:210:16: error: redefinition of 'struct Perl_fd_set ' c:\perl\site\lib\auto\mingw\bin\../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i6 86-w64-mingw32/include/psdk_inc/_fd_types.h:15:16: note: originally defined here
C:\Perl\lib\CORE/sys/socket.h:212:6: error: conflicting types for 'Perl_fd_set' c:\perl\site\lib\auto\mingw\bin\../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i6 86-w64-mingw32/include/psdk_inc/_fd_types.h:19:3: note: previous declaration of 'Perl_fd_set' was here
C:\Perl\lib\CORE/sys/socket.h конфликтует сам с собой? Предполагаю путаницу заголовков. Одни в Perl, другие в mingw. Добавлено через 18 минут и 4 секунды:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkeyНовейшая версия - 31. https://metacpan.org/pod/JavaScript::SpiderMonkeyНовейшая версия - 0.21 на новейшей на текущий момент библиотеке libmoz185 и последней версии модуля 1.16 даже до линковки не доходит О чем тогда тут речь?
|
|
« Последнее редактирование: 11-03-2015 00:10 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #4 : 11-03-2015 14:35 » |
|
Спасибо за ответ, уважаемый RXL, итак, обо всем по порядку Какой дистрибутив перла? GCC из комплекта mingw? Дистрибутив 5.10, скачан с сайта стрейнбери, упор делал на него, т.к. ребята из bribes именно под него как-то умудрились откомпилировать данный модуль http://www.bribes.org/perl/ppm/JavaScript.ppd. Я надеялся, что смогу на не нем скопилировать модуль и, потом сравнив, понять, почему не собирается на последней версии perl 5.20 GCC из комплекта perl стрейнбери, шел вместе с дистрибутивом perl'a. C:\Perl\lib\CORE/sys/socket.h конфликтует сам с собой? Предполагаю путаницу заголовков. Одни в Perl, другие в mingw. Почему тогда с компиляцией других модулей не возникает проблем, именно компиляцией, а не там, где просто pm файлы копируются при установке. Там похожие проблемы просто сыпятся в warning's, а не вылетают в ошибку, взять тот же модуль Encode. Новейшая версия - 31. Это видимо комбайн от mozilla, там уже все готовое для сборки firefox'a. А если поковырятся в его недрах, то можно наткнутся непосредственно на сам движок, он лежит в папке js, его отдельно можно качнуть с сайта http://ftp.mozilla.org/pub/mozilla.org/js/Тут последняя версия (релизная) - 1.8.5, под нее модуль к perl'y не собрался даже на *.nix системе, версия 1.8.0 на винде у меня тоже с пердежом собралась, вот я и остановился на версии движка 1.7, он нормально собрался на обеих платформах (ubuntu и домашней - win8). Новейшая версия - 0.21 Это я просто проверял возможность компиляции на винде, данный модуль уж больно замысловатый, меня интересует вот этот, где все просто и понятно. https://metacpan.org/pod/JavaScriptВот, залил откомпилированную версию js-движка на обменник rghost, там в папке src заголовки, а в папке Win* - библиотеки. http://rghost.ru/6FCP895vKRXL, если есть возможность, просьба взгляните
|
|
« Последнее редактирование: 11-03-2015 20:33 от perl6 »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #5 : 14-03-2015 21:41 » |
|
К сожалению, с временем очень того.
Под виндой не извращаюсь — пробовал под CentOS 5. Либа mozjs собралась без проблем. Заглянул в модуль JavaScript — странно все. Почему он ожидает заголовки без пути "js/"... Попробовал указать в Makefile.PL (пипец какой древний) путь, но ему стало плохо от современного gcc. Сдается мне, проще найти другой модуль для js. Этот морально устарел еще 10 лет назад.
Странная ругань при сборке: как будто компилятор C пытается вникнуть в код C++. И плюс не найденные заголовки.
|
|
« Последнее редактирование: 14-03-2015 21:58 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
|
|
« Ответ #6 : 14-03-2015 22:01 » |
|
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
|
|
« Ответ #7 : 14-03-2015 22:03 » |
|
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #8 : 15-03-2015 00:32 » |
|
К сожалению, с временем очень того. Я понимаю, время такое, никто ничего не делает просто так, но все равно - спасибо, что находите время для ответов в топике. Под виндой не извращаюсь — пробовал под CentOS 5. Либа mozjs собралась без проблем. Заглянул в модуль JavaScript — странно все. Почему он ожидает заголовки без пути "js/"... Попробовал указать в Makefile.PL (пипец какой древний) путь, но ему стало плохо от современного gcc. Сдается мне, проще найти другой модуль для js. Этот морально устарел еще 10 лет назад.
Странная ругань при сборке: как будто компилятор C пытается вникнуть в код C++. И плюс не найденные заголовки.
Да, модуль действительно староват, но куда деваться, но была надежда заставить его собраться под виндой.... Может это интереснее будет? Движок v8 от гугла действительно поинтереснее, с точки зрения производительности и довольно обширной документации, вот только, опять та же беда - под виндой JavaSript:V8 не компилируется, хотя саму либу я успешно собирал на Windows и с помощью scons (не самую свежую, не охото было лишние телодвижения делать), так и последнюю, 3.30, поставив таки depot_tools от гугла, тоже при попытке собрать JavaSript:V8 лезут ошибки....
|
|
« Последнее редактирование: 15-03-2015 00:36 от perl6 »
|
Записан
|
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #9 : 15-03-2015 00:37 » |
|
Проблема в том, что это доступ к шеллу, а хочется - именно к движку, к либе...
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #10 : 15-03-2015 01:25 » |
|
JavaScript::Lite у меня ругается аналогично JavaScript.
JavaScript::SpiderMonkey — ругается, но иначе.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
|
|
« Ответ #11 : 15-03-2015 15:17 » |
|
А какие требования к модулю?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #12 : 15-03-2015 15:24 » |
|
А какие требования к модулю?
Да, собственно, особых то и нет. Наличие мало мальски путной документации, понятные примеры. JavaScript:V8 вполне меня устраивает, я бы, даже сказал, гораздо привлекательнее, но, не собирается под виндой, сейчас вот опять попробую посидеть.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #13 : 15-03-2015 15:30 » |
|
Спрошу иначе: какие требования к интерфейсу?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #14 : 15-03-2015 15:48 » |
|
Спрошу иначе: какие требования к интерфейсу? Такие же, планирую парсер создать, ибо много довольно удачных примеров видел, почти все или на движке от гугла, или - от мозиллы. Используются модули JavaScript:V8 или JavaScript, да я и сам заметил, что тот же JavaScript::SpiderMonkey - тяжеловат для понимания. Например, взять те же примеры с cpan'a my $context = JavaScript::V8::Context->new();
$context->bind_function(write => sub { print @_ });
$context->eval(q/ write ("Privet!!!"); /); Подрубились к движку, вывели на печать, выполнили js - функцию. В 3-х строчках грубо говоря все решение. А тут, модуль JavaScript:SpiderMoney, строк явно больше, да и судя по отзывам, мало у кого путем получается с ним разобраться досконально use JavaScript::SpiderMonkey;
my $js = JavaScript::SpiderMonkey->new();
$js->init(); # Initialize Runtime/Context
# Define a perl callback for a new JavaScript function $js->function_set("print_to_perl", sub { print "@_\n"; });
# Create a new (nested) object and a property $js->property_by_path("document.location.href");
# Execute some code my $rc = $js->eval(q! document.location.href = append("http://", "www.aol.com");
print_to_perl("URL is ", document.location.href);
function append(first, second) { return first + second; } !);
# Get the value of a property set in JS my $url = $js->property_get("document.location.href");
$js->destroy(); JavaScript::Lite у меня ругается аналогично JavaScript. Под *.nix собралось без проблем (заголовки и либу ручками перенес в соотв.каталоги), под виндой скорее всего опять вылезут ошибки cpan[1]> notest install JavaScript::Lite Reading '/root/.cpan/Metadata' Database was generated on Sun, 15 Mar 2015 14:29:02 GMT Running install for module 'JavaScript::Lite' Fetching with LWP: http://cpan.webdesk.ru/authors/id/C/CR/CRAKRJACK/JavaScript-Lite-0.04.tar.gz Fetching with LWP: http://cpan.webdesk.ru/authors/id/C/CR/CRAKRJACK/CHECKSUMS Checksum for /root/.cpan/sources/authors/id/C/CR/CRAKRJACK/JavaScript-Lite-0.04.tar.gz ok Scanning cache /root/.cpan/build for sizes ............................................................................DONE Configuring C/CR/CRAKRJACK/JavaScript-Lite-0.04.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Warning (mostly harmless): No library found for -lmozjs Warning (mostly harmless): No library found for -lnspr4 Generating a Unix-style Makefile Writing Makefile for JavaScript::Lite Writing MYMETA.yml and MYMETA.json CRAKRJACK/JavaScript-Lite-0.04.tar.gz /usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK Running make for C/CR/CRAKRJACK/JavaScript-Lite-0.04.tar.gz cp lib/JavaScript/Lite.pm blib/lib/JavaScript/Lite.pm Running Mkbootstrap for JavaScript::Lite () chmod 644 "Lite.bs" "/usr/bin/perl" "/usr/share/perl/5.14/ExtUtils/xsubpp" -typemap "/usr/share/perl/5.14/ExtUtils/typemap" -typemap "typemap" Lite.xs > Lite.xsc && mv Lite.xsc Lite.c Please specify prototyping behavior for Lite.xs (see perlxs manual) cc -c -I. -I/usr/include/mozjs -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -fPIC "-I/usr/lib/perl/5.14/CORE" -Wall -Werror Lite.c rm -f blib/arch/auto/JavaScript/Lite/Lite.so LD_RUN_PATH="/usr/lib/../lib" cc -shared -L/usr/local/lib -fstack-protector Lite.o -o blib/arch/auto/JavaScript/Lite/Lite.so \ -ljs \
chmod 755 blib/arch/auto/JavaScript/Lite/Lite.so "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Lite.bs blib/arch/auto/JavaScript/Lite/Lite.bs 644 Manifying 1 pod document CRAKRJACK/JavaScript-Lite-0.04.tar.gz /usr/bin/make -- OK CRAKRJACK/JavaScript-Lite-0.04.tar.gz Skipping test because of notest pragma Running make install Running Mkbootstrap for JavaScript::Lite () chmod 644 "Lite.bs" Manifying 1 pod document Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /usr/local/lib/perl/5.14.2/auto/JavaScript/Lite/Lite.so Installing /usr/local/lib/perl/5.14.2/JavaScript/Lite.pm Installing /usr/local/man/man3/JavaScript::Lite.3pm Appending installation info to /usr/lib/perl/5.14/perllocal.pod CRAKRJACK/JavaScript-Lite-0.04.tar.gz /usr/bin/make install -- OK
cpan[2]> q
|
|
« Последнее редактирование: 15-03-2015 16:02 от perl6 »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #15 : 15-03-2015 21:47 » |
|
$context->bind_function(write => sub { print @_ }); Это колбек из js в perl или js-функция на perl. Добавлено через 2 минуты и 17 секунд:А тут, модуль JavaScript:SpiderMoney, строк явно больше, да и судя по отзывам, мало у кого путем получается с ним разобраться досконально
Код один в один. Во втором примере просто больше действий реализовано.
|
|
« Последнее редактирование: 15-03-2015 21:49 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #16 : 16-03-2015 15:06 » |
|
Код один в один. Во втором примере просто больше действий реализовано. Странно, судя по отзывам, многие испытывают трудности с ним, при попытке реализовать какую нибудь путную вещь
|
|
|
Записан
|
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #17 : 28-03-2015 20:23 » |
|
В общем, вот такая вот жопа C:\JavaScript-Lite-0.03>dmake cp lib/JavaScript/Lite.pm blib\lib\JavaScript\Lite.pm Running Mkbootstrap for JavaScript::Lite () "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "Lite.bs" "C:\Strawberry\perl\bin\perl.exe" "C:\Strawberry\perl\lib\ExtUtils\xsubpp" -typ emap "C:\STRAWB~1\perl\lib\ExtUtils\typemap" -typemap "typemap" Lite.xs > Lite. xsc && "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e mv -- Lite.xsc L ite.c Please specify prototyping behavior for Lite.xs (see perlxs manual) gcc -c -IC:\\js\src -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_C ONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfie lds -s -O2 -DVERSION=\"0.03\" -DXS_VERSION=\"0.03\" "-IC:\STRAWB~1\pe rl\lib\CORE" -Wall -Werror Lite.c cc1.exe: warnings being treated as errors Lite.xs: In function 'XS_JavaScript__Lite_eval_void': Lite.xs:411: error: format '%d' expects type 'int', but argument 4 has type 'int 32' Lite.xs: In function 'XS_JavaScript__Lite_eval_js': Lite.xs:428: error: format '%d' expects type 'int', but argument 4 has type 'int 32' Lite.xs: In function 'XS_JavaScript__Lite_invoke': Lite.xs:513: error: format '%d' expects type 'int', but argument 4 has type 'int 32' dmake: Error code 129, while making 'Lite.o' Ром, прикрывай топик, тут скорее всего надо искать на фрилансе тру си++ кодеров, чтоб эту болячку вылечить....
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #18 : 28-03-2015 21:23 » |
|
А сам? Тут делов то... error: format '%d' expects type 'int', but argument 4 has type 'int32' Сделай приведение 4-го аргумента к int. Please specify prototyping behavior for Lite.xs (see perlxs manual) Вставить строку "PROTOTYPES: DISABLE" после строки вида "MODULE = ... PACKAGE = ...".
|
|
« Последнее редактирование: 28-03-2015 21:25 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #19 : 31-03-2015 17:05 » |
|
К сожалению, все равно не получатся. C:\JavaScript-Lite-0.04>perl Makefile.PL INC=-IC:\js\src LIBS="-LC:\js\src\W*" Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for JavaScript::Lite Writing MYMETA.yml and MYMETA.json
C:\JavaScript-Lite-0.04>dmake cp lib/JavaScript/Lite.pm blib\lib\JavaScript\Lite.pm Running Mkbootstrap for JavaScript::Lite () "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "Lite.bs" "C:\strawberry\perl\bin\perl.exe" "C:\strawberry\perl\lib\ExtUtils\xsubpp" -typ emap "C:\strawberry\perl\lib\ExtUtils\typemap" -typemap "typemap" Lite.xs > Lit e.xsc && "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Command -e mv -- Lite.xsc Lite.c gcc -c -IC:\js\src -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_C ONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfie lds -s -O2 -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" "-IC:\strawberry\ perl\lib\CORE" -Wall -Werror Lite.c "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"JavaScript::Lite\", 'DLBASE' => 'Lite', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" dlltool --def Lite.def --output-exp dll.exp g++ -o blib\arch\auto\JavaScript\Lite\Lite.xs.dll -Wl,--base-file -Wl,dll.base - mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" Lite.o "C:\str awberry\perl\lib\CORE\libperl520.a" "C:\strawberry\c\i686-w64-mingw32\lib\libmol dname.a" "C:\strawberry\c\i686-w64-mingw32\lib\libkernel32.a" "C:\strawberry\c\i 686-w64-mingw32\lib\libuser32.a" "C:\strawberry\c\i686-w64-mingw32\lib\libgdi32. a" "C:\strawberry\c\i686-w64-mingw32\lib\libwinspool.a" "C:\strawberry\c\i686-w6 4-mingw32\lib\libcomdlg32.a" "C:\strawberry\c\i686-w64-mingw32\lib\libadvapi32.a " "C:\strawberry\c\i686-w64-mingw32\lib\libshell32.a" "C:\strawberry\c\i686-w64- mingw32\lib\libole32.a" "C:\strawberry\c\i686-w64-mingw32\lib\liboleaut32.a" "C: \strawberry\c\i686-w64-mingw32\lib\libnetapi32.a" "C:\strawberry\c\i686-w64-ming w32\lib\libuuid.a" "C:\strawberry\c\i686-w64-mingw32\lib\libws2_32.a" "C:\strawb erry\c\i686-w64-mingw32\lib\libmpr.a" "C:\strawberry\c\i686-w64-mingw32\lib\libw inmm.a" "C:\strawberry\c\i686-w64-mingw32\lib\libversion.a" "C:\strawberry\c\i68 6-w64-mingw32\lib\libodbc32.a" "C:\strawberry\c\i686-w64-mingw32\lib\libodbccp32 .a" "C:\strawberry\c\i686-w64-mingw32\lib\libcomctl32.a" dll.exp Lite.o:Lite.c:(.text+0x14): undefined reference to `JS_GetRuntime' Lite.o:Lite.c:(.text+0x1c): undefined reference to `JS_GetRuntimePrivate' Lite.o:Lite.c:(.text+0x1ed): undefined reference to `JS_ReportError' Lite.o:Lite.c:(.text+0x307): undefined reference to `JS_ReportError' Lite.o:Lite.c:(.text+0xaec): undefined reference to `JS_GetRuntime' Lite.o:Lite.c:(.text+0xaf4): undefined reference to `JS_GetRuntimePrivate' Lite.o:Lite.c:(.text+0xbec): undefined reference to `JS_MaybeGC' Lite.o:Lite.c:(.text+0xd17): undefined reference to `JS_Init' Lite.o:Lite.c:(.text+0xd31): undefined reference to `JS_NewContext' Lite.o:Lite.c:(.text+0xd4b): undefined reference to `JS_SetOptions' Lite.o:Lite.c:(.text+0xd6b): undefined reference to `JS_NewObject' Lite.o:Lite.c:(.text+0xd83): undefined reference to `JS_InitStandardClasses' Lite.o:Lite.c:(.text+0xd9b): undefined reference to `JS_SetGlobalObject' Lite.o:Lite.c:(.text+0xde2): undefined reference to `JS_SetRuntimePrivate' Lite.o:Lite.c:(.text+0xf5c): undefined reference to `JS_ClearPendingException' Lite.o:Lite.c:(.text+0xfd3): undefined reference to `JS_IsExceptionPending' Lite.o:Lite.c:(.text+0x100c): undefined reference to `JS_GetPendingException' Lite.o:Lite.c:(.text+0x1057): undefined reference to `JS_GetProperty' Lite.o:Lite.c:(.text+0x107d): undefined reference to `JS_GetProperty' Lite.o:Lite.c:(.text+0x10ab): undefined reference to `JS_GetProperty' Lite.o:Lite.c:(.text+0x10cc): undefined reference to `JS_ValueToString' Lite.o:Lite.c:(.text+0x10dd): undefined reference to `JS_GetStringBytes' Lite.o:Lite.c:(.text+0x10f1): undefined reference to `JS_ValueToString' Lite.o:Lite.c:(.text+0x1106): undefined reference to `JS_GetStringBytes' Lite.o:Lite.c:(.text+0x1220): undefined reference to `JS_GetGlobalObject' Lite.o:Lite.c:(.text+0x1246): undefined reference to `JS_GetProperty' Lite.o:Lite.c:(.text+0x1269): undefined reference to `JS_ObjectIsFunction' Lite.o:Lite.c:(.text+0x129d): undefined reference to `JS_CallFunctionValue' Lite.o:Lite.c:(.text+0x12c8): undefined reference to `JS_ValueToString' Lite.o:Lite.c:(.text+0x12d8): undefined reference to `JS_GetStringBytes' Lite.o:Lite.c:(.text+0x1492): undefined reference to `JS_GetGlobalObject' Lite.o:Lite.c:(.text+0x14c0): undefined reference to `JS_CompileScript' Lite.o:Lite.c:(.text+0x14dc): undefined reference to `JS_ExecuteScript' Lite.o:Lite.c:(.text+0x1680): undefined reference to `JS_ValueToString' Lite.o:Lite.c:(.text+0x1690): undefined reference to `JS_GetStringBytes' Lite.o:Lite.c:(.text+0x1aca): undefined reference to `JS_NewDoubleValue' Lite.o:Lite.c:(.text+0x1b25): undefined reference to `JS_NewStringCopyN' Lite.o:Lite.c:(.text+0x1c2b): undefined reference to `JS_NewObject' Lite.o:Lite.c:(.text+0x1c9f): undefined reference to `JS_SetProperty' Lite.o:Lite.c:(.text+0x1d15): undefined reference to `JS_NewArrayObject' Lite.o:Lite.c:(.text+0x1d6e): undefined reference to `JS_SetElement' Lite.o:Lite.c:(.text+0x1dd6): undefined reference to `JS_GetRuntime' Lite.o:Lite.c:(.text+0x1dde): undefined reference to `JS_GetRuntimePrivate' Lite.o:Lite.c:(.text+0x1e2e): undefined reference to `JS_GetRuntime' Lite.o:Lite.c:(.text+0x1e36): undefined reference to `JS_GetRuntimePrivate' Lite.o:Lite.c:(.text+0x1e76): undefined reference to `JS_SetBranchCallback' Lite.o:Lite.c:(.text+0x1f33): undefined reference to `JS_GetRuntime' Lite.o:Lite.c:(.text+0x1f45): undefined reference to `JS_GetRuntimePrivate' Lite.o:Lite.c:(.text+0x1f59): undefined reference to `JS_SetRuntimePrivate' Lite.o:Lite.c:(.text+0x1f91): undefined reference to `JS_DestroyContext' Lite.o:Lite.c:(.text+0x1f99): undefined reference to `JS_Finish' Lite.o:Lite.c:(.text+0x22b9): undefined reference to `JS_SetProperty' Lite.o:Lite.c:(.text+0x240e): undefined reference to `JS_GetGlobalObject' Lite.o:Lite.c:(.text+0x242e): undefined reference to `JS_GetProperty' Lite.o:Lite.c:(.text+0x2610): undefined reference to `JS_GetGlobalObject' Lite.o:Lite.c:(.text+0x1e0f): undefined reference to `JS_SetBranchCallback' C:/strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw 32/bin/ld.exe: Lite.o: bad reloc address 0x0 in section `.data' C:/strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw 32/bin/ld.exe: final link failed: Invalid operation collect2.exe: error: ld returned 1 exit status dmake: Error code 129, while making 'blib\arch\auto\JavaScript\Lite\Lite.xs.dll '
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #20 : 03-04-2015 00:41 » |
|
Винда — гнилое дело. Не хватает модуля для линковки. Что-то из комплекта spidermonkey.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #21 : 03-04-2015 02:59 » |
|
Не хватает модуля для линковки. Что-то из комплекта spidermonkey.
А как понять, какого именно модуля?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #22 : 03-04-2015 21:50 » |
|
Великий Гугль: >/usr/lib/libproxy.so: undefined reference to `JS_NewString' >/usr/lib/libproxy.so: undefined reference to `JS_GetStringBytes
Их задепрекейтили в новом файрфоксе. То есть либе нужен более старый spidermonkey, на spidermonkey из четвертого файрфокса она не соберется.
Нужно подобрать правильную версию libmozjs для сборки. Чего-то с поддержкой JS совсем хреново. И Perl тут совсем не при чем.
|
|
« Последнее редактирование: 03-04-2015 21:53 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
perl6
Помогающий
Offline
|
|
« Ответ #23 : 14-04-2015 03:06 » |
|
Скомпилировал версию 1.5, да так теперь другие ошибки лезут. Короче, неделя потрачена зря (виртуалку пока настраивал, да закрутился туда-сюда).... Видать, не соберется так просто) rv.succ = JS_FALSE; ^ Lite.xs: In function 'build_string': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:128:18: note: in expansion of macro 'JS_FALSE' if(succ == JS_FALSE) { ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:128:18: note: in expansion of macro 'JS_FALSE' if(succ == JS_FALSE) { ^ Lite.xs: In function 'build_hash': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:174:16: note: in expansion of macro 'JS_FALSE' if(succ == JS_FALSE) { ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:174:16: note: in expansion of macro 'JS_FALSE' if(succ == JS_FALSE) { ^ Lite.xs: In function 'build_array': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:201:18: note: in expansion of macro 'JS_FALSE' if(succ == JS_FALSE) { ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:201:18: note: in expansion of macro 'JS_FALSE' if(succ == JS_FALSE) { ^ Lite.xs: In function 'run_branch_callback': C:\js\src/jstypes.h:366:18: error: 'JSIntn' undeclared (first use in this functi on) #define JS_TRUE (JSIntn)1 ^ Lite.xs:294:14: note: in expansion of macro 'JS_TRUE' return JS_TRUE; ^ C:\js\src/jstypes.h:366:25: error: expected ';' before numeric constant #define JS_TRUE (JSIntn)1 ^ Lite.xs:294:14: note: in expansion of macro 'JS_TRUE' return JS_TRUE; ^ C:\js\src/jstypes.h:367:26: error: expected ';' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:296:14: note: in expansion of macro 'JS_FALSE' return JS_FALSE; ^ C:\js\src/jstypes.h:366:25: error: expected ';' before numeric constant #define JS_TRUE (JSIntn)1 ^ Lite.xs:299:12: note: in expansion of macro 'JS_TRUE' return JS_TRUE; ^ Lite.xs: In function 'assign_property': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:348:14: note: in expansion of macro 'JS_FALSE' if(succ == JS_FALSE) { ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:348:14: note: in expansion of macro 'JS_FALSE' if(succ == JS_FALSE) { ^ Lite.xs: In function 'XS_JavaScript__Lite_assign_property': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:383:16: note: in expansion of macro 'JS_FALSE' if(rv == JS_FALSE) ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:383:16: note: in expansion of macro 'JS_FALSE' if(rv == JS_FALSE) ^ In file included from C:\js\src/jspubtd.h:45:0, from C:\js\src/jsapi.h:47, from Lite.xs:11: C:\js\src/jstypes.h:202:27: error: 'JSUint32' undeclared (first use in this func tion) #define JS_BIT(n) ((JSUint32)1 << (n)) ^ C:\js\src/jstypes.h:203:26: note: in expansion of macro 'JS_BIT' #define JS_BITMASK(n) (JS_BIT(n) - 1) ^ C:\js\src/jsapi.h:62:33: note: in expansion of macro 'JS_BITMASK' #define JSVAL_TAGMASK JS_BITMASK(JSVAL_TAGBITS) ^ C:\js\src/jsapi.h:63:40: note: in expansion of macro 'JSVAL_TAGMASK' #define JSVAL_TAG(v) ((v) & JSVAL_TAGMASK) ^ C:\js\src/jsapi.h:69:34: note: in expansion of macro 'JSVAL_TAG' #define JSVAL_IS_OBJECT(v) (JSVAL_TAG(v) == JSVAL_OBJECT) ^ Lite.xs:385:11: note: in expansion of macro 'JSVAL_IS_OBJECT' if(!JSVAL_IS_OBJECT(jobjv)) ^ C:\js\src/jstypes.h:202:36: error: expected ')' before numeric constant #define JS_BIT(n) ((JSUint32)1 << (n)) ^ C:\js\src/jstypes.h:203:26: note: in expansion of macro 'JS_BIT' #define JS_BITMASK(n) (JS_BIT(n) - 1) ^ C:\js\src/jsapi.h:62:33: note: in expansion of macro 'JS_BITMASK' #define JSVAL_TAGMASK JS_BITMASK(JSVAL_TAGBITS) ^ C:\js\src/jsapi.h:63:40: note: in expansion of macro 'JSVAL_TAGMASK' #define JSVAL_TAG(v) ((v) & JSVAL_TAGMASK) ^ C:\js\src/jsapi.h:69:34: note: in expansion of macro 'JSVAL_TAG' #define JSVAL_IS_OBJECT(v) (JSVAL_TAG(v) == JSVAL_OBJECT) ^ Lite.xs:385:11: note: in expansion of macro 'JSVAL_IS_OBJECT' if(!JSVAL_IS_OBJECT(jobjv)) ^ C:\js\src/jstypes.h:202:36: error: expected ')' before numeric constant #define JS_BIT(n) ((JSUint32)1 << (n)) ^ C:\js\src/jstypes.h:203:26: note: in expansion of macro 'JS_BIT' #define JS_BITMASK(n) (JS_BIT(n) - 1) ^ C:\js\src/jsapi.h:62:33: note: in expansion of macro 'JS_BITMASK' #define JSVAL_TAGMASK JS_BITMASK(JSVAL_TAGBITS) ^ C:\js\src/jsapi.h:65:48: note: in expansion of macro 'JSVAL_TAGMASK' #define JSVAL_CLRTAG(v) ((v) & ~(jsval)JSVAL_TAGMASK) ^ C:\js\src/jsapi.h:81:42: note: in expansion of macro 'JSVAL_CLRTAG' #define JSVAL_TO_GCTHING(v) ((void *)JSVAL_CLRTAG(v)) ^ C:\js\src/jsapi.h:82:46: note: in expansion of macro 'JSVAL_TO_GCTHING' #define JSVAL_TO_OBJECT(v) ((JSObject *)JSVAL_TO_GCTHING(v)) ^ Lite.xs:387:14: note: in expansion of macro 'JSVAL_TO_OBJECT' jobj = JSVAL_TO_OBJECT(jobjv); ^ In file included from C:\js\src/jspubtd.h:45:0, from C:\js\src/jsapi.h:47, from Lite.xs:11: Lite.xs: In function 'XS_JavaScript__Lite_eval_void': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:409:19: note: in expansion of macro 'JS_FALSE' if(rv.succ == JS_FALSE) { ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:409:19: note: in expansion of macro 'JS_FALSE' if(rv.succ == JS_FALSE) { ^ Lite.xs: In function 'XS_JavaScript__Lite_eval_js': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:426:19: note: in expansion of macro 'JS_FALSE' if(rv.succ == JS_FALSE) { ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:426:19: note: in expansion of macro 'JS_FALSE' if(rv.succ == JS_FALSE) { ^ Lite.xs: In function 'XS_JavaScript__Lite_create': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:465:45: note: in expansion of macro 'JS_FALSE' if (JS_InitStandardClasses(cx, gobj) == JS_FALSE) ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:465:45: note: in expansion of macro 'JS_FALSE' if (JS_InitStandardClasses(cx, gobj) == JS_FALSE) ^ Lite.xs: In function 'XS_JavaScript__Lite_invoke': C:\js\src/jstypes.h:367:19: error: 'JSIntn' undeclared (first use in this functi on) #define JS_FALSE (JSIntn)0 ^ Lite.xs:506:16: note: in expansion of macro 'JS_FALSE' if(rv == JS_FALSE) ^ C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:506:16: note: in expansion of macro 'JS_FALSE' if(rv == JS_FALSE) ^ In file included from C:\js\src/jspubtd.h:45:0, from C:\js\src/jsapi.h:47, from Lite.xs:11: C:\js\src/jstypes.h:202:27: error: 'JSUint32' undeclared (first use in this func tion) #define JS_BIT(n) ((JSUint32)1 << (n)) ^ C:\js\src/jstypes.h:203:26: note: in expansion of macro 'JS_BIT' #define JS_BITMASK(n) (JS_BIT(n) - 1) ^ C:\js\src/jsapi.h:62:33: note: in expansion of macro 'JS_BITMASK' #define JSVAL_TAGMASK JS_BITMASK(JSVAL_TAGBITS) ^ C:\js\src/jsapi.h:63:40: note: in expansion of macro 'JSVAL_TAGMASK' #define JSVAL_TAG(v) ((v) & JSVAL_TAGMASK) ^ C:\js\src/jsapi.h:69:34: note: in expansion of macro 'JSVAL_TAG' #define JSVAL_IS_OBJECT(v) (JSVAL_TAG(v) == JSVAL_OBJECT) ^ Lite.xs:508:10: note: in expansion of macro 'JSVAL_IS_OBJECT' if(JSVAL_IS_OBJECT(fval) && JS_ObjectIsFunction(cx, JSVAL_TO_OBJECT(fval) )) { ^ C:\js\src/jstypes.h:202:36: error: expected ')' before numeric constant #define JS_BIT(n) ((JSUint32)1 << (n)) ^ C:\js\src/jstypes.h:203:26: note: in expansion of macro 'JS_BIT' #define JS_BITMASK(n) (JS_BIT(n) - 1) ^ C:\js\src/jsapi.h:62:33: note: in expansion of macro 'JS_BITMASK' #define JSVAL_TAGMASK JS_BITMASK(JSVAL_TAGBITS) ^ C:\js\src/jsapi.h:63:40: note: in expansion of macro 'JSVAL_TAGMASK' #define JSVAL_TAG(v) ((v) & JSVAL_TAGMASK) ^ C:\js\src/jsapi.h:69:34: note: in expansion of macro 'JSVAL_TAG' #define JSVAL_IS_OBJECT(v) (JSVAL_TAG(v) == JSVAL_OBJECT) ^ Lite.xs:508:10: note: in expansion of macro 'JSVAL_IS_OBJECT' if(JSVAL_IS_OBJECT(fval) && JS_ObjectIsFunction(cx, JSVAL_TO_OBJECT(fval) )) { ^ C:\js\src/jstypes.h:202:36: error: expected ')' before numeric constant #define JS_BIT(n) ((JSUint32)1 << (n)) ^ C:\js\src/jstypes.h:203:26: note: in expansion of macro 'JS_BIT' #define JS_BITMASK(n) (JS_BIT(n) - 1) ^ C:\js\src/jsapi.h:62:33: note: in expansion of macro 'JS_BITMASK' #define JSVAL_TAGMASK JS_BITMASK(JSVAL_TAGBITS) ^ C:\js\src/jsapi.h:65:48: note: in expansion of macro 'JSVAL_TAGMASK' #define JSVAL_CLRTAG(v) ((v) & ~(jsval)JSVAL_TAGMASK) ^ C:\js\src/jsapi.h:81:42: note: in expansion of macro 'JSVAL_CLRTAG' #define JSVAL_TO_GCTHING(v) ((void *)JSVAL_CLRTAG(v)) ^ C:\js\src/jsapi.h:82:46: note: in expansion of macro 'JSVAL_TO_GCTHING' #define JSVAL_TO_OBJECT(v) ((JSObject *)JSVAL_TO_GCTHING(v)) ^ Lite.xs:508:59: note: in expansion of macro 'JSVAL_TO_OBJECT' if(JSVAL_IS_OBJECT(fval) && JS_ObjectIsFunction(cx, JSVAL_TO_OBJECT(fval) )) { ^ In file included from C:\js\src/jspubtd.h:45:0, from C:\js\src/jsapi.h:47, from Lite.xs:11: C:\js\src/jstypes.h:367:26: error: expected ')' before numeric constant #define JS_FALSE (JSIntn)0 ^ Lite.xs:510:18: note: in expansion of macro 'JS_FALSE' if(rv == JS_FALSE) { ^ Lite.xs: In function 'run_branch_callback': Lite.xs:301:1: error: control reaches end of non-void function [-Werror=return-t ype] } ^ cc1.exe: all warnings being treated as errors dmake: Error code 129, while making 'Lite.o'
C:\JavaScript-Lite-0.04-5v1F1P>
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #24 : 14-04-2015 13:37 » |
|
Наверно стоит обратить внимание на V8.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|