mplang-nightly 0.1.dev254__tar.gz → 0.1.dev255__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/PKG-INFO +1 -1
  2. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/spu_impl.py +10 -79
  3. mplang_nightly-0.1.dev255/mplang/v2/backends/spu_state.py +124 -0
  4. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/.gitignore +0 -0
  5. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/LICENSE +0 -0
  6. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/README.md +0 -0
  7. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/conf/3pc.yaml +0 -0
  8. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/stax_nn/README.md +0 -0
  9. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/stax_nn/models.py +0 -0
  10. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/stax_nn/stax_nn.py +0 -0
  11. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/bench_fhe_hist.py +0 -0
  12. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/hist_jax.py +0 -0
  13. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/hist_jax_test.py +0 -0
  14. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/naive_np.py +0 -0
  15. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/readme.md +0 -0
  16. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/sgb.py +0 -0
  17. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/examples/v1/xgboost/sgb_test.py +0 -0
  18. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/hatch_build.py +0 -0
  19. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/__init__.py +0 -0
  20. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/__init__.py +0 -0
  21. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/_device.py +0 -0
  22. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/analysis/__init__.py +0 -0
  23. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/analysis/diagram.py +0 -0
  24. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/__init__.py +0 -0
  25. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/cluster.py +0 -0
  26. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/comm.py +0 -0
  27. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/context_mgr.py +0 -0
  28. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/dtypes.py +0 -0
  29. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/__init__.py +0 -0
  30. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/ast.py +0 -0
  31. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/evaluator.py +0 -0
  32. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/printer.py +0 -0
  33. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/transformer.py +0 -0
  34. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/utils.py +0 -0
  35. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/visitor.py +0 -0
  36. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/expr/walk.py +0 -0
  37. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/interp.py +0 -0
  38. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/mask.py +0 -0
  39. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/mpir.py +0 -0
  40. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/mpobject.py +0 -0
  41. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/mptype.py +0 -0
  42. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/pfunc.py +0 -0
  43. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/primitive.py +0 -0
  44. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/table.py +0 -0
  45. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/tensor.py +0 -0
  46. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/core/tracer.py +0 -0
  47. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/host.py +0 -0
  48. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/__init__.py +0 -0
  49. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/base.py +0 -0
  50. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/basic.py +0 -0
  51. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/context.py +0 -0
  52. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/crypto.py +0 -0
  53. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/fhe.py +0 -0
  54. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/mock_tee.py +0 -0
  55. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/phe.py +0 -0
  56. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/spu.py +0 -0
  57. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/sql_duckdb.py +0 -0
  58. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/stablehlo.py +0 -0
  59. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/kernels/value.py +0 -0
  60. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/__init__.py +0 -0
  61. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/base.py +0 -0
  62. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/basic.py +0 -0
  63. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/crypto.py +0 -0
  64. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/fhe.py +0 -0
  65. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/jax_cc.py +0 -0
  66. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/nnx_cc.py +0 -0
  67. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/phe.py +0 -0
  68. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/spu.py +0 -0
  69. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/sql_cc.py +0 -0
  70. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/ops/tee.py +0 -0
  71. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/mpir_pb2.py +0 -0
  72. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/mpir_pb2.pyi +0 -0
  73. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/value_pb2.py +0 -0
  74. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/protos/v1alpha1/value_pb2.pyi +0 -0
  75. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/__init__.py +0 -0
  76. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/cli.py +0 -0
  77. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/client.py +0 -0
  78. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/communicator.py +0 -0
  79. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/data_providers.py +0 -0
  80. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/driver.py +0 -0
  81. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/exceptions.py +0 -0
  82. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/http_api.md +0 -0
  83. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/link_comm.py +0 -0
  84. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/server.py +0 -0
  85. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/session.py +0 -0
  86. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/runtime/simulation.py +0 -0
  87. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/__init__.py +0 -0
  88. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/api.py +0 -0
  89. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/mpi.py +0 -0
  90. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/party.py +0 -0
  91. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/random.py +0 -0
  92. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/simp/smpc.py +0 -0
  93. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/__init__.py +0 -0
  94. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/crypto.py +0 -0
  95. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/func_utils.py +0 -0
  96. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/spu_utils.py +0 -0
  97. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v1/utils/table_utils.py +0 -0
  98. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/__init__.py +0 -0
  99. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/__init__.py +0 -0
  100. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/bfv_impl.py +0 -0
  101. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/crypto_impl.py +0 -0
  102. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/field_impl.py +0 -0
  103. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/func_impl.py +0 -0
  104. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/phe_impl.py +0 -0
  105. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_design.md +0 -0
  106. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/__init__.py +0 -0
  107. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/http.py +0 -0
  108. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/mem.py +0 -0
  109. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/ops.py +0 -0
  110. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/state.py +0 -0
  111. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_driver/values.py +0 -0
  112. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/__init__.py +0 -0
  113. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/http.py +0 -0
  114. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/mem.py +0 -0
  115. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/ops.py +0 -0
  116. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/simp_worker/state.py +0 -0
  117. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/store_impl.py +0 -0
  118. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/table_impl.py +0 -0
  119. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/tee_impl.py +0 -0
  120. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/backends/tensor_impl.py +0 -0
  121. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/cli.py +0 -0
  122. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/cli_guide.md +0 -0
  123. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/__init__.py +0 -0
  124. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/bfv.py +0 -0
  125. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/crypto.py +0 -0
  126. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/dtypes.py +0 -0
  127. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/field.py +0 -0
  128. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/func.py +0 -0
  129. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/phe.py +0 -0
  130. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/simp.py +0 -0
  131. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/spu.py +0 -0
  132. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/store.py +0 -0
  133. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/table.py +0 -0
  134. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/tee.py +0 -0
  135. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/dialects/tensor.py +0 -0
  136. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/README.md +0 -0
  137. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/__init__.py +0 -0
  138. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/context.py +0 -0
  139. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/graph.py +0 -0
  140. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/jit.py +0 -0
  141. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/object.py +0 -0
  142. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/primitive.py +0 -0
  143. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/printer.py +0 -0
  144. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/registry.py +0 -0
  145. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/serde.py +0 -0
  146. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/tracer.py +0 -0
  147. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/edsl/typing.py +0 -0
  148. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/Makefile +0 -0
  149. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/__init__.py +0 -0
  150. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/gf128.cpp +0 -0
  151. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/ldpc.cpp +0 -0
  152. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/okvs.cpp +0 -0
  153. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/okvs_opt.cpp +0 -0
  154. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/kernels/py_kernels.py +0 -0
  155. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/collective.py +0 -0
  156. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/device/__init__.py +0 -0
  157. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/device/api.py +0 -0
  158. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/device/cluster.py +0 -0
  159. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/ml/__init__.py +0 -0
  160. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/ml/sgb.py +0 -0
  161. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/__init__.py +0 -0
  162. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/_utils.py +0 -0
  163. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/__init__.py +0 -0
  164. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/aggregation.py +0 -0
  165. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/groupby.md +0 -0
  166. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/groupby.py +0 -0
  167. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/analytics/permutation.py +0 -0
  168. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/common/constants.py +0 -0
  169. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/ot/__init__.py +0 -0
  170. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/ot/base.py +0 -0
  171. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/ot/extension.py +0 -0
  172. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/ot/silent.py +0 -0
  173. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/__init__.py +0 -0
  174. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/cuckoo.py +0 -0
  175. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/okvs.py +0 -0
  176. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/okvs_gct.py +0 -0
  177. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/oprf.py +0 -0
  178. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/rr22.py +0 -0
  179. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/psi/unbalanced.py +0 -0
  180. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/vole/__init__.py +0 -0
  181. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/vole/gilboa.py +0 -0
  182. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/vole/ldpc.py +0 -0
  183. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/libs/mpc/vole/silver.py +0 -0
  184. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/__init__.py +0 -0
  185. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/dialect_state.py +0 -0
  186. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/interpreter.py +0 -0
  187. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/object_store.py +0 -0
  188. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/mplang/v2/runtime/value.py +0 -0
  189. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/pyproject.toml +0 -0
  190. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/__init__.py +0 -0
  191. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/conftest.py +0 -0
  192. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/__init__.py +0 -0
  193. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/analysis/test_diagram.py +0 -0
  194. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/conftest.py +0 -0
  195. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/__init__.py +0 -0
  196. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/__init__.py +0 -0
  197. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/conftest.py +0 -0
  198. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/test_ast.py +0 -0
  199. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/test_printer.py +0 -0
  200. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/test_utils.py +0 -0
  201. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/expr/test_walk.py +0 -0
  202. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_cluster.py +0 -0
  203. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_dtype.py +0 -0
  204. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_mask.py +0 -0
  205. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_mpir.py +0 -0
  206. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_mptype.py +0 -0
  207. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_primitive.py +0 -0
  208. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_table.py +0 -0
  209. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_tensor.py +0 -0
  210. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/core/test_tracer.py +0 -0
  211. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/device/__init__.py +0 -0
  212. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/device/test_device_basic.py +0 -0
  213. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/README.md +0 -0
  214. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_crypto_roundtrip.py +0 -0
  215. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_http_e2e.py +0 -0
  216. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_symbols_roundtrip.py +0 -0
  217. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_tee_workflow.py +0 -0
  218. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_tutorials.py +0 -0
  219. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/integration/test_unused_param_integration.py +0 -0
  220. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/__init__.py +0 -0
  221. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_basic.py +0 -0
  222. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_debug_print.py +0 -0
  223. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_fhe.py +0 -0
  224. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_kernel_binding.py +0 -0
  225. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_phe.py +0 -0
  226. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_spu.py +0 -0
  227. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_sql_duckdb.py +0 -0
  228. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_stablehlo.py +0 -0
  229. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_value.py +0 -0
  230. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/kernels/test_value_serde.py +0 -0
  231. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/__init__.py +0 -0
  232. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/dummy.py +0 -0
  233. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_basic_pack.py +0 -0
  234. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_crypto.py +0 -0
  235. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_feop_base.py +0 -0
  236. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_jax_cc.py +0 -0
  237. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_nnx_cc.py +0 -0
  238. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_phe.py +0 -0
  239. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_spu.py +0 -0
  240. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_spu_defensive.py +0 -0
  241. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_sql.py +0 -0
  242. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_sql_cc.py +0 -0
  243. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/ops/test_table_tensor_conversion.py +0 -0
  244. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/__init__.py +0 -0
  245. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_cli.py +0 -0
  246. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_communicator.py +0 -0
  247. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_driver.py +0 -0
  248. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_server.py +0 -0
  249. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/runtime/test_simulation.py +0 -0
  250. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/simp/test_mpi.py +0 -0
  251. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/simp/test_random.py +0 -0
  252. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/simp/test_smpc.py +0 -0
  253. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/simp/test_sugar.py +0 -0
  254. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/__init__.py +0 -0
  255. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/server_fixtures.py +0 -0
  256. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/test_func_utils.py +0 -0
  257. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/test_spu_utils.py +0 -0
  258. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v1/utils/test_table_utils.py +0 -0
  259. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/__init__.py +0 -0
  260. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/__init__.py +0 -0
  261. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_driver/__init__.py +0 -0
  262. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_driver/test_http.py +0 -0
  263. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_worker/__init__.py +0 -0
  264. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_worker/test_http.py +0 -0
  265. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/simp_worker/test_mem.py +0 -0
  266. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_bfv_impl.py +0 -0
  267. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_crypto_impl.py +0 -0
  268. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_okvs_binding.py +0 -0
  269. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_simp_integration.py +0 -0
  270. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_simp_object_store.py +0 -0
  271. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_spu_impl.py +0 -0
  272. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_table_impl.py +0 -0
  273. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_tee_impl.py +0 -0
  274. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_tensor_impl.py +0 -0
  275. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/backends/test_verify_clean.py +0 -0
  276. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/conftest.py +0 -0
  277. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/__init__.py +0 -0
  278. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_bfv.py +0 -0
  279. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_crypto.py +0 -0
  280. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_dtypes.py +0 -0
  281. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_field.py +0 -0
  282. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_func.py +0 -0
  283. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_okvs.py +0 -0
  284. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_okvs_bench.py +0 -0
  285. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_phe.py +0 -0
  286. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_simp.py +0 -0
  287. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_simp_comm.py +0 -0
  288. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_spu.py +0 -0
  289. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_table.py +0 -0
  290. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_tee.py +0 -0
  291. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/dialects/test_tensor.py +0 -0
  292. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/__init__.py +0 -0
  293. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_context.py +0 -0
  294. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_graph.py +0 -0
  295. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_primitive.py +0 -0
  296. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_primitive_multi_output.py +0 -0
  297. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_printer.py +0 -0
  298. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_serde.py +0 -0
  299. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_tracer.py +0 -0
  300. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_typing.py +0 -0
  301. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/edsl/test_typing_graph_serde.py +0 -0
  302. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/__init__.py +0 -0
  303. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/conftest.py +0 -0
  304. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/test_device_api_errors.py +0 -0
  305. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/test_device_dialects.py +0 -0
  306. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/test_device_layouts.py +0 -0
  307. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/device/test_device_tee.py +0 -0
  308. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/ml/__init__.py +0 -0
  309. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/ml/test_sgb.py +0 -0
  310. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/ml/test_sgb_bench.py +0 -0
  311. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/__init__.py +0 -0
  312. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/analytics/__init__.py +0 -0
  313. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/analytics/test_aggregation.py +0 -0
  314. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/analytics/test_groupby.py +0 -0
  315. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/analytics/test_permutation.py +0 -0
  316. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/ot/__init__.py +0 -0
  317. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/ot/test_ot.py +0 -0
  318. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/ot/test_ot_extension.py +0 -0
  319. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/ot/test_silent_ot.py +0 -0
  320. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/__init__.py +0 -0
  321. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_okvs_gct.py +0 -0
  322. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_oprf.py +0 -0
  323. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_psi.py +0 -0
  324. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_psi_bench.py +0 -0
  325. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/test_rr22.py +0 -0
  326. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/psi/verify_psi_okvs_logic.py +0 -0
  327. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/test_field_gf128.py +0 -0
  328. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/test_utils.py +0 -0
  329. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/__init__.py +0 -0
  330. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_gilboa_manual.py +0 -0
  331. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_ldpc.py +0 -0
  332. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_silver_vole.py +0 -0
  333. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_vole.py +0 -0
  334. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/test_vole_bench.py +0 -0
  335. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/mpc/vole/verify_vole_logic.py +0 -0
  336. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/test_collective.py +0 -0
  337. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/libs/test_simple_guide.py +0 -0
  338. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/runtime/test_interpreter_async.py +0 -0
  339. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/runtime/test_object_store.py +0 -0
  340. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/runtime/test_object_store_fs.py +0 -0
  341. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/test_fetch_semantics.py +0 -0
  342. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/test_pytree_io.py +0 -0
  343. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/test_store.py +0 -0
  344. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/utils/__init__.py +0 -0
  345. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tests/v2/utils/tensor_patch.py +0 -0
  346. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/MIGRATION.md +0 -0
  347. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/README.md +0 -0
  348. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/__init__.py +0 -0
  349. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/data/alice.csv +0 -0
  350. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/data/bob.csv +0 -0
  351. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/data/prepare_vertical_iris.py +0 -0
  352. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/run.sh +0 -0
  353. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/00_device_basics.py +0 -0
  354. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/01_function_decorator.py +0 -0
  355. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/02_simulation_and_driver.py +0 -0
  356. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/03_run_jax.py +0 -0
  357. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/04_run_sql.py +0 -0
  358. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/05_pipeline.py +0 -0
  359. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/06_ir_dump_and_analysis.py +0 -0
  360. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/device/07_run_nnx.py +0 -0
  361. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/pitfalls/late_binding.py +0 -0
  362. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/pitfalls/rand.py +0 -0
  363. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/00_basic.py +0 -0
  364. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/01_condition.py +0 -0
  365. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/02_whileloop.py +0 -0
  366. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/03_stdio.py +0 -0
  367. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/04_phe.py +0 -0
  368. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/05_tee.py +0 -0
  369. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/06_fhe.py +0 -0
  370. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/07_advanced.py +0 -0
  371. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v1/simp/08_simple_secret_sharing.py +0 -0
  372. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/00_device_basics.py +0 -0
  373. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/01_function_decorator.py +0 -0
  374. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/02_simulation_and_driver.py +0 -0
  375. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/03_run_jax.py +0 -0
  376. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/04_ir_dump_and_analysis.py +0 -0
  377. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/05_run_sql.py +0 -0
  378. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/06_pipeline.py +0 -0
  379. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/07_stax_nn.py +0 -0
  380. {mplang_nightly-0.1.dev254 → mplang_nightly-0.1.dev255}/tutorials/v2/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mplang-nightly
