mirror of
https://github.com/Sunscreen-tech/Sunscreen.git
synced 2026-01-15 00:28:21 -05:00
* added support for group id's in nodeinfo struct and modified new/add_node methods * addedd support for group counter to fheprograms * added support for group ids for zkp backend * aded support for group id's in fhe and zkp programs * finished support for group id in zkp programs * added new function signature for creating new nodeinfo with debugger featuer on * updated zkp jit compilation to support constructing nodes with group id * added support for node group ids in fhe compiler * format changes * fixed clippy issues * added a stacktrie struct * added a function to add a stack trace. need to figure outhow to get group id's into the stacktrie * Update rust.yml * style fixes * added structure for StackFrameLookup and stackframes trait * support to add stack traces and updated dependencies * clippy fixes * clippy fixes * created stackframeinfo struct, added get_stack_trace which has lifetime issues * clippy fixes * implementation for stackframelookup * insertion and getting work * formatting and documentation * updated stackframeinfo constructor to not panic with no values * changed it so trie stores stackframeinfo instead of backtraces * format and clippy fixes * started some work with fheprograms * single frame insert test * single backtrace insert * single backtrace insert * fixed minor loggic error in test single backtrace insert * some more tests * programcontext/programgroup structs defined * more programgroup * added a get for stackframelookup, added clone to programgroup * infrastructure for groups * fixed references of .0 into .graph and enabled conditional compilation of debugging structs, but this broke fhe_program proc macro * cleaned up some conditional compilation logic in context, also formatting fixes * fixed context compilation errors * fixed dependency issues and can now return graph information of basic fhe program * format fixes * remains to figure out how to display graphs with rationals * can display graph for given rational operations * displays serialized graph strings * added run_impl and debug_fhe_program, also added debuginfo struct and added parameter for secret key in run unchecked * fixed compilation errors for tests in run file, now does tests with secret key * updated measuredmodel call to run_program_unchecked with a secret key * clippy and format fixes * doc fixes * fixed some fhe program tests based on changes to compilationresult data structure * format fixes * modified tests in validation.rs * sessions file + data structure: * documentation for sessions * documentation, removed some unused dependencies * format and clippy fix * moved sessions to runtime * rick's coimments/changes * implemented set_data, also added calls to set_data in run unchecked * fixed compilation rrors in tests for run.rs * more compilation error fixes + moved fhe-debugger into debugger module * added fhe-debugger files as modules * fxied remaining compilation issues in run * removed nodes file from debugger * created start web server function * fixed some depenendcy issues to enable debugger feature across workspace, now going to fix compilation results/add support with debugger feature * enabled debugger in zkp backend * compilation errors in graph construction test, enabled debugger feature in sunscreen_fhe_program * fixed more compilation errors and enabled debugger feature in sunscreen_backend. next step: figure out secret vs privatekey and change debug_fhe_program accordingly * modified visibility of sealsecretkey in privatekey struct to be public * format * modified debug_fhe_program to not return anything * fixed compilation errors based on conditional dependencies when debugger not enabled * fixed errors due to conditional compilation with debugger feature in fhe_program_tests * managed to get webserver up and running. remains to figure out how to get the graph data * can now support dynamic paths but currently web server is not set up in a way that you can debug multiple programs * moved code from sessions.rs to server.rs * server file * added support for cors so frontend can now grab data from backend. currently it only grabs a string that allows the frontend to construct a graph * proc macro updates to be able to get source code of an fhe program with .source() * added support for fhe program source code. in debug mode, run.rs tests wont compile because debug_fhe_program now asks for 7 arguments instead of 6 * fmt fixes * clippy fixes * get fhe node data impleented, still doesnt ocmpile. need to figure out how to handle sealdata stuff * fixed async issues, now can support multiple sessions * rick fixes * updated fhe_program_tests to have metadata fields and group_id. need to fix construction of graph so that group ids are updated * fhe program tests now pass with debugger feature enabled, updated group counter when assigning ids to nodes * passes tests with debugger feature enabled and disabled * fmt fixes * clippy fixes * addressed race conditions in run tests, now pass those tests with and without debugger feature * removed changes to settings.json * removed unncessary comments from fhe_program_tests * removed some unnecessary TODO * removed more unnecessary comments * removed group struct, defined Group type as a String * modifying interface for lookup data structures * removed unnecessary prints * remove more prints * removed secretkey from debug_fhe_program, now uses privatekey instead * removed conditional compilation from a functoin that shouldnt have it * removed group counter updates from common_subexpression_elimination test. graphs can be isomorphic even if group id's don't match up exactly * clippy and fmt * undid some clippy changes so that code compiles * error handling for get_fhe_node_data and implemented idlookup trait for stackframelookup * stack id for nodeinfo * stack id for node info and context changes * removed serialization of sealdata, instead created serializedsealdata struct which contains debugger info about cipher/plaintexts * removed unnecessary todos * skeleton for getting cipher/plaintext data * modified visibility of Error field in lookup, cloned some values in server * sunscreen fhe znd zkp support for stack ids on ndoes * fmt * clippy * can now see dummy node data * removed some old/dead code from server and added backtrace to compiler crate * dependency updates * put multiplicative depth on nodeinfo, also updated operationtrait * enabled internal tagging with conditional compilation with debugger feature * compile fixes, added multiplicative_depth field to nodeinfos * attempted to allow for multiplicative depth ... this currently does not work. also group ids dont seem to be assigned correctly * two changes: modified Operation enum to be struct instead of tuple variants and fixed associated compilation errors, also removed multiplicaitve depth field from NOdeInfo and fixed corresponding compilation errors * more compilation errors for struct variants of Operatio nenum fixed * moved group and stack counters off context and onto metadata ... maybe should move this onto the lookup structs themselves? * skeleton for idlookup trait for grouplookup * moved lookup to compiler ocmmon from runtime * moved lookup into src * documentation for lookup * attempting naive multiplicative depth algorithm * removed get_mult_depth that didn't function, currently returns 0 * can display coefficients for plaintexts * moved build to sunscreen_runtime directory from debugger * WIP * rick's changes * fixed webpack errors * progress towards coefficients * Don't ship dist folder * WIP * fmt changes. also can display coefficients of plaintexts * attempting to debug ciphertext coefficient info * removed groups.rs file * conditional compilation for dependency import to stop clippy complaints * more clippy fixes * more conditional compilation for dependncies * fmt * implemented default trait for lookup structures * combine 2 dependency imports * just allowed for unused imports * updated serialization types * changed serializable enums to be internally tagged * capturing stack traces * format * added sleep calls in infinite loop to reduce cpu usage * remove default cals from chi_sq example * format * allow for insertion of ids/keys in lookup structure * added a 2nd call to mad for debugging example. also inserted some dummy keys for stack lookup * attempts to debug decryption of coefficients with seal: * removed dbg from seal file * added a stacktrace endpoint, but it doesnt display anything useful yet * fmt * can now display coefficients * clippy fix * fmt * noise budget is nullable * named cipher and plaintexts * removed some unnecesasry comments * error handling for run program unchecked * remove internal tagging so that literals work * format * unnecessary comments removed * get_mult_depth works in some cases, need to write tests * singular empty etst * attempt to redesign stack frame lookup -- this is a very inefficeint way of doing it, but should work * added support to capture stack traces, but there's an issue with the data not being saved so it can be served to the frontend * fmt * clippy * default implementation for gorup and stacklookup * fmt * can now display stack traces * fmt * clippy * fmt * refactoring code to change serializedsealdata to bfvnodetype * comment out dead code * start zkp sessions * moved decrypt seal logic to a new function * wrote polynomial multiplication functions * zkpsession and imports * overflow for polynomials * overflow can now only be true for ciphertexts that are the output of an arithmetic operation * examples for overflow and chaining * remove some unnecssary imports * server now supports serializing zkp data * zkp now returns bigint as a string * set up params that cause noise budget exceeded in debugger example * remove tests from lookup * added name metadata to zkp programs * updated construction of expected graphs for fhe_program_tests * modified tests for validation to account for struct variants * added session provider * SessionProvider * added gorup and stack id for some validation tests * Fix a test * Fix tests * Fix feature plumbing * Fix lookup * fuck off * changed generic to Box of dyn * functional zkp debugger * clippy * clippy * fmt * clippy * fmt * janky a solution to conditional compilation keeping variables out of scope * fmt * conditioanl compilation for debugdata * remove print debug from measured model * remove unnecssary comment * remove todo * removed serialize function for stackframeinfo, instead hashed it * remove unnecessary conditional compilation in common subexpression eliminioatno * change fhe program macro to preserve white space * changed get_mult_depth to iterative bfs * add functions to modularize overflow calculation * overflow code now compiles but needs to actually be implemented * can extract coefficients from innerplaintext * implemented overflow detection for fhe programs * modified checks for overflow * remove internal tagging comments * clippy * removed unwrap or else and turned into expect * clippy actually likes unwrap or else * fmt * gate some imports * fix gating issues * removed some gating * removed gating from debugger module; zkp runtime uses it * fmt --------- Co-authored-by: Bryan Li <bryanyuezhouli@gmail.com> Co-authored-by: rickwebiii <rick.weber.iii@gmail.com> Co-authored-by: Bryan Li <51716784+bryanyli@users.noreply.github.com>
110 lines
12 KiB
JSON
110 lines
12 KiB
JSON
{
|
|
"compilerOptions": {
|
|
/* Visit https://aka.ms/tsconfig to read more about this file */
|
|
|
|
/* Projects */
|
|
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
|
|
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
|
|
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
|
|
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
|
|
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
|
|
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
|
|
|
|
/* Language and Environment */
|
|
"target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
|
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
|
// "jsx": "preserve", /* Specify what JSX code is generated. */
|
|
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
|
|
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
|
|
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
|
|
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
|
|
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
|
|
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
|
|
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
|
|
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
|
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
|
|
"jsx": "react",
|
|
/* Modules */
|
|
"module": "commonjs", /* Specify what module code is generated. */
|
|
// "rootDir": "./", /* Specify the root folder within your source files. */
|
|
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
|
|
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
|
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
|
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
|
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
|
|
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
|
|
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
|
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
|
|
// "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
|
|
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
|
|
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
|
|
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
|
|
// "resolveJsonModule": true, /* Enable importing .json files. */
|
|
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
|
|
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
|
|
|
|
/* JavaScript Support */
|
|
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
|
|
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
|
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
|
|
|
|
/* Emit */
|
|
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
|
|
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
|
|
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
|
|
"sourceMap": true, /* Create source map files for emitted JavaScript files. */
|
|
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
|
|
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
|
|
// "outDir": "./", /* Specify an output folder for all emitted files. */
|
|
// "removeComments": true, /* Disable emitting comments. */
|
|
// "noEmit": true, /* Disable emitting files from a compilation. */
|
|
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
|
|
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
|
|
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
|
|
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
|
|
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
|
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
|
|
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
|
|
// "newLine": "crlf", /* Set the newline character for emitting files. */
|
|
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
|
|
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
|
|
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
|
|
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
|
|
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
|
|
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
|
|
|
|
/* Interop Constraints */
|
|
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
|
|
// "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
|
|
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
|
|
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
|
|
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
|
|
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
|
|
|
/* Type Checking */
|
|
// "strict": true, /* Enable all strict type-checking options. */
|
|
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
|
|
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
|
|
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
|
|
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
|
|
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
|
|
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
|
|
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
|
|
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
|
|
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
|
|
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
|
|
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
|
|
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
|
|
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
|
|
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
|
|
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
|
|
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
|
|
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
|
|
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
|
|
|
|
/* Completeness */
|
|
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
|
|
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
|
}
|
|
}
|