<< 12-03-2014 >>

00:07:19*carum joined #nimrod
00:11:22runvnc_cool night
00:11:45runvnc_reactormonk: there is actually a #sqlite on freenode
00:12:02runvnc_did you try asking on there? or is this really about the sqlite nimrod module
00:42:55*NimBot joined #nimrod
00:59:00*NimBot joined #nimrod
00:59:46*fowl joined #nimrod
01:00:18*profmakx joined #nimrod
01:00:42*profmakx is now known as Guest95157
01:02:01*Guest3642 quit (Remote host closed the connection)
01:03:10*Varriount joined #nimrod
01:03:26VarriountAraq: You still here?
01:03:31Varriountdom96: Ping
01:03:40*runvnc__ joined #nimrod
01:04:05*reactormonk quit (Ping timeout: 240 seconds)
01:04:07*runvnc_ quit (Ping timeout: 240 seconds)
01:04:59*nequitans_ joined #nimrod
01:05:33runvnc__nequitans can you see the log? dom and araq were trying to talk to you
01:05:56*psquid joined #nimrod
01:06:48*DAddYE_ joined #nimrod
01:06:59nequitans_ah, not yet, checking it out
01:08:12nequitans_ah, i c
01:09:37*DAddYE quit (Ping timeout: 240 seconds)
01:10:11Varriountnequitans_: Let me know when you've published your blog post. *excited*
01:10:33nequitans_Varriount, shall I wait 'till tomorrow when dom96 and Araq are around?
01:11:14*DAddYE_ quit (Ping timeout: 245 seconds)
01:11:15Varriountnequitans_: I guess...
01:11:54nequitans_Varriount, I was dropping my parents off at the airport and was dealing w/ some pilot light issues 'till now--really wanted to submit today :)
01:14:08VarriountHm. How would one go about rotating an actual opengl texture - not a representation of it mapped onto vertices, but the actual texture data..
01:15:40runvnc__imagemagick has rotate
01:16:26VarriountYeah, but how would I do it with the actual texture data?
01:18:17*carum quit (Remote host closed the connection)
01:19:20*cark joined #nimrod
01:19:20*noam joined #nimrod
01:19:20*askatasuna joined #nimrod
01:19:50runvnc__https://groups.google.com/forum/#!topic/android-developers/q1PQmwZSgoE
01:20:09DemosI would not do that. Rotateing images is a lossy operation
01:20:18Demosunless you are rotateing them 90 degrees
01:20:51runvnc__is it for like an animated texture that rotates
01:21:30Demosif you do want to do it I guess you could just go through and apply a rotation to each pixel, using whatever origin you want to rotate around
01:22:03Demosbut for an animated texture you should just rotate the UVs or something
01:23:33fowlsee how sdl/sfml do it
01:23:57fowlif you squint your eyes while you c&p its not violating the license
01:24:07Varriount:3
01:24:22VarriountWhich reminds me, I need to finish that DevIL wrapper.
01:26:41Demosjust use my freeimage wrapper :D
01:27:01Demosor translate stb_image, that seems popular
01:27:06Skrylarmeep
01:27:29SkrylarSDL2's license is pretty liberal though
01:30:37VarriountDemos: I've used both
01:31:08VarriountRather, I thought that FreeImage was not loading things properly, so I used and expanded fowl's DevIL wrapper
01:31:40VarriountI now have a texture loading procedure with two implementations.
01:31:42Demosloaded stuff fine for me
01:32:00Demosit is larger than stb_image or devil
01:32:06Demosand stb would be all nimrod, which would be nice
01:32:16VarriountYeah, it later turned out I was doing sizeof(float) instead of sizeof(GlFloat)
01:32:25VarriountWhat's stb?
01:32:31Demoslike static linking freeimage gives me a 3M executable after stripping, and that is with libstdc++ dynamicly linked
01:32:50Demoshttp://nothings.org/stb_image.c
01:33:27VarriountWait, you think it would be easy to translate that to nimrod, instead of just making a wrapper?
01:33:59Demosyeha
01:34:03Demosmaybe
01:34:13DemosI think it is pretty good standard C code
01:34:47Demosalthough I dont think it does the conversions the FreeImage can
01:34:50Demoswhich I like
01:35:04DemosI like being able to just have everything come out in RGBA8888
01:36:50*nequitans_ quit (Ping timeout: 246 seconds)
01:37:41Demosapperently FreeImage needs you to call FreeImage_Initialize and FreeImage_DeInitialize iff you static link it but I call it no matter what and stuff still seems to work dynamicly
01:38:06Demosmaybe it leaks but I am not sure that I care
01:38:15Demosor well "leaks"
01:57:29Skrylar:| nimrod is being dumb with math
01:57:38Skrylarcurrent / blah.len # should be the percent of use
01:58:22*nequitans_ joined #nimrod
02:06:19Demoswhy not current / blah.high?
02:06:21*reactormonk joined #nimrod
02:06:33Demoswait derp
02:06:35Demosherp
02:06:41Skrylarthey both give really weird values unless i surround everything in float()'s
02:06:49SkrylarYet / implicitly converts them to floats.. and does so.. wrongly
02:06:52Demosprobably just integer devision
02:10:05Skrylarbleh, i was hoping not to have to spend a third night on this damn hash table
02:22:25fowlVarriount, you should publish your devil/freeimage image loading thing
02:23:48fowlVarriount, and if you're working in 2d consider using sfml, you can use your own gl stuff in it, you can for sdl2 also but i didnt test the opengl module with it also I didnt import most of the gl funcs. sfml.
02:25:04fowlSWIM should write an blog about the abundance of game dev stuff available for nirmd
02:26:28Skrylari had issues where sfml was very slow
02:26:35Skrylarfor no discernable reasons
02:29:38Demosfowl, the FreeImage wrapper is mine, and it is in babel
02:29:59DemosI may put a more friendly "one function" loader in babel though
02:30:43Demosbut like a more nimrodic loader is a bit pointless since for games you are not doing much manipulation CPU side anyways
02:31:17Varriountfowl: SWIM?
02:39:10*superfunc joined #nimrod
02:40:17superfunchey everyone. I have a question. If I had a seq[ TSet[ myType[T] ] ], should I be able to add to it with add(myseq, toSet( @[n] )) where n is an element of myType?
02:40:23fowlVarriount, someone who isnt me
02:41:28Varriountsuperfunc: What is the generic type T of n?
02:41:51EXetoC@ for sets?
02:41:55superfuncint in this case
02:42:00*Demos quit (Read error: Connection reset by peer)
02:42:20superfuncI think that sets can be initalized with an openarray/seq
02:42:33VarriountYou'll be able to add it add it if you have a seq[TSet[myType[int]]]
02:44:49superfunchmm, it seems to be having trouble when creating the hash.
02:46:17superfuncError: type mismatch: got (Node[int]) but expected one of: hashes.hash(x: openarray[A]): THash ......
02:48:08*flaviu quit (Quit: Leaving.)
02:48:14Varriountsuperfunc: Could you post a bit more of your source code?
02:48:31superfuncsure, one sec
02:48:55EXetoCpreferably a test case
02:50:00*Demos joined #nimrod
02:50:10Varriountfowl: What are the names of the various DevIL libs on linux?
02:52:29superfunchttp://pastebin.com/XQH1xzBN#
02:52:57superfunctried to just leave the relevant stuff in, working on the proc. kruskalMST right now
02:53:43Varriountsuperfunc: And where in the file do you get the type error?
02:54:17superfuncthe files are main.nim and node.nim, the error pops up in node.nim in kruskalMST in the instantiation of TSet
02:54:45superfuncspecifically, this line: " var tmpS: TSet[Node[T]] = sets.toSet([nd]) "
02:55:36EXetoCVarriount: libIL.so and libILU.so
02:56:08Varriountsuperfunc: Is tmpS supposed to just be tmp?
02:57:31superfuncyeah, that got switched around, but the error I sent was regarding the proper case of tmpS being passed in
03:01:51Varriountsuperfunc: Well, when I try to compile your code, besides the missing 'node' include file, I only get some type errors about other things.
03:01:59VarriountWhat version of the compiler are you running?
03:02:24fowlVarriount, libIL.so libILU.so libILUT.so
03:02:28superfunc0.9.3 (2014-3-5)
03:02:44fowlno wait i dont have libILUT
03:02:49Varriountsuperfunc: Is it compiled from the master branch, or the devel branch?
03:03:13superfuncdidn't even realize I was on devel lololol
03:03:23superfunclemme rebuild on master and give it a shot
03:03:58*carum joined #nimrod
03:04:32Skrylarhm, this is saying a cuckoo table should hit 50% utilization
03:04:47Skrylaradmittedly i'm using a range of integers to stress test, so its probably a very unfavorable set of keys
03:05:03Varriountsuperfunc: No, devel would probably work.
03:05:28Skrylar4-key lookup is supposed to hit 90% utilization
03:05:32Varriountsuperfunc: Sorry, I did get your error, it's just that I missed it (it scrolled above my screen)
03:06:05Varriountgot (seq[TSet[Node[int]]], Edge[int])
03:06:36superfuncah
03:07:30Varriounthttps://gist.github.com/Varriount/9500039
03:07:38VarriountThose are the errors that I get.
03:08:10VarriountI presume that you are concerned about the first error in that printout.
03:09:08superfuncyeah the one on line 21 is the one I get with the full source
03:11:11VarriountLets see. It's got something to do with the toSet() call..
03:16:23superfuncit seems to be happening here in set.nim " var h: THash = hash(key) and high(s.data) # start with real hash valu "
03:19:22Varriountsuperfunc: Yeah, I'm trying to work out what exactly is going wrong.
03:21:23*q66 quit (Quit: Leaving)
03:21:51VarriountWhat doesn't make sense is the fact that the rawImpl template isn't called in the toSet() proc
03:22:23Demoswhy is the field param of `.` a string, instead of a static[string]?
03:22:52DemosI want to return an array of length field.len
03:24:29fowlit is static str
03:26:52Varriountsuperfunc: I'm tempted to say that what you have is a bug.
03:27:01VarriountOr rather, you found a bug in the sets module
03:27:43superfuncthats good
03:27:56superfuncalthough it means I'll just have to use a sequence for now, which will be a bit slower
03:27:57Demosgggggrrr I can not seem to use str.len as a param for a static[int]
03:27:59Demosfrom a static[str]
03:28:07Demosnot really unexpected but still
03:28:16Varriountsuperfunc: Araq should be up in.. about 4-6 hours? Maybe a bit longer.
03:28:59superfuncalso, rawImpl is called from toSet though
03:29:39VarriountYeah. it seems that the proc to add a key calls it to generate a new key
03:30:35superfuncyeah, seems like incl->inclImpl->rawInsert->rawImpl
03:30:49Varriountsuperfunc: The main thing is, the compiler lists "hashes.hash(x: T): THash" as one of the implementations, which should accept Node[int]
03:31:20VarriountBut for some reason it's skipping over that selection
03:32:32superfuncyeah]
03:33:50Varriountsuperfunc: By the way, what exactly is it you are implementing?
03:34:33superfuncworking on a small graph library
03:34:39VarriountOoh, neat
03:34:48superfuncjust basic MSTs, shortest paths and a few other ops
03:35:09superfuncfor the second half of the semester, I'm thinking of adding spatial trees, specifically octrees, quadtrees and R trees
03:35:15Varriountsuperfunc: I wonder if it's failing because of the recursive nature of your node type.
03:35:44superfuncthat sounds pretty plausible
03:36:28VarriountAnyway, it's something to ask Araq, and possibly file a bug report about.
03:36:59superfuncthanks for all the time, I appreciate it
03:38:27Varriountsuperfunc: I'm glad you're using nimrod :D
03:39:04superfuncits fun, I've been frustrated a bit by this problem, mostly because I was trying to figure it out without help lol
03:39:42superfuncmostly because MST algorithms rely on sets for efficient lookups when determining the cut property, and I felt just wrong using a sequence to do it lol
03:40:38*brson_ quit (Ping timeout: 240 seconds)
03:41:12VarriountHm. If you need an immediate workaround, you might be able to do something like, assign each node a unique ID, and use that as a hash.
03:44:54VarriountHm. Does nimrod have a wrapper for GLM, or a decent substitute?
03:45:05*carum quit (Remote host closed the connection)
03:45:48*carum joined #nimrod
03:47:03Skrylarbleh. its going to be a long night
03:47:15superfuncQuick Q, I know that pop exists for seq, but is there a remove that I could use while going through a for each loop?
03:47:26Skrylarsuperfunc: del, iirc
03:47:43superfuncSkylar: ty
03:47:46Skrylardel is basically seq[x] = seq[high(seq])
03:47:50Skrylarso it replaces the current item with the last
03:47:59Skrylars/current item/removed index
03:48:24Skrylarhowever that will also shorten len, so you would probably need to use a while > x.len if you do that
03:48:38Skrylaralternatively you can do the swap yourself, and just set the deleted index at zero
03:48:44DemosVarriount: you can use bitpuffin's linagl, but static[T]s are needed to get a good vector lib, and we only got those a few days ago
03:49:03Skrylari have no idea what a static[T] is :(
03:49:08DemosI used a hacked together library for basic stuff, I just have seperate functions for each size vector
03:50:02Skrylaralso: the g command is very useful when debugging in vim
03:50:10*carum quit (Ping timeout: 246 seconds)
03:50:28Skrylarg/debugEcho/d "Removes all of the debug tracers
03:52:03VarriountDemos: So I couldn't just wrap GLM?
03:52:25DemosVarriount: nope
03:52:48Demosit would be a pain
03:53:01Demosand you dont need a whole lot of linear algebra operations for a basic game
03:53:17superfunchmm. if I had a sequence of sequences, is there a clean way to simple merge two of the subsequences?
03:54:09Varriountsuperfunc: Without duplicates?
03:54:36VarriountOh, sorry, wasn't thinking
03:54:56Varriountsuperfunc: sequtils.concat would be your friend, I think
03:55:55VarriountThat'll merge all of the sub-sequences in a sequence, so you could probably use a slice to select 2
03:56:32superfuncyeah, that should work. cool, it'll feel like I'm in scheme again :D
03:56:48superfuncminus the excessive toenail clippings
04:01:38Skrylareh, if you already *know* the math then its not bad
04:01:56Skrylarthe biggest thing you get ify ou already know the math is that GLM will already defer to SSE commands if i remember
04:02:11Skrylarstuff like the BLAS libraries already use the most optimized implementations
04:02:35Skrylarwrapping GLM is going to tank your compile speed tho
04:06:14DemosBLAS is not really usable
04:06:21Demosrather it is annoying
04:06:29Demosand you probably do not need SSE for game vector math
04:06:44Demosif you are doing that much vector math you should probably just do it on the GPU
04:06:58Demosand I dont think GLM hurts compile times that much
04:07:08Demostrouble is that you have to wrap concrete types in glm
04:07:24Demosyou can not pass a generic param on to a C++ template
04:10:31fowler so is expr[string] completely replaced now
04:11:26fowlexpr[t] i mean i guess
04:12:52*DAddYE joined #nimrod
04:22:45Skrylari should port this http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/
04:23:20Demosdon't we have the guy who implemented python's dicts in the community?
04:29:10*carum joined #nimrod
04:32:39Skrylari have no idea
04:32:47*Demos quit (Ping timeout: 252 seconds)
04:33:00Skrylari want to be done with this crap so i can go to some other tedious garbage, but there seems to be a single misplaced swap in here
04:33:19*carum quit (Ping timeout: 245 seconds)
04:48:44*nequitans_ quit (Ping timeout: 252 seconds)
04:57:51*Demos joined #nimrod
05:00:44Skrylarwb Demos
05:00:55Demoscan not sleep
05:13:56DemosI think I have opened like 6 issues in the past three days :o
05:26:38Skrylari've been dealing with hash table sadness the past 3
05:27:10*DAddYE quit (Remote host closed the connection)
05:27:15*carum joined #nimrod
05:27:37*DAddYE joined #nimrod
05:28:07Skrylari threw out the cuckoo table; its got some nightmarish problem somewhere and 3 days is my limit
05:32:04*DAddYE quit (Ping timeout: 245 seconds)
05:33:45*carum quit (Remote host closed the connection)
05:34:01*carum joined #nimrod
05:35:17*carum quit (Remote host closed the connection)
05:37:58*carum_ joined #nimrod
05:40:50*carum_ quit (Remote host closed the connection)
05:41:09*carum joined #nimrod
05:47:23*DAddYE joined #nimrod
05:52:46*carum quit (Remote host closed the connection)
05:55:08*Demos quit (Ping timeout: 246 seconds)
05:58:58*superfunc quit (Ping timeout: 245 seconds)
06:05:32*Demos joined #nimrod
06:36:47*Demos quit (Ping timeout: 246 seconds)
06:42:21*Heather joined #nimrod
06:42:28*Heather left #nimrod (#nimrod)
06:42:36*Heather joined #nimrod
06:43:41Heatherping
06:43:56Heathermap(a, proc(x: var string) = x &= "42") // looks weak :(
06:45:42*Heather left #nimrod (#nimrod)
07:18:23*skyfex_ quit (Quit: Computer has gone to sleep.)
07:25:25*carum joined #nimrod
07:26:48*Boscop__ is now known as Boscop
07:30:45*Matthias247 joined #nimrod
07:31:00*Heather joined #nimrod
07:32:39VarriountHeather: How is the map proc traditionally done in Rust?
07:34:18HeatherVarriount: .map(|x| ...)
07:34:50HeatherVarriount: or do I understand proc there wrong?
07:36:12VarriountHeather: You don't *have* to have an inline proc as the map argument.
07:37:35HeatherVarriount: isn't it just lambda?
07:38:22VarriountHeather: For the map procedure, any procedure will do as a function argument.
07:38:34*DAddYE quit (Remote host closed the connection)
07:39:00*DAddYE joined #nimrod
07:39:07HeatherVarriount: ?
07:40:01HeatherVarriount: I mean what difference with a.map(|x| x + "42")
07:42:08VarriountHeather: I don't know a lot about Rust, however I would imagine that it has a dedicated way to turn an expression into a procedure.
07:42:33VarriountHeather: If it bothers you that much, you can use templates or macros to solve such things.
07:43:19*DAddYE quit (Ping timeout: 245 seconds)
07:44:17HeatherVarriount: the thing is... map is not based on type there?
07:44:53HeatherVarriount: e.g. it will be iterated and dynamically typecasted to proc argument?
07:46:28VarriountHeather: In nimrod, map is a procedure which takes two arguments.
07:47:11HeatherI see
07:47:15VarriountThe first argument is a sequence or other type that can be implicitly converted to an openarray
07:48:03VarriountThe second argument is a procedure that takes an element of the first sequence.
07:48:09Varriount*first argument
07:48:26Matthias247Therefore it's the same as in rust (and anywhere else) ;)
07:48:48Matthias247only the closure syntax differs
07:49:03VarriountHeather: Is German your primary language?
07:52:08HeatherVarriount: Russian
07:55:34HeatherMatthias247: Varriount: may you tell some numrod benefits, killer-features compard to other modern "replace C++" langauges?
07:56:11*Heather will back in 10mins
07:57:36VarriountHeather: Extensive compile-time mechanisms such as macros and templates, A non-blocking garbage collector, type classes, source code filters.
07:59:45VarriountNimrod has compile time mechanisms such as macros, templates, and compile time expressions/procedures.
08:00:59VarriountThese features greatly reduce the need for C/C++ stuff like autotools, since it can all be done in native nimrod code at compile time.
08:01:52VarriountThey also allow programmers to create flexible domain specific languages and variants.
08:03:16VarriountNimrod's GC is another really helpful feature. It's designed to be very fast and efficient, suitable for games and other programs that need to run at top performance.
08:04:04VarriountThe Garbage Collector does not 'block' the entire program, meaning that it won't cause the entire program to halt as memory is collected.
08:05:21VarriountType classes are a very powerful mechanism for generic programming, akin to the abstract types found in functional programming languages.
08:06:59VarriountNimrod's type classes allow a programmer to define an abstract type based on certain characteristics and conditions. Any concrete or real type which fulfills the conditions of the type class can then be used in the same places the type class is used.
08:07:48Matthias247too bad c++11 did not get these (concepts).Could havve eased a lot of pain :(
08:09:27Matthias247and you could add the module system, which is something c++ is also still missing (but most alternatives also have one)
08:09:35VarriountI can't really judge. I've *heard* how bad C++ is, and seen how complicated it can get, but I've not had much call to use it. Python, nimrod, C, and occasionally Java are all I've had to use.
08:10:32VarriountMatthias247: Does c++ still have that "int a = a;" undefined behavior?
08:10:32Matthias247c++ is not that bad as the whole talk on the net suggests
08:10:45Matthias247Varriount: no clue. Why would you do that? :)
08:10:47*silven joined #nimrod
08:11:14VarriountHi silven.
08:11:57VarriountMatthias247: Oh! I know what nimrod has. A helpful, eager community.
08:12:04Matthias247imho one problem of c++ is that it's quite verbose. And the other one is that there are 1000 ways to solve the same problem and therefore 1000 coding styles. And when you then put together libraries from different sources you might get a mess
08:12:15Matthias247Varriount: oh yeah ;)
08:19:00Matthias247and from my point of view Nimrod code is quite easy to read and to understand. Rust can be very hard
08:19:23Matthias247and I like the unified function call syntax
08:20:55VarriountSome might complain about the fact that you can call a function two ways.
08:22:18Matthias247that will be the case for any kind of decision :)
08:22:27VarriountTrue.
08:25:41Matthias247Thread-local GC is also such a thing. Some might like the idea and the higher performanc it gives. Others would want to access objects from all threads in parallel
08:27:16SkrylarVarriount: They don't complain about it in Lua. And there's a lot of C++ users who embed lua... :B
08:31:08HeatherVarriount: Matthias247: wow, thanks for all the words )
08:32:28HeatherMatthias247: rust is not hard ) when you compare with something really hard alike Idris :)
08:33:47VarriountOr Malbolge -> http://en.wikipedia.org/wiki/Malbolge
08:34:26Matthias247Heather: probably depends for whom ;)
08:35:29HeatherMatthias247: right but I doubt there are one who will understand Idris easier than rust )
08:35:57Matthias247In the rust channel most people are guys that do Haskell for breakfast
08:36:23Matthias247that's quite different from the average developer
08:36:44bstrieMatthias247: that's quite a misrepresentation
08:37:13VarriountIt's almost as if every person's mind is uniquely shaped depression, and a programming language must be the right shape to effectively fill the depression.
08:37:44HeatherVarriount: what o_O
08:38:16Matthias247bstrie: the thing about haskell or that the people are very skilled? :)
08:38:30VarriountHeather: "depression" meaning, a hole or lowered area of the ground.
08:39:05VarriountI have an unfortunate talent for philosophy
08:39:31HeatherMatthias247: I think that Rust is not anyhow alike haskell
08:39:40HeatherMatthias247: it's more like C
08:39:53Heatheron sterioids, sure
08:40:32HeatherMatthias247: and hardest thing there for me is lifetime )
08:40:47Varriount"lifetime"?
08:40:54Heathervariables lifetime
08:41:22Heatheroften because of bugs :D nevermind, it's just another advance level, same as in C with pointers
08:42:03Heatherah, lifetime and ownership )
08:42:04Heathersure
08:42:10Matthias247Heather: Same for me. I understand them (because I also have to respect object lifetimes in other languages), but I find the explicit lifetimes make the code very hard to read
08:42:55VarriountCode is read far more often than it is written.
08:43:24Heatherwell... rust is readable
08:43:37Heatherand perl too
08:50:50VarriountWell yes, if you count 'readable' as in the strict definition "able to be read"
08:51:10VarriountA more accurate term would be "easily understood"
08:52:25Heatherbstrie: lol downloads count https://www.nuget.org/packages/Rust/
08:53:38Matthias247oh that's yours? I downloaded it once from there
08:54:14HeatherVarriount: well... and you think map(a, proc(x: var string) = x &= "42") is "easily understood" ? :)
08:54:52HeatherMatthias247: yep, It's hard to update because nuget works pretty unstable
08:55:31Heather& during upload nuget takes more than 1Gb ram
08:55:45Matthias247I thinkg the two = make it hard to understand
08:56:14HeatherMatthias247: I even don't like "x: var string" part
08:57:10Matthias247dom96 did a macro for => where you could to map(a, (x: var string) => x &= "42")
08:58:20Heatherand still there is this : var string :)
08:58:30Matthias247yep :(
08:58:39Matthias247but I think you don't want "var" there
08:58:49Matthias247because it would mutate the result and "a"
08:59:22Heatherwell ideally I want to see type based, linq like map =)
08:59:37Heatherbut yes, var is horrible
09:00:07Matthias247linq is cool. Although I don't use the SQL like syntax because I can't remember it
09:00:38Heathergood IDE remember it for you :D
09:01:29Skrylarhrm.. time to make shiny graphs
09:02:37Skrylari seem to remember ploticus being the easier route to graphs
09:03:10Matthias247I would do a.Select((x) => (x + "42"))
09:03:20Matthias247and my IDE remembers it ;)
09:10:58Skrylaryay. hopscotch hashtable is done
09:11:24*easy_muffin joined #nimrod
09:11:40*Boscop quit (Read error: Connection reset by peer)
09:11:43*Boscop_ joined #nimrod
09:11:49Skrylarhave to look up how to do time benchmarks in nimrod though
09:23:35*carum quit (Remote host closed the connection)
09:37:58*Guest95157 is now known as profmakx
09:38:02*profmakx quit (Changing host)
09:38:02*profmakx joined #nimrod
09:49:01*awestroke joined #nimrod
09:50:14*Heather left #nimrod (#nimrod)
10:05:40*Sorcy is now known as Ycros
10:19:38VarriountSkrylar: What's the difference between hopscotch hash and cuckoo?
10:19:42*faassen joined #nimrod
10:32:09*Raynes quit (Excess Flood)
10:43:40*OrionPK quit (Ping timeout: 252 seconds)
10:57:22*io2 joined #nimrod
10:59:04*Raynes joined #nimrod
11:03:01*Raynes quit (Excess Flood)
11:04:51SkrylarVarriount: in a cuckoo table, there are only N positions for any given entry, so retrieval is alway O(1)
11:05:07Skrylarregardless of load
11:06:23Skrylari have to fiddle with mine a bit to be a "true" hopscotch, but basically hopscotch tries to re-order entries so they are local to each other
11:06:42Skrylare.g. a collision will get stored in the next bucket as long as its not more than 30 cells away
11:07:43Skrylara proper hopscotch will shuffle around values when it can (mine doesn't do that part at the moment)
11:08:39*Ycros quit (Ping timeout: 265 seconds)
11:09:54*q66 joined #nimrod
11:09:56*Raynes joined #nimrod
11:11:44*Ycros joined #nimrod
11:12:03Skrylarat some point later i'm going to look in to benchmarking/graphing it, since my current implementation can only handle up to ~50% usage at best before it decides to grow
11:13:38*Raynes quit (Excess Flood)
11:17:41*Sorcy joined #nimrod
11:20:24*Ycros quit (Ping timeout: 245 seconds)
11:23:27*Raynes joined #nimrod
11:23:41*Raynes quit (Changing host)
11:23:41*Raynes joined #nimrod
11:24:07*q66 quit (Quit: Leaving)
11:29:23*q66 joined #nimrod
11:54:21*Sorcy is now known as Ycros
12:04:33*easy_muffin quit ()
12:42:12AraqVarriount: please add "which tests still fail" to nimbuild
12:42:23Araqdom96 won't do it anytime soon
12:43:09VarriountAraq: Pardon? What do you mean?
12:43:17*nequitans_ joined #nimrod
12:43:47AraqVarriount: in #nimbuild a gist is generated which tests have been broken
12:43:59AraqI want you to add the tests that still fail
12:44:05VarriountAraq: Ok.
12:53:10Araqthank you
12:53:19VarriountAraq: For the compiler bootstrap testing, do you want to test both bootstrapping in debug mode *and* release mode?
12:53:36Araqyes
12:54:14*Varriount is thankful that bootstrapping Nimrod doesn't take 4 hours like Rust
12:54:44*easy_muffin joined #nimrod
12:56:29profmakxwhy the fuck does it take 4 hours to bootstrap rust?
12:56:44profmakxthats longer than buildworld & buildkernel on my machine
12:56:50profmakxand that builds a gcc toolchain
12:57:40Varriountprofmakx: I don't know if it's 4 hours, I just know that it takes a long time.
12:58:28VarriountAlso, pypy takes ~1-2 hours to bootstrap (2 hours if using cpython, 1 if using pypy)
12:59:37*easy_muffin quit (Client Quit)
13:00:53EXetoCprofmakx: because a patched LLVM is built every time
13:00:58EXetoChopefully you only have to do it once now
13:02:30profmakxa patched llvm
13:02:32profmakx...
13:03:28EXetoCprofmakx: yes, they had to make some necessary changes. apparently it's not something that has been merged yet
13:04:19profmakxooof course
13:04:24profmakxit's always totally necessary
13:04:54profmakxlike, absolutely, totally, inescapable. It'll also give me ammunition for my uninformed trolling against rust
13:05:32*Varriount hands profmakx a flaming torch
13:06:09profmakxwould probably lead to this type of discussion *chuckles* https://github.com/JuliaLang/julia/issues/6113
13:06:10*EXetoC hands profmakx some marshmallows
13:06:43profmakxtasty
13:06:44VarriountThough, why does LLVM, even a patched LLVM, take 4 hours to bootstrap? Iirc, GCC only needs about 2
13:06:54profmakxmhhm
13:07:00profmakxwell it doesn't
13:07:17profmakxbecause freebsd world (which includes clang) takes less than an hour on my machine too
13:07:32profmakxso i'd guess that even rust will compile within that timeframe
13:07:38EXetoCVarriount: cus, C++?
13:08:06*profmakx doesn't want to try even.
13:08:14Varriount*even try
13:08:14EXetoCI thought it was ~4 hours on fairly old hardware. still, it takes quite some time
13:08:57VarriountAlthough, then that raises the question, why does bootstrapping nimrod take so little time?
13:09:12VarriountIs it some sort of black magic?
13:09:32profmakxmuch simpler compiler
13:09:42VarriountHowso?
13:09:56profmakxtechnically, since it compiles via C (doesn't it?) you'd have to add the time to bootstrap C/clang to it
13:09:58EXetoCcus, not(C++)?
13:10:35*profmakx doesn't know any internals of nimrod compiler, but is very pleased with how simple and fast everything is
13:11:13Varriountprofmakx: But I thought you were a professor :3
13:11:44profmakxI am not
13:12:00profmakxand to be honest, I don't want to be one
13:18:39Matthias247to be fair you would have to count the time for compiling gcc to nimrod compile time ;)
13:18:48Matthias247then it would probably loose
13:19:03Matthias247but fortunatly it doesn't require a patched gcc :)
13:20:00Matthias247rust takes about an hour here including LLVM build. But that's still a long time
13:22:18*Varriount idly wonders how long it takes for VCC to compile from source
13:24:30*Endy joined #nimrod
13:25:32VarriountHi Endy
13:25:45*aftersha_ joined #nimrod
13:34:19VarriountHm. What takes longer - testing if a set contains 2 members, or testing if the set's length is greater than two?
13:35:02Araqcontains is faster for 'set', length is faster for 'TSet'
13:40:49*OrionPK joined #nimrod
13:49:50*faassen quit (Quit: Leaving.)
13:49:50*[1]Endy joined #nimrod
13:53:19*Endy quit (Ping timeout: 264 seconds)
13:53:19*[1]Endy is now known as Endy
13:53:56*darkf quit (Quit: Leaving)
13:55:04*q66 quit (Quit: Leaving)
13:56:41*q66 joined #nimrod
13:57:13*nequitans_ quit (Ping timeout: 240 seconds)
13:59:37VarriountAraq: For the bootstrap tests, do you want them to run by default, and pass if the compiler can't be found?
14:00:04*aftersha_ quit (Quit: Computer has gone to sleep.)
14:01:56*aftersha_ joined #nimrod
14:04:49Araqactually we need a testament.cfg for these things
14:05:17Araqdefault should be "off" since most testing machines do not have windows/vcc
14:05:45*io2 quit ()
14:08:25Varriountdom96: Ping
14:08:57*nequitans_ joined #nimrod
14:09:10VarriountHi nequitans_, Araq is awake.
14:09:27nequitans_Hi Varriount, noted
14:09:40Araqthat's quite optimistic
14:09:46Araqbut I'm not sleeping
14:10:12nequitans_lol, Araq, thanks for noticing the bug, I think I forgot to hit 'update' on one of my drafts -- should be changed now
14:11:10*aftersha_ quit (Quit: Computer has gone to sleep.)
14:11:56*q66 quit (Ping timeout: 252 seconds)
14:13:33*q66 joined #nimrod
14:15:38VarriountI could have sworn we had an ".exe" proc that added the host system's binary extension..
14:21:06AraqVarriount: in koch.nim
14:21:49VarriountAraq: Ah, thanks.
14:22:19*Matthias247 quit (Read error: Connection reset by peer)
14:24:58*aftersha_ joined #nimrod
14:28:01*nequitans_ quit (Ping timeout: 240 seconds)
14:36:50*io2 joined #nimrod
14:41:40*easy_muffin joined #nimrod
14:48:29*BitPuffin joined #nimrod
15:20:18BitPuffinzahary_office: ah, well I still got the thing where it couldn't evaluate a at compile time yesterday but I'll try again
15:23:26BitPuffinzahary_office: yeah it works now, fucking sweet :D good job
15:24:43zahary_officealso, check out the dot operators for swizzle (this ia a bit older, it's in the manual under "dot operators")
15:26:29BitPuffinzahary_office: don't you mean the delegator?
15:26:35BitPuffinI need to update that yeah
15:26:37BitPuffinI tried once
15:26:40BitPuffinbut it didn't work :P
15:27:02BitPuffinproc `~=`*[T; R, C: static[int]](a, b: TMatrix[T, R, C], tolerance: float = 1.0e-5): bool {.noSideEffect.} =
15:27:19BitPuffinchanged that to that and now I don't even get a nerror, just no traceback available lol
15:27:20zahary_officeit has been renamed to "dot operators", it has support for writing to fields now too
15:27:56BitPuffinoh awesome
15:29:55BitPuffinthat I must take a look at indeed
15:30:09BitPuffinanyways, I guess the issue I am having here is the one you haven't fixed yet?
15:30:41zahary_officeyes, probably, I'll get to it during the weekend - if you can stick to implicit generics, it won't bite you
15:30:59BitPuffinwell in some cases it will
15:31:05BitPuffinfor example this:
15:31:43BitPuffinproc `*`*[T; R, N, C](a: TMatrix[T, R, N], b: TMatrix[T, N, C]): TMatrix[T, R, C] {.noSideEffect.} =
15:32:08*Mat3 joined #nimrod
15:32:11Mat3hi all
15:32:18BitPuffinhey Mat3
15:32:32Mat3hi BitPuffin
15:32:36BitPuffinthat ensures that there will be a type error when a user tries to multiply to matrices that aren't compatible
15:32:45BitPuffinand implicit generics won't give me that
15:33:20Mat3do you mean matrices of different size ?
15:33:37Mat3... different type or both ?
15:33:41zahary_officeI can tell you how to use implicit generics for this as well, but the code will be verbose
15:34:14Mat3helo zahary
15:34:35Mat3^hello
15:35:06zahary_officehi Mat3
15:36:22BitPuffinzahary_office: what would that be+
15:37:19*aftersha_ quit (Quit: Computer has gone to sleep.)
15:37:26zahary_officeproc `**`(a, b: distinct Matrix): Matrix[a.type.T, a.type.M, b.type.N] =
15:37:36zahary_officewell, it's not that bad actually
15:38:01Mat3I do not know if the following remark is off-topic but you can take a look at APL for seeing how matrice arithmetic can be done independent of type and size restrictions
15:38:07zahary_officeit's a bit weaker tho in the type safety department
15:38:13BitPuffinwut
15:38:16BitPuffinwhy distinct?
15:38:43BitPuffinthat still doesn't ensure the relationship that matrix a has to have as many columns as b has rows
15:38:53BitPuffinand the a.type thing doesn't work yet
15:38:58zahary_officeyou'll find the explanation in the manual in the type classes section - this allows `a` and `b` to have different types
15:39:06zahary_officeotherwise, they must bind to the same matrix type
15:39:43BitPuffinwell yeah but that a has the same amount of columns as b has rows is a condition for multiplication to be defined
15:40:06BitPuffinand that makes it so that it doesn't ensure the same T too
15:40:07zahary_officeare you sure? a.type.T is kind of old, but it could have problems when used within the return type
15:40:34BitPuffindidn't work last time I trieh
15:40:50BitPuffinbelieve me and Araq tried to fix it too
15:40:54zahary_officepost a bug if it still doesn't work please
15:40:56BitPuffinand realized it was a whole mess or something
15:41:00BitPuffinI think there might be one
15:41:28zahary_officeI think I remember this one and I closed it
15:41:39BitPuffinoh
15:41:41BitPuffinhmm
15:41:53BitPuffinwell I may have even tried it like yesterday or so
15:41:56BitPuffinor did I
15:41:57BitPuffinhmm
15:42:06BitPuffinwell it's a simple thing to try I guess?
15:43:07*q66 quit (Ping timeout: 264 seconds)
15:44:39zahary_officecrashes indeed
15:45:00BitPuffin:/
15:48:07*Demos joined #nimrod
15:49:08BitPuffinzahary_office: I should read through the latest git manual soon. But anyways I'll wait until this part gets fixed because I don't see any other way to make it as correct as the current way is
15:51:09zahary_officewell, ok, it's useful if I get more bug reports while I'm still working on this
15:51:56BitPuffinzahary_office: you mean report this issue? just so that the progress is documented or something
15:53:35zahary_officeno, I mean that you help by trying out the new stuff - I can't spent time validating the features by writing a full blown matrix library
15:54:15BitPuffinah yeah
15:54:17BitPuffingotcha
15:54:26Demoshey zahary_office I think I have asked you this before but are you the author of boost::mixin?
15:54:30BitPuffinyeah well when I've read the fm then I'll probably want to use a few features here and there
15:54:52zahary_officeI used to work with the author in my previous company
15:54:52BitPuffinand if something shows up I'll probably ping you and Andreas first about it and report it
15:55:02zahary_officeit's based on my design that we used there
15:55:36*q66 joined #nimrod
15:56:02Demosah, I saw it and it looked neat. With the usual Boost issue that if you need to use something like that you should consider not using c++
15:56:52zahary_office:) fowl has made something similar for Nimrod, although boost::mixin still has quite a bit more features
16:00:15dom96Varriount: pong
16:01:02Demosand I was again impressed last night on just how much more terse nimrod generics can be compared to c++ templates
16:03:28DemosI did have some issues with static[string] though, I wanted to have a `.` operator that returned a vector of length fields.len, for swizzleing, but that did not seem to work
16:06:00BitPuffinyeah I know the feelin Demos
16:06:18BitPuffinhowever how is string defined?
16:06:35Demoswhich one, the "holy shit my definitions can be less than 300 chars now" or the "awwww this totally cool and insane features does not work"?
16:06:43Demosfields: static[string]
16:06:55BitPuffinI meant string itself
16:07:02BitPuffinis there no way to specify the length of a string
16:07:02DemosI think it is a magic
16:07:08Demosnot really
16:07:11BitPuffinlike var a: string[29] or something
16:07:21Demosarray[0..29, char]
16:07:28DemosI think you can initialize a string with a specific length
16:07:46BitPuffinyou can
16:07:51BitPuffinstring(20) but that's a proc
16:08:09Demosand ofc I could say type ConstLenString[L: static[int]] = generic x x is stirng x.len < L
16:08:23Demosbut strings are dynamicly allocated, that is the point
16:08:29Demosfixed length strings are nearly always bad
16:08:47Demosyou can take an array and cast it to a cstring I think
16:08:57zahary_officefor swizzle in particular, I'll add a test to the suite - len on a static string is legal constant
16:09:25Demosactually can static[T]s be anything, like could I have a static[TTable[string, int]] or something?
16:09:26BitPuffinzahary_office: yes but it's not availabre in the return type part
16:09:36BitPuffinI was trying to this kind of vodoo with something else
16:09:49zahary_officeDemos, yes
16:09:59Demoswowah. That is pretty wild
16:10:00BitPuffinproc foo(a: static[string]): T[a.len]
16:10:03BitPuffinit'll go like wtf is a
16:10:08BitPuffinat least when I tried it
16:10:12BitPuffinmaybe that has been improved
16:10:18Demoswell T is not really a thing there I think
16:10:35Demosbut yeah
16:10:36Demosit does
16:10:41BitPuffinimagine there being a type T earlier
16:10:50BitPuffinDemos: you need to get a better imagination dude
16:10:51Demosright
16:11:18Demosit fails in a similar way when you have like proc foo(bar: TGenericType): type(bar).T
16:11:24Demosor even TGenericType.T
16:11:52DemosI gotta go, much maths. So Algebraic
16:12:00BitPuffinwhen all these tiny things left have been fixed and I can push up the latest updates to linagl I can finally be proud of it
16:12:49BitPuffinbtw zahary_office, do you think this might work now?
16:12:52BitPuffinproc sub*[T; R, C: range](m: TMatrix[T, R, C], therow, thecol: TInteger): TMatrix[T, R.low..R.high-2, C.low..C.high-2] {.noSideEffect.} =
16:12:56*q66 quit (Ping timeout: 252 seconds)
16:13:01BitPuffinI had when false'd it out because the compiler said no
16:13:10BitPuffinalthough this should obviously not be a range anymore
16:13:14BitPuffinold code is old
16:13:26BitPuffinoh wait no
16:13:29zahary_officedo you know what's even better than bug reports? test cases in the suite :)
16:13:33BitPuffinit is also dependend on being able to do static thingy
16:13:37BitPuffinin the generic params
16:15:56BitPuffinyou are right in that
16:16:07BitPuffinshould probably just add linagl to the test case
16:16:11BitPuffinsince it uses the fuck out of generics
16:16:14*Demos quit (Ping timeout: 252 seconds)
16:17:09zahary_officetry to break it down in the various features that currently don't work
16:18:11BitPuffinwell the only thing I can think of really is proc foo[T: static[sometype]
16:18:36Mat3ciao
16:18:42*Mat3 quit (Quit: Verlassend)
16:18:56BitPuffinand type foo[T:static[something]], proc bar[T](a: foo[T])
16:18:59zahary_officeout of the conversation, I also wrote down proc foo(a: static[string]): Type[a.len] =
16:19:13zahary_officeand proc foo(x: Matrix): x.type.T
16:19:18BitPuffinyeah true
16:19:32BitPuffinit's better to have them as tests as it ensures it stays fixed
16:19:36BitPuffinand no regression slips in there
16:19:53BitPuffinbet you didn't know that, I had to explain it to you obviously
16:25:23*q66 joined #nimrod
16:42:49*aftersha_ joined #nimrod
16:44:59*noam quit (Ping timeout: 240 seconds)
16:45:34*noam joined #nimrod
16:51:02*DAddYE joined #nimrod
17:33:08dom96nequitans: when are you submitting your article to reddit?
17:35:07*easy_muffin quit ()
17:40:34*aftersha_ quit (Quit: Computer has gone to sleep.)
17:56:02*brson joined #nimrod
18:02:33*aftersha_ joined #nimrod
18:04:18*carum joined #nimrod
18:09:33nequitansdom96, i'm ready when others are!
18:11:34*dom96 is ready
18:12:28OrionPKdom96 is there a way to do case insensitive routes in jester?
18:12:38OrionPK(without regex)
18:12:48dom96OrionPK: Don't think so.
18:14:46dom96How many people can we count on to upvote nequitans' article?
18:24:34OrionPKwhat article
18:29:31dom96http://geetduggal.wordpress.com/2014/03/03/consider-nimrod/
18:48:41AraqI'm ready but will leave in about one hour
18:52:32dom96well i'm leaving now
18:52:55Araqwell that's too bad
18:53:18*Matthias247 joined #nimrod
18:53:42Araqping zahary, zahary_office I'm fixing the nkExprColonExpr issues in the vm.nim now properly
18:53:43*Matthias247 quit (Client Quit)
18:54:57*Matthias247 joined #nimrod
18:57:40*carum quit (Remote host closed the connection)
18:58:02nequitansi'm back in now :)
18:59:33*aftersha_ quit (Read error: Connection reset by peer)
18:59:56*aftersha_ joined #nimrod
19:02:33*carum joined #nimrod
19:19:29*Endy quit (Quit: HydraIRC -> http://www.hydrairc.com <- Organize your IRC)
19:19:55*Demos joined #nimrod
19:36:34*carum quit (Remote host closed the connection)
19:56:46Araqbbl
20:00:28dom96nequitans: just submit it already
20:00:47nequitanslol
20:00:48nequitanskk
20:00:53nequitanssubmitting now
20:04:06nequitansI'm a reddit noob, so based on previous discussions, i'm assuming is this the best one: reddit.com/r/programming
20:04:14dom96yes
20:04:27dom96Make sure the title is good
20:04:47nequitansHow about "Why I am programming in Nimrod right now"
20:05:06dom96No, you should just use your articles title.
20:05:17nequitansah, ok
20:05:39nequitansrunvnc also suggested: news.ycombinator.com
20:05:51dom96yes. submit there too
20:06:01dom96HN is harder though
20:06:14dom96But still worth a try
20:06:30nequitanskk
20:07:59nequitansSUBMITTED (to reddit)
20:08:36dom96I don't see it
20:08:37dom96http://www.reddit.com/r/programming/new/
20:09:07nequitanshmmm
20:09:08nequitanshttp://www.reddit.com/r/programming/comments/209a2w/consider_the_nimrod_programming_language/
20:09:57dom96strange
20:09:58dom96oh well
20:10:00dom96upvoted anyway
20:10:19nequitansyea, maybe there's a delay or screening process to get to the 'new' page?
20:10:21*aftersha_ quit (Quit: Computer has gone to sleep.)
20:10:27dom96perhaps
20:10:36dom96or maybe it's because it's already on the front page of r/programming heh
20:10:46*aftersha_ joined #nimrod
20:10:49dom96Everyone else upvotes ^
20:11:25nequitansI also submitted to HN
20:12:16*carum joined #nimrod
20:13:08Demosit is actually on "hot" for me
20:13:21dom96upvoted on HN too
20:13:32dom96https://news.ycombinator.com/item?id=7388014 for the lazy
20:14:01dom96HN really depends on those early upvotes.
20:15:19nequitansCheers. Yea, I see 2 points on HN
20:15:42dom96we need more!
20:16:40nequitanscool, i'm getting some of my friends who have listened in on a lot of my nimrod discussions
20:18:01*Demos quit (Ping timeout: 240 seconds)
20:23:44*carum quit (Remote host closed the connection)
20:25:11*carum joined #nimrod
20:25:34reactormonkdom96, comment on reddit, have fun
20:29:11nequitanslol, sophomoric
20:33:21dom96nequitans: You wanna answer that? P
20:33:23dom96*:P
20:33:44nequitansI'll be like, "actually, i'm a junior ...; X=programming"
20:34:26dom96hrm, someone replied.
20:34:34dom96nequitans: A junior what?
20:35:16dom96Doesn't look like the HN submission will make it to the top :\
20:35:20EXetoCbird watcher?
20:35:21nequitansoh, it was a play on 'sophomore' :-P
20:35:37nequitansyea, my friends noticed that their upvote didn't changed the points
20:36:24dom96I think you need to be registered for a certain amount of time
20:36:27dom96or something like that
20:37:14nequitansic, that's what i thought
20:38:00EXetoCyou should bribe some people. give them $1 each
20:38:42dom96How come no one else here has a HN account!?
20:38:45*soc joined #nimrod
20:38:51dom96hello soc
20:39:58Matthias247I also tried to upvote it
20:40:03Matthias247don't know if it worked
20:40:12Matthias247(on reddit)
20:40:40Matthias247the strange thing is I still don't see it on the "new" page
20:41:26nequitansyea
20:42:37dom96Nice to see reddit defending you :)
20:42:45nequitanscool at 7 points now
20:42:58Skrylarmeep
20:43:31nequitansi wonder why the points fluctuate (i.e. downvotes seem to go up or down on every refresh)
20:43:48dom96It's by design.
20:43:51dom96Can't remember why though.
20:44:29*carum quit (Remote host closed the connection)
20:45:35EXetoCit's to pwn bots apparently
20:46:00nequitansinteresting
20:46:44sochi
20:46:56socAraq: I moved the meetup to 25th now
20:46:56nequitanshi!
20:47:26nequitans(for those just entering, here's the reddit link if you'd like to upvote: http://www.reddit.com/r/programming/comments/209a2w/consider_the_nimrod_programming_language/)
21:03:14nequitans#1 on rising at the moment
21:04:20*aftersha_ quit (Quit: Computer has gone to sleep.)
21:07:26*carum joined #nimrod
21:08:08*carum quit (Read error: Connection reset by peer)
21:08:26*carum joined #nimrod
21:08:54*carum quit (Read error: Connection reset by peer)
21:09:13*carum joined #nimrod
21:10:25fowllol http://www.reddit.com/r/programming/comments/209a2w/consider_the_nimrod_programming_language/cg10z9r
21:10:42nequitansyea
21:10:51nequitansI'm writing a short reply to that one now
21:10:58fowl'oh u say this is a system programming language? prove it is C then.'
21:11:41*flaviu joined #nimrod
21:11:55*q66 quit (Ping timeout: 264 seconds)
21:13:41EXetoCthat's not the definition of "systems programming language"?
21:14:49nequitansI'm making the point that I've had success digging into 'lower-level' things like linking to C, manually managing memory, and even pointer arithmetic
21:16:40*flaviu quit (Remote host closed the connection)
21:17:39Matthias247most of the things he mentions are also covered through the FFI and the fact that nimrod compiles to C
21:17:54Matthias247the other things are libraries
21:17:55nequitanswhat's the FFI
21:18:25Matthias247foreign function interface. You can interface to C code
21:18:30nequitansah, cool
21:18:33Matthias247call C functions from C libraries
21:18:41nequitansyea, i also mentioned the libraries
21:19:53*flaviu joined #nimrod
21:22:24nequitansposted the reply
21:24:03*q66 joined #nimrod
21:27:33*tnew joined #nimrod
21:28:12dom96hi tnew
21:29:10tnewhi
21:29:40tnewi sincerely hope your campaign for nimrod will work :)
21:30:37tnewsaw the reddit discussion. i think nimrod could be a serious competitor to rust and such
21:32:20dom96It already is a pretty serious competitor ;)
21:33:50flaviunequitians: Posted a reply to you with some more information that I've come across
21:34:53Araqhi tnew welcome
21:35:28tnewhi. thanks
21:36:16Araqlol with the time that it took him to write every single feature he could think of C/posix/linux he could read our docs and see we have all that stuff
21:36:25Araq*write down
21:37:53nequitansflaviu, thx
21:38:27nequitansAraq, yea, and most of the points aren't really 'systems-level' distinctions
21:38:48nequitansbut it was much more thought out than the first one :)
21:39:10nequitanss/the first one/the first comment
21:39:56Matthias247Araq: I thought the same :)
21:41:05dom96"Write to the system log.", is he talking about Windows' event logs?
21:42:19nequitans#6 on reddit programming hot
21:42:36dom96well I was going to give him an example on how to do each of his little bullet points but you guys answered him well enough already.
21:43:56Matthias247dom96: I guess about linux syslog
21:45:23reloc0 /buffer 3
21:52:15nequitansMatthias247, your comment was responded to
21:54:20nequitansHN at 12 points
21:56:09dom96whoa
21:56:32dom96Seems like a knock-on effect from reddit.
21:56:48tnewis the same article submitted to lobsters?
21:57:01nequitanswhat's lobsters?
21:57:17tnewsort of hn, but a bit newer
21:57:44tnewlobste.rs
21:58:25nequitansic
21:59:22Matthias247I think I don't answer that ;)
22:00:47*Demos joined #nimrod
22:05:31nequitansMatthias247, smart!
22:05:39*carum quit (Remote host closed the connection)
22:07:15dom96I just replied
22:07:37Matthias247yeah. I don't know whether I'm as "systems programmer", but sometimes I'm smart ;)
22:09:23*tnew is now known as rvd
22:09:32*rvd is now known as tnew
22:09:42*tnew is now known as _rvd
22:14:16*q66_ joined #nimrod
22:14:37*q66_ quit (Changing host)
22:14:37*q66_ joined #nimrod
22:14:41*q66 quit (Disconnected by services)
22:14:43*q66_ is now known as q66
22:18:22nequitans>1,000 article views
22:18:59dom96https://twitter.com/nimrodlang/status/443873714690875392 :)
22:19:31dom9610 people currently on nimrod-lang.org
22:20:01flaviudom96: Whats typical?
22:20:30dom96flaviu: Typical number of visitors per day?
22:21:47flaviuNo, at a time. Like currently you have 10 people, what is normal?
22:22:53*awestroke quit (Remote host closed the connection)
22:22:58dom96Like 1.
22:23:10dom96I don't check it often
22:23:26dom96I think Whisper doesn't understand how wrappers in Nimrod work.
22:25:30dom96or i'm just misunderstanding
22:25:31*dom96 is tired
22:26:02fowlits ok
22:26:11fowli already downvoted everything he ever said on reddit
22:26:14Matthias247he seems to be quite posessed by the "system" term :)
22:26:35dom96fowl: that's the true reddit spirit!
22:26:53Skrylarand thats why i ignore rep systems :e
22:27:27Matthias247and I think he mainly refers to it in the sense how distributions work and how .so's have ABI problems on Unix
22:29:15dom96I'm wondering whether he thinks that wrapping requires Nimrod-specific C code like it does for Python
22:31:43*Matthias247 quit (Read error: Connection reset by peer)
22:35:04flaviuBarchar, putting your text in a code block is hard to read
22:36:19dom96Who is barchar?
22:36:43dom96Anyone in this channel?
22:36:43*carum joined #nimrod
22:37:10nequitansI saw barchar comment on the reddit post
22:37:16*carum quit (Read error: Connection reset by peer)
22:37:18flaviuI don't know, some people have different aliases
22:37:34dom96indeed.
22:37:39*carum joined #nimrod
22:40:15dom96ugh: http://www.reddit.com/r/programming/comments/209a2w/consider_the_nimrod_programming_language/cg13wfx
22:41:33flaviuThat guy seems to like trolling occasionally
22:44:20AraqAnswer: fun fact: "Windows Vista" means "Windows chicken" in Spanish
22:45:06dom96Araq: Do it
22:45:20Araqor was it Italian?
22:45:29*Demos quit (Ping timeout: 240 seconds)
22:46:38*q66 quit (Ping timeout: 246 seconds)
22:47:02dom96"Holy crap the music in that video's intro makes me feel like I'm about to watch the Hunger Games. And then it's just a guy talking." lolwat
22:47:08*dom96 watches
22:47:49dom96hah.
22:47:56dom96Araq: It's the talk you sent me.
22:48:13_rvdlatvian
22:48:24Araqdom96: what?
22:48:32Araqwhat did I send you?
22:48:38dom96https://news.ycombinator.com/item?id=7388670
22:48:46flaviuDom96, mind if I post your closure macro?
22:48:46dom96The youtube link that in comment
22:49:17dom96flaviu: No, but please emphasise that it's a work in progress
22:52:49Skrylari'm starting to become concerned with people's definition of genius
22:52:51flaviudom96: If you want alternate formatting of the WIP, tell me and I can edit: https://pay.reddit.com/r/programming/comments/209a2w/consider_the_nimrod_programming_language/cg148sv
22:53:18Skrylari've seen a few instances now where just being able to string together notes on a piano makes someone a 'musical genius' or actually knowing how a compiler works counts as genius o_O
22:53:34Skrylar@that video
22:53:53flaviuBTW dom96, you replied to the wrong guy. I just fixed his formatting on the list
22:54:41dom96flaviu: Yeah, but I figured most will read your better formatted version anyways.
22:55:15dom96In any case, too late now.
22:55:34nequitansi'm headed out, be online later!
22:55:44dom96nequitans: See ya. Thanks for the article :)
22:56:16nequitansthanks to you all for your help and hopefully some good discussion comes out of it along with more well-deserved attention to nimrod
22:58:27Araqnequitans: thanks for your effort
22:59:07nequitansAraq, my pleasure: coding more nimrod tonight!
22:59:37*q66 joined #nimrod
23:01:17_rvdthere really should be a comment system where you could vote comment "sideways" or something, as a way of sorting tangential comments out
23:01:53flaviu_rvd: Reddit downvotes are made for that, but they turned into 'I disagree'
23:03:43flaviuAraq: Does the PRNG have to be ISAAC? Xorshift is very fast, and while not a CPRNG, it is fairly good (passes diehard)
23:06:52*carum quit (Remote host closed the connection)
23:06:58Araqflaviu: ask somebody who knows what you're talking about
23:07:33AraqI only know everybody hates C's random number generator
23:09:19*carum joined #nimrod
23:11:23*darkf joined #nimrod
23:19:27NimBotAraq/Nimrod devel 2b481a6 Dominik Picheta [+0 ±3 -0]: Fixed tasyncawait on Windows.... 4 more lines
23:19:27NimBotAraq/Nimrod devel 4dbf101 Dominik Picheta [+0 ±1 -0]: Fix compilation on linux.
23:40:24*Varriount quit (Ping timeout: 245 seconds)