00:25:27 | * | Fr4n quit (Ping timeout: 258 seconds) |
00:28:39 | * | q66 quit (Quit: Leaving) |
00:29:17 | Onionhammer | yes fowl! |
00:34:36 | * | q66[lap] quit (Ping timeout: 250 seconds) |
00:42:54 | * | Fr4n joined #nimrod |
00:59:55 | * | sdw joined #nimrod |
01:33:28 | * | francisl joined #nimrod |
02:11:15 | * | vendethiel joined #nimrod |
02:12:32 | * | vendethiel- quit (Ping timeout: 250 seconds) |
02:12:47 | * | bogen joined #nimrod |
02:13:59 | * | saml_ joined #nimrod |
02:31:41 | * | xenagi joined #nimrod |
02:45:30 | * | flaviu1 quit (Ping timeout: 246 seconds) |
02:48:30 | * | rg4 joined #nimrod |
02:48:53 | * | brson quit (Quit: leaving) |
02:49:15 | * | brson joined #nimrod |
02:53:14 | * | Francisco joined #nimrod |
02:54:45 | * | Demos quit (Read error: Connection reset by peer) |
02:56:29 | * | Fr4n quit (Ping timeout: 244 seconds) |
03:34:33 | * | EXetoC quit (Ping timeout: 260 seconds) |
03:38:59 | * | wkoch quit (Quit: wkoch) |
03:52:43 | * | kshlm joined #nimrod |
04:01:38 | * | EXetoC joined #nimrod |
04:18:20 | * | francisl quit (Quit: francisl) |
04:29:51 | * | tdc joined #nimrod |
05:10:10 | * | xenagi|2 joined #nimrod |
05:13:33 | * | xenagi quit (Ping timeout: 246 seconds) |
05:21:58 | * | edayo_ joined #nimrod |
05:29:58 | * | adrusi quit (Quit: adrusi) |
05:30:28 | * | saml_ quit (Quit: Leaving) |
05:32:05 | * | Sht0 quit (Ping timeout: 260 seconds) |
05:43:22 | * | xenagi|2 quit (Read error: Connection reset by peer) |
05:53:06 | * | brson quit (Quit: leaving) |
06:20:44 | * | BlaXpirit joined #nimrod |
06:29:02 | * | uber quit (Ping timeout: 245 seconds) |
06:29:22 | * | vissborg quit (Remote host closed the connection) |
06:29:52 | * | Roin quit (Ping timeout: 245 seconds) |
06:32:03 | * | vissborg joined #nimrod |
06:36:28 | * | uber joined #nimrod |
06:36:29 | * | uber quit (Max SendQ exceeded) |
06:36:57 | * | tdc quit (Ping timeout: 260 seconds) |
06:36:59 | * | uber joined #nimrod |
06:44:51 | * | Roin joined #nimrod |
07:09:37 | * | tyronut joined #nimrod |
07:15:38 | * | vissborg quit (Remote host closed the connection) |
07:17:57 | * | vissborg joined #nimrod |
07:40:41 | * | tdc joined #nimrod |
07:55:43 | * | kshlm quit (Ping timeout: 272 seconds) |
08:02:35 | * | z3744624276842 joined #nimrod |
08:10:28 | * | tdc_ joined #nimrod |
08:13:33 | * | tdc quit (Ping timeout: 260 seconds) |
08:23:23 | * | johnsoft quit (Ping timeout: 272 seconds) |
08:36:51 | * | noam__ joined #nimrod |
08:39:53 | * | noam_ quit (Ping timeout: 240 seconds) |
09:06:45 | * | tdc_ quit (Ping timeout: 260 seconds) |
09:10:00 | * | edayo_ quit (Ping timeout: 260 seconds) |
09:11:01 | * | xcombelle joined #nimrod |
09:11:20 | * | vendethiel quit (Ping timeout: 272 seconds) |
09:12:00 | * | edayo_ joined #nimrod |
09:15:22 | * | [CBR]Unspoken1 quit (Quit: Leaving.) |
09:16:32 | * | [CBR]Unspoken1 joined #nimrod |
10:00:25 | * | kshlm joined #nimrod |
10:16:21 | * | xcombelle quit (Ping timeout: 260 seconds) |
10:23:28 | * | johnsoft joined #nimrod |
10:36:35 | * | xcombelle joined #nimrod |
11:13:15 | * | kuzy000_ joined #nimrod |
11:36:33 | * | xcombelle quit (Ping timeout: 272 seconds) |
11:47:03 | * | Sht0 joined #nimrod |
11:50:37 | * | dirkk0 joined #nimrod |
11:50:55 | * | edayo_ quit (Quit: Leaving) |
11:54:53 | * | kshlm quit (Ping timeout: 240 seconds) |
12:07:02 | * | dirkk0 quit (Quit: This computer has gone to sleep) |
12:20:32 | * | saml_ joined #nimrod |
12:35:18 | * | Joe_knock joined #nimrod |
12:50:30 | * | dirkk0 joined #nimrod |
13:06:54 | * | wkoch joined #nimrod |
13:06:55 | * | bjz_ quit (Read error: Connection reset by peer) |
13:07:10 | * | bjz joined #nimrod |
13:11:11 | * | Amrykid2 is now known as Amrykid |
13:11:21 | * | Amrykid quit (Changing host) |
13:11:21 | * | Amrykid joined #nimrod |
13:21:30 | * | xcombelle joined #nimrod |
13:23:35 | * | saml_ quit (Quit: Leaving) |
13:23:43 | * | untitaker quit (Ping timeout: 244 seconds) |
13:31:08 | * | untitaker joined #nimrod |
13:53:14 | * | nande joined #nimrod |
13:54:16 | * | brson joined #nimrod |
13:57:17 | * | q66[lap] joined #nimrod |
13:57:31 | * | askatasuna joined #nimrod |
13:59:46 | * | darkf quit (Quit: Leaving) |
13:59:49 | * | q66[lap] quit (Client Quit) |
14:08:47 | * | q66[lap] joined #nimrod |
14:12:11 | * | xenagi joined #nimrod |
14:48:01 | * | jagillion joined #nimrod |
15:35:13 | * | tyronut quit (Quit: Leaving) |
15:45:58 | * | Matthias247 joined #nimrod |
15:58:02 | * | Jesin joined #nimrod |
16:05:01 | * | silven joined #nimrod |
16:07:41 | * | bjz quit (Read error: Connection reset by peer) |
16:07:55 | * | bjz joined #nimrod |
16:15:06 | * | silven quit (Remote host closed the connection) |
16:16:27 | * | silven joined #nimrod |
16:21:08 | * | dirkk0 quit (Quit: Leaving) |
16:27:37 | * | uber quit (Killed (morgan.freenode.net (Nickname regained by services))) |
16:27:54 | * | uber_ joined #nimrod |
16:27:55 | * | uber_ quit (Max SendQ exceeded) |
16:28:53 | * | uber joined #nimrod |
16:28:54 | * | uber quit (Max SendQ exceeded) |
16:29:23 | * | uber joined #nimrod |
16:29:23 | * | uber quit (Max SendQ exceeded) |
16:29:53 | * | uber joined #nimrod |
16:29:53 | * | uber quit (Max SendQ exceeded) |
16:30:23 | * | uber joined #nimrod |
16:30:54 | * | jagillion quit (Quit: jagillion) |
16:32:07 | * | Wernesgrunnerr joined #nimrod |
16:32:31 | Wernesgrunnerr | Hello, is it possible to dynamically link a nimrod dynamic library to a c++ program? |
16:40:24 | * | Varriount__ joined #nimrod |
16:43:24 | * | Varriount_ quit (Ping timeout: 246 seconds) |
16:57:40 | * | BlaXpirit quit (Quit: Quit Konversation) |
16:59:23 | * | BlaXpirit joined #nimrod |
16:59:43 | * | vendethiel joined #nimrod |
17:10:57 | * | jagillion joined #nimrod |
17:19:08 | * | wkoch1 joined #nimrod |
17:19:32 | * | wkoch quit (Ping timeout: 260 seconds) |
17:27:50 | * | jbe joined #nimrod |
17:28:11 | jbe | hi |
17:30:29 | jbe | i just tried to use glu in the opengl package and got some undeclared identifier errors for PGLfloat and PGLdouble.. i can't see those types defined anywhere even though they are used in glu.nim... |
17:33:55 | jbe | hmm |
17:34:37 | Wernesgrunnerr | Hi, anyone knows if its possible to use c++ bindings to create a dynamic library usable by a c++ program? |
17:37:46 | EXetoC | jbe: not in the opengl module either? |
17:38:01 | EXetoC | not many people use that package probably. I'll look into it |
17:38:17 | jbe | EXetoC: nope |
17:39:29 | EXetoC | maybe there's only TGL* |
17:45:04 | jbe | yeah it looks that way |
17:45:40 | jbe | but glu uses PGL*, and i also found some old code of mine that uses it, so it must have been removed |
17:48:32 | Joe_knock | Wernesgrunnerr: Can you enlighten us more as to what you are trying to do. |
17:49:28 | jbe | EXetoC: ^, and it works after replacing those types with ptr TGL* instead... should i submit a patch? |
17:54:37 | Araq | Wernesgrunnerr: yes, it is possible |
17:54:58 | Araq | generate a DLL from your nim module, generate the stdlib as a DLL |
17:55:14 | Araq | generate a header file from your module |
17:55:19 | Araq | and then use that from C++ |
17:55:41 | EXetoC | jbe: if you feel like removing the T on all types, because we're changing that as well |
17:56:08 | Araq | EXetoC: we have a deprecation path for this thing |
17:56:21 | Araq | don't just break every single opengl program out there! |
17:56:51 | EXetoC | ok duplicating the types then with different names |
17:57:24 | Araq | no, we have: |
17:57:45 | Araq | {.deprecated: [TFoo: Foo, TBar: Bar].} |
17:58:07 | Araq | and then only Foo and Bar should be defined properly |
17:59:30 | jbe | so how are pointer types distinguished from value types under the new scheme? |
18:00:22 | Araq | it depends onto which type is the common one |
18:00:32 | Araq | the common gets no pre-/suffix |
18:00:45 | Araq | the other gets an Obj or Ptr or Ref suffix |
18:00:55 | Araq | *if* required |
18:02:43 | EXetoC | I forgot the details. haven't written much code as of lately |
18:03:03 | jbe | i see |
18:03:16 | EXetoC | so follow these instructions if you want. otherwise I'll do it myself today |
18:03:23 | * | brson quit (Ping timeout: 240 seconds) |
18:05:30 | jbe | ok, i'm leaving it to you then ;p |
18:05:32 | EXetoC | I'll write a readme either way. it's about time I do |
18:09:10 | * | brson joined #nimrod |
18:10:43 | jbe | nice work on the wrapper by the way, it's working great |
18:16:32 | * | noam__ is now known as noam |
18:16:44 | EXetoC | good to know |
18:17:19 | * | jbe quit (Quit: Leaving) |
18:17:28 | * | silven_ joined #nimrod |
18:18:46 | Wernesgrunnerr | Araq: Thanks a lot, when it comes to using the c++ SDK (which is just a bunch of header files) in my nimrod library, is there a place where I can read about that? |
18:19:38 | * | silven__ joined #nimrod |
18:19:46 | * | silven quit (Read error: Connection reset by peer) |
18:19:50 | Araq | Wernesgrunnerr: http://nimrod-lang.org/nimrodc.html#importcpp-pragma |
18:20:48 | * | francisl joined #nimrod |
18:20:58 | * | silven_ quit (Read error: Connection reset by peer) |
18:21:38 | * | francisl left #nimrod (#nimrod) |
18:21:55 | * | francisl joined #nimrod |
18:22:51 | Wernesgrunnerr | Araq: Thanks a lot! :D |
18:24:10 | * | Jesin quit (Quit: Leaving) |
18:26:12 | Araq | Wernesgrunnerr: you can also try c2nim on the c++ code to generate a Nim interface |
18:26:31 | Araq | but be prepared to massage the C++ until c2nim likes it |
18:26:46 | * | Jesin joined #nimrod |
18:28:01 | Wernesgrunnerr | Arab: Alright, and I suppose that using c2nim is the preferred method? I see that the other method is considered sloppy interfacing! Thanks again! |
18:35:59 | Araq | Wernesgrunnerr: when it comes to c++ interfacing there is *no* clean solution really |
18:40:06 | * | Jehan_ joined #nimrod |
18:58:17 | * | Johz joined #nimrod |
19:03:05 | * | silven__ quit (Remote host closed the connection) |
19:05:59 | * | silven joined #nimrod |
19:12:54 | * | brson quit (Quit: leaving) |
19:17:45 | * | TieSoul_ joined #nimrod |
19:18:56 | * | TieSoul_ quit (Remote host closed the connection) |
19:19:02 | * | TieSoul quit (Ping timeout: 245 seconds) |
19:19:26 | * | TieSoul joined #nimrod |
19:24:24 | * | bjz quit (Read error: Connection reset by peer) |
19:24:26 | * | bjz_ joined #nimrod |
19:42:55 | * | francisl quit (Quit: francisl) |
19:58:08 | * | Ven joined #nimrod |
20:12:22 | * | TieSoul quit (Ping timeout: 245 seconds) |
20:14:28 | * | Mat3 joined #nimrod |
20:14:31 | Mat3 | hello |
20:21:07 | Araq | hi Mat3 |
20:21:42 | Araq | ping Varriount__ |
20:22:23 | Mat3 | hi Araq |
20:22:42 | Araq | ping kokozedman |
20:23:42 | * | Johz quit (Quit: Leaving) |
20:24:08 | Araq | Jehan_: sorry I've forgot to tell ya |
20:24:25 | * | xcombelle quit (Ping timeout: 260 seconds) |
20:24:27 | Araq | 'if isDefined("posix")' is too risky, IMO |
20:24:43 | Araq | we should whitelist the OSes where it's known to work |
20:24:54 | Jehan_ | Araq: Hmm, good point. |
20:25:37 | Jehan_ | Especially since you can also run -d:posix, I think. |
20:25:49 | * | TieSoul joined #nimrod |
20:25:52 | Jehan_ | And I have to double-check what cygwin does. |
20:26:06 | Wernesgrunnerr | Araq: Alright, thanks a lot! I really didn't knew what I was looking for :D |
20:26:40 | Jehan_ | I don't think the compiler considers cygwin to be a platform of its own at the moment? |
20:26:54 | Araq | cygwin is no platform :P |
20:27:17 | Jehan_ | cygwin does a whole lot of stuff different than Windows. |
20:27:26 | Jehan_ | In really, really scary ways at times. |
20:27:38 | Jehan_ | Don't get me started on fork() under Cygwin, for example. |
20:28:14 | Jehan_ | (Not that the Cygwin efforts aren't heroic, but they're working around some pretty nasty limitations.) |
20:29:05 | Araq | cygwin is rather pointless, all the gnu tools have been ported to windows properly |
20:29:07 | * | Trustable joined #nimrod |
20:32:31 | Araq | Wernesgrunnerr: we have some plans to improve C++ compatibility |
20:32:33 | Jehan_ | Araq: Except that lots of people still use Cygwin as a porting environment. |
20:33:56 | Araq | Jehan_: yes, but Nim itself has been ported to Windows, so I don't see the point |
20:35:00 | Araq | cygwin can't run ELF binaries, so it's not a real emulator |
20:35:09 | Jehan_ | Araq: Because, for example, I'm using Nim to write tools for one such project. |
20:35:22 | Araq | take Wine as another example |
20:35:41 | Araq | we do not need to support that because --os:windows plus cross compiling fills the bill |
20:35:57 | Araq | but for cygwin? --os:linux? |
20:36:08 | Mat3 | yes |
20:36:33 | Araq | Jehan_: ok ok, that makes all the difference then :-) |
20:36:46 | Araq | what do you need? --os:cygwin ? |
20:37:17 | Jehan_ | Araq: At the moment, I don't need anything at all. What I'm doing doesn't need a whole lot of OS services, so things seem to work. |
20:37:39 | Jehan_ | popen() is the one exception, but I have my own module for that anyway that wraps the C calls. |
20:38:08 | Jehan_ | I was just trying to point out that Cygwin is not going entirely unused. |
20:38:24 | Araq | well yes. I use it at work too |
20:38:54 | Araq | because I can't be bothered to port ~7000 lines of configure crap |
20:39:05 | Jehan_ | Specifically in the academic world, where a lot of projects are developed for Unix systems and Cygwin offers a comparatively easy way to port them to Windows where limited funding is available. |
20:39:27 | Jehan_ | Yeah, pretty much. |
20:40:36 | Jehan_ | Let me add at this point that autoconf is on my list of most hated tools. |
20:41:34 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:41:37 | Jehan_ | I've toyed repeatedly with writing at least a basic alternative implementation in Lua. |
20:42:09 | Jehan_ | Never got off the ground because in the end I could avoid it, but it's something that somebody really should do. |
20:43:02 | Jehan_ | Anyhow, I mentioned cygwin in this context, because I seem to remember that setjmp under cygwin works differently from its normal Windows behavior, too. |
20:43:25 | Mat3 | ciao |
20:43:27 | Jehan_ | But I can't recall enough about how Cygwin emulates signals to know whether that's actually an overhead that one has to be worried about. |
20:43:48 | Jehan_ | But yeah, I'll definitely go with a whitelist of OSs. |
20:43:59 | * | flaviu1 joined #nimrod |
20:45:26 | Jehan_ | On a totally different note: Have you considered singleton types as an alternative for static[int] and such? |
20:47:21 | Araq | not really but it's clear that static[T] is flawed |
20:47:51 | Araq | however it works good enough for what I'm implementing right now |
20:47:58 | Jehan_ | The idea is that a singleton type would not require a fundamentally different treatment. |
20:48:13 | Araq | which is Lock[LockLevel: static[int]] |
20:49:57 | Jehan_ | I'm not suggesting that you change it, I'm just wondering whether such an approach might simplify matters. |
20:50:28 | * | Mat3 quit (Quit: Verlassend) |
20:50:58 | Araq | well I wanted to replace types by ASTs throughout the compiler |
20:51:14 | Araq | but it's lots of work and I'm not sure it works :-) |
20:51:48 | Jehan_ | Heh. :) |
20:54:42 | Araq | the planned types API however is based on this idea: |
20:54:58 | Araq | don't expose types, expose their ASTs instead |
20:56:05 | * | askatasuna quit (Quit: WeeChat 1.0) |
20:58:17 | * | q66 joined #nimrod |
21:00:37 | * | kuzy000_ quit (Ping timeout: 245 seconds) |
21:11:43 | * | francisl joined #nimrod |
21:12:58 | * | Trustable quit (Quit: Leaving) |
21:16:31 | * | Ven joined #nimrod |
21:20:11 | Joe_knock | Araq: Should we be building the big-break, or wait until 0.96 is finalized? |
21:27:02 | * | jagillion quit (Quit: jagillion) |
21:28:27 | Araq | Joe_knock: not even babel works with bigbreak :-/ |
21:29:04 | Joe_knock | :O |
21:29:27 | * | Joe_knock assumes patience |
21:35:59 | * | TieSoul_ joined #nimrod |
21:36:57 | * | TieSoul quit (Ping timeout: 245 seconds) |
21:39:01 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:45:29 | * | BlaXpirit quit (Quit: Quit Konversation) |
21:59:38 | Araq | hrm 'else after loop' is more controversial than multi-line comments |
22:04:29 | reactormonk | Araq, we should implement a monad-like definition syntax for everything, then you have your zero ;-) |
22:05:03 | Araq | hrm? my 'zero'? |
22:14:29 | * | saml quit (Quit: Leaving) |
22:19:07 | * | francisl quit (Quit: francisl) |
22:33:30 | * | Johz joined #nimrod |
22:35:44 | * | Varriount__ is now known as Varriount |
22:36:00 | Varriount | Meep |
22:36:44 | Varriount | Araq: You called? |
22:37:04 | Araq | yeah |
22:37:16 | Jehan_ | Araq: The problem I have with else after loop is not so much the feature as such, but the underlying creeping featurism. I don't think anyone has conclusively demonstrated the benefits. |
22:37:32 | Jehan_ | Multiline comments are something that one can ignore even if not needed. |
22:37:39 | Jehan_ | And are more likely to have benefits. |
22:37:43 | Araq | can have a look at bug #1544, Varriount ? |
22:38:30 | Araq | Jehan_: actually I find |
22:38:36 | Araq | while foo: bar |
22:38:40 | Araq | else: baz |
22:38:47 | Araq | very intuitive |
22:39:07 | Araq | python's version of it is not at all |
22:39:23 | Jehan_ | Araq: Hmm. Is it being used often enough to merit a special syntax? |
22:39:24 | Araq | but that wasn't requested |
22:39:57 | Araq | Jehan_: I don't think so |
22:40:08 | Araq | but I don't think of it as *special* syntax |
22:40:17 | Varriount | I agree with Jehan_ on the for/while...else |
22:40:20 | Araq | it's a natural extension |
22:40:57 | Jehan_ | Araq: I can think of at least three different meanings that people would ascribe to an "else" clause after a loop, so I doubt the "natural" part. |
22:41:01 | * | saml joined #nimrod |
22:41:18 | Jehan_ | Just for starters, you and Guido van Rossum obviously see it differently. :) |
22:41:46 | Araq | yeah but Guido is Dutch ;-) |
22:41:54 | Araq | so ... doesn't count :P |
22:42:18 | Jehan_ | The HN thread I linked had people using various different interpretations, too. |
22:42:59 | Araq | well I'd argue while/else only has 1 valid interpretation, but for/else is not so clear |
22:43:11 | Jehan_ | If there's anything I'd take from this is that it might be nice to have some way to do a multi-keyword syntax, i.e. foo: … bar: ... |
22:43:29 | Araq | and in fact |
22:43:40 | Araq | while/else is *quite* useful for parsers and lexers |
22:43:44 | Jehan_ | I know that you can use multiple do's, but that's not as intuitive. |
22:44:28 | Araq | while buf[i] in Letters: ... |
22:44:42 | Jehan_ | Araq: Hmm, I see where you're coming from, but I personally still wouldn't use it for parsers/lexers. |
22:44:43 | Araq | else: error("identifier expected") |
22:45:28 | Jehan_ | It feels Perlish to me (write-only code). Stuff that feels natural during writing, but is more difficult to decipher. |
22:45:39 | Jehan_ | Of course, that's just my subjective impression. |
22:45:58 | Jehan_ | It's frustrating that it's so hard to do controlled studies with respect to language design. |
22:47:13 | Jehan_ | There's the PPIG stuff, and a few isolated studies here and there. |
22:47:52 | Jehan_ | E.g. the stuff that Stefan Hanenberg does: https://www.dawis.wiwi.uni-due.de/team/stefan-hanenberg/ |
22:47:57 | Araq | yes but for me personally there is another problem with objective studies: |
22:48:22 | Araq | what if the study disagrees with how I want the language to work? ;-) |
22:48:58 | Jehan_ | Araq: That's a different story. I'm talking about assumptions that you make during design. |
22:49:37 | Araq | Jehan_: iirc SQL has been based on studies |
22:49:54 | Araq | and while the syntax is passable, they missed |
22:50:09 | Jehan_ | Personally, I like my design to be supported by more than educated guesses. My problem is more that this is often impossible. |
22:50:30 | Araq | *composability* in all its various ways |
22:50:47 | Jehan_ | Araq: Not sure what studies they did for SQL. |
22:50:54 | Jehan_ | And, of course, studies can be wrong. |
22:51:10 | Varriount | Araq: I can't replicate issue #1544 |
22:51:13 | Araq | yeah but I think they picked the wrong target audience |
22:51:16 | Jehan_ | My issue is with the scarcity of studies, not with their total absence (there are a few, but they're few and far between). |
22:51:35 | Varriount | Araq: And I'm booting from the ground up - csources and all |
22:51:37 | Araq | Varriount: what if 'git' is not in your path? |
22:52:22 | Varriount | Araq: I'll check. |
22:53:21 | Jehan_ | Hmm, why do you need Git to bootstrap on Windows? (Just curious.) |
22:53:47 | Varriount | You shouldn't. That's what I'm testing |
22:55:17 | Araq | Jehan_: the compiler invokes git to embed the HEAD hash into the exe |
22:55:24 | Araq | I was against this |
22:55:31 | Jehan_ | Oh, I see. |
22:55:43 | Varriount | Araq: Go poke Gradha then. |
22:56:18 | Araq | well both gradha and dom96 wanted this feature |
22:56:19 | Varriount | Araq: Yep. It fails when git isn't in the path. |
22:56:38 | Araq | Varriount: ok, thanks |
22:56:55 | Jehan_ | Interesting, is this Windows only? Because I use a bridge and don't even have a .git directory. |
22:59:44 | Varriount | Ok, I could have sworn gradha said he tested his git hash thing without git installed. |
23:00:07 | Araq | it might be Windows only |
23:00:31 | Araq | in which case somebody needs to check what osproc does on other OSes |
23:00:35 | Varriount | However the presence of 'const gitHash = gorge("git log -n 1 --format=%H")' in a procedure, with no error checking, baffles me. |
23:00:37 | Araq | when the binary cannot be found |
23:01:14 | Araq | Varriount: well compile-time 'try' is broken |
23:01:24 | Araq | so .. there is little we can do |
23:01:35 | Araq | except ensure 'gorge' returns "" on error |
23:01:54 | Varriount | Araq: It's not in a try. |
23:02:11 | Araq | Varriount: nor can it be, thanks to VM bugs |
23:02:39 | Jehan_ | Ah, on OS X the gorge just gets an error message back from the shell, it doesn't fail with an exception. |
23:03:54 | Jehan_ | Should startProcess() on Windows likewise return an error code rather than throwing an exception? |
23:05:31 | Araq | hrm I dunno |
23:05:42 | Jehan_ | One solution in general might be to have gorge() return nil if it encounters an error of some kind. |
23:06:06 | Araq | yeah I'm not a fan of nil strings |
23:06:07 | Jehan_ | Hmm, that may also not be the right thing. |
23:06:25 | Jehan_ | I was thinking more that you can then check with "when" if the command succeeded. |
23:07:46 | Araq | well in fact |
23:07:54 | Araq | 'gorge' should fail at compile-time |
23:08:15 | Araq | and we should support findExe in the VM |
23:08:35 | Araq | so you can do: const foo = when findExe("git"): ... else: "" |
23:09:13 | Jehan_ | Hmm, if gorge can fail at compile time, then you really need some way to recover from errors. |
23:09:20 | * | saml quit (Quit: Leaving) |
23:11:07 | Araq | Jehan_: yes, compile-time 'try' ftw |
23:11:26 | Araq | but that will take a while, so we need a workaround |
23:13:20 | * | Joe_knock quit (Quit: Leaving) |
23:14:20 | * | darkf joined #nimrod |
23:24:13 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:26:37 | * | Johz quit (Quit: Leaving) |
23:45:31 | * | Wernesgrunnerr quit (Ping timeout: 246 seconds) |