[roll] Roll fuchsia [fidl] Natural types native encode validation Previously, natural type encode validation relied on the C validator as a second pass. This implements one pass encode + validation by integrating validation steps into encode. Recursion depth is added as an extra parameter rather than on the encoder because while optimizing rust encoding, it was learned that this leads to better optimization. When the state is on the encoder, it often can't be optimized out (even if it isn't touched in many cases). CPP/Encode/BoolArray/256/Steps.Encode/WallTime faster 0.179-0.181 1699.0 +/- 4.8 ns 306.51 +/- 0.74 ns CPP/Encode/ByteArray/16/Steps.Encode/WallTime faster 0.790-0.827 208.5 +/- 2.8 ns 168.5 +/- 1.5 ns CPP/Encode/ByteArray/256/Steps.Encode/WallTime faster 0.812-0.843 224.9 +/- 1.1 ns 186.0 +/- 2.5 ns CPP/Encode/ByteVector/16/Steps.Encode/WallTime faster 0.760-0.780 256.8 +/- 2.3 ns 197.78 +/- 0.79 ns CPP/Encode/ByteVector/256/Steps.Encode/WallTime faster 0.767-0.793 271.9 +/- 3.1 ns 212.0 +/- 1.1 ns CPP/Encode/ByteVector/4096/Steps.Encode/WallTime faster 0.793-0.991 486 +/- 31 ns 430 +/- 21 ns CPP/Encode/ByteVectorLimit/1/Steps.Encode/WallTime faster 0.766-0.777 254.5 +/- 1.3 ns 196.29 +/- 0.36 ns CPP/Encode/DatagramSocket/RecvMsg/Request/Steps.Encode/WallTime faster 0.783-0.817 218.7 +/- 2.7 ns 174.9 +/- 1.6 ns CPP/Encode/DatagramSocket/RecvMsg/Result/Steps.Encode/WallTime faster 0.759-0.818 624 +/- 11 ns 491.6 +/- 9.7 ns CPP/Encode/DatagramSocket/SendMsg2/Request/Steps.Encode/WallTime faster 0.793-0.857 552 +/- 10 ns 454.7 +/- 9.2 ns CPP/Encode/DatagramSocket/SendMsg2/Result/Steps.Encode/WallTime faster 0.700-0.727 268.1 +/- 2.0 ns 191.4 +/- 2.2 ns CPP/Encode/EmptyStruct/Steps.Encode/WallTime faster 0.775-0.800 207.6 +/- 2.0 ns 163.48 +/- 0.98 ns CPP/Encode/EnumArray/256/Steps.Encode/WallTime faster 0.182-0.187 1658.1 +/- 5.8 ns 306.4 +/- 3.1 ns CPP/Encode/EnumArray/NonDense/256/Steps.Encode/WallTime faster 0.182-0.185 1660.9 +/- 5.6 ns 304.7 +/- 1.9 ns CPP/Encode/ErrorSyntaxResult_Failure/Steps.Encode/WallTime faster 0.709-0.729 244.5 +/- 1.8 ns 175.7 +/- 1.2 ns CPP/Encode/ErrorSyntaxResult_Success/Steps.Encode/WallTime faster 0.709-0.724 278.0 +/- 1.7 ns 199.21 +/- 0.85 ns CPP/Encode/FloatArray/256/Steps.Encode/WallTime faster 0.886-0.904 331.5 +/- 1.8 ns 296.6 +/- 1.4 ns CPP/Encode/GPUMagma/ExecuteImmediateCommandsRequest/CommandByte128/Semaphore8/Steps.Encode/WallTime faster 0.703-0.716 337.8 +/- 1.5 ns 239.7 +/- 1.1 ns CPP/Encode/HandleArray/Event/1/Steps.Encode/WallTime faster 0.693-0.744 240.2 +/- 7.6 ns 172.35 +/- 0.70 ns CPP/Encode/HandleArray/Event/16/Steps.Encode/WallTime faster 0.594-0.654 447 +/- 17 ns 278.6 +/- 3.0 ns CPP/Encode/HandleArray/Event/64/Steps.Encode/WallTime faster 0.535-0.563 1019 +/- 13 ns 559.6 +/- 6.8 ns CPP/Encode/HandleArray/Plain/1/Steps.Encode/WallTime faster 0.692-0.752 239.4 +/- 6.3 ns 172.7 +/- 2.7 ns CPP/Encode/HandleArray/Plain/16/Steps.Encode/WallTime faster 0.613-0.658 440 +/- 11 ns 279.4 +/- 3.0 ns CPP/Encode/HandleArray/Plain/64/Steps.Encode/WallTime faster 0.528-0.556 1030 +/- 15 ns 557.9 +/- 6.1 ns CPP/Encode/HardwareDisplay/OnVsyncEvent/Image64/Steps.Encode/WallTime faster 0.752-0.776 269.0 +/- 2.5 ns 205.6 +/- 1.4 ns CPP/Encode/Int32Array/256/Steps.Encode/WallTime faster 0.846-0.876 249.4 +/- 2.0 ns 214.6 +/- 2.0 ns CPP/Encode/Int32Vector/256/Steps.Encode/WallTime faster 0.824-0.883 405.0 +/- 5.2 ns 345.5 +/- 7.7 ns CPP/Encode/Media/StreamPacket/Steps.Encode/WallTime faster 0.796-0.804 219.18 +/- 0.93 ns 175.35 +/- 0.10 ns CPP/Encode/MessageHeader/Steps.Encode/WallTime faster 0.798-0.837 210.5 +/- 1.4 ns 172.1 +/- 2.9 ns CPP/Encode/PaddedStructTree/Depth8/Steps.Encode/WallTime faster 0.708-0.735 1266 +/- 20 ns 914.0 +/- 2.5 ns CPP/Encode/String/16/Steps.Encode/WallTime faster 0.773-0.794 254.5 +/- 2.1 ns 199.4 +/- 1.1 ns CPP/Encode/String/256/Steps.Encode/WallTime faster 0.773-0.789 299.1 +/- 2.4 ns 233.64 +/- 0.53 ns CPP/Encode/StructArray/256/Steps.Encode/WallTime faster 0.140-0.144 3082 +/- 24 ns 437.6 +/- 2.9 ns CPP/Encode/StructField/16/Steps.Encode/WallTime faster 0.803-0.812 258.3 +/- 1.0 ns 208.67 +/- 0.32 ns CPP/Encode/StructField/256/Steps.Encode/WallTime slower 1.166-1.208 1827 +/- 16 ns 2168 +/- 19 ns CPP/Encode/StructTree/Depth8/Steps.Encode/WallTime faster 0.580-0.596 1688 +/- 14 ns 992.7 +/- 5.2 ns CPP/Encode/StructVector/256/Steps.Encode/WallTime faster 0.169-0.180 3232 +/- 21 ns 565 +/- 15 ns CPP/Encode/Table/AllSet/1/Steps.Encode/WallTime faster 0.693-0.716 265.1 +/- 2.8 ns 186.7 +/- 1.1 ns CPP/Encode/Table/AllSet/16/Steps.Encode/WallTime faster 0.459-0.489 704.6 +/- 2.3 ns 333.8 +/- 9.6 ns CPP/Encode/Table/AllSet/63/Steps.Encode/WallTime faster 0.431-0.438 2092.1 +/- 5.5 ns 908.4 +/- 5.3 ns CPP/Encode/Table/LastSetOthersReserved/16/Steps.Encode/WallTime faster 0.521-0.530 359.7 +/- 1.9 ns 188.90 +/- 0.61 ns CPP/Encode/Table/LastSetOthersReserved/63/Steps.Encode/WallTime faster 0.372-0.379 782.6 +/- 4.0 ns 293.8 +/- 1.6 ns CPP/Encode/Table/SingleSet/16_of_16/Steps.Encode/WallTime faster 0.559-0.574 447.5 +/- 2.2 ns 253.4 +/- 2.1 ns CPP/Encode/Table/SingleSet/16_of_63/Steps.Encode/WallTime faster 0.682-0.695 689.8 +/- 3.9 ns 475.1 +/- 1.9 ns CPP/Encode/Table/SingleSet/1_of_1/Steps.Encode/WallTime faster 0.688-0.718 266.1 +/- 5.0 ns 186.91 +/- 0.50 ns CPP/Encode/Table/SingleSet/1_of_16/Steps.Encode/WallTime faster 0.712-0.734 350.6 +/- 2.5 ns 253.3 +/- 2.1 ns CPP/Encode/Table/SingleSet/1_of_63/Steps.Encode/WallTime faster 0.804-0.818 592.0 +/- 2.5 ns 479.9 +/- 2.0 ns CPP/Encode/Table/SingleSet/63_of_63/Steps.Encode/WallTime faster 0.506-0.517 1108.6 +/- 6.5 ns 566.9 +/- 2.8 ns CPP/Encode/Table/Unset/1/Steps.Encode/WallTime faster 0.733-0.760 217.1 +/- 1.6 ns 162.0 +/- 1.8 ns CPP/Encode/Table/Unset/16/Steps.Encode/WallTime faster 0.751-0.758 223.69 +/- 0.83 ns 168.88 +/- 0.16 ns CPP/Encode/Table/Unset/63/Steps.Encode/WallTime faster 0.754-0.774 244.1 +/- 1.7 ns 186.5 +/- 1.2 ns CPP/Encode/Union/LastSet/1/Steps.Encode/WallTime faster 0.702-0.721 241.9 +/- 1.8 ns 172.06 +/- 0.99 ns CPP/Encode/Union/LastSet/16/Steps.Encode/WallTime faster 0.694-0.750 256.8 +/- 2.8 ns 185.3 +/- 5.2 ns CPP/Encode/Union/LastSet/256/Steps.Encode/WallTime faster 0.871-0.933 627.6 +/- 3.2 ns 566 +/- 16 ns HLCPP/Encode/EnumArray/256/Steps.Teardown/WallTime faster 0.724-0.991 12.4 +/- 1.1 ns 10.49 +/- 0.71 ns Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/653942 Original-Revision: 9bf36d679a56f42244001a31a4927cef58aa655d GitOrigin-RevId: 7ded3391b796d50d7b87be3cd5032d51c1a6e35c Change-Id: Ic5efef3d545d7e2a7f69f3c0212deda96fb11547
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.