fable-compiler / repl-legacy

http://fable.io/repl
MIT License
14 stars 10 forks source link

Build errors #2

Closed StachuDotNet closed 6 years ago

StachuDotNet commented 7 years ago

Hey there!

When I attempt to npm run build after npm installing, I am running into the following error:

[!] (fable plugin) Error: Z:/fable-repl/src/fcs.fs(5,15): (5,21) error FSHARP: The namespace 'FSharp' is not defined. Make sure Fable server is running on port 61225

I believe that this error may be relevant to this portion of the log

WARNING: Cannot find PAKET info for project Z:\fable-repl\fable-repl.fsproj It won't be possible to resolve Fable libraries.

Here is the full log, for reference:

PS Z:\fable-repl> npm run build

fable-repl@1.0.0 prebuild Z:\fable-repl webpack -p --entry=./src/babel-standalone.js --output-path=./out --output-filename=babel-standalone.js --output-librar y=Babel

[BABEL] Note: The code generator has deoptimised the styling of "Z:/fable-repl/node_modules/babel-standalone/babel.js" a s it exceeds the max of "500KB". Hash: a98c64eec0e9cf0d0fcb Version: webpack 3.5.5 Time: 70479ms Asset Size Chunks Chunk Names babel-standalone.js 1.17 MB 0 [emitted] [big] null [24] (webpack)/buildin/module.js 506 bytes {0} [built] [71] (webpack)/buildin/global.js 808 bytes {0} [built] [142] ./src/babel-standalone.js 134 bytes {0} [built]

  • 351 hidden modules

fable-repl@1.0.0 build Z:\fable-repl dotnet fable npm-run rollup

Fable (1.2.0-beta-005) daemon started on port 61225 CWD: Z:\fable-repl cmd /C npm run rollup

fable-repl@1.0.0 rollup Z:\fable-repl rollup -c

./fable-repl.fsproj → ./out/bundle.js...

WARNING: Cannot find PAKET info for project Z:\fable-repl\fable-repl.fsproj It won't be possible to resolve Fable libraries.

Parsing ./fable-repl.fsproj... Killing process... Terminate batch job (Y/N)? N PS Z:\fable-repl> npm run build

fable-repl@1.0.0 prebuild Z:\fable-repl webpack -p --entry=./src/babel-standalone.js --output-path=./out --output-filename=babel-standalone.js --output-librar y=Babel

[BABEL] Note: The code generator has deoptimised the styling of "Z:/fable-repl/node_modules/babel-standalone/babel.js" a s it exceeds the max of "500KB". Hash: a98c64eec0e9cf0d0fcb Version: webpack 3.5.5 Time: 85443ms Asset Size Chunks Chunk Names babel-standalone.js 1.17 MB 0 [emitted] [big] null [24] (webpack)/buildin/module.js 506 bytes {0} [built] [71] (webpack)/buildin/global.js 808 bytes {0} [built] [142] ./src/babel-standalone.js 134 bytes {0} [built]

  • 351 hidden modules

fable-repl@1.0.0 build Z:\fable-repl dotnet fable npm-run rollup

Fable (1.2.0-beta-005) daemon started on port 61225 CWD: Z:\fable-repl cmd /C npm run rollup

fable-repl@1.0.0 rollup Z:\fable-repl rollup -c

./fable-repl.fsproj → ./out/bundle.js...

WARNING: Cannot find PAKET info for project Z:\fable-repl\fable-repl.fsproj It won't be possible to resolve Fable libraries.

Parsing ./fable-repl.fsproj... fable: Compiled fable-repl.fsproj fable: Compiled src\editor.fs [!] (fable plugin) Error: Z:/fable-repl/src/fcs.fs(5,15): (5,21) error FSHARP: The namespace 'FSharp' is not defined. Make sure Fable server is running on port 61225 src\fcs.fs Error: Z:/fable-repl/src/fcs.fs(5,15): (5,21) error FSHARP: The namespace 'FSharp' is not defined. Make sure Fable server is running on port 61225 at error (Z:\fable-repl\node_modules\rollup\dist\rollup.js:185:14) at Promise.resolve.then.catch.err (Z:\fable-repl\node_modules\rollup\dist\rollup.js:9183:6) at

npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! fable-repl@1.0.0 rollup: rollup -c npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the fable-repl@1.0.0 rollup script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\Stach\AppData\Roaming\npm-cache_logs\2017-09-03T13_02_38_165Z-debug.log Closing Fable daemon... npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! fable-repl@1.0.0 build: dotnet fable npm-run rollup npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the fable-repl@1.0.0 build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\Stach\AppData\Roaming\npm-cache_logs\2017-09-03T13_02_38_693Z-debug.log

StachuDotNet commented 7 years ago

A bit more research. I think that this is relevant to this dependency?

image

as a normal dotnet restore seems to note the following:

image

MangelMaxime commented 7 years ago

Could be nice to have the README telling us how to build the fable-repl project. I would like to contribute/experiment with it. (Mostly on the UI part, for now to make the UX better).

/cc @ncave @alfonsogarciacaro

StachuDotNet commented 7 years ago

I would also love to contribute for the same reasons, but am currently too ignorant to try.

Specifically, I would like to port the F# Koans project into Fable repl itself, for use on the fsharp.org website. Any effort would be highly appreciated :)

On Tue, Oct 3, 2017 at 9:56 AM, Maxime Mangel notifications@github.com wrote:

Could be nice to have the README telling us how to build the fable-repl project. I would like to contribute/experiment with it. (Mostly on the UI part, for now to make the UX better).

/cc @ncave https://github.com/ncave @alfonsogarciacaro https://github.com/alfonsogarciacaro

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fable-compiler/fable-repl/issues/2#issuecomment-333849820, or mute the thread https://github.com/notifications/unsubscribe-auth/AA3VvqTMYyzZfIkSembBxiCaUexOtASkks5soj0HgaJpZM4PLLeZ .

alfonsogarciacaro commented 7 years ago

As announced at FableConf, my intention is to make the REPL something like a component that can be embedded anywhere, and when this is ready build the REPL in fable.io in the same way. The software I presented is currently on the test2 branch of this repo but I'm planning to move it to this other repo to increase synergies with Ionide.

Again, writing a script to make a reproducible build is not difficult but requires some effort. Ah, so many things so little time...

MangelMaxime commented 7 years ago

Ok, I will try again to build test2 branch, but every compilation that I tried from the scripts in the package.json failed.

Can you tell us this repo is enough or if we should look to others repo too? Just in large step to help quickstart. If I manage to build it, I promise to make a README to resume the steps :)

After, we understand that we all have limited time do not worry too much :)

StachuDotNet commented 7 years ago

Thanks so much for the update, Alfonso. I'll play with the test2 branch tonight. :) Exciting stuff!

On Wed, Oct 4, 2017 at 4:55 PM, Maxime Mangel notifications@github.com wrote:

Ok, I will try again to build test2 branch, but every compilation that I tried from the scripts in the package.json failed.

Can you tell us this repo is enough or if we should look to others repo too? Just in large step to help quickstart. If I manage to build it, I promise to make a README to resume the steps :)

After, we understand that we all have limited time do not worry too much :)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fable-compiler/fable-repl/issues/2#issuecomment-334286644, or mute the thread https://github.com/notifications/unsubscribe-auth/AA3VvuDIUq7zONUPwqY6s3rdstLqftHsks5so_DDgaJpZM4PLLeZ .

alfonsogarciacaro commented 7 years ago

@StachuDotNet If you do and IIRC you'll need to have Fable and FCS repos cloned on same level (as explained here). Then:

# This will also run `dotnet restore`
npm install 

npm run build-babel
# Takes long time, if successful you only need to do it once
npm run build-fcs

# Start compiling the app in watch mode
npm run start-app

If you have a look at the package.json file you'll notice in this case npm scripts are calling dotnet-fable :)

MangelMaxime commented 7 years ago

Ok, for now I am stuck in building github.com/ncave/FSharp.Compiler.Service/ repo.

So we need to have dotnet 1.x installed ? And not dotnet 2.0 ?

The specified framework 'Microsoft.NETCore.App', version '1.1.1' was not found.

  • Check application dependencies and target a framework version installed at: /
  • Alternatively, install the framework version '1.1.1'.

Edit:

I also got this warning/error:

Restoring NuGet package MicroBuild.Core.Sentinel.1.0.0. WARNING: Unable to find version '1.0.0' of package 'MicroBuild.Core.Sentinel'. Unable to find version '1.0.0' of package 'MicroBuild.Core.Sentinel'.

Will try again tomorrow.