3
- Version: 0.1.dev254
3
+ Version: 0.1.dev255
4
4
  Summary: Multi-Party Programming Language
5
5
  Author-email: SecretFlow Team <secretflow-contact@service.alipay.com>
6
6
  License: Apache License
@@ -27,6 +27,7 @@ import spu.api as spu_api
27
27
  import spu.libspu as libspu
28
28
 
29
29
  from mplang.v2.backends.simp_worker import SimpWorker
30
+ from mplang.v2.backends.spu_state import SPUState
30
31
  from mplang.v2.backends.tensor_impl import TensorValue
31
32
  from mplang.v2.dialects import spu
32
33
  from mplang.v2.edsl import serde
@@ -107,84 +108,6 @@ def to_runtime_config(config: spu.SPUConfig) -> libspu.RuntimeConfig:
107
108
  return runtime_config
108
109
 
109
110
 
110
- # Global cache for SPU runtimes per (local_rank, world_size) pair
111
- # Key: (local_rank, spu_world_size, protocol, field, link_mode), Value: (Runtime, Io)
112
- _SPU_RUNTIMES: dict[
113
- tuple[int, int, str, str, str], tuple[spu_api.Runtime, spu_api.Io]
114
- ] = {}
115
-
116
-
117
- def _create_mem_link(local_rank: int, spu_world_size: int) -> libspu.link.Context:
118
- """Create in-memory link for simulation."""
119
- desc = libspu.link.Desc() # type: ignore
120
- desc.recv_timeout_ms = 30 * 1000
121
- for i in range(spu_world_size):
122
- desc.add_party(f"P{i}", f"mem:{i}")
123
- return libspu.link.create_mem(desc, local_rank)
124
-
125
-
126
- def _create_brpc_link(local_rank: int, spu_endpoints: list[str]) -> libspu.link.Context:
127
- """Create BRPC link for distributed execution.
128
-
129
- Args:
130
- local_rank: The local rank within the SPU device (0-indexed).
131
- spu_endpoints: List of BRPC endpoints for all SPU parties.
132
-
133
- Returns:
134
- A libspu.link.Context for BRPC communication.
135
- """
136
- desc = libspu.link.Desc() # type: ignore
137
- desc.recv_timeout_ms = 100 * 1000 # 100 seconds
138
- desc.http_max_payload_size = 32 * 1024 * 1024 # 32MB
139
-
140
- for i, endpoint in enumerate(spu_endpoints):
141
- desc.add_party(f"P{i}", endpoint)
142
-
143
- return libspu.link.create_brpc(desc, local_rank)
144
-
145
-
146
- def _get_spu_ctx(
147
- local_rank: int,
148
- spu_world_size: int,
149
- config: spu.SPUConfig,
150
- spu_endpoints: list[str] | None = None,
151
- ) -> tuple[spu_api.Runtime, spu_api.Io]:
152
- """Get or create SPU runtime and IO for the given local rank within SPU.
153
-
154
- Args:
155
- local_rank: The local rank within the SPU device (0-indexed).
156
- spu_world_size: The number of parties in the SPU device.
157
- config: SPU configuration including protocol settings.
158
- spu_endpoints: Optional list of BRPC endpoints. If None, use mem link.
159
-
160
- Returns:
161
- A tuple of (Runtime, Io) for this party.
162
- """
163
- # Determine link mode
164
- link_mode = "brpc" if spu_endpoints else "mem"
165
-
166
- # Include protocol, field, and link_mode in cache key
167
- cache_key = (local_rank, spu_world_size, config.protocol, config.field, link_mode)
168
- if cache_key in _SPU_RUNTIMES:
169
- return _SPU_RUNTIMES[cache_key]
170
-
171
- # Create Link
172
- if spu_endpoints:
173
- link = _create_brpc_link(local_rank, spu_endpoints)
174
- else:
175
- link = _create_mem_link(local_rank, spu_world_size)
176
-
177
- # Use config from SPUConfig
178
- runtime_config = to_runtime_config(config)
179
-
180
- # Create Runtime and Io
181
- runtime = spu_api.Runtime(link, runtime_config)
182
- io = spu_api.Io(spu_world_size, runtime_config)
183
-
184
- _SPU_RUNTIMES[cache_key] = (runtime, io)
185
- return runtime, io
186
-
187
-
188
111
  @spu.makeshares_p.def_impl
