<< 30-11-2013 >>

00:00:08*Raynes quit (Ping timeout: 272 seconds)
00:02:01*Raynes joined #nimrod
00:02:11*Raynes quit (Changing host)
00:02:11*Raynes joined #nimrod
00:07:51*dunpeal left #nimrod (#nimrod)
00:25:15*dom96 quit (Excess Flood)
00:27:13*dom96 joined #nimrod
00:47:37*q66 quit (Remote host closed the connection)
00:48:52*q66 joined #nimrod
00:51:12*q66 quit (Read error: Connection reset by peer)
00:51:31*q66 joined #nimrod
01:09:45IrvMGBye
01:09:53*IrvMG quit ()
02:03:12*filwit joined #nimrod
02:15:37Araqhey filwit
02:15:49filwithey Araq, still up eh?
02:15:59NimBotAraq/Nimrod master 59a7a09 Araq [+0 ±2 -0]: fixes #681
02:16:09Araqyeah because of this fix
02:16:17filwitjust got on to ask the Kate folks some questions (for my Kate Nimrod scheme)
02:16:22filwitlol
02:16:30filwitbug fixing in the middle of the night
02:16:31filwitnice
02:16:42filwit(or not nice, i know how that goes, lol)
02:17:14filwiti was actually just making a forum post, but i guess i'll ask you instead
02:17:26filwiti was playing around with SIMD last night
02:17:38filwiteverything's working, but i'm not sure i'm doing something right
02:17:53filwitlet me make a gist really quick, one sec
02:19:54Araqwhen everything's working everything is fine ;-)
02:21:22filwitwell my question is about {.incompleteStruct.}
02:21:24filwithttps://gist.github.com/PhilipWitte/7714570
02:21:49filwitbasically in C, common practice here is to have a union of __m128 and a float[4]
02:22:13filwitthen you just access the float array if you need to pull individual components from the vector
02:22:37filwit(which you don't want to do often with SIMD vectors, so the interface doesn't need this really)
02:22:48filwitstill, i want to know if the bottom code block is possible
02:23:08filwitit fails for me, but not sure if it's just cause i'm not doing it right
02:24:07fowlfilwit, just make the fields accessible like you would access them from c
02:24:18Araquse this instead: {.bycopy, incompletecstruct, header: "...".}
02:24:54Araqdon't make the array final and pure (is that even allowed?)
02:25:06filwitAraq: does one of those imply {.pure.}.. cause SIMD vectors need to be pure
02:25:23filwityou don't want your SIMD vectors padded with typeinfo
02:25:24Araq"object" without inheritable or "of" is nowadays pure
02:25:39filwitwell i'm compiling with 0.9.2
02:25:45filwit0.9.3 fails
02:25:50filwitsegfault for something
02:25:50Araqeven with 0.9.2
02:25:53filwitk
02:26:01filwitfowl: don't know what you mean..
02:26:12filwitfowl: in C you use a union, which Nimrod doesn't have
02:26:19Araqoh and fowl is right, declare the fields
02:26:36filwiti cant...
02:26:36fowlfilwit, put {.importc.} on the fields
02:26:44filwitahh...
02:26:48filwitokay, let me try that
02:27:20fowltype vec4* {.importc: "cname", header: h.} = object # <- now this is not created at all by nimrod, it simply nimrod's name for __m128
02:28:02*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
02:28:18filwitfowl: yeah i know, my question was about the .x, .y, etc parts
02:28:38NimBotAraq/Nimrod master 490ae81 Araq [+0 ±1 -0]: updated fsmonitor module
02:29:37filwitbleh, it's giving me that "Execution of an external program failed" error when i do this...
02:30:02fowlcompile with --parallelbuild:1 to see gcc's error
02:30:12filwittype Vec4 {.importc:.., header:..}= object; x, y, z, w {.importc.}: float32
02:30:21filwitfowl: k, will try
02:30:30fowlyou need to mark x,y,z AND w with importc
02:30:54filwitindividually?
02:31:04filwiti'm marking them all in one line
02:31:08filwitdoes that not mark them all?
02:31:14fowlno it doesnt
02:31:31fowli think i have a macro that does this somewhere
02:31:43fowlwell maybe it does, check the output c
02:31:58filwitstill giving me GCC errors, once sec
02:32:30filwiterror: request for member ‘x’ in something not a structure or union
02:32:30filwit LOC2 = nsuformatFloat(((NF) (this_78101.x)), ((NU8) 1), 3);
02:32:59filwitthe formatFloat is from me trying to echo the individual components
02:33:16*DAddYE_ quit (Remote host closed the connection)
02:33:29filwitBTW, in case you don't know, __m128 doesn't have any x/y/z/w values
02:33:48Araqwell how should this work then?
02:34:03filwitwell that was my question, lol
02:34:06fowlfilwit, try this? http://stackoverflow.com/a/12624684
02:34:23filwiti just wanted to make sure incompleteStruct wasn't messing with the type-size in Nimrod some place
02:34:47fowlfilwit, seems that you dont need to importc each field: https://gist.github.com/fowlmouth/7714680
02:34:50filwitflow: that's C code man.. i can't use Unions in Nimrod
02:35:00filwitfowl: and i've done this in C
02:35:20filwitfowl: also, thanks for the info about the fields
02:36:07filwitAraq: so incompleteStruct wont mess up the sizeof info for Nimrod anywhere?
02:36:22Araqsure it will
02:36:40filwitAraq: is there a way to force the size through a pragma?
02:37:25Araq.size only works for enums afaik
02:37:58Araqyou can use:
02:38:37Araq copyMem(addr myTempArray, m128stuff, sizeof(myTempArray))
02:38:47Araq myTempArray[i]
02:39:03Araqthat's what the C code in stack overflow does
02:39:13Araqno need for a union
02:39:24filwityes, like i said, i've already got it working
02:39:58filwiti just didn't know how to make it work with sizeof(someVec4)
02:40:14Araqnot sure what you mean, but I need to sleep now
02:40:14filwitsince incompleteStruct seems to remove typeinfo
02:40:25filwitokay, night
02:40:30Araqhowever!
02:40:50filwitone thing though, you said to remove {.final.}, but i want to make sure this type is not inheritable.. do i still need the pragma?
02:41:01AraqI want you to design a mascot for Nimrod. We decided on a honey badger with a crown. :D
02:41:15filwitlol, okay
02:41:16Araqpriority is super low though
02:41:24filwitwish i was there for that conversation
02:41:44filwitit's okay, i can draw up a couple of designs for you to choose from :)
02:41:49Araqread the logs from 1-3 days ago
02:42:02filwitk, forgot how to see the backlogs
02:42:07EXetoC mushroom mushroom
02:42:10Araq"object" without inheritable is not inheritable, no need for 'final'
02:42:19filwitEXetoC: LOL
02:42:34filwitEXetoC: takes me back...
02:42:46filwitAraq: k, thanks
02:42:47*Araq doesn't get the joke
02:43:08filwithttp://www.youtube.com/watch?v=hGlyFc79BUE
02:43:21ryeguysnaake...snaaakkee
02:43:30filwit^ XD
02:44:09ryeguyim happy i looked into nimrod, it pleases me more than rust
02:44:37filwityeah, Nimrod is nice in many ways :)
02:44:38*mflamer joined #nimrod
02:44:40fowlryeguy, i think we need more kinds of pointers identified by symbols
02:45:15fowlfilwit, can you give me an example use of this SIMD, something i can run locally
02:45:26fowlfilwit, im not ready to give up on union
02:45:35filwitsure, one sec
02:47:28filwitfowl: https://gist.github.com/PhilipWitte/7714570
02:47:54filwitjust a copypasta of my simd module + a use case
02:49:04fowlugh you could have left them separate files
02:49:48filwitlol.. is it that hard to copy-paste into your own file?
02:50:08fowlno
02:50:08OrionPKMso.. anyone try gzipping in nimrod?
02:50:28fowlOrionPKM, its just like doing it in c
02:50:45OrionPKMwith what library
02:50:49fowlzlib
02:51:16OrionPKMwith which function?
02:52:37*EXetoC quit (Quit: WeeChat 0.4.2)
02:53:18Araqgood night
02:53:24filwitnight, Araq
02:53:25OrionPKMah it looks like the 'compress' has a 2 byte header and 4 byte trailer fowl
02:53:27OrionPKMnight araq
02:53:30OrionPKMthanks for getting that bug
02:53:57fowl?
02:54:52*ics joined #nimrod
03:00:29*DAddYE joined #nimrod
03:00:53*DAddYE quit (Remote host closed the connection)
03:01:13fowlOrionPKM, i used compress/deflate in keineschweine for sending assets
03:01:26fowlOrionPKM, iirc deflate is weird because you have to know the uncompressed data length
03:01:57OrionPKMfowl the compress works ish
03:02:00OrionPKMfor chrome
03:02:03OrionPKMbut IE is failing
03:04:56fowlfilwit, im trying to figure out why this is failing
03:05:09filwitit fails with 0.9.3
03:05:14filwitcompiles with 0.9.2 tho
03:05:58*DAddYE joined #nimrod
03:06:01filwitdunno why 0.9.3 fails, haven't looked into it.. also that RayTrace benchmark i ported a little while ago fails with 0.9.3
03:07:40fowlwhen i changed vec4.new(...) to setvec4(..) it compiles
03:08:06filwithmm... well that explains probably why the RayTracer fails too..
03:08:58filwitkeep in mind that setVec4 takes the components in reverse order
03:09:04filwitw, z, y x
03:09:11fowlit outputs 12, 10, 8, 6
03:09:20fowlah ok
03:09:52filwityeah, part of the reason i made that non-exposed and used my own interface to it
03:10:55OrionPKMfowl
03:11:09OrionPKMif I wrap the result of compress() in a gzip header
03:11:11OrionPKMand footer
03:11:28OrionPKMand hack off 2 bytes off the front, 4 bytes off the end, it works
03:11:44OrionPKMcompress uses zlib format, not raw deflate
03:14:28fowlfilwit, https://gist.github.com/fowlmouth/7714950
03:15:17filwitfowl, thanks for the updates
03:16:27filwitso i guess it's just that i'm using a template instead of an inline proc huh?
03:18:59fowlthe typedesc[vec4] function was the problem with compiling
03:19:24fowlx,y,z,w,+=,-=,/=,*= dont need to be templates they should be inline procs
03:19:57fowlcurrently you can do newvec4(1,2,3,4) += newvec4(..) which is wrong (it should take a var type)
03:20:35filwiti see, that makes sense
03:22:20filwitwhy did you make the x/y/z/w templates into inline procs though?
03:23:25*DAddYE quit (Remote host closed the connection)
03:23:54filwityou also removed noInit from the importc procs..
03:23:55filwitreason?
03:24:11fowlnoinit isnt needed
03:24:12filwitthey automatically are noInit or something?
03:24:22fowlnoinit just says dont initialize the result variable
03:24:41filwitright.. so without a body, they don't have a result var..
03:26:18filwitps, for the $ proc, should i be using noInit?
03:26:30filwitwill that cause some problem with strings at all?
03:26:50filwitit works.. so i doubt it, but i'm not positive
03:27:07fowlnah its not a problem
03:27:42fowlif you did var x{.noinit.}: string it means it wont be initialized to 0 (null/nil)
03:27:54fowlnot a problem if you're about to set it to something
03:28:12filwityeah i know what noInit does
03:28:22filwiti just added it to be sure
03:28:24filwitmostly
03:30:22fowlno reason x/y/z/w couldnt be templates i guess
03:30:42filwityeah i left those as templates
03:30:59filwitbut i'm not near done with this
03:37:56filwityour new and newVec4 procs should probably be noInit for optimization?
03:38:21filwitor does that not matter cause you're not using result/return?
03:39:07fowlyou're micro-optimizing
03:39:17filwitcause it's simd...
04:07:15*brson joined #nimrod
04:34:35*DAddYE joined #nimrod
04:38:57*DAddYE quit (Ping timeout: 246 seconds)
04:52:47filwiti'm hoping i can convince Araq to make comments not part of the AST
04:53:12filwitKate's block-comment command simply can't work with it as-is
04:57:25*OrionPKM quit (Remote host closed the connection)
04:57:57fowlwhy not
04:58:26filwitcause it either places comment chars before all whitespace, or after all whitespace
04:58:51fowlafter whitespace should work
04:58:55filwitso if you comment-out a block with multiple levels of indentation, it makes Nimrod barf
04:59:11filwitfowl: nah, i've tried, it doesn't work
05:00:35fowlaporia puts discard """ in front and """ after
05:00:49filwityeah i noticed.. i really don't like that much..
05:01:01filwiti'm sure dom has his reasons for it, but i wish there where options
05:01:30filwitreally, it doesn't make too much sense to have all comments part of the AST, only doc-comments need to be
05:01:37filwiti've heard Araq mention as much on here before
05:01:51filwitbut i'm not sure all the reasons he did it that way
05:02:34filwitit's possible it could be useful for some obscure reason, and in that case i would argue for a compiler switch to enable AST comments, but have them disabled by default
05:04:30*OrionPKM joined #nimrod
05:07:40*mflamer quit (Ping timeout: 272 seconds)
05:20:03*OrionPKM quit (Remote host closed the connection)
05:25:16*mflamer joined #nimrod
05:37:45*DAddYE joined #nimrod
05:37:57*DAddYE quit (Remote host closed the connection)
05:38:08*DAddYE joined #nimrod
05:46:34ryeguyyeesh, it's convention to use hungarian notation?
05:46:54ryeguypretty embarassing to have in a modern language like this
05:47:37filwiti agree... i've been complaining about that for awhile.. lol
05:48:03filwitbut really, you can use whatever convention you want, the standard lib can always be updated at some point
05:48:16ryeguyi know, but i just really dont want to see it catch on, haha
05:48:59filwityeah, i agree completely. Araq always argues that it's too verbose any other way...
05:49:15ryeguyi don't understand
05:49:22ryeguywhat problem is it solving?
05:49:28ryeguyif they are dropped what happens?
05:49:52filwitwell.. like NnkProc instead of NimrodNodeKind.Proc
05:50:16filwiti prefer the latter, but other's argue it's too verbose
05:50:37ryeguyis that an enum?
05:50:43filwityes
05:50:48fowlfilwit, thats fine if everything had intellisense
05:51:05filwitit's fine even with intellisense..
05:51:10filwitwithout**
05:51:20fowlmaybe while you're young
05:51:28ryeguyi would rather see the verbose version because it's more readable
05:51:28fowlcarpel tunnel is a real threat to aging programmers
05:51:30filwiti'm older than you, lol
05:51:35filwitoh i see
05:51:43filwitthat's a horribly silly argument tho
05:51:55ryeguyi was more talking about the T prefix for types and the F prefix for fields
05:52:15filwitryeguy, that might be fixed in the future actually
05:52:37filwitthere's been discussion about it on the forums, even Araq agrees it will help adoption if the T/P thing was removed
05:52:44ryeguythats good
05:52:55filwiti will absolutely never, ever, ever use T/P on my type names
05:53:03ryeguythat is a good point - it sounds stupid, but there are people who will not use a language over reasons like this
05:53:12ryeguysame, i would never use it
05:53:35filwitexactly.. i've been trying to tell Araq that other's care about this sort of thing a whole lot more than he does for awhile now...
05:54:05ryeguywe already have significant whitespace, so let's try to keep it to just one petty feature people may hate :)
05:54:21ryeguyi can bikeshed all day, i agree
05:54:30ryeguythose things do bother me a lot, but not enough to turn me off the language
05:54:31fowloh well there will never be a shortage of things for people to complain about
05:55:03ryeguythats true, but things should be weighed against that
05:55:05filwitfowl, that's not an argument really though, it's just as appeal to not care about anything..
05:55:22fowli care about one thing: nihilism
05:55:30filwitLOL
05:55:59ryeguyi think using 'proc' is weird
05:56:04ryeguywhy not 'def', especially since it looks like python
05:56:11ryeguyor rust's 'fn'
05:56:26filwitryeguy, I came from C#/D as well, and a lot of Nimrod's idioms are alien
05:56:32filwitthey grow on you quickly though
05:56:38filwitnot the T/P thing.. but others
05:56:40ryeguyi'm sure they will
05:56:48ryeguyi just question being different for the sake of being different
05:57:05ryeguybecause the number of people it will turn off is non-zero, even though it's a stupid reason
05:57:16filwit^ exactly...
05:57:32filwitunfortunately Nimrod wasn't really written with "popularity" in mind
05:57:51ryeguyof course not, but popularity is healthy for the project in many ways
05:57:53filwitregardless, it's a very feature-rich language, and very capable
05:58:25filwiti can adjust to a lot of things, and it looks like Nimrod will evolve well in other areas that i don't like, so i'm happy with it
05:58:44filwitstill, i completely agree that it should take more care to help others embrace it
05:59:29filwitAraq always says these things are pointless, and that naming at this level doesn't matter... but i wonder how many hours he's spent debating that very topic, lol
05:59:46ryeguyfilwit, you mentioned you came from C# - how would you compare nimrod to it?
05:59:59ryeguythat was/is actually the language i'm considering using for a game
06:00:17fowli like having TType and PType
06:00:29filwitryeguy, i'm writing a game-engine in Nimrod: http://reign-studios.net/philipwitte/hymn/
06:00:32fowlespecially when the difference between struct and pointer to struct matters
06:00:54filwitryeguy: it's hard to generalize a comparison between C# and Nimrod
06:01:17filwitryeguy: Nimrod is much faster, but uses a completely different approach to organization
06:01:33fowlfilwit, what's {.last.} do
06:02:20filwitfowl: it controls when the proc's code is executed relative to other proc's of the same name that are mode-dependent
06:02:29filwitfowl: see the mode's example at the bottom
06:02:45fowlfilwit, do a design for a lottery site that takes bitcoins plz, we can split the profits
06:03:16filwitfowl, i'm fundamentally against doing this for profit, but i will consider bitcoin, lol
06:03:48ryeguyfilwit, let me ask this way: C# is more established, has visual studio + resharper, has way more libraries, bigger community, etc. yet you're using nimrod. What made you choose it?
06:03:50filwitfowl, though i really know nothing about bitcoin at all, so i will let you contribute that once I'm there
06:04:20filwitryeguy: performance and macros
06:04:24fowlfilwit, just need the design and a wallet, i have no intention of anybody winning any lotteries lol
06:04:37fowlfilwit, we may have to change site names every few weeks to stay profitable
06:05:10filwitryeguy: see the RayTracer demo i ported to Nimrod & C# for performance comparison: https://github.com/zezba9000/RayTraceBenchmark
06:05:21fowlfilwit, are you using your own SDL wrapper
06:05:37filwitryeguy: if you notice in my Hymn slides, i have a 'part' keyword.. that's a Nimrod macro that allows me to do some really cool things
06:06:00filwitryeguy: you can do similar things with C#'s NRefactory, but Nimrod's is a bit better in some ways
06:06:13ryeguythats a pretty big performance difference
06:06:31filwitfowl: not using your SDL wrapper yet
06:06:39filwitfowl: but will eventually switch to it
06:06:47ryeguyon the topic of sdl, is there an sdl-2 wrapper?
06:07:03filwitfowl: i'm not focused on the OpenGL part atm, i got that working and am not writing the connection between the parts and the editor
06:07:08fowlryeguy, yes
06:07:29filwitryeguy: yes, fowl has a SDL2 wrapper, and it's really really simple to wrap in Nimrod regardless
06:08:29filwitryeguy: yeah, the performance different between Nimrod and C# is really bit, especially on ARM
06:08:50filwitryeguy: and that's actually not as optimized as it could be (i added a few bits later, but didn't commit)
06:09:09fowlfilwit, this week i am going to unify TEvent into a variant type
06:09:10filwitryeguy: also, that's not even touching SIMD, which should make things run significantly faster with some more work
06:09:40ryeguyfilwit: simd is an embarassing ommision from .net. At least mono has it though
06:09:45filwitryeguy: and C# doesn't really have SIMD support... Mono does, but it's not the greatest, and doesn't work on ARM platforms
06:10:11filwitfowl: what do you mean by the TEvent thing?
06:11:09filwitryeguy: to answer your earlier question a bit more, I'm using Nimrod because I'm basically planning on writing my own Editor/IDE that's really unique... so VS and stuff would only help in the short-term
06:11:30fowlmake it more like it is in sdl2 (they use a union)
06:11:35fowlno more casting
06:12:27filwitryeguy: i don't like C# because it's purposefully gimped.. it gives you some power through unsafe, but it's slow, and not truly native. It doesn't sound like a good base to start a major project on which i will be working on for the next few years at least
06:12:40filwitfowl: i see, that's cool.
06:13:40filwitfowl, ryeguy: here's my SDL2 wrapper for comparison: https://gist.github.com/PhilipWitte/7715941
06:14:15filwitthe heck? github doesn't color 'export' correctly huh...
06:14:53ryeguyi like C#, it's probably my favorite general purpose language, and it's "fast enough" for most things, but i hate some of the gotchas in the language and i'd hate to develop a game in it
06:15:05ryeguysome behind-your-back allocations, some hidden performance gotchas, etc
06:16:40filwityeah i agree, C# is nice for many things, but right now it would be impossible to write a game-engine that any AAA studio would use
06:16:59filwiti like the idea of having engine code and script code the same language
06:17:32filwitand there's some really great syntax i can get from Nimrod's macros for removing much of the boilerplate of connecting game-scripts to the editor
06:18:02ryeguyfor AAA studios i agree, but for indies it works fine
06:18:13filwitmy plan is to eventually have drag-n-drop behaviors (think Blender/Maya/Max level of editing on objects), with zero performance hit on release builds
06:18:17*DAddYE quit (Remote host closed the connection)
06:18:19ryeguyi'm not sure if nimrod would work for AAA engines though
06:18:42filwitNimrod is basically C code, but a level above
06:18:44ryeguythe fact that it has a GC, even though it can be soft realtime, is taking up cycles
06:18:59filwitnah, i've done some initial tests
06:19:03filwitthe GC is awesome
06:19:08filwityou can give it max clean times
06:19:08ryeguyi know it is
06:19:12ryeguyi know you can
06:19:13filwitand it only collects on allocation
06:19:25filwitso you can use free-lists and garentee it doesn't run
06:19:26ryeguymy point is people on consoels etc don't want to spare any cpu time at all
06:19:32ryeguythat's true
06:19:35filwitguarantee*
06:19:48filwitryeguy: actually, that's not true anymore
06:19:59fowl--gc:none
06:20:11filwitsome big company, i think it was a EA developer, came out and said that their new game engine uses GC throughout
06:20:23filwitit's a C++ codebase too, so it must suck to use
06:20:27ryeguythat's interesting
06:21:24filwityeah, really if you can control the GC right (which you can in Nimrod) then you can design the engine to avoid and stutter and glitches
06:21:39filwitand a GC is needed for the scripts
06:21:50filwitso no matter what, you're going to be running a GC
06:22:09filwitit just doesn't make sense to spend a ton more paying developers to hunt memory leaks
06:22:34fowllol "came out" as a GC user
06:22:40filwitavoid any** stutter...
06:22:54filwitfowl: haha, yeah
06:22:56ryeguythey have support groups for GC users
06:23:10filwitwell it is pretty "taboo" for AAA game devs ATM
06:23:33fowlim my tests you have to create like 40,000 gc'd objects per frame before you see any performance hit
06:23:44filwitRemedy Games recently hinted their new engine may be using D for scripting
06:23:58filwitalthough Manu Evans mentioned he avoids the GC
06:24:18filwithe mentioned he may turn it back on once D's implementation is better
06:24:47filwitthat's not confirmed, btw, but Manu gave a talk about it at DConf
06:25:05*ryeguy quit ()
06:25:29filwitfowl: yeah, but that's cause Nimrod's GC is nice
06:25:52fowli meant nimrod
06:25:56filwitfowl: and sometimes game-scripts aren't the best for allocation, because they're written by entry-level devs
06:26:01fowlyou hit that wall way faster in something like ruby
06:26:09filwityeah, exactly
06:26:33filwitwhich is why GC is so taboo for game-devs right now, cause everyone's looking at Lua as an example
06:26:55filwitor the Mono (2.6) that Unity3D uses, which is really bad GC
06:27:24fowlaint nothin wrong with lua's performance
06:28:15filwitwell, i don't know much about it. but just because modern Lua may have many performance improvements, doesn't mean that other game-engines which use Lua use the latest version either
06:28:32filwitso people get a bad taste for the GC if it stutters out their game
06:28:59fowlplenty of people make games in pure lua
06:29:04fowlwith love2d (though that is c++)
06:29:27filwityeah, like i said, i don't know much about Lua
06:29:45filwiti know it's supposed to have a pretty good JIT now, which really helps performance
06:29:55filwitstill... it's dynamic typing
06:30:04filwitit's really really hard to make a dynamic language fast
06:30:26filwitGoogle has been trying for years with V8, and look how horribly slow JS still is
06:31:06filwitand they're doing all sorts of fancy compiler tricks (turning dynamically generated objects into low-level JIT compiled structs)
06:31:27*DAddYE joined #nimrod
06:31:37*DAddYE quit (Remote host closed the connection)
06:31:37filwiti doubt Lua has that sort of engineering behind it (though it's design might make getting to the same performance marks easier)
06:31:47*DAddYE joined #nimrod
06:34:39filwitbtw, fowl, on my code here: https://gist.github.com/PhilipWitte/7715941#file-gistfile1-nim-L161
06:34:51filwitdo i need to {.pop.} at the end of the file?
06:34:56fowlno
06:35:04filwitk, thanks
06:35:17filwitnot that it really matters, this is just temp anyways
06:52:47*xenagi joined #nimrod
07:43:25*brson quit (Quit: leaving)
07:48:47fowlfilwit, also system.`/=`[T](a: var T, b: T) should work for your vector ty
07:54:06*Jackneill joined #nimrod
07:59:00filwitfowl: there's one for +=/-=/etc in system?
07:59:06filwitwill try it
08:00:01filwithmmm... why is there only a /= ?? that seems really odd..
08:00:03fowlwell /= is for float only
08:00:56filwiti'm just going to keep the definitions
08:01:00filwitdefinition*
08:01:13filwitit would be much more confusing to leave out just /=
08:01:47filwitbut thanks for the info
08:13:36fowloh the rest of them are for TOrdinal only
08:16:22filwiti see
08:30:57*mflamer quit (Ping timeout: 272 seconds)
08:31:51*xenagi quit (Ping timeout: 272 seconds)
08:52:53*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
08:57:12*snuderl joined #nimrod
09:26:44Araqfilwit: but Lua is much easier to optimize than JS. JS's fucked up scoping rules are the major issue afaik.
09:27:40filwitmorning Araq.
09:28:43filwitI'm not sure of all the real details of optimizing JS, and I don't know much Lua at all.
09:28:55Araqand I still wonder why I should copy "def"... define what exactly? it's an absurd keyword to use
09:29:25filwiti don't like 'def' if that's worth anything, lol
09:30:11filwiti prefer your choice of 'proc', even though that was odd at first ('func' was always my "favorite" but we talked about this, and proc make just as much sense)
09:31:33AraqSo we'd have "iterator", "macro", etc. and then "def". Makes no sense. ;-)
09:32:03filwityou know, it's funny but i used to hate 'method' and stuff cause they where long while 'proc' was short
09:32:04filwitlol
09:32:45Araqwell the idea is to encourage static binding, so "proc" got the shortest keyword
09:32:48filwitdon't worry, i think they're perfectly fine names.. just saying that was my first impression (but you know how detail-oriented i am, so that's not saying much..)
09:33:31filwitand actually, i agree. making them longer names makes them distinct, which is good because they're different
09:33:41Araqhowever, I think I'll have "func" to mean proc {.noSideEffect, writes: [], raises: [], tags: [].}
09:33:58Araqwhich means you are in pure FP wonderland
09:34:02filwitwhat does {.tags:[].} doe?
09:34:05filwitdo*
09:34:13Araqlook it up please
09:34:24filwitoh, i assumed it wasn't documented...
09:36:21filwitokay, i see. interesting. I haven't gotten into the new writes/raises/tags pragmas yet
09:36:37filwitthey look nice though
09:37:18Araqthe compiler really needs to start using 'tags'. It's very useful to mark procs that perform symbol table manipulations.
09:37:49Araqand it's a nice experiment if the tags-system works on a large scale
09:38:09filwitit's to help with safety, not performance right?
09:38:39filwitor for threading, like your article talked about.
09:38:48filwitnevermind, i'll just do more research into it later
09:38:59filwiti'm gunna forget anything you say right now, kinda tired
09:41:17Araqsafety. you can ensure parts of your engine never ends up calling your scripting layer, for instance.
09:41:49filwityeah, that sounds very useful.
09:42:16filwitbtw, working with SIMD in Nimrod is awesome, lol
09:44:37filwitit's just nice that it doesn't take much effort to get a nice "a += b * x.shuffle(0, 2, 3, 3)" code that i know it's going to cause any odd performance penalties
09:45:06filwiti tried doing this in D awhile.. it was not nearly as nice.
09:45:12filwitawhile ago**
09:46:14filwitbut half because D has it's own SIMD intrinsics for DMD.. i guess i could have tried using xmmintrin.h directly.. that might have helped
09:46:42Araqno these things don't work when you don't compile to C
09:47:07filwityeah you're right
09:47:11filwitmaybe GDC
09:47:21Araqyeah
09:47:25Araqor llvmd
09:47:27filwitbut yeah, it's not near as nice of a situation
09:48:00Araqbbl
09:48:13filwitk
10:04:41eigenlichtdunno whether you guys saw it, but people on r/programming have problems viewing the slides about meta programming: https://pay.reddit.com/r/programming/comments/1rpwk4/nimrod_a_new_approach_to_meta_programming_slides/
10:05:43eigenlichtit's sad, because it's really interesting to see a macro system similar to lisps in action, but without the s-expressions (which I like though)
10:06:25filwiti can see the slides fine..
10:06:30eigenlichtme too
10:06:35filwitwhat are they using IE6 or something?
10:06:50eigenlichttablets and stuff it seems
10:07:18eigenlichtthe top comments are all about the slides, instead of the content
10:07:21filwityou should be able to swipe left/right i thought
10:07:33filwithaven't tried though
10:07:41eigenlichtit says so, but it doesn't work across different platforms/browsers according to the comments
10:08:04filwityeah, i'm reading the comments now..
10:08:45filwiti always opened in a new tab, so i never noticed the back-button thing.. though honestly i kinda prefer having back as "go back a slide" for a slideshow..
10:09:06filwiteither way, if people are having problems with it, it should probably be fixed
10:09:38eigenlichtdidn't think to much about it, but is nimrods meta-programming equivalent to lisps in power?
10:10:09eigenlichtyeah, that's what I hoped, too. because all those people who could possibly contribute, won't because the slides don't work
10:10:28*jasonjckn quit (Remote host closed the connection)
10:10:53filwitI don't know much about Lisp, sorry
10:11:14filwitAraq should be around a little later though, and he knows
10:11:58filwitI've heard that Nimrod's macros are similar to Lisp's ability.. but really i have know idea, and don't want to spread mis-information
10:11:59eigenlichtfilwit: are you working on nimrod too? or should I report the problems with the slides somewhere?
10:12:25filwitI don't have ability to fix that directly, no
10:12:58filwitmake sure either Araq or dom96 knows about it.
10:13:08eigenlichtAraq == the author of the slides?
10:13:22filwitAraq == the author of Nimrod ;)
10:13:31filwitand the slides too
10:13:46filwitthough it's possible someone else wrote the HTML for them or something
10:14:09filwitusually, either Araq or dom96 is responsible for the content you see on the web
10:14:19*BitPuffin joined #nimrod
10:14:21eigenlichtanyway, I'll try to make sure he gets hold of the problem. probably he will anyway once he comes online because of the pings
10:14:25filwithi BitPuffin
10:14:58filwiteigenlicht: he was just here a minute ago actually, but said he would be back later
10:15:03BitPuffinhowdy filwit
10:15:07BitPuffindom96: you thar?
10:15:14filwiteigenlicht: thanks for the report though
10:17:50eigenlichtfilwit: np
10:23:21*DAddYE quit (Remote host closed the connection)
10:41:40eigenlichtwell, the guys in #lisp don't seem to be of any help either on this matter
10:42:10filwitis there a specific thing you'd like to know if Nimrod's macros can do?
10:42:35*EXetoC joined #nimrod
10:42:43filwithi EXetoC
10:43:02eigenlichtI can see that nimrods meta programming supports the most used applications of lisps macros - but I dunno about the more special stuff, since I'm not a lisp expert either
10:43:44eigenlichtso to say, everything I've done with lisp macros yet, could have been done with nimrods meta programming too, I guess
10:44:16filwiti really can't think of anything Nimrod's macros can't do right now
10:44:39filwitthere are some TypeTraits that need to be defined still, but that's not a limitation with the design
10:45:10filwitmacros basically just take in arbitrary AST and return arbitrary AST
10:45:37filwityou can use the {.immediate.} pragma to ensure they run before certain type-checks, meaning you can do things like:
10:45:53filwitmyMacro SomeYetToBeDefinedSymbol
10:46:10EXetoCfilwit: hola
10:48:17eigenlichtthe only thing one guy in #lisp said, is that nimrod is probably single dispatch, which he considered less powerful than multiple dispatch (which common lisp supports)
10:48:32eigenlichtbut that's not really related to the meta programming
10:49:09filwiti'm not sure what single vs multiple dispatch is
10:49:17BitPuffineigenlicht: you mean dynamic dispatch?
10:49:45eigenlichtI think he was refering to OOP, but I'm not sure 100% either
10:50:09BitPuffinyeah dynamic dispatch is the same
10:50:10filwityou mean single inheritance vs multiple inheritance
10:50:30eigenlichtfilwit: nope, that's something very different. looking for a good link...
10:50:46filwitokay
10:50:54BitPuffineigenlicht: http://build.nimrod-lang.org/docs/manual.html#multi-methods
10:51:29eigenlichtBitPuffin: afaik dynamic dispatch != multiple dispatch
10:52:02BitPuffineigenlicht: well I read the wikipedia article about multiple dispatch and it seemed to describe dynamic dispatch
10:52:09BitPuffineigenlicht: I could be wrong
10:54:32BitPuffinah no they are not the same
10:54:38eigenlichtBitPuffin: this article describes single and multiple dispatch, and at the top of the article you find the description to dynamic dispatch: https://en.wikipedia.org/wiki/Dynamic_dispatch#Single_and_multiple_dispatch
10:55:03eigenlichtthe result may be similar (that the operation is not defined at compile time), but it's a different approach though
10:55:23BitPuffinar are they?
10:55:43filwittechnically multiple dispatch would be possible.. manually.. through macros
10:56:21eigenlichtI don't think it's possible to have both, mutltiple and single dispatch, fully supported in one class system
10:56:34filwitmeaning you could define a macro, which in terms builds a type of multiple objects (your own OOP), then you make a proc which chooses, based on it's multiple types, which proc to really call
10:56:53filwitin turn** builds...
10:57:11eigenlichtthat would be somewhat like your very own class system then
10:57:21filwitexactly
10:57:35filwitwhich you can do in Nimrod, but yeah, not built-in
10:57:55filwitthen again, don't take my word for it, it's possible there's some Nimrod feature i'm unaware of
10:58:01BitPuffinyeah same here
10:58:05BitPuffinI don't know if we have it
10:58:20BitPuffinI can barely wrap my head around what dispatch is
10:58:27BitPuffinnah I know what it is but still
10:58:27filwitbut i doubt it, since Nimrod's type system doesn't (yet) have multiple inheritance... so that wouldn't make sense
10:58:29BitPuffinxD
10:58:32eigenlichtanyway, I'm not that much interested in whether the class system/OOP - it's about the meta programming :P
10:58:41BitPuffineigenlicht: exactly
10:58:48BitPuffinthe oop is kept simple for a reason
10:58:54BitPuffinwe don't have protected for example
10:59:04BitPuffinsome will argue that that is not as powerful
10:59:27eigenlichtfilwit: it's has nothing to do with multiple inheritance iirc correcly. the difference is just that in single dispatch oop, the object is the central type
10:59:37eigenlichtin multiple dispatch, the function is the central type
10:59:49BitPuffinthe parameters seem to be the central types
10:59:52BitPuffinor something like that
11:00:38filwiteigenlicht: according to your linked article, it sounds like multi-dispatch means one function is called based on the account of all of it's inherited types
11:00:57eigenlichtmaybe I expressed it poorly...in single dispatch OOP the first thing you do is define a class is some way. in multiple dispatch, or at least in common lisp, the first thing you do is define the method
11:01:26filwitahh, this is generic programming in Nimrod
11:01:30eigenlichtand based on the argument, the corresponding method is called
11:01:36BitPuffinyeah
11:01:39BitPuffinwhat filwit said
11:01:41filwitproc foo[T](bar:T)
11:01:47filwitwhere T can be multiple types
11:02:04BitPuffinit's instantiated for every type it is called with
11:02:11filwitin Nimrod, you can even do this: type Foo = object or tuple; proc bar(baz: Foo)
11:02:32eigenlichtit's more than just function overloading/using generics
11:02:49BitPuffineigenlicht: remember that lisp is dynamically typed (unless you go out of your way to declare what type something should be) so without generics it would not be possible
11:03:02BitPuffinin nimrod
11:03:22BitPuffinfilwit: I didn't know that :o
11:03:24eigenlichtyeah, but just because you have generics, doesn't mean you support multiple dispatch OOP
11:03:51BitPuffinbut how could we declare method first if we didn't have generics?
11:03:55filwiteigenlicht: okay, well i'm too unfamiliar with this domain to comment really. You'll have to ask Araq, he should know more.
11:03:56eigenlichtlook at this for example: https://en.wikipedia.org/wiki/Multiple_dispatch#Common_Lisp
11:04:14BitPuffinto the pedia!
11:04:19EXetoCfilwit: 'or' == '|'?
11:04:26EXetoCseems like it
11:04:51EXetoCaccording to that example anyway, but I haven't encountered that yet
11:05:05BitPuffinEXetoC: or is both | and ||
11:05:11BitPuffindepending on the context
11:05:18filwitEXetoC: nah, it's 'or' according to the docs
11:05:43eigenlichtso am I in fact, not that much into OOP. just learnt the single dispatch stuff from C#/java, etc. and the multiple dispatch along with common lisp back then, and I remember thinking that it's an interesting approach (for function languages)
11:05:47eigenlichtfunctional*
11:05:49filwiteigenlicht: i don't understand.. that looks like common overloading.. what am i missing?
11:05:50BitPuffinwel BLABLU | BLEBLA is BLABLU or BLEBLA in nimrod
11:05:50EXetoCfilwit: so "TSignedInt* = int|int8|int16|int32|int64" is different?
11:06:40BitPuffinohh
11:06:44BitPuffinyou are talking about that
11:06:48eigenlichtfilwit: let me check, I gotta re-understand that first myself
11:06:50filwitEXetoC: i have no idea.. maybe it's just the same syntax. I just learned about the 'or' myself
11:07:59BitPuffinhttp://build.nimrod-lang.org/docs/manual.html#user-defined-type-classes
11:08:04BitPuffinEXetoC: ^ uses or
11:08:39BitPuffinactually it doesn't use either
11:08:54eigenlichtfilwit: maybe this explains it a bit better: https://en.wikipedia.org/wiki/Generic_function
11:09:06EXetoCBitPuffin: right :p
11:10:58filwiteigenlicht: as far as i can tell, that looks like regular generic procs.. but i don't know enough about Lisp to really tell for sure
11:11:25filwiteigenlicht: plus, i live in the US and have been up all night.. so i'm kinda tired right now and can't think the best
11:11:31eigenlichtfilwit: it seems to me too like normal function overloading right now, but I'm sure there is more to this
11:12:30filwiteigenlicht: it sounds like a fancy name for generic functions with type restraints
11:13:25filwitproc collide[T:Astroid|Ship](o:T)
11:13:35filwitbut again, can't be sure
11:13:36BitPuffinwith sets, does the subset thing mean that for example A < B only contains some of B's elements but not all and no other?
11:17:55EXetoCfilwit: that's also a type class, so I guess you're using both '|' and 'or' then :p
11:18:49filwitEXetoC: yeah, i'm not really sure of the difference when used with type declarations
11:18:52EXetoCexcept you're taking a shortcut by not defining it in a type block
11:19:18filwitoh i see what you where talking about
11:19:19EXetoCfilwit: can't think of any
11:19:40filwityeah, i was just using and example from the Lisp links
11:22:51BitPuffinBy the way it would be really cool to hake some way to have a way to specify things that should happen once things are inherited for example
11:23:17BitPuffinso that if one were to write an ORM
11:23:28BitPuffinif you inherited some base table type
11:23:37BitPuffinit would create procs for creating things
11:24:02BitPuffinso type Foo = object of TTable
11:24:12BitPuffinwould give me insertFoo etc
11:24:17BitPuffinfindFoo
11:24:26*DAddYE joined #nimrod
11:25:16filwitBitPuffin: that's what generics are for
11:26:06BitPuffinfilwit: I think you missed the point
11:26:06filwitor wait.. nevermind.. i don't understand what you're saying
11:26:16EXetoCBitPuffin: the manual seems to imply that. I'm not sure how < and <= could differ otherwise
11:26:30BitPuffinit's so that new procs are generated with the type name
11:26:32EXetoCtesting it gives me an ICE though
11:26:37BitPuffinthis is just an example on what we could do wit h it
11:26:47filwitBitPuffin: what do the new procs do?
11:27:04BitPuffinEXetoC: well < would be false if they were the same I think
11:27:11BitPuffinor oh
11:27:15BitPuffinnevermind
11:27:15filwitBitPuffin: any type derived of some other type should work with that other types procs..
11:27:27EXetoCBitPuffin: yes
11:27:44BitPuffinfilwit: it basically does generic things just that the name would be part of the proc
11:28:00eigenlichtfilwit: just in case you're curious: http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html
11:28:25eigenlichtthis explains why generic functions are much, much more powerful than simple function overloading
11:28:36eigenlicht(especially paragraph "Method Combination" and below)
11:28:53BitPuffinfilwit: indeed, but I'm thinking of things like in rails for example
11:29:10filwiteigenlicht: thanks, i'll take a look at it later.. no way i'm reading all that right now though
11:29:12*DAddYE quit (Ping timeout: 260 seconds)
11:29:22BitPuffinit's a bad example but my point is, it would be nice to have some hook to do operations when something is inherited
11:29:25BitPuffinor included
11:29:30BitPuffinetc
11:29:48eigenlichtfilwit: yeah, sure. as I said, if you already know what a generic function and a method in this context is, you can start right away from "method combination"
11:30:04eigenlichtnot that hard to grasp imo (at least when you#re fully awake ;))
11:30:11filwitBitPuffin: okay, well i'm not sure what you're after. IDK about Rails at all. but i'm too tired to think about his much
11:30:55filwitwell i'm taking off for a few hours. later folks
11:31:02*filwit quit (Quit: Leaving)
11:34:04EXetoCBitPuffin: A is a proper/strict subset if it's a subset but not equal to B, and the Nimrod manual uses the term 'strong subset' when describing '<'. so yeah, probably the same thing
11:35:31EXetoCso there are several set operations that don't work. gotta report this
11:37:26BitPuffinEXetoC: yeah do report
11:37:47EXetoCI think I was going to report something else too about a week ago. wth was that? :p
11:37:55BitPuffinAraq: is it a know issue that you get a type error when you do var f: TIMat2 = <array constructor>?
11:52:10BitPuffinHmm
11:52:24BitPuffinshould I call matrix minor "min" or minor ?
11:52:27BitPuffinor should I even have it
11:52:44BitPuffinyou can really just do det(m{12}) anyway
11:53:06BitPuffinthat's what it looks like in math
11:53:09BitPuffinso maybe that's even better
11:54:34BitPuffinor wait a second
11:54:38BitPuffin{} is not submatrix
11:54:39EXetoCminor is short enough already
11:54:42BitPuffin{} is minor
11:55:13BitPuffintime to refactor!
11:55:26BitPuffinshould I call submatrix "subMatrix" or "sub" ?
12:02:16*gsp joined #nimrod
12:06:24BitPuffinI went with sub
12:07:01gspHi guys! I was just playing around with the pegs module. What's the proper way of doing more than "MaxSubpatterns" captures? Setting up two grammars and matching the substructures separately seems silly.
12:13:07BitPuffingsp: no idea
12:26:12*DAddYE joined #nimrod
12:29:43EXetoCgsp: how are you running into this limitation? is your grammar complex?
12:30:14*DAddYE quit (Ping timeout: 240 seconds)
12:30:21EXetoCI think it was an issue for me because I specified a repetition on a capture group, rather than inside one
12:31:48EXetoCbut I don't know what to do in case of a grammar that has too many captures.
12:32:05EXetoCor maybe I just don't know how to use pegs properly
12:32:05BitPuffinfuck {} was the submatrix
12:32:31EXetoCgsp: Araq should know, but I don't know when he'll be around
12:33:35*datura joined #nimrod
12:34:07daturawow.. 44 online is more than i expected.
12:39:11gspEXetoC: ok, thanks! What I'm doing is matching elements for a specific set notation, where each element also has some parameters. Even if I'm going to match the parameters separately, there's still the possibility, that the set contains more than 10 elements.
12:44:06BitPuffinno {} is the minor
12:44:09BitPuffinfucking balls
12:49:45EXetoCdatura: yeah? hi
12:49:55EXetoCgsp: ok
12:50:12EXetoCBitPuffin: are you sure this time? :p
12:51:13BitPuffinEXetoC: yes xD
12:51:27BitPuffindatura: actually we've been up to around 60 iirc
12:52:34*q66 quit (Quit: Leaving)
12:53:58*q66 joined #nimrod
12:54:24daturalooks like nimrod is a bit further along the way than scala was when i joined that channel, but i've seen much more written about scala back then than i've seen written about nimrod.
12:54:54daturalooks like i'm a bit late to take notice of this language :)
12:56:00*q66_ joined #nimrod
12:56:17BitPuffindatura: most people are :P
12:56:20*q66 quit (Read error: Connection reset by peer)
12:58:11BitPuffinuh
12:58:20BitPuffindoes nimrod have a ^ operator can't remember
12:58:55BitPuffinno math.pow
13:00:55*q66_ quit (Quit: Leaving)
13:01:10*q66 joined #nimrod
13:10:37EXetoC"indentation with tabs outlawed. WTF? I do not want to hit my spacebar eight times for every indentation-level." notepad <3
13:12:11BitPuffinEXetoC: lol, some programmer right there
13:21:55*datura quit (Ping timeout: 272 seconds)
13:25:47BitPuffinAraq: what does one do in this case? Error: ambiguous call; both matrix.det(m: TMatrix[T, N, N]): T and matrix.det(m: TMatrix[T, range 0..1(int), range 0..1(int)]): T match for: (TMatrix[int, range 0..1(int), range 0..1(int)])
13:26:39BitPuffinby the way guys determinants for NxN matrices are now implemented :D but it doesn't work because compiler bugs
13:27:34*DAddYE joined #nimrod
13:28:07dom96BitPuffin: I'm here now.
13:31:50BitPuffinhowdy dom96!
13:31:50*DAddYE quit (Ping timeout: 240 seconds)
13:32:03BitPuffindom96: how are you?
13:32:04dom96I'm not hiding from you btw.
13:32:13BitPuffinhaha no I know it was a joke :)
13:35:03dom96Did you get the cookies working?
13:35:29*boydgreenfield joined #nimrod
13:36:13BitPuffindom96: no, I wanted you to try if you could reproduce something
13:36:35dom96ok, what.
13:36:38dom96?
13:36:46BitPuffindom96: I tried to just make a post that simply sets a cookie and redirects, same issue
13:37:02dom96can you gist your code?
13:37:37BitPuffinsure thing
13:40:51BitPuffindom96: actually I removed that code since I saw that the issue was the same, but I'll write it by hand in a gist
13:40:56BitPuffinI remember exactly what it was
13:41:03dom96thanks
13:41:31BitPuffinor I'll even write one you can run
13:41:43dom96yeah, that's better.
13:42:03BitPuffinis it request.cookie or cookies
13:43:55*boydgreenfield quit (Quit: boydgreenfield)
13:44:06dom96cookies I think
13:44:20*dom96 really needs to get nimbuild to build babel package docs
13:48:00BitPuffinhmm wtf
13:48:04BitPuffinnow it works as expected
13:48:09BitPuffinis it fighting with persona or what
13:49:21eigenlichtdom96: filwit said either you or araq should know of the problems with the slides on nimrods meta programming
13:49:28eigenlichtsee here: https://pay.reddit.com/r/programming/comments/1rpwk4/nimrod_a_new_approach_to_meta_programming_slides/
13:50:54eigenlichtI guess quick fix would be providing a pdf, since honestly, the web is so broken
13:51:20dom96Yeah, thanks for the heads up. They're Araq's slides though so I can't really do much, maybe I can update the JS or something.
13:52:00eigenlichtI consider my job of reporting this as done then
13:53:26dom96http://www.w3.org/Talks/Tools/Slidy2 doesn't work on my phone either, so they would have to fix it.
13:55:29dom96or we could hack their JS and get it to work.
13:55:42dom96But I have no idea how this slide to left stuff works.
13:55:50BitPuffindom96: or write an alternative in nimrod!
13:56:00BitPuffindom96: by the way linagl just became more awesome
13:56:05BitPuffinin case you missed
13:56:11dom96oh? how?
13:57:48BitPuffindom96: the matrix implementation is becoming complete, there is an implementation of n*n matrices too but that doesn't make the compiler happy because I've hardcoded determinants for 2x2 and 3x3 because I had to hardcode submatrices for 2x2, 3x3, and 4x4 because of compiler bugs
13:57:57BitPuffinyes I am indeed working around my workarounds
13:58:12dom96lol, sounds fun
13:58:30BitPuffinit's pushed
13:58:39BitPuffinhmm what else before I start adding the 3d stuff
13:59:17BitPuffinright
13:59:21BitPuffininverse and adjoint
13:59:43BitPuffinorthogonalizing
14:00:51BitPuffindom96: by the way since I have to delay my blog, one option to get an article up this weekend would be if I guest posted on your (or someone else's) blog
14:02:02dom96sure. But my blog doesn't really have a concept of 'author', it's all me heh. Will have to figure out how to get your name in there somehow.
14:03:28BitPuffindom96: well we could just open the post with something like "This is a guest post by Isak Andersson from www.bitpuffin.com"
14:03:52dom96sure
14:04:09dom96what do you want to write about?
14:04:15BitPuffindom96: linagl
14:05:02dom96ok
14:09:40BitPuffinmatrix diagonal, trace, eigenvalue, eigenvector too
14:09:44BitPuffinthen I'll add some 3d stuff
14:09:51BitPuffinand then I can release linagl 0.2.0 :D
14:10:29BitPuffinor maybe I'll release 0.2.0 with just the complete matrix math stuff
14:10:40BitPuffinand then add 3d stuff
14:10:42BitPuffin0.3.0
14:10:51BitPuffinquaternions 0.4.0
14:11:06BitPuffinexponential maps, euler angles etc 0.5.0
14:11:42BitPuffingeometric primitives 0.6.0
14:11:49BitPuffincurves 0.7.0 etc etc etc
14:12:11BitPuffindom96: thoughts? xD
14:12:31*dom96 has no idea what most of those things are
14:12:34BitPuffinI'm gonna add the 3d stuff today anyway unless I encounter severe bugs
14:17:00eigenlichtBitPuffin: studying CS? sounds pretty much like our syllabus in linear algebra
14:17:31BitPuffineigenlicht: I self study
14:17:52BitPuffincomputer graphics thingies
14:18:05BitPuffineigenlicht: and yes, linagl is a linear algebra lib :P
14:18:25BitPuffinwith some 3d flavors sprinkled on it
14:18:40BitPuffinbut it is not limited to 3d graphics use
14:18:59BitPuffinhence the support for arbitrary matrices
14:19:40eigenlichtimplemented gauss algorithm? our prof just loves this one
14:20:01BitPuffineigenlicht: nope not yet, currently focusing on making matrices complete
14:23:02BitPuffineigenlicht: https://bitbucket.org/BitPuffin/linagl if you are interested in looking at what's currently in there :)
14:25:45eigenlichtoh, remember looking at it before
14:25:59BitPuffineigenlicht: I just pushed some goodies
14:28:19BitPuffineigenlicht: and since you are in linear algebra class it would be nice if you verified that my understanding of minors and cofactors and determinants are correct
14:28:27BitPuffins/are/is/
14:29:03NimBotnimrod-code/babel master 87008ed Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds didUpdatePackages global to detect downloads.
14:29:03NimBotnimrod-code/babel master 58ee3a5 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds some temporary masks to gitignore.
14:29:03NimBotnimrod-code/babel master e08f910 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds update suggestion to failed install commands.... 3 more lines
14:29:03NimBotnimrod-code/babel master d2ff131 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds -y/-n switches for non interactive operation.
14:29:03NimBot3 more commits.
14:29:40*BitPuffin does babel install babel
14:30:27dom96:)
14:30:27BitPuffinbabel install babel install babel install babel install babel install babel install babel install babel install babel
14:30:49BitPuffindom96: living on the edge wooh!
14:32:22eigenlichtBitPuffin: I'm sorry, it has been some time. also, iirc we barely talked about determinants
14:32:41BitPuffineigenlicht: ah that's lame
14:32:57BitPuffinwell at least it can be a good refresher if you look at it and hope I'm right
14:33:00BitPuffinI think I'm correct at least
14:36:47NimBotnimrod-code/babel master 4e2a51b Grzegorz Adam Hankiewicz [+0 ±2 -0]: Adds method to split and strip input config files.... 3 more lines
14:36:47NimBotnimrod-code/babel master 12918f4 Grzegorz Adam Hankiewicz [+0 ±2 -0]: Modifies multiSplit to strip commas too.... 2 more lines
14:36:47NimBotnimrod-code/babel master 9409b6e Dominik Picheta [+0 ±3 -0]: Merge branch 'pr_fix_multiline_config_files' of git://github.com/gradha/babel into gradha-pr_fix_multiline_config_files... 3 more lines
14:40:34dom96ooh, Nimrod is #25 https://github.com/trending
14:45:28BitPuffindom96: awesome, that's hard to believe actually
14:45:50BitPuffindom96: now we just have to make jester beat martini
14:45:54dom96Yeah.
14:46:06*OrionPKM joined #nimrod
14:49:51*zielmicha joined #nimrod
14:50:06dom96hello zielmicha
14:50:16zielmichahey
14:52:27*gradha joined #nimrod
14:53:04BitPuffinzielmicha: are you new here?
14:53:42zielmichayes, I read about nimrod yesterday
14:53:52BitPuffinzielmicha: welcome!
14:53:58BitPuffinzielmicha: how did you find it?
14:55:36zielmichaI think that I found it mentioned on Reddit.
14:56:05BitPuffincool, well I hope you enjoy using nimrod! Don't be afraid to ask if you need help with anything :D
14:56:34EXetoCdom96: you think we'll be #1 soon?
14:56:40EXetoCsome time in 2014 perhaps
14:56:53dom96We might be once the strangeloop talk gets released
14:57:08BitPuffindom96: and don't forget about the dobbs article
14:57:21dom96indeed
14:57:32BitPuffinand the linagl blog post xD
15:00:32*Jackneilll joined #nimrod
15:00:36*Jackneill quit (Read error: Connection reset by peer)
15:02:40BitPuffindom96: damn it there are some warts in the compiler that will make linagl look really inconvenient :/
15:02:54dom96:\
15:03:07BitPuffinfor example var a = [[20,30], [489, 1]].TIMat2 won't work
15:03:32BitPuffineven though it should
15:03:53EXetoCctors?
15:04:21BitPuffinEXetoC: yeah but not really
15:05:03BitPuffinI'd have to pass in typedesc
15:05:07BitPuffinthat would be ugly too
15:06:06BitPuffinvar m = initMatrix(TIMat2, [[2,8],[49,83]])
15:06:19BitPuffinno thanks
15:07:18BitPuffinI personally think that the ultimate syntax would be something like var m = TIMat2[[84, 4], [48, 8]]
15:07:20EXetoCone ctor per common type then
15:07:36BitPuffinbut that causes internal compiler error
15:07:52gradhadom96: the lack of babel versioning may be a support headache if people (aka me) start using multiline parameters in babel files and users (hah!) install that with an older babel… but old and new are both 0.1.0
15:08:04BitPuffinoh hey gradha
15:08:08gradhayo BitPuffin
15:08:17BitPuffindidn't see you come it
15:08:18dom96gradha: I may release 0.1.0 today
15:08:19BitPuffinin
15:08:21BitPuffin*
15:08:29gradhaBitPuffin: no worries, I'm just a ninja badger
15:08:42dom96For now assume people are bleeding edge :P
15:08:50dom96And it's easy to update anyway
15:09:04BitPuffingradha and the badgers
15:09:07BitPuffinsounds like a good band name
15:09:22BitPuffinwhere is Araq anyway
15:09:34BitPuffinor zahary1 / zahary_
15:09:40BitPuffinsomeone who hacks the comajler
15:09:43BitPuffincompajler
15:09:53BitPuffinOr Varriount or someone
15:10:00BitPuffinaka the gods
15:10:19BitPuffinWe need to coordinate the article thingy
15:11:24dom96I'm here! I guess you don't consider me a god? :(
15:12:06gradhagods don't tend to have physics exams, they MAKE physics work like they want to
15:13:08BitPuffinbecause I really don't want to publish an article filled with examples like var m: TMatrix[float32, range[0..2], range[0..2] = [[399329.0f32, 488.37f32, 84.04f32], [48.0f32, 8.0f32, 888.0f32], [0.0f32, 8.9f32, 848.0f32]]
15:13:17BitPuffinthat's gonna hurt nimrod more than it helps
15:13:28BitPuffinthat's not even an exaggeration
15:13:31gradhaBitPuffin: on the bright sight you might capture crypto nerds
15:13:32BitPuffinthat's what you gotta do atm
15:13:53BitPuffindom96: well aren't you more of an stdlib guy than internal compiler guy? :o
15:14:08BitPuffindom96: by the way if the jester post thing wouldn't have worked you would actually have gotten a compliment
15:14:37dom96So only compiler guys deserve to be a god?
15:15:00BitPuffindom96: cuz look at ze code https://gist.github.com/BitPuffin/d8bd4a4678ce355275b1
15:15:12BitPuffindom96: Well who do you pray to whon you need compiler bugs fixed?
15:15:53gradhaBitPuffin: that's too monoteistic, maybe dom96 is a lesser god, but still a god?
15:16:03BitPuffinhe's a saint maybe
15:16:08dom96I assist the Gods.
15:16:09BitPuffinor an angel
15:16:10dom96I'm Jesus
15:16:12dom96or something
15:16:19BitPuffindom96 is dead ;_;
15:16:32BitPuffindom96: An imp?
15:16:40*dom96 should read the bible
15:16:40gradhadom96: was offline for three days, and has come today as a zombie to tell us of the future
15:17:01BitPuffinwhy the hell should you read the bible
15:17:37dom96So that I know what to call myself
15:17:47BitPuffina christian?
15:18:02dom96no, I mean what character out of the bible to call myself :P
15:18:11BitPuffinyeah, I'm just pulling your leg
15:18:17BitPuffindom96, fix the bug, become a god
15:18:33BitPuffinDominik vs Goliath or something
15:18:34gradhamay be quicker to read babel's wikipedia entry
15:19:39BitPuffindom96: by the way, why not make babel build nimrod
15:19:59BitPuffinthen we wouldn't need fucking aur
15:20:47BitPuffinthat redownloads the full repo again and again, I currently use cower when I wanna update nimrod, but I still can't do pacaur -Syu --devel because that shits and wants to update nimrod-git
15:20:48dom96That would mean I would need to give babel support for custom build scripts.
15:21:21BitPuffinand?
15:21:51dom96And there are more important things to be done.
15:22:08BitPuffinso put it on the fjutjur list
15:22:24BitPuffindom96: and fix the bug, become ze god
15:22:39*dyu joined #nimrod
15:22:47*gsp quit (Ping timeout: 246 seconds)
15:23:05dom96BitPuffin: Make an issue @ github then
15:23:10gradhaI've been thinking about babel importing nakefiles and "detecting" standard named procs like build, install, preconf/postconf, and stuff like that, similar to some linux distros
15:23:25BitPuffindom96: and have this song looping while doing it http://youtu.be/Eq3CuMDXaPs
15:24:47BitPuffinoh I'll post issues
15:24:50BitPuffinso many issues
15:24:54BitPuffinD:<!!!
15:26:19NimBotnimrod-code/babel master b1358d7 Dominik Picheta [+0 ±1 -0]: Raise EBabel exception instead of calling quit().
15:26:19NimBotnimrod-code/babel master 94df44e Dominik Picheta [+0 ±1 -0]: Fixes #16
15:26:19NimBotnimrod-code/babel master 0e8c581 Dominik Picheta [+0 ±1 -0]: Fixes #17
15:26:59dom96Now I should really eat breakfast hah
15:27:49BitPuffindom96: a bit late? :P
15:29:12dyugood to see nimrod on hn front page again
15:29:27dyuthis time, there are lots of comments (good ones)
15:31:09BitPuffindyu: old news :P
15:31:37dyuyea well, I've resorted to reading hn only on weekends
15:31:59BitPuffindyu: yeah, I don't read HN at all haha
15:33:38dyuBitPuffin: good for you! And don't plan on doing it daily just in case
15:36:24BitPuffindom96: it's a 6 month old issue posted by EXetoC already
15:36:26BitPuffinat least part of it
15:36:46BitPuffinping zahary1 zahary_
15:36:51BitPuffinhttps://github.com/Araq/Nimrod/issues/517
15:38:49BitPuffinthat's one part of the problem
15:38:59BitPuffinbut that doesn't even do really what have
15:39:15BitPuffinthe gods have abandoned us :(
15:40:50gradhathe gods are playing "plants vs zombies"
15:42:53BitPuffinhow do you know?
15:43:36*gradha sometimes hears whispers
15:44:01BitPuffincreepy
15:46:13dom96cool. Comet ISON survived apparently.
16:26:59*betawaffle joined #nimrod
16:31:37*DAddYE joined #nimrod
16:36:44*DAddYE quit (Ping timeout: 272 seconds)
16:37:28BitPuffinwhat's a good way to model (-1)^ij in code
16:37:30BitPuffin?
16:37:48BitPuffinI tried: if therow + thecol mod 2 == 0: m.minor(therow, thecol) else: -m.minor(therow, thecol)
16:37:53BitPuffinbut realized that it was rong
16:37:55BitPuffinwrong
16:38:12BitPuffinbecause it won't work as it should in 3, 3 for example
16:39:53BitPuffinthe pow function is useless in nimrod because it only works on floats
16:45:43EXetoCjust extend the interface
16:47:05BitPuffinEXetoC: but I don't know how to implement power of lol
16:47:37BitPuffinor well I do
16:47:40BitPuffinhaha
16:47:45BitPuffinnot that hard now that I think of it
16:47:54BitPuffinwell at least for positive numbers
16:49:37BitPuffinbut honestly there has to be a way to know the result of (-1)^n without having to multiply -1 by itself n times
16:50:01BitPuffinand relate that to ij
16:50:03BitPuffinhmm
17:05:00*mflamer joined #nimrod
17:07:46EXetoCBitPuffin: http://www.programminglogic.com/fast-exponentiation-algorithms/ ?
17:08:08*ics joined #nimrod
17:08:17*IrvMG joined #nimrod
17:08:36IrvMGHello
17:08:43gradhawelcome IrvMG
17:10:16IrvMGcommand "log" for nimrod?
17:10:52gradhacan you ellaborate what that means?
17:12:04BitPuffinIrvMG: are you looking for "echo" ?
17:13:02IrvMGequivalent to "console.log" from javascript
17:13:13mflamerAraq: I have the backend creating seperate strucs for each variant now but am stuck on what to do with this table. Seems like alot of things depend on procs like CacheGetType(m.forwTypeCache, t).
17:13:36BitPuffinEXetoC: remind me to do that later
17:13:36mflamerbut, I cant reslly put each variant in there
17:13:44mflamerreally*
17:13:50gradhaIrvMG: likely echo is what you are looking, though devel/logging.nim provides a more serious logger
17:13:53BitPuffinEXetoC: right now I'm using my shitty variant
17:14:20BitPuffinconsole.log is not a serious logger
17:14:24BitPuffinso he's looking for echo
17:15:10IrvMGdevel/logging.nim okay
17:15:12gradhamaybe, after all, echo is the first line of code you find in the tutorial
17:15:43*Zuchto joined #nimrod
17:15:51BitPuffinIrvMG: if you don't need logging levels, just use echo
17:22:47betawaffleAraq: do you have anything that talks about your future concurrency plans?
17:26:23dom96betawaffle: Here is an article by Araq related to concurrency which you may find interesting: http://nimrod-lang.org/blog/writetracking.html
17:26:48betawafflethanks dom96
17:30:55IrvMGsocket.getDomain() ?
17:32:11*petrus joined #nimrod
17:32:52dom96hello Zuchto and petrus.
17:32:57*DAddYE joined #nimrod
17:33:14dom96IrvMG: I'm not sure what you're asking exactly.
17:33:45IrvMGdomain name for socket tcp
17:34:13dom96http://build.nimrod-lang.org/docs/sockets.html
17:34:26brihatI wrote my first ever Nimrod program for related to Collatz conjecture: https://news.ycombinator.com/item?id=6823746
17:34:43brihatWould be happy if you guys tell me how to speed it up
17:35:39BitPuffinis there a way to print floats in non exp form?
17:35:53*IrvMG quit (Remote host closed the connection)
17:37:02*DAddYE quit (Ping timeout: 240 seconds)
17:37:47gradhaBitPuffin: there's a format for floats
17:38:08gradhastrutils. formatFloat
17:39:17BitPuffingradha: well it's not that important haha :P
17:39:18betawafflethis is great
17:40:40BitPuffingradha: I wasn't sure why I was printing anyway
17:40:44BitPuffinwhen I can just test
17:40:46BitPuffin>.<
17:41:08gradhaBitPuffin: you can convert everything to a string and compare ascii then
17:41:25BitPuffingradha: :P
17:41:32BitPuffinthat would work too
17:41:48gradhabrihat: I took the C example but it segfaults
17:41:51*petrus quit (Ping timeout: 245 seconds)
17:42:18gradhaah, you embedded the params, that's why
17:42:55brihatyea, just call it like ./collatz 1000000
17:43:14dom96brihat: You compiled with -d:release right?
17:43:25brihati didn't know how to pass command line args with nimrod yet :P
17:43:32brihatdom96: yea
17:43:52AraqparamStr(i) or the disliked parseopt module, brihat
17:44:07dom96Good. Many people forget about that heh.
17:44:14brihatthanks, will look it up
17:46:40gradhabrihat: your nimrod version is lacking a buffer and a break inside the loop, presumably looking up something in that buffer
17:47:15dom96Anyone on Ubuntu 12.04?
17:47:48brihatXubuntu 13.10
17:47:59Araqbetawaffle: well I know how to make concurrency safe and fast. But the resulting type and effect system is really complex, so ... my design is kind of stuck. We're also still figuring out what's possible with the current system and it turns out it works quite well already. IMHO anyway.
17:48:02brihatgradha: why do i need a buffer?
17:48:44gradhabrihat: I don't know why you need one, as I haven't looked into what the code does, but a quick look between the C version and nimrod suggest the C version uses the buffer as a lookup table to exit the inner loop faster through a break
17:48:55gradhabut maybe your version accounts for this in another way
17:52:24*MFlamer_ joined #nimrod
17:54:10*IrvMG joined #nimrod
17:54:37EXetoCöööö
18:04:21BitPuffinhang on!
18:04:24BitPuffinthe gods have arrived
18:04:27*BitPuffin bows before Araq
18:04:46BitPuffinAraq: If you fix some bugs by tomorrow I'll write an article about linagl so that we can show off nimrod
18:11:34BitPuffinAraq: basically currently demonstrating it would make nimrod look like complete garbage
18:13:02*petrus joined #nimrod
18:14:30BitPuffinAraq: because you have to do this atm: var m: TMatrix[float32, range[0..2], range[0..2] = [[399329.0f32, 488.37f32, 84.04f32], [48.0f32, 8.0f32, 888.0f32], [0.0f32, 8.9f32, 848.0f32]]
18:14:40BitPuffinmissing ]
18:14:58BitPuffinAraq: the point is, it makes nimrod look extremely verbose
18:17:07*DAddYE joined #nimrod
18:17:21*DAddYE quit (Remote host closed the connection)
18:17:27*DAddYE joined #nimrod
18:19:08brihatwhat is linagl? u mean linalg -- linear algebra?
18:22:20BitPuffinbrihat: https://bitbucket.org/BitPuffin/linagl
18:24:01brihathuh, confusing name.. why agl instead of alg?
18:25:15BitPuffinbrihat: because it is also somewhat a graphics library
18:25:47BitPuffinI mean it's intended to also be used for 3d graphics
18:25:48brihatok
18:25:58BitPuffinbut not exclusively
18:26:59brihati myself am looking for a linear algebra lib.. sort of numpy-replacement for nimrod
18:27:22gradhadon't know about numpy, but isn't it a low level C library called from python?
18:28:56*gradha looks up numpy tutorial, shakes head, walks away confused
18:28:59*DAddYE quit (Remote host closed the connection)
18:29:07brihatnope, it's mostly a python library..
18:29:21BitPuffinbrihat: then linagl is your best bet
18:29:27BitPuffinbrihat: it supports n-dimensional stuff
18:29:48brihatwith some parts written in cython -- and cython indeed looks similar to nimrod
18:30:23*dyu quit (Quit: Leaving)
18:30:41brihatnimrod = python-like indentation + static types (not really...)
18:30:52brihatwhich is exactly cython as well
18:32:36BitPuffinbrihat: like I said it is not exclusively a graphics library, it is intended to be use for general purpose linear algebra stuff too
18:33:35brihatBitPuffin: of course, sounds promising to me :)
18:34:07*brihat forgot to turn off the stove and the food turned black
18:34:18gradhametal food
18:34:29EXetoCsure, it's "not really" like that, yet it's almost exactly like cython :p
18:35:27BitPuffinbrihat: however if it is not euclidian space things it might not be included, at least not for a long while as that's generally what I work with :P
18:36:45*MFlamer_ quit (Ping timeout: 265 seconds)
18:37:47BitPuffintangent space is a thing though
18:37:53BitPuffinwell not atm
18:37:57BitPuffinwell I dunno
18:37:59BitPuffinit will be xD
18:42:22gradhathe htmlparser module says with luck it can produce valid XHTML, how do I save a PXmlNode to disk?
18:42:28EXetoCbrihat: it's exactly that if by exactly you mean only those characteristics
18:43:02dom96gradha: xmltree probably has a $
18:44:02AraqBitPuffin: bug number?
18:44:09EXetoCgradha: hm, is that a single sentence? :p
18:44:40Araqgradha: the htmla
18:44:42Araqgah
18:44:56Araqthe htmlparser module even contains an example of how to do this iirc
18:45:14dom96ooohhh.
18:45:22dom96I can query for tags without cloning using git.
18:46:10gradhaAraq: parsexml has a read only examples, if that's what you mean
18:46:51dom96gradha: http://build.nimrod-lang.org/docs/xmltree.html#128
18:47:10dom96writeFile($xmlnode ...)
18:47:30gradhalooks like the end of htmlparser.nim has that test Araq mentioned
18:48:21brihatBitPuffin: yea, n-D euclidean space is all i need. Plus some matrix decompositions
18:49:09BitPuffinbrihat: you mean the three in numpy?
18:50:14brihatyea, more or less, that's all i need.
18:50:37brihatsometimes when I need > 3D in Matlab, i just use tensors or cell arrays
18:51:00BitPuffinsure those decompositions can be added
18:51:01brihatbut numpy can do n-D
18:51:24BitPuffinprobably not right away
18:51:36BitPuffinbecause I'm working on a project that has a hard deadline of this year for me :)
18:51:39BitPuffinbut after that sure
18:51:41BitPuffin:D
18:51:46BitPuffinbe sure to ping me about it
18:52:01brihatof course
18:52:13BitPuffinor if you dare to suffer through my pedanticness you can contribute it yourself but EXetoC would probably not recommend it
18:52:17brihathope i can learn enough nimrod by that time, so that i can contribute if possible
18:53:19BitPuffinbrihat: another nice way to contribute would be to write a separate project that uses it to put graphics on the screen. So that people can use it for scientific computing
18:53:24BitPuffinyou know draw graphs and that stuff
18:53:36BitPuffinI believe matlab does that
18:53:42BitPuffinI think nimrod needs more matlabness
18:54:49brihatyeah, my dream project would be to write a python-to-nimrod converter.. so that I can port Matplotlib in just one day :)
18:55:06gradhabrihat: nimrod is still in that state that having users testing stuff is already welcome
18:55:16Araqare you serious? I used matplotlib once ...
18:55:28*datura joined #nimrod
18:55:42brihathaha not really...
18:55:48AraqI ended up writing my own renderers, drawing pixel after pixel
18:56:25*gsp joined #nimrod
18:56:30BitPuffinAraq: basically being able to do [0, 2].TIvec2 would be lovely
18:56:39Araqthis way I was in control and there was no need to figure out matplotlib's bad documentation
18:56:42BitPuffinand/or TIvec([0, 2])
18:56:46*petrus quit (Quit: WeeChat 0.4.2)
18:56:55BitPuffinbtw TIVec2[0, 2] crashes the compiler
18:56:59dom96BitPuffin: Can't you create a template/proc which does that?
18:57:23BitPuffindom96: it's already supposed to be possible to do that
18:57:27brihatmatplotlib's documentation == look up Matlab documentation :P
18:57:28BitPuffinin fact for a while it was
18:57:46brihatbut these days it has tremendously improved
18:58:50dom96BitPuffin: Have you tried creating a template/proc?
18:59:09*brihat eating burnt pasta and watching Da Vinci code. Peace out until later
18:59:48BitPuffindom96: proc TIVec2(a: array): TIVec2 = result = a probably won't work
19:00:12dom96What is the definition of TIVec2?
19:00:12BitPuffinwell it wouldn't look exactly like that but you get the pojnt
19:00:27BitPuffinTIVec2* = TVector[int32, range[0..1]]
19:00:57dom96And the definition of TVector?
19:01:04BitPuffinTVector*[T; I] = array[I, T]
19:02:28EXetoCbrihat: yum
19:02:36EXetoCbrihat: good luck
19:03:06*IrvMG quit (Ping timeout: 246 seconds)
19:04:36dom96BitPuffin: Try: [0'i32, 2].TIvec2
19:05:37BitPuffindom96: don't you mean i32 on both?
19:05:43dom96no
19:06:35EXetoCyeah that's a shortcut
19:07:01BitPuffinuh
19:07:12BitPuffinwell apparently there is a new issue
19:07:26*datura quit (Ping timeout: 240 seconds)
19:07:55dom96This works for me: https://gist.github.com/dom96/d7db8957cf7f7a5ab6f9
19:08:59BitPuffinhttps://gist.github.com/BitPuffin/7723193
19:09:03BitPuffinhow do you even explain that
19:10:15dom96¯\_(ツ)_/¯
19:10:34BitPuffinaaaand babel is broken too
19:10:46BitPuffinyes
19:10:48BitPuffin¯\_(ツ)_/¯
19:10:52BitPuffinnimrods new mascot xD
19:11:22*IrvMG joined #nimrod
19:13:07dom96Why is babel broken?
19:13:30gradhaBitPuffin: did you update your babel today?
19:14:27BitPuffinhttps://gist.github.com/BitPuffin/7723249
19:14:31BitPuffingradha: yes
19:14:38*gradha implements a megatron program
19:15:11BitPuffindom96: because it doesn't find the matrix module
19:15:29gradhathe one you are installing?
19:15:40BitPuffinyes
19:15:42BitPuffinin babel
19:15:56BitPuffintest.nim(1, 13) Error: cannot open 'linagl/matrix'
19:16:13BitPuffinlinagl/vector works though
19:16:16BitPuffinthat's normal
19:16:18dom96what are you compiling exactly?
19:16:39BitPuffindom96: change the line in the gist to linagl/matrix instead of vector
19:16:43BitPuffinand it says tha
19:16:45BitPuffint
19:19:47BitPuffinI'm gonna go buy some crisps
19:19:55gradhaawww... saving html back to file with $ modifies stuff where it shouldn't
19:22:32*ryeguy joined #nimrod
19:23:01*datura joined #nimrod
19:23:12dom96BitPuffin: Does babel not install linagl/matrix?
19:23:24dom96BitPuffin: buy some fruit, crisps are bad for you :P
19:24:03BitPuffinnope
19:24:04dom96yay, we're #22 on https://github.com/trending
19:24:09dom96Araq: Did you see that yet?
19:24:28BitPuffinhttps://gist.github.com/BitPuffin/7723364
19:24:43BitPuffindom96: oh come on now I'm gonna feel bad for buying crisps
19:24:48BitPuffin:D
19:24:56BitPuffinyolo!
19:24:56gradhabuy alcohol
19:25:06BitPuffinhonestly though pomelo is the best fruit
19:25:08BitPuffinever
19:25:14gradhaI got myself today some whiskey cream, I wonder if I should open that now
19:25:27BitPuffinthat's what I take when I can't eat crisps, and yesterday it was friday and today it is yesterday
19:25:34BitPuffinlogic tells me that it is time for crisps
19:25:57BitPuffindom96: wait could it be that it is installing 0.1.1
19:26:03BitPuffindom96: how do I tell it to install tip
19:26:09BitPuffinbrb
19:26:17Araqdom96: nope
19:26:22Araqbut sweet
19:26:30*Araq opens a bottle of beer
19:26:38BitPuffinfucking alcoholics
19:26:44BitPuffinin this community :D
19:26:47*dom96 opens a bottle of coke
19:26:56gradhawell, I was drinking a banana shake
19:26:57BitPuffindom96: coke is bad for you
19:26:58dom96well, a can
19:27:18dom96BitPuffin: yeah, it probably is. You can't.
19:27:24gradhaaluminium is not healthy either
19:29:23dom96it's not?! I've been adding it to my cereal every day.
19:29:52gradhalol, cereals are not healthy at all
19:29:53dom96BitPuffin: Go into your linagl dir and run 'babel install'
19:30:07*DAddYE joined #nimrod
19:30:16IrvMGhttp://nimrod-lang.org/httpserver.html procs in client: TSocket? request hostname?
19:34:01EXetoCgradha: some brands are really awful in that regard
19:34:31*DAddYE quit (Ping timeout: 260 seconds)
19:35:11gradhaEXetoC: I've always thought that anything with labels like "we added vitamin C, and B, and A, and D, and we added Iron, and..." is really shit food from the beginning
19:35:46EXetoCprobably
19:36:51*mflamer quit (Ping timeout: 245 seconds)
19:40:10*DAddYE joined #nimrod
19:40:20*IrvMG quit ()
19:42:33BitPuffindom96: but doesn't babel have a command to install latest?
19:42:43BitPuffinor flag
19:42:57dom96not yet
19:44:14*DAddYE quit (Ping timeout: 240 seconds)
19:44:17BitPuffindom96: well at least now things work
19:48:17dom96good
20:05:29BitPuffindom96: okay it should be good enough for an article :)
20:05:35gradhaso how's this github trending thing get calculated? number of forks? number of hits? number of what?
20:05:56BitPuffinAraq: okay so other than breaking the hell out of code, why wouldn't var f = T(v) work?
20:06:33BitPuffinit would take a way the : wart I think
20:06:44BitPuffinat least if you made constructors use = instead of :
20:06:49BitPuffinthen it would be completely gone
20:07:12BitPuffinhmm
20:07:17BitPuffinwell except for procs
20:07:24BitPuffinand parameters
20:07:29BitPuffinI think I see your point Araq
20:11:45*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:11:46gradhafowl: maybe the nimrod compiler should mine bitcoins too http://www.techienews.co.uk/973462/bitcoin-miners-bundled-pups-legitimate-applications-backed-eula/
20:15:49BitPuffingradha: there was a game launcher that mined bitcoins lol
20:15:52BitPuffinthey had to pay
20:18:02EXetoClet's sneak bitcoin mining into the linux kernel
20:18:30BitPuffinprobably easier to sneak it into nimkernel
20:18:33BitPuffinjust don't tell dom96
20:22:51gradhastep 1) make nimrod compiler time how long it takes to compile something
20:23:02gradhastep 2) multiply the time by five and spend that amount mining bitcoins
20:23:13gradhastep 3) claim it's still faster than python/go/ruby/jave/whatever
20:24:11BitPuffingradha: but then Walter Bright could slap us across the forehead with his penis
20:24:31gradhalol, did read that as "with his forehead penis"
20:25:00gradhaBitPuffin: does the D compiler already do that?
20:25:38BitPuffingradha: no but the D compiler is quick
20:25:40BitPuffinhaha
20:25:42BitPuffinforehead penis
20:25:47BitPuffinmarvelous
20:26:06gradha"it's a unicorn… no, oh, wait… ugh!"
20:27:01BitPuffinouch, it's stuck!!
20:31:48*DAddYE joined #nimrod
20:34:44*gradha wonders if people will know Nimrod before having 4K TV
20:36:01*DAddYE quit (Ping timeout: 245 seconds)
20:50:13gradhaoh, didn't know github supported diff format for code blocks, nice
20:53:38*aftershave joined #nimrod
21:06:06BitPuffinhello aftershave
21:06:10BitPuffinwelcome
21:06:34*gradha doesn't remember any previous bearded nick
21:11:39Araqer ... do we really need the symmetric diff of sets?
21:11:56gradhawat?
21:11:58AraqI don't think I needed that in my entire lifetime
21:12:13Araqsystem.`-+-`
21:12:35Araqand apparently it never worked
21:12:41BitPuffinhaha
21:12:44BitPuffinyou never tested it?
21:12:56BitPuffinAraq: someone will ask for it so you may as well leave it in
21:13:30AraqI don't think so, it's not related in any way to be able to write '.' in yet another context
21:14:40Araqwhich seems to be all there is to language design these days
21:14:43BitPuffinwell I mean someone will come and whine and say that the set implementation is incomplete
21:14:54BitPuffinI don't see why it would hurt to leave it in
21:14:57*zielmicha quit (Ping timeout: 250 seconds)
21:15:18BitPuffinif only to leave it broken until someone actually needs it
21:15:37Araqno for the simple reason that C# and C lack sets completely
21:16:00BitPuffinso?
21:16:09BitPuffindoesn't pascal have sets?
21:16:15BitPuffinor some language
21:16:26Araqyeah but nobody's left who actually knows Pascal
21:17:09Araqand both the original Pascal and the Delphi dialect lack -+- so there you go
21:17:17BitPuffinwell, maybe some pascaller set maniac sees that there is a new language called nimrod that is in some ways a bit similar to pascal and has the sets
21:17:19BitPuffinoh
21:17:21BitPuffinwell
21:17:24BitPuffinI dunno
21:17:27BitPuffinwhat does it even do
21:17:41AraqA-B + B-A obviously
21:18:03BitPuffinah right
21:18:05BitPuffinforgot
21:18:16BitPuffinI'm sure that's useful for.... something
21:18:23BitPuffinwhat does people in math use it for?
21:18:33Araqwell it maps to the 'xor' operation
21:18:38gradhaabba? it's music, not math
21:18:50BitPuffingradha: derp
21:18:59BitPuffinAraq: do people use xor?
21:19:06Araqand 'xor' surely is useful
21:19:46OrionPKMokay who put Britney Spears as the author of IDE tools
21:20:06gradhaOrionPKM: why?
21:20:23OrionPKMwhy indeed
21:20:32gradhaindeed
21:20:39EXetoCyes indeed
21:20:44BitPuffinindeeed!
21:20:50EXetoCindeeeeeeeed!
21:20:53gradhait was a SEO operation, to make Nimrod more visible
21:21:10EXetoCgood thinking
21:21:18gradhaafter all, Britney is quite capable http://britneyspears.ac/lasers.htm
21:22:21BitPuffinhttp://www.youtube.com/watch?feature=player_detailpage&v=nSLqpeNz21s#t=41
21:23:49BitPuffinindeeed
21:32:59*DAddYE joined #nimrod
21:37:02*DAddYE quit (Ping timeout: 240 seconds)
21:38:00*filwit joined #nimrod
21:41:10filwithey Araq, I was talking to the Kate folks, trying to figure out how to make block-comments work right for Nimrod, but it turns out it's not possible, due mostly because of how strict Nimrod is about comment placement.
21:41:45filwitI was wondering (since i've heard you mention it before) if you ever have plans on removing comments (not doc-comments) from the AST?
21:43:00gradhafilwit: how will tools manipulating the AST preserve comments then? aka refactoring
21:43:09Araqwell yeah and it's in my todo
21:43:17filwitI'm not sure of what use-cases having AST comment provides really, i can see how it might be useful for translating Nimrod code to a different language.. but i'm not sure exactly how useful *that* is, or how important it is to the community.
21:43:44filwitAraq: ahh, okay awesome.
21:44:21filwitAraq: that should make it easier to make work with different editors
21:44:23Araqgradha: refactorings need to do it differently anyway as nobody likes the refactoring to mess up with the number of empty lines etc.
21:44:43filwit^
21:45:14gradhaAraq: I was thinking of the "make nimrod look as per convention" prettifier, if that's going to strip useful stuff
21:45:43Araqthe prettifier tries hard not to mess with the empty lines etc.
21:45:49Araqalso "\t" is a problem
21:46:42filwityes, i normally think of comment lines sorta like empty lines, and empty lines can already break the indentation rule
21:46:57Araqyou can write it as "\x09" too and now you're in a world of trouble, because the AST loses this information and you can't simply turn it into "\t" without pissing off the people using strings for binary data
21:47:48Araqthe original idea was cool but I consider it a failed experiment
21:48:22gradhagood thing we have regular expressions
21:49:10Araqfilwit: comments can be used as an empty statement though. This makes the patch quite ugly.
21:49:46filwitAraq: use 'nil' instead?
21:50:02filwitidk, maybe i misunderstand what you mean
21:50:17Araqactually 'nil' is another problem for the empty statement
21:50:31AraqIMO it should be an empty "discard" statement
21:50:53filwitwell that sounds fine to me
21:51:08filwitit's already used on case/else statements a lot right?
21:51:10Araqfilwit: the problem is not changing the language. The problem is it breaks code. MUCH code.
21:51:41filwitAraq: yes, i understand. I can help with the grunt work if that's a major concern
21:52:49Araqalright that's a word. However it's needs a deprecation path.
21:53:33filwityeah, that's going to be hard with this change
21:53:40filwitactually.. no it's not
21:53:45filwitjust make a compile switch
21:53:47filwitand a warning
21:54:07Araqhowever ... I wonder why Kate can't do it easily. A KDE editor should be all about plugins.
21:54:32filwitit's possible if i make my own indentor or something
21:54:43filwitbut more complicated than it should be
21:54:44dom96Making plugins isn't easy I bet
21:54:50filwit^
21:55:07filwiti have to write code analysis in JS...
21:55:40dom96Somebody should try figuring out why Araq's slides are not working on mobile/tablets.
21:55:48dom96Any HTML/JS gurus here?
21:55:58filwityeah i can look at it dom96
21:56:09filwiti have a couple tablets iOS and Android
21:56:27filwitwas going to check this morning, but got tired
21:56:35dom96filwit: thanks
21:57:02Araqfilwit: you can write Nimrod instead and compile that to JS ;-)
21:58:17filwitAraq: lol..
21:58:58filwitAraq: but for real, it's not just Kate that's annoying about the AST comments. Sometimes i just want to quickly through a comment char somewhere, and have to make sure it's inline instead
21:59:10filwitnot a big deal or anything, just an annoyance
21:59:22filwitone sec, let me test the slides...
22:00:07gspAraq: What's the "correct" way of fetching more than 10 (=MaxSubpatterns) captures using the pegs module? My usecase is parsing some representation of a set of elements, i.e. generally there are lots of elements (and I'm using the grammar to make sure each element is wellformed).
22:01:09filwitgod.. sometimes i really suck at typing... my mind thinks "throw" and my hands write "through"
22:02:13Araqgsp: make a single subpattern and split it on the separator afterwards?
22:04:03AraqI'm not sure but it looks like you really want to allow a variable number of patterns which isn't supported and I'm not sure how it could be supported.
22:05:53filwitdom96: where's the source for the slides? the html look generated..
22:06:30dom96filwit: It's Araq's so probably on his computer somewhere.
22:06:40gradhagood night, honey badgers
22:06:48*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=2IzR_ClTE8Y again)
22:07:32Araqfilwit: I used nimrod's documentation system for the slides, obviously
22:07:43Araqtold you I never use anything else anymore :P
22:08:30filwityeah, i figured it was something like that. unfortunately it's going to make fixing a pain.. especially since it's tablets that are the only problem..
22:08:53filwitiOS shouldn't be hard, but Android is hard to inspect
22:09:16gspAraq: hmm, I guess I'm a little spoiled by the approach treetop (which you probably know; if you don't: a peg gem for ruby) has taken, that being copious amounts of annotations of the grammar with user-provided code, which essentially combines the parsing process with the step where you build your data structure representation from the matches
22:09:43dom96filwit: Maybe looking at this would be easier: http://www.w3.org/Talks/Tools/Slidy2/
22:10:16filwitdom96: the swipe functionality works fine. It's the CSS that's messing up on the tablets
22:10:43dom96I see, interesting.
22:11:28filwityeah, it makes it unreadable, and the frame's width/height aren't being set right or something.
22:12:46eigenlichtAraq: we had this discussion earlier today and people said you could know
22:13:07eigenlichtI was wondering whether nimrods meta programming is equivalent in power to that of modern lisp dialects?
22:13:43filwit^ he wanted to know if Nimrod supported "multi dispatch", but no one knows exactly what that means... lol
22:14:59eigenlichtfilwit: it's seems like you misunderstood me. a guy in #lisp was talking about multiple dispatch when i asked about the meta programming capabilities. multiple dispatch is about OOP, not directly related to metaprogramming
22:15:50brihatmultiple dispatch = julia!
22:15:52filwitokay, my bad
22:16:27filwitdom96: that Slidy2 demonstration has the same problems on iOS as the Nimrod slides...
22:16:38dom96filwit: yeah, it's the same on Android.
22:16:53eigenlichtbrihat: correct, julia has it too
22:17:01dom96It's not a problem with Araq's slides, it's a bug in Slidy.
22:17:16filwityeah, unfortunately tha'ts a much harder problem to fix
22:17:31eigenlichtIMO it would be enough to provide a pdf version
22:17:32brihateigenlicht: metaprogramming THE catch-point of Nimrod. But multiple dispatch is the core paradigm of Julia
22:17:47brihatHere: http://nbviewer.ipython.org/gist/StefanKarpinski/b8fe9dbb36c1427b9f22
22:18:03*xenagi joined #nimrod
22:18:58filwitdom96: i could just remake the HTML using Hammer.js.. but i'm not sure it's worth it
22:19:03dom96so who came up with this honey badger mascot?
22:19:12filwitVarriount
22:19:24eigenlichtbrihat: that's all related to OOP, isn't it?
22:19:59filwitAraq: can you send me the original source for these slides?
22:20:54brihateigenlicht: i can't define what OOP is anymore :P
22:21:22eigenlichtit's easy: an overrated programming paradigm
22:21:26*eigenlicht ducks
22:21:40brihateigenlicht: To me M.D just a generalized way of function overloading
22:22:22filwiteigenlicht: no need to duck.. you've come to the right place to make statements like that, lol
22:22:28Araqeigenlicht: Nimrod's metaprogramming is arguably further advanced than Lisp's because Nimrod supports term rewriting macros with side effect and alias analysis constraints
22:22:50eigenlichtbrihat: function overloading is compile time, mutli dispath is (usually) runtime
22:23:11Araqwhich I have seen nowhere else
22:24:18Araqeigenlicht: other people might argue Lisp is more expressive due to its dynamic typing
22:25:17eigenlichtAraq: well, I'm actually more interested in a comparison only related to meta programming, not other traits such as typing (as far as one can be judged without the other)
22:25:29eigenlichtI gotta check about the term rewriting macros though
22:30:48Araqwell they are actually the same otherwise
22:30:58eigenlichtAraq: I'm not sure whether I fully understand what term rewriting macros are, but isn't that a whole different (runtime-based) approach to macros?
22:31:11Araqit's not runtime-based
22:31:17Araqit's all done at compile-time
22:31:20eigenlichtsimilar to what mathematica is doing
22:32:10Araqwell template+macro is like Lisp's macro, only the quoting rules are easier. IMHO anyway.
22:34:29*DAddYE joined #nimrod
22:34:45eigenlichtAraq: may I quote you on that for: https://pay.reddit.com/r/programming/comments/1rpwk4/nimrod_a_new_approach_to_meta_programming_slides/cdq5tib
22:35:00eigenlichtor you may answer yourself, if you have a reddit acc
22:38:38*DAddYE quit (Ping timeout: 240 seconds)
22:40:35*xenagi quit (Quit: Leaving)
22:40:38AraqI have but then people wonder why I only answer a single question, so I'd rather pretend I'm not there. :-)
22:41:51filwitAraq tries his best to avoid the inevitable popularity that comes with creating a growing language...
22:42:52Araqwell excuse me. I can either fix bugs or pretend that I know all about every Lisp dialect on the planet on reddit.
22:42:58eigenlichtjust like haskell tries/tried to "avoid success at all costs"
22:43:03filwitsoon, Araq, you will need to do weekly AMA's
22:43:22filwitlol
22:43:44eigenlichtAraq: is that a yes or no to quoting you? just for the sake of completeness, since others seem to be interested in thsi question too
22:43:51BitPuffinAraq: haha :D
22:44:48Araqeigenlicht: that's a yes for quoting me
22:45:15BitPuffinpeople are really bad scientists
22:45:18eigenlichtAraq: I'll try to not make you sound like you know everything about every lisp dialect ;)
22:45:34BitPuffinif they wanna figure out whether it's as powerful idea, here's an idea, try and compare them ;D
22:45:58BitPuffins first /idea//
22:46:15BitPuffinit's not a good idea to think ahead of your typing
22:46:52BitPuffinshows that you are not putting enough effort in to typing as fast as you think :P
22:49:04Araqeigenlicht: Nimrod's macros interact with overloading resolution (OR) and compile time function evaluation quite heavily. Common Lisp doesn't have overloading and the line between compile-time and runtime is blurred.
22:49:27Araqit's not that easy to compare them
22:50:21eigenlichtI understand that they are use different approaches, and I don't want to have a case-to-case comparison for everything you can do with lisp macros
22:50:35BitPuffinwell then what do you want?
22:50:59Araqwell there is nothing that a Lisp macro can do that Nimrod can't. The other direction is harder to answer.
22:51:19BitPuffinlisp can do static typing
22:51:22BitPuffinbut it's a pain in the ass
22:51:56eigenlichtit's just that there are a lot of other "macro" systems out there, but none or very few of them can compete with lisp macros
22:52:45eigenlichtafaik there are statically typed lisps which are quite handy
22:53:21Araqyes there are "Lisps" and that's a big problem for answering any question about Lisp.
22:53:26BitPuffinoh, I was just referring to cl
22:54:02eigenlichtyeah, I know
22:54:29BitPuffinisn't it pretty safe to assume cl when someone says lisp?
22:54:43eigenlichtdepends on the context I guess
22:54:47BitPuffinI mean usually when there is something else you say, scheme, clojure, racket etc
22:54:58eigenlichtalso, most time i talk about "lisp", i'm thinking about clojure in my head
22:55:04BitPuffinyeah sure but I mean whan someone says "I'm writing software in lisp!"
22:55:25eigenlichtthat could mean anything. if someone says this to me, I'd ask which dialect
22:55:58Araqactually I assume "common lisp" but people really mean the family more often, I think
22:56:07eigenlichthence, I don't think it's safe to assume "cl" when someone says "lisp"
22:56:17Araqwhen people say "C" it's "Ansi C"
22:56:30Araqwhen people say "Lisp" they mean the large family
22:56:30BitPuffinhmm, when I say C it's C11 lol
22:57:00eigenlichtI'll just quote you on "there is nothing a Lisp macro can do that Nimrod can't" - sounds safe to me
22:57:05BitPuffinwhen people say they have a model m, do they mean ibm or unicomp?
22:57:20BitPuffineigenlicht: that's probably not a good idea
22:57:29filwit^ lol
22:57:30BitPuffingiven that there are billions of lisps
22:57:43filwitit might make that reddit post more "popular" though
22:58:10BitPuffineigenlicht: I can quote Araq in saying that the only language he's seen that has more powerful metaprogramming than nimrod is kernel
22:58:12BitPuffinand kernel is a lisp
22:58:21BitPuffinand doesn't have a compiler
22:58:22*Jackneilll quit (Remote host closed the connection)
22:58:24BitPuffinonly interpreters
22:58:33eigenlichtI'll make it common lisp then, just to be sure
22:58:44BitPuffinyeah do it
22:58:49eigenlichtman, trying to be correct can be really tough
22:58:50Araqactually add BitPuffin's remark, it's good
22:59:08eigenlichtk, I feel like a journalist right now
22:59:44BitPuffineigenlicht: start a nimrod magazine or we'll punch you
22:59:48BitPuffin;D
23:00:04filwitcall it the Nightly Nimrod
23:00:13BitPuffinthat's pretty catchy
23:00:13eigenlichtNaughty Nimrod
23:00:19filwit^ even better
23:00:28BitPuffinthat is gradhas nimrod zine
23:01:17dom96Somebody does a "This week in Rust". Maybe somebody should actually do the same thing for Nimrod? Although maybe "month" would be better...
23:02:23BitPuffindom96: yeah considering nimrod isn't backed by the biggest most awesome non preffit evar
23:02:32eigenlichtthat wikipedia articple on kernel indeed is a hell of a stub
23:04:01BitPuffinman some people are really freaking out over the slides
23:04:19eigenlichton reddit? yeah r/programming isn't the best sub
23:04:25BitPuffinI like crazy_eddie the most so far
23:04:30BitPuffin"Fix that fucking website! All I can see is an author and directions that don't work. Why the fuck even do that? What's wrong with a normal website?"
23:04:37BitPuffin"Meh. Got places to be. Already lost interest."
23:04:38dom96Yet another language with no references, and yet it gets an article and Nimrod doesn't.
23:04:43BitPuffinsuch a character
23:05:02dom96oh wait, i'm blind. There are two references.
23:09:03BitPuffindom96: blinded by hatred?
23:09:17dom96indeed
23:11:47BitPuffinAraq: thoughts on this guy? https://pay.reddit.com/r/programming/comments/1rpwk4/nimrod_a_new_approach_to_meta_programming_slides/cdpqz51
23:11:54BitPuffinwanna take 'im down?
23:12:49filwitas abrasive and overly opinionated (and wrong) as that guy is, he's actually not saying anything that other's havent said before.
23:13:05BitPuffinI think a lot of his stuff that was wrong was highly subjective things that is obviously not possible to say objectively that it is wrong
23:13:52filwitfor instance, it doesn't really make sense that case/of statements have optional indentation in a indentation-significant-language (even though it's a feature i originally requested...)
23:14:23BitPuffinAnd I don't see why he's got a big issue with colons in general. I think that nimrod has a problem with colons maybe meaning a bit too much but that's not his problem. He just doesn't like colons
23:14:24filwitand the fact that there's two ways to write countup(), and the T/P thing..
23:15:02BitPuffinT/P?
23:15:07BitPuffinah
23:15:09filwitall been said before.. he just said it will less sugar coating (and he's just wrong about all this "OMG look at the colons!" thing)
23:15:11BitPuffintypes and pointers
23:15:50BitPuffinhahaha
23:15:53BitPuffinthis one was great
23:15:59BitPuffin"So you think Python has ugly syntax, C is too slow and Lisp would be better without macros?"
23:16:40BitPuffin"I don't even know lisp." Good thing he could say that nimrod has the worst of lisp then
23:17:45eigenlichthe said it's reference to something
23:19:56BitPuffineigenlicht: yeah that it advertises itself as having stuff from lisp
23:21:28*ics joined #nimrod
23:22:10EXetoCtrolololz
23:22:24filwitwhat he is defiantly doing, is blowing these things out of proportion. Most likely because he's used to working with some C# or Java stack with all it's fancy bells-n-whistles. So when he sees a language that's suppose to be "the next new thing", he expects it to appeal to him on every level.. I've heard these same argument, given with almost the same level of disregard, from my brother.
23:22:37BitPuffinhttps://pay.reddit.com/r/programming/comments/1rpwk4/nimrod_a_new_approach_to_meta_programming_slides/cdps715 :3
23:23:32BitPuffinfilwit: well he's venting
23:23:37BitPuffinI'd say
23:23:44filwityeah, exactly
23:24:14*dom96 wonders why all these reddit links have the 'pay' subdomain
23:24:43filwitthey want your money, and are sending subliminal messages... it's a conspiracy!
23:24:46BitPuffinsomething probably recently slammed his work so he had to slam someone else's
23:25:03BitPuffinno I think it's more of a scheme to destroy humanity from reddit
23:25:07BitPuffinthey are gonna make us pay
23:25:31eigenlichtdom96: only pay.reddit.com supports https
23:25:49*snuderl quit (Ping timeout: 250 seconds)
23:25:54eigenlichtI guess others here are linking to the pay subdomain because I linked the post before and i surf reddit https only
23:26:55*ics quit (Ping timeout: 260 seconds)
23:27:43eigenlichton why it's called pay...not sure. once read on reddit that it might was planned as a gold only feature, or the subdomain just be used during payment, etc
23:28:21BitPuffinsomething like that probably
23:36:07*oal joined #nimrod
23:45:38ryeguyre: "this week in rust" posts - that would be great if nimrod had it too
23:46:00ryeguyit's very helpful for knowing what i'm getting myself into if i update to the current nightly once a week
23:46:43Araqwell we have the changelog and releases for that
23:47:00ryeguyit'
23:47:04ryeguyit's not the same
23:47:42ryeguythose go into recent changes, discussions that may impact future changes, links to projects people are working on, and links to that week's blog posts and big discussions
23:48:26fowlhola
23:51:53BitPuffinhay fowl
23:52:05filwithi fowl
23:52:06Araqwe don't have any of these. :-) big discussions are suppressed by our leadership.
23:56:39filwiti found out about D because of Tiobe language index... so obviously ALL we need to do is get Nimrod popular enough to be on that list, then people will start writing more articles about it.
23:57:02ryeguythat's the slow route
23:57:10ryeguylet's take the rails route and trash talk another language
23:57:12filwitlol, yeah, it was just a joke
23:57:23ryeguythen you get 3 blog posts in response for every 1 blog post
23:57:27ryeguypromotion takes care of itself
23:57:34filwit^ genius
23:57:37ryeguythank you
23:57:55ryeguywe could make fun of ~&@rust
23:58:35*IrvMG joined #nimrod
23:58:52Araqwell I really respect Rust.
23:59:01ryeguyi know, it was a joke :D
23:59:02brihatatleast in C++ i can remember shared_prt and unique_ptr.. In Rust god knows why there are 4 types of pointers
23:59:03ryeguyrust is nice
23:59:15eigenlichtwhy not target whole categories? like dynamic typed languages, (pure) functional languages, ...
23:59:23ryeguylisp is an easy target
23:59:26Araqand this is coming from me, a guy who hates everything ;-)
23:59:35ryeguythe claim that was being discussed earlier will make lispers mad
23:59:55Araqlispers are already mad because of clojure