Re: [Haskell-cafe] Getting a segmentation fault when starting/stopping the RTS, from C, several times.

2012-07-15 Thread Albert Y. C. Lai

On 12-07-10 11:35 PM, Brandon Allbery wrote:

Quoth the Fine Manual (8.2.1.1. Using your own main()
http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi-ghc.html#using-own-main):

There can be multiple calls to |hs_init()|, but each one should be
matched by one (and only one) call to |hs_exit()|^[14
http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi-ghc.html#ftn.id740774]
.

So this should theoretically work.


Except that [14] says: the outermost hs_exit() de-initialises, and 
afterwards, cannot reliably re-initialise in current implementations.


So the currently working use-case is just:
Prog ::= nop | hs_init(); Prog; hs_exit()

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Getting a segmentation fault when starting/stopping the RTS, from C, several times.

2012-07-15 Thread Felipe Almeida Lessa
Em 15/07/2012 18:38, Albert Y. C. Lai tre...@vex.net escreveu:

 On 12-07-10 11:35 PM, Brandon Allbery wrote:

 Quoth the Fine Manual (8.2.1.1. Using your own main()
 
http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi-ghc.html#using-own-main
):

 There can be multiple calls to |hs_init()|, but each one should be
 matched by one (and only one) call to |hs_exit()|^[14
 
http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi-ghc.html#ftn.id740774
]

 .

 So this should theoretically work.


 Except that [14] says: the outermost hs_exit() de-initialises, and
afterwards, cannot reliably re-initialise in current implementations.

 So the currently working use-case is just:
 Prog ::= nop | hs_init(); Prog; hs_exit()

Would that be:

Prog ::= nop | hs_init(); Prog'; hs_exit();
Prog' ::= nop | hs_init(); Prog'; hs_exit(); | Prog' Prog'

Cheers,

--
Felipe – enviado do meu Galaxy Tab.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Getting a segmentation fault when starting/stopping the RTS, from C, several times.

2012-07-15 Thread Albert Y. C. Lai

On 12-07-15 08:37 PM, Felipe Almeida Lessa wrote:

Would that be:

Prog ::= nop | hs_init(); Prog'; hs_exit();
Prog' ::= nop | hs_init(); Prog'; hs_exit(); | Prog' Prog'


Yeah, I keep forgetting that.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Getting a segmentation fault when starting/stopping the RTS, from C, several times.

2012-07-10 Thread Captain Freako
Hi experts,

Should I expect the following C code to run to completion, or am I trying
to do something that was never intended?

Thanks,
-db

C code:

  1 #include stdio.h
  2 #include stdlib.h
  3 #include HsFFI.h
  4
  5 int main()
  6 {
  7 int argc = 1, i;
  8 char* argv[] = {ghcDll, NULL}; // argv must end with NULL
  9 char** args = argv;
 10
 11 for(i=0; i10; i++) {
 12 fprintf(stderr, Starting up the RTS...\n);
 13 hs_init(argc, args);
 14 printf(Shutting down the RTS...\n);
 15 hs_exit();
 16 }
 17 }

This is what I get, when I compile and run it:

dbanas@dbanas-eeepc:~/prj/haskell/amitool$ make test_rts
rm -f test_rts
ghc -o test_rts -lHSrts -lm -lffi -lrt test_rts.o
dbanas@dbanas-eeepc:~/prj/haskell/amitool$ ./test_rts
Starting up the RTS...
Shutting down the RTS...
Starting up the RTS...
Shutting down the RTS...
Segmentation fault
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Getting a segmentation fault when starting/stopping the RTS, from C, several times.

2012-07-10 Thread Brandon Allbery
On Tue, Jul 10, 2012 at 10:55 PM, Captain Freako capn.fre...@gmail.comwrote:

 Hi experts,

 Should I expect the following C code to run to completion, or am I trying
 to do something that was never intended?


Quoth the Fine Manual (8.2.1.1. Using your own
main()http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi-ghc.html#using-own-main
):

There can be multiple calls to hs_init(), but each one should be matched by
one (and only one) call to
hs_exit()[14http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi-ghc.html#ftn.id740774
].

So this should theoretically work.

-- 
brandon s allbery  allber...@gmail.com
wandering unix systems administrator (available) (412) 475-9364 vm/sms
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe