Это команда urweb, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
urweb - компилятор для языка программирования Ur / Web
СИНТАКСИС
urweb [вариант|название проекта] ...
urweb демон [Начало|остановить]
ОПИСАНИЕ
Эта страница руководства кратко документирует urweb компилятор. Обширная документация
доступно в справочном руководстве Ur / Web.
urweb это оптимизирующий компилятор для Ur / Web, функциональный, чистый, статически типизированный, строго
оцененный язык программирования, предназначенный для создания динамических веб-приложений на основе
по базам данных SQL. urweb создает очень эффективный объектный код, не использующий мусор
коллекция; скомпилированные программы часто будут даже более эффективными, чем то, что большинство программистов
потрудился бы написать на C.
Первый описанный вызов компилирует проект Ur / Web (см. ОБОБЩЕНИЕ), в то время как
второй вызов управляет демоном вывода типа (см. ТИП ВЫВОД ДЕЙМОН). Для
простые проекты, требуется только знакомство с первым вызовом.
ОБОБЩЕНИЕ
urweb является компилятором всей программы (т. е. инкрементная компиляция не поддерживается). Таким образом,
он работает на уровне детализации проекта и запускается из командной строки с коллекцией
опций и название проекта. Самый простой случай - запустить urweb Foo, где файл
foo.ur содержит действующую программу Ur / Web, и в этом случае urweb скомпилирует программу в
файла foo.exe. (Несмотря на расширение сгенерированных файлов, urweb не
обязательно производить исполняемые файлы COFF; скорее, он создает объектный формат по умолчанию
компилятор C по умолчанию.)
Более крупные программы, охватывающие множество файлов, можно скомпилировать, указав .урп (т.е.
Ur / Web project) файл. Синтаксис .урп файл относительно простой; см. раздел 3.1
справочное руководство Ur / Web для получения подробной информации.
Без аргументов, urweb печатает номер версии и завершает работу.
составитель кредита
-компилятор программа
Устанавливает имя исполняемого файла, соответствующее компилятору C. urweb использования GCC by
по умолчанию, но лязг тоже должно работать.
-db имя=ценностное , ...
Устанавливает информацию базы данных, используя формат, ожидаемый Postgres's PQconnectdb. Если
бэкэнд базы данных - MySQL или SQLite, urweb проанализирует информационную строку, чтобы
установите соответствующие параметры подключения. Для MySQL единственные релевантные параметры
кашель, адрес хоста, порт, имя_базы_данных, пользовательи password; для SQLite единственный актуальный
параметр имя_базы_данных, который интерпретируется как путь файловой системы к базе данных
файл. Все нераспознанные параметры игнорируются.
-dbms (Postgres|mysql|SQLite)
Устанавливает серверную часть базы данных. Если требуется, urweb также выдаст код инициализации
для выбранного бэкенда; увидеть -sql опцию.
-отлаживать Предписывает urweb чтобы испустить сгенерированный код C как /tmp/webapp.c, Кроме того, urweb
напечатает параметры командной строки, которые он передает компилятору C и компоновщику, поскольку он
выполняет.
-dumpИсточник
Предписывает urweb для печати текстовой формы текущего промежуточного
представление (IR) при сбое компиляции. Выход, скорее всего, будет очень долгим
и не очень удобочитаемый.
-dumpVerboseSource
Предписывает urweb для печати текстовой формы каждого промежуточного представления
генерируется во время компиляции. Результат, скорее всего, будет очень длинным и не очень
человек читаемый.
-dumpTypes
Если указано, urweb напечатает типы всех именованных значений, которые он найдет во время
сборник.
-dumpTypesOnError
Идентично -dumpTypes, но печатает типы только в случае сбоя компиляции.
-explainВставить
Включает подробные сообщения об ошибках, когда urweb не может вставлять значения на стороне сервера в
клиентский код.
-предел класс Num
Устанавливает лимит использования ресурсов для сгенерированных приложений. Лимит класс будет
установить неотрицательное целое число Num. Классы:
уборка
максимальное количество операций очистки (например, записи о необходимости
освободить определенные временные объекты), которые могут быть активными сразу на запрос
клиентов
максимальное количество клиентов, которые могут быть одновременно заблокированы в ожидании новых
сообщения (отправленные Основа.отправить)
база данных
максимальный размер файла базы данных (в настоящее время используется только SQLite), в единицах
страницы базы данных
дельт максимальное количество сообщений, отправляемых в одном обработчике запросов с
Основа.отправить
глобальные
максимальное количество глобальных переменных, которые библиотеки FFI могут устанавливать в одном
контекст запроса
Заголовки
максимальный размер (в байтах) буфера для каждого запроса, используемого для хранения заголовков HTTP для
сгенерированные страницы
куча максимальный размер (в байтах) кучи для каждого запроса для динамически выделяемых данных
затраты максимальное количество полей формы верхнего уровня на запрос
Сообщения
максимальный размер (в байтах) буфера для каждого запроса, используемого для хранения одного исходящего
сообщение отправлено с Основа.отправить
страница максимальный размер (в байтах) буфера для каждого запроса, используемого для хранения HTML-содержимого
сгенерированные страницы
скрипт максимальный размер (в байтах) буфера для каждого запроса, используемого для хранения JavaScript
содержание сгенерированных страниц
подвходы
максимальное количество полей формы на запрос, исключая поля верхнего уровня
время максимальное время выполнения запроса одной страницы, примерно 0.1
секунды
транзакции
максимальное количество настраиваемых транзакционных действий (например, отправка электронного письма)
который может быть запущен при генерации одной страницы
-выход имя файла
Устанавливает где urweb сохранит скомпилированный исполняемый файл.
-дорожка имя ценностное
Определяет новый псевдоним пути для использования в .урп файлы. В частности, этот вариант
указывает, что все вхождения $имя в любой .урп обработанные файлы будут
заменено на ценностное . Вы можете указать эту опцию более одного раза.
-префикс префикс
Устанавливает префикс приложения. Это контролирует, как функции Ur / Web привязаны к URI;
в частности, если префикс is /каталог/myapp.exe/, затем URI вида
//example.com/directory/myapp.exe/Module/function разрешит функцию
Модуль.функция в Ур / Веб.
-протокол (HTTP|CGI|FastCGI|статический)
Предписывает urweb для создания исполняемого файла, который говорит по указанному протоколу:
HTTP HTTP1.1. urweb создаст автономный исполняемый файл сервера.
CGI Общий интерфейс шлюза, классический протокол, который веб-серверы используют для
генерировать динамический контент, порождая новые процессы. Пока Ур / Веб программы
может вообще использовать передачу сообщений с Отправить и RECV функции, которые
функциональность еще не поддерживается в CGI, так как CGI нуждается в свежем процессе
для каждого запроса, а при передаче сообщений необходимо использовать постоянные сокеты для
доставлять сообщения.
Поскольку Ur / Web обрабатывает пути необычным образом, вам необходимо настроить
Ur / Web, специально установив префикс директива в вашем .урп файл или
прохождение -префикс параметр в командной строке. Например, если вы развернете
веб-приложение на //example.com/directory/myapp.exe, вы должны указать
/каталог/myapp.exe/ в качестве префикса приложения. См. Раздел 3.2
Справочное руководство Ur / Web для получения дополнительной информации.
FastCGI
Более быстрый и новый протокол, вдохновленный CGI, в котором веб-серверы могут запускаться
и повторно использовать постоянные внешние процессы для создания динамического контента. Ur / Web
не реализует весь протокол, но поддержка Ur / Web была протестирована
работать как с Apache, так и с lighttpd.
Приложения, использующие передачу сообщений, хотя и поддерживаются, требуют специальных
конфигурация. В частности, если вы используете Apache, не забудьте указать
большой простой; если вы используете lighttpd, обязательно установите макс-процессов в 1.
Обоснование этих изменений конфигурации подробно описано в разделе 3.2.
Справочное руководство Ur / Web.
статический Самый простой из возможных протоколов. urweb сгенерирует выходной исполняемый файл
который ожидает, что один аргумент командной строки задает URI страницы для
генерировать. Например, этот аргумент может быть /главный, в этом случае a
статический HTTP-ответ для этой страницы будет записан в стандартный вывод.
-корень Имя путь
Запускает соглашение об альтернативном модуле для всех исходных файлов, найденных в каталоге
путь или любой из его подкаталогов. В частности, любой файл путь/foo.ur определит
модуль под названием Имя.Foo вместо обычного Foo. Любой файл путь/subdir/foo.ur
определит модуль под названием Имя.Подкаталог.Fooи т. д. для произвольного вложения
подкаталоги. Вы можете указать эту опцию более одного раза.
-signfile путь
Если указано, скомпилированное приложение будет смотреть на путь для ключа для использования в
криптографическая подпись. Это используется для предотвращения атак с подделкой межсайтовых запросов.
для любого обработчика формы, который одновременно читает cookie и создает побочные эффекты. Если
указанный файл не существует, приложение создаст его и прочитает сохраненный
данные о будущих призывах. Вы также можете инициализировать файл вручную любым
содержимое не менее 16 байт; первые 16 байтов будут рассматриваться как ключ.
-sql файл
Просит, чтобы urweb сгенерировать код инициализации базы данных для выбранной базы данных
бэкэнд, сохраняя его в файл. Если файл уже существует, urweb перезапишет его.
Обратите внимание, что сгенерированные инструкции не будут создавать базу данных приложения; ты
должен сделать это сам.
-статический
Предписывает urweb для статической привязки сгенерированного исполняемого файла.
-синхронизация
Если указано, urweb напечатает отчет о времени в конце компиляции, показывая
количество секунд, необходимых для каждого этапа процесса компиляции.
-unifyБольше
Предписывает urwebмеханизм вывода типов, чтобы делать предположения наилучшим образом, а не
немедленно терпит неудачу при выполнении вывода типа. Если -dumpTypes показывает нерешенные
переменные объединения в позициях, где вы хотели бы видеть urweb сделать лучше-
вместо этого предполагает усилие, укажите эту опцию.
Правильные программы, скомпилированные с -unifyБольше будут идентичны своим аналогам
скомпилирован без него; тем не мение, urweb вероятно, сгенерирует намного больше (и, возможно,
более полезные) сообщения об ошибках в то время, когда их просят скомпилировать некорректную программу
с этим флагом.
-подробный
Предписывает urweb объявлять этапы процесса компиляции по мере его выполнения
их.
Возможности , которые препятствовать компиляция
При запуске с любым из этих параметров urweb не будет производить исполняемый вывод.
-css Дамп сгенерированных свойств и классов CSS. Первая строка вывода - это список
категории свойств CSS, которые стоило бы установить в теле документа. В
остальные строки - это пары разделенных пробелами имен классов CSS и категорий
свойства, которые стоило бы установить для этого класса. Коды категорий:
делится на две разновидности. Коды, раскрывающие свойства тега или его
(рекурсивные) дети
B для блочных элементов,
C для подписей к таблицам,
D для ячеек таблицы,
L для списков и
T для столов.
Коды, раскрывающие свойства конкретного тега, использующего класс:
b для блочных элементов,
t для столов,
d для ячеек таблицы,
- для строк таблицы,
H за возможность установить высоту,
N для незамещенных встроенных элементов,
R для замененных строчных элементов и
W за возможность установить ширину.
-moduleOf файл
Печатает имя модуля Ur, соответствующее исходному файлу файл.
-числовая-версия
Печатает версию исполняемого файла компилятора без связанного английского текста.
Подходит для использования в скриптах.
-print-компилятор
Печатает имя исполняемого файла компилятора, который urweb буду использовать.
-печатать-включить
Печатает расположение файловой системы, в котором urweb будет искать заголовки C.
-тс Если указано, urweb остановится после фазы проверки типов. Либеральное использование этого
опция может существенно ускорить разработку, так как urwebПроходы оптимизации могут занять
некоторое время.
-версия
Печатает версию исполняемого файла компилятора. Выход идентичен urweb выходной
при запуске без аргументов.
Документация кредита
Эти параметры настраивают генератор документации Ur / Web.
-демонстрация Выполняет форматирование в демонстрационном стиле.
-управляемая-демонстрация
Выполняет форматирование в демонстрационном стиле, но размер фреймов позволяет выделить меньше места для
пояснительный текст. Полезно для создания презентаций.
-noEmacs
При использовании с -демонстрация, причины urweb в используйте Emacs для выделения кода синтаксиса. В
полученный код не выделяется.
-руководство
Выполняет форматирование в стиле учебника.
внутренний кредита
Эти параметры не предназначены для пользователей; они используются для строительства urweb выпускает и отлаживать
компилятор.
-загрузка Места urweb в режим начальной загрузки. Используется при сборке стандартной библиотеки для
первый раз.
-стоп фаза Причины urweb для выхода после указанной фазы компиляции.
ТИП ВЫВОД ДЕЙМОН
Поскольку вывод типа Ur / Web может занять значительное время, может быть полезно
версии исходных файлов, определяемые типом кэша. Этот режим можно активировать, запустив
urweb демон Начало
Дальнейшие вызовы urweb в том же рабочем каталоге будут отправлять запросы в фоновый режим.
процесс-демон, который повторно использует результаты вывода типов, когда это возможно, отслеживая исходный файл
зависимости и время модификации.
Чтобы остановить фоновый демон, запустите
urweb демон остановить
Связь происходит через сокет домена Unix в файле .urweb_daemon в рабочем
каталог.
Используйте urweb в Интернете с помощью сервисов onworks.net