<< 30-05-2014 >>

00:19:58*hoverbear joined #nimrod
00:20:18*Joe_knock is now known as Joe_knock_afk
00:35:07*Joe_knock_afk is now known as Joe_knock
00:36:59*hoverbear quit (Ping timeout: 255 seconds)
00:41:25*bjz_ joined #nimrod
00:46:27*bjz_ quit (Ping timeout: 252 seconds)
01:00:14*q66 quit (Quit: Leaving)
01:07:38*saml_ joined #nimrod
01:10:44*Joe_knock quit (Quit: Leaving)
01:22:27*brson quit (Ping timeout: 260 seconds)
01:23:33*brson joined #nimrod
01:27:03*bjz joined #nimrod
01:39:22*xenagi joined #nimrod
01:40:48*DAddYE__ quit (Remote host closed the connection)
01:43:03OrionPKhttps://github.com/onionhammer/clibpp
01:45:35OrionPKdom96 https://github.com/nimrod-code/packages/pull/61
01:59:22fowlOrionPK, removepragma should deal with exprColonExpr, im sure `$` will fail on it
02:00:25OrionPKpull requests welcome
02:01:19OrionPKfowl removepragma is really just to remove the 'isstatic' pragma
02:01:40OrionPKdoing isstatic: "something" wouldnt really make sense
02:03:24fowlOrionPK, im just changing it to pname.eqIdent(repr(i))
02:05:06OrionPKmmk
02:06:11fowlOrionPK, this looks cool though, im going to try it on sfml
02:06:27OrionPKthanks, lemme know how it works out
02:07:07*nequitans_ quit (Ping timeout: 252 seconds)
02:07:14NimBotnimrod-code/packages master 37b9ab4 onionhammer [+0 ±1 -0]: Added clibpp C++ library wrapping package
02:07:14NimBotnimrod-code/packages master b38dcb8 Billingsly Wetherfordshire [+0 ±1 -0]: Merge pull request #61 from onionhammer/patch-3... 2 more lines
02:10:28OrionPKthanks dom
02:11:48fowl<- billingsly wetherfordshire
02:13:27OrionPKah i thought only dom had access to merge babel pkgs ;)
02:13:28OrionPKthanks
02:13:51OrionPKI know you're billingsly, didnt pay much attention to the name ;)
02:23:18OrionPKfowl i added you as a collaborator
02:23:38OrionPKchange it as you need to when you work on sfml
02:24:46fowlhm I get compiler segfault
02:29:42fowltrying to hunt it down
02:30:47fowlOrionPK, what does importcpp do in the type def?
02:31:51fowlOrionPK, what does importcpp do in the type def?
02:31:55fowlsry
02:35:13fowloh fixed it
02:35:41fowlcall basename on the procname to get past the export symbol
02:37:57*hoverbear joined #nimrod
02:40:17OrionPKhmm?
02:40:46OrionPKimportcpp should import public fields
02:41:21*nequitans_ joined #nimrod
02:41:50fowlcall basename on the procname to get past the export symbol
02:41:54fowldamnit
02:42:17fowlOrionPK, importc does that
02:42:59flaviu1Will the [TP] prefixes stay?
02:43:25flaviu1I think Araq said they're on the way out, but I don't remember
02:46:06OrionPKfowl well, does it matter?
02:46:24OrionPKflaviu1 last i heard they're on their way out
03:00:57*saml_ quit (Remote host closed the connection)
03:05:26*def- joined #nimrod
03:08:59*def-_ quit (Ping timeout: 252 seconds)
03:11:07*OrionPK quit (Remote host closed the connection)
03:11:19*OrionPK joined #nimrod
03:33:49*brson quit (Quit: leaving)
03:44:23*Demos joined #nimrod
03:58:21*xenagi quit (Read error: Connection reset by peer)
04:04:49*nequitans_ quit (Ping timeout: 252 seconds)
04:05:45fowlis there a way to say that variables of a type should be {.noInit.}?
04:28:19fowlOrionPK, got it working :)
04:40:19*Demos quit (Remote host closed the connection)
04:42:20*ehaliewicz joined #nimrod
05:00:56*io2 joined #nimrod
05:02:46fowlpretty cool, its a lot less wordy than a straight up wrapper https://github.com/fowlmouth/nimrod-sfml/blob/master/sfml2.nim
05:15:47*rixx joined #nimrod
05:16:45*rixx left #nimrod (#nimrod)
05:32:20*nequitans_ joined #nimrod
05:34:59*flaviu1 quit (Ping timeout: 240 seconds)
05:36:53*nequitans_ quit (Ping timeout: 264 seconds)
05:48:29*def- quit (Ping timeout: 252 seconds)
05:55:29*def- joined #nimrod
05:57:11*DAddYE joined #nimrod
06:06:11*Skrylar quit (Ping timeout: 260 seconds)
06:07:09*Skrylar joined #nimrod
06:07:16*Skrylar quit (Client Quit)
06:17:27*nande quit (Read error: Connection reset by peer)
06:19:43*hoverbear quit ()
06:20:22*hoverbear joined #nimrod
06:21:13*fowl quit (Ping timeout: 252 seconds)
06:22:56*fowl joined #nimrod
06:24:40*hoverbear quit (Client Quit)
07:37:19*kunev joined #nimrod
07:45:10*nequitans_ joined #nimrod
07:49:18*nequitans_ quit (Ping timeout: 240 seconds)
07:57:17*OrionPK quit (Ping timeout: 252 seconds)
08:33:52*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
09:39:24*gsingh93_ quit (Quit: Connection closed for inactivity)
09:47:28*nequitans_ joined #nimrod
09:52:09*Matthias247 joined #nimrod
09:54:17*nequitans_ quit (Ping timeout: 276 seconds)
09:55:40fowlnetworked entitty framework.. more coming https://gist.github.com/fowlmouth/c14544fccde769bd61aa
09:55:48fowlentity* lol
10:03:44*nequitans_ joined #nimrod
10:24:14*nequitans_ quit (Ping timeout: 255 seconds)
11:51:10*freezerburnv joined #nimrod
11:51:25*freezerburnv quit (Client Quit)
12:08:42*ehaliewicz quit (Ping timeout: 258 seconds)
12:14:41*untitaker quit (Ping timeout: 264 seconds)
12:19:37*untitaker joined #nimrod
12:46:43*dymk quit (Ping timeout: 240 seconds)
12:47:36*dymk joined #nimrod
12:49:03*OrionPK joined #nimrod
12:51:26*darkf quit (Quit: Leaving)
12:51:54*freezerburnv joined #nimrod
13:29:14EXetoCis {enumType.low .. enumType.high} supposed to include invalid values if enumType has holes?
13:34:48EXetoCwhat I'm trying to do is check if a value is a valid enumerator
13:42:38OrionPKfowl awesome :D
13:44:16*freezerburnv quit (Quit: freezerburnv)
13:47:01OrionPKfowl I was also thinking of doing an easier way to wrap C libraries; but I was poking around your repo and came across something that's pretty much half-way to where I would want it to be
13:47:03Araqimportcpp is ONLY really about producing foo->bar(x) or foo.bar(x)
13:47:35AraqOrionPK: importccp doesn't make sense for fields, just use importc for that
13:47:38OrionPKfowl you could make this into a new babel package https://github.com/fowlmouth/nimlibs/blob/master/fowltek/importc_block.nim
13:47:58OrionPKaraq oh? how would that work
13:50:05Araq = object
13:50:20Araq field {.importc: "field".}: cint
13:52:32OrionPKcan you add a bug for that?
13:53:04OrionPKmight not have time til monday to look at that
13:55:53Araqjust introduce your own todo.txt instead :P
13:57:50OrionPKhehe
13:58:08OrionPKI typically do my "TODOS" in the top of the main module
14:15:21NimBotAraq/Nimrod new_spawn f12a082 Araq [+0 ±2 -0]: added 'sortoutput' option to make output deterministic for threading tests
14:15:21NimBotAraq/Nimrod new_spawn 6470bd8 Araq [+1 ±2 -0]: 'parallel' proves array bounds
14:15:21NimBotAraq/Nimrod new_spawn ea16aca Araq [+0 ±2 -0]: correct code generation for tforstmt
14:18:19*dymk quit (Ping timeout: 240 seconds)
14:19:06*hoverbear joined #nimrod
14:21:16*dymk joined #nimrod
14:29:44*hoverbear quit ()
14:37:17*freezerburnv joined #nimrod
14:39:51EXetoCAraq: an enum range statement shouldn't include holes, right?
14:40:33AraqEXetoC: should we care? enum with holes are only for C interfacing
14:42:19*dymk quit (Ping timeout: 240 seconds)
14:43:07EXetoCwell, I like the idea of grouping related values, with or without holes
14:43:49*dymk joined #nimrod
14:43:53EXetoCfor a set of values used for types in a serialization format for example. I'm currently working on an msgpack interface
14:48:48*io2 joined #nimrod
15:05:04NimBotAraq/Nimrod new_spawn bea1761 Araq [+0 ±2 -0]: tester works again
15:05:56*bjz quit (Ping timeout: 255 seconds)
15:16:01Araqbbl
15:21:39*flaviu1 joined #nimrod
15:21:54*kunev quit (Quit: leaving)
15:23:17EXetoChaving to reference all members is a little error-prone, but I guess I'll do that for now when constructing sets
15:59:19*Jesin joined #nimrod
16:00:19*Matthias247 quit (Read error: Connection reset by peer)
16:07:50fowlOrionPK, these days push can be used so that the importc block doesnt have to
16:12:45*hoverbear joined #nimrod
16:12:52OrionPKyeah, but push is ugly
16:18:15*hoverbea_ joined #nimrod
16:19:15*hoverbear quit (Ping timeout: 252 seconds)
16:23:39*hoverbea_ is now known as hoverbear
16:26:01*skroll joined #nimrod
16:26:21skrollis there a way to pass --clibdir and --cincludes in nimrod.cfg at all?
16:29:48OrionPKpassL and passC?
16:30:09OrionPKhttp://nimrod-lang.org/nimrodc.html#passc-pragma
16:31:45*bjz_ joined #nimrod
16:31:58OrionPKfowl what do you think about a 'using' macro as well
16:32:23OrionPKi.e. using sf
16:34:39EXetoCskroll: it doesn't work?
16:35:35EXetoCmost switches seem to be supported, but maybe I've missed some detail in the source
16:36:53*bjz_ quit (Ping timeout: 264 seconds)
16:39:03EXetoCdid you try it? all these are accepted: --cincludes, cincludes, --clibdir and clibdir
16:39:47skrollEXetoC: i used --cincludes:/some/path and was told that it was expecting a parameter
16:41:46*DAddYE quit (Remote host closed the connection)
16:42:13*DAddYE joined #nimrod
16:46:19*DAddYE quit (Ping timeout: 240 seconds)
17:00:20*silven quit (Remote host closed the connection)
17:04:08*q66 joined #nimrod
17:04:08*q66 quit (Changing host)
17:04:08*q66 joined #nimrod
17:07:12*silven joined #nimrod
17:07:12*silven quit (Client Quit)
17:07:42*silven joined #nimrod
17:14:38EXetoCskroll: right. that's not very specific, but it seems to work if quoted
17:14:50EXetoCI mean the error message isn't
17:19:05skrollEXetoC: Ah, thankyou. That was what I needed
17:21:49*brson joined #nimrod
17:25:21EXetoCc(:)-<
17:29:57*DAddYE joined #nimrod
17:31:59*DAddYE_ joined #nimrod
17:35:09*DAddYE quit (Ping timeout: 252 seconds)
17:42:06*foodoo joined #nimrod
17:54:23*DAddYE joined #nimrod
17:57:53*DAddYE_ quit (Ping timeout: 276 seconds)
18:08:06*silven quit (Remote host closed the connection)
18:08:55*silven joined #nimrod
18:17:59*DAddYE quit ()
18:25:32*Jehan_ joined #nimrod
18:50:20*def-_ joined #nimrod
18:53:53*def- quit (Ping timeout: 252 seconds)
19:08:22fowlOrionPK, i'd rather have a local proc sf (ident:string):string = "sf::"&ident, then do {.importc: sf"Window".}
19:13:39OrionPKthe "using" could make a proc (or template) that does that
19:14:17OrionPKand maybe sf.window expression
19:14:26OrionPKinstead of strings
19:14:32fowlits only useful for types and static functions
19:15:30OrionPKfor example... your class could be class sf.CircleShape, header: graphics_h:
19:15:49OrionPKthen we just parse the dot expr passed as a namespace
19:16:34OrionPKthe usage should also reflect that, if possible.
19:16:57OrionPKbut its probably not. so nevermind ;)
19:17:44OrionPKthe definitions would just look cleaner w/o strings like "sf::CircleShape" imo
19:17:46fowlimportc: .. is clearer imo
19:17:57fowlyea
19:18:16OrionPKit looks clearer to you I think because you've been macroingi t up in nimrod for forever
19:18:31OrionPKit looks familiar to you
19:19:03OrionPKflexibility is good, but we should also have the ability to outline a C class with as little writing as possible
19:19:28OrionPKfewer quotes, fewer ::s, fewer "importc"s
19:19:30fowlwith clibpp the source is more readable than generated documentation
19:20:34OrionPKhopefully this eventually makes it easy for people to bring in bigger C++ libs
19:28:35fowlconst Vector2f & getSize () const
19:29:24OrionPKfowl http://pastebin.com/dYECMDpd
19:29:58OrionPK(pseudocode)
19:30:14fowlOrionPK, that it ends up as MyClass and not myNs.MyClass bothers me
19:30:47OrionPKyeah... ideally it would end up with MyNs.MyClass to use it, but idk how that would work
19:31:22OrionPKmyNS_MyClass is fugly
19:31:39OrionPKwe could have a "using" macro as well
19:32:30OrionPKhttp://pastebin.com/c4QNthMQ
19:33:55fowlthere is already a using statmenet
19:33:58fowlstatement
19:34:26OrionPKah yeah, forgot about htat
19:34:53OrionPKmaybe call it "namespace" instead of "using" then
19:35:06OrionPKor just "use"
19:35:24fowli think you're thinking too hard to get rid of a couple of colons
19:35:35OrionPKnot to get rid of colons as much as strings
19:36:12OrionPKand importcs
19:36:50fowlOrionPK, what if the class is __Foo, you'd need an importc option because you couldnt have that as a nimrod ident
19:37:06OrionPKthen that's fine
19:37:11OrionPKflexibility is fine
19:37:36OrionPKbut for something as common as namespaces, it makes sense to build an option for it
19:39:05*silven quit (Ping timeout: 255 seconds)
19:42:05fowlOrionPK, hows this sound https://gist.github.com/fowlmouth/3fc39c644ece1a233f09
19:44:07OrionPKthat works for your sfml, how do you generalize it?
19:45:04*filwit joined #nimrod
19:45:23fowlOrionPK, i guess the default would be astToStr(name)
19:45:34fowlyou could replace .s with ::s there too
19:46:37*silven joined #nimrod
19:49:16OrionPKif the `name` parameter is an expression, just take the last part as the class name IMO
19:49:39filwitOrionPK, you talking about OOP macros?
19:49:48filwit(just curious)
19:50:26OrionPKfilwit it's for a library that tries to make importing C++ libraries easier and C++ wrappers easier to read
19:50:42filwitah okay. sounds cool
19:52:55*silven quit (Ping timeout: 258 seconds)
19:53:01filwitreason i asked is cause it sounded like you where talking about something similar to expr handling my macros do... `class Foo: ...` (regular) `class Foo of Bar: ...` (inherited)
19:53:26filwiti like that a lot more than `class Foo, Bar: ...` (for odd reasons)
19:54:00*nande joined #nimrod
19:56:25EXetoChave you guys used GTK 3?
19:56:43OrionPKfowl https://gist.github.com/onionhammer/38ba78de10aac90a17df
19:57:01filwitEXetoC, nope
19:57:27OrionPKfilwit ah, dont know about your OOP stuff
19:57:47*Matthias247 joined #nimrod
19:57:50EXetoCI don't know much about it except that is uses CSS, which brings some advantages to it I guess, even though it has plenty of flaws
19:58:07EXetoCand some of the devs are being dicks apparently
19:58:09foodooCSS or Gtk3 has flaws?
19:58:58EXetoCCSS, but I suspect that you don't really mess about with boxes much
19:59:55fowlOrionPK, i still dislike it but its your project
19:59:59fowlyour call
20:00:07fowlbbl
20:01:29filwithmm... parameter constraints on nodeKind don't seem to work.. `macro class(head:expr{NkIdent}, ...)` (can still be called `class Foo or Bar`)
20:01:47filwitunless i'm not understanding how that's supposed to work.
20:01:55foodoocool. Seems like someone else has wrapped Gtk in the meantime :)
20:02:07OrionPKfowl what dont you like about it? just the imported name?
20:02:30OrionPKhow is it different from what you're doing other than specifying the "full::name" in quotes and an importc
20:03:24filwitah, nevermind.. it's probably cause the macro is {.immediate.}
20:05:41OrionPKfowl how about just a "namespace" item in 'opts'?
20:07:35OrionPKhttps://gist.github.com/onionhammer/38ba78de10aac90a17df
20:16:46*Jehan_ quit (Quit: Leaving)
20:20:27fowlOrionPK, class(X, header:.., importc:..) has all the info that you would need to define a c++ type without the macro, the body is where the convenience is
20:20:40*brson_ joined #nimrod
20:20:48*krusipo_ joined #nimrod
20:21:32*brson quit (Write error: Connection reset by peer)
20:21:35*Trixar_za quit (Excess Flood)
20:21:36*krusipo quit (Remote host closed the connection)
20:21:43fowlheader:importc: are recognizable if you've read nimrods manual
20:21:54*Trixar_za joined #nimrod
20:23:11fowlits not as obvious that ns.otherNs.class ends up named class
20:23:49*OrionPK quit (Ping timeout: 257 seconds)
20:23:49*nequitans quit (Ping timeout: 257 seconds)
20:24:41Araqhi clone1018 welcome. did you try the prebuilt Aporia?
20:24:58*nequitans joined #nimrod
20:25:08*silven joined #nimrod
20:26:01*reactormonk quit (Ping timeout: 252 seconds)
20:26:24*vendethiel quit (Read error: Connection reset by peer)
20:28:13*vendethiel joined #nimrod
20:31:06VarriountMeep. I'm back
20:34:42*nequitans_ joined #nimrod
20:35:51*bjz_ joined #nimrod
20:39:50foodooVarriount: wb
20:40:18*bjz_ quit (Ping timeout: 255 seconds)
20:47:41filwitis there an official way to export symbols to only specific libs beyond using a secondary lib to selectively import/export?
20:48:11filwiti'm fine with using a secondary lib (don't actually need this yet anyways), just wondering if there's something I'm unaware of.
20:48:21AraqI don't think so
20:48:29filwitokay. just checking.
20:48:34Varriountfilwit: You can use defines
20:48:47filwitwhat do you mean?
20:49:23Varriounthave the secondary lib defined a symbol, and have the primary lib export if the symbol is defined.
20:49:47VarriountThat assumes that the secondary library is under your control however.
20:50:06VarriountWhat's the difference between resize and realloc?
20:50:23filwitah yes, that's what i meant by "secondary lib" in my first question.
20:50:42clone1018Araq: I couldnt find a link anywhere to it.
20:51:21AraqVarriount: how can the secondary "define" a symbol for the primary lib?
20:51:56VarriountI don't know, I assumed there was some 'define()' compile time procedure.
20:52:10VarriountSomething the equivalent of -d: on the command line
20:52:24Araq.define got removed years ago
20:52:35Varriount:<
20:52:43Araqit fucks up incremental compilation
20:53:31VarriountAraq: Can't the config files add defines though?
20:53:46*Jesin quit (Quit: Leaving)
20:53:47Araqyes
20:54:24Araqbut foo.nimrod.cfg is not processed when you import foo.nim
20:54:39Araqonly when foo.nim is your main module
20:56:37VarriountHm. Won't that cause problems if foo is a library that needs special compilation rules?
20:57:27Araqno, it's a *config* system, not part of the language
20:57:53Araquse a pragma if you need "special" compilation rules
20:58:02*q66 quit (Quit: Leaving)
20:58:56*OrionPK joined #nimrod
21:00:23filwitAraq, sorry to bug you, i just remembered a question i had before: I thought you mentioned that Dynamic Binding in Nimrod was *slower* than VTables, but the docs make it seem otherwise, and indeed an inlinable dispatch tree sounds more optimized to me (assuming the inherit tree was small). Can you clarify that a bit? Did i hear you wrong, or where you only talking about specific cases being slower (aka, with a large hierarchy)?
21:00:58Araq(1) in theory it's faster
21:01:08Araq(2) in practice it's slower
21:01:35Araqreason for (2) is a non-inlined critical proc
21:01:59filwityou can't force-inline?
21:02:08filwit(or would that be even slower?)
21:02:15Araqdidn't try it
21:02:28Araqbut nimrod can optimize the call in ways C cannot
21:02:42Araqbecause we know its semantics in the compiler
21:02:52Araqand C compilers do not
21:02:54filwityeah. just make the thing a template and rerun benchmarks!
21:02:58filwit:P
21:03:04filwitthanks for the explanation though
21:03:25*q66 joined #nimrod
21:03:25*q66 quit (Changing host)
21:03:25*q66 joined #nimrod
21:08:36filwitoh that is dope... i wasn't aware of the `.=` operator before. what i always wanted!
21:08:58Araqit's new
21:09:15filwityeah, i remember y'all talking about it
21:09:28filwitis there a way i can specifically bind it to a certain word?
21:09:57filwittype Foo = object things: array[10, int]
21:10:34filwitproc `.=`(this:Foo, things:string{"things"}, ...)
21:10:35filwit?
21:11:02*q66 quit (Remote host closed the connection)
21:11:19VarriountWe have a `.=`?
21:11:22filwiti guess i could just statically check inside the proc and error on anything but "things"
21:11:34Araqyeah
21:11:45*Jesin joined #nimrod
21:11:52filwitVarriount: http://build.nimrod-lang.org/docs/manual.html#special-operators
21:12:02*q66 joined #nimrod
21:12:02*q66 quit (Changing host)
21:12:02*q66 joined #nimrod
21:13:36filwiter wait, my example is not what i want...
21:13:46filwitwhatever
21:13:55filwiti'll play around with it later
21:14:09VarriountHm. I'm starting to think we need a "winUtils" module to move all the small semi-wrappers scattered around the stdlib into one place.
21:14:36VarriountI keep spotting stuff like 'openHandle' duplicates
21:15:40*freezerburnv quit (Quit: freezerburnv)
21:20:18AraqVarriount: DRY is only a problem when things change
21:20:31Araqand the WinAPI doesn't change
21:21:23VarriountAraq: But I dislike copying, pasting, and then slightly altering the same sections of code.
21:22:21flaviu1Copying is never good, what if some version have a slight bug?
21:22:35Varriount^ What I was about to say
21:22:55Araqwhat if it has a bug and it's not triggered in its usage contexts?
21:23:13Araqwhich is likely cause it's been tested, right?
21:24:38flaviu1What if the usage contexts change? The bug may be triggered then.
21:26:14Araqhow about fixing real bugs instead?
21:26:34Araqyou know ... things that happened in reality
21:28:10Araqlike the 2 show stopper bugs that kept that guy from contributing a decent library to nimrod
21:36:41Araq(also: what if the new version has a new slight bug? why are some 'what if's more valid than others?)
21:38:18EXetoCwhat lib is that?
21:43:57Araqsome "terminal only" toolkit
21:51:09flaviu1If I was to deduplicate some code, I'd take the version with the cleanest code and use that as the canonical version. If it has a bug, I can fix it once and have it fixed all over the codebase.
21:51:36EXetoCjust batch fix with regex :p
21:52:07filwit*regex has bug, fuck up entire codebase*
21:52:25flaviu1No worries, git is a DVCS
21:52:49filwityeah i know, just a joke about "time savers"
21:52:51filwit:P
21:53:16flaviu1Yeah, the regex idea is stupid, but I think it was meant as a joke
21:53:36flaviu1What about AST pattern matching? Match the broken code and fix it :P
21:53:41Araqflaviu1: this has been tried at a large scale. it's called "Linux package management". It's much more fragile and work than accepting a bit of code / libraries duplication.
21:54:05AraqIMHO it simply doesn't work and never will.
21:54:19flaviu1Huh? I've had absolutely no problem with linux package management, ever.
21:54:41flaviu1Anyway, this conversation is unlikly to go anywhere productive
21:54:51Araqevery single Linux broke due to package management for me
21:55:41filwitas apposed to Windows where things don't break because they simply don't update?
21:56:31flaviu1I've had some issues with package management, but since arch, I haven't had any. I get the latest and greatest, and the least over-engineered package manager there is
21:56:44Araqin a nutshell: yes.
21:57:00*Varriount backs away from the soon-to-be mob
21:57:01filwitAraq: look into the Nix package management
21:57:22flaviu1Nix is very nice
21:57:55filwityeah, though i really don't have any problems with Arch either, it does occasionally break due to it's under-engineering
21:58:05filwitit's easy enough to fix when it does tho
21:58:08*hoverbea_ joined #nimrod
21:58:10filwitand it's pretty rare
21:58:30flaviu1Yep, it really follows the unix way and has no magic. all the configuration is in text files, no blobs
21:58:44filwitthough I'm thinking about eventually switching to Manjaro or Chakra to support a more user-friendly bleeding-edge rolling distro
22:00:14filwitin fact, Araq, look into Chakra linux. They use pacman like Arch, and have bleeding-edge user software, but they roll core software much slower and only focus on KDE DEs.. I haven't tested it yet, but it sounds pretty stable.
22:00:54filwitthen again, I'm a KDE fan now, so if you really love your Gnome DE then that's an issue.
22:01:01fowlfilwit, i want to try LXQT
22:01:28filwitfowl: that the next thing from the LXDE/RazorQt merge?
22:02:17*hoverbear quit (Ping timeout: 276 seconds)
22:02:47filwitflaviu1: i'm setting up the Kate git, but want to know if I should export the entire schema file for each color set, or just the Nimrod schemes. The entire Scheme file might be nice really, but takes up a ton more.
22:03:18fowlfilwit, yea
22:03:32filwitflaviu1: also.. we need some sort of license on this you think?
22:03:49flaviu1filwit: Size doesn't matter too much, I'd suggest that you just put the whole schema into it
22:03:57filwitflaviu1: it's small enough to where i would like to just not have one, but idk about these things...
22:04:03VarriountAraq: Nimrod has given me a fresh and bold appreciation of just how helpful closures are.
22:04:22flaviu1filwit: BSD or MIT or maybe even Do Whatever The Fuck You Want Licence
22:04:26filwitflaviu1: okay. That way we can fix up the colors for other common languages too (xml, C/C++/C#, JS, etc)
22:04:46*Joe_knock joined #nimrod
22:04:53filwitflaviu1: yeah i'm thinking the DWTFYW for this.. always wanted to use that one anyways :)
22:06:01flaviu1The indentation plugin will have to be GPL since its a modified version of the one for python
22:07:03Joe_knockDo any of you use the nimrod IDE?
22:07:47VarriountJoe_knock: Araq and dom96 do.
22:08:16VarriountMany of us just use our own preferred IDE's with Nimrod plugins.
22:08:24filwitflaviu1: i could just make the whole thing GPL then, it's up to you really (i really don't care either way)
22:08:44Joe_knockI assume there's a plugin for Sublime Text?
22:08:50filwityes
22:09:03flaviu1I like liberal licenses, so I'd say to use DWTFPL except where noted otherwise
22:09:22filwitJoe_knock: https://github.com/Araq/Nimrod/wiki/Editor-Support
22:09:26flaviu1Joe_knock: There's a plugin for practically any editor you can find
22:09:44filwitflaviu1: k
22:11:10dom96In regards to package management on Linux, I agree with Araq.
22:11:26dom96I still don't understand how the hell pacman managed to remove initscripts from my install.
22:12:33*hoverbear joined #nimrod
22:12:36Araqeven if it works "flawlessly" you managed to ignore my 2nd argument: an incredible amount of work goes into package management in Linux
22:14:04dom96I wonder if there are any distros where there is no package manager
22:14:29EXetoCmost likely
22:14:33EXetoCsounds like fun
22:14:37dom96Actually that would require every single developer to package all the libraries together with their applications just like on Windows.
22:14:48dom96So nothing would work on that distro.
22:14:49*hoverbe__ joined #nimrod
22:14:55Joe_knocksounds like 2% of the linux community
22:15:38filwitdom96: init scripts disappearing sounds like a pacman bug.
22:15:42fowldom96, you could get by with just SymlinkProgram from gobolinux
22:15:48filwitdom96: not that you should have init scripts to begin with
22:16:12dom96filwit: Well, Arch just stopped booting with some error which I can't even remember.
22:16:19dom96something about run level and inittab
22:16:29Joe_knockperhaps you can see how a normal c program would be packaged for linux and mimic that, dom96
22:16:29dom96Googling suggests that initscripts is gone
22:16:32filwitfowl, or use the Nix package manager
22:16:35*hoverbea_ quit (Ping timeout: 276 seconds)
22:16:56filwitdom96: sounds like something from a few years ago before systemd
22:17:04fowlfilwit, except that package manager is a package manager
22:17:07*reactormonk joined #nimrod
22:17:20filwitfowl, yes, but it's not a "traditional" one
22:17:29EXetoCdom96: what do you mean? just install manually
22:17:32EXetoCwill only take ages
22:17:51filwitfowl, updating software makes duplicates so you can roll-back and maintain links to multiple verison of software
22:18:07dom96EXetoC: I will need to boot into a live cd and do some magic there
22:18:10*dom96 can't be bothered
22:18:32*hoverbear quit (Ping timeout: 276 seconds)
22:19:00filwitalso, Nix package manager doesn't rely on any repo
22:19:09filwiti mean, it *kinda* does
22:19:36filwitbut it's basically just "install manually", it just helps you maintain things
22:19:44filwitat least, that's how i understand it
22:19:55filwitin reality i've never used the thing.. :\
22:21:23EXetoCthe process is about 1% manual yes :p
22:21:25filwitflaviu1: git name? "Nimrod Kate Support"? "Nimrod on Kate"?
22:21:52Araq"Kate loves Nimrod"
22:21:53flaviu1kate-nimrod maybe?
22:22:07filwitkate loves nimrod isn't bad
22:22:19Joe_knockKaterod?
22:22:21filwitno
22:22:23filwitlol
22:22:25Joe_knockkate-rod
22:22:27flaviu1ok, that's a pretty good name then
22:22:38flaviu1'kate-loves-nimrod'
22:23:03filwitk
22:23:04Joe_knockperhaps we should try the reverse. Just like sublimes. "nimkate" ??
22:23:16filwithmm...
22:23:29dom96I should add a feature to NimBot which discourages any name which begins with the 'nim' prefix.
22:23:47dom96:P
22:23:55filwitnah, 'nimkate' is too "this is it's own thing, not a buch of Kate plugins for Nimrod support"
22:23:55Joe_knockaah!!
22:23:58dom96But actually in this case, it's fine.
22:24:20filwiti like 'kate-loves-nimrod'
22:24:31dom96When you're creating something not directly related to Nimrod but written in Nimrod then please don't use that prefix :P
22:24:46flaviu1dom96: Like nimforum? :P
22:25:07dom96flaviu1: sshshh
22:25:15Joe_knockI guess a more descriptive name for plugins makes sense. There should just be consistency across the names. kate-loves-nimrod, sublime-loves-nimrod, geany-loves-nimrod, vim-loves.nimrod
22:25:16filwitdom96: it's directly related to Nimrod but isn't written in Nimrod... so..
22:25:26dom96filwit: Yeah, it's fine.
22:25:43flaviu1I don't really like
22:25:50flaviu1'nimkate', too bland
22:25:57dom96Why don't you guys help me with Aporia? :P
22:26:10dom96It's way more fun!
22:26:14filwitcause Kate man, cause Kate..
22:26:24filwittoo many good feature here
22:26:33flaviu1Because its easier to use an amazing piece of software and modify it over implementing all the awesome features again.
22:26:39filwiti think i can port the colors over now tho
22:27:14fowlOrionPK, mind if i add a nodecl option? I want to use the body stuff for a typeclass
22:27:34Joe_knockI think the Aporia IDE would actually make an awesome first tutorial for nimrod programmers. "Build a nimrod IDE to write nimrod code"
22:28:21dom96I think that may be a bit too complicated for a first tutorial.
22:28:35dom96But actually
22:28:41dom96A simplified version may work well
22:28:46dom96Joe_knock: I like your idea.
22:29:07*dom96 should stop thinking out loud
22:29:35filwitI think Nimrod should get that "Nimrod by Example" (like the Rust one on reddit the other day)
22:29:48dom96filwit: flaviu1 is working on precisely that
22:29:57filwitoh really? Awesome!
22:30:06fowlhttp://flaviut.github.io/nimrod-by-example/
22:30:07flaviu1http://flaviut.github.io/nimrod-by-example/
22:30:19fowljynx
22:30:21EXetoCfilwit: has been suggested before
22:30:23filwitthat was really clear and helped me understand Rust more (which made me also not like the language even more)
22:30:23flaviu1But right now I'm looking to switch away from gitbook, I'm not really a fan
22:30:29Joe_knockdom96: if you want only noobs to start out with nimrod and get a glut of "I'm halfway there but forgot about nimrod 6 months ago", then it is complicated. But if you're targeting "Hey C guy, you've been doing this for 10 years, now let me show you how much nicer things get with Nimrod", then you'll have a possible contributor after the tutorial
22:30:30EXetoCnow we just need someone who wants to spend time on it :p
22:30:36EXetoCyeah saw that one
22:30:37filwitfowl, flaviu1: thatnks i'll take a look
22:30:40fowlflaviu1, it looks nice
22:31:03filwithey, this is put together very well, flaviu1
22:31:14dom96Joe_knock: I think we could include this in flaviu1's nimrod by example book.
22:31:16flaviu1fowl: I'm looking to switch away from gitbook though, I don't like the idea of using node.js
22:31:30flaviu1but I don't really know
22:31:31dom96Joe_knock: Together with some other GTK/GUI examples
22:31:37Joe_knockflaviu1: Ever considered flat files and static hosting?
22:31:55flaviu1It is a set of flat files, but the generator is nodejs
22:32:19fowlflaviu1, check out ipsum genera?
22:32:35filwitflaviu1: although, it seems a bit too complicated compared to the Rust one (aka, it drops you into `let d = 0xFF' without first giving any code examples of simpler things)
22:32:51Joe_knockflaviu1: I can help you by generating flat files with python. Perhaps mimicking a static generator from python into nimrod can give us another piece of software "static file generator for nimrod".
22:32:57filwitflaviu1: i'm sure you're not done yet tho
22:33:06flaviu1Nope, not nearly done
22:33:12flaviu1But keep feedback comming
22:33:20filwitflaviu1: just that I liked how the other one literally starts off with "hello world" and builds from there.
22:34:01filwitflaviu1: okay cool. it looks very clean overall. Will be worth a lot once finished and dropped on Reddit :)
22:34:52*foodoo quit (Remote host closed the connection)
22:35:21Joe_knockPerhaps we can solve a really really important question while we're brainstorming. "What is the most easiest tutorial after hello world?" . Answers welcome.
22:36:32*freezerburnv joined #nimrod
22:36:34dom96addition, subtraction, multiplication etc
22:36:40AraqJoe_knock: a parallel "hello world" is the standard now
22:37:07filwithmm... will git accept "Kate-<3-Nimrod" instead of "Kate-Loves-Nimrod"?
22:37:09dom96haha. Yeah, you need to utilize all of them CPU cores for that hello world
22:37:22dom96filwit: Use a Unicode heart
22:37:24fowlJoe_knock, the next step is probably a virtual-machine driven by neural-nets
22:37:29*bjz_ joined #nimrod
22:37:29flaviu1Isn't there a lock on stdout anyways?
22:37:46filwitdom96: where can i find that?
22:38:06flaviu1
22:38:09dom96
22:38:25filwitdom96: not really sure i like the idea of that... will be hard to cd into with terminal...
22:38:27dom96hrm, mine is different.
22:38:34filwityeah i was just gonna say..
22:38:38flaviu1☙♡❣❤❥❦❧
22:38:50Joe_knockif we can define a roadmap for a step-by-step big application using mini-tutorials, by the end of the tutorial, the learner could have built a <<something important that is applicable to nimrods power -- Key Suggestions>>.
22:38:53flaviu1dom96: Yours is Heavy black heart, mine is Black heart suit
22:39:02Araqfilwit: no. why? kate -TAB- does the trick
22:39:09dom96flaviu1: right
22:39:25dom96Araq: What if you have two dirs beginning with 'kate'?
22:39:27filwitAraq: i guess, i just don't use auto-complete in terminal
22:39:36Araq:O
22:39:44Araqhow do you survive?
22:40:08dom96Araq: You have to move your mouse, and select the text, and copy, and paste, and then hit enter
22:40:08flaviu1filwit: Use the command history
22:40:15Araqdom96: then you scroll through the list of candidates
22:40:28filwitspeaking of.. can we please please get color highlighting in Nimrod output?
22:40:44Varriountfilwit: Which output?
22:40:55flaviu1nimrod c I assume
22:40:55filwiterrors, hints, warnings, etc
22:40:59Araqno way, filwit
22:41:10filwitwhyyy?
22:41:32Araqwe can get a --useHtml switch though
22:41:43dom96Hell yes
22:41:59filwitwhat? so i have to drop a file into a browser just to see the errors?
22:42:00dom96As someone who uses a webkit terminal this is perfect!
22:42:07filwitoh..
22:42:14dom96/s
22:42:17dom96:P
22:42:19filwitthat's not very standard i think..
22:42:32filwitbut seriously, why not regular terminal colors?
22:42:37filwitwhat's wrong with them?
22:42:50Joe_knockyou'll end up with a nimrod version of vim then, filwit.
22:43:02Araq1) they are implemented with escape sequences on Linux
22:43:08filwitclang has awesome colors, and it makes debugging much easier
22:43:16Araqpipe the output and you'll see the problem with this hack
22:43:29*bjz_ quit (Ping timeout: 264 seconds)
22:43:44Araq2) colors depend on your current background color settings etc or they might have no contrast
22:43:50dom96Araq: What's the big deal, just add a flag for it to be enabled explicitly.
22:44:13filwitso just make `koch boot -d:termColors`
22:44:18dom96#2 is actually a very good argument
22:45:09filwit#2 isn't a good argument. more people have good terminal colors, and if colors are optional, then they will just benefit those who know what they're doing
22:45:18filwitmost** people
22:46:06EXetoCyou can have a runtime switch too
22:46:13filwit^
22:46:28Araqsometimes I wonder if you guys have ever read a book... :P
22:46:48filwiti read sci-fi and fantasy all the time :P
22:47:05EXetoCI should read more
22:47:08Araq(no, comics do not count...)
22:47:10fowlcan we please instead work on an LCARS interface?
22:47:47fowlhttp://fc01.deviantart.net/fs70/f/2012/259/e/7/e73e45a04e3c4ea7f556d3e0aa08fe78-d5eykfe.png
22:47:48filwitbooks are from before the internet, and thus their arguments are old and irrelevant
22:48:02Araqfilwit: but ok
22:48:10Araqimplement it and make a PR
22:48:18filwitokay :)
22:48:22Araqbut make it all optional via -d:termColors
22:48:32filwitruntime you mean?
22:48:42filwit(not a koch option, but a nimrod one)
22:48:55Araqa koch option
22:49:01filwitokay
22:49:10Araqand use a different color for compile-time 'echo'
22:49:25Araqso that it in fact becomes a useful feature ...
22:49:29Araq:P
22:50:05filwiti was really only going to color the 'Hint', 'Warning', and 'Error' text, but I'll play around with it a bit.
22:50:08EXetoCthat'll be easy to locate
22:51:04filwitHint (green), Warning (yellow), Error (red).. guess i'll make compile-time echo blue text or something
22:51:18Joe_knockfilwit: +1
22:52:03EXetoCfilwit: kate?
22:52:09filwitone sec
22:52:13EXetoCsomeone wanted to write a plugin for kdevelop I think
22:52:46EXetoCit's important to focus on a platform that has plenty of plugins
22:53:07filwitthat would be nice, but Kate has the same suggest feature, and KDevelop is really mostly about CMake project management and Debugging really (which don't really apply to Nimrod)
22:53:20Joe_knockWouldn't sublime be the most ideal platform?
22:53:21EXetoCdom96: and so you miss out on much by focusing on aporia
22:53:56dom96Aporia is the only editor with the state of the art style insensitive search
22:54:01dom96:D
22:54:04filwitJoe_knock: probably because it's cross platform. But it's not open-source, and Kate is just better IMO
22:54:57EXetoCit costs money too :p
22:55:49filwitall of the good features of Sublime, Kate has, but it's open. Only downfall is I'm sure it's not great on Windows/Mac (if it even works there at all)
22:56:13EXetoClight table is getting a lot of traction
22:56:20Joe_knockKate is restricted to the KDE platform (unless the developer is prepared to install all the KDE parts too).
22:56:34filwitEXetoC: yeah i still haven't tried that one
22:57:03filwitJoe_knock: not really. The same could be said about Calligra Krita, and that works well on Windows
22:57:17Joe_knockfilwit, perhaps start with vim or emacs?
22:57:23EXetoCanyway, we should discuss this on the forum
22:57:53*nequitans_ quit (Ping timeout: 264 seconds)
22:58:07filwitKate♥Nimrod
22:58:35filwitor
22:58:40filwitKate❥Nimrod
22:58:59filwitKate❤Nimrod
22:59:00*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
22:59:10EXetoCdoes it have many plugins compared to kdevelop for example?
22:59:19EXetoCanyway, we should of course support multiple editors if possible
22:59:26filwitKate has full D suggest features
23:00:29EXetoCI'm curious to know what skrylar meant when he said that Andrei was responsible for an exponential increase in ICEs, because he doesn't really work on the compiler
23:00:56EXetoCthe D compiler that is
23:01:08filwitprobably the new allocator stuff, but that's just a guess
23:03:48EXetoCthey needed additional language features for that?
23:04:12filwitidk, i never really took a look at it
23:07:27VarriountAndrei?
23:09:33filwitokay, flaviu1 (and those who use the Kate colors). I have 4 'special' condition highlighted procs: assert, echo, new, quit
23:09:38filwitshould i leave them?
23:13:15EXetoCwho asked about resize and malloc?
23:13:50dom96We need to fix idetools btw
23:14:09EXetoCthe differences should be documented
23:14:20dom96Not sure if that's easy or not
23:15:12EXetoCI mean they are
23:16:27NimBotAraq/Nimrod new_spawn 9953e0b Araq [+0 ±5 -0]: tdisjoint_slice2 works
23:17:30dom96good night
23:18:04filwitlater
23:18:16filwitcrap, do unicode character not work in URLs?
23:18:37filwitfatal: unable to access 'https://github.com/PhilipWitte/Kate♥Nimrod.git/': The requested URL returned error: 400
23:19:22filwit:-\
23:20:33filwitpfft.. nevermind..
23:25:24filwitwell that's lame, Github won't let me use the unicode heart and wants to name it "Kate-Nimrod"
23:25:29filwitoh well
23:28:20VarriountPhew. Working around deficiencies in system API's is not easy.
23:30:06filwitwell i'm either going to name it "nimrod.kate" (like the LightTable & Atom) or "NimKate" (like Sublime)
23:30:21filwitanyone have a preference before i choose one?
23:30:24Varriountfilwit: What about "Nate"?
23:30:28*hoverbe__ quit ()
23:30:38filwitnah, it sounds too much like it's own product
23:30:49VarriountWell then, I prefer NimKate
23:30:50filwiti just want this to so "Nimrod Kate Support" but in less words
23:31:00filwitk, i'm leaning towards that one as well too
23:31:18filwitespecially if the name eventually changes to Nim (not sure that'll happen, but if it does, it fits)
23:32:03EXetoCnim-lang would be more distinct
23:32:28EXetoCbut a nim prefix is fine either way imo
23:35:03filwitalready made it NimKate: https://github.com/PhilipWitte/NimKate
23:35:39*darkf joined #nimrod
23:36:40EXetoCdoes kate have a good vim plugin?
23:36:55flaviu1EXetoC: The closest you can get without using vim
23:37:25flaviu1http://docs.kde.org/stable/en/applications/kate/vi-input-mode-chapter.html
23:37:30filwitnever used Vim mode in Kate, but i've heard good things
23:38:19filwitflaviu1: updated the repo, so awaiting your PR now. Going to put a couple of screenshots in the readme
23:38:24flaviu1Ok
23:38:55*Joe_knock quit (Quit: Leaving)
23:42:59flaviu1filwit: By the way, I think that spellcheck should be on for Comments, Strings, TypeDefs, and ProcDefs, although probably not yet as Kate doesn't support breaking up identifiers into words before spellcheck
23:43:26filwityeah that's why i turned it off initially
23:44:07filwitlicense text: All code is released under WTFPL unless explicitly stated otherwise. See LICENSE for more information.
23:44:16filwitin readme
23:44:37filwitso that you can put your code under GPL
23:44:56filwitdunno if that's common or not, just made it up (which is why i'm posting about it)
23:45:14flaviu1That sounds fine.
23:46:35*Matthias247 quit (Read error: Connection reset by peer)
23:46:40EXetoCMIT, BSD, X11 or something plz ^_^
23:46:52flaviu1WTFPL is even more liberal
23:47:55flaviu1By using it, you make fun of licenses while simultaneously essentially placing your work into the public domain
23:48:16filwitwhich is exactly what i want :}
23:49:34EXetoCthen GPL was mentioned, but ok maybe I missed something
23:50:45filwitEXetoC: flaviu1's code is a copy of some Python code that is GPL, so that has to keep GPL
23:50:59filwitfork** of
23:51:03EXetoCok
23:51:40filwitgoin to take some screenshots, brb
23:51:42*filwit quit (Quit: Leaving)