diff --git a/.bazelrc b/.bazelrc index 903068c069..c01eb7d539 100644 --- a/.bazelrc +++ b/.bazelrc @@ -37,14 +37,12 @@ build\ --incompatible_new_actions_api=false\ --incompatible_no_support_tools_in_action_inputs=false\ --incompatible_require_ctx_in_configure_features=false\ - --incompatible_depset_is_not_iterable=false\ --incompatible_depset_union=false test\ --incompatible_disable_deprecated_attr_params=false\ --incompatible_new_actions_api=false\ --incompatible_no_support_tools_in_action_inputs=false\ --incompatible_require_ctx_in_configure_features=false\ - --incompatible_depset_is_not_iterable=false\ --incompatible_depset_union=false # test environment does not propagate locales by default diff --git a/haskell/cabal.bzl b/haskell/cabal.bzl index 353ccf94fb..0b35130a4e 100644 --- a/haskell/cabal.bzl +++ b/haskell/cabal.bzl @@ -107,7 +107,7 @@ def _prepare_cabal_inputs(hs, cc, dep_info, cc_info, tool_inputs, tool_input_man package_databases = dep_info.package_databases extra_headers = cc_info.compilation_context.headers extra_include_dirs = cc_info.compilation_context.includes - extra_lib_dirs = [file.dirname for file in ghci_extra_libs] + extra_lib_dirs = [file.dirname for file in ghci_extra_libs.to_list()] args.add_all([name, setup, cabal.dirname, package_database.dirname]) args.add_all(package_databases, map_each = _dirname, format_each = "--package-db=%s") args.add_all(extra_include_dirs, format_each = "--extra-include-dirs=%s") diff --git a/haskell/cc.bzl b/haskell/cc.bzl index 99e70c65a5..e97e0c73c4 100644 --- a/haskell/cc.bzl +++ b/haskell/cc.bzl @@ -51,18 +51,18 @@ def cc_interop_info(ctx): for cc in ccs: cc_ctx = cc.compilation_context hdrs.append(cc_ctx.headers) - include_args.extend(["-I" + include for include in cc_ctx.includes]) + include_args.extend(["-I" + include for include in cc_ctx.includes.to_list()]) cpp_flags.extend( [ "-D" + define - for define in cc_ctx.defines + for define in cc_ctx.defines.to_list() ] + [ f - for include in cc_ctx.quote_includes + for include in cc_ctx.quote_includes.to_list() for f in ["-iquote", include] ] + [ f - for include in cc_ctx.system_includes + for include in cc_ctx.system_includes.to_list() for f in ["-isystem", include] ], ) diff --git a/haskell/private/actions/link.bzl b/haskell/private/actions/link.bzl index f9e4a47814..d580af8a0e 100644 --- a/haskell/private/actions/link.bzl +++ b/haskell/private/actions/link.bzl @@ -92,7 +92,7 @@ def _darwin_create_extra_linker_flags_file(hs, cc, objects_dir, executable, dyna done """.format( nm = cc.tools.nm, - solibs = " ".join(["\"" + l.path + "\"" for l in solibs]), + solibs = " ".join(["\"" + l.path + "\"" for l in solibs.to_list()]), out = linker_flags_file.path, ), ) diff --git a/haskell/private/actions/repl.bzl b/haskell/private/actions/repl.bzl index f524807125..ab7bf2f2bf 100644 --- a/haskell/private/actions/repl.bzl +++ b/haskell/private/actions/repl.bzl @@ -77,8 +77,9 @@ def build_haskell_repl( # NOTE: We can avoid constructing this in the future by instead generating # a dedicated package configuration file defining the required libraries. - library_path = [lib.dirname for lib in ghci_extra_libs] - libraries = [get_lib_name(lib) for lib in ghci_extra_libs] + ghci_extra_libs_list = ghci_extra_libs.to_list() + library_path = [lib.dirname for lib in ghci_extra_libs_list] + libraries = [get_lib_name(lib) for lib in ghci_extra_libs_list] repl_file = hs.actions.declare_file(target_unique_name(hs, "repl")) diff --git a/haskell/private/haskell_impl.bzl b/haskell/private/haskell_impl.bzl index b542913411..50460a7f0c 100644 --- a/haskell/private/haskell_impl.bzl +++ b/haskell/private/haskell_impl.bzl @@ -658,7 +658,7 @@ def haskell_toolchain_libraries_impl(ctx): ]) library_dict = {} - for package in ordered: + for package in ordered.to_list(): target = libraries[package] # Construct CcInfo @@ -669,7 +669,7 @@ def haskell_toolchain_libraries_impl(ctx): # don't import dynamic libraries in profiling mode. libs = { get_static_hs_lib_name(hs.toolchain.version, lib): {"static": lib} - for lib in target[HaskellImportHack].static_profiling_libraries + for lib in target[HaskellImportHack].static_profiling_libraries.to_list() } else: # Workaround for https://github.com/tweag/rules_haskell/issues/881 @@ -678,7 +678,7 @@ def haskell_toolchain_libraries_impl(ctx): # dynamic libHSrts and the static libCffi and libHSrts. libs = { get_dynamic_hs_lib_name(hs.toolchain.version, lib): {"dynamic": lib} - for lib in target[HaskellImportHack].dynamic_libraries + for lib in target[HaskellImportHack].dynamic_libraries.to_list() } for lib in target[HaskellImportHack].static_libraries.to_list(): name = get_static_hs_lib_name(with_profiling, lib) diff --git a/haskell/private/java.bzl b/haskell/private/java.bzl index 44c4e114d7..7515ecf96f 100644 --- a/haskell/private/java.bzl +++ b/haskell/private/java.bzl @@ -36,7 +36,7 @@ def java_interop_info(ctx): env_dict = dict() uniq_classpath = collections.uniq([ f.path - for f in inputs + for f in inputs.to_list() ]) if len(uniq_classpath) > 0: diff --git a/haskell/private/path_utils.bzl b/haskell/private/path_utils.bzl index 943f6804d9..1d2e951bed 100644 --- a/haskell/private/path_utils.bzl +++ b/haskell/private/path_utils.bzl @@ -118,7 +118,7 @@ def make_path(libs, prefix = None, sep = None): sep = sep if sep else ":" - for lib in libs: + for lib in libs.to_list(): lib_dir = paths.dirname(lib.path) if prefix: lib_dir = paths.join(prefix, lib_dir) @@ -291,7 +291,7 @@ def link_libraries(libs, args, prefix_optl = False): # https://github.com/tweag/rules_haskell/issues/873. cc_libs = depset(direct = [ lib - for lib in libs + for lib in libs.to_list() if not get_lib_name(lib).startswith("HS") ]) @@ -306,8 +306,9 @@ def link_libraries(libs, args, prefix_optl = False): args.add_all(cc_libs, map_each = get_lib_name, format_each = libfmt) args.add_all(cc_libs, map_each = get_dirname, format_each = dirfmt, uniquify = True) else: - args.extend([libfmt % get_lib_name(lib) for lib in cc_libs]) - args.extend(depset(direct = [dirfmt % lib.dirname for lib in cc_libs]).to_list()) + cc_libs_list = cc_libs.to_list() + args.extend([libfmt % get_lib_name(lib) for lib in cc_libs_list]) + args.extend([dirfmt % lib.dirname for lib in cc_libs_list]) # tests in /tests/unit_tests/BUILD def parent_dir_path(path): diff --git a/haskell/protobuf.bzl b/haskell/protobuf.bzl index eb6a35b20f..89e3a98102 100644 --- a/haskell/protobuf.bzl +++ b/haskell/protobuf.bzl @@ -90,7 +90,7 @@ def _haskell_proto_aspect_impl(target, ctx): transitive_proto_paths = target.proto.transitive_proto_path args.add_all([ - "-I{0}={1}".format(_proto_path(s, transitive_proto_paths), s.path) + "-I{0}={1}".format(_proto_path(s, transitive_proto_paths.to_list()), s.path) for s in target.proto.transitive_sources.to_list() ]) diff --git a/haskell/providers.bzl b/haskell/providers.bzl index f7d09f69ae..45bd4f6d1d 100644 --- a/haskell/providers.bzl +++ b/haskell/providers.bzl @@ -141,7 +141,7 @@ def _get_unique_lib_files(cc_info): # https://github.com/tweag/rules_haskell/issues/917 libs_by_filename = {} filenames = [] - for lib_to_link in libs_to_link: + for lib_to_link in libs_to_link.to_list(): if lib_to_link.dynamic_library: lib = lib_to_link.dynamic_library elif lib_to_link.interface_library: @@ -322,31 +322,32 @@ def create_link_config(hs, cc_info, binary, args, dynamic = None, pic = None): # https://github.com/tweag/rules_haskell/issues/873. cc_static_libs = depset(direct = [ lib - for lib in static_libs + for lib in static_libs.to_list() if not get_lib_name(lib).startswith("HS") ]) cc_dynamic_libs = depset(direct = [ lib - for lib in dynamic_libs + for lib in dynamic_libs.to_list() if not get_lib_name(lib).startswith("HS") ]) package_name = target_unique_name(hs, "link-config").replace("_", "-").replace("@", "-") conf_path = paths.join(package_name, package_name + ".conf") conf_file = hs.actions.declare_file(conf_path) + libs = (cc_static_libs + cc_dynamic_libs).to_list() write_package_conf(hs, conf_file, { "name": package_name, "extra-libraries": [ get_lib_name(lib) - for lib in cc_static_libs + cc_dynamic_libs + for lib in libs ], "library-dirs": depset(direct = [ rel_to_pkgroot(lib.dirname, conf_file.dirname) - for lib in cc_static_libs + cc_dynamic_libs + for lib in libs ]), "dynamic-library-dirs": depset(direct = [ rel_to_pkgroot(lib.dirname, conf_file.dirname) - for lib in cc_static_libs + cc_dynamic_libs + for lib in libs ]), # XXX: Set user_link_flags. "ld-options": depset(direct = [ @@ -356,7 +357,7 @@ def create_link_config(hs, cc_info, binary, args, dynamic = None, pic = None): keep_filename = False, prefix = "@loader_path" if hs.toolchain.is_darwin else "$ORIGIN", ) - for lib in dynamic_libs + for lib in dynamic_libs.to_list() ]), }) cache_file = ghc_pkg_recache(hs, conf_file) diff --git a/hazel/third_party/cabal2bazel/bzl/cabal_package.bzl b/hazel/third_party/cabal2bazel/bzl/cabal_package.bzl index 99958db57e..87472e34cb 100644 --- a/hazel/third_party/cabal2bazel/bzl/cabal_package.bzl +++ b/hazel/third_party/cabal2bazel/bzl/cabal_package.bzl @@ -365,7 +365,7 @@ def _get_build_attrs( paths_module = _paths_module(desc) extra_modules_dict = _conditions_dict(extra_modules) other_modules_dict = _conditions_dict(build_info.otherModules) - for condition in depset(extra_modules_dict.keys() + other_modules_dict.keys()): + for condition in extra_modules_dict.keys() + other_modules_dict.keys(): srcs[condition] = [] deps[condition] = [] cdeps[condition] = [] @@ -479,7 +479,7 @@ def _get_build_attrs( "-w", ]), defines = [o[2:] for o in build_info.ccOptions if o.startswith("-D")], - textual_hdrs = list(headers), + textual_hdrs = headers.to_list(), deps = ["@haskell_rts//:lib"] + select(cdeps) + cc_deps + elibs_targets, visibility = ["//visibility:public"], linkstatic = select({