Logs: liberachat/#haskell
| 2021-07-23 19:51:23 | <davean> | I only see the second in a few cases |
| 2021-07-23 19:51:28 | <davean> | It occures, but its rare |
| 2021-07-23 19:51:47 | <davean> | platz: whats historical about it? |
| 2021-07-23 19:51:58 | <adamse> | platz: intial vs final have meaning beyond data constructors and tc's. i got a lot from attending http://www.cs.nott.ac.uk/~psznhn/MGS2018/MGS2018-courses.html#COA, perhaps the lecture notes are useful |
| 2021-07-23 19:52:27 | <arkanoid> | thanks |
| 2021-07-23 19:53:13 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 2021-07-23 19:53:13 | <davean> | platz: Many current designs are tagged |
| 2021-07-23 19:53:31 | <dminuoso> | arkanoid: "standalone systems" rarely exist. Most of the time systems are an integrated part of some larger architecture. |
| 2021-07-23 19:53:37 | → | alx741 joins (~alx741@186.178.108.59) |
| 2021-07-23 19:54:40 | <adamse> | arkanoid: i use haskell for both parts at $work, final application and various libraries called from other (non-haskell) apps |
| 2021-07-23 19:55:21 | <janus> | does making a web server count as "being called by FFI" ? |
| 2021-07-23 19:55:49 | <monochrom> | I think people call that "called by API". |
| 2021-07-23 19:56:17 | <dminuoso> | Arguably, calling into a C library from Haskell is calling by API too. |
| 2021-07-23 19:56:22 | <arkanoid> | dminuoso: if you put it down like that, like janus says, you can consider every IPC or API |
| 2021-07-23 19:56:31 | <monochrom> | I would not be unhappy if they at least clarified that to "web API". |
| 2021-07-23 19:56:45 | <dminuoso> | arkanoid: My point is, we're incrementally replacing parts of a larger architecture here by Haskell parts. |
| 2021-07-23 19:57:01 | <dminuoso> | But none of that is through what one would ordinarily call FFI. |
| 2021-07-23 19:57:26 | <davean> | dminuoso: no, thats via ABI :-p |
| 2021-07-23 19:57:42 | <arkanoid> | so you're integrating haskell by replacing services |
| 2021-07-23 19:57:45 | <dminuoso> | Perhaps part of why FFI is unsuitable in general, is that the common denominator here is C, and that's a fairly ugly low level where mapping your high level parts might be really cumbersome. |
| 2021-07-23 19:57:50 | → | Guest70 joins (~Guest70@192.75.101.164) |
| 2021-07-23 19:58:06 | <platz> | davean: i'll take a look, thanks |
| 2021-07-23 19:58:27 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 245 seconds) |
| 2021-07-23 19:58:59 | × | m4lvin quits (~m4lvin@w4eg.de) (Quit: m4lvin) |
| 2021-07-23 19:59:22 | → | m4lvin joins (~m4lvin@w4eg.de) |
| 2021-07-23 19:59:57 | → | favonia joins (~favonia@user/favonia) |
| 2021-07-23 20:00:06 | <arkanoid> | the haskell wiki on the FFI page says "Note that to call a Haskell function, the runtime system must have been initialized with a call to "hs_init". It must be released with a call to "hs_exit" when it is no longer required. See the user guide for more details" but the link is broken https://wiki.haskell.org/Foreign_Function_Interface |
| 2021-07-23 20:00:33 | <janus> | arkanoid: the link at the top works, i'll fix the other |
| 2021-07-23 20:00:37 | <dminuoso> | And worse, if the other language is not C, you will end up needing C wrappers - which makes for very annoying semantics. If either of those languages has things like memory management, lifetime tracking, non-trivial concepts of threads/processes, signal management, you get into a whole world of pain. |
| 2021-07-23 20:02:05 | <janus> | fixed now |
| 2021-07-23 20:02:25 | <arkanoid> | woa, that was quick! thanks |
| 2021-07-23 20:04:05 | <arkanoid> | dminuoso: ccall would be perfect in my case. I wonder what will be the memory footprint, I intend to do experiments on low-end devices |
| 2021-07-23 20:04:46 | <dsal> | I read that as call/cc |
| 2021-07-23 20:05:33 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 258 seconds) |
| 2021-07-23 20:05:34 | × | arthurxavierx quits (~arthurxav@201.17.157.69) (Remote host closed the connection) |
| 2021-07-23 20:05:39 | <dminuoso> | arkanoid: So one of my first worries would be, what effects does calling into hs_init have exactly? What signal handlers does it install? |
| 2021-07-23 20:06:14 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2021-07-23 20:06:44 | → | juhp joins (~juhp@128.106.188.220) |
| 2021-07-23 20:06:46 | <arkanoid> | exactly, but I wonder why they should be installed |
| 2021-07-23 20:09:37 | × | Guest70 quits (~Guest70@192.75.101.164) (Quit: Client closed) |
| 2021-07-23 20:10:25 | → | Deide joins (~Deide@217.155.19.23) |
| 2021-07-23 20:10:25 | × | Deide quits (~Deide@217.155.19.23) (Changing host) |
| 2021-07-23 20:10:25 | → | Deide joins (~Deide@user/deide) |
| 2021-07-23 20:11:30 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 240 seconds) |
| 2021-07-23 20:11:54 | → | favonia joins (~favonia@user/favonia) |
| 2021-07-23 20:13:48 | → | arthurxavierx joins (~arthurxav@201.17.157.69) |
| 2021-07-23 20:14:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 2021-07-23 20:15:13 | <janus> | arkanoid: phadej recommended using capi over ccall |
| 2021-07-23 20:17:08 | <adamse> | i've proposed a change to the ghc users guide: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6234, but i'm not sure if someone other than me would find it better. any thoughts? |
| 2021-07-23 20:17:19 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2021-07-23 20:18:57 | → | dagit joins (~dagit@2601:1c2:1b7f:9fa0:445:559:1c8d:e5d1) |
| 2021-07-23 20:19:48 | <arkanoid> | janus: isn't capi to call C code from haskell? |
| 2021-07-23 20:19:50 | <dminuoso> | adamse: To keep the form correct, perhaps just "Runtime System Options" (such that the abbreviation (RTS) is introduced in the text below). Alternatively, I'd write it as "Runtime System (RTS) Options", and then not introduce the abbreviation in the text below. |
| 2021-07-23 20:20:11 | × | arthurxavierx quits (~arthurxav@201.17.157.69) (Remote host closed the connection) |
| 2021-07-23 20:20:11 | <arkanoid> | I plan to do the other way arount (but actually unsure, actually) |
| 2021-07-23 20:21:23 | × | curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds) |
| 2021-07-23 20:21:37 | <janus> | ooh i dunno if capi can do exports, sorry, i missed that |
| 2021-07-23 20:24:10 | → | pera joins (~pera@user/pera) |
| 2021-07-23 20:25:14 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 252 seconds) |
| 2021-07-23 20:25:34 | → | favonia joins (~favonia@user/favonia) |
| 2021-07-23 20:25:51 | → | arthurxavierx joins (~arthurxav@201.17.157.69) |
| 2021-07-23 20:27:52 | × | arthurxavierx quits (~arthurxav@201.17.157.69) (Remote host closed the connection) |
| 2021-07-23 20:27:58 | <adamse> | dminuoso: thanks, i like your second suggestion (i want to put RTS in the title to simplify searching and scanning the toc) |
| 2021-07-23 20:30:10 | × | fendor quits (~fendor@91.141.32.205.wireless.dyn.drei.com) (Remote host closed the connection) |
| 2021-07-23 20:33:10 | → | fendor joins (~fendor@91.141.32.205.wireless.dyn.drei.com) |
| 2021-07-23 20:34:16 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 2021-07-23 20:34:51 | → | acidjnk joins (~acidjnk@p200300d0c72b9578b0632702c8b77fa8.dip0.t-ipconnect.de) |
| 2021-07-23 20:37:22 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds) |
| 2021-07-23 20:40:50 | × | Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Remote host closed the connection) |
| 2021-07-23 20:42:12 | → | Matthias1 joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) |
| 2021-07-23 20:42:58 | <maerwald> | janus: yes use capi |
| 2021-07-23 20:43:23 | <maerwald> | ccall often breaks on darwin, where you have lots of dark header CPP magic |
| 2021-07-23 20:44:17 | <maerwald> | example https://github.com/biegunka/terminal-size/pull/16 |
| 2021-07-23 20:44:45 | <maerwald> | (that bug took an entire day to find) |
| 2021-07-23 20:45:07 | → | dagit_ joins (~dagit@2601:1c2:1b7f:9fa0:445:559:1c8d:e5d1) |
| 2021-07-23 20:45:13 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 250 seconds) |
| 2021-07-23 20:45:13 | × | dagit_ quits (~dagit@2601:1c2:1b7f:9fa0:445:559:1c8d:e5d1) (Client Quit) |
| 2021-07-23 20:46:09 | → | finsternis joins (~X@23.226.237.192) |
| 2021-07-23 20:46:32 | → | arthurxavierx joins (~arthurxav@201.17.157.69) |
| 2021-07-23 20:47:03 | → | favonia joins (~favonia@user/favonia) |
| 2021-07-23 20:51:18 | × | Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Remote host closed the connection) |
| 2021-07-23 20:52:58 | → | jmorris joins (uid433911@id-433911.stonehaven.irccloud.com) |
| 2021-07-23 20:54:27 | × | arthurxavierx quits (~arthurxav@201.17.157.69) (Remote host closed the connection) |
| 2021-07-23 20:54:57 | → | notzmv joins (~zmv@user/notzmv) |
| 2021-07-23 20:58:00 | → | Matthias1 joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) |
| 2021-07-23 20:58:00 | → | tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 2021-07-23 20:58:20 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 2021-07-23 20:58:56 | × | Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8) |
| 2021-07-23 20:59:36 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 252 seconds) |
| 2021-07-23 21:00:06 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 2021-07-23 21:01:20 | → | mikoto-chan joins (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
| 2021-07-23 21:02:58 | <monochrom> | capi is close to being a case of "those who have learned from history are doomed to helplessly watch people repeat it" :) |
| 2021-07-23 21:04:00 | <monochrom> | A long long time ago if you wrote "foreign import ccall "header.h" ..." the idea was that the compiler may read and care about header.h for sanity checks. |
| 2021-07-23 21:04:44 | <monochrom> | The operative word here is "may" because it is also OK if the compiler doesn't. Indeed when GHC switched to native codegen it stopped doing that. |
| 2021-07-23 21:05:03 | <monochrom> | Now we have capi which restored that old tradition. |
| 2021-07-23 21:10:31 | × | Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) () |
| 2021-07-23 21:13:02 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
| 2021-07-23 21:13:10 | × | dtman34 quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
| 2021-07-23 21:15:22 | × | ircbrowse_tom quits (~ircbrowse@static.162.49.55.162.clients.your-server.de) (ZNC 1.7.5+deb4 - https://znc.in) |
| 2021-07-23 21:15:36 | → | ircbrowse_tom_ joins (~ircbrowse@2a01:4f8:1c1c:9319::1) |
All times are in UTC.