ncave commented 7 years ago

@MangelMaxime Yes, unfortunately until this PR goes through FCS-Fable still needs dotnet 1.x for the codegen step. The other warning/error you can ignore.

I haven't seen @alfonsogarciacaro's presentation yet so I'm not sure how far the project has advanced. The new repl (this repo) is very much still a work in progress, so there are a lot of manual steps. If you really want to push forward and not wait until it's more stable, here are some of the steps to build the FCS part:

1) Install both dotnet core 1.04 and 2.0 (soon only 2.0 will be needed). 2) Clone FCS-fable branch, rename to FSharp.Compiler.Service_fable 3) Run the code generation task in FCS-fable: fcs\build CodeGen.Fable 4) Clone FCS-export branch, rename to FSharp.Compiler.Service_export 5) Run the metadata export task in FCS-export: fcs\build Export.Metadata (this will copy the dotnet core 2.0 assemblies that FCS-fable needs into folder /temp/metadata2). 6) You should be able now to build your repl and you have the metadata files for it. 7) Build repl with @alfonsogarciacaro test branch. 8) Have fun.

MangelMaxime commented 7 years ago

Thanks you @ncave will try it.

MangelMaxime commented 7 years ago

Ok so, I manage to build the repos following ncave instructions.

I needed to add to the FCS repo otherwise I got error thanks to dotnet/nuget resolution..

NuGet.Config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
  <disabledPackageSources>
     <clear />
  </disabledPackageSources>
</configuration>

When building the REPL target from Fable, I am having this error:

npm ERR! A

complete log of this run can be found in: npm ERR! C:\Users\mange\scoop\persist\nodejs\cache_logs\2017-10-05T08_39_50_217Z-debug.log demo master $ >< $ npm run postbuild

@ postbuild C:\Users\mange\Workspace\Github\fable-compiler\Fable\src\dotnet\Fable.JS\demo node ../../../../node_modules/rollup/bin/rollup -c

C:\Users\mange\Workspace\Github\fable-compiler\Fable\src\dotnet\Fable.JS\demo\out\Main.js → repl\bundle.js... [!] RangeError: Maximum call stack size exceeded RangeError: Maximum call stack size exceeded at Node.someChild (C:\Users\mange\Workspace\Github\fable-compiler\Fable\node_modules\rollup\dist\rollup.js:5782:12) at Node.hasEffects (C:\Users\mange\Workspace\Github\fable-compiler\Fable\node_modules\rollup\dist\rollup.js:5699:32) at included.someChild.child (C:\Users\mange\Workspace\Github\fable-compiler\Fable\node_modules\rollup\dist\rollup.js:5699:58) at keys.some.key (C:\Users\mange\Workspace\Github\fable-compiler\Fable\node_modules\rollup\dist\rollup.js:5790:11) at Array.some (native) at Node.someChild (C:\Users\mange\Workspace\Github\fable-compiler\Fable\node_modules\rollup\dist\rollup.js:5783:20) at Node.hasEffects (C:\Users\mange\Workspace\Github\fable-compiler\Fable\node_modules\rollup\dist\rollup.js:5699:32) at included.someChild.child (C:\Users\mange\Workspace\Github\fable-compiler\Fable\node_modules\rollup\dist\rollup.js:5699:58) at keys.some.key (C:\Users\mange\Workspace\Github\fable-compiler\Fable\node_modules\rollup\dist\rollup.js:5790:11) at Array.some (native)

npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @ postbuild: node ../../../../node_modules/rollup/bin/rollup -c npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @ postbuild script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\mange\scoop\persist\nodejs\cache_logs\2017-10-05T08_41_03_893Z-debug.log

In order to pass this step, I needed to modify run "webpack": "node ../../../../node_modules/webpack/bin/webpack", from src\dotnet\Fable.JS\demo with this webpack config:

var path = require('path');

function resolve(filePath) {
  return path.join(__dirname, filePath)
}

var fableOptions = {
  fableCore: resolve("../../../../build/fable-core"),
  plugins: [],
  define: [
    "COMPILER_PUBLIC_API",
    "FX_NO_CORHOST_SIGNER",
    "FX_NO_LINKEDRESOURCES",
    "FX_NO_PDB_READER",
    "FX_NO_PDB_WRITER",
    "FX_NO_WEAKTABLE",
    "FX_REDUCED_EXCEPTIONS",
    "NO_COMPILER_BACKEND",
    "NO_INLINE_IL_PARSER"
  ]
};

