<< 14-02-2014 >>

00:00:03skrylarthat would make the current gtk bindings more useful
00:00:52Trixar_zaI know the feeling
00:01:10skrylarwe could totally use tcl/tk or fltk \o/
00:01:14*skrylar ducks
00:01:14Trixar_zaQt on the other hand is a dream
00:01:18*skyfex joined #nimrod
00:01:20*io2 quit ()
00:01:36Trixar_zaWell, unless you want to use QtWebKit
00:01:47Trixar_zaThen it's an ugly ho
00:02:10skrylari've never liked TCL; when i touched it, it didn't understand the concept of "strings which do not break out in to tcl code" for me
00:02:23skrylarand TK is kinda ugly, though there are apparently ways you can force it to look better
00:02:49*Demos quit (Quit: Leaving)
00:03:43Trixar_zatcl is nice if you have to use it with eggdrops
00:03:47Trixar_zabut otherwise I avoid it
00:03:50Varriountskrylar: GTK is eeeeevil
00:04:04VarriountOr at least, its' build process is.
00:04:34skrylaranything that uses gobject is
00:04:38skrylarbecause gobject requires itself to build
00:04:56Varriountskrylar: Well, that's not uncommon - look at nimrod.
00:04:58skrylarTrixar_za: i touched tcl by playing with eggdrop, and thats where i ran in to issues escaping lists
00:05:08skrylarVarriount: it requires itself in a horrible way though
00:05:11vbttAraq: ok if everything is already proceeding as smoothly as possible then i have nothing to say.
00:05:19Varriountskrylar: Oh? Howso
00:05:26vbttbut you implied that adding new features is breaking stuff.
00:05:41skrylar"oh you need THIS pkg-config and THIS version of a GNU runtime which all require each other to build"
00:05:51*skyfex quit (Ping timeout: 260 seconds)
00:05:52Araqvbtt: lots of mistakes have been made
00:06:09Araqbut recovering from them takes a while
00:06:29VarriountWe live and learn
00:06:37EXetoCit'll be sweet when we get back on track
00:07:15Varriounthttp://grooveshark.com/s/Live+And+Learn/36mDQh?src=5
00:07:27Araqand the hard facts remain: we don't have the resources to fix bugs and implement features at the same time
00:07:53Varriount"Features" being mainly compiler/language features
00:09:46vbttwhich features need to be implemented to 1.0?
00:10:08Araqmy concurrency stuff
00:10:16vbtt..and do you think it's doable given the current resources?
00:11:52Araqactually, yes I think so
00:11:57vbttok
00:12:22AraqI picked the easy stuff that already works with our current technology
00:12:46vbttit's nice to see the positivism from everyone and anyway i'm getting tired of ranting.
00:13:42Araqvbtt: what OS are you on?
00:14:37vbttmixed, freebsd, linux, mac os. have access to windows too but not comfortable with development on it.
00:15:01Araqwell "koch web" fails for me because I have spaces in my current directory
00:15:11AraqI think that's not your problem then?
00:15:40vbttit was on mac os - i dont remember spaces but i'll check later.
00:17:47skrylarwoot. i finally got this linebreak working
00:17:57fowlyou said that hours ago skrylar
00:18:03skrylari said it was almost working :P
00:18:05vbttanyway, i g2g. later guys.
00:18:13fowloh
00:18:15EXetoCwhen might isNil be the more efficient way to check for nil?
00:18:18fowlcya vbtt
00:18:20vbttand that's software development right there :)
00:18:37vbttthe last 10% takes 50% of the time.
00:18:40vbtton that note..
00:18:45*vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
00:18:54skrylarheh. yeah, annoying bug on my side with ranges
00:19:25skrylarbut now i have an iterator that gives you byte coordinates for doing word wrapping, which means you can render wrapped strings without excess copying
00:20:01Varriountdom96: Any particular reason the stat() idea on the GSoC Ideas page was removed?
00:21:04AraqVarriount: the description was too lean
00:21:29VarriountAh, ok.
00:21:59VarriountAraq: Now that I have installer generation done, what next?
00:23:38Araqwhat did you do with the trimcc issue?
00:24:10VarriountI ignored it. I just redownloaded mingw32 and ming64, and unchecked as many extras as possible
00:24:37Araqmeh, fine I guess
00:26:01VarriountOddly enough, mingw32 is larger than mingw64
00:35:53skrylari think ming64 has less libs
00:48:26VarriountAraq: So, what should I do now?
00:50:15AraqVarriount: do a PR for your niminst changes?
00:50:42Araqalso please go through the list of failing test and try to decide if it's a showstopper for 0.9.4
00:50:43VarriountAraq: Not sure if I should. The change was because I was using the unicode version of inno
00:51:35AraqVarriount: you can check for that via {$ifdef unicode} ... {$else} .. {$endif}, perhaps
00:51:49VarriountYou want me to go through the list of failing tests, and determine if any are critical enough to set back the release of 0.9.4?
00:52:00VarriountFor what branch, master or devel?
00:52:04Araqdevel
00:53:01Araqwhen in doubt, add it to some list and give that to me afterwards
00:53:57EXetoCAre you gonna take a day off when we hit 1.0?
00:54:39Araqno, a month
00:54:55EXetoC:p
00:56:43VarriountHrm. We need filwit to make a proper sidebar image for the installer
00:57:00VarriountMaybe I can use the site's sidebar asset
01:04:06*carum joined #nimrod
01:06:31*carum quit (Read error: Connection reset by peer)
01:06:54*carum joined #nimrod
01:10:33VarriountAraq: How do I escape the meta character of a source code filter ('#' by default)
01:11:00AraqI don't think you can
01:12:22NimBotAraq/Nimrod devel 78eeb19 Araq [+0 ±1 -0]: nil->discard
01:12:22NimBotAraq/Nimrod devel 269d8a0 Araq [+0 ±4 -0]: fixes #892
01:12:22NimBotAraq/Nimrod devel 77dde00 Araq [+0 ±2 -0]: fixes #833
01:29:27NimBotAraq/Nimrod devel 02abb0b Araq [+1 ±1 -0]: fixes #712
01:40:58*askatasuna joined #nimrod
01:43:24*DAddYE quit (Remote host closed the connection)
01:52:13*askatasuna quit (Ping timeout: 272 seconds)
01:55:15*carum quit (Remote host closed the connection)
01:57:04EXetoCVarriount: create a default argument with the value '#', and then you can use that
01:58:58EXetoCor simply use another meta char, but that might've been broken
01:59:44EXetoCvar m='#' ... $m
02:02:02*skyfex joined #nimrod
02:06:16*skyfex quit (Ping timeout: 246 seconds)
02:10:17EXetoChow's this BSON constructor syntax? %%{"x": %1, "y": %{"a": %2}). I'd define a converter, but a compiler bug prevents me
02:12:26dom96Varriount: I couldn't figure out how to expand the description so I just removed it, sorry.
02:12:36dom96Varriount: You can always suggest it in your proposal though ;)
02:18:31*vbtt joined #nimrod
02:19:26vbttAraq: nimweb gives me: doc/niminst.txt(31, 1) Error: cannot open 'doc/mytest.cfg'
02:19:52vbttrunning it as:$./tools/nimweb --output:/tmp web/nimrod.ini
02:20:06vbttthe file doc/mytest.cfg exists and is readable.
02:21:03vbttit's probably using an incorrect base dir but not sure how to specify that.
02:21:20dom96try removing the 'doc/'
02:28:54vbttdom96: but it should work as is
02:29:21dom96true
02:29:55vbttwith dtruss i found it is looking for 'Nimrod/doc/niminst.txt' but then printing an error saying cannot open 'doc/mytest.cfg'
02:31:04vbttnot going to dig into this bug further, looks like a RST library issue
02:31:37vbttk, later.
02:31:42*vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
02:46:07*brson quit (Quit: leaving)
02:46:35*brson joined #nimrod
03:26:34*brson quit (Quit: leaving)
03:27:00*brson joined #nimrod
03:47:15*xenagi quit (Quit: Leaving)
03:49:44*darkf quit (Ping timeout: 265 seconds)
03:51:46*darkf joined #nimrod
03:58:52*ddl_smurf quit (Quit: ddl_smurf)
04:02:49*skyfex joined #nimrod
04:07:02*skyfex quit (Ping timeout: 246 seconds)
04:10:11*Demos joined #nimrod
04:10:48Demosis there a way to get c2nim to print out the line it failed on with #defs expanded?
04:15:49Discolodanot at the moment
04:19:28*askatasuna joined #nimrod
04:28:26Demosc2nim seems to fail on c style type func(void) style function
04:53:02VarriountDemos: c2nim is finicky
04:53:47VarriountDemos: I'm having fun looking through the process memory of a flash VM wrapped by chrome, running an old online game I like.
04:54:14VarriountI'm finding interesting strings. :D
04:56:17*askatasuna quit (Ping timeout: 260 seconds)
04:56:30Demosoh dear
04:57:13DemosI know c2nim is wierd, I am writing a wrapper for libpng.... I am now going through the libpng(3) manpage and just writing function prototypes myself
04:59:22VarriountDemos: I'm doing it for fun.
04:59:41VarriountI want to see if there are any certain parts that were left out of the game
04:59:59VarriountBtw, the game is called "Spybot: The Nightfall Incident"
05:00:57Demoswell I wrote a raytracer in nimrod for fun, then realized I had no way to write out the images
05:01:32skrylarwelp, time to write a TGA exporter :)
05:02:07skrylarthose are actually really trivial to do, depending on your buffers
05:02:13skrylarits literally a tiny C struct and then dump the buffer
05:02:42skrylaralso fail of the day: Blender's cmake says not to do an in-source build. Not doing an in-source build breaks installer. Good job.
05:03:22Varriount-_-
05:03:24Demosskrylar: yeah I really should just use tga, I have some c++ code that I could just copy but w/e
05:03:37Demoshaving a binding to libpng is a good thing anyway
05:04:03*askatasuna joined #nimrod
05:07:42VarriountAnyone have an idea of what kinds of languages, either programming, configuration, etc, that use an identifier prefixed with a '#' to dentore a key, variable, entry, etc
05:11:01Demoshmmmmmm what kind of format is it?
05:13:08VarriountDemos: Like this -> http://grooveshark.com/s/Live+And+Learn/36mDQh?src=5
05:13:14VarriountWoops, wrong link
05:13:35VarriountDemos: https://gist.github.com/Varriount/8996155
05:14:11VarriountThat's the games save file, however there are parts of strings in the process memory which look very similar
05:31:21*Demos quit (Ping timeout: 272 seconds)
05:35:48*carum joined #nimrod
05:45:22carkVarriount : dart symbols
05:52:59Varriountcark: You mean, like the javascript based language?
05:53:41carkyes, your paste looks like literal data structures from dart
05:54:14carkthough the maps would be with curly braces
05:54:48Varriountcark: Odd, but I doubt that it's actual Dart structures, since the game I'm examining was coded in actionscript
05:54:58VarriountAbout... 8 years ago
05:55:59VarriountStill, since actionscript, javascript, and dart are all related, it's not unexpected.
05:56:26carkthere must be some history behind the # symbols in dart
05:57:12VarriountOn another note, one of the units in the game, which is called a "Mobile Tower" is referenced internally as a SCUD
06:03:50*skyfex joined #nimrod
06:04:19*DAddYE joined #nimrod
06:08:43*skyfex quit (Ping timeout: 272 seconds)
06:15:01*askatasuna quit (Ping timeout: 248 seconds)
06:16:45*xtagon quit (Ping timeout: 252 seconds)
06:22:07*brson quit (Quit: leaving)
06:22:24*brson joined #nimrod
06:24:00*Demos joined #nimrod
06:27:50*askatasuna joined #nimrod
06:38:30*DAddYE quit ()
06:44:07*Mat3 joined #nimrod
06:44:46Mat3hi all
06:46:00*askatasuna quit (Ping timeout: 252 seconds)
06:54:24*askatasuna joined #nimrod
06:59:27fowlVarriount, smalltalk symbols
06:59:41*skyfex joined #nimrod
07:00:46Demoswhat is the most up-to-date vim plugin for nimrod? is it zah's?
07:03:43*carum quit (Remote host closed the connection)
07:08:55Mat3ok, I try to compile Nimrod from Git. That fails building koch with the error-message: "lib/system.nim(2732, 21) Error: type expected"
07:09:16Mat3is that a knbown issue or should I try it to fix ?
07:11:38DemosI can not reproduce that error
07:13:35Mat3the Git uploaded the wrong branch
07:15:01Mat3^then
07:15:16Mat3the problematic line is:
07:15:34Mat3type semistatic*[T] = static[T] | T
07:18:02*agd joined #nimrod
07:18:13*agd quit (Read error: Connection reset by peer)
07:18:56Mat3I expect this can't compile because of no known type declaration. My guess is, this declaration uses some feature unknown to the Nimrod version build from csources
07:20:11Mat3probably I should compile the last 'stable' version first (the one linked from www.nimrod-code.org)
07:20:50Mat3?
07:21:47Mat3... well, let's see
07:27:12DemosI am compileing it with the version from csources and it is working OK
07:28:36Mat3hmm, how have you build it ?
07:29:21Demosbuild.sh in csources then bin/nimrod koch
07:29:28Demossorry bin/nimrod c kochj
07:29:32Demossorry bin/nimrod c koch
07:33:47*askatasuna quit (Ping timeout: 253 seconds)
07:41:01*askatasuna joined #nimrod
07:43:05*Demos quit (Ping timeout: 272 seconds)
07:46:19skrylarwould anyone else find a module useful that calculated list bullets? (e.g. roman numeralizing, for outlines and such)
07:50:26Mat3AsciiDoc
07:50:55Mat3Demos: Same error as previous
07:56:47*awestroke joined #nimrod
08:07:24*skrylar quit (Quit: woop)
08:08:34*awestroke quit (Remote host closed the connection)
08:26:39*brson quit (Ping timeout: 252 seconds)
08:36:01*nande left #nimrod (#nimrod)
08:50:01*reloc0 joined #nimrod
09:25:26*q66 quit (Quit: Leaving)
09:26:35*shodan45 quit (Quit: Konversation terminated!)
09:38:51*q66 joined #nimrod
09:38:51*q66 quit (Changing host)
09:38:51*q66 joined #nimrod
10:26:53*Matthias247 joined #nimrod
10:33:41*ics quit (Ping timeout: 252 seconds)
10:35:40*ics joined #nimrod
10:35:46*surma joined #nimrod
10:38:06*iNode000 quit (Ping timeout: 252 seconds)
10:41:16*Mat3 quit (Quit: Verlassend)
10:59:14*dyu_ joined #nimrod
11:35:27*noam quit (Ping timeout: 265 seconds)
11:39:23zielmicha-cloud_What is .compilerproc. pragma supposed to do?
11:46:37Araqhi zielmicha-cloud_
11:46:49zielmicha-cloud_hi
11:47:08Araq.compilerproc is a misnomer, it registers a routine to the code generator
11:47:38zielmicha-cloud_so compilerprocs are called at compile time?
11:47:51Araqno, they are called by the code generator
11:48:22*aftersha_ joined #nimrod
11:49:13Araq'new(foo)' for instance is translated to foo = newObj(sizeof(*foo)) and 'newObj' is a complierproc
11:56:23Araqwhat about your vfork fix btw? I really want that for 0.9.4
11:57:04zielmicha-cloud_I have it on my todo list. When do you plan 0.9.4?
12:01:27Araqwell I'm going through the list of bugs that I consider essential to fix for 0.9.4
12:01:51Araqthere is still quite of few of these
12:02:24Araqhopefully by the end of february it's ready
12:19:26rixxI'm going to have holidays during the next two weeks and I'll start to look into nimrod -- it sounds pretty much like the programming language I was looking for. I guess I'll just go through the tutorials and do some small projects
12:20:00*io2 joined #nimrod
12:20:02rixxI just wanted to ask if there was anything on the project I could help with (even if it's just comments/formatting/tagging issues/looking into documentation)
12:20:50Araqrixx: hell yes, go through the examples you see, put them to some tests/ files so we can ensure at least our examples work ...
12:21:02AraqI need to go, bbl
12:21:15rixxAraq: the examples in the tutorials?
12:21:20Araqyes
12:21:23rixxI can be the test noob, no problem :)
12:21:30*aftersha_ quit (Quit: Computer has gone to sleep.)
12:21:53rixxif I want to request changes: are the tutorials in one of your repos?
12:33:59*iNode000 joined #nimrod
12:40:35*aftershave_ quit (Quit: Textual IRC Client: www.textualapp.com)
12:41:18*aftershave_ joined #nimrod
12:44:37*askatasuna quit (Ping timeout: 252 seconds)
12:45:51*isenmann quit (Quit: Leaving.)
12:56:09zielmicha-cloud_Araq: why startProcess creates a new process group?
13:06:24*askatasuna joined #nimrod
13:22:16*darkf quit (Quit: Leaving)
13:26:18*zahary joined #nimrod
13:32:55*io2 quit ()
13:33:51*surma quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
13:36:32*ddl_smurf joined #nimrod
13:48:10*[1]Endy joined #nimrod
13:48:31*askatasuna quit (Quit: WeeChat 0.4.2)
14:10:23*micklat joined #nimrod
14:15:20*BitPuffin joined #nimrod
14:17:58*carum joined #nimrod
15:00:45*[2]Endy joined #nimrod
15:04:39*[1]Endy quit (Ping timeout: 260 seconds)
15:15:57EXetoCis there a generic way to get the underlying type of an enumerator?
15:21:42*carum quit (Remote host closed the connection)
15:22:52*surma joined #nimrod
15:24:42*Demos joined #nimrod
15:25:47*carum joined #nimrod
15:41:11*Boscop joined #nimrod
15:41:11*Boscop quit (Changing host)
15:41:11*Boscop joined #nimrod
15:46:03*carum quit (Remote host closed the connection)
15:49:07*dyu_ quit (Quit: Leaving)
15:58:21*surma quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
16:02:47*Demos quit (Ping timeout: 272 seconds)
16:36:53Araqzielmicha-cloud_: I don't even know what you're talking about
16:49:07zielmicha-cloud_Araq: git blamed you, but I understand that you don't remember
16:50:29dom96hello rixx; the tutorials are in the main repo.
16:51:04rixxdom96: thanks, I'll have a look at it next week
16:51:47Araqha, famous last words, rixx ;-)
16:57:39rixxnope, got holidays, and that's exactly what I need :P
17:05:27*zahary quit (Quit: Leaving.)
17:13:26*aftersha_ joined #nimrod
17:14:42*Roin_ quit (Ping timeout: 252 seconds)
17:17:36dom96fowl: Could you please move sdl2 out of your nimlibs repo into a separate repo and put it on babel?
17:25:52*aftersha_ quit (Quit: Computer has gone to sleep.)
17:41:58*Roin_ joined #nimrod
17:48:32*awestroke joined #nimrod
17:49:51*aftersha_ joined #nimrod
17:51:32*aftersha_ quit (Client Quit)
17:52:10*io2 joined #nimrod
17:53:58*io2 quit (Client Quit)
18:07:58*evil_CarpNet quit (Quit: Leaving)
18:08:52*nande joined #nimrod
18:13:03Matthias247Hi there. I just read Nimrods Tutorial and decided to play around a little bit with it. I found it quite interesting that the typeof operator also works for value types I did some tests with it. Thereby I think I have found a little issue
18:14:18Matthias247https://gist.github.com/Matthias247/9006035
18:15:43Matthias247when the object is implicetly or explicetly downcast the type identifier is never adjusted. And so other functions think it's still a derived type even though it might be only a copy of the base type
18:20:41*brihat quit (Quit: Leaving.)
18:21:03*DAddYE joined #nimrod
18:22:13*brihat joined #nimrod
18:25:05Araqhi Matthias247, nice bug
18:25:17*aftersha_ joined #nimrod
18:26:16*awestroke quit (Ping timeout: 252 seconds)
18:26:36*Demos joined #nimrod
18:26:46Demosdoes the library define an equivalent to time_t?
18:27:44Matthias247Araq: I guess most type won't cast value types :)
18:27:57Matthias247ehm, most people won't
18:28:40*vbtt joined #nimrod
18:29:57Matthias247but if you pass a pointer to such a structure to a function that will really perform upcasts depending on the type it might be really problematic
18:30:40DemosMatthias247: are you talking about sliceing?
18:31:04EXetoCDemos: times.TTime, but the target type is just an implementation detail
18:31:17Matthias247yes, it is slicing
18:31:24DemosEXetoC: right, but is it the same type as the C compiler's time_t
18:31:42Demosand Matthias247, sliceing is pretty much the only reasonable behavior when you downcast to a value
18:31:56Demosit is sometimes what you want and when it is not there is no way to get what you want with a value type
18:31:57EXetoCDemos: pretty much: TTimeImpl {.importc: "time_t", header: "<sys/time.h>".} = int
18:32:07Matthias247Demos: absolutely. But the type field would need to be adjusted
18:32:20EXetoCon posix
18:32:28Matthias247The sliced type still thinks it's the orginal type
18:32:36DemosMatthias247: well the type field is probably the first field
18:32:47*aftersha_ quit (Quit: Computer has gone to sleep.)
18:33:14Demosoh, you mean for dynamic dispatch, well I don't really know how multiple disptach works
18:33:29Araqin fact the compiler should prevent slicing
18:33:54Matthias247I think the correct fix would be to make a copy and adjust the type field for explicit slice operations
18:34:11DemosAraq: not sure how I feel about that. I think there are some situation where it is what you want. Certantly preventing it unless you ask is good
18:34:12Matthias247and prevent implicit slice operations like the one I do in the example
18:34:53DemosI /think/ that c++ changes the vtable pointer when you slice, not sure though
18:39:02DemosOK C++ lets you assign a derived type to a base reference (so far so good, no slice) then you can assign another derived type to it using the assignment operator. The BASE assignement operator is selected after overload resolution and you get bits of Base and bits of Derived. This will have to be thought about when nimrod does `=` overloading
18:39:53Demosc++'s behavior is unexpected but quite sane from the perspective of the C memory model and the implementation of C++'s object model in it
18:42:03Matthias247in think reassinging the type field after copying the base data should be a sufficient fix?
18:42:46Matthias247and the requirement to copy it at all. Currently in some cases only the pointer is copied in the generated C code and not the value
18:43:12Demosafaik c++'s copy constructors bot default and user supplied do adjust the vptr, so it is a sufficient fix, but not ideal. I think this is one of those problems where there is no good solution
18:43:18Demos*both
18:43:38Matthias247what do you think is missing?
18:44:48Demosnothing. I am saying that it is a hard problem with no real solution. You can just prohibit the regular OO casts for value types (I think D may do that)
18:45:16vbttyeah disallow downcasts
18:45:27DemosOK so in c++ what seems to happen is that an assignment calls some copy assignment operator and since that is on a "this" of the base type you get the vptr fixup there
18:45:57Demosvbtt: right, but there are some situations where you may want them. I guess you could just use a "real" cast
18:46:12vbttwhy is downcasting useful? isn't using generics better in those cases?
18:46:28vbttgive me a concrete example.
18:48:12Matthias247It is what many C libraries use. Some common base information and a bit extra on the top for the derived types. But of course you would most likely use that in combination with reference types and value types
18:48:44Demosif I have a struct like struct foo { int someinfo; double somemoreinfo;}; and struct fooD: public foo { some real sweet content; }; I may want some functions taking a foo by value. Pardon the C.
18:49:01Demosthen again nimrod does not have non-polymorphic inheratnace
18:49:40Demosand you may be able to roll it yourself with conversion stuff
18:52:00vbttI didn't get your example
18:52:12Demosit was what Matthias247 said
18:53:01Demosthe other complication with nimrod is that by default you don't know if the type a function gets is a reference or value
18:54:17DemosfooD's have some header information, if I only need that header information I am happy to accept the slice
18:57:02EXetoCDemos: when don't you know what type something is?
18:58:11Demosproc getAFoo(foo: TFoo)
18:58:38DemosTFoo could be passed as a value on the stack or as a pointer to a TFoo where the pointer resides on the stack
18:58:50Demoshence when the "values" are const
18:58:52DemosI gotta go
18:59:08*icebattle quit (Quit: leaving)
18:59:20EXetoCthe proc shouldn't have to care about that
18:59:40EXetoCit's your choice if you want to dereference in order to pass in a value pointed to by a pointer
18:59:59Matthias247the compiler does now. And therefore should be able to do either an explicit conversion or prevent it
19:00:54EXetoCsure, you can extend the language in order to deal with that, but then you should use additional qualifiers
19:01:14EXetoCthat was for Demos btw
19:01:57Matthias247i know :)
19:03:22EXetoCI'm referring to the intended behavior and not whatever happens due to some bug
19:03:35*Demos quit (Ping timeout: 260 seconds)
19:05:31Matthias247yes. I don't know what the intented behavior is. But I think it should be either preventing slicing of value types or doing it on explicit casts and then also change the type field
19:06:51EXetoCit's only a problem with value objects, and I don't think that's too common, so requiring an explicit slice seems reasonable
19:16:04EXetoCAraq: you said you disliked the fact that you cannot know about all the derived classes, right?
19:18:17EXetoCor something similar at least, but it seems like a relatively simple extension
19:18:40*Varriount|Mobile joined #nimrod
19:18:47EXetoCjust have final either apply globally or every module except the current one
19:21:54*brson joined #nimrod
19:22:42vbttis inheritance used much in the stdlib outside of exceptions?
19:22:49*brson quit (Client Quit)
19:22:56Varriount|MobileNot really
19:23:27*brson joined #nimrod
19:24:17micklatis there any difference between int and cint?
19:24:53micklatthe low-level python API uses int rather than cint for some reason
19:25:45EXetoCint in nimrod has the same size of a pointer, and int in C is 32 bits on most platforms I think
19:26:39EXetoCso you should use cint when interfacing with C's int
19:26:50micklatthanks
19:27:06EXetoCwhat python API?
19:29:45*awestroke joined #nimrod
19:31:02EXetoCvbtt: only that and streams comes to mind
19:32:19micklatthe low level one. The one you get with babel install python
19:32:30vbtti just think inheritance is a misfeature
19:33:28vbttmicklat:python's ints are machine word sized so that seems correct.
19:33:38*io2 joined #nimrod
19:33:48EXetoCwhat else? sometimes you need it in one form and another
19:33:54EXetoC*or
19:35:02vbttobject variants or generics or type classes will cover a lot of cases.
19:35:27vbttsomething simpler than inheritance could be invented to handle the rest.
19:36:37EXetoCvbtt: at least the official API documentation has 'int' in it, and that's C's int
19:36:55vbttoh? hmm.
19:38:26*Varriount|Mobile misses gradha
19:39:28vbtthttp://docs.python.org/2/c-api/int.html
19:39:28EXetoCvbtt: and in such a way that it can't be called inheritance then I suppose
19:40:28EXetoCyes that's where I looked
19:40:40vbttPyObject* PyInt_FromLong(long ival)
19:41:12vbttit only uses int for the 'base' parameter, unless i missed something.
19:41:51EXetoCI'm referring to int as used by the API functions, such as the return type for PyCallable_Check
19:41:58micklatvbtt: I'm referring to calls such as int PyObject_GetBuffer(PyObject *exporter, Py_buffer *view, int flags)
19:42:14micklatI figure those should be cint, according to what Araq said
19:42:38vbttmicklat:oh i see. i believe you are right.
19:43:14micklatquestion: did you guys consider making a more-automatic C header conversion tool?
19:43:20micklatwith all due respect to c2nim...
19:43:25micklatwhich is very useful BTW, honest
19:45:25vbttwhat's lacking in c2nim?
19:47:18reactormonkvbtt, bunch of stuff
19:47:24micklatdoesn't support the whole language, I believe
19:47:35EXetoCclang was considered, but Araq stated that it had problems with macros
19:48:30micklatYou can't just feed it a big nasty header and expect much
19:49:00EXetoCsomeone had some improvements in mind, and I recall seeing a minor patch or two, but that was a couple of weeks ago I think
19:49:19micklatwhat about gcc-xml? did anyone look at it?
19:49:32micklat*into it
19:51:15Araqmicklat: c2nim wasnt used for the python wrapper
19:51:21micklatmaybe a combination of the current technique and an outside parser?
19:52:27micklatnot that I'd do it myself, but I think this would make a great GSoC contribution if someone should take it up
19:53:03Araqtrue
19:53:13Varriount|Mobileyes, but what would be the specific goals?
19:53:19Araqhow could we forget that
19:54:01Araq"a swig backend for nimrod"
19:54:19micklatspecific goal: be able to convert .h files into nimrod modules
19:54:31micklatswig is a bit different. Can't handle the whole c either, I believe
19:55:03micklatswig is also way more ambitious
19:55:05Varriount|Mobileyes, but c2nim can already do that, to a certain extent
19:55:21micklatso, I'm suggesting to increase the extent using clang or gcc-xml
19:55:42micklatc2nim handles some things well, but not all, so complement it
19:56:24micklatre: swig, it tries to create high-level bindings
19:56:43Araqmicklat: what about #def vs #define though? how do you handle this with clang/gcc?
19:56:57micklatwhat's "#def" ?
19:57:31Araqlol
19:57:53micklatdid I make a fool of myself?
19:58:17Varriount|Mobilemicklat: c2nim tries to turn normal defines into templates
19:58:35Varriount|Mobile#def is for when it can't
19:59:26Varriount|Mobile#def replicates the original bahavior of #define
20:00:18*aftersha_ joined #nimrod
20:00:36micklatthanks for the clue. Now I know what #def is, but I still don't understand the question
20:00:45micklatclang/gcc should get fed preprocessed input
20:01:08micklator it does the preprocessing itself, doesn't matter
20:01:23Araqit does matter
20:01:41micklathow
20:02:02*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:02:38Araq#define foo 9 --> const foo = 9
20:03:13Araqpreprocess it properly and this info is gone
20:03:24*aftersha_ quit (Client Quit)
20:03:33micklatso process the header twice - once with the current c2nim for macros, and then with gcc/clang
20:04:26micklatexcept you do it in the reverse order - clang/gcc first
20:04:44Araqor learn to use c2nim :P
20:05:06micklatgood advice I suppose. But am I wrong?
20:10:30Araqsounds like less work to make c2nim more foolproof
20:12:56micklatwould it help if I add it to the GSoC ideas page?
20:13:33micklatanyone would be willing to mentor it?
20:13:43Araqgist it please before changing the wiki page
20:13:56micklatok
20:14:01Araqdunno when google reads the page
20:14:16Araqi will mentor anything
20:15:24*pmullin joined #nimrod
20:15:40Araqhi pmullin welcome
20:16:32Matthias247should I create a github issue about the value slicing thing or will anyone remember and fix it? :)
20:17:42Araqboth
20:18:11vbttdeadline to submit gsoc is today
20:18:14vbtthttps://www.google-melange.com/gsoc/events/google/gsoc2014
20:18:29Araqvbtt: yes, we know
20:18:57vbttok, just wanted to make sure :)
20:19:06micklatI didn't know. I'll hurry
20:19:30*micklat quit (Remote host closed the connection)
20:20:16*micklat joined #nimrod
20:21:42pmullinAraq: Hello
20:31:31*awestroke quit (Ping timeout: 245 seconds)
20:48:22*pmullin quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:50:33*pmullin joined #nimrod
21:01:44micklatGSoC idea: https://gist.github.com/micklat/9009095
21:09:49renesacmicklat, c2nim can also produce templates from #defines
21:10:12micklatok, you think I should mention that?
21:10:30renesac "c2nim would then process the parsed headers and produce constants, types, and proc declarations similar to those that it produces now. "<-- in that part
21:11:52micklatbut that part explains what is done with C constructs, not with #defines
21:12:23micklatAh, I see the ommission
21:12:34Araqmicklat: I like it, let's see what dom96 says
21:13:52micklatit feels great to be heard, even though I'm such a newbie
21:14:04micklatand in particular, uninformed about nim2c...
21:14:07micklatc2nim, see?
21:15:54Araqhmm Jurassic Park 2 is much crappier than Jurassic Park 1 ...
21:16:07Araqbut iirc the 3rd is even worse
21:16:17renesacyeah, I would love an automatic working c2nim, but Araq said me it was a pipe dream
21:16:20renesac:P
21:16:23dom96micklat: very nice. Add it to the wiki please.
21:16:29renesacAraq, I read "much creepier"
21:16:36micklatwill do
21:17:30renesacmicklat, I also made a bug report "for you": https://github.com/Araq/Nimrod/issues/912
21:17:50renesacI'm not sure if the issue you hit was the same as mine, but possibly
21:21:00micklatwiki updated
21:33:35*zahary joined #nimrod
21:36:58*pmullin quit (Quit: Textual IRC Client: www.textualapp.com)
21:38:20dom96micklat: thanks
21:38:35micklatthank you for letting me affect the process
21:39:40dom96http://www.google-melange.com/gsoc/org2/google/gsoc2014/nimrod :D
21:39:58dom96gah, I knew the IRC channel was a link...
21:40:48dom96I can still edit that, good.
21:40:56Araqcool, so we're accepted for gsoc
21:41:13Araq... right?
21:42:04dom96no
21:42:15dom96We won't know until the 24th
21:43:00EXetoCbut I wanna know now!
21:44:04dom96micklat: That's what open source is all about :)
21:45:49Araqdom96: really? I thought open source means to confuse "successful system" with "well designed system" and to copy that blindly :P
21:46:37micklataraq: is this the cue for another case-sensitivity debate? ;-)
21:46:53Araqnah
21:47:27AraqI still hate unix/bsd/linux/macosx with a passion, that's all
21:48:27dom96Araq hates everything he didn't create himself :P
21:49:37Araqbe grateful, it's the reason for nimrod's existance :P
21:50:03Matthias247that's interesting. Most open source programmers seem to hate windows with passion :)
21:51:24Araqwell windows is crap too. are you happy now?
21:51:29dom96lol
21:52:19Matthias247yeah, now i'm fine :)
21:56:44micklatnimrod doesn't have the equivalent of const char *, right?
21:57:02Araqquite right
21:59:21*[2]Endy quit (Ping timeout: 272 seconds)
22:02:33*aftersha_ joined #nimrod
22:02:46*DAddYE quit (Remote host closed the connection)
22:21:10*sale4one joined #nimrod
22:21:17sale4onehi :)
22:21:59vbtthi sale4one, welcome
22:22:17sale4onewell I thought it was time to join the community
22:22:21sale4oneas I have a question :)
22:22:27vbttgood thinking! :D
22:22:43vbttfire away
22:22:59sale4oneAnyone using emacs to write nim code ?
22:23:05micklatyes
22:23:33sale4oneI just booted my new distro, and I cant get nimrod-mode working :/
22:23:42sale4oneit was all good on the last one :(
22:24:31micklatdid you try emacs --debug-init? does it say anything?
22:24:33sale4onewait till I copy the message output
22:25:32sale4oneit on line with (defstruct nimrod-ide ....... )
22:25:36micklatalso, please gist your init.el
22:26:55sale4oneyou mean .emacs ?
22:27:13micklatI suppose
22:27:44sale4onei just put (require 'nimrod-mode)
22:27:57sale4onenew setup, i wanted to try nimrod first
22:28:00micklatwhat is the full output of --debug-init
22:28:33sale4oneDebugger entered--Lisp error: (void-function defstruct)
22:28:33sale4one (defstruct nimrod-ide type namespace name signature path line column comment)
22:28:33sale4one eval-buffer(#<buffer *load*<2>> nil "/home/sasa/.emacs.d/nimrod-mode.el" nil t) ; Reading at buffer position 22826
22:28:33sale4one load-with-code-conversion("/home/sasa/.emacs.d/nimrod-mode.el" "/home/sasa/.emacs.d/nimrod-mode.el" nil t)
22:28:38sale4one require(nimrod-mode)
22:28:41sale4one eval-buffer(#<buffer *load*> nil "/home/sasa/.emacs" nil t) ; Reading at buffer position 831
22:28:44sale4one load-with-code-conversion("/home/sasa/.emacs" "/home/sasa/.emacs" t t)
22:28:47sale4one load("~/.emacs" t t)
22:28:51sale4one #[nil "\205\264
22:28:51sale4one \311=\2033
22:28:54sale4one [init-file-user system-type user-init-file-1 user-init-file otherfile source ms-dos "~" "/_emacs" windows-nt directory-files nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs" "^_emacs\\(\\.elc?\\)?$" "~/_emacs" "/.emacs" t load expand-file-name "init" file-name-as-directory "/.emacs.d" file-name-extension "elc" file-name-sans-extension ".el" file-exists-p file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "default" alt
22:28:57sale4one inhibit-default-init inhibit-startup-screen] 7]()
22:29:00sale4one command-line()
22:29:03sale4one normal-top-level()
22:29:05micklatplease use gist...
22:29:07sale4one:D
22:29:07dom96sale4one: Use gist next time...
22:29:13sale4onei should have uploaded that text somewhere XD
22:29:59sale4onesrry, as I said new setup, dont have it all :(
22:29:59vbttsale4one:https://gist.github.com/
22:30:12sale4onei havent even installed git
22:30:53micklatyou don't need git to use gist. Take a look at https://gist.github.com/
22:31:34sale4oneI am already in process of doing that :D
22:32:51sale4onehttps://gist.github.com/anonymous/9010824
22:32:55sale4one:) there
22:33:22micklatapparently we use different versions of nimrod-mode
22:33:28micklatI'll try your version
22:33:38sale4onei donwloaded one linked on nimrod faq
22:33:55sale4onethen googled another one, all are giving the same error
22:34:24Araqhi sale4one welcome
22:34:33Araqhow did you know about nimrod?
22:34:43vbttsale4one: do you have (require 'cl) in the nimrod el file?
22:34:46AraqI'm wondering where all these new people are coming from ...
22:35:05EXetoCthey found our tube
22:35:16sale4onenah I dont
22:35:34sale4oneAnd my path to nimrod is quite complicated :)
22:36:03vbtttry inserting that at the top of nimrod-mode.el
22:36:15sale4oneok
22:38:21sale4oneno error now, but I dont seem to get syntax highlighting and indentation :/
22:38:37vbttdid you enable nimrod-mode in your buffer?
22:38:47vbttprobaby M-x nimrod-mode
22:38:51micklatwhat's the file extension?
22:39:09sale4one.nim extension
22:39:40vbttdon't you need to setup a hook for auto loading a mode?
22:40:11micklatnimrod-mode.el does that (in the version I use)
22:40:26sale4onenah, it should work by its own
22:40:33micklatwhat about M-x nimrod-mode?
22:40:49sale4oneshows me message in minibuffer
22:41:00sale4onegimmie a sec to get it
22:41:30sale4oneSymbol's function definition is void: prog-mode
22:42:00micklatwhich emacs version?
22:43:08sale4one23.4.1 installed from Debian repositories
22:44:00micklatI can't try your version immediately because I miss other packages.
22:44:20micklatBut you can try the version I use: github.com/eegg/nimrod-mode.git
22:44:35sale4oneI just wanted to ask for that :)
22:45:22*carum joined #nimrod
22:46:48*aftersha_ quit (Quit: Computer has gone to sleep.)
22:47:57NimBotAraq/Nimrod devel bc997e4 Araq [+0 ±1 -0]: bugfix: 'system' on windows is sane
22:47:57NimBotAraq/Nimrod devel 1c4bebd Araq [+0 ±4 -0]: fixes #914
22:47:57NimBotAraq/Nimrod devel 4ab417a Araq [+0 ±2 -0]: fixes #811
22:47:57NimBotAraq/Nimrod devel e0e63a3 Araq [+0 ±1 -0]: fixes #811
22:47:57NimBot1 more commits.
22:48:35Araqanother couple of bugfixes, another day where nimbuild doesn't tell me the diff, dom96 :P
22:48:38*carum quit (Remote host closed the connection)
22:49:16micklatsale4one: trying your version now, I get the same problem
22:49:39sale4oneIt looks like the old one is good :)
22:49:52sale4oneThank you :)
22:49:57renesacAraq, are you adding test cases as you fix the bugs, to make sure they won't pop up again?
22:50:16micklatsale4one: maybe our emacsen are too old for the current nimrod-mode
22:50:32renesacfor a future where compiler tests are runnable, of course
22:50:44Araqhuh?
22:51:00Araqfirstly, I do it like this since forever
22:51:19Araqsecondly, the compiler tests works just fine if you know how the tester works
22:51:48renesacyou were talking about they taking too long to run, and many failing
22:52:03Araqmany failing is still a problem
22:52:21Araqtaking too long to run is pretty much solved, since they are now grouped by category
22:52:23micklatprog-mode got added to emacs in version 24
22:52:24*carum joined #nimrod
22:52:28micklatwe both use some version of 23
22:52:33renesachum, right
22:53:23AraqI asked Varriount|Mobile to go through the list of tests, but he prefers to play Monkey Island 1 instead
22:53:24renesacwhy did you decide on "echo" based tests instead of assert based ones?
22:53:32Araqnah, just kidding ;-)
22:54:08Araqrenesac: assert might be disabled due to bugs
22:54:16Araqquite unlikely, but still
22:54:30Araqhaving output makes me sleep better
22:54:37renesachum
22:54:49renesacbut can't you test for this case?
22:54:50renesac:P
22:55:03renesacand then run other tests using asserts?
22:55:32renesacor you are afraid only some specific asserts are broken?
22:56:07*io2 quit ()
22:56:56renesacbtw, is there an "assertRaises" kind of assert?
22:57:09Araqthe unittest module support that, renesac
22:57:56Araqthe 'output' directive also tells the tester, to run the program, renesac
22:58:04Araqotherwise the tester only tests it compiles
22:59:04renesachum, "expect" macro
23:07:02renesaca bit more documentation wouldn't hurt... no description of the functions at all
23:07:14renesaclike, the difference between check and require
23:08:25Araqthere is an issue for that
23:10:09renesacright
23:10:15renesacand is there a coverage tool for tests?
23:11:06Araqno
23:11:07dom96This looks like it'll prove useful: http://lwn.net/Articles/584225/
23:15:02*carum quit (Remote host closed the connection)
23:27:45sale4onehey anyone can recommend me some well commented code, not just the proc doc string, but everything, so I can see how the stuff is done in nimrod ?
23:29:22Araqdo we have such a thing as "well commented code"?
23:29:40Araqhmm I think gradha produces such code
23:29:41reactormonksale4one, just ask away, got half an hour for you
23:30:51sale4onedamn, was it your repo that I donwloaded nimrod-mode ?
23:31:28sale4oneokay, this is the thing, i cant seem to get hang of nimrod and how to do stuff, as I am a web dev :/
23:31:44sale4oneI just want to find some well documented code so I can read it and see how stuff is done
23:33:48reactormonksale4one, yup, that's mine. it's got a few issues about basic emacs stuff, so if you know your way around elisp, I'd appreciate it ;-)
23:34:03reactormonkI'm waiting for nimrod serve to be fixed for nice autocomplete
23:34:16reactormonksale4one, and I'm a webdev too ;-)
23:35:11sale4onenice, maybe we should do a remake of the docs, they seem a bit "sad" :D
23:35:34sale4oneand I dont know a thing about elist :( maybe how to set vars and things i learned when configuring emacs XD
23:35:47reactormonksale4one, kk, that's fine
23:36:09reactormonksale4one, got anything in mind to create with nimrod?
23:36:18sale4oneyeah, a big one :D
23:36:39sale4oneEditor for student on science faculties
23:37:02micklatmaybe it would help to read Aporia?
23:37:04reactormonkthere's aporia as nimrod editor, I'm sure you can pick up some things from there
23:37:54sale4oneyeahm i tried reading it but I cant get the hang of the process. I know what every proc is doing, but it's hard to get hang off the proc internal things
23:38:04reactormonksale4one, gimme a snippet
23:38:06sale4onewhy did he do that, and why is it better that other
23:38:15sale4onesnippet ?
23:38:52micklatI better go to bed. g'night
23:38:59dom96Aporia probably isn't the best project to start out with.
23:39:04sale4onegood night :) tnx for help
23:39:10dom96I'd suggest babel.
23:39:13*micklat quit (Remote host closed the connection)
23:39:35sale4oneI will check it :) thanks dom
23:39:40sale4oneanything else I could read ?
23:42:00vbttsale4one:what languages are you already familiar with?
23:42:17sale4onephp, python, javascript
23:42:25sale4oneall the ones for web
23:42:55vbttso nimrod is the first statically typed, compiled one.
23:43:37vbtthmm that will be a jump but you should be able to get it. there are two big things i guess - static typing and the memory model (i.e dealing with references, pointers)
23:44:11sale4oneat least i wont need to learn the basics
23:44:12dom96Would be nice for someone to write a Nimrod tutorial for Python programmers.
23:44:21dom96Perhaps we should add that to the GSoC idea list
23:44:27vbttand then you have things like generics..
23:44:33sale4oneyeah, most of us here should know python
23:46:28vbttsale4one:why did you pick nimrod?
23:48:08sale4onebecause I liked it :) I read quite a number of articles about nimrod, read on reddit and everything and made my call :)
23:49:04vbttsale4one:do you know any C?
23:49:07vbttor Pascal?
23:50:36sale4onetiny bits, as I was the representative of my school when there was competions in programming (C) but still I forgot most of it (it was like 3 years ago)
23:51:44Araqping fowl
23:53:12dom96noooo. "Error: internal error: not unused" :(
23:53:34Araqdom96: update your compiler?
23:53:43dom96oh it's fixed already? :O
23:53:54Araqshould be
23:54:00dom96Araq: Great.
23:54:47Matthias247Hmm, I discovered nimrod by coincidence. Found rust in prior and decided to try out if that could get an alternative to C++ for me. And later on this heard about nimrod
23:56:09vbtti looked into nimrod like 3-4 years ago.
23:56:18sale4oneNimrod is getting some good reviews around
23:57:02vbtti really liked it for a few minutes and then liked it less as i read more.
23:57:04Varriount|MobileHey dom96, any news about the GSoC application?
23:57:08vbttor rather - it wasn't what i was looking for.
23:57:25vbttVarriount:they'll review applications next week. nimrod has been submitted.
23:57:29dom96Varriount|Mobile: Its been submitted. We will know if we get accepted by the 24th.
23:57:48Araqdom96: can we still add a voucher?
23:57:54dom96Araq: no
23:58:08Araqdamn
23:58:17dom96hrm, two new stargazers for jester.
23:58:19EXetoCsale4one: for the most part. people are hating on the indentation-sensitivity
23:58:22dom96In the last 30 minutes
23:58:35dom96Wonder where that's coming from
23:58:37EXetoC:-)
23:58:38vbttEXetoC: except the python people.
23:58:50Varriount|MobileLike me
23:58:56sale4oneAnd I like it
23:58:59EXetoCvbtt: seems like a plausible theory
23:59:01vbttEXetoC:perhaps you mean case/underscore insensitivy?
23:59:31vbttEXetoC:I didn't like other things. e.g. paren less invocation, many ways to call functions etc. now it doesn't matter to me as much i guess.
23:59:39EXetoCvbtt: indentation for defining blocks, rather than { and } for example (C etc)
23:59:43sale4oneit forces a bit of formating to code, and thats nice. I would like to see a formater like in Go
23:59:51AraqEXetoC: Haskell does the same and everybody loves haskell