This commit is contained in:
Vitor Santos Costa 2018-01-29 15:24:32 +00:00
parent eb9cc69bfb
commit aaadd51309
11 changed files with 471 additions and 124 deletions

View File

@ -96,7 +96,7 @@ INLINE_ONLY inline EXTERN Int CharOfAtom(Atom at) {
int Yap_peekWideWithGetwc(int sno) {
StreamDesc *s;
s = GLOBAL_Stream + sno;
int ch = getwc(s->file);
int ch = fgetwc(s->file);
ungetwc(ch, s->file);
return ch;
}
@ -104,7 +104,7 @@ int Yap_peekWideWithGetwc(int sno) {
int Yap_peekWithGetc(int sno) {
StreamDesc *s;
s = GLOBAL_Stream + sno;
int ch = getc(s->file);
int ch = fgetc(s->file);
ungetc(ch, s->file);
return ch;
}
@ -167,6 +167,7 @@ int Yap_peekWide(int sno) {
Int line = s->linecount;
Int lpos = s->linepos;
int ch = s->stream_wgetc(sno);
fprintf(stderr, "%d=%c\n", fileno(s->file), ch);
if (ch == EOF) {
if (s->file)
clearerr(s->file);
@ -181,9 +182,13 @@ int Yap_peekWide(int sno) {
s->charcount = pos;
s->linecount = line;
s->linepos = lpos;
s->stream_wgetc = Yap_popChar;
s->stream_getc = NU;
s->stream_peek= NULL;
s->stream_wpeek= NULL;
s->stream_getc = Yap_popChar;
s->stream_wgetc = Yap_popChar;
Yap_SetCurInpPos(sno, pos);
// Yap_SetCurInpPos(sno, pos);
}
return ch;
}
@ -209,15 +214,17 @@ int Yap_peekChar(int sno) {
s->linecount = line;
s->linepos = lpos;
s->stream_getc = Yap_popChar;
s->stream_wgetc = Yap_popChar;
Yap_SetCurInpPos(sno, pos);
s->stream_wgetc = NU;
s->stream_peek= NULL;
s->stream_wpeek= NULL;
//Yap_SetCurInpPos(sno, pos);
}
return ch;
}
int Yap_peek(int sno) { return GLOBAL_Stream[sno].stream_wpeek(sno); }
static int dopeek_byte(int sno) { return GLOBAL_Stream[sno].stream_wpeek(sno); }
static int dopeek_byte(int sno) { return GLOBAL_Stream[sno].stream_peek(sno); }
bool store_code(int ch, Term t USES_REGS) {
Term t2 = Deref(t);
@ -255,10 +262,7 @@ static Int at_end_of_stream(USES_REGS1) { /* at_end_of_stream */
out = (Yap_peek(sno) < 0);
}
}
UNLOCK(GLOBAL_Stream[sno].streamlock);
return out;
}
UNLOCK(GLOBAL_Stream[sno].streaml
/** @pred at_end_of_stream is iso

View File

@ -350,6 +350,7 @@ void Yap_DefaultStreamOps(StreamDesc *st) {
st->stream_getc = Yap_popChar;
st->stream_wgetc = Yap_popChar;
}
/*
if (st->file) {
if (st->status & Readline_Stream_f) {
st->stream_peek = Yap_ReadlinePeekChar;
@ -361,7 +362,9 @@ void Yap_DefaultStreamOps(StreamDesc *st) {
} else if (st->status & Seekable_Stream_f) {
st->stream_peek = Yap_peekWithSeek;
st->stream_wpeek = Yap_peekWideWithSeek;
} else {
} else
*/
{
st->stream_peek = Yap_peekChar;
st->stream_wpeek = Yap_peekWide;
}

View File

@ -2,10 +2,6 @@
%% @brief support yap shell
%%
:- yap_flag(verbose, verbose).
:- use_module( library(python) ).
:- module(yapi, [
python_ouput/0,
show_answer/2,
@ -15,11 +11,20 @@
yapi_query/2
]).
:- yap_flag(verbose, verbose).
:- use_module( library(lists) ).
:- use_module( library(maplist) ).
:- use_module( library(rbtrees) ).
:- use_module( library(terms) ).
:- use_module( library(python) ).
:- reexport( library(python) ).
:- current_op(X,Y,':='), writeln(X:Y).
:- current_op(X,Y,'.'), writeln(X:Y).
:- stop_low_level_trace.
:- python_import(yap4py.yapi).

View File

@ -68,7 +68,7 @@ elif platform.system() == 'Darwin':
win_libs = []
local_libs = ['Py4YAP']
elif platform.system() == 'Linux':
my_extra_link_args = ['-L','..']
my_extra_link_args = ['-L','..','-Wl,-rpath','-Wl,${CMAKE_INSTALL_FULL_LIBDIR}']
win_libs = []
local_libs = ['Py4YAP']

View File

@ -1,54 +1,363 @@
set (PYTHON_SOURCES
yap_ipython/core/getipython.py
yap_ipython/core/__init__.py
yap_ipython/core/interactiveshell.py
# yap_ipython/core/modulefind.py
yap_ipython/core/oinspect.py
yap_ipython/core/release.py
yap_ipython/core/shellapp.py
yap_ipython/display.py
yap_ipython/__init__.py
yap_ipython/shellapp.py
yap_kernel_launcher.py
yap_kernel/__init__.py
yap_kernel/__main__.py
yap_kernel/_version.py
yap_kernel/codeutil.py
yap_kernel/connect.py
yap_kernel/datapub.py
yap_kernel/displayhook.py
yap_kernel/embed.py
yap_kernel/eventloops.py
yap_kernel/heartbeat.py
yap_kernel/interactiveshell.py
yap_kernel/iostream.py
yap_kernel/jsonutil.py
yap_kernel/kernelapp.py
yap_kernel/kernelbase.py
yap_kernel/kernelspec.py
yap_kernel/log.py
yap_kernel/parentpoller.py
yap_kernel/pickleutil.py
yap_kernel/serialize.py
yap_kernel/yapkernel.py
yap_kernel/zmqshell.py
yap_kernel/comm/__init__.py
yap_kernel/comm/comm.py
yap_kernel/comm/manager.py
yap_kernel/gui/__init__.py
yap_kernel/gui/gtk3embed.py
yap_kernel/gui/gtkembed.py
yap_kernel/inprocess/__init__.py
yap_kernel/inprocess/blocking.py
yap_kernel/inprocess/channels.py
yap_kernel/inprocess/client.py
yap_kernel/inprocess/ipkernel.py
yap_kernel/inprocess/manager.py
yap_kernel/inprocess/socket.py
yap_kernel/pylab/__init__.py
yap_kernel/pylab/backend_inline.py
yap_kernel/pylab/config.py
yap_kernel_launcher.py
docs/conf.py
yap_kernel/serialize.py
yap_kernel/_eventloop_macos.py
yap_kernel/jsonutil.py
yap_kernel/pickleutil.py
yap_kernel/pylab/backend_inline.py
yap_kernel/pylab/config.py
yap_kernel/pylab/__init__.py
yap_kernel/displayhook.py
yap_kernel/__main__.py
yap_kernel/gui/gtk3embed.py
yap_kernel/gui/gtkembed.py
yap_kernel/gui/__init__.py
yap_kernel/parentpoller.py
yap_kernel/_version.py
yap_kernel/eventloops.py
yap_kernel/connect.py
yap_kernel/comm/comm.py
yap_kernel/comm/__init__.py
yap_kernel/comm/manager.py
yap_kernel/kernelspec.py
yap_kernel/iostream.py
yap_kernel/zmqshell.py
yap_kernel/kernelbase.py
yap_kernel/heartbeat.py
yap_kernel/log.py
yap_kernel/datapub.py
yap_kernel/codeutil.py
yap_kernel/kernelapp.py
yap_kernel/embed.py
yap_kernel/tests/test_embed_kernel.py
yap_kernel/tests/test_kernelspec.py
yap_kernel/tests/_asyncio.py
yap_kernel/tests/test_serialize.py
yap_kernel/tests/test_pickleutil.py
yap_kernel/tests/test_eventloop.py
yap_kernel/tests/utils.py
yap_kernel/tests/test_kernel.py
yap_kernel/tests/test_io.py
yap_kernel/tests/test_jsonutil.py
yap_kernel/tests/test_connect.py
yap_kernel/tests/test_message_spec.py
yap_kernel/tests/__init__.py
yap_kernel/tests/test_start_kernel.py
yap_kernel/tests/test_zmq_shell.py
yap_kernel/__init__.py
yap_kernel/inprocess/blocking.py
yap_kernel/inprocess/socket.py
yap_kernel/inprocess/constants.py
yap_kernel/inprocess/channels.py
yap_kernel/inprocess/tests/test_kernelmanager.py
yap_kernel/inprocess/tests/test_kernel.py
yap_kernel/inprocess/tests/__init__.py
yap_kernel/inprocess/__init__.py
yap_kernel/inprocess/manager.py
yap_kernel/inprocess/client.py
yap_kernel/inprocess/ipkernel.py
yap_kernel/ipkernel.py
yap_ipython/display.py
yap_ipython/frontend.py
yap_ipython/parallel.py
yap_ipython/html.py
yap_ipython/__main__.py
yap_ipython/testing/iptest.py
yap_ipython/testing/skipdoctest.py
yap_ipython/testing/tools.py
yap_ipython/testing/iptestcontroller.py
yap_ipython/testing/__main__.py
yap_ipython/testing/decorators.py
yap_ipython/testing/ipunittest.py
yap_ipython/testing/tests/test_tools.py
yap_ipython/testing/tests/test_ipunittest.py
yap_ipython/testing/tests/test_decorators.py
yap_ipython/testing/tests/__init__.py
yap_ipython/testing/__init__.py
yap_ipython/testing/globalipapp.py
yap_ipython/testing/plugin/iptest.py
yap_ipython/testing/plugin/show_refs.py
yap_ipython/testing/plugin/simplevars.py
yap_ipython/testing/plugin/simple.py
yap_ipython/testing/plugin/ipdoctest.py
yap_ipython/testing/plugin/test_ipdoctest.py
yap_ipython/testing/plugin/setup.py
yap_ipython/testing/plugin/__init__.py
yap_ipython/testing/plugin/dtexample.py
yap_ipython/testing/plugin/test_refs.py
yap_ipython/terminal/ptutils.py
yap_ipython/terminal/shortcuts.py
yap_ipython/terminal/ipapp.py
yap_ipython/terminal/pt_inputhooks/wx.py
yap_ipython/terminal/pt_inputhooks/pyglet.py
yap_ipython/terminal/pt_inputhooks/osx.py
yap_ipython/terminal/pt_inputhooks/gtk.py
yap_ipython/terminal/pt_inputhooks/tk.py
yap_ipython/terminal/pt_inputhooks/glut.py
yap_ipython/terminal/pt_inputhooks/gtk3.py
yap_ipython/terminal/pt_inputhooks/__init__.py
yap_ipython/terminal/pt_inputhooks/qt.py
yap_ipython/terminal/console.py
yap_ipython/terminal/prompts.py
yap_ipython/terminal/ptshell.py
yap_ipython/terminal/embed.py
yap_ipython/terminal/tests/test_help.py
yap_ipython/terminal/tests/test_embed.py
yap_ipython/terminal/tests/test_interactivshell.py
yap_ipython/terminal/tests/__init__.py
yap_ipython/terminal/__init__.py
yap_ipython/terminal/interactiveshell.py
yap_ipython/terminal/debugger.py
yap_ipython/terminal/magics.py
yap_ipython/consoleapp.py
yap_ipython/core/display.py
yap_ipython/core/application.py
yap_ipython/core/builtin_trap.py
yap_ipython/core/formatters.py
yap_ipython/core/prefilter.py
yap_ipython/core/getipython.py
yap_ipython/core/usage.py
yap_ipython/core/oinspect.py
yap_ipython/core/displayhook.py
yap_ipython/core/hooks.py
yap_ipython/core/splitinput.py
yap_ipython/core/page.py
yap_ipython/core/history.py
yap_ipython/core/displaypub.py
yap_ipython/core/profiledir.py
yap_ipython/core/shellapp.py
yap_ipython/core/extensions.py
yap_ipython/core/compilerop.py
yap_ipython/core/events.py
yap_ipython/core/pylabtools.py
yap_ipython/core/completer.py
yap_ipython/core/prompts.py
yap_ipython/core/latex_symbols.py
yap_ipython/core/macro.py
yap_ipython/core/inputsplitter.py
yap_ipython/core/error.py
yap_ipython/core/profileapp.py
yap_ipython/core/magic_arguments.py
yap_ipython/core/logger.py
yap_ipython/core/inputtransformer.py
yap_ipython/core/payloadpage.py
yap_ipython/core/crashhandler.py
yap_ipython/core/magics/display.py
yap_ipython/core/magics/execution.py
yap_ipython/core/magics/namespace.py
yap_ipython/core/magics/basic.py
yap_ipython/core/magics/extension.py
yap_ipython/core/magics/history.py
yap_ipython/core/magics/pylab.py
yap_ipython/core/magics/config.py
yap_ipython/core/magics/osm.py
yap_ipython/core/magics/script.py
yap_ipython/core/magics/__init__.py
yap_ipython/core/magics/auto.py
yap_ipython/core/magics/logging.py
yap_ipython/core/magics/code.py
yap_ipython/core/ultratb.py
yap_ipython/core/tests/test_application.py
yap_ipython/core/tests/simpleerr.py
yap_ipython/core/tests/test_paths.py
yap_ipython/core/tests/bad_all.py
yap_ipython/core/tests/test_prefilter.py
yap_ipython/core/tests/test_logger.py
yap_ipython/core/tests/test_interactiveshell.py
yap_ipython/core/tests/test_events.py
yap_ipython/core/tests/test_display.py
yap_ipython/core/tests/test_autocall.py
yap_ipython/core/tests/test_formatters.py
yap_ipython/core/tests/test_alias.py
yap_ipython/core/tests/nonascii.py
yap_ipython/core/tests/test_displayhook.py
yap_ipython/core/tests/test_profile.py
yap_ipython/core/tests/test_imports.py
yap_ipython/core/tests/test_oinspect.py
yap_ipython/core/tests/test_inputtransformer.py
yap_ipython/core/tests/test_magic_arguments.py
yap_ipython/core/tests/test_debugger.py
yap_ipython/core/tests/test_hooks.py
yap_ipython/core/tests/test_run.py
yap_ipython/core/tests/test_pylabtools.py
yap_ipython/core/tests/print_argv.py
yap_ipython/core/tests/test_page.py
yap_ipython/core/tests/test_compilerop.py
yap_ipython/core/tests/test_prompts.py
yap_ipython/core/tests/test_magic_terminal.py
yap_ipython/core/tests/__init__.py
yap_ipython/core/tests/test_ultratb.py
yap_ipython/core/tests/test_magic.py
yap_ipython/core/tests/test_iplib.py
yap_ipython/core/tests/test_completer.py
yap_ipython/core/tests/test_shellapp.py
yap_ipython/core/tests/daft_extension/daft_extension.py
yap_ipython/core/tests/refbug.py
yap_ipython/core/tests/tclass.py
yap_ipython/core/tests/test_extension.py
yap_ipython/core/tests/test_splitinput.py
yap_ipython/core/tests/test_completerlib.py
yap_ipython/core/tests/nonascii2.py
yap_ipython/core/tests/test_inputsplitter.py
yap_ipython/core/tests/test_handlers.py
yap_ipython/core/tests/test_history.py
yap_ipython/core/__init__.py
yap_ipython/core/autocall.py
yap_ipython/core/alias.py
yap_ipython/core/completerlib.py
yap_ipython/core/magic.py
yap_ipython/core/interactiveshell.py
yap_ipython/core/excolors.py
yap_ipython/core/release.py
yap_ipython/core/display_trap.py
yap_ipython/core/debugger.py
yap_ipython/core/historyapp.py
yap_ipython/core/payload.py
yap_ipython/config.py
yap_ipython/utils/frame.py
yap_ipython/utils/ipstruct.py
yap_ipython/utils/module_paths.py
yap_ipython/utils/jsonutil.py
yap_ipython/utils/PyColorize.py
yap_ipython/utils/pickleutil.py
yap_ipython/utils/eventful.py
yap_ipython/utils/ulinecache.py
yap_ipython/utils/generics.py
yap_ipython/utils/version.py
yap_ipython/utils/tz.py
yap_ipython/utils/_process_cli.py
yap_ipython/utils/wildcard.py
yap_ipython/utils/dir2.py
yap_ipython/utils/strdispatch.py
yap_ipython/utils/sysinfo.py
yap_ipython/utils/io.py
yap_ipython/utils/decorators.py
yap_ipython/utils/contexts.py
yap_ipython/utils/data.py
yap_ipython/utils/terminal.py
yap_ipython/utils/syspathcontext.py
yap_ipython/utils/tokenize2.py
yap_ipython/utils/localinterfaces.py
yap_ipython/utils/_process_win32_controller.py
yap_ipython/utils/py3compat.py
yap_ipython/utils/sentinel.py
yap_ipython/utils/colorable.py
yap_ipython/utils/_sysinfo.py
yap_ipython/utils/importstring.py
yap_ipython/utils/tokenutil.py
yap_ipython/utils/traitlets.py
yap_ipython/utils/path.py
yap_ipython/utils/daemonize.py
yap_ipython/utils/log.py
yap_ipython/utils/openpy.py
yap_ipython/utils/tempdir.py
yap_ipython/utils/_process_common.py
yap_ipython/utils/tests/test_openpy.py
yap_ipython/utils/tests/test_path.py
yap_ipython/utils/tests/test_shimmodule.py
yap_ipython/utils/tests/test_sysinfo.py
yap_ipython/utils/tests/test_pycolorize.py
yap_ipython/utils/tests/test_wildcard.py
yap_ipython/utils/tests/test_imports.py
yap_ipython/utils/tests/test_importstring.py
yap_ipython/utils/tests/test_module_paths.py
yap_ipython/utils/tests/test_io.py
yap_ipython/utils/tests/test_text.py
yap_ipython/utils/tests/test_decorators.py
yap_ipython/utils/tests/test_tokenutil.py
yap_ipython/utils/tests/test_process.py
yap_ipython/utils/tests/test_dir2.py
yap_ipython/utils/tests/__init__.py
yap_ipython/utils/tests/test_capture.py
yap_ipython/utils/tests/test_tempdir.py
yap_ipython/utils/encoding.py
yap_ipython/utils/__init__.py
yap_ipython/utils/signatures.py
yap_ipython/utils/_process_win32.py
yap_ipython/utils/coloransi.py
yap_ipython/utils/_process_posix.py
yap_ipython/utils/shimmodule.py
yap_ipython/utils/timing.py
yap_ipython/utils/text.py
yap_ipython/utils/process.py
yap_ipython/utils/capture.py
yap_ipython/paths.py
yap_ipython/nbconvert.py
yap_ipython/external/mathjax.py
yap_ipython/external/qt_for_kernel.py
yap_ipython/external/decorators/_numpy_testing_noseclasses.py
yap_ipython/external/decorators/_decorators.py
yap_ipython/external/decorators/__init__.py
yap_ipython/external/__init__.py
yap_ipython/external/qt_loaders.py
yap_ipython/__init__.py
yap_ipython/sphinxext/ipython_console_highlighting.py
yap_ipython/sphinxext/ipython_directive.py
yap_ipython/sphinxext/custom_doctests.py
yap_ipython/sphinxext/__init__.py
yap_ipython/kernel/adapter.py
yap_ipython/kernel/channelsabc.py
yap_ipython/kernel/__main__.py
yap_ipython/kernel/launcher.py
yap_ipython/kernel/multikernelmanager.py
yap_ipython/kernel/restarter.py
yap_ipython/kernel/managerabc.py
yap_ipython/kernel/threaded.py
yap_ipython/kernel/clientabc.py
yap_ipython/kernel/connect.py
yap_ipython/kernel/kernelspecapp.py
yap_ipython/kernel/kernelspec.py
yap_ipython/kernel/channels.py
yap_ipython/kernel/__init__.py
yap_ipython/kernel/manager.py
yap_ipython/kernel/client.py
yap_ipython/nbformat.py
yap_ipython/extensions/cythonmagic.py
yap_ipython/extensions/storemagic.py
yap_ipython/extensions/tests/test_autoreload.py
yap_ipython/extensions/tests/test_storemagic.py
yap_ipython/extensions/tests/__init__.py
yap_ipython/extensions/__init__.py
yap_ipython/extensions/rmagic.py
yap_ipython/extensions/sympyprinting.py
yap_ipython/extensions/autoreload.py
yap_ipython/yapi.py
yap_ipython/qt.py
yap_ipython/lib/display.py
yap_ipython/lib/pretty.py
yap_ipython/lib/inputhookgtk.py
yap_ipython/lib/inputhookwx.py
yap_ipython/lib/lexers.py
yap_ipython/lib/demo.py
yap_ipython/lib/inputhookgtk3.py
yap_ipython/lib/kernel.py
yap_ipython/lib/inputhookpyglet.py
yap_ipython/lib/editorhooks.py
yap_ipython/lib/inputhook.py
yap_ipython/lib/backgroundjobs.py
yap_ipython/lib/latextools.py
yap_ipython/lib/deepreload.py
yap_ipython/lib/tests/test_editorhooks.py
yap_ipython/lib/tests/test_backgroundjobs.py
yap_ipython/lib/tests/test_display.py
yap_ipython/lib/tests/test_pretty.py
yap_ipython/lib/tests/test_imports.py
yap_ipython/lib/tests/test_clipboard.py
yap_ipython/lib/tests/test_lexers.py
yap_ipython/lib/tests/test_deepreload.py
yap_ipython/lib/tests/test_security.py
yap_ipython/lib/tests/__init__.py
yap_ipython/lib/tests/test_latextools.py
yap_ipython/lib/__init__.py
yap_ipython/lib/guisupport.py
yap_ipython/lib/security.py
yap_ipython/lib/inputhookglut.py
yap_ipython/lib/clipboard.py
yap_ipython/lib/inputhookqt4.py
__init__.py
)
set (EXTRAS
@ -60,15 +369,13 @@
)
set (RESOURCES
resources/custom.js
resources/prolog.js
#resources/logo-32x32.png
#resources/logo-64x64.png
#yap_kernel/resources/logo-32x32.png
#yap_kernel/resourcess/logo-64x64.png
)
set (RENAMED_RESOURCES
resources/logo-32x32.png
resources/logo-64x64.png
# resources/codemirror/mode/prolog/prolog.js
yap_kernel/resources/logo-32x32.png
yap_kernel/resources/logo-64x64.png
# yap_kernel/resources/codemirror/mode/prolog/prolog.js
)
set (PL_SOURCES
@ -79,29 +386,44 @@ set(FILES ${PYTHON_SOURCES} ${PL_SOURCES} ${EXTRAS} ${RESOURCES})
set(SETUP_PY ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${i}
COMMAND ${CMAKE_COMMAND} -E tar cvf ${CMAKE_CURRENT_BINARY_DIR}/yap.tgz ${FILESi}
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap.tgz
COMMAND ${CMAKE_COMMAND} -E tar cf ${CMAKE_CURRENT_BINARY_DIR}/yap.tgz ${FILES}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${FILES}
)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/logo-32x32.png
COMMAND ${CMAKE_COMMAND} -E tar xvf yap.tgz
COMMAND ${CMAKE_COMMAND} -E copy_if_changed ${CMAKE_SOURCE_DIR}/docs/icons/yap_32z32x32.png ${CMAKE_CURRENT_BINARY_DIR}/resources/logo-32x32.png
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/docs/icons/yap_32x32x32.png
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-32x32.png
COMMAND ${CMAKE_COMMAND} -E make_directory yap_kernel/resources
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/docs/icons/yap_32x32x32.png ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-32x32.png
DEPENDS ${CMAKE_SOURCE_DIR}/docs/icons/yap_32x32x32.png
)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/logo-64x64.png
COMMAND ${CMAKE_COMMAND} -E copy_if_changed ${CMAKE_SOURCE_DIR}/docs/icons/yap_64x64x32.png ${CMAKE_CURRENT_BINARY_DIR}/resources/logo-64x64.png
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-64x64.png
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/docs/icons/yap_64x64x32.png ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-64x64.png
DEPENDS ${CMAKE_SOURCE_DIR}/docs/icons/yap_64x64x32.png
)
add_custom_target(YAP_KERNEL
COMMAND ${CMAKE_COMMAND} -E tar xvf yap.tgz
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/kernel.js
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/kernel.js ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/kernel.js
)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/prolog.js
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/misc/editors/yap.js ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/prolog.js
DEPENDS ${CMAKE_SOURCE_DIR}/misc/editors/yap.js
)
add_custom_target(YAP_KERNEL ALL
COMMAND ${CMAKE_COMMAND} -E tar xzf yap.tgz
COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} build sdist bdist
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-32x32.png ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-64x64.png yap.tgz ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/kernel.js ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/prolog.js
)

