Comments (4)
The Bosque verifier expects an entry function called "main". If you rename zeroDivisionFunction to main it should work.
from legend-pure.
Response from post request with above to Docker container at /verify:
{ "killed": false, "code": 1, "signal": null, "cmd": "node /usr/src/app/node_modules/morphir-bsq-transpiler/bsqdep/impl/bin/runtimes/bsqcheck.js --check /usr/src/app/node_modules/morphir-bsq-transpiler/bsqdep/impl/transpile.bsq" }
from legend-pure.
For reference, the generated IR from the example function we created earlier:
{"formatVersion":1,"distribution":["library",[["external"],["morphir"]],[],{"modules":[{"name":[["transform"]],"def":["public",{"types":[],"values":[[["main"],["public",{"inputTypes":[[["requests"],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",41],["startColumn",1],["endLine",50],["endColumn",1]]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",41],["startColumn",1],["endLine",50],["endColumn",1]]]],[["available"],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",41],["startColumn",1],["endLine",50],["endColumn",1]]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",41],["startColumn",1],["endLine",50],["endColumn",1]]]],[["allow","partials"],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",41],["startColumn",1],["endLine",50],["endColumn",1]]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",41],["startColumn",1],["endLine",50],["endColumn",1]]]]],"outputType":["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",41],["startColumn",1],["endLine",50],["endColumn",1]]],"body":["if_then_else",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",43],["startColumn",4],["endLine",43],["endColumn",5]]],["apply",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",43],["startColumn",12],["endLine",43],["endColumn",12]]],["apply",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],[]],[]],["reference",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],[]],[]],[]],[[["morphir"],["s","d","k"]],[["basics"]],["less","than"]]],["literal",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",43],["startColumn",7],["endLine",43],["endColumn",10]]],["float_literal",0.25]]],["apply",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",43],["startColumn",24],["endLine",43],["endColumn",24]]],["apply",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],[]],["reference",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],[]],[]],[[["morphir"],["s","d","k"]],[["basics"]],["divide"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",43],["startColumn",15],["endLine",43],["endColumn",22]]],["requests"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",43],["startColumn",27],["endLine",43],["endColumn",35]]],["available"]]]],["literal",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["int"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",44],["startColumn",8],["endLine",44],["endColumn",8]]],["int_literal",0]],["if_then_else",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",45],["startColumn",8],["endLine",45],["endColumn",9]]],["apply",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",45],["startColumn",21],["endLine",45],["endColumn",21]]],["apply",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],[]],[]],["reference",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],[]],[]],[]],[[["morphir"],["s","d","k"]],[["basics"]],["less","than"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",45],["startColumn",12],["endLine",45],["endColumn",19]]],["requests"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",45],["startColumn",24],["endLine",45],["endColumn",32]]],["available"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",46],["startColumn",13],["endLine",46],["endColumn",20]]],["requests"]],["if_then_else",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",47],["startColumn",12],["endLine",47],["endColumn",13]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",47],["startColumn",16],["endLine",47],["endColumn",28]]],["allow","partials"]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",48],["startColumn",17],["endLine",48],["endColumn",25]]],["available"]],["literal",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["int"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",49],["startColumn",16],["endLine",49],["endColumn",16]]],["int_literal",0]]]]]}]]]}]}]}]}
which comes from Pure function:
function meta::external::language::morphir::transform::tests::getRentals(requests: Number[1], available: Number[1], allowPartials: Boolean[1]): Number[1]
{
if(0.25 < $requests / $available,
|0,
|if($requests < $available,
|$requests,
|if($allowPartials,
|$available,
|0)))
}
from legend-pure.
Updated example:
{"formatVersion":1,"distribution":["library",[["external"],["morphir"]],[],{"modules":[{"name":[["transform"]],"def":["public",{"types":[],"values":[[["main"],["public",{"inputTypes":[[["requests"],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",52],["startColumn",1],["endLine",60],["endColumn",1]]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",52],["startColumn",1],["endLine",60],["endColumn",1]]]],[["available"],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",52],["startColumn",1],["endLine",60],["endColumn",1]]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",52],["startColumn",1],["endLine",60],["endColumn",1]]]],[["allow","partials"],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",52],["startColumn",1],["endLine",60],["endColumn",1]]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",52],["startColumn",1],["endLine",60],["endColumn",1]]]]],"outputType":["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",52],["startColumn",1],["endLine",60],["endColumn",1]]],"body":["let_definition",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",4],["endLine",54],["endColumn",6]]],["maximum","allowed"],{"inputTypes":[],"outputType":["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],"body":["if_then_else",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",25],["endLine",54],["endColumn",26]]],["apply",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",33],["endLine",54],["endColumn",33]]],["apply",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],[]],[]],["reference",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],[]],[]],[]],[[["morphir"],["s","d","k"]],[["basics"]],["less","than"]]],["literal",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",29],["endLine",54],["endColumn",31]]],["float_literal",0.5]]],["apply",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",45],["endLine",54],["endColumn",45]]],["apply",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],[]],["reference",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],[]],[]],[[["morphir"],["s","d","k"]],[["basics"]],["divide"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",36],["endLine",54],["endColumn",43]]],["requests"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",48],["endLine",54],["endColumn",56]]],["available"]]]],["apply",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",72],["endLine",54],["endColumn",72]]],["apply",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],[]],["reference",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],[]],[]],[[["morphir"],["s","d","k"]],[["basics"]],["divide"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",62],["endLine",54],["endColumn",70]]],["available"]]],["literal",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",74],["endLine",54],["endColumn",74]]],["float_literal",2]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",54],["startColumn",80],["endLine",54],["endColumn",87]]],["requests"]]]},["if_then_else",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",55],["startColumn",4],["endLine",55],["endColumn",5]]],["apply",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",55],["startColumn",17],["endLine",55],["endColumn",17]]],["apply",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],[]],[]],["reference",["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["function",{},["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],[]],["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],[]],[]],[]],[[["morphir"],["s","d","k"]],[["basics"]],["less","than"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",55],["startColumn",8],["endLine",55],["endColumn",15]]],["requests"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",55],["startColumn",20],["endLine",55],["endColumn",33]]],["maximum","allowed"]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",56],["startColumn",9],["endLine",56],["endColumn",16]]],["requests"]],["if_then_else",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",57],["startColumn",8],["endLine",57],["endColumn",9]]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["bool"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",57],["startColumn",12],["endLine",57],["endColumn",24]]],["allow","partials"]],["variable",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",58],["startColumn",13],["endLine",58],["endColumn",26]]],["maximum","allowed"]],["literal",["reference",{},[[["morphir"],["s","d","k"]],[["basics"]],["float"]],[],["sourceInformation",["source","\/core\/external\/language\/morphir\/tests\/transformAndSerializeTests.pure"],["startLine",59],["startColumn",12],["endLine",59],["endColumn",14]]],["float_literal",0.0]]]]]}]]]}]}]}]}
which comes from Pure function:
function meta::external::language::morphir::transform::tests::getRentalsTwo(requests: Number[1], available: Number[1], allowPartials: Boolean[1]):Number[1]
{
let maximumAllowed = if (0.5 < $requests / $available, | $available / 2, | $requests);
if($requests < $maximumAllowed,
|$requests,
|if($allowPartials,
|$maximumAllowed,
|0.0));
}
from legend-pure.
Related Issues (20)
- CVE-2020-15250 (Medium) detected in junit-4.11.jar - autoclosed HOT 1
- Snowflake support for convertVarchar128() HOT 1
- MemSQL support for modulus operator
- Expand relational grammar to allow dashes in schema names
- SubtypeOf should fallback on graph _subTypeOf when to search for classes in the graph
- Support the use of Store objects that do not exist globally, but rather via local variables.
- Persistence specification
- Provide a way to invoke generic functions with explicit type arguments
- Turn on Sonar report for PR quality control check HOT 13
- Persistence Generation for Aws
- Fails to build HOT 3
- Test issue
- Persistence test framework
- TestPureDate.java fails on Java 11.0.9
- WhiteSource security checks fails on version of y18n used via webpack-dev-server HOT 1
- Legend Light IDE's PURE URL is ignored
- Invalid Java generation for function eval with unused result
- Enhancing error message
- Remove validation restriction of data parameter to getAll being only a constant or variable (to enable FunctionExpression)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from legend-pure.