diff options
Diffstat (limited to 'stdlib/source/library')
-rw-r--r-- | stdlib/source/library/lux/tool/compiler/meta/cache/dependency/artifact.lux | 10 | ||||
-rw-r--r-- | stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux | 24 |
2 files changed, 23 insertions, 11 deletions
diff --git a/stdlib/source/library/lux/tool/compiler/meta/cache/dependency/artifact.lux b/stdlib/source/library/lux/tool/compiler/meta/cache/dependency/artifact.lux index d87c2ccd6..90bee909d 100644 --- a/stdlib/source/library/lux/tool/compiler/meta/cache/dependency/artifact.lux +++ b/stdlib/source/library/lux/tool/compiler/meta/cache/dependency/artifact.lux @@ -132,9 +132,13 @@ {synthesis.#Loop value} (case value {synthesis.#Scope value} - (|> value - (the synthesis.#iteration) - references) + (let [of_inits (|> value + (the synthesis.#inits) + (list#each references)) + of_iteration (|> value + (the synthesis.#iteration) + references)] + (list#conjoint (partial_list of_iteration of_inits))) {synthesis.#Again value} (|> value diff --git a/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux b/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux index 2de06bf46..ac4987646 100644 --- a/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux +++ b/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux @@ -136,12 +136,18 @@ (-> (Maybe unit.ID) java/util/jar/Manifest) (let [manifest (java/util/jar/Manifest::new) attrs (do_to (java/util/jar/Manifest::getMainAttributes manifest) - (java/util/jar/Attributes::put (java/util/jar/Attributes$Name::MANIFEST_VERSION) ..manifest_version))] + (java/util/jar/Attributes::put (java/util/jar/Attributes$Name::MANIFEST_VERSION) + (ffi.as_string ..manifest_version)))] (exec (case program {.#Some program} (do_to attrs - (java/util/jar/Attributes::put (java/util/jar/Attributes$Name::MAIN_CLASS) (|> program runtime.class_name name.internal name.external))) + (java/util/jar/Attributes::put (java/util/jar/Attributes$Name::MAIN_CLASS) + (|> program + runtime.class_name + name.internal + name.external + ffi.as_string))) {.#None} attrs) @@ -156,7 +162,8 @@ (text.replaced "." "/") (text.suffix (the context.#artifact_extension static)))] (do try.monad - [_ (java/util/jar/JarOutputStream::putNextEntry (java/util/jar/JarEntry::new class_path) sink)] + [_ (java/util/jar/JarOutputStream::putNextEntry (java/util/jar/JarEntry::new (ffi.as_string class_path)) + sink)] (in (do_to sink (java/util/zip/ZipOutputStream::write content (ffi.as_int +0) (ffi.as_int (.int (binary.size content)))) (java/io/Flushable::flush) @@ -205,7 +212,7 @@ (def: (read_jar_entry entry input) (-> java/util/jar/JarEntry java/util/jar/JarInputStream [Nat Binary]) - (case (java/util/zip/ZipEntry::getSize entry) + (case (ffi.of_long (java/util/zip/ZipEntry::getSize entry)) -1 (..read_jar_entry_with_unknown_size input) @@ -234,14 +241,15 @@ {try.#Success [entries duplicates sink]}) {.#Some entry} - (let [entry_path (java/util/zip/ZipEntry::getName entry) - entry_size (java/util/zip/ZipEntry::getSize entry)] - (if (not (or (java/util/zip/ZipEntry::isDirectory entry) + (let [entry_path (ffi.of_string (java/util/zip/ZipEntry::getName entry)) + entry_size (ffi.of_long (java/util/zip/ZipEntry::getSize entry))] + (if (not (or (ffi.of_boolean (java/util/zip/ZipEntry::isDirectory entry)) (or (text.starts_with? "META-INF/maven/" entry_path) (text.starts_with? "META-INF/leiningen/" entry_path)) (or (text.ends_with? ".SF" entry_path) (text.ends_with? ".DSA" entry_path)))) - (case (java/util/jar/JarOutputStream::putNextEntry (java/util/jar/JarEntry::new entry_path) sink) + (case (java/util/jar/JarOutputStream::putNextEntry (java/util/jar/JarEntry::new (ffi.as_string entry_path)) + sink) {try.#Failure error} (again entries (set.has entry_path duplicates) |