Admin User, created Apr 06. 2025
/**
* Modern Albufeira Prolog Interpreter
*
* Warranty & Liability
* To the extent permitted by applicable law and unless explicitly
* otherwise agreed upon, XLOG Technologies AG makes no warranties
* regarding the provided information. XLOG Technologies AG assumes
* no liability that any problems might be solved with the information
* provided by XLOG Technologies AG.
*
* Rights & License
* All industrial property rights regarding the information - copyright
* and patent rights in particular - are the sole property of XLOG
* Technologies AG. If the company was not the originator of some
* excerpts, XLOG Technologies AG has at least obtained the right to
* reproduce, change and translate the information.
*
* Reproduction is restricted to the whole unaltered document. Reproduction
* of the information is only allowed for non-commercial uses. Selling,
* giving away or letting of the execution of the library is prohibited.
* The library can be distributed as part of your applications and libraries
* for execution provided this comment remains unchanged.
*
* Restrictions
* Only to be distributed with programs that add significant and primary
* functionality to the library. Not to be distributed with additional
* software intended to replace any components of the library.
*
* Trademarks
* Jekejeke is a registered trademark of XLOG Technologies AG.
*/
:- ensure_loaded('../../transpiler/config.p').
:- ensure_loaded('../../transpiler/cross/helper.p').
:- ensure_loaded('../../transpiler/cross/util.p').
:- ensure_loaded('transpiler.p').
:- ensure_loaded('bundler.p').
% run
run :-
env(doge, Doge),
set_prolog_flag(base_url, Doge),
write('js '), time(run_doge).
% run_doge
run_doge :-
transpile_doge_core,
bundle_doge_core,
copy_doge_lib.
% transpile_doge_core
transpile_doge_core :-
transpile_begin('player/drawer/nova/bootload.mjs', [defer_meta(true)]),
transpile_add('transpiler/cross/albufeira.p', 'player/drawer/nova/bootload.mjs', [defer_meta(true)]),
transpile_add('transpiler/drawer/engine.p', 'player/drawer/nova/bootload.mjs', [defer_meta(true)]),
transpile_add('transpiler/drawer/core.p', 'player/drawer/nova/bootload.mjs', [defer_meta(true)]),
transpile_add('transpiler/drawer/dynamic.p', 'player/drawer/nova/bootload.mjs', [defer_meta(true)]),
transpile_add('transpiler/drawer/loader.p', 'player/drawer/nova/bootload.mjs', [defer_meta(true)]),
transpile_end('player/drawer/nova/bootload.mjs', [defer_meta(true)]),
copy_time('transpiler/cross/albufeira.p', 'player/drawer/nova/bootload.mjs'),
copy_time('transpiler/drawer/core.p', 'player/drawer/nova/bootload.mjs', [update(true)]),
copy_time('transpiler/drawer/engine.p', 'player/drawer/nova/bootload.mjs', [update(true)]),
copy_time('transpiler/drawer/dynamic.p', 'player/drawer/nova/bootload.mjs', [update(true)]),
copy_time('transpiler/drawer/loader.p', 'player/drawer/nova/bootload.mjs', [update(true)]),
transpile_begin('player/drawer/nova/streams.mjs'),
transpile_add('transpiler/drawer/code.p', 'player/drawer/nova/streams.mjs'),
transpile_add('transpiler/drawer/scanner.p', 'player/drawer/nova/streams.mjs'),
transpile_add('transpiler/drawer/term.p', 'player/drawer/nova/streams.mjs'),
transpile_add('transpiler/drawer/session.p', 'player/drawer/nova/streams.mjs'),
transpile_end('player/drawer/nova/streams.mjs'),
copy_time('transpiler/drawer/code.p', 'player/drawer/nova/streams.mjs'),
copy_time('transpiler/drawer/scanner.p', 'player/drawer/nova/streams.mjs', [update(true)]),
copy_time('transpiler/drawer/term.p', 'player/drawer/nova/streams.mjs', [update(true)]),
copy_time('transpiler/drawer/session.p', 'player/drawer/nova/streams.mjs', [update(true)]).
% bundle_doge_core
bundle_doge_core :-
copy_text('player/cross/empty.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/store.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/machine.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/unicode.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/special.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/runtime.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/eval.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/theatre.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/bootload.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/streams.mjs', 'player/canned/nova/core.mjs'),
bundle_add('player/drawer/nova/core.mjs', 'player/canned/nova/core.mjs', [keep_export(true)]),
copy_time('player/drawer/nova/store.mjs', 'player/canned/nova/core.mjs'),
copy_time('player/drawer/nova/machine.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_time('player/drawer/nova/unicode.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_time('player/drawer/nova/special.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_time('player/drawer/nova/runtime.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_time('player/drawer/nova/eval.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_time('player/drawer/nova/theatre.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_time('player/drawer/nova/bootload.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_time('player/drawer/nova/streams.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_time('player/drawer/nova/core.mjs', 'player/canned/nova/core.mjs', [update(true)]),
copy_text('player/drawer/dogelog.mjs', 'player/canned/dogelog.mjs'),
copy_time('player/drawer/dogelog.mjs', 'player/canned/dogelog.mjs').
% copy_doge_lib
copy_doge_lib :-
copy_pathdirs('transpiler/drawer/liblet/', 'player/canned/liblet/'),
clean_pathdirs('transpiler/drawer/liblet/', 'player/canned/liblet/', '.p').
/****************************************************************/
/* Initialization */
/****************************************************************/
:- initialization(run).