독자 조건문

4588 단어 leiningen

묘사

http://dev.clojure.org/display/design/Reader+ 조건문에는 Clojure에서 변경될 사항에 대한 정보가 포함됩니다(대략1.7).현재 유일하게 중요한 것은 읽기/컴파일 .cljc 파일을 지원하는 것 같다.
기능 집합을 사용하거나 사용하지 않으려면 사용자가 업데이트:jvm-opts만 하면 되기 때문에 아무런 문제가 발생하지 않습니다.그러나 이 옵션들을 합병하는 것은 매우 번거롭다(878이 문제를 해결할 수 있을 것이다).

토론 #1

이제 라이언은 완전히 무시했어.cljc 파일 (예: lein test 은 그것들을 가져올 수 없습니다. Bulitude가 그것들을 식별할 수 없기 때문입니다.Raynes/bulitude #27에 일부 지원을 추가했지만, leiningen 쌍 bultitude.core/path-for 의 사용은 가능한 파일 이름으로 1대 1의 이름 공간이 깨졌기 때문에 수정/삭제해야 합니다.

토론 #2

Clojure 1.7이 곧 발표됨에 따라 이 문제는 우선순위가 될 것이다.독자 조건 지원은 전체 창고 clj/cljs 개발자에게 커다란 복음이므로 리닌이 1.7이 발표되기 전에 준비될 것을 가장 잘 알고 있습니다.

토론 #셋

누군가가 문제를 해결하는 것을 선택할 때 문제가 우선적으로 고려된다.어떤 일이 발생하도록 확보하는 가장 좋은 방법은 그것을 발생시키는 것이다.

토론 #4

https://github.com/technomancy/leiningen/pull/1911
그리고https://github.com/Raynes/bultitude/pull/28

토론 #5

좋아!clojurescript 사용자에게 사용해서 피드백을 남길 수 있습니까?

토론 #6

@technomancy: cljc를 지원하기 위해 아직 업데이트하지 않은 함수가 있습니다. 업데이트가 필요할 수도 있지만, 그 용도를 이해하지 못합니다.나는 네가 source-in-project?src/leiningen/compile.clj#L68무엇을 할 계획인지 설명해 줄 수 있기를 바란다.
그것의 유일한 용도는 다음 함수 class-in-project? 에서 클래스 파일의 부모에서 호출하는 것이다.함수 자체가 상위 레벨".clj"에 추가되고 소스 디렉토리에서 결과를 찾습니다.
=> (class-in-project? project /path/to/target/classes/pkg/file.class)
=> (source-in-project? /path/to/target/classes/pkg compile-path source-path)
=> (.exists? /path/to/src/pkg.clj)
clojure 컴파일 모드가 컴파일 이름 공간으로 명명된 하위 디렉터리에 클래스 파일을 만들 수 있습니까?

토론 #7

https://github.com/technomancy/leiningen/pull/1911이제 테스트해도 돼요.이것은 어느 정도에 Clojurescript 사용자와만 관련이 있고 이전에 CLJX를 사용하여 Clojurescript와 Clojure 사이에서 코드를 공유한 사용자와 가장 관련이 있다. 특히 그들이 공유 테스트를 하거나 AOT 지원이 필요한 경우이다.

토론 #8

there is one function that I have not updated to support cljc that probably needs to be updated, but I don't understand its purpose. I was hoping you could explain what source-in-project?


그것의 존재는 지원을 위한 것이다: 깨끗한 비항목류
Clojure 컴파일러에서 해결할 수 없는 문제 해결 방법
클래스를 컴파일하는 데 필요한 모든 명칭 공간이 없는 상황에서 클래스를 컴파일합니다.
그래서 우리는 target path에서 주어진 클래스가
프로젝트의 원본 파일 또는 원본 파일에서 왔는지 여부
그것의 의존성.고맙습니다.나는 비항목 클래스 파일을 정리하는 원인을 이해하지만

토론 #9

의 세 번째 조항이 항목 클래스의 명칭 공간을 어떻게 정확하게 표시하는지 이해하지 못한다.파일class-in-project?을 감안하면 세 번째 자구가 해석을 시도할 것 같습니다target/classes/foo/bar/baz__init.class. 그리고 해석을 시도할 것 같습니다src/foo/bar.clj.모든 원인에서, 내가 그것을 만들 수 있는 것은 중요하지 않다. 왜냐하면 앞의 두 자구 중 하나가 정확한 프로젝트 원본 파일을 찾았기 때문이다.
내가 익숙하지 않은 사례src/foo/bar/baz.clj가 어디에서 생성될 것인가src/foo/bar.clj?만약 그렇지 않다면, 나는 세 번째 조항이 정확하지 않다고 생각한다.src/foo/bar/*.class 알겠습니다.미안하지만, 내가 너의 뜻을 오독했어.
나는 이 자구가gen류 성명을 지지하는 데 쓰인다고 믿는다
이것은 명칭 공간에 있지만

토론 #10

자구에 없습니다.물론
gen류는 어떤 종류의 이름을 받아들인다."낮음"필요 없음
gen 클래스가 호출된 이름 공간을 포함하기 때문에 이것은 더욱
전통이 모든 것보다 낫다.
어쨌든, 나는gen류 프로젝트의 안전망이라고 부른다
주어진 명칭 공간에 여러 종류를 생성해야 합니다.... 만 하면
생성된 클래스는 생성된 클래스의 네임스페이스 아래에 직접 있습니다.
우리는 그것을 삭제하지 않을 것이다.고맙습니다.나는 이 용례를 지원하기 위해 합병 요청을 업데이트했다.ns 이것은 2.5.2에서 제시한 것이다.나는 만약 우리가 이 효과가 없다는 소식을 너무 많이 듣지 못했다면, 이것은 닫힐 수 있을 것이라고 생각한다.

토론 #11

광범위한 테스트 세트를 포함하여 cljx에서 이식하는 데 사용되는 교차 코드를 검증했습니다.

토론 #12

어리석은 질문입니다. 그런데 제가 뭘 해야 cljc 파일을 식별할 수 있습니까?
나는 방금 cljx 파일 한 무더기를 cljc로 이름을 바꾸고, 그것들을 cljc/my 프로젝트/*cljc라는 디렉터리에 넣었다
프로젝트에서 cljx 플러그인 인용을 모두 삭제했습니다.clj 파일.
나는 최신lein 2.5.2를 내놓았다.lein 청소를 하고 lein 테스트를 했는데 컴파일러가 붕괴되어 제 첫 번째 cljc 파일을 찾을 수 없다고 불평했습니다.
자바.이오.FileNotFoundException: myproject/Mathematics\uuu init를 찾을 수 없습니다.수업 또는 나의 종목/수학.clj는 클래스 경로에 있습니다.컴파일: (core.clj:1:1)
또 제가 해야 할 일이 있나요?라이언이 cljcs를 찾고 있는데 특별한 점이 있나요?

토론 #13

@interstar는

토론 #14

토론 #15

폴더입니다.Clojure 1.7을 사용하고 계십니까?cljc 아, 네, 그렇습니다.(원본 경로에 cljc가 없습니다.)나는 cljx 플러그인을 사용하여 clj 파일을 src에 넣을 때 명확한 설명이 없을 것 같다.감사합니다.나는 이 문제를 끝낼 것을 건의한다.:source-paths? 어느 정도에 나 자신도 같은 결과로 그것을 테스트했기 때문에 나는 이것을 닫을 것이다.검증해 주셔서 감사합니다.

좋은 웹페이지 즐겨찾기