module.exports = {
  // entry: resolve('../Fable.JS.fsproj'),
  entry: resolve('./out/Main.js'),
  output: {
    filename: 'bundle.js',
    path: resolve('./repl'),
    library: "Fable"
  },
  //devtool: "source-map",
  module: {
    // rules: [
    //   {
    //     test: /\.fs(x|proj)?$/,
    //     use: {
    //       loader: resolve("../../../js/fable-loader"),
    //       options: fableOptions
    //     }
    //   }
    // ]
  },
};

Then I ran: npm run minify.

Then, I tried to build fable-repl, again I got some problem with dotnet/nuget.

Workspace\Github\fable-compiler\fable-repl\src\Fable.fsproj. Restoring packages for C:\Users\mange\Workspace\Github\fable-compiler\fable-repl\src\Fable.fsproj... C:\Program Files\dotnet\sdk\2.0.0\NuGet.targets(102,5): error : Failed to retrieve information about 'System.ValueTuple' from remote source 'C:\Users\mange.dotnet\NuGetFallbackFolder'. [C:\Users\mange\Workspace\Github\fable-compiler\fable-repl\Fable.REPL.sln]

So I added, the classic NuGet.Config.

When running npm run build-babel, I got this error:

ERROR in Entry module not found: Error: Can't resolve './src/Monaco/babel-standalone.js' in 'C:\Users\mange\Workspace\Github\fable-compiler\fable-repl'

So i copy/paste the babel-standalone.js file from Fable/templ/repl. For the target npm run build-babel, we can probably remove the source no ? Alos, for others, this target take a long time (538 918ms ~ 9min) and you get some warning from babel too.

When running npm run build-fcs, I get this error:

fable: Compiled ..\Fable\src\dotnet\Fable.Compiler\FSharp2Fable.fs fable: Compiled ..\Fable\src\dotnet\Fable.Core\AST\AST.Fable.fs fable: Compiled ..\Fable\src\dotnet\Fable.Core\AST\AST.Common.fs [!] (fable plugin) Error: C:/Users/mange/Workspace/Github/fable-compiler/Fable/src/dotnet/Fable.Compiler/FSharp2Fable.Util.fs(1373,22): (1373,62) error FABLE: Cannot find replacement for Microsoft.FSharp.Collections.ListModule::SplitAt Make sure Fable server is running on port 62639 ..\Fable\src\dotnet\Fable.Compiler\FSharp2Fable.Util.fs Error: C:/Users/mange/Workspace/Github/fable-compiler/Fable/src/dotnet/Fable.Compiler/FSharp2Fable.Util.fs(1373,22): (1373,62) error FABLE: Cannot find replacement for Microsoft.FSharp.Collections.ListModule::SplitAt Make sure Fable server is running on port 62639 at error (C:\Users\mange\Workspace\Github\fable-compiler\fable-repl\node_modules\rollup\dist\rollup.js:185:14) at Promise.resolve.then.catch.err (C:\Users\mange\Workspace\Github\fable-compiler\fable-repl\node_modules\rollup\dist\rollup.js:9183:6) at

I tried with Fable 1.2.4 but still getting the error. So for now we are stuck I think until we add the replacement to Fable.

MangelMaxime commented 7 years ago

This is somehow really strange because it's seems we have the splitAt replacement defined: https://github.com/fable-compiler/Fable/blob/master/src/js/fable-core/List.ts#L113

Also, the message Make sure Fable server is running on port 62639 seems strange here. Is it possible that the Fable Server timeout ?

MangelMaxime commented 7 years ago

Ok, so by running Fable alone via fable start and then running .\node_modules\.bin\rollup --verbose --config .\rollup.config.js I can go past the previous error so it's probably something due to a timeout. But again, I get this error with rollup

[!] RangeError: Maximum call stack size exceeded

I will try to use webpack and see if this works here.

MangelMaxime commented 7 years ago

Oh god I got something almost running finally :D

So instead of Rollup for build-fcs, I used webpack: .\node_modules\.bin\webpack --config .\webpack.config.repl.js

webpack.config.repl.js

var path = require("path");
var webpack = require("webpack");
var fableUtils = require("fable-utils");

function resolve(filePath) {
  return path.join(__dirname, filePath)
}

