|  | 
	| 
			| 
					
						| 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_lib_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::LiteReading '/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>dmakecp 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. |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	|  |