189
112
  def makeshares_impl(
190
113
  interpreter: Interpreter, op: Operation, data: TensorValue
@@ -293,7 +216,15 @@ def exec_impl(interpreter: Interpreter, op: Operation, *args: Any) -> Any:
293
216
  )
294
217
  spu_endpoints.append(spu_endpoints_map[party_rank])
295
218
 
296
- runtime, io = _get_spu_ctx(local_rank, spu_world_size, config, spu_endpoints)
219
+ # Get or create SPUState for caching Runtime/Io
220
+ spu_state = interpreter.get_dialect_state(SPUState.dialect_name)
221
+ if not isinstance(spu_state, SPUState):
222
+ spu_state = SPUState()
223
+ interpreter.set_dialect_state(SPUState.dialect_name, spu_state)
224
+
225
+ runtime, io = spu_state.get_or_create(
226
+ local_rank, spu_world_size, config, spu_endpoints
227
+ )
297
228
 
298
229
  executable_code = op.attrs["executable"]
299
230
  input_names = op.attrs["input_names"]
@@ -0,0 +1,124 @@
1
+ # Copyright 2025 Ant Group Co., Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ """SPU Dialect State.
16
+
17
+ Manages SPU Runtime lifecycle as a dialect state, enabling reuse across
18
+ multiple executions while binding to the Interpreter's lifecycle.
19
+ """
20
+
21
+ from __future__ import annotations
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import spu.api as spu_api
26
+ import spu.libspu as libspu
27
+
28
+ from mplang.v2.runtime.dialect_state import DialectState
29
+
30
+ if TYPE_CHECKING:
31
+ from mplang.v2.dialects import spu
32
+
33
+
34
+ class SPUState(DialectState):
35
+ """SPU Runtime cache as dialect state.
36
+
37
+ Caches SPU Runtime and Io objects per (local_rank, world_size, config, link_mode)
38
+ to enable reuse across multiple SPU kernel executions.
39
+
40
+ This replaces the previous global `_SPU_RUNTIMES` cache with a properly
41
+ lifecycle-managed dialect state.
42
+ """
43
+
44
+ dialect_name: str = "spu"
45
+
46
+ def __init__(self) -> None:
47
+ # Key: (local_rank, world_size, protocol, field, link_mode)
48
+ # Value: (Runtime, Io)
49
+ self._runtimes: dict[
50
+ tuple[int, int, str, str, str], tuple[spu_api.Runtime, spu_api.Io]
51
+ ] = {}
52
+
53
+ def get_or_create(
54
+ self,
55
+ local_rank: int,
56
+ spu_world_size: int,
57
+ config: spu.SPUConfig,
58
+ spu_endpoints: list[str] | None = None,
59
+ ) -> tuple[spu_api.Runtime, spu_api.Io]:
60
+ """Get or create SPU Runtime and Io for the given configuration.
61
+
62
+ Args:
63
+ local_rank: The local rank within the SPU device (0-indexed).
64
+ spu_world_size: The number of parties in the SPU device.
65
+ config: SPU configuration including protocol settings.
66
+ spu_endpoints: Optional list of BRPC endpoints. If None, use mem link.
67
+
68
+ Returns:
69
+ A tuple of (Runtime, Io) for this party.
70
+ """
71
+ from mplang.v2.backends.spu_impl import to_runtime_config
72
+
73
+ link_mode = "brpc" if spu_endpoints else "mem"
74
+ cache_key = (
75
+ local_rank,
76
+ spu_world_size,
77
+ config.protocol,
78
+ config.field,
79
+ link_mode,
80
+ )
81
+
82
+ if cache_key in self._runtimes:
83
+ return self._runtimes[cache_key]
84
+
85
+ # Create Link
86
+ if spu_endpoints:
87
+ link = self._create_brpc_link(local_rank, spu_endpoints)
88
+ else:
89
+ link = self._create_mem_link(local_rank, spu_world_size)
90
+
91
+ # Create Runtime and Io
92
+ runtime_config = to_runtime_config(config)
93
+ runtime = spu_api.Runtime(link, runtime_config)
94
+ io = spu_api.Io(spu_world_size, runtime_config)
95
+
96
+ self._runtimes[cache_key] = (runtime, io)
97
+ return runtime, io
98
+
99
+ def _create_mem_link(
100
+ self, local_rank: int, spu_world_size: int
101
+ ) -> libspu.link.Context:
102
+ """Create in-memory link for simulation."""
103
+ desc = libspu.link.Desc() # type: ignore
104
+ desc.recv_timeout_ms = 30 * 1000
105
+ for i in range(spu_world_size):
106
+ desc.add_party(f"P{i}", f"mem:{i}")
107
+ return libspu.link.create_mem(desc, local_rank)
108
+
109
+ def _create_brpc_link(
110
+ self, local_rank: int, spu_endpoints: list[str]
111
+ ) -> libspu.link.Context:
112
+ """Create BRPC link for distributed execution."""
113
+ desc = libspu.link.Desc() # type: ignore
114
+ desc.recv_timeout_ms = 100 * 1000 # 100 seconds
115
+ desc.http_max_payload_size = 32 * 1024 * 1024 # 32MB
116
+
117
+ for i, endpoint in enumerate(spu_endpoints):
118
+ desc.add_party(f"P{i}", endpoint)
119
+
120
+ return libspu.link.create_brpc(desc, local_rank)
121
+
122
+ def shutdown(self) -> None:
123
+ """Clear all cached runtimes."""
124
+ self._runtimes.clear()