var babelOptions = fableUtils.resolveBabelOptions({
  // presets: [["es2015", { "modules": false }]],
  // plugins: ["transform-runtime"]
});

var isProduction = process.argv.indexOf("-p") >= 0;
console.log("Bundling for " + (isProduction ? "production" : "development") + "...");

function getWebpackConfig(entry, filename, library) {
  return {
    devtool: "source-map",
    entry: resolve(entry),
    output: {
      filename: filename + '.js',
      path: resolve('./public'),
      publicPath: 'public',
      library: library
    },
    resolve: {
      modules: [resolve("./node_modules/")]
    },
    devServer: {
      // If we use public we won't have access to node_modules
      contentBase: resolve('.'),
      port: 8080
    },
    externals: {
      "monaco": "var monaco",
      "editor": "var editor",
      "FableREPL": "var FableREPL",
    },
    module: {
      rules: [
        {
          test: /\.fs(x|proj)?$/,
          use: {
            loader: "fable-loader",
            options: {
              fableCore: resolve("../Fable/build/fable-core"),
              define: [
                "COMPILER_PUBLIC_API",
                "FX_NO_CORHOST_SIGNER",
                "FX_NO_LINKEDRESOURCES",
                "FX_NO_PDB_READER",
                "FX_NO_PDB_WRITER",
                "FX_NO_WEAKTABLE",
                "FX_REDUCED_EXCEPTIONS",
                "NO_COMPILER_BACKEND",
                "NO_INLINE_IL_PARSER"
              ],
              port: 63477
            }
          }
        },
        {
          test: /\.js$/,
          exclude: /node_modules/,
          use: {
            loader: 'babel-loader',
            options: babelOptions
          },
        },
        {
          test: /\.json$/,
          loader: 'json-loader'
        },
        {
          test: /\.sass$/,
          use: [
            "style-loader",
            "css-loader",
            "sass-loader"
          ]
        }
      ]
    }
  };
}

module.exports = [
  getWebpackConfig('./src/Fable.REPL/Fable.REPL.fsproj', 'fable-repl', 'fable-repl')
]

Finally, I ran npm run start-app and got the webpage displayed:

image

But, when I edit the editor content I get this error:

TypeError: phase2bytes is undefined TastPickle.fs:759:14

Please ignore the error about:

http://localhost:8080/public/fable-repl.js not fount

I loaded it via another file name because, I mess up the webpack config before. :D

Also, if I hit Alt+Enter, then the webpage reload instead of executing the F# code. I will keep my investigation, but if you have any clue.

Edit: Sorry for all the spam, I was trying to keep the step up-to-date with what I was doing..

MangelMaxime commented 7 years ago

Ok, so the error I am getting comes from the FSharp.Compiler.Service_fable project.

When executing this function, the argument phase2bytes is undefined. From here, I don't really know how to fix it.

MangelMaxime commented 7 years ago

Ok, I got intellisense and compilation working by using fable_16.0.2 instead of fable branch.

/cc @ncave I think, there is a bug on this lines

ncave commented 7 years ago

@MangelMaxime Wow, you jumped through a lot of hoops :)

It's not a bug, it's a feature :), but let me explain: What version of FSharp.Core.dll are you using?

I hope that makes sense. Again, as I said the project requires a lot of manual tinkering at the moment, but I applaud your effort and hopefully we can automate most steps (paket github references etc.) so people can easily contribute, which is the whole idea behind it being a community project.

MangelMaxime commented 7 years ago

Yes, I learned to jump today :)

If this is a feature then everything is fine :)

I don't know the version, I am using probably the older one because I didn't updated them myself and they are already here in @alfonsogarciacaro branch.

I am fine using the new exported dotnet core 2.0 metadata, will try them. Also, is it normal all the problem I am having with rollup ?

And yes, I think can improve the workflow and one easy way could be to use git submodules. I know that not everyone love them, but in our case they could ensure the project hierarchy and which version we are using. I will probably test it, as I am working on 2 laptop (work and personal) to see if this make things easier. This could also, give us a start to have a working hierarchy and work at several on the project.

I will probably be using it for my work so should have time to invest in it.

ncave commented 7 years ago

