00:02:14 | * | milosn joined #nimrod |
00:04:29 | * | saml_ joined #nimrod |
00:13:31 | * | Jehan_ quit (Quit: Leaving) |
00:13:45 | * | fowlmouth quit (Quit: Leaving) |
00:14:48 | Onionhammer | araq around? |
00:14:52 | Onionhammer | pretty late i guess. |
00:33:56 | * | Demos joined #nimrod |
01:14:13 | * | willwillson quit (Remote host closed the connection) |
01:17:53 | * | francisl joined #nimrod |
01:17:59 | * | Jesin joined #nimrod |
01:55:32 | * | bogen joined #nimrod |
02:15:45 | * | flaviu1 quit (Remote host closed the connection) |
02:18:33 | * | brson quit (Quit: leaving) |
02:28:54 | * | boydgreenfield quit (Quit: boydgreenfield) |
02:41:54 | * | vissborg quit (Max SendQ exceeded) |
02:44:36 | * | vissborg joined #nimrod |
02:45:21 | * | wkoch quit (Quit: wkoch) |
02:54:24 | * | flaviu1 joined #nimrod |
02:55:23 | * | Demos quit (Quit: Leaving) |
03:02:07 | * | boydgreenfield joined #nimrod |
03:05:13 | * | francisl quit (Quit: francisl) |
03:19:42 | * | boydgreenfield quit (Quit: boydgreenfield) |
03:29:52 | * | saml_ quit (Quit: Leaving) |
03:36:16 | * | francisl joined #nimrod |
03:49:39 | * | boydgreenfield joined #nimrod |
04:27:01 | * | francisl quit (Quit: francisl) |
04:52:29 | * | xenagi quit (Quit: Leaving) |
04:52:55 | * | kshlm joined #nimrod |
04:53:05 | * | kshlm quit (Client Quit) |
05:01:34 | * | darkf_ joined #nimrod |
05:01:56 | * | johnsoft quit (Ping timeout: 260 seconds) |
05:02:29 | * | rpag quit (Ping timeout: 260 seconds) |
05:02:35 | * | johnsoft joined #nimrod |
05:03:26 | * | darkf quit (Ping timeout: 272 seconds) |
05:04:43 | * | darkf joined #nimrod |
05:06:36 | * | darkf_ quit (Ping timeout: 272 seconds) |
05:15:17 | * | rpag joined #nimrod |
05:16:28 | * | darkf_ joined #nimrod |
05:18:00 | * | darkf quit (Ping timeout: 272 seconds) |
05:18:16 | * | BlaXpirit joined #nimrod |
05:22:05 | * | darkf_ is now known as darkf |
05:25:36 | * | bjz quit (Ping timeout: 272 seconds) |
05:28:38 | * | bjz joined #nimrod |
05:37:35 | * | bjz_ joined #nimrod |
05:37:37 | * | dirkk0 joined #nimrod |
05:40:42 | * | bjz quit (Ping timeout: 245 seconds) |
05:58:31 | * | dirkk0 quit (Quit: Leaving) |
06:08:53 | * | nande quit (Remote host closed the connection) |
06:27:03 | * | boydgreenfield quit (Quit: boydgreenfield) |
06:33:01 | * | BlaXpirit quit (Quit: Quit Konversation) |
06:42:00 | * | boydgreenfield joined #nimrod |
07:07:28 | * | io2 joined #nimrod |
07:17:48 | * | filwit joined #nimrod |
07:53:55 | * | Trustable joined #nimrod |
08:19:01 | * | boydgreenfield quit (Quit: boydgreenfield) |
08:37:45 | * | endou quit (Ping timeout: 244 seconds) |
08:56:00 | * | dirkk0 joined #nimrod |
09:07:58 | * | BlaXpirit joined #nimrod |
09:15:23 | * | Boscop joined #nimrod |
09:15:23 | * | Boscop quit (Changing host) |
09:15:23 | * | Boscop joined #nimrod |
09:15:59 | * | Boscop__ quit (Ping timeout: 244 seconds) |
09:16:50 | * | Boscop_ joined #nimrod |
09:19:58 | * | hsuh quit (Ping timeout: 258 seconds) |
09:20:44 | * | Boscop quit (Ping timeout: 258 seconds) |
09:27:06 | * | hsuh joined #nimrod |
09:37:02 | * | clone1018 quit (Ping timeout: 272 seconds) |
09:37:54 | * | clone1018 joined #nimrod |
09:46:50 | * | filwit quit (Quit: Leaving) |
10:16:56 | * | comex quit (Ping timeout: 272 seconds) |
10:18:32 | * | comex joined #nimrod |
10:20:44 | * | Boscop__ joined #nimrod |
10:24:17 | * | Boscop_ quit (Ping timeout: 272 seconds) |
10:25:24 | * | edayo joined #nimrod |
10:31:09 | * | edayo_ joined #nimrod |
10:32:08 | * | dirkk0 quit (Quit: This computer has gone to sleep) |
10:34:36 | * | edayo quit (Ping timeout: 250 seconds) |
10:36:26 | * | flaviu1 quit (Remote host closed the connection) |
11:21:25 | * | rpag quit (Ping timeout: 260 seconds) |
11:29:45 | * | BitPuffin joined #nimrod |
11:37:02 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
11:52:03 | * | filwit joined #nimrod |
11:52:55 | * | dirkk0 joined #nimrod |
11:56:23 | * | dirkk0 quit (Client Quit) |
12:09:31 | * | xcombelle joined #nimrod |
12:11:00 | * | dirkk0 joined #nimrod |
12:13:40 | * | dirkk_ joined #nimrod |
12:13:40 | * | dirkk0 quit (Read error: Connection reset by peer) |
12:14:17 | * | dirkk_ quit (Client Quit) |
12:14:35 | * | dirkk0 joined #nimrod |
12:57:37 | * | darkf quit (Quit: Leaving) |
12:57:46 | * | filwit quit (Quit: Leaving) |
13:14:41 | * | prosper_ joined #nimrod |
13:27:36 | * | untitaker quit (Ping timeout: 246 seconds) |
13:33:32 | * | untitaker joined #nimrod |
14:02:29 | * | perturbation joined #nimrod |
14:04:20 | * | prosper_ quit (Ping timeout: 250 seconds) |
14:06:23 | * | def- quit (Ping timeout: 240 seconds) |
14:10:49 | * | def- joined #nimrod |
14:15:37 | * | def- quit (Ping timeout: 245 seconds) |
14:19:56 | * | xcombelle quit (Quit: Quitte) |
14:20:19 | * | def- joined #nimrod |
14:21:39 | * | edayo_ quit (Read error: Connection reset by peer) |
14:23:10 | * | edayo_ joined #nimrod |
14:37:34 | * | prosper_ joined #nimrod |
14:39:06 | * | [CBR]Unspoken1 quit (Read error: Connection reset by peer) |
14:42:47 | * | wkoch joined #nimrod |
14:44:00 | * | [CBR]Unspoken joined #nimrod |
14:45:08 | * | bogen quit (Quit: Leaving.) |
14:51:57 | * | prosper_ quit (Ping timeout: 245 seconds) |
14:57:58 | * | boydgreenfield joined #nimrod |
15:09:43 | * | Orson joined #nimrod |
15:10:05 | * | Orson is now known as Orson1984 |
15:13:00 | * | Orson1984 left #nimrod (#nimrod) |
15:36:50 | * | edayo_ quit (Quit: Leaving) |
15:46:31 | * | boydgreenfield quit (Quit: boydgreenfield) |
15:59:44 | * | shodan45 quit (Quit: Konversation terminated!) |
16:01:36 | * | brson joined #nimrod |
16:15:12 | * | z3744617276842 joined #nimrod |
16:15:24 | * | wkoch1 joined #nimrod |
16:15:24 | * | hsuh_ joined #nimrod |
16:16:41 | * | boydgreenfield joined #nimrod |
16:17:34 | * | cyraxjoe joined #nimrod |
16:17:43 | * | wkoch quit (Ping timeout: 244 seconds) |
16:17:43 | * | hsuh quit (Ping timeout: 244 seconds) |
16:17:43 | * | z3744614276842 quit (Ping timeout: 244 seconds) |
16:17:44 | * | untitaker quit (Ping timeout: 244 seconds) |
16:17:44 | * | johnsoft quit (Ping timeout: 244 seconds) |
16:17:44 | * | MightyJoe quit (Ping timeout: 244 seconds) |
16:17:45 | * | betawaffle quit (Ping timeout: 244 seconds) |
16:17:45 | * | Jesin quit (Ping timeout: 244 seconds) |
16:18:37 | * | johnsoft joined #nimrod |
16:18:44 | * | untitaker joined #nimrod |
16:19:03 | * | betawaffle joined #nimrod |
16:19:38 | * | Jesin joined #nimrod |
16:20:21 | * | prosper_ joined #nimrod |
16:21:56 | * | boydgreenfield quit (Quit: boydgreenfield) |
16:33:05 | * | dirkk0 quit (Quit: This computer has gone to sleep) |
16:35:22 | * | prosper_ quit (Remote host closed the connection) |
16:37:20 | * | Jesin quit (Ping timeout: 272 seconds) |
16:40:25 | * | xcombelle joined #nimrod |
16:40:40 | * | Jesin joined #nimrod |
16:41:08 | * | Matthias247 joined #nimrod |
16:42:37 | * | boydgreenfield joined #nimrod |
16:48:06 | * | johnsoft quit (Ping timeout: 272 seconds) |
16:48:22 | * | johnsoft joined #nimrod |
16:51:12 | * | prosper_ joined #nimrod |
16:51:40 | * | Joe_knock joined #nimrod |
16:57:36 | * | prosper_ quit (Ping timeout: 246 seconds) |
17:10:14 | * | q66[lap] quit (Ping timeout: 250 seconds) |
17:11:33 | * | gverilla joined #nimrod |
17:12:04 | * | q66 joined #nimrod |
17:13:24 | * | q66[lap] joined #nimrod |
17:14:47 | * | gverilla quit (Client Quit) |
17:17:23 | * | dirkk0 joined #nimrod |
17:18:13 | * | willwillson joined #nimrod |
17:23:36 | * | kuzy000 joined #nimrod |
17:31:17 | * | EXetoC joined #nimrod |
17:51:15 | * | noam_ joined #nimrod |
17:51:52 | * | noam quit (Ping timeout: 245 seconds) |
17:57:00 | * | prosper_ joined #nimrod |
17:58:01 | * | prosper__ joined #nimrod |
18:01:44 | * | prosper_ quit (Ping timeout: 260 seconds) |
18:12:10 | * | io2 joined #nimrod |
18:23:07 | * | Mat3 joined #nimrod |
18:23:11 | Mat3 | hello |
18:24:18 | perturbation | hello Mat3 |
18:28:50 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
18:31:04 | Mat3 | hi perturbation |
18:38:45 | * | filwit joined #nimrod |
18:41:39 | * | Matthias247 quit (Read error: Connection reset by peer) |
18:42:13 | * | Matthias247 joined #nimrod |
18:42:22 | * | filwit quit (Client Quit) |
18:50:33 | * | prosper__ quit (Remote host closed the connection) |
18:50:34 | * | wkoch1 quit (Ping timeout: 272 seconds) |
18:51:17 | * | wkoch joined #nimrod |
18:54:17 | * | prosper_ joined #nimrod |
18:58:05 | * | filwit joined #nimrod |
19:05:48 | * | wkoch1 joined #nimrod |
19:06:11 | * | wkoch quit (Ping timeout: 272 seconds) |
19:06:16 | * | wkoch1 quit (Client Quit) |
19:07:54 | * | perturbation quit (Quit: Leaving) |
19:09:57 | * | johnsoft quit (Ping timeout: 260 seconds) |
19:10:07 | * | johnsoft joined #nimrod |
19:18:44 | * | dirkk0 quit (Quit: Leaving) |
19:32:30 | * | io2 joined #nimrod |
19:33:53 | Mat3 | have someone here experiences with the SDL2 bindings from Fowl ? |
19:35:09 | Araq | hi Mat3 |
19:35:22 | filwit | Mat3, I'm still using my own SDL2 bindings, but they're based off fowls.. what's your problem? |
19:35:37 | filwit | oh Araq, you are around :) |
19:35:44 | Araq | finally |
19:36:02 | Mat3 | hi Araq |
19:36:02 | filwit | yeah sorry man, been a busy 2 1/2 weeks for me |
19:37:29 | Mat3 | filwit: I can compile my test code but the Nimrod compiler can't link to the shared library because the libraries can't be found (some C test sources compile fine however) |
19:37:48 | Araq | Mat3: oh that should be easily solved |
19:38:12 | Araq | use --dynlibOverride:sdl2 and then --passL with whatever you do for the C code |
19:39:05 | filwit | sounds like fowl's SDL2 lib needs to be patched, or your SDL2 install is funky |
19:39:25 | Mat3 | Araq: thanks |
19:40:18 | Mat3 | filwit: I hope to not need patching the wrapper code |
19:42:47 | Araq | I'm writing docs for the new concurrrency system ... |
19:43:01 | Araq | apart from that it's pretty much done |
19:43:24 | Araq | and that means Nim itself is almost feature complete and so I can focus on bugs ;-) |
19:43:35 | Mat3 | good news |
19:46:05 | filwit | Araq: nice. I just responded to a /r/nimrod question about concurrency in Nim: http://www.reddit.com/r/nimrod/comments/2i0l1i/nimrod_and_opemmp/ |
19:46:38 | filwit | Araq: you might want to double-check what I said or post a link to the any ThreadPool docs you might have. |
19:47:14 | Araq | meh I'm pissed off by people that assume reddit is some generic website to get information |
19:47:34 | filwit | lol |
19:47:37 | Araq | if people want to talk to me, they know where to find me |
19:48:34 | * | boydgreenfield quit (Quit: boydgreenfield) |
19:49:52 | Mat3 | I think Reddit can help increasing Nim's popularity |
19:51:10 | Mat3 | someone should post a commentary about how to use ICQ |
19:51:27 | * | noam_ is now known as noam |
19:51:44 | Mat3 | (and how a programming language differs from an operating system) |
19:52:51 | Araq | huh? is ICQ still alive? |
19:53:48 | Mat3 | somehat |
19:53:52 | Mat3 | ^somewhat |
19:54:28 | Mat3 | as we can see... |
19:58:31 | Araq | well this is IRC |
19:58:48 | Araq | ;-) |
20:00:31 | Mat3 | no, I mean the *ICQ* protocol |
20:00:51 | * | Ven joined #nimrod |
20:01:32 | Mat3 | (misleading translation), an introduction to IRC would probably be helpful too I think |
20:02:47 | Mat3 | is the current Nimrod version usable under Max OS X ? |
20:03:23 | Araq | sure Jehan uses nothing else afaict |
20:03:39 | Mat3 | fine |
20:05:26 | Mat3 | I convinced the author of Retro to give it a try. Probably he decide to work on a Nimrod port |
20:05:31 | filwit | i tried Nim on Mac OSX 10.9 (Intel), 10.6 (PPC) a little while ago. Worked good (simple test) |
20:06:12 | * | prosper_ quit (Remote host closed the connection) |
20:06:52 | * | flaviu1 joined #nimrod |
20:07:11 | Araq | Mat3: ok, but we don't need a port? it's already ported |
20:07:18 | Araq | hi flaviu1 |
20:07:31 | flaviu1 | hey! |
20:08:55 | Araq | do you feel to write lengthy explanations of how an enforced compile-time lock order works and why it is a good idea? |
20:09:02 | Araq | *feel like writing |
20:09:59 | flaviu1 | Sure, if I knew what you were talking about. The new concurrency system? |
20:11:17 | * | Majestik0ne joined #nimrod |
20:12:11 | Araq | yeah |
20:12:15 | Araq | hi Majestik0ne welcome |
20:12:16 | Mat3 | Araq: I mean he possibly think about porting his Retro sources from C to Nim |
20:12:47 | Araq | ohhh nice |
20:14:19 | * | BlaXpirit quit (Quit: Quit Konversation) |
20:16:01 | * | BlaXpirit joined #nimrod |
20:16:50 | * | skyfex quit (Quit: Computer has gone to sleep.) |
20:17:27 | * | skyfex joined #nimrod |
20:18:03 | Araq | flaviu1: I'm preparing the first version of the docs. and perhaps you can it enhance it then |
20:21:58 | * | zahary joined #nimrod |
20:22:06 | EXetoC | zahary: sup |
20:26:55 | * | Majestik0ne quit () |
20:27:40 | * | Jehan_ joined #nimrod |
20:29:48 | * | boydgreenfield joined #nimrod |
20:30:22 | * | xcombelle quit (Quit: Quitte) |
20:32:31 | Jehan_ | Mat3: I'm currently using Nim (bigbreak) for work, with the caveat that I make only very little use of the libraries other than the basic stuff. |
20:32:48 | Jehan_ | That's on OS X 10.8.5. |
20:37:07 | Mat3 | hmm, should work for him then |
20:38:03 | Mat3 | falviul: I assume your SDL wrapper version is more complete than Fowl's ? |
20:39:24 | Mat3 | flaviu1: I assume your SDL wrapper version is more complete than Fowl's ? |
20:40:00 | * | untitaker quit (Quit: ZNC - http://znc.in) |
20:41:16 | * | untitaker joined #nimrod |
20:47:39 | Araq | Jehan_: btw I considered parametric modules but decided it's enough to do: |
20:47:59 | Araq | when not declared(foo): proc foo = ... |
20:48:04 | Araq | and then you can do: |
20:48:10 | Araq | proc foo = |
20:48:23 | Araq | include implementation |
20:49:22 | Araq | this is called "module injection by include instead of import" ... :-) |
20:49:38 | Jehan_ | Hmm, how can you put an include inside a proc? |
20:49:52 | Araq | nah, not what I meant |
20:50:04 | Araq | proc foo = ... # override implementation |
20:50:08 | Jehan_ | Oh, I see. |
20:50:10 | Jehan_ | Yes. |
20:50:17 | flaviu1 | Mat3: I don't actually have an SDL wrapper |
20:50:36 | Araq | Mat3: I think you mean filwit |
20:50:36 | Jehan_ | You don't even have to do the "if declared" unless you want to be able to compile the module by itself. |
20:50:47 | Jehan_ | As I explained in my post. |
20:50:50 | filwit | Mat3: if you meant my SDL2 wrapper... it's a bit more complete, but not much. |
20:51:17 | Araq | hrm I missed that part |
20:51:22 | Jehan_ | I honestly don't know if it's worth having a separate syntax, since you can already do what you need as long as you're willing to have two-line modules for each instantiation. |
20:52:14 | Mat3 | filwit: is it --cs:partial save (the current SDL2 sources on Babel are not) ? |
20:52:51 | Araq | Jehan_: ok, but you use .basics and .implementation, I like my solution better |
20:53:11 | filwit | Mat3: yes, but getting it there is very easy |
20:53:13 | Araq | because the module explicitly marks what can be overriden |
20:53:22 | Jehan_ | Araq: Well, I don't think how that can be avoided. |
20:53:46 | Jehan_ | The import of btree.basics is to use the enum, not to override it. |
20:53:47 | filwit | Mat3: i think it boils down too fixing a couple of 'Byte' -> 'byte' names is all |
20:54:24 | Mat3 | yes, anyhow where can I found your sources ? |
20:54:25 | Jehan_ | Unless there's a way to do a forward declaration of types/enums/constants that I don't know of. |
20:54:41 | Araq | nah, there isn't, you're right |
20:54:49 | Araq | but you can do: |
20:55:16 | Araq | when fileExists("overriden.nim"): include overriden |
20:55:30 | Araq | with the most recent VM updates |
20:55:47 | * | boydgreenfield quit (Quit: boydgreenfield) |
20:55:55 | filwit | Mat3: i can upload it for you, but keep in mind mine is also a stripped down version (it only has the OpenGL parts I need + a few SLD_img procs) |
20:56:11 | Jehan_ | Yeah, but that works the other way around from what I want to do. |
20:56:27 | Jehan_ | Basically, I'm using include to implement ML-functor-like semantics. |
20:56:39 | filwit | Mat3: so you want to use the built-in renderer, or even sound, mine isn't ready yet. |
20:56:53 | Jehan_ | Which means that I parameterize a module by an arbitrary other module (that defines certain things). |
20:57:05 | filwit | Mat3: still want me to upload? |
20:57:15 | Jehan_ | The "fileExists()" thing allows me to only use a specific module as a parameter. |
20:57:39 | Araq | yeah, it's different |
20:57:57 | filwit | Mat3: ps.. I've also changed the names of things (removed the 'sdl' prefix) |
20:58:07 | * | BitPuffin quit (Ping timeout: 245 seconds) |
21:00:25 | filwit | brb |
21:06:03 | Jehan_ | Hmm, can one write files at compile time? Other than through staticExec() with an external program? |
21:06:25 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:06:34 | Mat3 | hmm, no but thanks |
21:06:40 | Araq | Jehan_: not yet |
21:07:04 | Jehan_ | Araq: No pressure, I was just suddenly getting curious. |
21:07:14 | Jehan_ | I.e. whether I could generate a file and then import it. |
21:09:08 | willwillson | you know in c2nims nimrod.cfg, it sets: path: "$nimrod/compiler", how is it supposed to find the src of compiler? |
21:09:47 | willwillson | at the moment I just hardcoded it, but was wondering if there was a better way... |
21:10:56 | * | boydgreenfield joined #nimrod |
21:12:27 | * | jagillion joined #nimrod |
21:15:00 | Araq | willwillson: well the compiler knows how to expand $nimrod |
21:15:10 | Araq | what's the problem? |
21:15:21 | willwillson | I'm trying to compile with big break |
21:15:33 | willwillson | I've done the case fixes |
21:15:51 | willwillson | but I have to hardcode the path to the compiler |
21:15:59 | willwillson | compiler src that is |
21:17:09 | willwillson | otherwise, you get: c2nim.nim(11, 33) Error: cannot open 'llstream' |
21:20:25 | willwillson | basically, I was wondering, how is it supposed to function as a babel package :D |
21:20:54 | Joe_knock | Hi there, is dom96 around? |
21:24:53 | * | kuzy000 quit (Ping timeout: 240 seconds) |
21:37:15 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
21:37:21 | Araq | willwillson: ok, will look into it |
21:37:42 | Araq | Joe_knock: no. |
21:38:15 | willwillson | Araq: thanks |
21:40:50 | * | jagillion quit (Quit: jagillion) |
21:42:47 | * | BlaXpirit quit (Quit: Quit Konversation) |
21:43:01 | Joe_knock | Araq: Based on dom96s web framework, is there any modules/libraries that provide for building REST APIs? |
21:44:00 | Araq | Joe_knock: well we have a json module and asyncronous sockets. what more do you have in mind? |
21:45:23 | Joe_knock | Araq: I'm looking to use Nimrod as the backend for a project I have in mind. I need it to have a REST API so I can run the app on devices/web. |
21:48:44 | Araq | Joe_knock: yes well. I don't know what you're missing. The API has to be defined by you |
21:48:53 | * | TingPing joined #nimrod |
21:48:59 | Araq | hi TingPing welcome |
21:49:49 | Joe_knock | Araq: Maybe my understanding is convulated, but I am looking towards a library/module that simplifies the CRUD situation. |
21:50:27 | * | Boscop__ is now known as Boscop |
21:50:35 | Araq | Joe_knock: maybe you're looking for marshal.nim |
21:51:06 | * | Boscop quit (Changing host) |
21:51:06 | * | Boscop joined #nimrod |
21:56:06 | Joe_knock | Araq: Link to that? |
21:57:53 | Araq | http://nimrod-lang.org/marshal.html |
21:59:48 | * | fowl joined #nimrod |
22:00:10 | TingPing | Araq, personal greeting, how lovely :P |
22:03:29 | Varriount | meep |
22:06:14 | Araq | Jehan_: (locks: N) <: (locks: M) iff (M < N), right? |
22:06:28 | Araq | I always get these definitions wrong :P |
22:06:56 | Araq | hrm should be M <= N |
22:07:19 | TingPing | is babel an official project? |
22:07:25 | Araq | yes |
22:07:35 | Araq | hi Varriount ... what's up? |
22:09:05 | Joe_knock | Araq: Thanks, but I don't think marshall is it. I think working through dom96s web framework might help. Maybe it is similar to flask with routes. |
22:09:23 | Varriount | Araq: I *think* I have a fix for that prototype bug. |
22:09:33 | Jehan_ | Araq: Not sure without context, I'm afraid. |
22:09:45 | Araq | well we have: |
22:09:56 | Araq | proc foo() {.locks: 0.} |
22:10:04 | Araq | if it doesn't acquire any lock |
22:10:12 | Araq | and in general the number is the lock level |
22:10:29 | Araq | and now there is a natural subtyping rule for proc type compatibility |
22:10:53 | Araq | and there is a subtype relation if M <= N |
22:11:01 | Araq | or the other way round :P |
22:11:32 | Jehan_ | Assuming numbers go up with nesting level, yeah. |
22:11:39 | Jehan_ | Hmm, wait. |
22:12:16 | Araq | the numbers go up, but you can acquire 2 when you already acquired 3, but not the other way round |
22:12:47 | Araq | IMHO that is the natural order when we assume that allocMem requires lock level 1 |
22:12:48 | Jehan_ | Hmm. |
22:12:48 | fowl | is this channel changing to #nim ? |
22:12:57 | Araq | fowl: yeah |
22:13:22 | Jehan_ | I'm too tired to think straight, second. |
22:13:28 | TingPing | is there a reason http://nimrod-lang.org/download/nimrod_0.9.4.zip does not exist but 0.9.2 does? |
22:13:34 | flaviu1 | Is it possible to have two GCs in a single program? |
22:13:49 | flaviu1 | And decide per-object which to use? |
22:13:59 | Jehan_ | flaviu1: If the GCs are designed for it, in principle, yes. |
22:14:08 | flaviu1 | I know, but in Nim |
22:14:18 | Jehan_ | It also depends on how references interact. |
22:14:51 | Jehan_ | In Nim, in principle, as long as the heaps are kept separate, I'd say (you'd still have to write code to have both present at the same time). |
22:15:05 | Araq | flaviu1: currently that is not possible |
22:15:20 | Varriount | Araq: Pushed a fix for that showstopper bug. |
22:15:29 | Araq | Varriount: ok great |
22:16:30 | flaviu1 | Ok, shame though. You could use atomic refrence counting for multi-heap stuff, and something else for single-heap objects |
22:17:43 | Jehan_ | Araq: I'm not sure you can construct a subtype relation there. That's because a procedure type may assume both at least lock level N, but also at most lock level N. |
22:18:09 | Jehan_ | Depending on whether as caller or callee, for example. |
22:18:18 | Araq | Jehan_: hrm that is not how it's currently designed |
22:18:39 | Araq | currently locks: M means locks *any* level up to M |
22:18:44 | Jehan_ | Not sure how it's designed, I was making an (educated|wild-ass) guess as to what's intended. |
22:19:11 | Joe_knock | Araq: I am currently using v0.94 of nim. Is this the stable version? |
22:19:32 | Araq | Joe_knock: yes |
22:19:54 | Araq | flaviu1: no, this doesn't really work for lots of reasons |
22:20:01 | Joe_knock | awesome, thanks! |
22:20:23 | Araq | Varriount: your patch looks correct. applying. |
22:20:23 | Jehan_ | Hmm, so basically it's locks: 0..M and you're looking at a subset relation to infer the subtype relation. |
22:20:37 | Jehan_ | In this case, my concern would be whether that's too restrictive. |
22:20:52 | Jehan_ | And how co-/contravariance issues play into it. |
22:21:02 | Araq | well even if it would be locks: a..b this still would define a natural subtyping rule |
22:21:21 | Araq | when c..d is a subset of a..b |
22:21:26 | Jehan_ | yeah. |
22:22:29 | Araq | well conceptually allocShared needs a lock |
22:22:40 | flaviu1 | Araq: Can you elaborate? I don't see why it wouldn't. Of course, you'd have to allocate and delete everything inside the object with the same system, but that's it |
22:22:52 | Araq | and this is very low level, so it should get lock level 1 |
22:23:02 | Mat3 | ciao |
22:23:12 | Araq | and so locks: 4..8 means it cannot even call allocShared |
22:23:21 | * | Mat3 quit (Quit: Verlassend) |
22:23:27 | Araq | so ... what's the point of a range? |
22:24:14 | Jehan_ | Example: Code with lock level N calls a procvar which calls a code with lock level M. What is a legal lock-level declaration for the procvar? |
22:25:33 | Araq | lock level M |
22:25:47 | Araq | or anything above M |
22:26:37 | Araq | whether that it compatible with N depends |
22:26:47 | Araq | on the concrete values |
22:27:22 | Jehan_ | allocShared() and such is where you realize that you don't have to have a total order, but a partial order is just fine, and assign allocShared()'s lock a minimal element. :) |
22:27:44 | Araq | flaviu1: it depends on the details, but you don't really have a chance but to increase the code-size of the write barrier |
22:28:17 | Jehan_ | The problem is now when you have a procvar with lock level M, what procs can you assign to it? |
22:28:21 | Araq | no matter what you do, you almost always end up with a slower write barrier and this is critical, flaviu1 |
22:28:59 | Jehan_ | if you can assign anything <= M, then you run into a problem with the code that the proccvar calls. |
22:29:19 | Jehan_ | If you can assign anything > M, then also >N, and you run into problems with the code that calls the procvar. |
22:29:42 | Araq | well it's pretty obvious isn't it? |
22:29:46 | Jehan_ | Hence, subtyping for purposes of assignment to procvars would have to mean equality of lock level. |
22:30:15 | Araq | the procvar promises to lock up to level M, so anything that locks less than that is fine? |
22:30:29 | Araq | *less than or equal to |
22:30:34 | Jehan_ | Umm, what do you mean by "locks up to level M"? |
22:31:07 | Araq | well the procvar is allowed to lock level M and any level below |
22:31:19 | Araq | that is what locks: M means |
22:31:49 | Jehan_ | And the proc it calls can also do that. So with M = 2 either the procvar locks 1, the called proc locks 2 or the opposite is both possible. |
22:32:12 | Jehan_ | So, deadlock if one thread does one and one does the other. |
22:32:44 | Araq | hrm |
22:33:24 | Jehan_ | I'll have to dig up Boyapati's paper again because I can't remember how he solved this. |
22:33:40 | Jehan_ | If he did at all. :) |
22:33:42 | Araq | ok, I'm still not sure my solution is wrong :-) |
22:34:06 | Araq | because for nested locking I really require M strictly greater than N |
22:34:26 | Jehan_ | But: "can lock anything below X" can't work in general, I think. |
22:35:56 | Araq | well the subtype relation is not the relation that you use for the actual nesting |
22:36:51 | flaviu1 | tbh, this all sounds far too complicated |
22:37:56 | Jehan_ | flaviu1: Heh. :) |
22:38:10 | Araq | I don't think it's complicated in practice |
22:38:29 | NimBot | Araq/Nimrod devel 55c78af Clay Sweetser [+0 ±1 -0]: Fixes #1529 |
22:38:29 | NimBot | Araq/Nimrod devel 2154906 Andreas Rumpf [+0 ±1 -0]: Merge pull request #1549 from Varriount/fix-1529... 2 more lines |
22:38:48 | Araq | Jehan_: can you gist an example please? |
22:39:10 | Jehan_ | Araq: Can it wait until tomorrow? I've had a long day and need sleep soonish. |
22:39:29 | Araq | ok sure |
22:39:36 | * | jagillion joined #nimrod |
22:40:00 | Araq | I consider your remark invalid until you come up with an example that breaks my system :P |
22:41:10 | Jehan_ | Araq: Maybe. Maybe I'm also misunderstanding what you're trying to say. |
22:43:55 | Araq | flaviu1: the system can be simplified very easily but the more complete solution is worth a try, IMO |
22:44:57 | flaviu1 | ok |
22:45:25 | * | Jesin quit (Quit: Leaving) |
22:45:45 | Araq | unless Jehan_ is right ... then we really shouldn't do it ... |
22:45:48 | * | nande joined #nimrod |
22:49:10 | Jehan_ | Araq: I'm thinking something like this: https://gist.github.com/rbehrends/b5e02be8f68aa27823e4 |
22:49:21 | * | Jesin joined #nimrod |
22:49:26 | Jehan_ | I'm not sure if I've got the order right, if necessary, just flip them around. |
22:49:51 | Jehan_ | And I don't have any actual lock statements in there, since I don't know how they currently work. |
22:50:39 | * | Trustable quit (Quit: Leaving) |
22:51:36 | Araq | yes ok, but I don't see the problem |
22:51:43 | Araq | middle = f1 is allowed |
22:51:48 | Araq | middle = f2 is not |
22:52:19 | Jehan_ | If middle = f1 is allowed, then both bottom and f1 lock #1. |
22:52:42 | Araq | correct |
22:53:09 | Jehan_ | This looks like a deadlock situation to me. |
22:53:34 | Araq | how so? there is no nested locking whatsoever |
22:53:41 | Jehan_ | Have two different locks at level 1. |
22:53:55 | Jehan_ | One thread locks them in one order, one in the opposite order. |
22:53:57 | Jehan_ | Deadlock. |
22:54:56 | Araq | cannot happen |
22:55:21 | Araq | you cannot lock bottom and f1 in any nested way |
22:55:30 | Jehan_ | Make f1 = if threadno == 1: lock(A): bottom() else: lock(B): bottom() and bottom = if threadno == 1: lock(B) else: lock(A) |
22:55:39 | Jehan_ | with both A and B having lock level 1. |
22:56:20 | Jehan_ | Thread 1 will acquire A then B, thread 2 will acquire B then A. |
22:56:45 | Araq | I need the indentations |
22:57:01 | Joe_knock | where is the gtk2 github files for nim? I can't find them :( |
22:57:03 | Jehan_ | Let me edit. |
22:57:28 | fowl | Joe_knock, its owned by nimrod-code organization, nimrod-code/gtk2 |
22:57:40 | flaviu1 | Araq: nimrod pretty? |
22:57:40 | Joe_knock | fowl: thanks! |
22:58:20 | Jehan_ | Updated. |
22:59:09 | Jehan_ | Made up syntax, lock(L): … means: do "…" while lock L is being held. |
22:59:18 | Araq | yeah ofc |
22:59:42 | Araq | ok here is the thing: |
22:59:43 | TingPing | why does everything seem to install to random dirs, like `koch install` in the main repo shoves a random /nimrod suffix at the end that i have to patch out, `babel install` installs to ~/.babel with no obvious way to change it? |
23:00:23 | Araq | in 'f1' when you lock (A) or (B), you're not allowed to call 'bottom', Jehan_ |
23:00:45 | Araq | because bottom is of the same lock level |
23:01:04 | * | askatasuna quit (Ping timeout: 258 seconds) |
23:01:08 | Joe_knock | What happens when you have a package installed, then run babel again? Is that package re-installed/overwritten? |
23:01:27 | Jehan_ | What if I pass bottom in as a procvar/closure argument? |
23:01:50 | Araq | well procvars are annotated with the locklevel too |
23:02:15 | filwit | Joe_knock, if you `babel install ...` then it's overwritten I believe (in my experience) |
23:02:45 | Jehan_ | Yeah, I know. |
23:02:58 | Joe_knock | So babel is a package manager that runs global... |
23:03:02 | Jehan_ | As I said, I really need to look at it with an untired mind. |
23:03:15 | * | Joe_knock note to self, babel needs a venv-type thing |
23:03:43 | Araq | ok, good, so it's not obviously wrong :-) |
23:03:59 | Jehan_ | Araq: Heh. :) |
23:04:09 | Jehan_ | Well, I was initially inclined to agree with you. |
23:04:27 | Jehan_ | But I've been up since 4 am, so … not thinking straight. |
23:04:52 | Jehan_ | Joe_knock: Yeah, agreed. I need to get around to wrap up my PR for babel. |
23:06:07 | flaviu1 | Someone should kick Jehan_ so he can get some sleep |
23:06:14 | Joe_knock | Unless... There is a tool that installs multiple versions of nim, with their own babels. |
23:06:18 | Jehan_ | Leaving now. Good night. :) |
23:06:24 | Araq | good night |
23:06:26 | * | Jehan_ quit (Quit: Leaving) |
23:06:28 | Joe_knock | good night. |
23:07:17 | Araq | Joe_knock: for me babel doesn't require sudo if that's what you mean |
23:07:54 | Araq | TingPing: not sure what you mean, but speading everything over everywhere is Unix's way of doing things? |
23:07:58 | Joe_knock | Araq: which part are you referring to? |
23:08:40 | Araq | Joe_knock: it's already .babel in your home directory. what's the purpose ... oh ok, never mind |
23:08:42 | TingPing | Araq, /usr/local/nimrod/bin/nimrod is not the unix way, it should be /usr/local/bin/nimrod |
23:09:35 | Araq | TingPing: I'm quite sure that's a regression then |
23:09:37 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:09:58 | TingPing | babel installing to $HOME/.babel is annoying, but i can understand some use cases for it, at least make it configurable |
23:10:09 | Joe_knock | Araq: Stability of the dependencies/nim itself. If I am on 0.94, running v0.2 some-lib, I don't want to break it if I decide to use babel again for another project which requires v0.3 some-lib |
23:10:09 | Araq | iirc it already is |
23:10:34 | flaviu1 | TingPing: Not using your package manager is also not the ideal way of installing stuff |
23:10:43 | TingPing | flaviu1, i am making packages.. |
23:11:08 | flaviu1 | TingPing: Ah, ok |
23:11:23 | TingPing | which is why broken urls, strange build systems, and wrong paths are extra annoying :P |
23:11:40 | flaviu1 | TingPing: Is https://aur.archlinux.org/packages/ni/nimrod-git/PKGBUILD helpful? |
23:12:30 | Araq | TingPing: Nim fits right into the open source world :P |
23:12:43 | TingPing | well they took the approach of moving things after install, i patched install.sh directly |
23:12:46 | * | bogen joined #nimrod |
23:12:53 | TingPing | anyway its finished, id just hope next release is more sane :P |
23:13:19 | TingPing | the fact install.sh is generated is also strange, i dont see where it comes from either like any template |
23:14:00 | Araq | tools/niminst/install.tmpl |
23:14:07 | Joe_knock | Instead of making babel configurable with a venv, perhaps a wrapper for installing nims using nim would be a better way to do things. |
23:14:29 | * | boydgreenfield quit (Quit: boydgreenfield) |
23:14:43 | TingPing | also csources should allow binDir to be configurable |
23:15:05 | TingPing | though just having a standard release zip for the latest version with it included would fix that |
23:15:05 | Araq | TingPing: can you please make PRs? |
23:15:12 | TingPing | yea ill look into it |
23:18:24 | Araq | hrm |
23:18:28 | Araq | cp bin/nimrod $bindir/nimrod |
23:18:28 | TingPing | oh it expects /bin on the end of the prefix |
23:18:33 | TingPing | thats why it does it |
23:19:02 | Araq | yeah the script looks fine to me |
23:19:13 | TingPing | prefix should never include /bin |
23:19:18 | TingPing | but once you know that it works |
23:19:39 | Araq | there is no prefix here |
23:19:52 | Araq | the --help is clear about it |
23:20:11 | TingPing | koch install /usr is wrong, kock install /usr/bin is right |
23:21:15 | Araq | koch install's help could be better, yes |
23:21:33 | TingPing | i would suggest it follow all other build systems |
23:21:34 | Araq | but koch install is stupid to begin with |
23:22:07 | Araq | so what build system deals with the massive recursive dependency also known as bootstrapping? |
23:22:21 | Araq | can't think of any, so I wrote my own tool |
23:22:34 | flaviu1 | Araq: I think you misread |
23:22:35 | TingPing | i just mean the definition of 'prefix' |
23:22:42 | flaviu1 | yep ^ |
23:22:59 | TingPing | as you can see arch misunderstood it as well |
23:23:06 | TingPing | you have to read the source to realize what it does |
23:23:22 | Araq | the help is clear enough IMO |
23:23:33 | Araq | 'prefix' is not a concept that we use |
23:23:44 | Araq | and when you look at the code |
23:24:02 | TingPing | packagers do not look at code, they understand what a prefix is though |
23:24:05 | Araq | you'll see 'prefix' is not a concept at all anyway |
23:25:02 | Joe_knock | I made my first PR to nim :D |
23:25:09 | TingPing | the website uses `koch install [dir]`, i read this as prefix even if it was not intended as such |
23:25:43 | TingPing | you could say [bindir] |
23:26:04 | Araq | ok, that's a good improvement |
23:27:14 | Araq | I think if we change it now to install.sh prefix the other packagers will be pissed |
23:27:31 | TingPing | it would not be rocket science to support both |
23:27:41 | Joe_knock | yikes, this gtk code is confusing as shit |
23:27:58 | Araq | Joe_knock: we have examples somewhere |
23:28:21 | Joe_knock | Araq: I am working through the examples to try to simplify them. |
23:28:36 | Araq | TingPing: ok, how would you support both? |
23:29:26 | TingPing | ok, well if somebody does depend on the completely strange behavior of doing $prefix/$proj/bin then you could not support everything |
23:29:50 | Araq | btw this bullshit should have been replaced by Gobo Linux's way 2 decades ago |
23:29:52 | TingPing | but if you just want to support $bindir or $prefix it would be simple by ignoring /bin |
23:32:10 | Araq | yeah, sounds good enough, TingPing |
23:34:46 | Araq | please make it happen |
23:36:02 | NimBot | Araq/Nimrod devel f99c40f Reimer Behrends [+0 ±4 -0]: Improve setjmp()/longjmp() performance.... 9 more lines |
23:36:02 | NimBot | Araq/Nimrod devel cb6441e Reimer Behrends [+0 ±1 -0]: Use _setjmp()/_longjmp() only on BSD-like systems for now. |
23:36:02 | NimBot | Araq/Nimrod devel c17c8e9 Andreas Rumpf [+0 ±4 -0]: Merge pull request #1545 from rbehrends/setjmp-perf... 2 more lines |
23:38:11 | TingPing | and on another 'goes against everything else' you have the arg syntax of -d:stuff |
23:38:30 | Araq | yeah but for good reasons |
23:38:55 | Araq | I usually improve what I see |
23:39:02 | Araq | I call it "progress" |
23:39:26 | TingPing | sounds scary, lets just do what we did in the 60, k |
23:39:31 | TingPing | 60s* |
23:39:36 | Araq | ;-) |
23:39:41 | flaviu1 | TingPing: Be glad he didn't decide to use windows syntax ;) |
23:40:16 | TingPing | flaviu1, with spaces everywhere "Debug Build" |
23:40:17 | Joe_knock | Araq: So currently there exists no virtual environment workaround for Nim, yes? |
23:41:26 | flaviu1 | Does babel use $XDG_CONFIG_HOME? |
23:42:11 | Araq | Joe_knock: not sure what you mean, I can have 2 Nim installations already |
23:42:31 | flaviu1 | Joe_knock: You have to switch your path manually |
23:43:17 | Joe_knock | Araq: So I can have any number of nimrods living on my system manually? |
23:43:36 | flaviu1 | Joe_knock: Sure. You use whatever's in your PATH |
23:45:10 | Joe_knock | flaviu1: Where (again) does the symlink for nimrod live on ubuntu/debian? |
23:47:09 | Joe_knock | okay, found it /usr/bin/ |
23:48:23 | Joe_knock | flaviu1: So I must change the link in /usr/bin/ each time manually for different nimrods? |
23:49:13 | flaviu1 | Joe_knock: That, or remove the package manager version and do set PATH=/new/bin/path:$PATH to whichever local installation you want |
23:50:02 | Joe_knock | flaviu1: But how do I then deal with .babel living in my HOME directory (as a global)? |
23:50:32 | flaviu1 | No idea about that part, sorry. Patching it should be possible though |
23:50:54 | Araq | --babelPath can be set |
23:51:26 | Joe_knock | flaviu1: That is the part I am trying to figure out how to work-around with. |
23:52:13 | Joe_knock | Araq: I was thinking of something like this: https://github.com/pybank/pythonbrew |
23:52:17 | * | francisl joined #nimrod |
23:55:30 | * | xenagi joined #nimrod |
23:55:39 | * | darkf joined #nimrod |