Skip to content

Commit

Permalink
Merge branch 'master' into tf/split-build-and-test
Browse files Browse the repository at this point in the history
* master:
  chore!: Change `noir-lang/noir-source-resolver` to `noir-lang/source-resolver` (#2718)
  chore: clippy fixes (#2719)
  • Loading branch information
TomAFrench committed Sep 15, 2023
2 parents 9647178 + 31e489e commit 88ec481
Show file tree
Hide file tree
Showing 28 changed files with 87 additions and 95 deletions.
29 changes: 1 addition & 28 deletions .github/workflows/release-source-resolver.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ name: Release and Publish Source Resolver

on:
workflow_dispatch:
inputs:
version:
description: "Version number"
required: false

jobs:
release-source-resolver:
Expand All @@ -15,37 +11,14 @@ jobs:
- name: Checkout
uses: actions/checkout@v4

- name: Bump version
working-directory: ./compiler/source-resolver
id: bump_version
run: |
if [ -z "${{ github.event.inputs.version }}" ]; then
NEW_VERSION=$(npm version patch --no-git-tag-version)
else
NEW_VERSION=$(npm version ${{ github.event.inputs.version }} --no-git-tag-version)
fi
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
- name: Install dependencies
run: yarn install --immutable

- name: Build noir-source-resolver
run: yarn workspace @noir-lang/noir-source-resolver build
run: yarn workspace @noir-lang/source-resolver build

- name: Publish to NPM
working-directory: ./compiler/source-resolver
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Configure git
run: |
git config user.name kevaundray
git config user.email kevtheappdev@gmail.com
- name: Commit updates
run: |
git add yarn.lock
git add compiler/source-resolver/package.json
git commit -m "chore: Update source-resolver to ${{ env.NEW_VERSION }}"
git push
13 changes: 13 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,19 @@ jobs:
ref: master
token: ${{ secrets.NOIR_REPO_TOKEN }}

publish-source-resolver:
name: Publish source resolver package
needs: [release-please]
if: ${{ needs.release-please.outputs.tag-name }}
runs-on: ubuntu-latest
steps:
- name: Dispatch to source resolver
uses: benc-uk/workflow-dispatch@v1
with:
workflow: release-source-resolver.yml
ref: master
token: ${{ secrets.NOIR_REPO_TOKEN }}

dispatch-publish-abi-wasm:
name: Dispatch to publish-abi_wasm workflow
needs: [release-please]
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test-source-resolver.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ jobs:
- name: Install dependencies
run: yarn install --immutable

- name: Build noir-source-resolver
run: yarn workspace @noir-lang/noir-source-resolver build
- name: Build @noir-lang/source-resolver
run: yarn workspace @noir-lang/source-resolver build

- name: Run tests
run: yarn workspace @noir-lang/noir-source-resolver test
run: yarn workspace @noir-lang/source-resolver test
2 changes: 1 addition & 1 deletion .github/workflows/wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ jobs:
cp -r ./compiler/wasm/downloaded/nodejs ./compiler/wasm
cp -r ./compiler/wasm/downloaded/web ./compiler/wasm
yarn install --immutable
yarn workspace @noir-lang/noir-source-resolver build
yarn workspace @noir-lang/source-resolver build
- name: Run tests
run: |
Expand Down
2 changes: 1 addition & 1 deletion compiler/fm/src/file_reader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ cfg_if::cfg_if! {
if #[cfg(target_arch = "wasm32")] {
use wasm_bindgen::{prelude::*, JsValue};

#[wasm_bindgen(module = "@noir-lang/noir-source-resolver")]
#[wasm_bindgen(module = "@noir-lang/source-resolver")]
extern "C" {

#[wasm_bindgen(catch)]
Expand Down
2 changes: 1 addition & 1 deletion compiler/integration-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
"dependencies": {
"@aztec/bb.js": "^0.5.1",
"@noir-lang/acvm_js": "^0.26.0",
"@noir-lang/noir-source-resolver": "workspace:*",
"@noir-lang/noir_wasm": "workspace:*",
"@noir-lang/noirc_abi": "workspace:*",
"@noir-lang/source-resolver": "workspace:*",
"@web/dev-server-esbuild": "^0.3.6",
"@web/test-runner": "^0.15.3",
"@web/test-runner-playwright": "^0.10.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { expect } from '@esm-bundle/chai';
import { initialiseResolver } from "@noir-lang/noir-source-resolver";
import { initializeResolver } from "@noir-lang/source-resolver";
import newCompiler, {
compile,
init_log_level as compilerLogLevel
Expand Down Expand Up @@ -66,7 +66,7 @@ test_cases.forEach((testInfo) => {

expect(noir_source).to.be.a.string;

initialiseResolver((id: String) => {
initializeResolver((id: String) => {
console.log("Resolving:", id);
return noir_source;
});
Expand Down
9 changes: 4 additions & 5 deletions compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -556,14 +556,13 @@ impl Context {
let predicate_index =
self.acir_context.mul_var(index_var, self.current_side_effects_enabled_var)?;
let new_value = if let Some(store) = store_value {
let store_var = Some(self.convert_value(store, dfg).into_var()?);
let store_var = self.convert_value(store, dfg).into_var()?;
if self.acir_context.is_constant_one(&self.current_side_effects_enabled_var) {
store_var
Some(store_var)
} else {
let dummy = self.array_get(instruction, array, predicate_index, dfg)?;
let true_pred = self
.acir_context
.mul_var(store_var.unwrap(), self.current_side_effects_enabled_var)?;
let true_pred =
self.acir_context.mul_var(store_var, self.current_side_effects_enabled_var)?;
let one = self.acir_context.add_constant(FieldElement::one());
let not_pred =
self.acir_context.sub_var(one, self.current_side_effects_enabled_var)?;
Expand Down
2 changes: 1 addition & 1 deletion compiler/noirc_evaluator/src/ssa/ir/map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ impl<T> std::hash::Hash for Id<T> {

impl<T> PartialOrd for Id<T> {
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
self.index.partial_cmp(&other.index)
Some(self.cmp(other))
}
}

Expand Down
2 changes: 1 addition & 1 deletion compiler/noirc_evaluator/src/ssa/opt/constant_folding.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ impl Context {
fn resolve_instruction(
instruction_id: InstructionId,
dfg: &DataFlowGraph,
constrained_values: &mut HashMap<ValueId, ValueId>,
constrained_values: &HashMap<ValueId, ValueId>,
) -> Instruction {
let instruction = dfg[instruction_id].clone();

Expand Down
4 changes: 1 addition & 3 deletions compiler/noirc_evaluator/src/ssa/ssa_gen/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -527,9 +527,7 @@ impl<'a> FunctionContext<'a> {
) -> Values {
match expr {
// If we're constraining an equality to be true then constrain the two sides directly.
Expression::Binary(Binary { lhs, operator, rhs, .. })
if operator == &BinaryOpKind::Equal =>
{
Expression::Binary(Binary { lhs, operator: BinaryOpKind::Equal, rhs, .. }) => {
let lhs = self.codegen_non_tuple_expression(lhs);
let rhs = self.codegen_non_tuple_expression(rhs);
self.builder.set_location(location).insert_constrain(lhs, rhs, assert_message);
Expand Down
2 changes: 1 addition & 1 deletion compiler/noirc_frontend/src/ast/statement.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ impl PartialEq<Ident> for Ident {

impl PartialOrd for Ident {
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
self.0.contents.partial_cmp(&other.0.contents)
Some(self.cmp(other))
}
}

Expand Down
2 changes: 1 addition & 1 deletion compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -530,13 +530,13 @@ fn take_errors_filter_self_not_resolved(resolver: Resolver<'_>) -> Vec<ResolverE
resolver
.take_errors()
.iter()
.cloned()
.filter(|resolution_error| match resolution_error {
ResolverError::PathResolutionError(PathResolutionError::Unresolved(ident)) => {
&ident.0.contents != "Self"
}
_ => true,
})
.cloned()
.collect()
}

Expand Down
2 changes: 1 addition & 1 deletion compiler/noirc_frontend/src/hir/def_collector/dc_mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ impl<'a> ModCollector<'a> {
};

// Parse the AST for the module we just found and then recursively look for it's defs
let ast = parse_file(&mut context.file_manager, child_file_id, errors);
let ast = parse_file(&context.file_manager, child_file_id, errors);

// Add module into def collector and get a ModuleId
if let Some(child_mod_id) =
Expand Down
4 changes: 2 additions & 2 deletions compiler/noirc_frontend/src/hir/def_map/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ impl CrateDefMap {

// First parse the root file.
let root_file_id = context.crate_graph[crate_id].root_file_id;
let ast = parse_file(&mut context.file_manager, root_file_id, errors);
let ast = parse_file(&context.file_manager, root_file_id, errors);

#[cfg(feature = "aztec")]
let ast = aztec_library::transform(ast, &crate_id, context, errors);
Expand Down Expand Up @@ -237,7 +237,7 @@ pub struct Contract {

/// Given a FileId, fetch the File, from the FileManager and parse it's content
pub fn parse_file(
fm: &mut FileManager,
fm: &FileManager,
file_id: FileId,
all_errors: &mut Vec<FileDiagnostic>,
) -> ParsedModule {
Expand Down
5 changes: 1 addition & 4 deletions compiler/noirc_frontend/src/hir/type_check/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,7 @@ pub fn type_check_func(interner: &mut NodeInterner, func_id: FuncId) -> Vec<Type
errors
}

fn function_info(
interner: &mut NodeInterner,
function_body_id: &ExprId,
) -> (noirc_errors::Span, bool) {
fn function_info(interner: &NodeInterner, function_body_id: &ExprId) -> (noirc_errors::Span, bool) {
let (expr_span, empty_function) =
if let HirExpression::Block(block) = interner.expression(function_body_id) {
let last_stmt = block.statements().last();
Expand Down
2 changes: 1 addition & 1 deletion compiler/source-resolver/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "@noir-lang/noir-source-resolver",
"name": "@noir-lang/source-resolver",
"version": "1.1.4",
"license": "MIT",
"main": "./lib-node/index_node.js",
Expand Down
10 changes: 5 additions & 5 deletions compiler/source-resolver/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ export let read_file = function (source_id: any): string {
if (typeof result === "string") {
return result;
} else {
throw new Error("Noir source resolver funtion MUST return String synchronously. Are you trying to return anything else, eg. `Promise`?");
throw new Error("Noir source resolver function MUST return String synchronously. Are you trying to return anything else, eg. `Promise`?");
}
} else {
throw new Error('Not yet initialised. Use initialiseResolver(() => string)');
throw new Error('Not yet initialized. Use initializeResolver(() => string)');
}

};

function initialise(noir_resolver: (source_id: String) => string): (source_id: String) => string {
function initialize(noir_resolver: (source_id: String) => string): (source_id: String) => string {

if (typeof noir_resolver === "function") {
return noir_resolver;
Expand All @@ -26,6 +26,6 @@ function initialise(noir_resolver: (source_id: String) => string): (source_id: S
}
}

export function initialiseResolver(resolver: (source_id: String) => string): void {
resolveFunction = initialise(resolver);
export function initializeResolver(resolver: (source_id: String) => string): void {
resolveFunction = initialize(resolver);
}
6 changes: 3 additions & 3 deletions compiler/source-resolver/src/index_node.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/// <reference types="node" />

import { initialiseResolver, read_file } from './index.js';
import { initializeResolver, read_file } from './index.js';

initialiseResolver((source_id: String) => {
initializeResolver((source_id: String) => {
let fileContent = "";
try {
const fs = require("fs");
Expand All @@ -15,6 +15,6 @@ initialiseResolver((source_id: String) => {
return fileContent;
});

export { initialiseResolver, read_file };
export { initializeResolver, read_file };


10 changes: 5 additions & 5 deletions compiler/source-resolver/test/cjs_initialization.test.cjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const test = require('ava');

const { initialiseResolver, read_file } = require("../lib-node/index_node.js");
const { initializeResolver, read_file } = require("../lib-node/index_node.js");

test('It reads file from file system within read_file using default implementation.', t => {

Expand All @@ -14,7 +14,7 @@ test('It calls function from initializer within read_file function.', t => {

const RESULT_RESPONSE = "TEST";

initialiseResolver((source) => {
initializeResolver((source) => {
return source;
});

Expand All @@ -28,22 +28,22 @@ test('It communicates error when resolver returns non-String to read_file functi

const RESULT_RESPONSE = "TEST";

initialiseResolver((source) => {
initializeResolver((source) => {
return Promise.resolve(source);
});

const error = t.throws(() => {
read_file(RESULT_RESPONSE);
}, { instanceOf: Error });

t.is(error.message, 'Noir source resolver funtion MUST return String synchronously. Are you trying to return anything else, eg. `Promise`?');
t.is(error.message, 'Noir source resolver function MUST return String synchronously. Are you trying to return anything else, eg. `Promise`?');

});

test('It communicates error when resolver is initialized to anything but a function.', t => {

const error = t.throws(() => {
initialiseResolver(null);
initializeResolver(null);
}, { instanceOf: Error });

t.is(error.message, 'Provided Noir Resolver is not a function, hint: use function(module_id) => NoirSource as second parameter');
Expand Down
14 changes: 7 additions & 7 deletions compiler/source-resolver/test/esm_initialization.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@
*/
import test from 'ava';

import { initialiseResolver, read_file } from "../lib-node/index.js";
import { initializeResolver, read_file } from "../lib-node/index.js";

test('It communicates error when read_file was called before initialiseResolver.', t => {
test('It communicates error when read_file was called before initializeResolver.', t => {

const error = t.throws(() => {
const readResult = read_file("./package.json");
}, { instanceOf: Error });

t.is(error.message, 'Not yet initialised. Use initialiseResolver(() => string)');
t.is(error.message, 'Not yet initialized. Use initializeResolver(() => string)');

});

test('It calls function from initializer within read_file function.', t => {

const RESULT_RESPONSE = "TEST";

initialiseResolver((source) => {
initializeResolver((source) => {
return source;
});

Expand All @@ -35,22 +35,22 @@ test('It communicates error when resolver returns non-String to read_file functi

const RESULT_RESPONSE = "TEST";

initialiseResolver((source) => {
initializeResolver((source) => {
return Promise.resolve(source);
});

const error = t.throws(() => {
read_file(RESULT_RESPONSE);
}, { instanceOf: Error });

t.is(error.message, 'Noir source resolver funtion MUST return String synchronously. Are you trying to return anything else, eg. `Promise`?');
t.is(error.message, 'Noir source resolver function MUST return String synchronously. Are you trying to return anything else, eg. `Promise`?');

});

test('It communicates error when resolver is initialized to anything but a function.', t => {

const error = t.throws(() => {
initialiseResolver(null);
initializeResolver(null);
}, { instanceOf: Error });

t.is(error.message, 'Provided Noir Resolver is not a function, hint: use function(module_id) => NoirSource as second parameter');
Expand Down
2 changes: 1 addition & 1 deletion compiler/source-resolver/types/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export declare let read_file: (source_id: any) => string;
export declare function initialiseResolver(resolver: (source_id: String) => string): void;
export declare function initializeResolver(resolver: (source_id: String) => string): void;
4 changes: 2 additions & 2 deletions compiler/source-resolver/types/index_node.d.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import { initialiseResolver, read_file } from './index.js';
export { initialiseResolver, read_file };
import { initializeResolver, read_file } from './index.js';
export { initializeResolver, read_file };
Loading

0 comments on commit 88ec481

Please sign in to comment.