Hi Nik, Thanks for trying it out, and for reporting these issues. Enabling the mixed mode sets a custom *readtable* which means all input is caught and treated specially. This might very well clash with what Slime expects, I have not tested that. Of course it *should* work fine under Slime one day... Without testing it, I suppose (double 4) fails because the symbol DOUBLE is unaffected by the "def double ..". The lower-case symbol should work: (|double| 4). The docs are based on the behavior in Allegro in Modern mode. Perhaps the mixed-mode should have parameters to control case, so cross-referencing Python and Lisp objects by default does "the right thing". Thanks again for the reports, I'll work on them. - Willem On Sun, Apr 10, 2011 at 4:27 PM, Nitralime <nitralime at googlemail.com> wrote: > *Hi folks!* > > I have installed clpython recently and encountered some problems > while playing around with the provided interpreter modes. > > Here is a sample SLIME session > > -------------------------------------------------------------------------------- > ; SLIME 2011-01-28 > *CL-USER> (ql:quickload :clpython)* > To load "clpython": > Load 1 ASDF system: > clpython > ; Loading "clpython" > ......... > CLPython quick start guide: > Run a string of Python code: (CLPYTHON:RUN "for i in range(4): > print i") > Run a Python file: (CLPYTHON:RUN > #p"~/example/foo.py") > Start the Python "interpreter" (REPL): (CLPYTHON.APP.REPL:REPL) > To start mixed Python/Lisp input mode: > (CLPYTHON.PARSER:ENTER-MIXED-LISP-PYTHON-SYNTAX) > Run the test suite: (ASDF:OPERATE 'ASDF:TEST-OP > :CLPYTHON) > > (:CLPYTHON) > > *CL-USER> (CLPYTHON.PARSER:ENTER-MIXED-LISP-PYTHON-SYNTAX)* > ;; The mixed Lisp/Python syntax mode is now active: custom *readtable* is > set. > ;; Python variables will be interned in the #<PACKAGE "COMMON-LISP-USER">. > ;; To exit the mixed mode: (CLPYTHON.PARSER:EXIT-MIXED-LISP-PYTHON-SYNTAX) > ; No value > *CL-USER> (+ 2 3)* > > > -------------------------------------------------------------------------------- > > At this point the SLIME doesn't return back! > I tested it also using a python expression. The same behaviour! > C-c C-c drops the session into dubugger which in turn is not responsive! > To terminate it the whole process must be killed. > > Tab completion also leads to a hanging emacs! > > > ############################################################################### > > In a linux console it behaves differently but not exactly > as described in the documentation. Here is a sample session: > > > -------------------------------------------------------------------------------- > *$ rlwrap sbcl* > This is SBCL 1.0.47, an implementation of ANSI Common Lisp. > More information about SBCL is available at <http://www.sbcl.org/><http://www.sbcl.org/> > . > > SBCL is free software, provided as is, with absolutely no warranty. > It is mostly in the public domain; some portions are provided under > BSD-style licenses. See the CREDITS and COPYING files in the > distribution for more information. > ** (ql:quickload :clpython)* > To load "clpython": > Load 1 ASDF system: > clpython > ; Loading "clpython" > ......... > CLPython quick start guide: > Run a string of Python code: (CLPYTHON:RUN "for i in range(4): > print i") > Run a Python file: (CLPYTHON:RUN > #p"~/example/foo.py") > Start the Python "interpreter" (REPL): (CLPYTHON.APP.REPL:REPL) > To start mixed Python/Lisp input mode: > (CLPYTHON.PARSER:ENTER-MIXED-LISP-PYTHON-SYNTAX) > Run the test suite: (ASDF:OPERATE 'ASDF:TEST-OP > :CLPYTHON) > > (:CLPYTHON) > > ** (CLPYTHON.PARSER:ENTER-MIXED-LISP-PYTHON-SYNTAX)* > ;; The mixed Lisp/Python syntax mode is now active: custom *readtable* is > set. > ;; Python variables will be interned in the #<PACKAGE > "COMMON-LISP-USER">. > ;; To exit the mixed mode: > (CLPYTHON.PARSER:EXIT-MIXED-LISP-PYTHON-SYNTAX) > * (+ 2 3) > > 5 > ** def double (n):* > * return 2*n* > > #<CLOSURE (FLET CLPYTHON::|__main__.__main__/double|) {1002F8D129}> > ** double (4)* > > 8 > ** (double 4)* > > ; in: DOUBLE 4 > ; (DOUBLE 4) > ; > ; caught STYLE-WARNING: > ; undefined function: DOUBLE > ; > ; compilation unit finished > ; Undefined function: > ; DOUBLE > ; caught 1 STYLE-WARNING condition > > debugger invoked on a UNDEFINED-FUNCTION in thread #<THREAD > "initial thread" > RUNNING > {1002980D01}>: > The function SB-ALIEN:DOUBLE is undefined. > > Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. > > restarts (invokable by number or by possibly-abbreviated name): > 0: [ABORT] Exit debugger, returning to top level. > > (SB-KERNEL::UNDEFINED-FUN-ERROR-HANDLER > #<unavailable argument> > #.(SB-SYS:INT-SAP #X7FFFF69F7480) > #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7FFFF69F7000 :TYPE (* > (STRUCT > > SB-VM::OS-CONTEXT-T-STRUCT))> > (21)) > 0] 0 > > * > > -------------------------------------------------------------------------------- > > The evaluation of "(double 4)" fails. > > > ################################################################################ > > There is also a problem with python repl: > > ; SLIME 2011-01-28 > *CL-USER> (ql:quickload :clpython)* > To load "clpython": > Load 1 ASDF system: > clpython > ; Loading "clpython" > ......... > CLPython quick start guide: > Run a string of Python code: (CLPYTHON:RUN "for i in range(4): > print i") > Run a Python file: (CLPYTHON:RUN > #p"~/example/foo.py") > Start the Python "interpreter" (REPL): (CLPYTHON.APP.REPL:REPL) > To start mixed Python/Lisp input mode: > (CLPYTHON.PARSER:ENTER-MIXED-LISP-PYTHON-SYNTAX) > Run the test suite: (ASDF:OPERATE 'ASDF:TEST-OP > :CLPYTHON) > > > (:CLPYTHON) > *CL-USER> (push "/usr/lib/python2.7" *clpython-module-search-paths*)* > ("/usr/lib/python2.7") > > *CL-USER> (clpython:repl)* > Welcome to CLPython, an implementation of Python in Common Lisp. > Running on: SBCL 1.0.47 > REPL shortcuts: `:q' = quit, `:h' = help. > Using 1 default module search paths set in *CLPYTHON-MODULE-SEARCH-PATHS* > *>>> import os* > ;; Parsing #P"/usr/lib/python2.7/os.py" into > #P"/usr/lib/python2.7/os.py.lisp" > > ;; Error occured while reading input with the Python readtable: > ;; UnexpectedEofError: Unexpected end of file (line 752). > ;; Standard IO syntax (*readtable* etc) has been activated to enable > debugging. > > --- Debugger window ---------------------------------- > UnexpectedEofError: Unexpected end of file (line 752). > [Condition of type > CLPYTHON.USER.BUILTIN.TYPE.EXCEPTION:|UnexpectedEofError|] > > Restarts: > 0: [RETRY] Retry evaluating this top-level form in module `__main__' > 1: [ERROR] Skip this top-level form in module `__main__' > 2: [RETRY-REPL-EVAL] Retry the expression: "import os" > 3: [RETURN-PYTHON-TOPLEVEL] Return to Python top level > 4: [RETRY] Retry SLIME REPL evaluation request. > 5: [*ABORT] Return to SLIME's top level. > --more-- > > > Just for testing purpose I have commented the following code block in os.py > > > ----------------------------------------------- > *..... > 742 if not _exists("urandom"): > 743 def urandom(n): > 744 """urandom(n) -> str > 745 > 746 Return a string of n random bytes suitable for cryptographic > use. > 747 > 748 """ > 749 try: > 750 _urandomfd = open("/dev/urandom", O_RDONLY) > 751 except (OSError, IOError): > 752 raise NotImplementedError("/dev/urandom (or equivalent) not > found") > 753 try: > 754 bs = b"" > 755 while n > len(bs): > 756 bs += read(_urandomfd, n - len(bs)) > 757 finally: > 758 close(_urandomfd) > 759 return bs* > ------------------------------------------------- > > and tried the "import os" again and got the same error: > > --- Debugger window ---------------------------------- > UnexpectedEofError: Unexpected end of file. > [Condition of type > CLPYTHON.USER.BUILTIN.TYPE.EXCEPTION:|UnexpectedEofError|] > > Restarts: > 0: [RETRY] Retry evaluating this top-level form in module `__main__' > 1: [ERROR] Skip this top-level form in module `__main__' > 2: [RETRY-REPL-EVAL] Retry the expression: "import os" > 3: [RETURN-PYTHON-TOPLEVEL] Return to Python top level > 4: [RETRY] Retry SLIME REPL evaluation request. > 5: [*ABORT] Return to SLIME's top level. > --more-- > > > The situation under Clozure is even worse! The mixed interpreter doesn't > work > neither in SLIME nor directly in linux console.The python repl behaviour is > > similar to that of SBCL. > > I'm using Clozure 1.6-r14468M and SBCL 1.0.47 on Linux 64bit. > The installed version of clpython ist "clpython-20110219-git". > > Are these known issues or am I missing something here? > > Any feedback is very much appreciated! > > Regards > Nik > > > > > > > _______________________________________________ > clpython-devel mailing list > clpython-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/clpython-devel > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://mailman.common-lisp.net/pipermail/clpython-devel/attachments/20110415/8f588e53/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4