You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by dkochmanski <gi...@git.apache.org> on 2017/11/08 14:56:50 UTC

[GitHub] thrift pull request #1412: [THRIFT-82] Add Common Lisp support

GitHub user dkochmanski opened a pull request:

    https://github.com/apache/thrift/pull/1412

    [THRIFT-82] Add Common Lisp support

    There's framed and buffered socket transport, binary protocol, multiplex, simple
    server, cross-tests, self-tests, tutorial, CL library, CL code generator. Only
    SBCL is supported for now.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/TurtleWarePL/thrift develop

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/1412.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1412
    
----
commit c5f8973b32bcf251fa2cc9a83fedd01000148ef8
Author: Tomek Kurcz <to...@gmail.com>
Date:   2017-09-19T07:16:43Z

    [THRIFT-82] Add Common Lisp support
    
    There's framed and buffered socket transport, binary protocol, multiplex, simple
    server, cross-tests, self-tests, tutorial, CL library, CL code generator. Only
    SBCL is supported for now.

----


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Good news, I have consent from @pc to change the header of the generator to match contributor guidelines. So next steps are:
    
    - merge changes to de.setf.thrift repository (so missing protocols are implemented)
    - publish de.setf.thrift on Quicklisp
    - adjust this pull request for Common Lisp inclusion
    
    should I close this pull request for now, or leave it as is until then?


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    I won't lie, this feels good! Thanks a lot for the extensive support.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    * Fixed an issue with UTF-8 encoded `.lisp` files in docker
    * Updated `LANGUAGES.md`
    * Tested with SBCL 1.3.14 thoroughly - it should work. SBCL 1.3.1 probably still won't, though.
    * Added tests that fail against CL to known tests
    * Squashed and rebased


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    any update on this? I'm fine with both options (given all parties agree on them) and have time to work on code forward.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    @jfarrell was going to take action either on contacting individuals or making decisions on this, so I'm waiting to see what the result of those efforts is.  I would much prefer the cl code for thrift be in the thrift project itself and not hosted somewhere else.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    @jeking3 I'm really sorry, I only noticed there were suggested changes attached to your comment after I did a force push. I can't see them anymore. Do you remember if there was anything important there?
    
    I removed the CL Thrift library and made it so that it's downloaded during the building process. I think all the code that is left is either written by us (cross-tests, tutorial, build integration, etc.) or isn't an issue (code generator).
    
    Currently we download the library from our fork of Anderson's work by downloading (curl) the zip file from github and unzipping it. The long-term goal, though, is to merge our fork with upstream and get it added to quicklisp. After that we can just download the library in a similar way we download all the dependencies.
    
    I used that suggested bash snippet from the closed PR. It worked nicely.
    
    What do you think? Is this PR fine in its current shape?


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by adxpx <gi...@git.apache.org>.
Github user adxpx commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Just confirming that I'm đź‘Ť here and excited to see this make progress. Thanks!


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Currently "make cross" builds on Xenial and it will probably stay that way for a while.
    
    It would be acceptable to use a different version, either from an ubuntu PPA or just downloading and building it as part of the docker image setup.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Let me know what the commands are to add lisp to an Ubuntu Xenial system.  We need to update the Dockerfile to include Common Lisp so that it actually runs in the build system.  This has to happen before we commit.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Basically SBCL 1.3.14 (artful) works fine locally on Docker (and 1.3.1 had a bug with base strings according to SBCL devs - xenial). So the problem is probably something on environment hosting docker. I've noticed that some languages doesn't have docker tests enabled at all, if this problem persists is it acceptable to skip it for CL too?
    
    @jeking3 can you try running tests on Docker on your host locally to confirm that? What steps do you suggest in order to move forward?


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    @dkochmanski I confirmed I get the issue locally on SBCL 1.3.1, but 1.3.14 works fine.
    
    @jeking3 I don't think we can fix the issue with SBCL 1.3.1 (easily), as it seems like either Quicklisp or one of the library it pulls causes that, not the code we maintain. Would it be fine to just use Artful? Or do you need it to build on Xenial specifically for Travis integration?


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Thanks, I am working on running this in my local docker container and checking the "make cross" results.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    and one more change: ensure-externals uses `[[` syntax, so it must be run with bash (not sh) – modified makefile and script to take this requirement into account.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Rebased.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    I have sent an email to the two participants for which permission is needed to move copyright statements in order to comply with the Apache licensing requirements.  I asked them to each post either acceptance or rejection here for the record.
    
    Once we have their answers we can proceed to whatever the next step will be.  Without permission the bulk of the code may have to live in some other repository, untouched, and downloaded as part of the build process.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Rebased.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Okay if we need to then let's have the docker build pull down the latest SBCL, build and install it into /usr/local?


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    It seems that SBCL has some problems when ran in docker (investigating that – sadly I can't reproduce this problem on my local machine). I'll install SBCL 1.3.1 on my machine to make 100% sure it is docker-specific. I'll let you know when I know more (and/or resolve the issue).


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    * Rebased and resolved merge conflicts
    * Fixed some minor issues with `make clean` and dependencies
    * Added (newly) failing tests to `known_failures_Linux.json`


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Best I can tell there seems to be some sort of timing or logic error.  Builds will randomly fail after writing a fasl, apparently renaming it, then being unable to find it.  This is the "ubsan" build job which runs "make precross":
    
    https://api.travis-ci.org/v3/job/347498508/log.txt
    
    ```
    ; compiling (DEF-STRUCT "structb" ...)
    ; compiling (DEF-SERVICE "ThriftTest" ...)
    ; compiling (DEF-SERVICE "SecondService" ...)
    ; /root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl written
    ; compilation finished in 0:00:06.905
    ```
    
    then immediately after:
    ```
    Unhandled SB-INT:SIMPLE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                                    {1001E066F3}>:
      Failed to find the TRUENAME of /root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl:
        No such file or directory
    
    Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001E066F3}>
    0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-INT:SIMPLE-FILE-ERROR "~@<~?: ~2I~_~A~:>" {1002AFF8E3}> #<unavailable argument>)
    1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<SB-INT:SIMPLE-FILE-ERROR "~@<~?: ~2I~_~A~:>" {1002AFF8E3}>)
    2: (INVOKE-DEBUGGER #<SB-INT:SIMPLE-FILE-ERROR "~@<~?: ~2I~_~A~:>" {1002AFF8E3}>)
    3: (ERROR SB-INT:SIMPLE-FILE-ERROR :PATHNAME #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl" :FORMAT-CONTROL "~@<~?: ~2I~_~A~:>" :FORMAT-ARGUMENTS ("Failed to find the TRUENAME of ~A" (#P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl") "No such file or directory"))
    4: ((LABELS SB-IMPL::RESOLVE-PROBLEMATIC-SYMLINK :IN SB-IMPL::QUERY-FILE-SYSTEM) NIL)
    5: (SB-IMPL::QUERY-FILE-SYSTEM #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl" :TRUENAME T)
    6: (TRUENAME #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl")
    7: (RENAME-FILE #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types-TMP.fasl" #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types.fasl")
    8: (UIOP/LISP-BUILD:COMPILE-FILE* #P"/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types.lisp" :OUTPUT-FILE #P"/root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/test/cl/gen-cl/ThriftTest/ThriftTest-types.fasl" :EXTERNAL-FORMAT :UTF-8 :WARNINGS-FILE NIL)
    9: (ASDF/LISP-ACTION:PERFORM-LISP-COMPILATION #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "thrift-gen-thrifttest" "ThriftTest-types">)
    10: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unavailable argument> #<unavailable argument> #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "thrift-gen-thrifttest" "ThriftTest-types">)
    11: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "thrift-gen-thrifttest" "ThriftTest-types">) [fast-method]
    12: ((:METHOD ASDF/PLAN:PERFORM-PLAN (LIST)) ((#1=#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/SYSTEM:SYSTEM "puri">) (#1# . #<ASDF/SYSTEM:SYSTEM "split-sequence">) (#1# . #<ASDF/SYSTEM:SYSTEM "closer-mop">) (#1# . #<ASDF/SYSTEM:SYSTEM "trivial-utf-8">) (#1# . #<ASDF/SYSTEM:SYSTEM "ieee-floats">) (#1# . #<ASDF/SYSTEM:SYSTEM "trivial-gray-streams">) (#1# . #<ASDF/SYSTEM:SYSTEM "alexandria">) (#1# . #<ASDF/SYSTEM:SYSTEM "thrift">) (#2=#<ASDF/LISP-ACTION:PREPARE-OP > . #<ASDF/SYSTEM:SYSTEM #3="thrift-gen-thrifttest">) (#2# . #4=#<ASDF/LISP-ACTION:CL-SOURCE-FILE #3# "ThriftTest-types">) (#1# . #4#) (#<ASDF/LISP-ACTION:LOAD-OP > . #4#) ...) :FORCE NIL) [fast-method]
    13: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
    14: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) ((#1=#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/SYSTEM:SYSTEM "puri">) (#1# . #<ASDF/SYSTEM:SYSTEM "split-sequence">) (#1# . #<ASDF/SYSTEM:SYSTEM "closer-mop">) (#1# . #<ASDF/SYSTEM:SYSTEM "trivial-utf-8">) (#1# . #<ASDF/SYSTEM:SYSTEM "ieee-floats">) (#1# . #<ASDF/SYSTEM:SYSTEM "trivial-gray-streams">) (#1# . #<ASDF/SYSTEM:SYSTEM "alexandria">) (#1# . #<ASDF/SYSTEM:SYSTEM "thrift">) (#2=#<ASDF/LISP-ACTION:PREPARE-OP > . #<ASDF/SYSTEM:SYSTEM #3="thrift-gen-thrifttest">) (#2# . #4=#<ASDF/LISP-ACTION:CL-SOURCE-FILE #3# "ThriftTest-types">) (#1# . #4#) (#<ASDF/LISP-ACTION:LOAD-OP > . #4#) ...)) [fast-method]
    15: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
    16: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1001E5AF13}>) [fast-method]
    17: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-gen-thrifttest">) [fast-method]
    18: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-gen-thrifttest">)
    19: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
    20: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "thrift-gen-thrifttest">) [fast-method]
    21: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP :THRIFT-GEN-THRIFTTEST)
    22: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
    23: (ASDF/CACHE:CALL-WITH-ASDF-CACHE #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {1001E5664B}> :OVERRIDE NIL :KEY NIL)
    24: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP :THRIFT-GEN-THRIFTTEST) [fast-method]
    25: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP :THRIFT-GEN-THRIFTTEST) [fast-method]
    26: (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST)
    27: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) #<NULL-LEXENV>)
    28: (EVAL-TLF (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) 6 NIL)
    29: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) 6)
    30: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (ASDF/OPERATE:LOAD-SYSTEM :THRIFT-GEN-THRIFTTEST) :CURRENT-INDEX 6)
    31: (SB-C::%DO-FORMS-FROM-INFO #<CLOSURE (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {1001E1A35B}> #<SB-C::SOURCE-INFO {1001E1A313}> SB-C::INPUT-ERROR-IN-LOAD)
    32: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file /thrift/src/test/cl/make-test-client.lisp" {1001E0EBE3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
    33: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file /thrift/src/test/cl/make-test-client.lisp" {1001E0EBE3}> NIL)
    34: (LOAD #<SB-SYS:FD-STREAM for "file /thrift/src/test/cl/make-test-client.lisp" {1001E0EBE3}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
    35: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file /thrift/src/test/cl/make-test-client.lisp" {1001E0EBE3}>)
    36: ((FLET #:WITHOUT-INTERRUPTS-BODY-146 :IN SB-IMPL::PROCESS-SCRIPT))
    37: (SB-IMPL::PROCESS-SCRIPT "make-test-client.lisp")
    38: (SB-IMPL::TOPLEVEL-INIT)
    39: ((FLET #:WITHOUT-INTERRUPTS-BODY-77 :IN SAVE-LISP-AND-DIE))
    40: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE))
    
    unhandled condition in --disable-debugger mode, quitting
    ; 
    ; compilation unit aborted
    ;   caught 2 fatal ERROR conditions
    Makefile:635: recipe for target 'TestClient' failed
    make[2]: *** [TestClient] Error 1
    make[2]: Leaving directory '/thrift/src/test/cl'
    ```
    
    Is it possible that the RENAME implementation in sbcl is buggy when the source and destination are the same, and perhaps it exhibits some undefined behavior?  Just a wild guess...


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    I ran the cross test in ubuntu-artful using your PR and only ttwo unexpected failures occurred:
    ```
    ===============================================================================
    *** Following 2 failures were unexpected ***:
    If it is introduced by you, please fix it before submitting the code.
    ===============================================================================
    server-client:          protocol:         transport:               result:
    d-cl                    binary            buffered-ip              failure(1)
    d-cl                    binary            framed-ip                failure(1)
    ```
    
    I think we're good to go.  I will change the cross test to use the artful image (and disable those two tests explicitly for now), now that artful has haxe enabled again, it has as many languages as the xenial image does.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    My take on the Apache licensing rules is that we cannot accept this if it has other copyrights in it:
    ```
    If the source file is submitted with a copyright notice included in it, the copyright owner (or owner's agent) must either:
    * remove such notices, or
    * move them to the NOTICE file associated with each applicable project release, or
    * provide written permission for the ASF to make such removal or relocation of the notices.
    ```
    If Mr. Anderson would provide the ASF with written permission to move the copyright statements into a NOTICE.md file within lib/cl that would be sufficient for inclusion in the project.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Could it be that `docker` sets a "fresh" environment for each command? SBCL keeps its cache files in ~/.cache/common-lisp and it looks like docker either runs commands as different users or that it wipes / fakes the home directory as a fresh one.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    @jeking3 Thanks for the pointers. I've added requested info and updated Dockerfiles. Also rebased against master.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    @jeking3 I managed to find other problems while trying to run this stuff on my local machine in the docker, regardless of SBCL version. I'm trying to look into that for now. I'll let you know if I have anything. There's probably no sense having you do what you described until then.
    
    Right now Xenial succeeds because apparently @dkochmanski removed SBCL from the dockerfile for it.
    
    Curiously, I don't locally have the problem you can see in the [failed Artful job](https://travis-ci.org/apache/thrift/jobs/328740544). Do you have any idea how to debug this? Looks like compiler first writes a file and then is unable to open it.
    
    ```
    ; /root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-types-TMP.fasl written
    ; compilation finished in 0:00:00.188
    Unhandled SB-INT:SIMPLE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                                    {1001E06733}>:
      Failed to find the TRUENAME of /root/.cache/common-lisp/sbcl-1.3.14.debian-linux-x64/thrift/src/tutorial/cl/gen-cl/shared/shared-types-TMP.fasl:
        No such file or directory
    ```


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    @dkochmanski still waiting for @jfarrell to chime in since he was going to take some actions.  I provided him with an email that could be used to contact the author(s) involved, but I haven't heard anything since that.  My preference would be to get permission to build the cl implementation for thrift into the thrift project rather than have it sitting external.
    
    If the cl part of the project is going to sit external then we'll likely need to consider it a "contrib/" type of submission where it is maintained external to the project.  That doesn't sound like a good long term solution for adding a language to the collection.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    I updated the ubuntu-artful image to SBCL 1.4.4 and it seems to be stable.  Merging.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    I will take another look.  Can you squash this into a single commit to prepare it for inclusion if it looks good?


---

[GitHub] thrift pull request #1412: [THRIFT-82] Add Common Lisp support

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/thrift/pull/1412


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    @dkochmanski 
    
    Need the following things to happen:
    
    1. resolve the merge conflict
    2. install sbcl in the ubuntu-xenial and ubuntu-artful Dockerfiles
    3. update LANGUAGES.md
    4. update build/docker/README.md with the versions that are in the distributions.  Xenial uses SBCL 1.3.1 and Artful has 1.3.14
    5. we need to see a clean build so I would recommend rebasing on the current master before you push
    
    Once lisp is part of the docker images then "make check" and "make cross" will exercise it with every build.
    
    Thanks,
    
    Jim


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    After email exchange with Mr. Anderson I've came to conclusion that we should first put thrift CL library in Quicklisp (we already download dependencies from there) and pull the library from there. In this scenario lib/cl will have only Makefile and some tests. That way there is no problem with copyrights. As of tutorial part and cross tests, they are written by us, so there shouldn't be any issue with that.
    
    Tutorial code is written by us, same goes for cross tests. My only concern is about t_cl_generator.cc file from compiler/ module, which has yet another copyright owner, original PR THRIFT-82 issuer (https://issues.apache.org/jira/browse/THRIFT-82) Mr. Patrick Collison: https://issues.apache.org/jira/secure/attachment/12386027/thrift-cl.patch . Should I write to him? His GH handle is @pc, but he doesn't seem to be very active here lately.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    @dkochmanski I think it might be, sadly, compiler specific. I don't know about you, but I only ever ran this on a newer version of SBCL. But the warnings SBCL gives in Docker can probably be ignored.
    
    While I think there was some kind of file transport (or UDS?), I never tested it. I wouldn't put it down unless we know it works. We don't have the compact protocol. We have simple server, not non-blocking.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    squashed and rebased on top of the thrift master head.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by dkochmanski <gi...@git.apache.org>.
Github user dkochmanski commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    The bottom line is this: under the law of where mr. Anderson lives he can't yield the IP rights nor he sees a reason to do so, so we can't remove the copyrights put by him there. Code is licensed under the same license as the Thrift code though.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by uint <gi...@git.apache.org>.
Github user uint commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Of course. Squashed.


---

[GitHub] thrift issue #1412: [THRIFT-82] Add Common Lisp support

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/1412
  
    Sorry I have been working on some other things - I will try to get back around to this as soon as I can.  It's important to the project to have as many languages supported as possible.


---