FSCL.Compiler by Gabriele Cocco

<PackageReference Include="FSCL.Compiler" Version="1.3.2" />

 FSCL.Compiler 1.3.2

FSCL Compiler is a source-to-source compiler to program OpenCL from within F# using functional composition of functions, methods, lambdas and collection functions. The compiler is able to produce the OpenCL C99 source code out of quoted expressions, where expressions can contain a reference or a call to an FSCL kernel, a lambda, a collection function (e.g. Array.reduce) or a regular function.

<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>FSCL.Compiler</id>
    <version>1.3.2</version>
    <authors>Gabriele Cocco</authors>
    <owners>Gabriele Cocco</owners>
    <licenseUrl>http://github.com/FSCL/FSCL.Compiler/blob/master/LICENSE.txt</licenseUrl>
    <projectUrl>http://github.com/FSCL/FSCL.Compiler</projectUrl>
    <iconUrl>https://avatars1.githubusercontent.com/u/8271254</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>FSCL Compiler is a source-to-source compiler to program OpenCL from within F# using functional composition of functions, methods, lambdas and collection functions. The compiler is able to produce the OpenCL C99 source code out of quoted expressions, where expressions can contain a reference or a call to an FSCL kernel, a lambda, a collection function (e.g. Array.reduce) or a regular function.</description>
    <summary>F# to OpenCL compiler</summary>
    <releaseNotes>Fixed bug and extended support for structs and records. Now you can use both custom F# records and structs (and arrays of records and structs) as parameters of kernels and functions. Also, you can declare private/local structs and records using record initialisation construct, struct parameterless constructor and "special" struct constructor (a constructor taking N arguments, each of one matching one of the N fields, in the order).
- Valid record decl: let myRec = { field1 = val1; ... fieldN = valN }
- Valid default struct decl: let myStruct = new MyStruct()
- Valid "special constructor" struct decl: let myStruct = new MyStruct(valForField1, valForField2, ... valForFieldN)
- NOT valid struct decl: let myStruct = new MyStruct(&lt;Args where the i-TH is not a value assigned to the i-TH field&gt;)</releaseNotes>
    <copyright>Copyright 2013</copyright>
    <tags>Meta-Programming Compiler Compilation OpenCL Parallel-programming Heterogenous-computing F# Quotations</tags>
  </metadata>
</package>