Tags: facebook/fbthrift
Tags
Add fixture coverage for Java deprecated legacy reflection client Reviewed By: yoney Differential Revision: D89079298 fbshipit-source-id: 2be0e2012767a90b58acbf76785f902374f1fb42
Remove legacy scheduler flags Summary: The thread pool and fork join pool threads based flags have been replace with schedule flags, this is the final diff necessary to remove the old flags. Reviewed By: RayanRal Differential Revision: D88016443 fbshipit-source-id: efa75358358d37b35d546e7d8dc5793763c2e8aa
fix windows build setuptools error Summary: X-link: facebook/watchman#1316 The upgrade of setuptools in D79195099 broke pywatchman build, Github windows CI erroring with `AttributeError: module 'setuptools.dist' has no attribute 'check_test_suite'` https://github.com/facebook/watchman/actions/runs/19440507973/job/55622405533#step:131:1188 . It was only affecting windows as only windows CI is building dependencies form source, the others use system dependencies. Fix by pinning watchman to the previous setuptools version Fix to help iterate locally: * fix the cargo.py remove behaviour to use rmtree_more. This fixes repeat local builds while debugging. After the first build was getting `PermissionError: [WinError 5] Access is denied: 'Z:\build\fbthrift\source\.git\objects\pack\pack-250eb41d409d8c0f512fdb239d0225fa35d50c3d.idx'` Reviewed By: bigfootjon Differential Revision: D87655865 fbshipit-source-id: 8948b0ffe38f304fa96051bf6ac3a0455ef1a16e
Add the ability to generate metadata from service recursively Reviewed By: iahs Differential Revision: D86583543 fbshipit-source-id: 21a72caa8ecbb9c03f670a9f4442a443cca0cbf2
Enable Lazy Validation for Map Elements in Thrift Python
Summary:
This diff introduces **lazy validation** for Thrift Python map containers, building on similar ideas from the earlier diff (D85609088), which implemented lazy validation for sets with string elements.
**Lazy Validation for Maps:**
Adds logic to check if both `key` and `value` types in a map support in-place validation (i.e., they do not require conversion, or are strings).
If both types support in-place validation, the map's internal elements are validated in-place without reconstructing a new dictionary.
This optimization is particularly beneficial for maps like map<i64, string> or map<string, string>, where conversion is unnecessary and only validation is needed.
**Performance wins**:
{F1983373834}
Reviewed By: yoney
Differential Revision: D86603666
fbshipit-source-id: aa73993a91f1fb9f8e1d333dc75fefff10b233d1
Comment out noisy log Summary: https://www.internalfb.com/diff/D85509369?dst_version_fbid=752418134488635&transaction_fbid=1185871093430732 Reviewed By: siutsin Differential Revision: D86085964 fbshipit-source-id: 93521ec5ae7d6f6ce288dc45a85700ba19a07350
Adding more benchmark tests for maps Summary: Adding more bencemark tests for map. Reviewed By: yoney Differential Revision: D85526310 fbshipit-source-id: 1e5ac71fae17691061683256a351ad7999ac999b
Disable keep-alive thread Summary: Non-daemon keep-alive thread in Cosco server caused Spark jobs to get stuck, unable to shutdown JVM after all app threads have completed. As previously Cosco worked fine without a keep-alive thread in ServiceFramework, and Spark relies on this behaviour - adding an option to turn it off. Reviewed By: adolfojunior Differential Revision: D84054824 fbshipit-source-id: 203108fe93ab08f5efea7b92b05929f5014ae818
Fix errors that relate to the use of internal.InjectMetadataFields Summary: This change addresses undefined symbol errors that occur when `internal.InjectMetadataFields` injects types from external programs. The annotation creates cross-program type dependencies that expose a fundamental gap in the thrift compiler's import generation logic. The problem reveals that the compiler only generated imports for external typedefs, but `internal.InjectMetadataFields` can reference any external type. This creates a broader principle: any type present in a program's context that comes from a different program must trigger an import for that source program. Users encountered these failures when injected fields referenced types from transitively included thrift files, resulting in `NameError` exceptions for missing module imports in generated Python code. This fix ensures the compiler generates imports for all external types whose source program differs from the current program, not just typedefs. This establishes the correct import generation behavior for cross-program type references introduced by metadata injection annotations. Reviewed By: prakashgayasen Differential Revision: D77504507 fbshipit-source-id: 20c24eac6fb7ac86424a5b2c599dd0556987ee81
Generate ServiceMetadata from schema.thrift Summary: Similar to previous diff, but for ServiceMetadata. Reviewed By: thedavekwon Differential Revision: D82437949 fbshipit-source-id: 86e561733e650d5bbf72a5084a9a5778ae64f090
PreviousNext