00:07:19 | * | carum joined #nimrod |
00:11:22 | runvnc_ | cool night |
00:11:45 | runvnc_ | reactormonk: there is actually a #sqlite on freenode |
00:12:02 | runvnc_ | 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:26 | Varriount | Araq: You still here? |
01:03:31 | Varriount | dom96: 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:33 | runvnc__ | 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:59 | nequitans_ | ah, not yet, checking it out |
01:08:12 | nequitans_ | ah, i c |
01:09:37 | * | DAddYE quit (Ping timeout: 240 seconds) |
01:10:11 | Varriount | nequitans_: Let me know when you've published your blog post. *excited* |
01:10:33 | nequitans_ | Varriount, shall I wait 'till tomorrow when dom96 and Araq are around? |
01:11:14 | * | DAddYE_ quit (Ping timeout: 245 seconds) |
01:11:15 | Varriount | nequitans_: I guess... |
01:11:54 | nequitans_ | 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:08 | Varriount | Hm. 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:40 | runvnc__ | imagemagick has rotate |
01:16:26 | Varriount | Yeah, 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:50 | runvnc__ | https://groups.google.com/forum/#!topic/android-developers/q1PQmwZSgoE |
01:20:09 | Demos | I would not do that. Rotateing images is a lossy operation |
01:20:18 | Demos | unless you are rotateing them 90 degrees |
01:20:51 | runvnc__ | is it for like an animated texture that rotates |
01:21:30 | Demos | if 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:03 | Demos | but for an animated texture you should just rotate the UVs or something |
01:23:33 | fowl | see how sdl/sfml do it |
01:23:57 | fowl | if you squint your eyes while you c&p its not violating the license |
01:24:07 | Varriount | :3 |
01:24:22 | Varriount | Which reminds me, I need to finish that DevIL wrapper. |
01:26:41 | Demos | just use my freeimage wrapper :D |
01:27:01 | Demos | or translate stb_image, that seems popular |
01:27:06 | Skrylar | meep |
01:27:29 | Skrylar | SDL2's license is pretty liberal though |
01:30:37 | Varriount | Demos: I've used both |
01:31:08 | Varriount | Rather, I thought that FreeImage was not loading things properly, so I used and expanded fowl's DevIL wrapper |
01:31:40 | Varriount | I now have a texture loading procedure with two implementations. |
01:31:42 | Demos | loaded stuff fine for me |
01:32:00 | Demos | it is larger than stb_image or devil |
01:32:06 | Demos | and stb would be all nimrod, which would be nice |
01:32:16 | Varriount | Yeah, it later turned out I was doing sizeof(float) instead of sizeof(GlFloat) |
01:32:25 | Varriount | What's stb? |
01:32:31 | Demos | like static linking freeimage gives me a 3M executable after stripping, and that is with libstdc++ dynamicly linked |
01:32:50 | Demos | http://nothings.org/stb_image.c |
01:33:27 | Varriount | Wait, you think it would be easy to translate that to nimrod, instead of just making a wrapper? |
01:33:59 | Demos | yeha |
01:34:03 | Demos | maybe |
01:34:13 | Demos | I think it is pretty good standard C code |
01:34:47 | Demos | although I dont think it does the conversions the FreeImage can |
01:34:50 | Demos | which I like |
01:35:04 | Demos | I like being able to just have everything come out in RGBA8888 |
01:36:50 | * | nequitans_ quit (Ping timeout: 246 seconds) |
01:37:41 | Demos | apperently 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:06 | Demos | maybe it leaks but I am not sure that I care |
01:38:15 | Demos | or well "leaks" |
01:57:29 | Skrylar | :| nimrod is being dumb with math |
01:57:38 | Skrylar | current / blah.len # should be the percent of use |
01:58:22 | * | nequitans_ joined #nimrod |
02:06:19 | Demos | why not current / blah.high? |
02:06:21 | * | reactormonk joined #nimrod |
02:06:33 | Demos | wait derp |
02:06:35 | Demos | herp |
02:06:41 | Skrylar | they both give really weird values unless i surround everything in float()'s |
02:06:49 | Skrylar | Yet / implicitly converts them to floats.. and does so.. wrongly |
02:06:52 | Demos | probably just integer devision |
02:10:05 | Skrylar | bleh, i was hoping not to have to spend a third night on this damn hash table |
02:22:25 | fowl | Varriount, you should publish your devil/freeimage image loading thing |
02:23:48 | fowl | Varriount, 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:04 | fowl | SWIM should write an blog about the abundance of game dev stuff available for nirmd |
02:26:28 | Skrylar | i had issues where sfml was very slow |
02:26:35 | Skrylar | for no discernable reasons |
02:29:38 | Demos | fowl, the FreeImage wrapper is mine, and it is in babel |
02:29:59 | Demos | I may put a more friendly "one function" loader in babel though |
02:30:43 | Demos | but like a more nimrodic loader is a bit pointless since for games you are not doing much manipulation CPU side anyways |
02:31:17 | Varriount | fowl: SWIM? |
02:39:10 | * | superfunc joined #nimrod |
02:40:17 | superfunc | hey 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:23 | fowl | Varriount, someone who isnt me |
02:41:28 | Varriount | superfunc: What is the generic type T of n? |
02:41:51 | EXetoC | @ for sets? |
02:41:55 | superfunc | int in this case |
02:42:00 | * | Demos quit (Read error: Connection reset by peer) |
02:42:20 | superfunc | I think that sets can be initalized with an openarray/seq |
02:42:33 | Varriount | You'll be able to add it add it if you have a seq[TSet[myType[int]]] |
02:44:49 | superfunc | hmm, it seems to be having trouble when creating the hash. |
02:46:17 | superfunc | Error: type mismatch: got (Node[int]) but expected one of: hashes.hash(x: openarray[A]): THash ...... |
02:48:08 | * | flaviu quit (Quit: Leaving.) |
02:48:14 | Varriount | superfunc: Could you post a bit more of your source code? |
02:48:31 | superfunc | sure, one sec |
02:48:55 | EXetoC | preferably a test case |
02:50:00 | * | Demos joined #nimrod |
02:50:10 | Varriount | fowl: What are the names of the various DevIL libs on linux? |
02:52:29 | superfunc | http://pastebin.com/XQH1xzBN# |
02:52:57 | superfunc | tried to just leave the relevant stuff in, working on the proc. kruskalMST right now |
02:53:43 | Varriount | superfunc: And where in the file do you get the type error? |
02:54:17 | superfunc | the files are main.nim and node.nim, the error pops up in node.nim in kruskalMST in the instantiation of TSet |
02:54:45 | superfunc | specifically, this line: " var tmpS: TSet[Node[T]] = sets.toSet([nd]) " |
02:55:36 | EXetoC | Varriount: libIL.so and libILU.so |
02:56:08 | Varriount | superfunc: Is tmpS supposed to just be tmp? |
02:57:31 | superfunc | yeah, that got switched around, but the error I sent was regarding the proper case of tmpS being passed in |
03:01:51 | Varriount | superfunc: 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:59 | Varriount | What version of the compiler are you running? |
03:02:24 | fowl | Varriount, libIL.so libILU.so libILUT.so |
03:02:28 | superfunc | 0.9.3 (2014-3-5) |
03:02:44 | fowl | no wait i dont have libILUT |
03:02:49 | Varriount | superfunc: Is it compiled from the master branch, or the devel branch? |
03:03:13 | superfunc | didn't even realize I was on devel lololol |
03:03:23 | superfunc | lemme rebuild on master and give it a shot |
03:03:58 | * | carum joined #nimrod |
03:04:32 | Skrylar | hm, this is saying a cuckoo table should hit 50% utilization |
03:04:47 | Skrylar | admittedly i'm using a range of integers to stress test, so its probably a very unfavorable set of keys |
03:05:03 | Varriount | superfunc: No, devel would probably work. |
03:05:28 | Skrylar | 4-key lookup is supposed to hit 90% utilization |
03:05:32 | Varriount | superfunc: Sorry, I did get your error, it's just that I missed it (it scrolled above my screen) |
03:06:05 | Varriount | got (seq[TSet[Node[int]]], Edge[int]) |
03:06:36 | superfunc | ah |
03:07:30 | Varriount | https://gist.github.com/Varriount/9500039 |
03:07:38 | Varriount | Those are the errors that I get. |
03:08:10 | Varriount | I presume that you are concerned about the first error in that printout. |
03:09:08 | superfunc | yeah the one on line 21 is the one I get with the full source |
03:11:11 | Varriount | Lets see. It's got something to do with the toSet() call.. |
03:16:23 | superfunc | it seems to be happening here in set.nim " var h: THash = hash(key) and high(s.data) # start with real hash valu " |
03:19:22 | Varriount | superfunc: Yeah, I'm trying to work out what exactly is going wrong. |
03:21:23 | * | q66 quit (Quit: Leaving) |
03:21:51 | Varriount | What doesn't make sense is the fact that the rawImpl template isn't called in the toSet() proc |
03:22:23 | Demos | why is the field param of `.` a string, instead of a static[string]? |
03:22:52 | Demos | I want to return an array of length field.len |
03:24:29 | fowl | it is static str |
03:26:52 | Varriount | superfunc: I'm tempted to say that what you have is a bug. |
03:27:01 | Varriount | Or rather, you found a bug in the sets module |
03:27:43 | superfunc | thats good |
03:27:56 | superfunc | although it means I'll just have to use a sequence for now, which will be a bit slower |
03:27:57 | Demos | gggggrrr I can not seem to use str.len as a param for a static[int] |
03:27:59 | Demos | from a static[str] |
03:28:07 | Demos | not really unexpected but still |
03:28:16 | Varriount | superfunc: Araq should be up in.. about 4-6 hours? Maybe a bit longer. |
03:28:59 | superfunc | also, rawImpl is called from toSet though |
03:29:39 | Varriount | Yeah. it seems that the proc to add a key calls it to generate a new key |
03:30:35 | superfunc | yeah, seems like incl->inclImpl->rawInsert->rawImpl |
03:30:49 | Varriount | superfunc: The main thing is, the compiler lists "hashes.hash(x: T): THash" as one of the implementations, which should accept Node[int] |
03:31:20 | Varriount | But for some reason it's skipping over that selection |
03:32:32 | superfunc | yeah] |
03:33:50 | Varriount | superfunc: By the way, what exactly is it you are implementing? |
03:34:33 | superfunc | working on a small graph library |
03:34:39 | Varriount | Ooh, neat |
03:34:48 | superfunc | just basic MSTs, shortest paths and a few other ops |
03:35:09 | superfunc | for the second half of the semester, I'm thinking of adding spatial trees, specifically octrees, quadtrees and R trees |
03:35:15 | Varriount | superfunc: I wonder if it's failing because of the recursive nature of your node type. |
03:35:44 | superfunc | that sounds pretty plausible |
03:36:28 | Varriount | Anyway, it's something to ask Araq, and possibly file a bug report about. |
03:36:59 | superfunc | thanks for all the time, I appreciate it |
03:38:27 | Varriount | superfunc: I'm glad you're using nimrod :D |
03:39:04 | superfunc | its fun, I've been frustrated a bit by this problem, mostly because I was trying to figure it out without help lol |
03:39:42 | superfunc | mostly 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:12 | Varriount | Hm. 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:54 | Varriount | Hm. 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:03 | Skrylar | bleh. its going to be a long night |
03:47:15 | superfunc | Quick 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:26 | Skrylar | superfunc: del, iirc |
03:47:43 | superfunc | Skylar: ty |
03:47:46 | Skrylar | del is basically seq[x] = seq[high(seq]) |
03:47:50 | Skrylar | so it replaces the current item with the last |
03:47:59 | Skrylar | s/current item/removed index |
03:48:24 | Skrylar | however that will also shorten len, so you would probably need to use a while > x.len if you do that |
03:48:38 | Skrylar | alternatively you can do the swap yourself, and just set the deleted index at zero |
03:48:44 | Demos | Varriount: 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:03 | Skrylar | i have no idea what a static[T] is :( |
03:49:08 | Demos | I used a hacked together library for basic stuff, I just have seperate functions for each size vector |
03:50:02 | Skrylar | also: the g command is very useful when debugging in vim |
03:50:10 | * | carum quit (Ping timeout: 246 seconds) |
03:50:28 | Skrylar | g/debugEcho/d "Removes all of the debug tracers |
03:52:03 | Varriount | Demos: So I couldn't just wrap GLM? |
03:52:25 | Demos | Varriount: nope |
03:52:48 | Demos | it would be a pain |
03:53:01 | Demos | and you dont need a whole lot of linear algebra operations for a basic game |
03:53:17 | superfunc | hmm. if I had a sequence of sequences, is there a clean way to simple merge two of the subsequences? |
03:54:09 | Varriount | superfunc: Without duplicates? |
03:54:36 | Varriount | Oh, sorry, wasn't thinking |
03:54:56 | Varriount | superfunc: sequtils.concat would be your friend, I think |
03:55:55 | Varriount | That'll merge all of the sub-sequences in a sequence, so you could probably use a slice to select 2 |
03:56:32 | superfunc | yeah, that should work. cool, it'll feel like I'm in scheme again :D |
03:56:48 | superfunc | minus the excessive toenail clippings |
04:01:38 | Skrylar | eh, if you already *know* the math then its not bad |
04:01:56 | Skrylar | the biggest thing you get ify ou already know the math is that GLM will already defer to SSE commands if i remember |
04:02:11 | Skrylar | stuff like the BLAS libraries already use the most optimized implementations |
04:02:35 | Skrylar | wrapping GLM is going to tank your compile speed tho |
04:06:14 | Demos | BLAS is not really usable |
04:06:21 | Demos | rather it is annoying |
04:06:29 | Demos | and you probably do not need SSE for game vector math |
04:06:44 | Demos | if you are doing that much vector math you should probably just do it on the GPU |
04:06:58 | Demos | and I dont think GLM hurts compile times that much |
04:07:08 | Demos | trouble is that you have to wrap concrete types in glm |
04:07:24 | Demos | you can not pass a generic param on to a C++ template |
04:10:31 | fowl | er so is expr[string] completely replaced now |
04:11:26 | fowl | expr[t] i mean i guess |
04:12:52 | * | DAddYE joined #nimrod |
04:22:45 | Skrylar | i should port this http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/ |
04:23:20 | Demos | don't we have the guy who implemented python's dicts in the community? |
04:29:10 | * | carum joined #nimrod |
04:32:39 | Skrylar | i have no idea |
04:32:47 | * | Demos quit (Ping timeout: 252 seconds) |
04:33:00 | Skrylar | i 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:44 | Skrylar | wb Demos |
05:00:55 | Demos | can not sleep |
05:13:56 | Demos | I think I have opened like 6 issues in the past three days :o |
05:26:38 | Skrylar | i'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:07 | Skrylar | i 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:41 | Heather | ping |
06:43:56 | Heather | map(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:39 | Varriount | Heather: How is the map proc traditionally done in Rust? |
07:34:18 | Heather | Varriount: .map(|x| ...) |
07:34:50 | Heather | Varriount: or do I understand proc there wrong? |
07:36:12 | Varriount | Heather: You don't *have* to have an inline proc as the map argument. |
07:37:35 | Heather | Varriount: isn't it just lambda? |
07:38:22 | Varriount | Heather: 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:07 | Heather | Varriount: ? |
07:40:01 | Heather | Varriount: I mean what difference with a.map(|x| x + "42") |
07:42:08 | Varriount | Heather: 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:33 | Varriount | Heather: 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:17 | Heather | Varriount: the thing is... map is not based on type there? |
07:44:53 | Heather | Varriount: e.g. it will be iterated and dynamically typecasted to proc argument? |
07:46:28 | Varriount | Heather: In nimrod, map is a procedure which takes two arguments. |
07:47:11 | Heather | I see |
07:47:15 | Varriount | The first argument is a sequence or other type that can be implicitly converted to an openarray |
07:48:03 | Varriount | The second argument is a procedure that takes an element of the first sequence. |
07:48:09 | Varriount | *first argument |
07:48:26 | Matthias247 | Therefore it's the same as in rust (and anywhere else) ;) |
07:48:48 | Matthias247 | only the closure syntax differs |
07:49:03 | Varriount | Heather: Is German your primary language? |
07:52:08 | Heather | Varriount: Russian |
07:55:34 | Heather | Matthias247: 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:36 | Varriount | Heather: Extensive compile-time mechanisms such as macros and templates, A non-blocking garbage collector, type classes, source code filters. |
07:59:45 | Varriount | Nimrod has compile time mechanisms such as macros, templates, and compile time expressions/procedures. |
08:00:59 | Varriount | These 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:52 | Varriount | They also allow programmers to create flexible domain specific languages and variants. |
08:03:16 | Varriount | Nimrod'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:04 | Varriount | The 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:21 | Varriount | Type classes are a very powerful mechanism for generic programming, akin to the abstract types found in functional programming languages. |
08:06:59 | Varriount | Nimrod'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:48 | Matthias247 | too bad c++11 did not get these (concepts).Could havve eased a lot of pain :( |
08:09:27 | Matthias247 | and you could add the module system, which is something c++ is also still missing (but most alternatives also have one) |
08:09:35 | Varriount | I 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:32 | Varriount | Matthias247: Does c++ still have that "int a = a;" undefined behavior? |
08:10:32 | Matthias247 | c++ is not that bad as the whole talk on the net suggests |
08:10:45 | Matthias247 | Varriount: no clue. Why would you do that? :) |
08:10:47 | * | silven joined #nimrod |
08:11:14 | Varriount | Hi silven. |
08:11:57 | Varriount | Matthias247: Oh! I know what nimrod has. A helpful, eager community. |
08:12:04 | Matthias247 | imho 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:15 | Matthias247 | Varriount: oh yeah ;) |
08:19:00 | Matthias247 | and from my point of view Nimrod code is quite easy to read and to understand. Rust can be very hard |
08:19:23 | Matthias247 | and I like the unified function call syntax |
08:20:55 | Varriount | Some might complain about the fact that you can call a function two ways. |
08:22:18 | Matthias247 | that will be the case for any kind of decision :) |
08:22:27 | Varriount | True. |
08:25:41 | Matthias247 | Thread-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:16 | Skrylar | Varriount: They don't complain about it in Lua. And there's a lot of C++ users who embed lua... :B |
08:31:08 | Heather | Varriount: Matthias247: wow, thanks for all the words ) |
08:32:28 | Heather | Matthias247: rust is not hard ) when you compare with something really hard alike Idris :) |
08:33:47 | Varriount | Or Malbolge -> http://en.wikipedia.org/wiki/Malbolge |
08:34:26 | Matthias247 | Heather: probably depends for whom ;) |
08:35:29 | Heather | Matthias247: right but I doubt there are one who will understand Idris easier than rust ) |
08:35:57 | Matthias247 | In the rust channel most people are guys that do Haskell for breakfast |
08:36:23 | Matthias247 | that's quite different from the average developer |
08:36:44 | bstrie | Matthias247: that's quite a misrepresentation |
08:37:13 | Varriount | It'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:44 | Heather | Varriount: what o_O |
08:38:16 | Matthias247 | bstrie: the thing about haskell or that the people are very skilled? :) |
08:38:30 | Varriount | Heather: "depression" meaning, a hole or lowered area of the ground. |
08:39:05 | Varriount | I have an unfortunate talent for philosophy |
08:39:31 | Heather | Matthias247: I think that Rust is not anyhow alike haskell |
08:39:40 | Heather | Matthias247: it's more like C |
08:39:53 | Heather | on sterioids, sure |
08:40:32 | Heather | Matthias247: and hardest thing there for me is lifetime ) |
08:40:47 | Varriount | "lifetime"? |
08:40:54 | Heather | variables lifetime |
08:41:22 | Heather | often because of bugs :D nevermind, it's just another advance level, same as in C with pointers |
08:42:03 | Heather | ah, lifetime and ownership ) |
08:42:04 | Heather | sure |
08:42:10 | Matthias247 | Heather: 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:55 | Varriount | Code is read far more often than it is written. |
08:43:24 | Heather | well... rust is readable |
08:43:37 | Heather | and perl too |
08:50:50 | Varriount | Well yes, if you count 'readable' as in the strict definition "able to be read" |
08:51:10 | Varriount | A more accurate term would be "easily understood" |
08:52:25 | Heather | bstrie: lol downloads count https://www.nuget.org/packages/Rust/ |
08:53:38 | Matthias247 | oh that's yours? I downloaded it once from there |
08:54:14 | Heather | Varriount: well... and you think map(a, proc(x: var string) = x &= "42") is "easily understood" ? :) |
08:54:52 | Heather | Matthias247: yep, It's hard to update because nuget works pretty unstable |
08:55:31 | Heather | & during upload nuget takes more than 1Gb ram |
08:55:45 | Matthias247 | I thinkg the two = make it hard to understand |
08:56:14 | Heather | Matthias247: I even don't like "x: var string" part |
08:57:10 | Matthias247 | dom96 did a macro for => where you could to map(a, (x: var string) => x &= "42") |
08:58:20 | Heather | and still there is this : var string :) |
08:58:30 | Matthias247 | yep :( |
08:58:39 | Matthias247 | but I think you don't want "var" there |
08:58:49 | Matthias247 | because it would mutate the result and "a" |
08:59:22 | Heather | well ideally I want to see type based, linq like map =) |
08:59:37 | Heather | but yes, var is horrible |
09:00:07 | Matthias247 | linq is cool. Although I don't use the SQL like syntax because I can't remember it |
09:00:38 | Heather | good IDE remember it for you :D |
09:01:29 | Skrylar | hrm.. time to make shiny graphs |
09:02:37 | Skrylar | i seem to remember ploticus being the easier route to graphs |
09:03:10 | Matthias247 | I would do a.Select((x) => (x + "42")) |
09:03:20 | Matthias247 | and my IDE remembers it ;) |
09:10:58 | Skrylar | yay. 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:49 | Skrylar | have 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:38 | Varriount | Skrylar: 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:51 | Skrylar | Varriount: in a cuckoo table, there are only N positions for any given entry, so retrieval is alway O(1) |
11:05:07 | Skrylar | regardless of load |
11:06:23 | Skrylar | i 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:42 | Skrylar | e.g. a collision will get stored in the next bucket as long as its not more than 30 cells away |
11:07:43 | Skrylar | a 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:03 | Skrylar | at 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:12 | Araq | Varriount: please add "which tests still fail" to nimbuild |
12:42:23 | Araq | dom96 won't do it anytime soon |
12:43:09 | Varriount | Araq: Pardon? What do you mean? |
12:43:17 | * | nequitans_ joined #nimrod |
12:43:47 | Araq | Varriount: in #nimbuild a gist is generated which tests have been broken |
12:43:59 | Araq | I want you to add the tests that still fail |
12:44:05 | Varriount | Araq: Ok. |
12:53:10 | Araq | thank you |
12:53:19 | Varriount | Araq: For the compiler bootstrap testing, do you want to test both bootstrapping in debug mode *and* release mode? |
12:53:36 | Araq | yes |
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:29 | profmakx | why the fuck does it take 4 hours to bootstrap rust? |
12:56:44 | profmakx | thats longer than buildworld & buildkernel on my machine |
12:56:50 | profmakx | and that builds a gcc toolchain |
12:57:40 | Varriount | profmakx: I don't know if it's 4 hours, I just know that it takes a long time. |
12:58:28 | Varriount | Also, 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:53 | EXetoC | profmakx: because a patched LLVM is built every time |
13:00:58 | EXetoC | hopefully you only have to do it once now |
13:02:30 | profmakx | a patched llvm |
13:02:32 | profmakx | ... |
13:03:28 | EXetoC | profmakx: yes, they had to make some necessary changes. apparently it's not something that has been merged yet |
13:04:19 | profmakx | ooof course |
13:04:24 | profmakx | it's always totally necessary |
13:04:54 | profmakx | like, 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:09 | profmakx | would 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:43 | profmakx | tasty |
13:06:44 | Varriount | Though, why does LLVM, even a patched LLVM, take 4 hours to bootstrap? Iirc, GCC only needs about 2 |
13:06:54 | profmakx | mhhm |
13:07:00 | profmakx | well it doesn't |
13:07:17 | profmakx | because freebsd world (which includes clang) takes less than an hour on my machine too |
13:07:32 | profmakx | so i'd guess that even rust will compile within that timeframe |
13:07:38 | EXetoC | Varriount: cus, C++? |
13:08:06 | * | profmakx doesn't want to try even. |
13:08:14 | Varriount | *even try |
13:08:14 | EXetoC | I thought it was ~4 hours on fairly old hardware. still, it takes quite some time |
13:08:57 | Varriount | Although, then that raises the question, why does bootstrapping nimrod take so little time? |
13:09:12 | Varriount | Is it some sort of black magic? |
13:09:32 | profmakx | much simpler compiler |
13:09:42 | Varriount | Howso? |
13:09:56 | profmakx | technically, since it compiles via C (doesn't it?) you'd have to add the time to bootstrap C/clang to it |
13:09:58 | EXetoC | cus, 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:13 | Varriount | profmakx: But I thought you were a professor :3 |
13:11:44 | profmakx | I am not |
13:12:00 | profmakx | and to be honest, I don't want to be one |
13:18:39 | Matthias247 | to be fair you would have to count the time for compiling gcc to nimrod compile time ;) |
13:18:48 | Matthias247 | then it would probably loose |
13:19:03 | Matthias247 | but fortunatly it doesn't require a patched gcc :) |
13:20:00 | Matthias247 | rust 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:32 | Varriount | Hi Endy |
13:25:45 | * | aftersha_ joined #nimrod |
13:34:19 | Varriount | Hm. What takes longer - testing if a set contains 2 members, or testing if the set's length is greater than two? |
13:35:02 | Araq | contains 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:37 | Varriount | Araq: 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:49 | Araq | actually we need a testament.cfg for these things |
14:05:17 | Araq | default should be "off" since most testing machines do not have windows/vcc |
14:05:45 | * | io2 quit () |
14:08:25 | Varriount | dom96: Ping |
14:08:57 | * | nequitans_ joined #nimrod |
14:09:10 | Varriount | Hi nequitans_, Araq is awake. |
14:09:27 | nequitans_ | Hi Varriount, noted |
14:09:40 | Araq | that's quite optimistic |
14:09:46 | Araq | but I'm not sleeping |
14:10:12 | nequitans_ | 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:38 | Varriount | I could have sworn we had an ".exe" proc that added the host system's binary extension.. |
14:21:06 | Araq | Varriount: in koch.nim |
14:21:49 | Varriount | Araq: 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:18 | BitPuffin | zahary_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:26 | BitPuffin | zahary_office: yeah it works now, fucking sweet :D good job |
15:24:43 | zahary_office | also, check out the dot operators for swizzle (this ia a bit older, it's in the manual under "dot operators") |
15:26:29 | BitPuffin | zahary_office: don't you mean the delegator? |
15:26:35 | BitPuffin | I need to update that yeah |
15:26:37 | BitPuffin | I tried once |
15:26:40 | BitPuffin | but it didn't work :P |
15:27:02 | BitPuffin | proc `~=`*[T; R, C: static[int]](a, b: TMatrix[T, R, C], tolerance: float = 1.0e-5): bool {.noSideEffect.} = |
15:27:19 | BitPuffin | changed that to that and now I don't even get a nerror, just no traceback available lol |
15:27:20 | zahary_office | it has been renamed to "dot operators", it has support for writing to fields now too |
15:27:56 | BitPuffin | oh awesome |
15:29:55 | BitPuffin | that I must take a look at indeed |
15:30:09 | BitPuffin | anyways, I guess the issue I am having here is the one you haven't fixed yet? |
15:30:41 | zahary_office | yes, probably, I'll get to it during the weekend - if you can stick to implicit generics, it won't bite you |
15:30:59 | BitPuffin | well in some cases it will |
15:31:05 | BitPuffin | for example this: |
15:31:43 | BitPuffin | proc `*`*[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:11 | Mat3 | hi all |
15:32:18 | BitPuffin | hey Mat3 |
15:32:32 | Mat3 | hi BitPuffin |
15:32:36 | BitPuffin | that ensures that there will be a type error when a user tries to multiply to matrices that aren't compatible |
15:32:45 | BitPuffin | and implicit generics won't give me that |
15:33:20 | Mat3 | do you mean matrices of different size ? |
15:33:37 | Mat3 | ... different type or both ? |
15:33:41 | zahary_office | I can tell you how to use implicit generics for this as well, but the code will be verbose |
15:34:14 | Mat3 | helo zahary |
15:34:35 | Mat3 | ^hello |
15:35:06 | zahary_office | hi Mat3 |
15:36:22 | BitPuffin | zahary_office: what would that be+ |
15:37:19 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
15:37:26 | zahary_office | proc `**`(a, b: distinct Matrix): Matrix[a.type.T, a.type.M, b.type.N] = |
15:37:36 | zahary_office | well, it's not that bad actually |
15:38:01 | Mat3 | I 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:07 | zahary_office | it's a bit weaker tho in the type safety department |
15:38:13 | BitPuffin | wut |
15:38:16 | BitPuffin | why distinct? |
15:38:43 | BitPuffin | that still doesn't ensure the relationship that matrix a has to have as many columns as b has rows |
15:38:53 | BitPuffin | and the a.type thing doesn't work yet |
15:38:58 | zahary_office | you'll find the explanation in the manual in the type classes section - this allows `a` and `b` to have different types |
15:39:06 | zahary_office | otherwise, they must bind to the same matrix type |
15:39:43 | BitPuffin | well yeah but that a has the same amount of columns as b has rows is a condition for multiplication to be defined |
15:40:06 | BitPuffin | and that makes it so that it doesn't ensure the same T too |
15:40:07 | zahary_office | are you sure? a.type.T is kind of old, but it could have problems when used within the return type |
15:40:34 | BitPuffin | didn't work last time I trieh |
15:40:50 | BitPuffin | believe me and Araq tried to fix it too |
15:40:54 | zahary_office | post a bug if it still doesn't work please |
15:40:56 | BitPuffin | and realized it was a whole mess or something |
15:41:00 | BitPuffin | I think there might be one |
15:41:28 | zahary_office | I think I remember this one and I closed it |
15:41:39 | BitPuffin | oh |
15:41:41 | BitPuffin | hmm |
15:41:53 | BitPuffin | well I may have even tried it like yesterday or so |
15:41:56 | BitPuffin | or did I |
15:41:57 | BitPuffin | hmm |
15:42:06 | BitPuffin | well it's a simple thing to try I guess? |
15:43:07 | * | q66 quit (Ping timeout: 264 seconds) |
15:44:39 | zahary_office | crashes indeed |
15:45:00 | BitPuffin | :/ |
15:48:07 | * | Demos joined #nimrod |
15:49:08 | BitPuffin | zahary_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:09 | zahary_office | well, ok, it's useful if I get more bug reports while I'm still working on this |
15:51:56 | BitPuffin | zahary_office: you mean report this issue? just so that the progress is documented or something |
15:53:35 | zahary_office | no, 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:15 | BitPuffin | ah yeah |
15:54:17 | BitPuffin | gotcha |
15:54:26 | Demos | hey zahary_office I think I have asked you this before but are you the author of boost::mixin? |
15:54:30 | BitPuffin | yeah well when I've read the fm then I'll probably want to use a few features here and there |
15:54:52 | zahary_office | I used to work with the author in my previous company |
15:54:52 | BitPuffin | and if something shows up I'll probably ping you and Andreas first about it and report it |
15:55:02 | zahary_office | it's based on my design that we used there |
15:55:36 | * | q66 joined #nimrod |
15:56:02 | Demos | ah, 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:52 | zahary_office | :) fowl has made something similar for Nimrod, although boost::mixin still has quite a bit more features |
16:00:15 | dom96 | Varriount: pong |
16:01:02 | Demos | and I was again impressed last night on just how much more terse nimrod generics can be compared to c++ templates |
16:03:28 | Demos | I 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:00 | BitPuffin | yeah I know the feelin Demos |
16:06:18 | BitPuffin | however how is string defined? |
16:06:35 | Demos | which 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:43 | Demos | fields: static[string] |
16:06:55 | BitPuffin | I meant string itself |
16:07:02 | BitPuffin | is there no way to specify the length of a string |
16:07:02 | Demos | I think it is a magic |
16:07:08 | Demos | not really |
16:07:11 | BitPuffin | like var a: string[29] or something |
16:07:21 | Demos | array[0..29, char] |
16:07:28 | Demos | I think you can initialize a string with a specific length |
16:07:46 | BitPuffin | you can |
16:07:51 | BitPuffin | string(20) but that's a proc |
16:08:09 | Demos | and ofc I could say type ConstLenString[L: static[int]] = generic x x is stirng x.len < L |
16:08:23 | Demos | but strings are dynamicly allocated, that is the point |
16:08:29 | Demos | fixed length strings are nearly always bad |
16:08:47 | Demos | you can take an array and cast it to a cstring I think |
16:08:57 | zahary_office | for swizzle in particular, I'll add a test to the suite - len on a static string is legal constant |
16:09:25 | Demos | actually can static[T]s be anything, like could I have a static[TTable[string, int]] or something? |
16:09:26 | BitPuffin | zahary_office: yes but it's not availabre in the return type part |
16:09:36 | BitPuffin | I was trying to this kind of vodoo with something else |
16:09:49 | zahary_office | Demos, yes |
16:09:59 | Demos | wowah. That is pretty wild |
16:10:00 | BitPuffin | proc foo(a: static[string]): T[a.len] |
16:10:03 | BitPuffin | it'll go like wtf is a |
16:10:08 | BitPuffin | at least when I tried it |
16:10:12 | BitPuffin | maybe that has been improved |
16:10:18 | Demos | well T is not really a thing there I think |
16:10:35 | Demos | but yeah |
16:10:36 | Demos | it does |
16:10:41 | BitPuffin | imagine there being a type T earlier |
16:10:50 | BitPuffin | Demos: you need to get a better imagination dude |
16:10:51 | Demos | right |
16:11:18 | Demos | it fails in a similar way when you have like proc foo(bar: TGenericType): type(bar).T |
16:11:24 | Demos | or even TGenericType.T |
16:11:52 | Demos | I gotta go, much maths. So Algebraic |
16:12:00 | BitPuffin | when 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:49 | BitPuffin | btw zahary_office, do you think this might work now? |
16:12:52 | BitPuffin | proc 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:01 | BitPuffin | I had when false'd it out because the compiler said no |
16:13:10 | BitPuffin | although this should obviously not be a range anymore |
16:13:14 | BitPuffin | old code is old |
16:13:26 | BitPuffin | oh wait no |
16:13:29 | zahary_office | do you know what's even better than bug reports? test cases in the suite :) |
16:13:33 | BitPuffin | it is also dependend on being able to do static thingy |
16:13:37 | BitPuffin | in the generic params |
16:15:56 | BitPuffin | you are right in that |
16:16:07 | BitPuffin | should probably just add linagl to the test case |
16:16:11 | BitPuffin | since it uses the fuck out of generics |
16:16:14 | * | Demos quit (Ping timeout: 252 seconds) |
16:17:09 | zahary_office | try to break it down in the various features that currently don't work |
16:18:11 | BitPuffin | well the only thing I can think of really is proc foo[T: static[sometype] |
16:18:36 | Mat3 | ciao |
16:18:42 | * | Mat3 quit (Quit: Verlassend) |
16:18:56 | BitPuffin | and type foo[T:static[something]], proc bar[T](a: foo[T]) |
16:18:59 | zahary_office | out of the conversation, I also wrote down proc foo(a: static[string]): Type[a.len] = |
16:19:13 | zahary_office | and proc foo(x: Matrix): x.type.T |
16:19:18 | BitPuffin | yeah true |
16:19:32 | BitPuffin | it's better to have them as tests as it ensures it stays fixed |
16:19:36 | BitPuffin | and no regression slips in there |
16:19:53 | BitPuffin | bet 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:08 | dom96 | nequitans: 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:33 | nequitans | dom96, i'm ready when others are! |
18:11:34 | * | dom96 is ready |
18:12:28 | OrionPK | dom96 is there a way to do case insensitive routes in jester? |
18:12:38 | OrionPK | (without regex) |
18:12:48 | dom96 | OrionPK: Don't think so. |
18:14:46 | dom96 | How many people can we count on to upvote nequitans' article? |
18:24:34 | OrionPK | what article |
18:29:31 | dom96 | http://geetduggal.wordpress.com/2014/03/03/consider-nimrod/ |
18:48:41 | Araq | I'm ready but will leave in about one hour |
18:52:32 | dom96 | well i'm leaving now |
18:52:55 | Araq | well that's too bad |
18:53:18 | * | Matthias247 joined #nimrod |
18:53:42 | Araq | ping 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:02 | nequitans | i'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:46 | Araq | bbl |
20:00:28 | dom96 | nequitans: just submit it already |
20:00:47 | nequitans | lol |
20:00:48 | nequitans | kk |
20:00:53 | nequitans | submitting now |
20:04:06 | nequitans | I'm a reddit noob, so based on previous discussions, i'm assuming is this the best one: reddit.com/r/programming |
20:04:14 | dom96 | yes |
20:04:27 | dom96 | Make sure the title is good |
20:04:47 | nequitans | How about "Why I am programming in Nimrod right now" |
20:05:06 | dom96 | No, you should just use your articles title. |
20:05:17 | nequitans | ah, ok |
20:05:39 | nequitans | runvnc also suggested: news.ycombinator.com |
20:05:51 | dom96 | yes. submit there too |
20:06:01 | dom96 | HN is harder though |
20:06:14 | dom96 | But still worth a try |
20:06:30 | nequitans | kk |
20:07:59 | nequitans | SUBMITTED (to reddit) |
20:08:36 | dom96 | I don't see it |
20:08:37 | dom96 | http://www.reddit.com/r/programming/new/ |
20:09:07 | nequitans | hmmm |
20:09:08 | nequitans | http://www.reddit.com/r/programming/comments/209a2w/consider_the_nimrod_programming_language/ |
20:09:57 | dom96 | strange |
20:09:58 | dom96 | oh well |
20:10:00 | dom96 | upvoted anyway |
20:10:19 | nequitans | yea, 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:27 | dom96 | perhaps |
20:10:36 | dom96 | or maybe it's because it's already on the front page of r/programming heh |
20:10:46 | * | aftersha_ joined #nimrod |
20:10:49 | dom96 | Everyone else upvotes ^ |
20:11:25 | nequitans | I also submitted to HN |
20:12:16 | * | carum joined #nimrod |
20:13:08 | Demos | it is actually on "hot" for me |
20:13:21 | dom96 | upvoted on HN too |
20:13:32 | dom96 | https://news.ycombinator.com/item?id=7388014 for the lazy |
20:14:01 | dom96 | HN really depends on those early upvotes. |
20:15:19 | nequitans | Cheers. Yea, I see 2 points on HN |
20:15:42 | dom96 | we need more! |
20:16:40 | nequitans | cool, 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:34 | reactormonk | dom96, comment on reddit, have fun |
20:29:11 | nequitans | lol, sophomoric |
20:33:21 | dom96 | nequitans: You wanna answer that? P |
20:33:23 | dom96 | *:P |
20:33:44 | nequitans | I'll be like, "actually, i'm a junior ...; X=programming" |
20:34:26 | dom96 | hrm, someone replied. |
20:34:34 | dom96 | nequitans: A junior what? |
20:35:16 | dom96 | Doesn't look like the HN submission will make it to the top :\ |
20:35:20 | EXetoC | bird watcher? |
20:35:21 | nequitans | oh, it was a play on 'sophomore' :-P |
20:35:37 | nequitans | yea, my friends noticed that their upvote didn't changed the points |
20:36:24 | dom96 | I think you need to be registered for a certain amount of time |
20:36:27 | dom96 | or something like that |
20:37:14 | nequitans | ic, that's what i thought |
20:38:00 | EXetoC | you should bribe some people. give them $1 each |
20:38:42 | dom96 | How come no one else here has a HN account!? |
20:38:45 | * | soc joined #nimrod |
20:38:51 | dom96 | hello soc |
20:39:58 | Matthias247 | I also tried to upvote it |
20:40:03 | Matthias247 | don't know if it worked |
20:40:12 | Matthias247 | (on reddit) |
20:40:40 | Matthias247 | the strange thing is I still don't see it on the "new" page |
20:41:26 | nequitans | yea |
20:42:37 | dom96 | Nice to see reddit defending you :) |
20:42:45 | nequitans | cool at 7 points now |
20:42:58 | Skrylar | meep |
20:43:31 | nequitans | i wonder why the points fluctuate (i.e. downvotes seem to go up or down on every refresh) |
20:43:48 | dom96 | It's by design. |
20:43:51 | dom96 | Can't remember why though. |
20:44:29 | * | carum quit (Remote host closed the connection) |
20:45:35 | EXetoC | it's to pwn bots apparently |
20:46:00 | nequitans | interesting |
20:46:44 | soc | hi |
20:46:56 | soc | Araq: I moved the meetup to 25th now |
20:46:56 | nequitans | hi! |
20:47:26 | nequitans | (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:14 | nequitans | #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:25 | fowl | lol http://www.reddit.com/r/programming/comments/209a2w/consider_the_nimrod_programming_language/cg10z9r |
21:10:42 | nequitans | yea |
21:10:51 | nequitans | I'm writing a short reply to that one now |
21:10:58 | fowl | '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:41 | EXetoC | that's not the definition of "systems programming language"? |
21:14:49 | nequitans | I'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:39 | Matthias247 | most of the things he mentions are also covered through the FFI and the fact that nimrod compiles to C |
21:17:54 | Matthias247 | the other things are libraries |
21:17:55 | nequitans | what's the FFI |
21:18:25 | Matthias247 | foreign function interface. You can interface to C code |
21:18:30 | nequitans | ah, cool |
21:18:33 | Matthias247 | call C functions from C libraries |
21:18:41 | nequitans | yea, i also mentioned the libraries |
21:19:53 | * | flaviu joined #nimrod |
21:22:24 | nequitans | posted the reply |
21:24:03 | * | q66 joined #nimrod |
21:27:33 | * | tnew joined #nimrod |
21:28:12 | dom96 | hi tnew |
21:29:10 | tnew | hi |
21:29:40 | tnew | i sincerely hope your campaign for nimrod will work :) |
21:30:37 | tnew | saw the reddit discussion. i think nimrod could be a serious competitor to rust and such |
21:32:20 | dom96 | It already is a pretty serious competitor ;) |
21:33:50 | flaviu | nequitians: Posted a reply to you with some more information that I've come across |
21:34:53 | Araq | hi tnew welcome |
21:35:28 | tnew | hi. thanks |
21:36:16 | Araq | lol 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:25 | Araq | *write down |
21:37:53 | nequitans | flaviu, thx |
21:38:27 | nequitans | Araq, yea, and most of the points aren't really 'systems-level' distinctions |
21:38:48 | nequitans | but it was much more thought out than the first one :) |
21:39:10 | nequitans | s/the first one/the first comment |
21:39:56 | Matthias247 | Araq: I thought the same :) |
21:41:05 | dom96 | "Write to the system log.", is he talking about Windows' event logs? |
21:42:19 | nequitans | #6 on reddit programming hot |
21:42:36 | dom96 | well 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:56 | Matthias247 | dom96: I guess about linux syslog |
21:45:23 | reloc0 | /buffer 3 |
21:52:15 | nequitans | Matthias247, your comment was responded to |
21:54:20 | nequitans | HN at 12 points |
21:56:09 | dom96 | whoa |
21:56:32 | dom96 | Seems like a knock-on effect from reddit. |
21:56:48 | tnew | is the same article submitted to lobsters? |
21:57:01 | nequitans | what's lobsters? |
21:57:17 | tnew | sort of hn, but a bit newer |
21:57:44 | tnew | lobste.rs |
21:58:25 | nequitans | ic |
21:59:22 | Matthias247 | I think I don't answer that ;) |
22:00:47 | * | Demos joined #nimrod |
22:05:31 | nequitans | Matthias247, smart! |
22:05:39 | * | carum quit (Remote host closed the connection) |
22:07:15 | dom96 | I just replied |
22:07:37 | Matthias247 | yeah. 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:22 | nequitans | >1,000 article views |
22:18:59 | dom96 | https://twitter.com/nimrodlang/status/443873714690875392 :) |
22:19:31 | dom96 | 10 people currently on nimrod-lang.org |
22:20:01 | flaviu | dom96: Whats typical? |
22:20:30 | dom96 | flaviu: Typical number of visitors per day? |
22:21:47 | flaviu | No, at a time. Like currently you have 10 people, what is normal? |
22:22:53 | * | awestroke quit (Remote host closed the connection) |
22:22:58 | dom96 | Like 1. |
22:23:10 | dom96 | I don't check it often |
22:23:26 | dom96 | I think Whisper doesn't understand how wrappers in Nimrod work. |
22:25:30 | dom96 | or i'm just misunderstanding |
22:25:31 | * | dom96 is tired |
22:26:02 | fowl | its ok |
22:26:11 | fowl | i already downvoted everything he ever said on reddit |
22:26:14 | Matthias247 | he seems to be quite posessed by the "system" term :) |
22:26:35 | dom96 | fowl: that's the true reddit spirit! |
22:26:53 | Skrylar | and thats why i ignore rep systems :e |
22:27:27 | Matthias247 | and I think he mainly refers to it in the sense how distributions work and how .so's have ABI problems on Unix |
22:29:15 | dom96 | I'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:04 | flaviu | Barchar, putting your text in a code block is hard to read |
22:36:19 | dom96 | Who is barchar? |
22:36:43 | dom96 | Anyone in this channel? |
22:36:43 | * | carum joined #nimrod |
22:37:10 | nequitans | I saw barchar comment on the reddit post |
22:37:16 | * | carum quit (Read error: Connection reset by peer) |
22:37:18 | flaviu | I don't know, some people have different aliases |
22:37:34 | dom96 | indeed. |
22:37:39 | * | carum joined #nimrod |
22:40:15 | dom96 | ugh: http://www.reddit.com/r/programming/comments/209a2w/consider_the_nimrod_programming_language/cg13wfx |
22:41:33 | flaviu | That guy seems to like trolling occasionally |
22:44:20 | Araq | Answer: fun fact: "Windows Vista" means "Windows chicken" in Spanish |
22:45:06 | dom96 | Araq: Do it |
22:45:20 | Araq | or was it Italian? |
22:45:29 | * | Demos quit (Ping timeout: 240 seconds) |
22:46:38 | * | q66 quit (Ping timeout: 246 seconds) |
22:47:02 | dom96 | "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:49 | dom96 | hah. |
22:47:56 | dom96 | Araq: It's the talk you sent me. |
22:48:13 | _rvd | latvian |
22:48:24 | Araq | dom96: what? |
22:48:32 | Araq | what did I send you? |
22:48:38 | dom96 | https://news.ycombinator.com/item?id=7388670 |
22:48:46 | flaviu | Dom96, mind if I post your closure macro? |
22:48:46 | dom96 | The youtube link that in comment |
22:49:17 | dom96 | flaviu: No, but please emphasise that it's a work in progress |
22:52:49 | Skrylar | i'm starting to become concerned with people's definition of genius |
22:52:51 | flaviu | dom96: 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:18 | Skrylar | i'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:34 | Skrylar | @that video |
22:53:53 | flaviu | BTW dom96, you replied to the wrong guy. I just fixed his formatting on the list |
22:54:41 | dom96 | flaviu: Yeah, but I figured most will read your better formatted version anyways. |
22:55:15 | dom96 | In any case, too late now. |
22:55:34 | nequitans | i'm headed out, be online later! |
22:55:44 | dom96 | nequitans: See ya. Thanks for the article :) |
22:56:16 | nequitans | thanks 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:27 | Araq | nequitans: thanks for your effort |
22:59:07 | nequitans | Araq, my pleasure: coding more nimrod tonight! |
22:59:37 | * | q66 joined #nimrod |
23:01:17 | _rvd | there really should be a comment system where you could vote comment "sideways" or something, as a way of sorting tangential comments out |
23:01:53 | flaviu | _rvd: Reddit downvotes are made for that, but they turned into 'I disagree' |
23:03:43 | flaviu | Araq: 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:58 | Araq | flaviu: ask somebody who knows what you're talking about |
23:07:33 | Araq | I only know everybody hates C's random number generator |
23:09:19 | * | carum joined #nimrod |
23:11:23 | * | darkf joined #nimrod |
23:19:27 | NimBot | Araq/Nimrod devel 2b481a6 Dominik Picheta [+0 ±3 -0]: Fixed tasyncawait on Windows.... 4 more lines |
23:19:27 | NimBot | Araq/Nimrod devel 4dbf101 Dominik Picheta [+0 ±1 -0]: Fix compilation on linux. |
23:40:24 | * | Varriount quit (Ping timeout: 245 seconds) |