@MangelMaxime Also, but you probably figured this out yourself: Fable 1.2.4 does not seem to work properly with the repl, so use either 1.2.3 or 1.3.0-*. Minification has been a challenge, I looked at other options, but only uglifyjs seems to work more or less reliably (depends on the version, it may need some options turned off). Rollup usually works fine in the repl, I certainly prefer it to webpack as it works with es2015 and produces much cleaner code, but it's a personal preference.

MangelMaxime commented 7 years ago

@ncave In general, I prefer rollup for library and webpack for application mostly speaking about Elmish ones because we introduce HMR and support for sass is better. So here no real preference.

And yes, I probably experiment some problem with Fable 1.2.4 because, I got some poart build with this version of Fable and when I was starting Fable via dotnet fable start it was a 1.3.0 so probably got lucky here.

As said, I need to redo the whole think on my other laptop, so this time as I know a little more what I am doing I will try to make my step reproducible and contribute fixes to the different when needed like the NuGet.Config which should be in the root of all our project.

If we use rollup, at #FableConf Sven (one of babel maintainers) told us that babel-minify can produce smaller code than uglifyjs.

ncave commented 7 years ago

@MangelMaxime Unfortunately babel-minify still can't handle the FCS-fable code, but it's close (or much closer than before when it was still called babili), if we can figure out what is it it's tripping on, perhaps we can submit the problem and have it fixed. If you're using the old dotnet binaries, that's perfectly fine, just replace the FSharp.Core with a new one (net45 flavor) or keep using the fable_16.0.2 branch.

alfonsogarciacaro commented 7 years ago

Hi there! Sorry that you had to overcome so many hurdles @MangelMaxime 😅 I second @ncave's applause for your effort. Unfortunately, last time I managed to build this was 3:00AM before FableConf so I'm sure I didn't do it in the cleanest way :wink:

StackOverflow exception with Rollup

Yeah, I got the same too. It's weird because apparently @ncave didn't have the problem, but we managed to fix it by compiling first FCS+Fable using fable-splitter and later bundle with Rollup :confused: BTW, I also have SO exceptions in Fable if I use a build from macOS, not Windows (take that for netcore cross-platform compilers MSFT). Which system are you using? It may be that I published 1.2.4 using a macOS build.

This is somehow really strange because it's seems we have the splitAt replacement defined:

Damn, I added splitAt recently to Fable's codebase and noticed it was not defined in fable-core (I think splitInto is also missing by the way) so I added it, but I hadn't tested it yet, sorry 😞 When compiling FCS+Fable to JS I usually use a custom build so I don't notice these things...

Also, the message Make sure Fable server is running on port 62639 seems strange here. Is it possible that the Fable Server timeout ?

This is just a generic message when there's an error that cannot be handled, as I assumed that more often than not people would forgot to run Fable server (this is when I was thinking that dotnet fable start and Webpack/Rollup would run in different terminals).

As an appreciation to your effort, I'll try to make the build system more reproducible (maybe adding a CI server). I'm also afraid of git submodules as they always confuse me, but if you can make them work it would be great. I was also thinking to just make the path to the other repos configurable and print a warning if they cannot be found.

Also as commented above, my secret plan is to move this to the ionide-fable repo and make Krzys fix everything for us :wink:

MangelMaxime commented 7 years ago

@alfonsogarciacaro No problem, I got something running in the end so now I can help :)

I used window to build the repl with Fable 1.2.4 and Fable 1.3 yes I mixed the version just for more fun :D

I believe the splitAt problem was resolved when using Fable 1.3.

I will try to make the submodules work because, I don't really how we can manage the repo dependencies otherwise. I already use them on some project and one of the ecosystem I used in the past even decide to go with git submodules to manage the deps. So should work fine. We can always change later, but having something with a quick setup is probably the first move needed. If we want to appeal contributors and even for us.

If, I make the submodules we should also gain the benefit of the CI, after the compilation process will probably take time but that's nothing we can do about it for now. Like some steps required several minutes ATM.

I will work on that in the next days and keep you inform :)

MangelMaxime commented 7 years ago

Quick update, I now know what is needed to build the fable-repl, I tried the submodules but was having a lot of problems with them... Also, the user experience wasn't that nice so i removed them.

I am testing another way to make the setup phase and user experience easier.

MangelMaxime commented 7 years ago

4 has been merged.

@alfonsogarciacaro Spoke about some minor editing to fcs.fs needed for him ? Can you develop ?

And also, still need to fix Build.App target because of Uglify failing again report come from @alfonsogarciacaro