<< 26-09-2014 >>

00:25:27*Fr4n quit (Ping timeout: 258 seconds)
00:28:39*q66 quit (Quit: Leaving)
00:29:17Onionhammeryes 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:31WernesgrunnerrHello, 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:11jbehi
17:30:29jbei 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:55jbehmm
17:34:37WernesgrunnerrHi, anyone knows if its possible to use c++ bindings to create a dynamic library usable by a c++ program?
17:37:46EXetoCjbe: not in the opengl module either?
17:38:01EXetoCnot many people use that package probably. I'll look into it
17:38:17jbeEXetoC: nope
17:39:29EXetoCmaybe there's only TGL*
17:45:04jbeyeah it looks that way
17:45:40jbebut glu uses PGL*, and i also found some old code of mine that uses it, so it must have been removed
17:48:32Joe_knockWernesgrunnerr: Can you enlighten us more as to what you are trying to do.
17:49:28jbeEXetoC: ^, and it works after replacing those types with ptr TGL* instead... should i submit a patch?
17:54:37AraqWernesgrunnerr: yes, it is possible
17:54:58Araqgenerate a DLL from your nim module, generate the stdlib as a DLL
17:55:14Araqgenerate a header file from your module
17:55:19Araqand then use that from C++
17:55:41EXetoCjbe: if you feel like removing the T on all types, because we're changing that as well
17:56:08AraqEXetoC: we have a deprecation path for this thing
17:56:21Araqdon't just break every single opengl program out there!
17:56:51EXetoCok duplicating the types then with different names
17:57:24Araqno, we have:
17:57:45Araq{.deprecated: [TFoo: Foo, TBar: Bar].}
17:58:07Araqand then only Foo and Bar should be defined properly
17:59:30jbeso how are pointer types distinguished from value types under the new scheme?
18:00:22Araqit depends onto which type is the common one
18:00:32Araqthe common gets no pre-/suffix
18:00:45Araqthe other gets an Obj or Ptr or Ref suffix
18:00:55Araq*if* required
18:02:43EXetoCI forgot the details. haven't written much code as of lately
18:03:03jbei see
18:03:16EXetoCso follow these instructions if you want. otherwise I'll do it myself today
18:03:23*brson quit (Ping timeout: 240 seconds)
18:05:30jbeok, i'm leaving it to you then ;p
18:05:32EXetoCI'll write a readme either way. it's about time I do
18:09:10*brson joined #nimrod
18:10:43jbenice work on the wrapper by the way, it's working great
18:16:32*noam__ is now known as noam
18:16:44EXetoCgood to know
18:17:19*jbe quit (Quit: Leaving)
18:17:28*silven_ joined #nimrod
18:18:46WernesgrunnerrAraq: 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:50AraqWernesgrunnerr: 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:51WernesgrunnerrAraq: Thanks a lot! :D
18:24:10*Jesin quit (Quit: Leaving)
18:26:12AraqWernesgrunnerr: you can also try c2nim on the c++ code to generate a Nim interface
18:26:31Araqbut be prepared to massage the C++ until c2nim likes it
18:26:46*Jesin joined #nimrod
18:28:01WernesgrunnerrArab: 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:59AraqWernesgrunnerr: 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:31Mat3hello
20:21:07Araqhi Mat3
20:21:42Araqping Varriount__
20:22:23Mat3hi Araq
20:22:42Araqping kokozedman
20:23:42*Johz quit (Quit: Leaving)
20:24:08AraqJehan_: sorry I've forgot to tell ya
20:24:25*xcombelle quit (Ping timeout: 260 seconds)
20:24:27Araq'if isDefined("posix")' is too risky, IMO
20:24:43Araqwe should whitelist the OSes where it's known to work
20:24:54Jehan_Araq: Hmm, good point.
20:25:37Jehan_Especially since you can also run -d:posix, I think.
20:25:49*TieSoul joined #nimrod
20:25:52Jehan_And I have to double-check what cygwin does.
20:26:06WernesgrunnerrAraq: Alright, thanks a lot! I really didn't knew what I was looking for :D
20:26:40Jehan_I don't think the compiler considers cygwin to be a platform of its own at the moment?
20:26:54Araqcygwin is no platform :P
20:27:17Jehan_cygwin does a whole lot of stuff different than Windows.
20:27:26Jehan_In really, really scary ways at times.
20:27:38Jehan_Don't get me started on fork() under Cygwin, for example.
20:28:14Jehan_(Not that the Cygwin efforts aren't heroic, but they're working around some pretty nasty limitations.)
20:29:05Araqcygwin is rather pointless, all the gnu tools have been ported to windows properly
20:29:07*Trustable joined #nimrod
20:32:31AraqWernesgrunnerr: we have some plans to improve C++ compatibility
20:32:33Jehan_Araq: Except that lots of people still use Cygwin as a porting environment.
20:33:56AraqJehan_: yes, but Nim itself has been ported to Windows, so I don't see the point
20:35:00Araqcygwin can't run ELF binaries, so it's not a real emulator
20:35:09Jehan_Araq: Because, for example, I'm using Nim to write tools for one such project.
20:35:22Araqtake Wine as another example
20:35:41Araqwe do not need to support that because --os:windows plus cross compiling fills the bill
20:35:57Araqbut for cygwin? --os:linux?
20:36:08Mat3yes
20:36:33AraqJehan_: ok ok, that makes all the difference then :-)
20:36:46Araqwhat do you need? --os:cygwin ?
20:37:17Jehan_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:39Jehan_popen() is the one exception, but I have my own module for that anyway that wraps the C calls.
20:38:08Jehan_I was just trying to point out that Cygwin is not going entirely unused.
20:38:24Araqwell yes. I use it at work too
20:38:54Araqbecause I can't be bothered to port ~7000 lines of configure crap
20:39:05Jehan_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:27Jehan_Yeah, pretty much.
20:40:36Jehan_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:37Jehan_I've toyed repeatedly with writing at least a basic alternative implementation in Lua.
20:42:09Jehan_Never got off the ground because in the end I could avoid it, but it's something that somebody really should do.
20:43:02Jehan_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:25Mat3ciao
20:43:27Jehan_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:48Jehan_But yeah, I'll definitely go with a whitelist of OSs.
20:43:59*flaviu1 joined #nimrod
20:45:26Jehan_On a totally different note: Have you considered singleton types as an alternative for static[int] and such?
20:47:21Araqnot really but it's clear that static[T] is flawed
20:47:51Araqhowever it works good enough for what I'm implementing right now
20:47:58Jehan_The idea is that a singleton type would not require a fundamentally different treatment.
20:48:13Araqwhich is Lock[LockLevel: static[int]]
20:49:57Jehan_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:58Araqwell I wanted to replace types by ASTs throughout the compiler
20:51:14Araqbut it's lots of work and I'm not sure it works :-)
20:51:48Jehan_Heh. :)
20:54:42Araqthe planned types API however is based on this idea:
20:54:58Araqdon'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:11Joe_knockAraq: Should we be building the big-break, or wait until 0.96 is finalized?
21:27:02*jagillion quit (Quit: jagillion)
21:28:27AraqJoe_knock: not even babel works with bigbreak :-/
21:29:04Joe_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:38Araqhrm 'else after loop' is more controversial than multi-line comments
22:04:29reactormonkAraq, we should implement a monad-like definition syntax for everything, then you have your zero ;-)
22:05:03Araqhrm? 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:00VarriountMeep
22:36:44VarriountAraq: You called?
22:37:04Araqyeah
22:37:16Jehan_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:32Jehan_Multiline comments are something that one can ignore even if not needed.
22:37:39Jehan_And are more likely to have benefits.
22:37:43Araqcan have a look at bug #1544, Varriount ?
22:38:30AraqJehan_: actually I find
22:38:36Araqwhile foo: bar
22:38:40Araqelse: baz
22:38:47Araqvery intuitive
22:39:07Araqpython's version of it is not at all
22:39:23Jehan_Araq: Hmm. Is it being used often enough to merit a special syntax?
22:39:24Araqbut that wasn't requested
22:39:57AraqJehan_: I don't think so
22:40:08Araqbut I don't think of it as *special* syntax
22:40:17VarriountI agree with Jehan_ on the for/while...else
22:40:20Araqit's a natural extension
22:40:57Jehan_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:18Jehan_Just for starters, you and Guido van Rossum obviously see it differently. :)
22:41:46Araqyeah but Guido is Dutch ;-)
22:41:54Araqso ... doesn't count :P
22:42:18Jehan_The HN thread I linked had people using various different interpretations, too.
22:42:59Araqwell I'd argue while/else only has 1 valid interpretation, but for/else is not so clear
22:43:11Jehan_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:29Araqand in fact
22:43:40Araqwhile/else is *quite* useful for parsers and lexers
22:43:44Jehan_I know that you can use multiple do's, but that's not as intuitive.
22:44:28Araqwhile buf[i] in Letters: ...
22:44:42Jehan_Araq: Hmm, I see where you're coming from, but I personally still wouldn't use it for parsers/lexers.
22:44:43Araqelse: error("identifier expected")
22:45:28Jehan_It feels Perlish to me (write-only code). Stuff that feels natural during writing, but is more difficult to decipher.
22:45:39Jehan_Of course, that's just my subjective impression.
22:45:58Jehan_It's frustrating that it's so hard to do controlled studies with respect to language design.
22:47:13Jehan_There's the PPIG stuff, and a few isolated studies here and there.
22:47:52Jehan_E.g. the stuff that Stefan Hanenberg does: https://www.dawis.wiwi.uni-due.de/team/stefan-hanenberg/
22:47:57Araqyes but for me personally there is another problem with objective studies:
22:48:22Araqwhat if the study disagrees with how I want the language to work? ;-)
22:48:58Jehan_Araq: That's a different story. I'm talking about assumptions that you make during design.
22:49:37AraqJehan_: iirc SQL has been based on studies
22:49:54Araqand while the syntax is passable, they missed
22:50:09Jehan_Personally, I like my design to be supported by more than educated guesses. My problem is more that this is often impossible.
22:50:30Araq*composability* in all its various ways
22:50:47Jehan_Araq: Not sure what studies they did for SQL.
22:50:54Jehan_And, of course, studies can be wrong.
22:51:10VarriountAraq: I can't replicate issue #1544
22:51:13Araqyeah but I think they picked the wrong target audience
22:51:16Jehan_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:35VarriountAraq: And I'm booting from the ground up - csources and all
22:51:37AraqVarriount: what if 'git' is not in your path?
22:52:22VarriountAraq: I'll check.
22:53:21Jehan_Hmm, why do you need Git to bootstrap on Windows? (Just curious.)
22:53:47VarriountYou shouldn't. That's what I'm testing
22:55:17AraqJehan_: the compiler invokes git to embed the HEAD hash into the exe
22:55:24AraqI was against this
22:55:31Jehan_Oh, I see.
22:55:43VarriountAraq: Go poke Gradha then.
22:56:18Araqwell both gradha and dom96 wanted this feature
22:56:19VarriountAraq: Yep. It fails when git isn't in the path.
22:56:38AraqVarriount: ok, thanks
22:56:55Jehan_Interesting, is this Windows only? Because I use a bridge and don't even have a .git directory.
22:59:44VarriountOk, I could have sworn gradha said he tested his git hash thing without git installed.
23:00:07Araqit might be Windows only
23:00:31Araqin which case somebody needs to check what osproc does on other OSes
23:00:35VarriountHowever the presence of 'const gitHash = gorge("git log -n 1 --format=%H")' in a procedure, with no error checking, baffles me.
23:00:37Araqwhen the binary cannot be found
23:01:14AraqVarriount: well compile-time 'try' is broken
23:01:24Araqso .. there is little we can do
23:01:35Araqexcept ensure 'gorge' returns "" on error
23:01:54VarriountAraq: It's not in a try.
23:02:11AraqVarriount: nor can it be, thanks to VM bugs
23:02:39Jehan_Ah, on OS X the gorge just gets an error message back from the shell, it doesn't fail with an exception.
23:03:54Jehan_Should startProcess() on Windows likewise return an error code rather than throwing an exception?
23:05:31Araqhrm I dunno
23:05:42Jehan_One solution in general might be to have gorge() return nil if it encounters an error of some kind.
23:06:06Araqyeah I'm not a fan of nil strings
23:06:07Jehan_Hmm, that may also not be the right thing.
23:06:25Jehan_I was thinking more that you can then check with "when" if the command succeeded.
23:07:46Araqwell in fact
23:07:54Araq'gorge' should fail at compile-time
23:08:15Araqand we should support findExe in the VM
23:08:35Araqso you can do: const foo = when findExe("git"): ... else: ""
23:09:13Jehan_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:07AraqJehan_: yes, compile-time 'try' ftw
23:11:26Araqbut 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)