2017-05-01T00:46:47Z vydd quit 2017-05-01T04:32:33Z rumbler31 joined #ccl 2017-05-01T05:10:40Z rumbler31 quit (Remote host closed the connection) 2017-05-01T05:25:05Z milanj quit (Quit: This computer has gone to sleep) 2017-05-01T06:33:52Z pjb joined #ccl 2017-05-01T07:11:09Z rumbler31 joined #ccl 2017-05-01T07:15:40Z rumbler31 quit (Ping timeout: 260 seconds) 2017-05-01T10:27:18Z hhdave joined #ccl 2017-05-01T10:45:26Z hhdave quit (Ping timeout: 255 seconds) 2017-05-01T10:47:18Z milanj joined #ccl 2017-05-01T10:53:27Z hhdave joined #ccl 2017-05-01T10:58:37Z hhdave quit (Quit: hhdave) 2017-05-01T12:14:30Z mrottenkolber joined #ccl 2017-05-01T14:21:10Z rumbler31 joined #ccl 2017-05-01T14:24:49Z _rumbler31 joined #ccl 2017-05-01T14:25:56Z rumbler31 quit (Ping timeout: 260 seconds) 2017-05-01T16:12:15Z rumbler31 joined #ccl 2017-05-01T16:16:31Z rumbler31 quit (Ping timeout: 245 seconds) 2017-05-01T16:21:26Z pjb quit (Ping timeout: 252 seconds) 2017-05-01T16:22:29Z pjb joined #ccl 2017-05-01T16:41:13Z jdz quit (*.net *.split) 2017-05-01T17:23:43Z rumbler31 joined #ccl 2017-05-01T17:25:57Z _rumbler31 quit (Ping timeout: 240 seconds) 2017-05-01T18:07:16Z jdz joined #ccl 2017-05-01T18:44:35Z mrottenkolber quit (Remote host closed the connection) 2017-05-01T20:03:40Z _rumbler31 joined #ccl 2017-05-01T20:07:34Z rumbler31 quit (Ping timeout: 264 seconds) 2017-05-01T20:41:51Z hhdave joined #ccl 2017-05-01T20:43:08Z vydd joined #ccl 2017-05-01T20:43:08Z vydd quit (Changing host) 2017-05-01T20:43:08Z vydd joined #ccl 2017-05-01T20:46:41Z hhdave quit (Ping timeout: 276 seconds) 2017-05-01T22:07:00Z _rumbler31 quit (Ping timeout: 260 seconds) 2017-05-01T22:35:37Z sabetts joined #ccl 2017-05-01T22:37:16Z sabetts: What sort of trouble would I get into if I call #_fork, and run a function in the child process? 2017-05-01T22:43:00Z pjb: sabetts: mostly, threads are not duplicated in the children. Fork would be called from the current thread, which may not be the best thing either. Streams and sockets would be kept open, and therefore data would land randomly in any of both processes. And data emited would merge randomly. Jost for a few problems. 2017-05-01T22:45:08Z sabetts: interesting about the threads. Could that explain why it seems to crash as soon as the GC runs? 2017-05-01T22:48:24Z pjb: Definitely, since in ccl, GC will try to block all the other threads while it's working. 2017-05-01T22:49:42Z sabetts: So if I could erase the data structures associated with those other threads before the GC runs, maybe I can hobble along a bit longer... 2017-05-01T22:49:55Z pjb: if you need to use fork like this, you would need an implementation without threads, or with green threads (like cmucl). 2017-05-01T22:50:36Z pjb: sabetts: yes, but they are low level data structures, and there may be impact on unknown parts of ccl (eg. perhaps the ccl kernel which is written in C). 2017-05-01T22:52:03Z sabetts: ahh, interesting. 2017-05-01T22:55:42Z sabetts: Since I've got this non-threadsafe library I wanted to run in parallel, I thought I could fork CCL and get cheap concurrency. but it looks like I'll be running into trouble every step of the way. 2017-05-01T22:57:04Z pjb: It may be easier to make it threadsafe. 2017-05-01T22:57:18Z pjb: Remove singletons (global variables), and you should be set. 2017-05-01T22:58:22Z sabetts: yeah, as hard as that would be that might end up being easier 2017-05-01T22:59:06Z pjb: Or, you can just use fork+exec and launch a new ccl instance to run it in parallel. 2017-05-01T22:59:18Z pjb: You'd just have to load the initial data in each ccl instance. 2017-05-01T22:59:53Z pjb: ie. use something like: (ccl:run-program "ccl" '("--load" "your-parallel-job.lisp")) instead of fork. 2017-05-01T23:00:09Z sabetts: I was thinking I could load all the library bits and then use save-application to dump a new executable and then exec that 2017-05-01T23:00:20Z pjb: Indeed. 2017-05-01T23:00:33Z sabetts: Thanks for your help! 2017-05-01T23:00:34Z pjb: This way you would also have the initial data already loaded if you want. 2017-05-01T23:00:53Z pjb: But notice that save-application kills the current process. 2017-05-01T23:00:59Z sabetts: yeah. the only thing that I don't like is save-application kills CCL 2017-05-01T23:01:09Z sabetts: yeah. that's a bummer :) 2017-05-01T23:01:13Z pjb: So if you want to do it at run-time, you must to it in a subprocess :-/ 2017-05-01T23:01:34Z pjb: (clisp can save images without being killed). 2017-05-01T23:34:36Z vydd quit 2017-05-01T23:35:57Z rumbler31 joined #ccl 2017-05-01T23:49:46Z pjb quit (Quit: Be seeing you!)