<< 05-12-2014 >>

00:05:16Joe_knockYou guys saw this: https://news.ycombinator.com/item?id=7959217 I was trying to do a site-specific search in DDG but this popped up somehow
00:08:26Araq"Also, my language does not rely on GC, instead using annotated pointer types to get deterministic memory management (without requiring very explicit allocation and deallocation)."
00:08:35Araqyeah yeah yeah
00:09:43wanit's there apparently: https://github.com/djc/runa
00:13:25flaviuWhat was the problem with Nim and gdb again?
00:13:38flaviuSo far, it's working absolutely perfectly for me.
00:15:22flaviuNo problems with name mangling or anything.
00:15:27willwillsonwas it something about confusing variable names?
00:15:52flaviuhttps://gist.github.com/flaviut/b7863486909471042000
00:16:20flaviuwillwillson: that's what I recall too, but it works fine for me.
00:16:37Araqlocals are not mangled if we can avoid it
00:16:47Araqglobals are and in particular function names
00:17:10Araqbut still it's perfectly workable and most people simply never try
00:17:24flaviufunctions look good to me: https://gist.github.com/flaviut/ef97dccb48f2e7dfd7ca
00:17:49flaviuthe trailing number doesn't really ruin anything.
00:19:56Araqwell yeah but try to output a bit set of an enum for instance
00:20:07Araqwe need pretty printers for GDB
00:20:30Joe_knockdarn, I feel lost getting this app up :-/
00:20:34*vendethiel quit (Ping timeout: 250 seconds)
00:20:41flaviuah. I'm also having trouble dumping globals, a bunch of strings and functions
00:20:41ldleworkI don't know how to use gdb
00:21:12flaviuldlework: Nether do I. I found a cheat sheet on the internet though, it's pretty easy.
00:21:47*vendethiel joined #nimrod
00:22:28Joe_knockonionhammer: This is how I'm initializing my sqlite DB: https://pastee.org/uab8d
00:25:49flaviuHuh. It thinks that one of my globals is located in `nimlang/lib/system/gc.nim`.
00:26:06flaviuAnyone have any idea what might make GDB think that?
00:27:42Araqthe gc uses a variable of the same name?
00:27:51Araqgdb simply lists everything
00:28:18flaviuNot a chance, test123 is pretty unique
00:28:28flaviuand the value is the same as what I gave it
00:29:12flaviuhttps://gist.github.com/flaviut/344d3e59a507d1fd6412
00:29:54Araqdunno, report it
00:29:57Araqgood night
00:30:02flaviuok
00:30:04flaviunight
00:45:05*vendethiel quit (Ping timeout: 260 seconds)
00:47:28*vendethiel joined #nimrod
01:00:18ldleworkhmm I can't find an absolute value function
01:00:39ldleworkoh system
01:08:38ldleworkhey guys is there a way to like.. run some code to generate some data at compile time so I can access it during runtime?
01:09:20flaviuldlework: http://nimrod-lang.org/manual.html#static-statement-expression
01:10:29flaviuI think that will work, but on second thought, just do `const myData = myGenerator()`
01:11:05*johnsoft quit (Read error: Connection reset by peer)
01:12:19ldleworkflaviu: is that a macro?
01:12:36flaviuno, myGenerator is just a normal proc
01:12:56ldleworkthat calculates it at compile time?
01:13:08*BitPuffin joined #nimrod
01:13:18ldleworkI guess consts are determined then, so yeah
01:13:20ldleworkok
01:13:23flaviuthe `const` says that it must calculate at compile time
01:13:30EXetoCbut it doesn't work with objects yet
01:13:45ldleworkEXetoC: but it does with arrays?
01:14:24EXetoCit should
01:16:08ldleworkWill Nim let me do, proc circlePoints(r, n): array[n, int] =
01:16:49flaviuldlework: Is there a specific reason you need this at compile-time?
01:16:59EXetoCthat should work if 'n' is a compile-time value
01:17:11ldleworkflaviu: I just told people I computed the points of a circle at compile time lol
01:17:21EXetoCwhich it can be in this case because of lack of typing I think
01:17:24ldleworkEXetoC: since I will call this function to generate a const array, yes
01:17:34EXetoCwell
01:17:56EXetoCor maybe you'd need static[T] instead
01:19:17flaviuYep, static[t]
01:19:42*johnsoft joined #nimrod
01:19:43EXetoCbut aren't those two parameters of type 'expr'? or is it auto?
01:20:06EXetoCoh right, "auto* = expr"
01:24:47flaviuldlework: https://gist.github.com/d8472481c35d6d81173c
01:25:04ldleworkthat's awesome
01:25:12*Joe_knock quit (Quit: Leaving)
01:25:23ldleworkI didn't think seq would work at compiletime
01:25:30flaviuBut it does!
01:25:47EXetoCindeeeed
01:28:10flaviuIf they want more proof, you can `const circleData = $circle(1, 50)` and `strings` on the output executable
01:28:51willwillsonor show them the generated c ;-)
01:29:08flaviuGood point
01:29:58willwillsonthat is pretty cool though, I wouldn't have guessed it worked with seqs either
01:32:18EXetoCwe do have a nice VM
01:33:58flaviuEXetoC: Your happy feeling will rapidly dissipate once you start using it :(
01:34:00flaviuhttps://github.com/Araq/Nimrod/issues?q=is%3Aopen+is%3Aissue+label%3AVM
01:36:56EXetoCoh well
01:45:03EXetoCI'm trying to create a template for mapping enumerators to types, but it's tricky
01:49:01ldleworkEXetoC: like this, https://github.com/Araq/Nimrod/blob/devel/lib/wrappers/sdl/sdl.nim#L1285 ?
01:49:35ldleworkoh that's not the same thing
01:49:37ldleworksorry
01:50:38*q66 quit (Quit: Leaving)
01:50:43EXetoCtemplate toType(e: static[Enum]): typedesc = ???
01:55:37*vendethiel quit (Ping timeout: 240 seconds)
02:00:30willwillsonEXetoC: template toType(a: enum): typedesc = a.type ?
02:00:56*vendethiel joined #nimrod
02:03:58EXetoCtemplate toType(e: static[Enum]): typedesc = case e: of bla: float32...
02:05:59EXetoCI'll get back to that some other time
02:09:44*Demos joined #nimrod
02:10:21willwillsondid you try using when instead of case? what didn't work by the way?
02:13:53EXetoCwillwillson: thanks, I forgot
02:13:59EXetoCworks now
02:14:02willwillsonsweet
02:14:15ldleworkEXetoC: make sure to show us!
02:17:00EXetoCdamn right I will :p
02:20:05willwillsonis d:useFFI (when bootstrapping) currently broken?
02:20:40flaviuwillwillson: I think it's been broken for a while now
02:20:58flaviuIIRC It's too much work to support
02:21:07willwillsonflaviu: thanks, I've been trying to get your circle example to work :D
02:21:22willwillsonthought you might need to enable that for sin/cos
02:21:26flaviuWorks for me, can you post your error?
02:21:59willwillson/tmp/aporia/a17.nim(7, 17) Error: cannot 'importc' variable at compile time
02:22:36willwillsonmy nim is a little old, might take it as an opportunity to recompile :D
02:22:49flaviuyep, that's probably it.
02:22:59ldleworkwtf...
02:23:16ldleworkdx = self.ctl.display.w - 1
02:23:34ldleworkautomata.nim(93, 28) Error: type mismatch: got (range -1..9223372036854775806(int)) but expected 'int32'
02:23:41ldleworkdisplay is a graphics.PSurface
02:23:52ldleworkits .w is definitely an int
02:25:36ldleworkWell
02:25:38ldleworkthey are Natural
02:25:42ldleworkwhat is that
02:25:42EXetoCcint?
02:25:47EXetoCoh
02:25:57flaviuldlework: It means the compiler proves that it never becomes negative
02:26:00EXetoCrange[0..high(int)]. again in system
02:26:42flaviuSo if w = 0, then that - 1 would break the contract
02:27:04ldlework:( more type annotations
02:27:11*darkf joined #nimrod
02:51:51*brson quit (Quit: leaving)
03:04:26willwillsonthat importc error seems to occur when you use koch install
03:11:15*perturbation quit (Quit: Leaving)
03:14:57*willwillson quit (Read error: Connection reset by peer)
03:31:41*BitPuffin quit (Ping timeout: 272 seconds)
03:52:37*flaviu quit (Ping timeout: 252 seconds)
04:12:32fowlldlework, graphics module is not very useful fyi
04:12:44fowlyou can do the same stuff with sdls gfx addon
04:13:07ldleworkfowl: I think that it implements [] and such that makes it useful
04:14:19ldleworkI mean, it is nice to have this right in the stdlib, https://gist.github.com/anonymous/b3154d66744e02462a00
04:15:38fowlif you dont mind using surf.s everywhere
04:15:50fowlthat example could be done with converters though
04:15:57ldleworkconverters?
04:16:10fowlconverter for colors.TColor -> int32 (or w/e type sdl uses for color)
04:16:48ldleworkbut what do you mean by converter?
04:17:16fowlhold on
04:17:27fowlapparently theres only one example in the manual: http://build.nimrod-lang.org/docs/manual.html#convertible-relation (third code block)
04:18:13ldleworky'know
04:18:19fowland no examples in either tutorial
04:18:24ldleworknim doesn't seem to implicitly convert int's to int32
04:18:30ldleworkeven though this says it would
04:18:31fowlno
04:18:38fowlfor you maybe
04:18:44fowlmy int is int64
04:18:48ldleworkyeah mine too
04:19:04ldleworkand sdl wants 32
04:19:10ldleworkand its a pain typing int32 everywhere
04:20:15fowlioh i see what you mean
04:46:27*saml_ joined #nimrod
04:47:59*vendethiel quit (Ping timeout: 252 seconds)
04:51:13*vendethiel joined #nimrod
04:58:17*brson joined #nimrod
05:05:17*darkf_ joined #nimrod
05:07:00*darkf quit (Ping timeout: 258 seconds)
05:10:25*darkf joined #nimrod
05:13:08*darkf_ quit (Ping timeout: 258 seconds)
05:14:47*BlaXpirit joined #nimrod
05:19:01*vendethiel quit (Ping timeout: 260 seconds)
05:22:42*vendethiel joined #nimrod
05:43:45*vendethiel quit (Ping timeout: 260 seconds)
05:45:49*vendethiel joined #nimrod
06:01:01*Demos quit (Ping timeout: 255 seconds)
06:07:05*Demos joined #nimrod
06:19:19*bjz joined #nimrod
06:42:52*brson quit (Ping timeout: 265 seconds)
06:44:13*vendethiel quit (Ping timeout: 252 seconds)
06:46:45Demosit is worth the pain of typing int everywhere
06:46:52Demosnarrowing conversions are bad
06:47:35*Demos quit (Read error: Connection reset by peer)
06:50:07*vendethiel joined #nimrod
06:52:24*saml_ quit (Quit: Leaving)
07:05:08ldleworkis what worth it I wonder
07:08:26*gokr_ joined #nimrod
07:12:34*vendethiel quit (Ping timeout: 255 seconds)
07:14:13*vendethiel joined #nimrod
07:21:37*AFKMorpork is now known as AMorpork
07:27:52*bjz_ joined #nimrod
07:29:37*bjz quit (Ping timeout: 264 seconds)
07:34:52*BlaXpirit quit (Ping timeout: 244 seconds)
07:36:00*gokr joined #nimrod
07:36:00*gokr_ quit (Read error: Connection reset by peer)
07:54:03*dain_ joined #nimrod
08:00:57*gokr_ joined #nimrod
08:03:17*gokr quit (Ping timeout: 240 seconds)
08:13:52*Boscop quit (Quit: Boscop)
08:17:59*dain_ quit (Quit: dain_)
08:41:06*vendethiel quit (Ping timeout: 256 seconds)
08:45:17*vendethiel joined #nimrod
08:51:38*gokr joined #nimrod
09:06:59*vendethiel quit (Ping timeout: 250 seconds)
09:08:44*vendethiel joined #nimrod
09:25:26*Trustable joined #nimrod
09:48:13*gour_ joined #nimrod
09:49:55*gour_ is now known as gour
10:11:03*q66 joined #nimrod
10:30:53*BitPuffin joined #nimrod
10:36:06*q66 quit (Quit: Leaving)
10:53:43*EXetoC quit (Remote host closed the connection)
11:08:03*Matthias247 joined #nimrod
11:11:57*BitPuffin quit (Ping timeout: 245 seconds)
11:29:59*Jehan_ joined #nimrod
11:31:44*flaviu joined #nimrod
11:39:37*Jehan_ quit (Quit: Leaving)
11:50:27*BlaXpirit joined #nimrod
11:51:42*yeye123 joined #nimrod
11:52:08*Jehan_ joined #nimrod
11:54:41*flaviu quit (Ping timeout: 250 seconds)
12:07:51*gokr quit (Quit: Leaving.)
12:07:52*gokr1 joined #nimrod
12:39:09*Jehan_ quit (Read error: No route to host)
12:39:20*Jehan_ joined #nimrod
12:46:16*BitPuffin joined #nimrod
12:50:17*dom96_ quit (Ping timeout: 245 seconds)
12:52:34*yeye123 left #nimrod ("Leaving")
12:53:13*khmm joined #nimrod
12:59:54*khmm quit (Ping timeout: 264 seconds)
13:00:52*Araq0 joined #nimrod
13:04:12*khmm joined #nimrod
13:04:55*Joe_knock joined #nimrod
13:08:25*Boscop joined #nimrod
13:24:52*untitaker quit (Ping timeout: 245 seconds)
13:26:33Araq0ping Jehan_
13:26:42Jehan_Yes?
13:28:01Araq0any opinion on our release schedule?
13:29:14Jehan_Umm, I've only been skimming the forums. By release schedule I take it you mean 1.0 by the end of the year?
13:29:50Araq0yeah
13:30:00Jehan_My main computer broke recently and I had some trouble with the replacement, which is why I've been fairly inactive the past couple of weeks.
13:30:12Araq0whether it's 0.10.x or 1.0 or 1.0 RC 1
13:30:29Araq0whether 'generic' NEEDS to be in 1.0
13:30:50Jehan_I think "generic" is an optional feature at the moment.
13:31:09Joe_knockAs somebody whos voice wont count as much as a core-contrib, I suggest we be more liberal with release numbers and not worry too much about them. Functionality over form
13:31:12Jehan_I'd shoot for an RC and then make that as stable as possible.
13:31:38Jehan_Joe_knock: well, 1.0 is sort of a big thing in terms of messaging.
13:31:42*untitaker joined #nimrod
13:32:10gourwhat about beta?
13:32:13Jehan_My personal preference would be to hide the unstable stuff behind an experimental switch and focus on bug fixing for the rest.
13:32:29Araq0Jehan_: already implemented, but not pushed ;-)
13:32:52Jehan_Araq0: Yeah, I saw it on the forums.
13:33:23Jehan_So what I guess I'm saying is that I agree with your rationale. :)
13:33:53Jehan_About the proposed changes: The only thing that I *might* do differently is choose a different name for "bnot"
13:33:57*gour is reading forum's thread
13:34:26*vendethiel quit (Ping timeout: 264 seconds)
13:36:27Araq0gour: for me 1.0.*0* is a beta anyway, but I dislike these semantic additions to version numbers
13:36:48Jehan_Oh, I'm not sure about getting rid of the standalone except, but I'm really not invested in it either way, so, whatever.
13:37:28gourAraq0: it's of, of course, your choise. my idea is thar i consider 1.0beta is more suitable than 0.10.x
13:37:40Araq0so what's the versioning scheme? 1.0.0 RC 1, RC 2 ... ? why not 1.0.0, 1.0.2 ?
13:37:54Araq0why not use the numbers?
13:38:20Jehan_*shrug* Basically, 1.0 RC1 ... RCn allows a hype cycle to be built up.
13:38:45Jehan_You get people excited about stuff, but still have an excuse for something not quite working.
13:38:57*drewsrem joined #nimrod
13:39:06Jehan_Granted, it's a somewhat mercenary perspective.
13:40:31gourAraq0: you can see from e.g. KDE's example with 4.0...i gree with Jehan_
13:40:35*vendethiel joined #nimrod
13:41:26Joe_knockSo let's do major/minor then. For minor releases, we can target level 3 version number changes. Eg. 1.1.0 ; 1.1.1; 1.1.2
13:41:40Joe_knockFor major changes: 1.1 ; 1.2 ; 1.3
13:42:10Joe_knockAnd for compiler-based changes, we can jump to 2.0 ?
13:43:33*EXetoC joined #nimrod
13:44:13gournot being familiar with much of things which are going on, i also agree with dom96's " Because a 1.0 release is a very big deal, it will lock everything down so we need to make sure that what is in the language is what we want to be in the language."
13:44:46Araq0but that's what I'm doing for months
13:44:54Araq0fixing bugs and cleaning up things
13:45:12gourso, you believe that the language is ready spec-wise?
13:45:25Araq0yeah
13:46:15gourthen i'm for 1.0...go also did something similar, right?
13:49:54gourjust don't forget that 1.0 can vbe done only once ;)
13:51:12Araq0Jehan_: well we can do the full and-> &, or -> |, etc renamings
13:51:41Jehan_Umm, not sure if I want the entire C operator salad ...
13:51:47Araq0and then of course we need not also << and >> and <<= and >>= too
13:52:07Araq0and of course << has a different precedence than C's
13:52:33Araq0as usual it never ends
13:53:32Araq0not -> bnot is the best solution IMO simply because it just fixes 1 problem instead of introducing a whole lot of new problems at the same time
13:53:34Jehan_I was more asking if there isn't a better name than "bnot" (there may not be one).
13:53:46Araq0"bitnot"?
13:54:02Jehan_If there was a short word for "complement", I'd take that. :)
13:54:17Jehan_But "cpl" isn't an improvement over "bnot".
13:54:30Araq0meh, "complement" is a noun
13:54:34Araq0doesn't feel right
13:54:46Jehan_As I said, I'm not sure if there is a better alternative.
13:55:30Jehan_Can also be a verb.
13:55:42Araq0oh yeah
13:56:26Jehan_Anyhow, I have to take off for now. Talk to you later!
13:56:42*Jehan_ quit (Quit: Leaving)
13:58:22Joe_knockbefore releasing 1.0 . I have just 1 thing to say: "1.0 should be a stable release that is maintained for 6-12 months minimum"
14:00:57Araq0Joe_knock: I cannot see why this wouldn't be the case
14:01:46Araq0on the contrary this endless 0.9.x stuff means nobody feels responsible for keeping backwards compatibility seriously
14:01:55Araq0*treating
14:02:11Joe_knock1 thing that concerns me is maintenance. We're a small group and we can't have too many versions out in the wild.
14:02:44Araq0the only problem is when you change too much, like we had to for the cs:partial stuff
14:03:01Araq0then maintaining 2 branches becomes ever more painful
14:06:49Joe_knockSo let's fight bugs until almost all of them (+95%) are resolved, run our build tests for the compiler + any other thing that creates a solid stable base and say : 1.0 is ready
14:07:30Araq0that's 1 year away.
14:07:37Araq0do the math yourself
14:08:05Araq0~240 open bugs (without the feature requests)
14:08:21Araq0fixing bugs causes new problems (see the recent 'echo' regressions)
14:08:54Joe_knockUnless you're eager for a 1.0 , I don't see why we should carry that many bugs with it (especially medium-high ones).
14:09:55Araq0by this logic there should have never been a single Nim release
14:10:34Araq0do you think they release a new verson of GCC only when the bug count is at 0?
14:11:03Araq0I know of no decently sized software project that does that
14:11:16Joe_knockfair point, we can keep a few bugs. however, everything high priority that is a bug shouldn't be in a stable release (especially very old bugs)
14:11:40Araq0yeah, I still intend every high priority bug for 1.0
14:12:08Araq0*intend to fix
14:12:31Joe_knockin the end, the decision is yours and for guys like dom96, Jehan, flaviu, etc.
14:17:02gokr1Hey guys
14:17:16gokr1Been battling a cloud, so haven't followed.
14:19:28gokr1Some obvious things to mention: For us Nimmers, it really is no big deal. We are already Nimmers. The next release will change the name to Nim - it could be expected that a bit more attention is given from Reddit etc, so new website in place, properly tested building from source, some neat articles etc are naturally important.
14:20:07Araq0gokr1: that's the "obvious" way to do a release
14:20:24Araq0but it's also the way to never release
14:21:09gokr1And obviously, if we say 1.0 instead of 0.x - people are going to watch more closely. But... as long as we are prepared for it, and perhaps armed with a good release description - I am all for releasing :)
14:21:39Araq0so how long should we wait until somebody even *starts* with updating the docgen to incorporate all these nice changes that are obvious for anybody?
14:23:02gokr1The new website was ready, right?
14:23:17Araq0no, it never was
14:23:27Araq0the *design* was ready iirc
14:23:54Araq0but it's not a big deal, I'll replace the logo and call it a day
14:24:50gokr1Either way, I can try chip in but not sure where I can help best at this point.
14:25:46gokr1I do agree with the fact that a "1.0" implies some kind of "this is what Nim is" statement. But I thought the language was fairly settled, right?
14:26:10gokr1At least enough for a 1.0, right?
14:26:40gokr1Everyone knows that 1.0.23 is the version without the bugs anyway :)
14:26:49gokr1Only idiots use 1.0
14:27:01Araq0lol, yes. it is settled.
14:27:17Araq0just look at the list of upcoming changes
14:27:23Joe_knockIt is sometimes difficult to do many things when the core team is small
14:27:32Araq0everybody thinks it's a big deal
14:27:41Araq0but I implemented half of that list already
14:28:02Araq0it's really minor stuff
14:28:35gokr1I agree - feels like minor stuff.
14:28:55Araq0hmmm I like zio_tom78's CSS improvement better than filwit's new docgen design
14:29:06Joe_knockping dom96
14:31:36Araq0also ... I think how we write a module's documentation is not that good
14:31:48Araq0and the tool itself is not that bad
14:32:19Araq0module should really have long examples up front and not document what the proc signature already tells you
14:32:41gokr1Yeah, examples rules.
14:32:58Araq0so maybe the docgen is fine for 1.0
14:33:43Araq0JavaDoc is the obvious thing **not** to copy
14:35:21*gokr1 quit (Quit: Leaving.)
14:35:23Araq0a redesign of the documentation does not have to be coupled with a major release anyway
14:36:01Araq0I'd rather have incremental "releases"
14:39:44Joe_knockShould an SQLite DB be initialized in a proc or using a var?
14:41:12EXetoCit's up to you
14:42:43EXetoCbut it seems like a good idea to do as much as possible in procs rather than in the module scope
14:46:59*vendethiel quit (Ping timeout: 258 seconds)
14:47:01Joe_knockEXetoC: By using this example (which seems outdated), can I turn what is written there into a Jester to-do web-app?
14:47:07Joe_knocklink: https://github.com/Araq/Nimrod/tree/devel/examples/cross_todo/nimrod_backend
14:49:39*vendethiel joined #nimrod
14:54:55Araq0Joe_knock: I can't see why not
14:57:37*gour_ joined #nimrod
15:00:38*Araq0 quit (Quit: Page closed)
15:01:10*darkf quit (Ping timeout: 258 seconds)
15:01:33*gour quit (Ping timeout: 258 seconds)
15:16:31*gour_ is now known as gour
15:18:20*gour feels that it should be stressed more that 1.0 means that langauge-wise it's stable which, naturally, does not imply implementation
15:19:31gourjust remember the disaster with D langauge where Andrei even published book and then they, afaik. continue shuffling with the *language* features
15:20:57*gokr_ quit (Read error: Connection reset by peer)
15:21:04*gokr_ joined #nimrod
15:27:18*dom96_ joined #nimrod
15:27:31dom96_Joe_knock: what's up?
15:30:20dom96_Araq: I bet people are still using 0.9.6. We still do not know what people will think of the recent changes to the case sensitivity rules.
15:30:53dom96_And do you seriously want to release 1.0 with all this deprecated shit?
15:31:18dom96_We should release 0.10. Then remove everything that is deprecated and release 1.0
15:36:27Joe_knockdom96_: would you be keen on a 1 hour project where we flesh out a to-do application as an example app?
15:36:57dom96_Sure.
15:37:18dom96_Joe_knock: When can you do it?
15:37:37dom96_I'll be in a lecture for the next ~3 hours.
15:37:45dom96_But then I should be around.
15:37:49Joe_knockhow about tonight?
15:38:16Joe_knock8.30pm your time
15:38:38dom96_sure.
15:39:09Joe_knockokay, I'll see you here at 8.30pm, maybe we can get another example webapp in as well.
15:39:29dom96_Cool.
15:39:34dom96_See you then.
15:39:45dom96_I suppose I should finish off jester's new_async branch
15:39:50dom96_and merge it into master
15:54:55*dts|pokeball joined #nimrod
16:08:50*gokr joined #nimrod
16:08:51*khmm quit (Ping timeout: 265 seconds)
16:13:40*dom96_ quit (Ping timeout: 246 seconds)
16:18:09*uran joined #nimrod
16:21:33*dom96_ joined #nimrod
16:32:55*uran quit (Ping timeout: 246 seconds)
16:41:21*mko joined #nimrod
16:58:33*vendethiel quit (Ping timeout: 272 seconds)
17:03:39ldleworkgood morning
17:07:22*shevy left #nimrod ("I'll be back ... maybe")
17:13:37*dts|pokeball quit (Ping timeout: 240 seconds)
17:15:08*vendethiel joined #nimrod
17:21:52ldleworkdead in here
17:30:47dom96hey ldlework
17:30:54ldleworkhullo
17:31:19dom96what's up?
17:31:26ldleworkGlad it is the weekend
17:32:28dom96same.
17:32:42dom96What are you working on in Nim at the minute?
17:34:13ldleworkdom96: I have been writing a little game library ontop of our sdl/graphics libraries just to get used to writing Nim and how to organize my code
17:36:18ldleworkI know its not very useful for the project
17:38:46dom96Nim libraries are just as important as the compiler itself.
17:39:05dom96It's brilliant that you are writing one.
17:39:07dom96brb
17:39:08*brson joined #nimrod
17:40:51ldleworkI wish I could set the default int size to something other than my native size
17:41:32EXetoCusing other types doesn't require much effort
17:42:01EXetoC0i32
17:42:16ldleworkThere are a lot of number literals in game code
17:42:28ldleworkSo it would be pretty nice conveience
17:44:27*willwillson joined #nimrod
17:47:39*Mat4 joined #nimrod
17:47:49Mat4hello
17:49:20EXetoChi
17:49:38EXetoCldlework: yes, but with added confusion
17:49:43EXetoCand I assume you mean literals only
17:50:04Mat4hi EXetoC
17:50:26ldleworkEXetoC: for literals and int
17:50:48Mat4have someone seen 'dts|pokeball' today ?
17:50:49willwillsonhi Mat4, is today the day of the big release?
17:51:01dom96back
17:51:27willwillsonMat4: he showed up irc earlier if i recall correctly
17:52:01Mat4willwillson: I have uploaded my IL compiler work currently
17:52:44willwillsonoh yeah, I see it, good work!
17:53:08dom96I wonder how much safety these "strict" literals actually add.
17:53:37dom96I would personally prefer if any number literal just worked for int, int64, int32, float etc.
17:54:37EXetoC?
17:55:00ldleworkEXetoC: the thing you're assigning to is already typed
17:55:25ldleworkthere is literally no difference between 0i32 and 0i64, except whether it happens to match the thing you're assigning to
17:55:34ldleworkso why not just make it implicitly match?
17:55:39EXetoCvar x = 0i32
17:55:49EXetoCdom96: : yes but sometimes you need to instantiate a type parameter with a certain integer type
17:55:58ldleworkEXetoC: he's talking about the typed cases, I'm sure
17:56:24EXetoCthere's no need to do that then
17:57:14ldleworkthere is
17:57:18ldleworkbecause sometimes if I'm calling a function
17:57:21ldleworkwhich takes int32
17:57:26ldleworkand I just type 50
17:57:29ldleworkit complains
17:57:35ldleworkand makes me explicitly type cast it
17:57:59EXetoCit doesn't complain for me
17:58:48dom96Yes, and this goes against one of Nim's goals "expressiveness"
17:58:49EXetoCif they have indeed been literals then you must have stumbled upon a bug
18:01:00dom96Appears EXetoC is correct.
18:01:00EXetoCeither that or the literals have been outside the number range for said type
18:01:26dom96I think we need a better error for the latter case.
18:02:12EXetoCdom96: as in, include the legal range?
18:02:19*vendethiel quit (Ping timeout: 244 seconds)
18:03:13dom96perhaps
18:06:51EXetoCI don't think it's needed. the error message could just be a little more explanatory, so as to not have people think that it's always necessary to use suffixes
18:06:54*milosn quit (Remote host closed the connection)
18:07:18*vendethiel joined #nimrod
18:07:27EXetoCbut it's also something you'll learn about fairly quickly anyway
18:08:19Mat4I miss a general type, something like 'any'
18:09:31EXetoCI think we discussed this before, and you didn't want to create an explicit variant type, right?
18:12:44EXetoCwhat are you trying to do?
18:13:56Mat4^a type which can be converted to every possible type
18:14:17Mat4(the typeless type)
18:16:00EXetoChow is this different from a union or a byte buffer?
18:18:27Joe_knockin a Proc, eg. : proc yes(question: string): bool = .... What is this part doing ": bool =" ???
18:18:58dom96Joe_knock: return type is bool
18:18:58EXetoCit returns bool
18:19:13EXetoC"proc yes(question: string) =" returns void basically
18:19:28dom96Mat4: Maybe you could marshal everything using the marshal module and then pass strings everywhere?
18:19:37dom96Not very efficient but might work :P
18:20:22Joe_knockokay, so the ": int =" or ": str =" is specifying the return type
18:20:48*vendethiel quit (Ping timeout: 256 seconds)
18:20:49Mat4EXetoC: because assignment is always implicit for such types, this would be a more elegant alternative to an union
18:21:00Mat4(in my opinion)
18:21:01EXetoCJoe_knock: = should be there regardless, unless it's a forward declaration (no body)
18:21:32EXetoCMat4: well how large should it be then?
18:22:05EXetoCwill the user decide and then hope it's big enough?
18:22:14Mat4dom96: In this case I can use TCL ;)
18:23:18dom96I found filwit's new docs design: http://reign-studios.net/philipwitte/nim/docs-lib.htm
18:23:32Joe_knockso if I am initializing my DB using a "void" proc, should I instead be using another type of proc that returns something for my global connection variable ?
18:24:56*vendethiel joined #nimrod
18:24:59Mat4EXetoC: casting to the largest possible type would do
18:25:07dom96Joe_knock: Possibly, yes.
18:28:01EXetoCMat4: the largest of every available type?
18:28:10Mat4 yes
18:28:44Mat4eg. the wrd width
18:28:49Mat4^word
18:29:13EXetoCare you refering to integer types now?
18:30:16EXetoCif not, then it must be larger than the word size, probably
18:31:31Mat4unsure, floating point representations need then to be converted to fixpoint to fit (this means scaled)
18:31:42*vendethiel quit (Ping timeout: 250 seconds)
18:32:33Joe_knockin a situation like this: "proc getTodo(conn: DbConnection, id: string)" In the first parameter, is DbConnection a keyword like string ?
18:32:56Mat4some languages do this
18:33:12EXetoCit's the name of a type, and I don't think string is a keyword
18:34:16Joe_knockokay, okay . I think I see it now. I was actually referring to string as a type, just called it a keyword :-/
18:35:22EXetoCMat4: why not just cast? you can just create your own type and hide that if you want
18:37:29EXetoCoh ok just one word, but then some precision will be lost
18:37:59Mat4that's the disadvantage
18:40:09Joe_knock1 more question. Would there be a conflict if my named variable uses the same name as a parameter specified in my proc ?
18:41:41Joe_knocknamed variable = global var
18:42:31EXetoCI remember someone saying it won't, but don't do that anyway
18:42:42EXetoCat least make the first character lowercase
18:43:39Joe_knockI could literally name my parameter anything right?
18:44:56EXetoCkind of
18:45:08*q66[lap] quit (Ping timeout: 250 seconds)
18:45:26Joe_knockLet me give this a try.
18:45:55ekarlso-what's the fastest of nim / rust ? ^^
18:46:07EXetoCnot anything of course
18:46:42ldleworkekarlso-: in terms of programmer productivity? Nim.
18:46:46EXetoCcan't start with underscores and can't be that of a keyword
18:46:58ekarlso-ldlework: :P
18:48:02*q66[lap] joined #nimrod
18:49:12Mat4ekarIso-: in term of readability? Nim.
18:49:27*dom96 quit (Changing host)
18:49:27*dom96 joined #nimrod
18:49:43ekarlso-i really hope nim will pick up vs rust / go
18:50:03ldleworkekarlso-: go is here to stay for sure
18:50:18ekarlso-ldlework: aint they on diff levels though ?=
18:50:34ldleworkekarlso-: I'd say so.
18:50:39NimBotnim-lang/nimforum new_async 9b0d507 Dominik Picheta [+0 ±1 -0]: Better smiley positioning. Larger font size.
18:50:41ldleworkStill, go isn't going anywhere.
18:51:39Joe_knockekarlso-: Thanks for coming through. we generally have this discussion with newbies that drop by. Think of Go as Googles idea of solving IO-style issues on web servers. Think of Rust as the inbetween of C++ and Ruby and then you can see Nim as an alternative to C++
18:54:28ldleworkRust inbetween C++ and Ruby????
18:56:10EXetoChm :p
18:56:57Joe_knockWell they're all in between somewhere there :P
18:57:29ldleworkJoe_knock: I would say Rust and C++ are at the same level of system access and abstraction
18:57:35Joe_knockekarlso-: Honestly, I don't see us picking up that much, unless we get a corporate sponsor (I'm looking at Yahoo)
18:57:37*BitPuffin quit (Ping timeout: 240 seconds)
18:57:39NimBotnim-lang/nimble master 42dcac2 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Manually checks out the branch/tag after git clone.
18:57:39NimBotnim-lang/nimble master a0fb2c1 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Improves cloning of git repositories. Refs #70.
18:57:39NimBotnim-lang/nimble master a778b0f Dominik Picheta [+0 ±1 -0]: Merge pull request #70 from gradha/pr_patches_irregular_git_clone_behaviour... 2 more lines
18:57:41ldleworkRust is simply implemented today, and has elements of modern language design
18:57:47Mat4hmm, I've seen Rust more as a traditional C oriented development alternative for programmers which grows with C and now prefer it style but not it short comings
18:57:49ldleworkIt isn't anywhere close to Ruby in terms of how it works
19:00:17NimBotnim-lang/nimforum new_async e52d65c Miguel [+0 ±2 -0]: highlighting current post via CSS :hover pseudo-element
19:00:17NimBotnim-lang/nimforum new_async 9e57852 Dominik Picheta [+0 ±2 -0]: Merge pull request #32 from Leu-Gim/new_async... 2 more lines
19:01:03*milosn joined #nimrod
19:02:23Joe_knockIs this an error that needs to be raised concerning nimble? https://pastee.org/n7quw
19:04:03EXetoCI think it should be catched
19:18:19ekarlso-Joe_knock: try IBM :p
19:32:59willwillsonekarlso-: https://github.com/kostya/benchmarks/ has a few rust vs nimrod benchmarks
19:36:42*AMorpork is now known as AFKMorpork
19:37:12*q66 joined #nimrod
19:38:18*dts|pokeball joined #nimrod
19:43:32*Hakaslak joined #nimrod
19:44:41*Hakaslak quit (Client Quit)
19:45:47*Demos joined #nimrod
19:50:13*q66 quit (Quit: Leaving)
19:50:34*q66 joined #nimrod
19:58:14*AFKMorpork is now known as AMorpork
20:10:04*Stefan_Salewski joined #nimrod
20:11:36Stefan_SalewskiIs hyphen not allowed in module import path like import /home/stefan/nim-glib/src/glib2
20:12:23Stefan_SalewskiI know that hyphen is not allowed in Nim identifiers, but thought it is ok for paths?
20:12:37dom96try: import "/home/stefan/nim-glib/src/glib2"
20:12:58Stefan_SalewskiAh, thanks.
20:15:30Araqabsolute paths are not the best idea in imports though
20:15:48Stefan_SalewskiAnd one additional remark: Beginners may type something like import glib.nim -- I know it is wrong, but compiler error message is not very good (for Linux): Error: cannot open 'glib2/nim'
20:16:10Stefan_SalewskiAraq: I know, just for testing. Bye...
20:16:17Araqwhy? the error message is fine
20:16:26Araqshows the compiler treats the dot as slash
20:17:14Stefan_SalewskiYes, no problem for me. But for beginners?
20:17:41Araqbeginners can be smart too
20:18:28*brson quit (Quit: leaving)
20:18:43Stefan_SalewskiBye...
20:18:47*Stefan_Salewski quit ()
20:34:13*gokr quit (Quit: Leaving.)
20:39:11dts|pokeballdoes nimrod have like a pop_front() method for strings?
20:40:31Mat4hello dts|pokeball
20:40:38dts|pokeballhi Mat4
20:41:12Araqdts|pokeball: just use slicing
20:41:28dts|pokeballok
20:42:13*pafmaf joined #nimrod
20:45:50Mat4dts|pokeball: I've abandoned the port because of the buggy code base for which rewriting from scratch would be easier in my opinion. Anyhow my current IL stuff is uploaded so if you wish to contribute feel free to do so
20:47:27dts|pokeballok. so just to be clear, youre writing the nim to binary compiler from scratch?
20:49:21Joe_knockdom96: Ready to start?
20:50:16dom96Joe_knock: I'll be ready in about 10 minutes if that's ok? Just started eating heh.
20:50:34Joe_knockno problem. take your time. We can start at 11ish
20:51:13dts|pokeballsplicing returns a string doesnt it?
20:51:43Mat4dta|pokeball: I plan to port a monitor program for the IL environment which I've coded some years ago and will patch Nim's C generator to emit assembly
20:51:53dts|pokeballooo cool
20:58:19*uran joined #nimrod
20:59:05*BitPuffin joined #nimrod
21:00:22dom96Joe_knock: ok, i'm ready. How do you want to do this?
21:03:32Joe_knockI'm glad you asked. I now present: http://collabedit.com/4y9kt tadaa!!
21:04:01dom96cool
21:04:03Joe_knockWe can chat there, or privately here.
21:04:19wanwhat are you trying to build in real-time collaboration?
21:05:16Joe_knockwan: You're welcome to join us, we're building a todo app to add to Jester examples
21:05:32Araqhi uran welcome
21:07:32wanJoe_knock: ah, alright. Kind of a todomvc back-end, then? I might hop by at some point to see how it's going.
21:08:21uranHi Araq, thank you
21:08:24Joe_knockwan: That is actually a good point you're mentioning. I wanted to actually submit one here: http://www.todobackend.com/index.html
21:09:23*drewsrem quit (Quit: Leaving)
21:14:26*brson joined #nimrod
21:27:14*milosn quit (Ping timeout: 256 seconds)
21:27:16*uran quit (Ping timeout: 246 seconds)
21:29:17*gokr_ quit (Ping timeout: 240 seconds)
21:33:21*Stefan_Salewski joined #nimrod
21:33:34dts|pokeballhow would i cast "r" to a char?
21:35:24Araqchar(r) or cast[char](r)
21:35:37Araqthe former is preferred
21:35:52Stefan_SalewskiBack: Seems that complete import paths does not work at all on linux, with Nim devel compiled a few wekks ago
21:36:48Stefan_Salewskiimport "/home/stefan/nim-glib/src/glib2" is currently not working for me, while import ../../aaa-bbb/glib2 is fine!
21:36:50dts|pokeballAraq, ah... that makes more sense. i thought i had read chr
21:37:16ldleworkStefan_Salewski: I imagine importing works based off the nim path
21:37:32ldleworkStefan_Salewski: so just add /home/stefan/nim-glib/src to your nim path
21:38:07AraqStefan_Salewski: maybe, but there have been no changes to the path handling
21:38:24Araqso if it doesn't work, it should never have worked ...
21:38:47dts|pokeballhttp://paste.ubuntu.com/9387615/ why would i be missing a )? i cant see unbalanced parens anywhere in hte code?
21:39:31Stefan_SalewskiYes, I think I used only something like ../dir/module in the past.
21:39:39*flaviu joined #nimrod
21:39:47ldleworkdts|pokeball: is "source: var string"
21:39:50ldleworkits*
21:39:55dts|pokeballoh
21:39:56dts|pokeballhmm
21:40:01dts|pokeballi misread the tutorial
21:40:20ldleworkStefan_Salewski: don't embed any information about your environment into how things are imported
21:40:30Stefan_SalewskiBut I think we should decide how import path may look, and state that in the manual. No problem for me now, thanks.
21:40:31ldleworkStefan_Salewski: put things on the path, and pick the most natural import designation
21:40:36ldleworkStefan_Salewski: like "import glib2"
21:40:58ldleworkStefan_Salewski: certainly we wouldn't want to encourage absolute paths by supporting them
21:41:08ldleworkif it doesn't work currently, I'd call it a feature
21:41:56Araqyup
21:42:05Araqit's good that it doesn't work ;-)
21:42:13Stefan_SalewskiIdlework: so please at it to the manual...
21:42:35*skyfex quit (Quit: (null))
21:43:21ldleworkStefan_Salewski: why?
21:43:32ldleworkWhat indicated to you that you -could- or even -should- use absolute paths?
21:43:59ldleworkStefan_Salewski: btw, pull requests are accepted
21:44:31Stefan_SalewskiI am sure that people will complain when absolute import paths will not work, at least some German ones.
21:44:37ldleworko_o
21:44:46ldleworkWhy the hell would being German have anything to do with anything
21:45:13flaviuldlework: Araq is German, maybe there's a secret German Nim community?
21:45:23ldleworkthe only appropriate answer here is "Because Germans are the absolute race"
21:45:26Stefan_SalewskiAnd when you ask why put it to manual: Because it is not expected. I t may be OK.
21:45:52ldleworkStefan_Salewski: go ahead, I'm sure Araq would merge your clarification
21:48:39Mat4Stefan_Salewski: I hope you know this is a public viewable channel
21:49:27*AMorpork is now known as AFKMorpork
21:50:15Stefan_SalewskiSure, I am German, I know some of us like to complain. But I have to do some work still. Bye...
21:50:24*Stefan_Salewski quit ()
21:50:29ldleworkthat was odd
21:53:02Mat4<8->=
21:53:09Mat4*lol*
22:02:55*Mat4 tests emoticons
22:04:17Araqthese are IRC client dependent
22:05:09ldleworkman, right around 2PM I just turn the fuck off
22:05:17ldleworkoops
22:07:04Mat4is this some kind of slang ?
22:07:56*milosn joined #nimrod
22:08:46dom96If you guys wanna see us coding the todo app join 178.62.143.63 using gobby.
22:09:04*pafmaf quit (Quit: Verlassend)
22:10:07Joe_knockgobby 0.5
22:10:27*untitaker quit (Ping timeout: 250 seconds)
22:11:42Mat4ciao
22:11:48*Mat4 left #nimrod (#nimrod)
22:17:48*untitaker joined #nimrod
22:19:28*perturbation joined #nimrod
22:20:20*gour quit (Quit: Konversation terminated!)
22:31:40*rpag_ joined #nimrod
22:32:00*EXetoC quit (Quit: WeeChat 1.0.1)
22:33:12*rpag quit (Ping timeout: 245 seconds)
22:33:22*Stefan_Salewski joined #nimrod
22:34:18Stefan_SalewskiOk, just to correct myself: #import ../../nimgobj/gli2 works fine, but
22:35:38Stefan_Salewskiimport ../glib2 gives: Error: invalid module name: '../ glib2'
22:37:13Stefan_SalewskiSo the compiler inserts a space infront of the 'glib2'. Maybe a feature? No problem when we know it.
22:39:11Araqhrm that is strange indeed
22:40:04*AFKMorpork is now known as AMorpork
22:40:54Joe_knockI've never seen anybody want to statically link to something before.
22:41:09Joe_knockStefan_Salewski: No nimble?
22:41:10flaviuStefan_Salewski: heh, I just ran across that problem myself right now
22:42:01*gokr_ joined #nimrod
22:42:25dts|pokeballis it just coincedence that nimrod resembles pascal?
22:42:48dts|pokeballlike i copied some pascal code,, and most of it is somewhat valid nim
22:43:27ldleworkdts|pokeball: Nim is bootstrapped with Pascal code automatically converted to Nim
22:43:38dts|pokeballthat makes sense
22:44:03dts|pokeballone of these days ill look through the nim compiler
22:47:26*EXetoC joined #nimrod
22:55:10Araqwell Pascal -> Nim is rather easy to do. Nim -> Pascal doesn't work that well: let x = if b: 1 else 0
22:55:31Araqlet x = if b: 1 else: 0
23:02:35flaviuldlework: Huh? Nim was originally written in pascal, but now it's bootstraped from C sources.
23:03:04ldleworkflaviu: I've read that there was some pascal that was automatically converted to Nim that provided the means for the first strapping
23:03:13ldleworkAraq probably knows.
23:03:18flaviuyes, you're right
23:03:25ldlework..
23:03:49flaviubut from what I can tell, just the first one. Nim hasn't been near pascal for some years AFAIK
23:05:04Stefan_SalewskiIn Oberon we had * for read/write export, and - to mark identifiers for read-only export: Is read-only export available for Nim too?
23:05:30ldleworkflaviu: sure
23:09:46*saml quit (Quit: Leaving)
23:09:57Araqonce bootstrapping worked reliably enough I never wrote anything in Pascal anymore
23:10:35*gokr joined #nimrod
23:10:45Araqafter a few hundred thousand lines of pascal you learn to loathe the syntax
23:11:21AraqStefan_Salewski: no but '-' has been discussed and maybe will make it into the language one day
23:12:13Stefan_SalewskiAh thanks. Bye...
23:12:16*Stefan_Salewski quit ()
23:13:40*gokr1 joined #nimrod
23:14:08*gokr_ quit (Ping timeout: 258 seconds)
23:24:11flaviu'Oberon is unusable for any real programming and Wirth confuses simplicity with "the compiler can be implemented by students"', yet it still is interesting enough that you're considering stealing syntax :P
23:26:57Araqno, I stole syntax from it 8 years ago
23:27:27Araqit's only interesting when you ignore time
23:28:41*Stefan_Salewski joined #nimrod
23:29:53Stefan_SalewskiYes. Oberon is a simple language, and there has not been real progress in the last 20 years.
23:30:02dts|pokeballcrap... i didnt need to cast a string at all :/
23:30:57Stefan_SalewskiBut Oberon was and Operating System written in Oberon too -- first on Ceres workstation, later ported to X86.
23:31:04AraqStefan_Salewski: no progress on Oberon, you mean
23:32:21Stefan_SalewskiSure, no real progress in Oberon...
23:33:06Stefan_SalewskiBut Wirth ported his OS and language to an FPGA board recently.
23:33:13AraqOberon is a horrible language
23:33:34Araqit replaces enums with integers, what's the point of static typing then?
23:34:33Araqit has GC, but arrays still can't grow
23:34:39Stefan_SalewskiSome people still follow Oberon -- maybe still useful for embbeded secure devices?
23:36:23Stefan_SalewskiAraq: But Oberon also banned unsigned ints :-)
23:36:35Araqso did Java
23:37:11flaviuAraq: Technically, java does have unsigned 16 bit integers
23:37:31Araqflaviu: char?
23:37:31flaviu`char`
23:37:33flaviuyep
23:37:40Araqso does Oberon then
23:38:09AraqOberon is Java in Pascalish syntax
23:38:18Araqmore or less
23:39:00Araqthe only real difference is that oberon still has value based objects (records)
23:39:11Araqand arrays
23:41:10Araqthe mere fact that Wirth uses ALLUPPERCASE for the keywords makes me wonder if he ever heard of this new thing called "syntax highlighting"
23:42:40dom96Wirth probably still uses a black and white monitor.
23:44:37*Joe_knock left #nimrod ("Leaving")
23:45:09*MightyJoe quit (Ping timeout: 272 seconds)
23:47:11*MightyJoe joined #nimrod
23:48:19*Stefan_Salewski quit ()
23:51:57flaviudom96: His monitor looks modern: http://www.dr-chuck.com/img/2012/2012-02-24-niklaus.jpg
23:55:57willwillsonHow did you get along coding the TODO app?
23:59:39*Stefan_Salewski joined #nimrod