<< 19-12-2013 >>

00:01:47NimBotAraq/Nimrod vm2 c0fd5ff Araq [+0 ±1 -0]: case expression with discardable result works
00:01:47NimBotAraq/Nimrod vm2 82d96e5 Araq [+21 ±1 -0]: added libffi for win support
00:11:24fowlwinning support
00:11:58OrionPKMftw support
00:40:42*ddl_smurf quit (Quit: ddl_smurf)
00:51:40*brson quit (Quit: Lost terminal)
01:01:52*brson joined #nimrod
01:11:19*q66_ is now known as q66
01:35:22*ics joined #nimrod
01:40:09EXetoCåäåäåä
01:41:08fowlhey did nimbot get fixed
01:43:43brihatThere was some discussion about stderr recently. Was on HN: http://spinellis.gr/blog/20131211/
01:44:13brihattime to sleep, bye -->
01:44:39*brson quit (Remote host closed the connection)
01:45:37*brson joined #nimrod
01:46:05*brson quit (Client Quit)
01:46:34*brson joined #nimrod
01:58:01*xenagi joined #nimrod
02:33:34*Demos quit (Quit: Leaving)
02:41:05*Demos joined #nimrod
02:50:34*darkf_ joined #nimrod
02:52:38*darkf quit (Ping timeout: 240 seconds)
03:02:52*brson_ joined #nimrod
03:03:06*darkf_ is now known as darkf
03:05:09*brson quit (Ping timeout: 272 seconds)
03:31:23*BlueProtoman joined #nimrod
03:31:56*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
03:32:13BlueProtomanMy future algorithms gave Nimrod the green light. Now I can't decide whether to start learning Nimrod, continue porting Ash to C++, or play video games.
03:32:18BlueProtoman*future algorithms professor
03:32:57darkfBlueProtoman: make video games in Nimrod
03:33:16BlueProtomandarkf: I have Haxe for that, honestly.
03:34:12darkfBlueProtoman: so do I, but I don't like Haxe's object system
03:34:32BlueProtomandarkf: Well, I'm not you, so there you go.
03:36:12DemosHaxe seems so pointeless to me
03:37:16BlueProtomanDemos: Haxe, via OpenFL, compiles to mobile without having to fuss around with their SDKs.
03:37:48DemosI have no idea why I dislike haxe so much, I guess I figure that it is some somewhat pointelss abstraction, but if it works for mobile games than fine
03:38:04DemosI hear Flex is no cakewalk, so Haxe may be a good alternitive
03:38:33BlueProtomanDemos: It works if you want the same game on a bazillion different platforms. If you want something low-level, Nimrod may be more up your alley.
03:39:19Demosyeah, but nimrod is getting there!
03:44:43DemosI love how Arch updates tend to have a total size < 0
03:45:05darkfDemos: Haxe provides a language similar to AS3/C#/whatever with great portability and decent game libraries
03:45:26darkfits FP support is there but clunky because of objects everywhere
03:48:01Demosyeah, my favorite features of nimrod involve a depatrute from the c++ type objects
03:48:14BlueProtomandarkf: FP? Floating point?
03:48:18Demosclearly it is too late for spelling
03:48:33Demosfunctional programming, whatever that happens to be at this particular moment
03:49:04BlueProtomanDemos: Ah, right. Well, they're trying. At least it's easy to treat functions and classes like objects.
03:49:16BlueProtomanAnd to make anonymous functions, too.
03:49:51darkfis there any sane graphics or game libraries for Nimrod right now? if not i'm just going to throw a layer over SDL
03:50:18OrionPKMhorde3d maybe
03:50:20DemosI think fowl wrote some kind of Artemis like thing
03:50:30OrionPKMbut the wrapper might be out dated
03:50:35Demoshorde3d did not look that great to me
03:50:53darkfooh, Artemis-style ECS in Nimrod? :D
03:51:29BlueProtomandarkf: Yeah, that ought to make using Nimrod's graphics libraries in the raw much smoother. May not even need a full game engine.
03:51:41BlueProtomandarkf: As it happens, I'm porting Ash to C++.
03:52:10darkfBlueProtoman: any idea if he has it online/open source anywhere? and cool :) how's that going?
03:52:16DemosI mean writing an ECS is pretty easy, esp if you dont care about perf
03:52:27Demosand artemis does not care much about perf afaik
03:52:39DemosI think he does
03:52:51darkfI care more about the design/architecture
03:52:54BlueProtomandarkf: What do you mean "he has it online/open source anywhere"? Also, my Ash port is coming along nicely, I'm going to use my port for a game programming class next semester.
03:53:14BlueProtomanI'll put the source on Github soon.
03:53:25darkfBlueProtoman: like, if he has it available online on github or somewhere :P
03:53:39BlueProtomandarkf: What's "it"? Artemis? Probably.
03:53:59BlueProtomanI'm focusing on getting Ash++ working before I make it fast.
03:54:14Demoshttps://github.com/fowlmouth/nimlibs
03:54:33Demoswhat is Ash?
03:54:46*brson_ quit (Quit: leaving)
03:54:57darkfooh awesome
03:55:05BlueProtomanDemos: Another component-entity system. Dunno how it compares to Artemis, I haven't used it.
03:55:47DemosI am current reworking my ECS in c++ to include plain vectors (well strange dynamic typed vectors that are kinda strange) of value types and "double buffering" for all the game logic
03:56:02DemosI had ye olde hash table of typeids before
03:56:48BlueProtomanDemos: What's wrong with a hash table of typeids? It's what I'm using. (Well, actually, a hash table of type_indexes, wrappers around typeids.)
03:56:57Demosbad cache locality
03:57:04Demosyeah I did the same
03:57:19Demosharder to use compoents and systems written in other langs as well
03:58:08BlueProtomanDemos: Is there a way to improve the cache locality while maintaining an associative interface? (I.e. I can do getComponent[AccelerationComponent] rather than having to do getComponent[6])
03:58:10Demosmy new thing has a class that wraps a vector<unsigned char> and takes void*s and inserts them, as long as the types are trivial it works pretty well, if not you have a problem since copying the stuff every frame starts to become a problem
03:58:24Demosstore them sparsely
03:58:39BlueProtoman?
03:58:47BlueProtomanHow does that help?
03:59:14Demosso for some systems (rendering and physics among others) you can just blast through the arrays of components. For other systems you can say components[componentTypeInt][entity]
03:59:45BlueProtomanI don't follow.
04:00:28darkfyay I made the compiler crash by adding a semicolon
04:00:34Demosyour top level array is size N where N is the "highest" component you have added
04:00:58Demosso if I make 150 components and add the last one to the world the array will be of size 150
04:01:33BlueProtomanDemos: Go on.
04:02:40DemosOK so each entity has a unique ID, again created sequencially, so if you have an array of components you just access the component at that index to get the one associated with a given ent
04:02:51Demosyou could also store them all packed and just binary search em
04:03:27BlueProtomanSo store all components of a given type together, and give each entity a *pointer* to a given component?
04:03:38Demosentities are not a thing
04:03:45Demosyou dun need entities
04:04:22BlueProtomanRight. Well, I'm going to bed, so good night!
04:04:31*BlueProtoman quit (Quit: Leaving)
04:23:02*xenagi quit (Quit: Leaving)
05:14:10*Demos quit (Quit: Konversation terminated!)
05:14:18*ics joined #nimrod
06:17:55*ics quit (Ping timeout: 245 seconds)
06:20:01*ics joined #nimrod
07:14:39*darkf_ joined #nimrod
07:15:27*darkf quit (Ping timeout: 240 seconds)
07:15:33*darkf_ is now known as darkf
07:32:54*ddl_smurf joined #nimrod
07:32:59*rndbit quit (Excess Flood)
07:33:45*rndbit joined #nimrod
07:33:45*rndbit quit (Excess Flood)
07:35:14*rndbit joined #nimrod
07:35:15*rndbit quit (Excess Flood)
07:36:16*rndbit joined #nimrod
07:36:16*rndbit quit (Excess Flood)
07:36:48*rndbit joined #nimrod
08:06:10*ics quit (Ping timeout: 252 seconds)
08:08:31*ics joined #nimrod
08:16:37*shodan45 joined #nimrod
08:20:24shodan45anyone use nimrod with fastcgi?
08:21:53shodan45or wrap an existing fastcgi library?
09:09:47Araqshodan45: we lack a fastcgi wrapper but imho fastcgi lost against scgi anyway
09:10:14Araqour services (forum etc.) use scgi on top of nginx
09:13:13shodan45Araq: oh? interesting... I've only seen fastcgi "in the wild", never scgi
09:14:58shodan45(deploying python and (gasp, barf) PHP web apps)
09:17:20shodan45I'm currently reading the de-facto standard python library for fastcgi to see how complex it is
09:17:39shodan45so far it looks easy
09:18:42shodan45I'll check out scgi before attempting to write a nimrod fastcgi lib
09:28:53AraqI started a fastcgi lib once but it was too boring, lost of unnecessary binary blob parsing crap
09:29:33Araqscgi showed this is all entirely unnecessary and over-engineered
09:29:40Araqimho anyway
09:31:09shodan45Araq: seems the biggest flaw(?) with scgi is that it has to re-open a connection every time a client connects
09:31:23shodan45or that could be complete crap :)
09:32:16shodan45where fastcgi reuses & multiplexes everything over 1 connection
09:32:58shodan45(again, that could be complete crap... I only started digging in to this a few hours ago)
09:38:49*BitPuffin quit (Ping timeout: 252 seconds)
09:39:44shodan45aaaand I just noticed that it's 3:30am
09:40:05shodan45yay for 4 hours of sleep -_-
09:44:11Araqsounds like you're in the right channel :P
09:55:33*CarpNet joined #nimrod
10:29:04*psquid quit (Quit: work)
10:38:40*Trixar_za quit (Ping timeout: 245 seconds)
10:39:02*Trixar_za joined #nimrod
10:46:47*faassen joined #nimrod
11:56:52*BitPuffin joined #nimrod
12:34:31*darkf quit (Quit: Leaving)
13:14:32BitPuffinahoy maties
13:22:35fowlyo
13:26:07*BlueProtoman joined #nimrod
13:28:12BlueProtomanI'm trying to compile Nimrod on Ubuntu 13.10, but I get some linker errors. http://pastebin.com/ZD8cyzFY Any tips?
13:28:45fowlBlueProtoman, use the version from github
13:30:06BlueProtomanfowl: OK, trying now.
13:40:54*Hannibal_Smith joined #nimrod
13:44:27BlueProtomanOk, it built. Now how do I install this alongside all the other software on my system?
13:45:27BitPuffinBlueProtoman: just add it to your path instead
13:45:31BitPuffinmakes it easier to maintain
13:46:14BitPuffinin your .favoriteshellrc do `export PATH=/path/to/the/git/repo/bin:$PATH`
13:46:19BitPuffinprobably .bashrc
13:46:24BitPuffinin ~/
13:49:19EXetoCusually it's in the profile config, but that should work
13:52:34BitPuffinEXetoC: I don't use that damn thing xD
13:56:45fowlBlueProtoman, nvm what he says, he's newb, just make a symlink
13:57:17BlueProtomanfowl: Too late, Nimrod's in my home directory
13:58:48BlueProtomanNow I'm trying to install babel...
13:59:40fowlbest way to do that is compile babel then babel install babel
14:04:38BlueProtomanOk, now lastly I'm trying to install aporia.
14:17:29*achim joined #nimrod
14:28:29*gradha joined #nimrod
14:32:35fowlbabel install aporia
14:35:51BitPuffinfowl: symlink ftl
14:38:02*ics quit (Ping timeout: 265 seconds)
14:42:48*ics joined #nimrod
14:45:15*vendethiel quit (Ping timeout: 252 seconds)
14:48:22*shodan45 quit (Quit: Konversation terminated!)
14:48:33*vendethiel joined #nimrod
14:49:52*vendethiel quit (Read error: Connection reset by peer)
14:53:38BlueProtomanfowl: Not working, I get "FAILURE: Specified directory does not contain a .babel file."
14:54:49gradhaBlueProtoman: trye babel install aporia#head
14:55:10BlueProtomangradha: aporia.nim(11, 7) Error: cannot open 'glib2'
14:56:43*vendethiel joined #nimrod
14:56:45gradhadom96: forgot to add the gtk2 dependency, babel install gtk2 then
14:57:20*achim quit (Quit: Computer has gone to sleep.)
14:57:39BlueProtomanActually, is Nimrod's Sublime Text plugin any good?
14:57:56gradhareal programmers use notepad.exe
14:58:19BlueProtomanBut real programmers also use Linux.
14:58:28BlueProtoman(Also, that worked, thanks)
14:59:53BitPuffinBlueProtoman: it's called wine, noob
15:01:48*dymk quit (Ping timeout: 246 seconds)
15:07:23NimBotnimrod-code/Aporia master a0da2e7 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds gtk2 dependency to babel file.
15:07:23NimBotnimrod-code/Aporia master d6345f4 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Mentions new babel #head suffix for installation.
15:07:23NimBotnimrod-code/Aporia master 7992387 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds hyperlink to github aporia issues.
15:07:23NimBotnimrod-code/Aporia master 936d88d Grzegorz Adam Hankiewicz [+0 ±2 -0]: Merge pull request #47 from gradha/pr_babel_tweaks... 2 more lines
15:08:23*BlueProtoman quit (Remote host closed the connection)
15:17:23*BlueProtoman joined #nimrod
15:20:21OrionPKMBlueProtoman the new sublimetext plugin is pretty good :0
15:20:29BlueProtomanOrionPKM: Where can I get it?
15:20:32OrionPKMvarriount and me are working on it, but it's not done yet
15:20:40OrionPKMhttps://github.com/Varriount/Nimrod-Sublime
15:20:59BlueProtomanOrionPKM: How usable is it?
15:21:04OrionPKMI use it
15:21:22OrionPKMit has go-to-definition, but it might be a bit buggy on OSX
15:21:39BlueProtomanOrionPKM: I use Ubuntu 13.10. How do I install it, then?
15:21:48OrionPKMclone it to your pacakges folder
15:21:51OrionPKMpackages*
15:22:51BlueProtomanOrionPKM: Huh. That was easy.
15:23:49BlueProtomanOrionPKM: Says it can't find Nimrod. But it's in my PATH.
15:24:05OrionPKMsec im in a meeting
15:25:13gradhaBlueProtoman: it opens a shell, so it should be found, but you could likely tweak https://github.com/Varriount/Nimrod-Sublime/blob/master/Nimrod.py#L59 to force a full path to it
15:26:01BlueProtomangradha: I have no idea why the ST plugin's PATH doesn't look like mine.
15:26:57gradhaif you just changed the path in your config files maybe you need to restart sublime to catch that?
15:27:08BlueProtomangradha: No, I changed it, then logged out, then back in
15:27:19BlueProtoman(changed it in .bashrc, of course)
15:27:52gradhasince the plugin opens a shell anyway you can call a script of your own where you dump $PATH and others to see what's wrong
15:28:18*Endy joined #nimrod
15:28:27gradhaanother reason for nimrod failing could be if you have spaces somewhere in your paths
15:28:34*dymk joined #nimrod
15:28:54BlueProtomangradha: Nope, no spaces.
15:29:31BlueProtomanThis is the path Sublime sees: [path: /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
15:29:47BlueProtomanAnd this is mine: /home/jesse/Nimrod/bin:/home/jesse/.babel/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
15:36:47BlueProtomanFuck it, I'm just gonna use aporia
15:37:50gradhaanother alternative would be to symlink nimrod to one of those other paths, or figure out why sublime doesn't get the updated $PATH
15:38:30BlueProtomanI don't want to symlink anything from my home directory into my system directory.
15:40:27*fntzr joined #nimrod
15:45:22gradhafowl: some guys invented yet another currency, cryptolocker http://www.ibtimes.co.uk/cryptolocker-criminals-earn-30-million-100-days-1429607
15:54:52*shodan45 joined #nimrod
15:55:11fntzrHi guys.
15:55:18fntzrI have a macro:
15:55:23fntzrmacro m(ast: stmt): stmt {.immediate.} =
15:55:23fntzr echo(treeRepr(ast))
15:55:27fntzrExaple usage:
15:55:27fntzrm:
15:55:27fntzr var a = 1
15:55:32fntzrIt translate to
15:55:32fntzrStmtList
15:55:32fntzr VarSection
15:55:32fntzr IdentDefs
15:55:32fntzr Ident !"a"
15:55:34fntzr Empty
15:55:36fntzr IntLit 1
15:55:38fntzrHow to detect types Nodes? For example it's a IdentDefs, it's a Empty and others?
15:55:59OrionPKMBlueProtoman what OS are you on:
15:56:01BitPuffinbest sentence ever
15:56:07BitPuffin"Hey guys, I have a macro"
15:56:07BlueProtomanOrionPKM: Ubuntu 13.10
15:56:29OrionPKMi havent tested it on linux, only windows/osx
15:56:38OrionPKMif you get it working please submit a pull request :)
15:58:31OrionPKMI know in OSX if you dont start ST from the shell its path is fucked up
15:58:41OrionPKMcould be the same issue on linux
15:59:51gradhafntzr: each node has a kind field
16:00:03gradhayou can case on that, or us ifs, or the "expect" helper macros
16:02:22gradhait could also be sublime modifies the path explicitely, xcode does to "guarantee" your user environment doesn't change build environments
16:03:10OrionPKMit's kind of annoying.. I've googled the issue, people just say to start sublime w/ "subl" command from the terminal
16:04:29fntzrgradha, thanks
16:06:17gradhamaybe the sublime guys have… you know… this rare item… documentation… which explains what is going on?
16:06:45OrionPKMmaybe
16:13:49dom96Sublime sucks. Pros use Aporia.
16:15:09OrionPKMheh
16:15:39OrionPKMaporia has babel integration?
16:15:58dom96Who need babel integration when you've got a terminal?
16:16:01OrionPKMsub-language syntax highlighting? :P
16:16:02dom96*needs
16:16:23OrionPKMbuilt in terminal?
16:16:41dom96Is sublime free??? :P
16:16:45dom96and open source?
16:16:46OrionPKMto use, yes :p
16:16:57OrionPKMah now we get to the root of the issue
16:16:59OrionPKMyou're cheap! :P
16:17:13dom96Sublime is a piece of annoyware
16:18:50OrionPKMindent guides
16:19:04OrionPKMscroll past end
16:19:04dom96Is Sublime written in Nimrod!?
16:19:20OrionPKMyou got me there :p
16:20:19BitPuffinterminal ftw
16:20:28OrionPKMsplit tab panes
16:20:29OrionPKM:P
16:22:25OrionPKMdom96 aporia should use whatever dart uses as it's base imo
16:22:35dom96Eclipse?
16:22:38OrionPKMno..
16:22:50OrionPKMthere is a dart eclipse plugin, but there is a separate dart editor I think
16:23:21dom96and what is its base?
16:23:26OrionPKMdunno, trying to find that out
16:23:28OrionPKMit's open source though
16:23:31BitPuffindrop the bass
16:23:34BitPuffinbase
16:23:36BitPuffinbard
16:23:37OrionPKMhttps://www.dartlang.org/docs/dart-up-and-running/contents/ch01.html
16:23:37BitPuffinbeard
16:24:06dom96That looks like Eclipse to me
16:25:37OrionPKMdont think it is
16:27:07OrionPKMhttps://www.dartlang.org/tools/editor/
16:28:14OrionPKMfrom the video, "it's a completely standalone editor"
16:29:38*BitPuffin quit (Ping timeout: 264 seconds)
16:30:17Hannibal_SmithOr they did copy the Eclipse UI, or it's Eclipse
16:30:54dom96"Google built the Dart editor on Eclipse components."
16:30:58dom96http://dartr.com/google-releases-dart-editor/
16:31:54OrionPKMthats from 2011
16:32:16dom96Yeah?
16:32:25Hannibal_SmithOrionPKM, these screens are for sure is so much like Eclipse UI
16:32:48OrionPKMhttps://www.youtube.com/watch?v=VQLdm8BY1Ao#t=48
16:33:11OrionPKMok
16:33:53OrionPKMyou're right, it uses eclipse
16:34:00OrionPKMbut its not a plugin
16:35:07Hannibal_SmithUhm?
16:36:04Hannibal_Smithhttp://storage.googleapis.com/dart-archive/channels/stable/release/latest/changelog.html
16:36:42OrionPKM OrionPKM there is a dart eclipse plugin, but there is a separate dart editor I think
16:37:01OrionPKMhttps://www.dartlang.org/tools/eclipse-plugin/
16:37:29OrionPKMhttps://www.dartlang.org/tools/
16:37:38OrionPKMthey have intellij, eclipse, emacs, ST2, vim
16:37:44OrionPKMand then they have dart editor
16:37:49OrionPKMwhich is separate from all of those
16:38:18Hannibal_SmithMaybe, this "Dart editor" is an Eclipse distro
16:46:57*Arcanum_za joined #nimrod
16:52:02*vendethiel quit (*.net *.split)
16:52:02*Trixar_za quit (*.net *.split)
16:55:48*vendethiel joined #nimrod
16:58:45*vendethiel quit (*.net *.split)
17:02:46fowlgradha, how is that a coin
17:03:37fowlgradha, currency*
17:03:50fowlgradha, also that site is atrocious, it keeps reloading so the ad video can play
17:04:53*vendethiel joined #nimrod
17:05:03gradhafowl: your data, which you don't have backups of, is the new currency, and these guys are exploiting that well
17:05:51fowlit is an innovative form of kidnapping
17:07:42gradhaafter all, you *pay* google and facebook with your identity, pictures, contacts, etc.
17:09:13*vendethiel quit (*.net *.split)
17:10:00*vendethiel joined #nimrod
17:10:56*Demos joined #nimrod
17:19:48VarriountIs anyone currently on the VNUG?
17:30:07dom96no, but i'm considering joining it.
17:30:22dom96Well, I don't know if anyone is on it.
17:30:25dom96I assume no.
17:31:59VarriountI'm in it
17:32:20VarriountAnd for once, I'm on my desktop, instead of my laptop
17:33:32Demoshttp://thread.gmane.org/gmane.comp.lang.rust.devel/3674/focus=3855 best case for how {.noSideEffects.} works ever
17:34:55Demossay, does debugLog use compile magic or can anyone just decide to break the {.noSideEffects.} contract? if anyone can do it does it just result in UB?
17:35:24DemosI may join, but there is KSP to be played
17:46:30Varriount:<
17:47:13VarriountWhy are there multiple instances of 'iff' in the documentation? Is there some difference between 'iff' and 'if'?
17:48:36Demosiff means if and only if
17:49:23VarriountPerhaps a note of that should be made somewhere in the documentation?
17:50:07Demosit is a very well known convention
17:50:17dom96indeed: https://en.wikipedia.org/wiki/If_and_only_if
17:50:18gradhait's even in my dictionary
17:52:17*zielmicha joined #nimrod
17:53:06OrionPKMevery logician should know what iff means
17:54:04*ddl_smurf quit (Quit: ddl_smurf)
17:54:05EXetoCand then there's ifb: if, but only maybe
17:58:45dom96I really regret not doing the reddit secret santa thing.
18:04:09*dymk quit (Ping timeout: 246 seconds)
18:05:42*Hannibal_Smith quit (Quit: Sto andando via)
18:07:55*brson joined #nimrod
18:11:19OrionPKMi always think "next year I'll do it"
18:11:25OrionPKMbut then next year comes around i completely forget
18:12:28dom96and here is the Steam Christmas sale
18:12:31dom96bye money
18:13:05OrionPKMwhat looks good
18:13:34dom96Bioshock Infinite and Stanley's Parable
18:13:43OrionPKMmm
18:13:48OrionPKMi already have bioshock infinite
18:14:29shodan45must... resist... resist... steam
18:14:35OrionPKMnever heard of stanley parable
18:16:04dom96wow, only a few more pounds and I can get all the Bioshock games...
18:16:13dom96Gaben is a genius.
18:17:08dom96And CS: Go is just £3
18:17:41DemosCS is kinda meh though
18:17:42OrionPKMew CS
18:17:43OrionPKMtoo hard :p
18:17:52DemosGO is not that hard
18:17:59OrionPKMi dont like getting shot
18:18:04OrionPKMi like shooting people, but not getting shot
18:18:08DemosCS1.6 is where the pros are, but yeah...meh
18:20:03OrionPKMstanley parable looks funny
18:20:46VarriountGrargh. Web designers who break a browsers 'back' function should be taught... a lesson.
18:22:10*dymk joined #nimrod
18:23:18OrionPKMi want to play that game w/ the oculus
18:23:20gradhaVarriount: tell that to Android designers
18:24:53OrionPKMweb designers are dumb
18:25:07OrionPKMthey need to learn to make pictures and let the developers do the lifting
18:25:40OrionPKMand make use of window.history
18:28:26fowlbrowser is best to develop for since because everyone has one
18:29:19Demosbut the spec is so insane, is is like saying that you should dev for POSIX since everybody supports that (rememver windows has a POSIX subsystem)
18:29:30VarriountYay! I now have an existsSymlink procedure, nearly ready for os.nim
18:29:47VarriountDemos, they dropped support for the subsystem
18:29:54VarriountEr, windows did.
18:29:56Demosyeah I know
18:29:59Varriount*Microsoft
18:30:06Demosand it has not been included in windows since vista I think, maybe 7
18:30:20VarriountWhich is a shame.
18:30:36Demosyeah, true
18:30:51Demosbut crossplat is becomeing eaiser as we get better tools and whatnot
18:31:00VarriountAnyone with linux want to test out the new symlink procedures I just wrote?
18:31:01Demosand as standard libraries expand
18:33:18*CarpNet quit (Quit: Leaving)
18:33:41VarriountWTF? -> lib\pure\os.nim(416, 48) Error: expression 'S_IFLNK(res.st_mode)' cannot be called
18:35:08Araqwell S_IFLNK looks like a constant to me
18:35:41VarriountAraq, I'm using it in the same way that the other exists* procs are
18:36:16Varriount'return stat(dir, res) >= 0'i32 and S_ISDIR(res.st_mode)' works for existsDir
18:36:57VarriountAnd both are procedures specified in the posix module though header includes.
18:38:17Araqmy bet: there is some other S_IFLNK defined somewhere
18:38:38Araqthere is a bug so that the compiler doesn't complain as much as it should about duplicated identifiers
18:39:50VarriountSearching the entire source tree, the only instances where S_IFLNK is defined are in lib/posix/posix.nim, and tools/detect/detect.nim
18:40:23VarriountAnd both those definitions are copies/the same, character-wise.
18:41:43*Arcanum_za is now known as Trixar_za
18:42:30Araqdunno, try nimgrep with -y
18:45:45VarriountAraq, what would happen if a C macro or constant was imported with {.importc, header: "<sys/stat.h>".}, but the target macro/constant didn't exist?
18:46:00Araqbbl
18:46:23dom96Varriount: The C compiler would complain
18:50:43EXetoCmeep
18:50:49gradhalol, first non kpop video I like http://www.youtube.com/watch?v=aAyFgb0R6tE
18:51:10Varriountdom96, apparently mingw doesn't have S_IFLNK defined.
18:53:16*zahary quit (Quit: Leaving.)
18:56:14Varriountjoin #mingw64
18:56:27Varriountargh
18:56:33gradhado they give cookies?
18:57:22Varriountgradha, probably not.
19:08:24VarriountGradha, do you know if there is a technical specification on what a "posix symlink" is?
19:09:01gradhano idea, what exactly do you need to find out?
19:09:20*zahary joined #nimrod
19:09:21VarriountThis is what I got told on the mingw-w64 channel
19:09:37Varriount<adrien> Varriount: there are no posix symlinks on windows
19:10:39gradhanot sure what posix has to do, you can run linux and use a fat32 filesystem without symlink support
19:10:49gradhaAFAIK symlinks are a filesystem feature
19:11:07gradhaof course you then need posix calls to be able to tell one from the other
19:11:51gradhamaybe you were told "mingw has API for windows symlinks, but you can't mount an ext2 and access the symlinks"?
19:12:02Varriountgradha, for windows, symlinks are a filesystem feature
19:12:33gradharecently you were saying how windows dropped posix support
19:12:56gradhaso that would be it: there's an API for windows symlinks, and there is none for posix symlinks on windows. Maybe
19:14:05VarriountI thought that was the point of mingw32, to provide a compatibility layer...
19:14:39gradhaif you squint your eyes maybe it is a compatibility layer at the API level
19:14:53gradhaI don't know many windows people mounting ext filesystems
19:15:04VarriountBah, silly developers.
19:15:16gradhamingw32 could offer for the programmer an API which allows posix code to migrate to windows without much retouching
19:15:36gradhathat would be your compatibility, but the resulting program would not be able to interact with *real* posix symlinks on windows
19:15:49gradhaalso, I know nothing, don't trust me
19:15:53fowlVarriount, thats the point of cygwin, mingws purpose is to provide gnu tools on windows
19:15:56fowlgcc etc
19:16:30VarriountBut I thought that cygwin did heavy-duty stuff, patching dll's and such.
19:18:01gradhaIIRC DJGPP provided a symlink API for porting, not sure how it worked
19:18:16fowlwhy do you need posix symlinks
19:18:22fowlwindows has symlinks with mklink
19:18:34gradhafeature checkmark
19:19:26gradhaso I looked up teamspeak and they are like skype, isn't it?
19:19:47fowlno its just voice and not a giant corporation that spies on you
19:19:52fowlor at least hasnt been exposed as such yet
19:20:06gradhalet's rewrite teamspeak with nimrod and the opus codecs
19:21:07VarriountWhy will no one join me?
19:23:11gradhayou need one ring, to rule us all
19:24:15gradhathere you go, likely the first nimrod (TM) meme bashing python https://github.com/gradha/quicklook-rest-with-nimrod/tree/develop
19:25:09Varriountgradha: you bad.. you very bad :P
19:25:14*fntzr quit (Quit: Leaving)
19:25:35dom96gradha: nice
19:25:44Varriountgradha: you a bad-ass honey badger
19:26:32gradhapeople may say nimrod rst support is not complete, but honey badger nimrod doesn't care
19:28:36Varriountgradha, looks much easier then what you would have to do for windows, which is (ugh) interface with c++
19:28:48*DAddYE_ joined #nimrod
19:31:51*DAddYE quit (Ping timeout: 240 seconds)
19:32:46*DAddYE_ quit (Remote host closed the connection)
19:33:22*DAddYE joined #nimrod
19:38:54gradhahmm... I have to make the default HTML embed a badger at the top, looking fierce
19:39:33gradhalol, maybe then people would read the docs to learn how to change it through configuration files
19:39:41Araq"people may say nimrod rst support is not complete, but honey badger nimrod doesn't care". Yup. Definitely the Nimrod spirit.
19:40:30Araqwhich can summarized as "yeah it doesn't adhere to the spec fully but that's because the spec sucks"
19:41:16*gradha notes that to quote to add it to the readme
19:44:35*Endy quit (Read error: Operation timed out)
19:46:32*DAddYE quit (Remote host closed the connection)
19:49:09gradhanice, with the include directive I can make a rst file include itself for a DOS attack
19:49:53gradhawow, awesome, the python implementation suffers from the same defect
19:49:58Araqgradha: it's nice that you find all these bugs, but you know what would be even better? Fixing them.
19:50:30*DAddYE_ joined #nimrod
19:51:19gradhaindeed, that would be awesome
19:52:12*ack006 joined #nimrod
19:52:15*brihat quit (Read error: Connection timed out)
19:52:56Araqhi ack006 welcome back
19:52:57*brihat joined #nimrod
19:53:40gradhabut seriously, when you have an "include", don't you feel the urge to test recursion with it? It's proof nobody uses rst format
19:54:37gradhaoh, and now I want to test cyclic recursion, which avoids simple checks "if thisfile == includefile"
20:07:10*Endy joined #nimrod
20:13:52gradhaAraq: still aiming for 16th december?
20:16:34BlueProtomanHow do you append an element to a sequence?
20:16:40dom96.add()
20:16:47BlueProtomanAh, thank you
20:17:48Araqgradha: well ... it's the 19th today
20:19:07gradha<insert stupid year overflow jokes here>
20:23:56Araqbtw cyclic dependency analysis only requires a TIntset in the compiler, you can use then use the file index
20:24:35gradhasome day… I'll understand what you say to me… maybe…
20:24:54Araqand containsOrIncl(fileIdx): error("cyclic dep")
20:25:19Araqif cycleCheck.containsOrIncl(fileIdx): error("cyclic dep")
20:27:17*Endy quit (Ping timeout: 248 seconds)
20:27:59BlueProtomanIs there a way I can iterate over or index a set with ordinal elements?
20:28:17BlueProtoman*iterate over a set with ordinal elements in by the natural ordering of the elements
20:29:15Araqif you use set[T] it should iterate over the "natural" order
20:29:38Araqif you use TSet[T] you get some arbitrary order cause the implementation uses hashing
20:29:47BlueProtomanAraq: Ah, sweet, thank you.
20:32:30BlueProtomanAraq: I'm trying to make a set of integers, but it's telling me the set is too large. Is that because it's implemented as a bit set?
20:36:21*psquid joined #nimrod
20:36:21*psquid quit (Changing host)
20:36:21*psquid joined #nimrod
20:39:26VarriountHello psquid
20:39:47psquidAhoy hoy.
20:41:21BlueProtomanHow can I make a set of ints?
20:41:30*Endy joined #nimrod
20:41:37VarriountBlueProtoman, at run time?
20:41:56psquidBlueProtoman: http://build.nimrod-lang.org/docs/intsets.html ?
20:42:19BlueProtomanpsquid: Oh, I missed that. Thanks!
20:43:05BlueProtomanpsquid: I assume that when iterating over intsets, the iterator runs from smallest element to largest?
20:43:38VarriountI'm guessing no, as intsets module imports the hash module
20:43:51psquidNo idea. But since it doesn't say as such, I would assume you can't rely on that behaviour even if it currently happens to.
20:43:59psquidAlso what Varriount said.
20:44:19BlueProtomanThen what would you recommend as the best way to store prime numbers such that I can iterate over them from smallest to largest?
20:44:39VarriountBlueProtoman, how many numbers are you iterating over?
20:44:48BlueProtomanVarriount: An arbitrary amount.
20:45:44VarriountBlueProtoman, well, you could just store them in a sequence, or, if you need to be a bit more conservative with space, a linked list
20:45:56BlueProtomanVarriount: I figured as such.
20:46:27VarriountHowever, you then lose the advantage of being able to randomly access the ints.
20:46:55BlueProtomanSequences are faster, right?
20:47:00BlueProtomanFor cache reasons?
20:47:01Araqyes
20:47:06Araqyes
20:47:06BlueProtomanThought so.
20:47:12VarriountAs far as I have been able to glean from Araq, sequences are implemented as dynamic arrays.
20:47:21Araqyes
20:47:39VarriountAlthough, I don't know what behavior they exhibit when increasing their size.
20:47:56Araqcopy if out of capacity
20:48:21VarriountAraq, I meant, how much new memory is allocated?
20:48:47Araqapprox 1.5 times the old capacity
20:49:48Araqif you double the capacity this means that write accesses average at 3 times the overhead over no reallocations but I forgot how that proof works
20:50:06Araqpretty interesting result though if you ask me
20:50:49VarriountI wonder how a linked list of sequences would perform. Or a linked list of arrays.
20:51:18Araqthey always lose ;-)
20:51:46Araqthey are theory, in practice hardware only loves arrays
20:54:42BlueProtomanHow can I convert a countup() iterator to a set?
20:56:33Araqthere is only sequtils.toSeq to turn an iterator into a sequence
20:57:06*q66 quit (Quit: Leaving)
20:58:36gradhahmm... I can't pass a closure where a proc is expected, doesn't that limit closures too much?
20:59:02Araqwell you can pass a proc where a closure is expected, so no
21:00:51*Endy quit (Ping timeout: 246 seconds)
21:01:18gradhashould I PR closures everywhere a proc callback is expected now?
21:01:39Araqwhy?
21:02:13gradhabecause a non closure callback doesn't allow me to pass a closure
21:03:02Araqwell yes, C interop has its price
21:03:15Demosdo the sequences do that realloc thing where the allocator may give you more memory after your current location?
21:03:41Araqno they don't as that's suprisingly hard to support in a GC
21:04:24Araqbut in a mmap based system it's rather unusual to work anyway
21:05:15Demosdo they memcpy if they can? what about shallow copies?
21:06:11*q66 joined #nimrod
21:06:40dom96EXetoC: ping
21:06:49gradhaAraq: the other day the pedant squad talked about how newSeq should be renamed to initSeq becaue it doesn't return a ref/ptr, what's your opinion on that
21:07:09Araqwho's the pedant squad?
21:07:28gradhacan't remember
21:07:47Varriount Probably me and some other folks. Though, I'm only pedantic about things like style conventions
21:08:38DemosI think I agree, consistant style in construction functions is important, important enough that some languages enforce it with an iron fist :/
21:08:48Araqwell seqs and strings are a bit hybrid creatures
21:08:57Araqso newSeq and newString are not *too* off
21:09:11Demosare seqs magic?
21:09:15Araqyes
21:09:28Araqand they do use memcpy and can always do so
21:09:35psquidMostly off-topic: I can't be the only one who mentally pronounces "seqs" like "sex", right?
21:09:55AraqI pronounce them "sequences"
21:10:01Demoswell they deep copy if you actually go and copy them presumably, but anyhow
21:10:08gradhapsquid: sex, you need to ellaborate on that
21:10:31psquidI know it should probably be "seeks" if shortening it, but my brain doesn't like a single "e" sounding like two. :P
21:10:40Demosit seems like one should be able to implement all the seq stuff with some macro trickery, although having them as a magic feature is not really that bad
21:11:10Araqno, you can't implement 'seq' within the language
21:11:10VarriountI pronounce the shortened version as 'seeks'
21:11:38Araqat least not with the means that nimrod currently provides
21:12:28Araqjust because C++ can doesn't mean Nimrod can. Nimrod has a GC and that makes all the difference here.
21:13:08VarriountIs there any reason why all the winapi templates that act like alias functions aren't all located in winlean.nim?
21:13:28Demosyeah, that is fair
21:13:46Araqwell I dunno, winlean is supposed to be a useful module on its own
21:14:19Araqwithout -d:useWinAnsi stuff in it
21:14:24VarriountAraq, so wouldn't it be useful to have a template for each api procedure which automatically picks the unicode or ansi version?
21:14:30Araqbut perhaps that already crept into
21:15:30AraqVarriount: usages are different enough so that it doesn't buy you anything?
21:16:00Araqwell I guess we can make a 'constructString' template too to migitate the differences
21:16:20VarriountconstructString?
21:17:38Araqstring -> cstring|wideCstring
21:17:46EXetoCdom96: pong
21:17:54VarriountAraq, I just hate having to write templates which are spread out all over files, just so that I don't have to duplicate parts of a function
21:17:58dom96EXetoC: Wanna play 0AD?
21:20:54AraqVarriount: wait... what?
21:21:14Araqwhat's the alternative then? duplicating code?
21:22:06VarriountAraq, I would like those template function to all be in winlean, otherwise you have multiple parts of the library defining alias templates
21:22:23VarriountOr you have parts of the standard library doing things like this: https://gist.github.com/Varriount/8015894
21:23:05Varriount(Yes, the code in the gist doesn't work, but it shows my point)
21:23:20Araqwell firstly:
21:23:30Araqyou can declare a template in a proc
21:24:05Araqand secondly ... indeed put it to winlean then though I wonder what's special about winlean
21:24:20Araqmight as well leave it in os.nim
21:24:29Varriountwinlean is where the windows api functions are?
21:25:28Araqthat's a guideline, not a law
21:25:58EXetoCdom96: ok
21:26:30dom96EXetoC: Araq will play too :)
21:26:34dom96EXetoC: You wanna talk on TS?
21:28:08AraqVarriount: ok, now that I've looked at winlean again ... :P
21:28:15AraqI tend to agree with you
21:28:18Araqhowever
21:28:43Araqdoing
21:29:51Araqwhen useWinUnicode:
21:29:52Araq proc ShellExecute*(...) {.importc: "ShellExecuteW".}
21:29:54Araqelse:
21:29:55Araq proc ShellExecute*(...) {.importc: "ShellExecuteA".}
21:30:09Araqwould simply the code already, no need for a wrapping template then
21:30:47Araqunfortunately this breaks client code
21:30:48VarriountHowever, you then lose the ability to specifically call one or the other.
21:30:59Araqtrue
21:31:02Demosnot a huge deal
21:31:19Demoseven in C almost everyone uses them through macros that are #defined based on UNICODE
21:31:37AraqDemos: it is a huge deal. most of our code uses deprecated stuff for months and months
21:32:05Araqwell one reason is that we're really underpowered here, but still
21:33:40VarriountAraq, perhaps a pragma macro/template could be created to generate the three procedures?
21:33:47EXetoCdom96: yeah ok
21:33:54EXetoCwhere's bitpuffin? bots suck
21:34:24dom96dunno
21:34:44VarriountMaybe the robot uprising took him
21:35:37AraqVarriount: sure, can be done with a macro or perhaps with a template even
21:37:12*achim joined #nimrod
21:45:43*gradha DOSes himself and smirks
21:48:02Araqwell gradha a closure has some overhead, so I don't want you to blindly add them everywhere
21:48:25Araqwhat is it you want to change in particular?
21:56:20*zielmicha quit (Ping timeout: 240 seconds)
21:59:19EXetoCdom96: actually, I'm gonna play dod instead
21:59:41dom96EXetoC: ok...
22:02:24EXetoCgot some poles to pwn
22:07:47gradhaAraq: I'm using now the rst file finder callback with a global
22:08:04gradhaAraq: I'm not going to set up a multithreaded rst builder now, so I don't really mind
22:11:28*achim quit (Quit: Computer has gone to sleep.)
22:11:29gradhahehe, it looks tempting though
22:23:16*ack006 quit (Quit: Leaving)
22:26:14*ddl_smurf joined #nimrod
22:33:16DemosYESYESYESYES string marshalling works
22:34:10Demosturns out if you declare a public static extern string foo(); function the .NET runtime will go and try and garbage collect the char* returned by the native code
22:35:38Demoswho knew right
22:39:07VarriountWait, is that a good thing?
22:39:51Demosnot really, what I had to do was have the managed prototype return an IntPtr and than use Marshall.IntPtrToStringAscii or somesuch function
22:40:25DemosI am more or less praying that the default bahavior for UTF-8 strings is to not go and destroy them, but who knows
22:42:15Demosin hindsignt it is a good default, since the strings that you are supposed to be freeing work and the ones you are not crash your program very quickly
22:42:20Demosan error would be good though
22:44:04gradhahmm... so now that I've integrated rst into the nakefile to avoid process spawning, building all the docs takes 0.02s, python takes 2.4s
22:44:32Varriountgradha, to build, or to run?
22:44:58gradhaisn't that the same for an rst generator?
22:45:09*BitPuffin joined #nimrod
22:45:12VarriountYou know, the real advantage of nimrod is that it doesn't take a quarter of an hour to configure and compile.
22:45:27VarriountUnlike C/C++
22:45:39VarriountBitPuffin, nice to see you
22:45:54gradhawell, it takes 1s to rebuild the nakefile with the embedded rst generator, so 1.02s to build and generate the whole binary from scratch
22:46:07gradhabut I'm not "compiling" python from scratch either
22:46:22gradhahmm… or maybe I am? I guess
22:46:34VarriountBut, it would likely take 10 minutes to configure and build a C or C++ equivalent.
22:47:12gradhain any case the difference is so big it's not fun any more
22:47:35VarriountBut programming is always fun! (except for unit tests)
22:48:04VarriountBitPuffin, ping
22:48:48BitPuffinVarriount: pong
22:48:53BitPuffinVarriount: nice to see you too
22:50:48Demoswowah hold up, we have a make-like program, not sure how I feel about that
22:51:02gradhayou mean nakefiles?
22:51:06Demosyeah
22:51:09gradhathey are fine
22:51:18gradhastill could use some additional helper procs I have
22:51:42Demoswhy not just write stuff in a .nim file and compile it?
22:51:47Demosor is nake for babel?
22:51:56gradhanakefile == nimrod code
22:52:42Demosoh.... good
22:53:44Demosaaaand viewing aporia's main nim file just crashed a browser tab
22:54:00gradhaaporia is big, try https://github.com/gradha/quicklook-rest-with-nimrod/blob/develop/nakefile.nim instead
22:54:59*faassen left #nimrod (#nimrod)
22:55:50*BitPuffin quit (Quit: WeeChat 0.4.2)
22:57:12Demoshad me frightened there for a moment, nake looks pretty neat now
22:57:30Araqtry if it works with vm2 please
22:57:48Araqit's high time vm2 is merged to master
22:57:59gradhawhat do we try? everything?
22:58:26Araqeverything except those 2 features I know don't work :P
23:01:00gradhahmm... other than windows ffi only new change is discardable case
23:04:24NimBotAraq/Nimrod master 007d23f Araq [+0 ±1 -0]: no stack tracing for the system module; fixes stack bottom detection
23:04:24NimBotAraq/Nimrod master ecd3325 Araq [+0 ±5 -0]: Merge branch 'master' of github.com:Araq/Nimrod
23:04:49AraqVarriount: here you go, please try again
23:10:04VarriountAraq, I still get the error "Cannot open configuration file: 127.0.0.1"
23:10:43Araqrecompiled with latest git head compiler?
23:10:48VarriountYes.
23:10:55VarriountHowever, If I leave out the fulldebug flag
23:10:56Araqgah that's nasty
23:11:02VarriountThen it works.
23:11:16VarriountAnd I get an error about a GC assertion which failed.
23:11:19Araqwhere comex when we need him?
23:11:37Araq*where is
23:13:04Araqwell but fulldebug is essential
23:13:27Araqbut alright, please gist the stack trace
23:15:59*darkf joined #nimrod
23:21:03VarriountAraq, got it to run with fulldebug
23:22:35Varriounthttps://gist.github.com/Varriount/8047940
23:24:19*Mordecai joined #nimrod
23:25:35*psquid quit (Ping timeout: 272 seconds)
23:37:13*xenagi joined #nimrod
23:38:15comexAraq: hi
23:40:14Araqyay
23:40:32Araqwell I take the bottom of stack like &somelocal
23:40:55Araqand then I mask out the bits so that it's aligned on a page, to get the real bottom of the stack
23:41:09Araqhowever this doesn't work and I wonder why
23:42:28Araqany idea?
23:48:50*Mordecai is now known as psquid