1

私はこのコードを持っていますYoghurt.Fruit.fs

module Yoghurt.Fruit
 open FSharp.Data
 type Fruit = JsonProvider<"fruit.json">
 let fruit = Fruit.Load("fruit.json")
 let fruitExists name = fruit.Callouts |> Array.exists (fun el -> el.Name = name)

Mono を使用して OSX でこのコンパイル コマンドを実行しています。 fsharpc --nologo -r ../../fsharp-lib/Fhsarp.Data/FSharp.Data.dll Yoghurt.Fruit.fs -a -o:bin/Yoghurt.Fruit.dll

このエラーが発生します

* Assertion at threads.c:1360, condition 'internal' not met

Illegal instruction: 4

(nb first ' internal の前に実際に ` ここで書式設定のために編集)

このエラーが何を意味するのか、なぜエラーが発生するのかわかりません。この方法でコンパイルしているファイルのコレクションがあり.fsます(それらに対してテストを実行し、最終的にそれらすべてを.fsxファイルで使用します)。メイン.fsxファイルには、このコードがあります

#r "/Users/philharvey/Documents/code/fsharp/fsharp-lib/Fhsarp.Data/FSharp.Data.dll"
open FSharp.Data
type Fruit = JsonProvider<"fruit.json">
let fruit = Fruit.Load("fruit.json")
let fruitExists name = fruit.Callouts |> Array.exists (fun el -> el.Name = name)

これはうまく機能します。このコードをモジュールに引き出して、個別にテストしたいと本当に思っています(fruitExists問題をこれに要約したため、リストしていない機能があります)。

誰にも洞察がありますか?

編集

の結果mono -V

Mono JIT compiler version 3.0.10 ((no/eff4cb5 Sat Apr 13 19:24:30 EDT 2013)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       altstack
    Notification:  kqueue
    Architecture:  x86
    Disabled:      none
    Misc:          softdebug
    LLVM:          yes(3.2svn-mono)
    GC:            Included Boehm (with typed GC)

fsharpc与えるF# Compiler for F# 3.0 (Open Source Edition)

(そして追加情報については、これをテストに使用していますMono.framework/Versions/3.0.10/bin/nunit-console4

編集 2

FSharp.Data Version 1.1.5

編集 3

詳細: 上記のように を使用してテストしまし.fsxた。それは機能しますが、機能しません(上記と同じエラーが発生します)。ここからテンプレート (基本) を使用してテストも行いましたhttp://blogs.msdn.com/b/fsharpteam/archive/2011/07/30/f-console-application-template.aspx。タイプ プロバイダーを使用すると、同じエラーが発生します。fsharpifsharpcJsonProviderfsharpifsharpcfsharpc

4

1 に答える 1

0

にアップグレードしmono 3.2.1て最新バージョンを使用していることを確認しF# 1.1.9たところ、問題は解消されました。

于 2013-08-26T20:26:17.463 に答える