Re: Haskell Dynamic Loading with -fllvm
On 12/12/12 18:03, David Terei wrote: Hi Nathan, So dynamic libraries should be supported on a few platforms but not all, not as many as the NCG. Support also varies from LLVM version. What platform and version of LLVM are you trying to utilize? And specifically what flags are you using? Also I believe even if it works, the code that LLVM generates for -dynamic is not very good. This is because it makes every symbol reference a dynamic reference, whereas the NCG only makes dynamic references for symbols in other packages. It ought to be possible to fix this by using the right symbol declarations (I'm guessing, I haven't looked into it). Cheers, Simon Cheers, David On 11 December 2012 08:53, Nathaniel Neitzke wrote: Essentially I have a use case that, if worked, would save countless hours in development time. I am writing a scientific computing web service utilizing the Repa and Snap libraries. The Snap framework has a dynamic loader that will load modules on the fly when the source files change. This works excellent! The problem is that the modules must be compiled with full optimizations (including -fllvm) or web service operations take minutes instead of < second to execute at run time. I do not mind the penalty paid for optimized compilation. It is still much faster than recompiling and linking the entire exe from scratch and restarting the server. The problem is when the code is compiled with -fllvm dynamically, it crashes. I believe this is a known issue as listed in this trac - http://hackage.haskell.org/trac/ghc/ticket/4210 NOTE: it says "The LLVM backend doesn't support dynamic libraries at the moment." My question is could anyone point me in the right direction as to what might need to be implemented support for this? Is anyone currently working on it? It would be a huge win for the work I am currently doing, to the point where if I can't find a way to get this working (even if it means diving in and attacking it myself), I may have to switch to another language/platform. Thanks, Nathan ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Haskell Dynamic Loading with -fllvm
Hi Nathan, So dynamic libraries should be supported on a few platforms but not all, not as many as the NCG. Support also varies from LLVM version. What platform and version of LLVM are you trying to utilize? And specifically what flags are you using? Cheers, David On 11 December 2012 08:53, Nathaniel Neitzke wrote: > Essentially I have a use case that, if worked, would save countless hours in > development time. I am writing a scientific computing web service utilizing > the Repa and Snap libraries. The Snap framework has a dynamic loader that > will load modules on the fly when the source files change. > > This works excellent! The problem is that the modules must be compiled with > full optimizations (including -fllvm) or web service operations take minutes > instead of < second to execute at run time. I do not mind the penalty paid > for optimized compilation. It is still much faster than recompiling and > linking the entire exe from scratch and restarting the server. > > The problem is when the code is compiled with -fllvm dynamically, it > crashes. I believe this is a known issue as listed in this trac - > > http://hackage.haskell.org/trac/ghc/ticket/4210 > > NOTE: it says "The LLVM backend doesn't support dynamic libraries at the > moment." > > My question is could anyone point me in the right direction as to what might > need to be implemented support for this? Is anyone currently working on it? > It would be a huge win for the work I am currently doing, to the point where > if I can't find a way to get this working (even if it means diving in and > attacking it myself), I may have to switch to another language/platform. > > Thanks, > Nathan > > > ___ > Glasgow-haskell-users mailing list > Glasgow-haskell-users@haskell.org > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Haskell Dynamic Loading with -fllvm
2012/12/11 Nathaniel Neitzke : > The problem is that the modules must be compiled with full optimizations > (including -fllvm) or web service operations take minutes instead of < > second to execute at run time. Such a big difference between the native codegen and LLVM on an optimized build sounds strange. Are you sure you are comparing equivalent flags otherwise? ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users