Haskell STG Kaynak, ama coreToStgArgs
aşağıdaki dökümü ile panicing görülmektedir.Bütün: BuradaAyıklanıyor Ben <code>Outputable</code> yoluyla <code>String</code> gibi bir Haskell kaynağının STG gösterimini elde etmek için çalışıyorum
[email protected] ~/Desktop/hue $ runhaskell test.hs
[foo :: forall a. Num a => a -> a
[GblId, Arity=2, Caf=NoCafRefs, Str=DmdType] =
\r srt:SRT:[] [$dNum a1] + $dNum a1 a1;,
bar :: Int -> Int
[GblId,test.hs: test.hs: panic! (the 'impossible' happened)
(GHC version 7.10.3 for x86_64-unknown-linux):
coreToStgArgs I# 3
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
dosya FooBar.hs
olduğunu
module FooBar where
foo a = a + a
bar :: Int -> Int
bar b = b + 3
kullandığım
test.hs
kaynağıdır: Ben ayıklamak istiyorum Bana benzer bir sorun haline tükendi önce
Birisi birkaç yıl benzer:
https://ghc.haskell.org/trac/ghc/ticket/7159
Ancak, o zamandan beri ne oldu hiçbir fikrim yok. Bu, rastgele bir Haskell kaynağının STG'sini çıkarmanın doğru yolu olup olmadığından emin değilim, bu yüzden işe yarayan daha iyi alternatifler varsa, bunları duymak isterim.
DÜZENLEME:
module FooBar where
foo a = a + a
bar :: Int -> Int
bar b = 3
Aslında, ilk bakışta, işler uyarılan Çekirdek Haskell zorlamaz eğer çalışmak görünür: STG çeviri bar b = b + 3
bar b = 3
değiştirildiğinde aşağıdaki program için başarılı görünmektedir ilkel operasyonlar gerçekleştirilecek. Örneğin bar b = 3 + 9
başarısız olur.
Yaptığınız hata "* Bu bir hata değil, CoreToStg.coreToStg' kullanmaya başlamadan önce" CorePrep.corePrepPgm "yi kullanmam gerekiyor. *". – melpomene
Ah, biraz mücadele ettikten sonra çalışıyor :) Teşekkür ederiz! –
Çalışma kodunu bir cevap olarak göndermelisiniz. – melpomene