View File

@ -37,12 +37,15 @@ from distutils.core import setup
pjoin = os.path.join
here = os.path.abspath(os.path.dirname(__file__))
packages = []
# pkg_root = pjoin(here, name)
packages = setuptools.find_packages(here)
# for d, _, _ in os.walk(pjoin(here, name)):
# if os.path.exists(pjoin(d, '__init__.py')):
# packages.append(d[len(here)+1:].replace(os.path.sep, '.'))
for d, _, _ in os.walk(pjoin(here, 'yap_kernel')):
if os.path.exists(pjoin(d, '__init__.py')):
packages.append(d[len(here)+1:].replace(os.path.sep, '.'))
for d, _, _ in os.walk(pjoin(here, 'yap_ipython')):
if os.path.exists(pjoin(d, '__init__.py')):
packages.append(d[len(here)+1:].replace(os.path.sep, '.'))
sys.path.insert(0, here)
package_data = {
@ -50,13 +53,14 @@ package_data = {
'yap_kernel': ['resources/*.*']
}
version_ns = {here, name, '_version.py')) as f:
version_ns = {}
with open(pjoin(here, name, '_version.py')) as f:
exec(f.read(), {}, version_ns)
setup_args = dict(
name = name,
version = version_ns['__version__'],
@ -64,10 +68,10 @@ setup_args = dict(
packages = packages,
py_modules = ['yap_kernel_launcher'],
package_data = package_data,
package_dir = {'':here},
#package_dir = {'':here},
description = "YAP Kernel for Jupyter",
author = 'YAP Development Team',
author_email = 'YAP-dev@scipy.org',
author_email = 'yap-dev@scipy.org',
url = 'http://ipython.org',
license = 'BSD',
platforms = "Linux, Mac OS X, Windows",
@ -95,7 +99,7 @@ if any(a.startswith(('bdist', 'build', 'install')) for a in sys.argv):
argv = make_yap_kernel_cmd(executable=sys.executable)
dest = os.path.join(here, 'resources')
dest = os.path.join(here, 'yap_kernel', 'resources')
try:
write_kernel_spec(dest, overrides={'argv': argv})
except:
@ -104,14 +108,14 @@ if any(a.startswith(('bdist', 'build', 'install')) for a in sys.argv):
#setup_args['data_files'] = [(pjoin('share', 'jupyter', 'kernels', KERNEL_NAME), glob(pjoin(dest, '*')))]
mode_loc = pjoin( sysconfig.get_path('platlib'), 'notebook', 'static', 'components', 'codemirror', 'mode', 'prolog')
custom_loc = pjoin( sysconfig.get_path('platlib'), 'notebook', 'static', 'custom')
try:
shutil.copy( pjoin( custom_loc, "custom.js") , pjoin( custom_loc, "custom.js.orig"))
shutil.copy( pjoin( "resources", "custom.js") , pjoin( custom_loc, "custom.js"))
if not os.path.exists(mode_loc):
os.makedirs(mode_loc)
shutil.copy( pjoin( "resources","prolog.js") , mode_loc)
except:
pass
# try:
# shutil.copy( pjoin( custom_loc, "custom.js") , pjoin( custom_loc, "custom.js.orig"))
# shutil.copy( pjoin( "resources", "custom.js") , pjoin( custom_loc, "custom.js"))
# if not os.path.exists(mode_loc):
# os.makedirs(mode_loc)
# shutil.copy( pjoin( "resources","prolog.js") , mode_loc)
# except:
# pass
extras_require = setuptools_args['extras_require'] = {
'test:python_version=="2.7"': ['mock'],

View File

@ -61,7 +61,7 @@ class YAPInputSplitter(InputSplitter):
def __init__(self, line_input_checker=True, physical_line_transforms=None,
logical_line_transforms=None):
self._buffer_raw = []
v self._validate = True
self._validate = True
self.yapeng = None
if physical_line_transforms is not None:
@ -551,7 +551,7 @@ class YAPRun:
# variable names should match strings
#for eq in vs:
# if not isinstance(eq[0],str):x
xf # print( "Error: Variable Name matches a Python Symbol")
# print( "Error: Variable Name matches a Python Symbol")
# return
# ask = True
# launch the query
@ -677,7 +677,7 @@ xf # print( "Error: Variable Name matches a Python Symbol")
# preprocessing_exc_tuple = sys.exc_info()
e for i in self.syntaxErrors(raw_cell):
for i in self.syntaxErrors(raw_cell):
try:
(what,lin,_,text) = i
e = SyntaxError(what, ("<string>", lin, 1, text))

View File

@ -165,8 +165,6 @@ print_message(L,E) :-
% This is the YAP init file
% should be consulted first step after booting
:- '$mk_dynamic'(term_expansion/2).
:- c_compile('top.yap').
% These are pseudo declarations
@ -214,14 +212,13 @@ print_message(L,E) :-
C == end_of_file
).
:- '$init_system'.
:- c_compile('arith.yap').
:- c_compile('builtins.yap').
%:- stop_low_level_trace.
:- '$all_current_modules'(M), yap_flag(M:unknown, error) ; true.
:- '$init_prolog'.
:- compile_expressions.
@ -239,8 +236,6 @@ print_message(L,E) :-
:- c_compile('os.yap').
:- c_compile('errors.yap').
:- '$init_prolog'.
initialize_prolog :-
'$init_prolog'.

View File

@ -156,8 +156,7 @@ considered.
'$exec_directive'(module(N,P,Op), Status, _, _, _) :-
'$module'(Status,N,P,Op).
'$exec_directive'(meta_predicate(P), _, M, _, _) :-
'$yap_strip_module'(M:P,M0,P0),
'$meta_predicate'(P0,M0).
'$meta_predicate'(P,M).
'$exec_directive'(module_transparent(P), _, M, _, _) :-
'$module_transparent'(P, M).
'$exec_directive'(noprofile(P), _, M, _, _) :-

View File

@ -61,17 +61,20 @@ meta_predicate declaration
'$meta_predicate'( P, M1 ).
'$meta_predicate'( D, M ) :-
functor(D,F,N),
( M = prolog -> M2 = _ ; M2 = M),
'$install_meta_predicate'(D,M2,F,N),
'$install_meta_predicate'(D,M,F,N),
fail.
'$meta_predicate'( _D, _M ).
'$install_meta_predicate'(P,M,_F,_N) :-
'$new_meta_pred'(P, M),
fail.
'$install_meta_predicate'(_P,M,F,N) :-
retractall(prolog:'$meta_predicate'(F,M,N,_)),
( M = prolog -> M2 = _ ; M2 = M),
retractall(prolog:'$meta_predicate'(F,M2,N,_)),
fail.
'$install_meta_predicate'(P,M,F,N) :-
'$new_meta_pred'(P, M),
assertz('$meta_predicate'(F,M,N,P)).
( M = prolog -> M2 = _ ; M2 = M),
assertz('$meta_predicate'(F,M2,N,P)).
% comma has its own problems.
@ -494,7 +497,14 @@ expand_goal(Input, Output) :-
'$expand_goals'(IG, _, GF0, M, SM, M, HVars-G),
'$yap_strip_module'(M:GF0, MF, GF).
:- '$install_meta_predicate'((0,0),_,(','),2).
:- '$install_meta_predicate'((0,0),prolog,(','),2).
:- '$install_meta_predicate'((0),prolog,(','),2).
meta_predicate(P) :-
source_module(SM),
'$meta_predicate'(P, SM).
:- meta_predicate
abolish(:),

View File

@ -194,7 +194,7 @@ X = 2 ? ;
ERROR!!
EXISTENCE ERROR- procedure c/1 is undefined, called from context prolog:$user_call/2
Goal was c:c(_131290)
vv~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The state of the module system after this error is undefined.
@ -452,10 +452,15 @@ export_resource(P0) :-
; recorda('$module','$module'(user_input,Mod,user_input,[P],1),_)
).
export_resource(op(Prio,Assoc,Name)) :- !,
op(Prio,Assoc,prolog:Name).
export_resource(op(Prio,Assoc,Name)) :- !,
op(Prio,Assoc,user:Name).
export_resource(Resource) :-
'$current_module'(Mod),
op(Prio,Assoc,Mod:Name),
( recorded('$module','$module'(File,Mod,SourceF,ExportedPreds,Line),R) ->
erase(R),
recorda('$module','$module'(File,Mod,SourceF,[op(Prio,Assoc,Name)|ExportedPreds],Line ),_)
; prolog_load_context(file, File) ->
recorda('$module','$module'(File,Mod,SourceF,[op(Prio,Assoc,Name)],Line),_)
; recorda('$module','$module'(user_input,Mod,user_input,[op(Prio,Assoc,Name)],1),_)
).export_resource(Resource) :-
'$do_error'(type_error(predicate_indicator,Resource),export(Resource)).
export_list(Module, List) :-