Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.FIDO.NEXTGEN
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.FIDO.NEXTGEN с датами от 21 May 17 10:18:04 до 07 Jun 23 16:44:00, всего сообщений: 1088
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 206 из 1088 =================================== RU.FIDO.NEXTGEN =
От   : Mithgol the Webmaster            2:50/88            07 Aug 17 00:09:20
Кому : Denis Chernayev                                     07 Aug 17 00:09:20
Тема : Интерфейс взаимодействия с расширениями
FGHI : area://RU.FIDO.NEXTGEN?msgid=2:50/88+598785f9
На   : area://RU.FIDO.NEXTGEN?msgid=2:5030/830.57@fidonet+59872a45
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.FIDO.NEXTGEN?msgid=2:5015/46+59889f7b
==============================================================================
Так было 17:39 06 Aug 17 написано от Denis Chernayev к Nikolay B Shpilchin:

MtW>>> А что же, Perl / Python / JavaScript умеют компилироваться
MtW>>> в бинарники под винду, Linux и macOS? (Именно таким ведь API был
MtW>>> выше заявлен,я ничего не путаю?)

NS>> Про жабаскрипт не знаю, а перл и питон умеют.

DC> Злые яндексы утверждают, что умеет

DC> https://github.com/areve/node2exe

Формально это действительно бинарник, а по сути это самораспаковывающийся архив с джаваскриптом и движком Node.js, этот джаваскрипт исполняющим.

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

Будет ли это API командной строки или API вызова Си-подобных функций?

Предположим, что это будет API командной строки. Тогда не очень понятно, чем вызвана необходимость компилировать бинарник, можно через командную строку вызвать вместо "binaryName.exe param1 param2" команду "node scriptName.js param1 param2", и тем невозбранно достигнуть желаемого.

(Это пример для JavaScript и движка Node.js, но примеры для Perl и Python функционально аналогичны.)

Предположим теперь, что это будет API вызова Си-подобных функций. И тогда опять не очень понятно, чем вызвана необходимость компилировать бинарник. Скриптовые языки способны обращаться (Си-подобными вызовами) ко внешним бинарникам: Python использует https://docs.python.org/3/library/ctypes.html для этого, а у Node.js есть https://github.com/node-ffi/node-ffi для этой цели (правда, там в README сказано, что работает только на старинных версиях Node.js 0.x.y, однако я вижу по адресу https://travis-ci.org/node-ffi/node-ffi/builds/226530385 наглядное свидетельство противоположного). Что-то в этом же роде есть и у Perl, кажись.

Тогда что имеется в виду? Методом исключения тогда получается так, что это не расширения будут обращаться к API nextgen Си-подобным способом, а скорее nextgen будет к расширениям обращаться через API Си-подобным способом, и вот поэтому-то расширения должны быть бинарниками, то есть в Windows это будут DLL-файлы (а точнее, PE, то есть Portable Executable), а в Linux это будут so-файлы (а точнее, ELF, то есть Executable and Linkable Format), и так далее.

Но тогда упомянутая выше способность https://github.com/areve/node2exe создать самораспаковывающийся архив, содержащий JavaScript и с ним запускающий этот JavaScript движок Node.js, не имеет никакого значения, так как тогда nextgen будет нуждаться не просто в исполняемом файле, а в библиотеке функций.

(У меня есть и подозрение о том, что и программисты на Perl или на Python также могут столкнуться с некоторыми трудностями при попытке сформировать DLL или so-файлы.)

Достигнув этого вывода, впору почесать себе затылок, затем почесать темя, затем ещё раз поинтересоваться у создателей nextgen о том, а точно ли они видят своё API именно так, и если да, то нафига это. По идее, философия Unix в той формулировке, которая со слов Дуга Макилроя цитируется по адресу http://www.catb.org/~esr/writings/taoup/html/ch01s06.html Эриком Стивеном Рэймондом, предполагает употребление текстовых потоков как универсального интерфейса. Мы можем в Фидонете видеть такие примеры этого, как hpt post, или внешние утилиты GoldED, или внешние редакторы для GoldED: в каждом из этих примеров используется вызов через командную строку с передачей текста фидопочты на вход или во временном файле. Примеры Си-подобного обращения к двоичной скомпилированной библиотеке гораздо более редкостны в Фидонете (кажется, SMAPI пыталася стать таковою, но кто вспомнит реальные примеры употребления SMAPI за пределами проекта Husky?).


Фидонет будет великим и гипертекстовым!    [Ru.Mozilla]     http://Mithgol.Ru/
Mithgol the Webmaster.                    [Братство Нод] [Team А я меняю subj]

... И слово "е-бизнес" уже пишут по-русски не краснея.       (Артемий Лебедев)
--- Эшелону: MILSATCOM AUTODIN BLACKER  C3I C4I  система управления содержимым
* Origin: полагай святителя Феофана Затворника покровителем Фидо! (2:50/88)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.013948 секунды