<< 06-11-2013 >>

00:07:19BitPuffinso much code ©_©
00:08:53EXetoCwhere?
00:09:13BitPuffinEXetoC: in the compiler :P
00:10:11EXetoClet's reduce it to 10k lines
00:10:40BitPuffinEXetoC: it should be like lisp where you can write an interpreter in just a few lines :P
00:13:56dom96'night
00:14:18BitPuffinsleep well dom96
00:14:50Araqgood night
00:15:46*freezerburnv quit (Quit: freezerburnv)
00:33:49reactormonkBitPuffin, lisp is already an interpreter ;-)
00:37:45BitPuffinreactormonk: not always :P
00:46:56shevyisn't lisp more of an ((ill(ness?
00:48:24BitPuffinnot sure if Araq went to bed or said goodnight to dom96
00:49:49EXetoCor both
00:49:52shevyboth!
00:52:04BitPuffinlol, am I sucky for reading about 450 LOC/h
00:54:34MFlamernimrod loc's are pretty terse
00:55:17BitPuffinyeah
00:55:24BitPuffinand I guess I'm tired + distracted
00:55:29BitPuffinnow I'm skimming
00:55:52shevyI noticed that my brain is bad at reading code
00:55:59shevyit is much better when it writes or rewrites code
00:56:16BitPuffinsame here
00:56:23*freezerburnv joined #nimrod
01:00:42shevyBitPuffin what programming languages have you been using the last 10 years for a longer while?
01:01:20BitPuffinshevy: I haven't been a programmer for 10 years unfortunately
01:01:22EXetoCVB at the age of 9?
01:01:49BitPuffinalthough I do wish I started coding at 9 rather than at like late 15
01:01:58BitPuffinalthough I did try
01:02:12BitPuffinbut then I tried with C++ which isn't the best starter language really
01:02:21EXetoCthat's not very late
01:02:44EXetoCsame. programming in school blows
01:02:55shevyBitPuffin I started late too, but I am not a programmer either. I only use the computer to help me solve tasks
01:03:15BitPuffinEXetoC: well effectively you could say I started at 16, as it was really like a month or two from me turning 16 that i started HS
01:03:20BitPuffinwhich taught me Java
01:03:22BitPuffinwell
01:03:29BitPuffingot me started learning the basics
01:03:53BitPuffinthen I basically learned more than the entire 3 years of school would try to teach me in a very short time
01:04:21BitPuffinand got in to other languages. Ruby, C++, C, D
01:04:40BitPuffinthen a short period starting to learn Rust but then EXetoC converted me to Nimrod
01:04:42BitPuffin:p
01:05:03BitPuffinofc there has been a bit of javascript etc in between
01:05:32freezerburnvBitPuffin: Why nimrod over rust, out of curiosity? Do you think nimrod is a better language, or is rust just in too much flux?
01:07:05BitPuffinfreezerburnv: Well really the main reason I didn't stick with Rust was that it was really in too much flux like you said.
01:07:45BitPuffinfreezerburnv: But I think nimrod is probably a better language. Since Rust is kind of complex
01:07:56BitPuffinand as far as I know nimrod is way more programmable
01:08:00BitPuffinand the GC is win
01:08:21BitPuffinnot to mention a nice readable syntax :)
01:08:53shevyBitPuffin I am still with ruby
01:09:13shevyalways when I want to learn python, it bores me to no ends, so I end up wanting to learn nimrod instead
01:09:24freezerburnvWhat do you mean by "more programmable"? And I suppose those other things are good points as well. I'm not sure where I fall yet. I'm personally still really excited about Rust, but nimrod is scratching the itch that I really wanted rust to fill up to this point
01:09:31freezerburnvUgh, python
01:09:36freezerburnvAlso: ugh, ruby
01:09:47shevyfreezerburnv you use shell scripts?
01:09:57freezerburnvPython is great for scripts and being super productive in small ways. Don't use it for anything big
01:10:04BitPuffinfreezerburnv: what I mean by programmable is the macros
01:10:15freezerburnvshevy: Heck no, worst "language" in existence that should die in a fire
01:10:26BitPuffinI like both python and ruby
01:10:28shevy\o/
01:10:31BitPuffinbut I don't have much use for them
01:10:43shevyBitPuffin why not? are there no tasks you want to solve programmatically?
01:11:15BitPuffinshevy: of course there is. But usually I don't need to do that with those languages
01:11:25BitPuffinand most of my time spent coding is doing game dev
01:11:35shevyI have literally several thousand ruby scripts. stuff like "merge_pdf *pdf" which is nothing more than calling ghostscript to merge .pdf, but ruby does the specific syntax. same with many other things... concat video files via ffmpeg, through ruby scripts... using mplayer in different modes but using ruby scripts to set the various tidbits... etc...
01:11:36BitPuffinwhich is not really an area where they excel
01:11:46shevyah
01:11:47freezerburnvThey're both fantastic languages. But only for small things. I work at a company that uses python as our main language, and it's the worst. What the heck is "self.client"? I don't know. There are like, 20 options. What about client.move? No idea which one that is without following the control flow from beginning to end
01:11:48shevygame dev
01:11:49freezerburnvBlergh
01:11:51shevythat drains a lot of time
01:11:55shevyenjoy it while you are young!
01:12:22freezerburnvBitPuffin: So jealous! I want to do gamedev, but I have so little time right now :(
01:12:22BitPuffinshevy: yeah that kind of stuff is really nice with ruby
01:12:24BitPuffinwill do
01:12:35shevyruby is too slow for cool games
01:12:39BitPuffinfreezerburnv: too much work that drains your energy?
01:12:42BitPuffinshevy: exactly
01:12:58shevya warcraft 3 like game in ruby with multiplayer... now that would be something
01:13:12BitPuffinwell
01:13:29BitPuffinnot entirely impossible in ruby I guess
01:13:36BitPuffinIf that's the complexity level
01:13:37freezerburnvBitPuffin: Work drains my mental energy, definitely. But I just got married like a month ago, so we've been adjusting, and I'm doing a coursera course, trying to hang out with friends, be involved in my church, and possibly, MAYBE try to do Nanowrimo
01:13:39freezerburnvSlightly busy :)
01:13:51BitPuffinsince the rendering is done in opengl on the hardware anyways
01:14:00BitPuffinmaybe it could handle some basic logic stuff
01:14:01shevyI dunno
01:14:05shevyit always seems immensely slow
01:14:06freezerburnvBitPuffin: You'd need to write some tight loops in C, probably
01:14:30freezerburnvshevy: Civ 4 used python, and Ruby and Python are pretty close in performance these days
01:14:33shevyI cant even write a replacement for bash in ruby because file listing takes too long once you have like ~5000 files to display in some milliseconds
01:14:39BitPuffinfreezerburnv: ah, well maybe as things calm down you can pick a fun game project to work on!
01:14:54shevyyeah for what, like some UI elements perhaps
01:15:11BitPuffinwell, time to walk the dog and sleep
01:15:15BitPuffingoodnight guys!
01:15:16shevyI want one language to rule them all
01:15:19shevycya BitPuffin
01:15:30freezerburnvBitPuffin: Trust me, I will. I already have an idea to work on. In the meantime, I'm trying to learn Nimrod so that hopefully I can make it in nimrod. Java/Scala are the only other languages I might consider because I dislike so many languages, or they have such severe limitations
01:15:32freezerburnvNight BitPuffin !
01:16:20BitPuffinfreezerburnv: cool! I wouldn't go with Java, it's not a great experience I think. I mean it is not the worst but I think nimrod is more fun :P
01:16:22BitPuffinnight!
01:17:19shevyjava
01:17:27freezerburnvJava?
01:17:34shevyewwwwww
01:17:49freezerburnvI'm the like, one weird person on this planet who likes Java
01:18:06freezerburnvIt's very clear and has a lot of great libraries, and can interact with Scala and Clojure excellently
01:18:11freezerburnvAlso the JVM is great
01:18:22freezerburnvPlus lambdas in Java 8 are great
01:18:26EXetoCit's so verbose
01:18:48freezerburnvSo's Objective-C, and yet tons of people use that. Objc, in my opinion, is actually even worse :(
01:19:18freezerburnvVerbose isn't always a bad thing, and you can always just use Scala
01:19:46fowlewwwwwwwwwwwwwwwwwwwww java
01:19:51freezerburnvlol
01:19:53shevyI liked ObjC more than java
01:20:04shevybut it's tedious as well
01:20:05freezerburnvshevy: Why so?
01:20:13fowlid rather flick myself in the nads than touch the java
01:20:21shevyfreezerburnv dunno, the way how it handled objects and messages seemed a lot more intuitive to me than the java way
01:20:32freezerburnvMy current job is to write the iOS UI for my company, and I really despise the APIs I have to use
01:20:41shevyit felt like "smalltalk in C"
01:20:50freezerburnvBecause [someNSArray objectAtIndex:i] is super intuitive
01:20:58*BitPuffin quit (Ping timeout: 245 seconds)
01:21:11shevysave for the camelCase yes
01:21:15*ponce__ is now known as ponce
01:21:18freezerburnvOr [someNSString compenentSeperatedBy:@"foo"] to split a string. Great times
01:21:31fowllol
01:21:44*webskipper joined #nimrod
01:21:46fowli just think its stupid how things dont stack well
01:21:49EXetoClolwut >.>
01:21:52webskipperhi
01:22:01webskipperi have a question about let and constant
01:22:13freezerburnvfowl: How do you mean?
01:22:17webskipperthats not clear for - for what cases i need let - for what cases i need constant ?
01:22:33fowl[somestring splitBy: ","] #now i want to join this on something else so i have to go back to the beginning of the line and add a [ then back to the end and add joinBy: ". "]
01:22:43fowlhypothetical obv^
01:22:47EXetoCwebskipper: a const statement is evaluated at compile-time
01:22:57fowl[[somestring splitOn: ","] joinOn: "."]
01:23:02fowloh yeah and ; still needed
01:23:16freezerburnvfowl: Use any IDE for ObjC ever and you can just type a ] after the closing ], and it should automatically put an opening [ at the beginning
01:23:26EXetoCso it's not like const in C++ for example, where it is a little like let in nimrod
01:23:36fowlfie on your IDEs
01:23:41freezerburnvfowl: lol
01:23:45webskipperFor what I need let ? Because I can't change let vars ?
01:24:15fowluse let if you dont need it to be mutable
01:24:18freezerburnvfowl: IDEs are great. Especially AppCode. Find usages, jump to definition, refactor name, autocomplete. It's great
01:24:33fowlyou can easily back up three chars and change it to var if you need to later
01:24:57fowlfreezerburnv, one side of screen text editor, the other side browser with docs/youtube
01:25:42freezerburnvfowl: I suppose that's fair enough. But I would spend way too much time trying to navigate code versus using an IDE to do so with a VIM plugin. Best of both worlds, really
01:26:23webskipperfowl: but a constant is not mutable too ? Sorry that I ask but I am not familiar with c++ let
01:26:25fowlbye everyone. i have to go buy deodorant because i stink then i have to drunk so i stink drunk
01:26:34fowlwebskipper, nimrod's const is more like #define
01:26:40freezerburnvfowl: See ya! Have fun and stuff
01:26:42EXetoCyeah VIM is a capable IDE in many cases
01:27:29freezerburnvIn my experience: sorta?
01:27:53*fowl quit (Quit: Leaving)
01:28:27webskipperfowl: yeah but in practise do I need not mutable vars like let ? #define / const should be fine for me (and I guess its more efficient)?
01:28:28freezerburnvThe only thing I like about VIM are the home row motions and whatnot. As long as I have those in whatever text editor I'm using, I don't personally care. I'd rather use an IDE that understands my code than a text editor which someone has tried to make understand my code in a way that (at least usually) only 3/4 works
01:29:01freezerburnvAlso usually runs slower than an IDE that understand the code, especially if the IDE can use multiple threads whereas vim script cannot
01:29:13*DAddYE quit (Remote host closed the connection)
01:29:47*DAddYE joined #nimrod
01:30:02freezerburnvEXetoC: If you like VIM, not gonna hate on that :) My preference to use an IDE, yours to use VIM
01:30:14EXetoCwebskipper: no, compile-time means during compilation. before the program has ever run in other words
01:30:20webskipperflow: in docs I see the example let input = readline(stdin) - is it more efficient than var input = readline(stdin) ?
01:30:43EXetoCso yes that means the CPU might not spend as much time when actually running the program, as a result
01:30:47shevywho is flow ;)
01:30:54*Demos joined #nimrod
01:31:43webskipperEXetoC - I know what u mean but for what I need let in practise than ?
01:32:18webskipperpractice
01:33:34webskipperDoes it need less memory ?
01:33:39webskipperthan a var ?
01:34:11*DAddYE quit (Ping timeout: 260 seconds)
01:34:40*silven quit (Quit: No Ping reply in 180 seconds.)
01:39:20*silven joined #nimrod
01:40:25MFlamerif the compiler knows you are never going to change the value of a variable (let) it can perform certain optimizations not possible otherwise
01:44:08webskipperMFlamer: ok, now its clear. ty.
01:47:06EXetoCconst X = stdin.readChar()
01:48:58webskipperah, nimrod has named arguments. I like that.
01:49:04EXetoCtry that and see what happens. the compiler doesn't know what key the user will press, and therefore it's not a constant expression. in other words, it's something that should be evaluated when the program is running, so you need to assign it to a variable (var/let)
01:49:32webskipperand default values
01:49:38EXetoCthe upcoming VM will allow pretty much anything to be evaluated at compile-time though, but sometimes it might not make much sense
01:51:00webskipperEXetoC: there is an upcoming VM ?
01:51:39EXetoCyes, for improved compile-time execution, and possibly for other reasons as well
01:54:07EXetoCI think it was used for running SDL (graphics) code during compilation at one point
01:54:14EXetoCjust as a test of course
01:55:37Demoswhy is the compiler not able to load a dll and just execute some C?
01:55:52Demosactually that sounds like a really bad idea
01:55:55Demos...never mind....
01:56:21EXetoCthat's what I implied
01:56:43EXetoCbecause you need to load the SDL lib in that case
01:57:17webskipperdamn eclipse uses tabs instead of spaces in my "tests.nim" file
01:57:31EXetoCaka CTFE in D jargon, except more awesome
02:01:48EXetoChttps://gist.github.com/EXetoC/73129b32b5d3de07ac45
02:02:00EXetoCI don't know if you got all that, but running those examples might help
02:02:50EXetoCtwo of them anyway. the second one doesn't compile because 'let' implies that it's a variable
02:09:08*MFlamer quit (Ping timeout: 240 seconds)
02:11:50webskipperok ty.
02:15:05EXetoCstatic also means at compile time, but it serves a different purpose. in other words, that loop and echo won't be executed when you run the program
02:15:40EXetoCmy explanations suck more than usual. I think it's time to sleep. happy coding :>
02:15:44Demosthink of it like using a template language or something in your build system
02:18:50*freezerburnv quit (Quit: freezerburnv)
02:27:54*ics joined #nimrod
02:42:06*xenagi joined #nimrod
02:55:57*brson quit (Quit: leaving)
02:58:24*mflamer joined #nimrod
03:15:34VarriountMeep
03:15:54*Varriount is back from two days of nausea and throwing-up
03:19:59*webskipper quit (Ping timeout: 272 seconds)
03:20:54*webskipper joined #nimrod
03:23:27*dyu_ joined #nimrod
03:25:40xenagiVarriount, crazy party brah
03:30:59*DAddYE joined #nimrod
03:37:59*DAddYE quit (Ping timeout: 272 seconds)
03:38:28*ics quit (Quit: Textual IRC Client: www.textualapp.com)
03:40:53*mflamer quit (Ping timeout: 272 seconds)
03:45:10*webskipper quit (Ping timeout: 246 seconds)
03:45:56Demosugh that feeling in c when you are like "c++ OOP is dumb, I just want /data/"
03:45:59Demoserm c++
03:49:11*Demos quit (Quit: Textual IRC Client: www.textualapp.com)
03:51:26*webskipper joined #nimrod
03:53:34*mflamer joined #nimrod
04:16:44*OrionPK quit (Quit: Leaving)
04:29:08*shodan45 joined #nimrod
04:34:27*DAddYE joined #nimrod
04:36:08*mflamer quit (Remote host closed the connection)
04:38:19*xybre left #nimrod ("WeeChat 0.3.8")
04:38:56*DAddYE quit (Ping timeout: 245 seconds)
04:40:04*webskipper quit (Ping timeout: 264 seconds)
04:41:10*ics joined #nimrod
04:43:52*ics quit (Client Quit)
04:59:33*hoverbear joined #nimrod
05:15:50*Boscop quit (Ping timeout: 268 seconds)
05:18:29*Boscop joined #nimrod
05:18:30*Boscop quit (Changing host)
05:18:30*Boscop joined #nimrod
05:21:21*xenagi quit (Quit: Leaving)
05:35:16*DAddYE joined #nimrod
05:39:46*DAddYE quit (Ping timeout: 245 seconds)
05:48:00*ponce is now known as Guest49263
05:48:00*Guest49263 quit (Killed (sendak.freenode.net (Nickname regained by services)))
05:48:12*p0nce joined #nimrod
06:01:22*hoverbear quit (Quit: Textual IRC Client: www.textualapp.com)
06:33:11*ics joined #nimrod
06:36:36*DAddYE joined #nimrod
06:41:02*DAddYE quit (Ping timeout: 264 seconds)
06:57:38*Associat0r joined #nimrod
06:57:39*Associat0r quit (Changing host)
06:57:39*Associat0r joined #nimrod
07:37:25*DAddYE joined #nimrod
07:40:24*Ywo joined #nimrod
07:42:14*DAddYE quit (Ping timeout: 264 seconds)
08:38:02*DAddYE joined #nimrod
08:43:59*DAddYE quit (Ping timeout: 250 seconds)
09:40:02*DAddYE joined #nimrod
09:45:36*DAddYE quit (Ping timeout: 245 seconds)
09:45:58*CarpNet joined #nimrod
10:16:54*Associat0r quit (Quit: Associat0r)
10:17:03*Araq_ joined #nimrod
10:32:42*ics quit (Ping timeout: 246 seconds)
10:35:16*ics joined #nimrod
10:41:50*DAddYE joined #nimrod
10:47:38*DAddYE quit (Ping timeout: 264 seconds)
11:09:49*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 25.0/20131025151332])
11:15:16*Associat0r joined #nimrod
11:15:17*Associat0r quit (Changing host)
11:15:17*Associat0r joined #nimrod
11:16:09*Ywo quit (Remote host closed the connection)
11:22:33*Associat0r quit (Read error: Connection reset by peer)
11:23:43*Associat0r joined #nimrod
11:23:43*Associat0r quit (Changing host)
11:23:43*Associat0r joined #nimrod
11:30:34*webskipper joined #nimrod
11:35:48EXetoCc(:)-<
11:41:37dyu_>=(:p
11:43:17*BitPuffin joined #nimrod
11:44:12*DAddYE joined #nimrod
11:44:33EXetoCfish with tongue out?
11:46:30EXetoCBitPuffin: have you memorized ast.nim yet?
11:48:48*DAddYE quit (Ping timeout: 260 seconds)
12:17:45*Jackneill joined #nimrod
12:17:47*Jackneill quit (Read error: Connection reset by peer)
12:17:57*Jackneilll joined #nimrod
12:29:30dyu_EXetoC: not-so-skinny-boy with a baseball cap
12:32:03EXetoCooooooh
12:34:23*vidot_j joined #nimrod
12:38:29*freezerburnv joined #nimrod
12:38:44freezerburnvMorning all
12:38:48EXetoChi
12:41:01EXetoCthis might be easier to parse for those who normally read from left to right q:)=<
12:41:36freezerburnvTop hat wearing man being silly?
12:43:42EXetoCkinda
12:45:30*DAddYE joined #nimrod
12:50:57*DAddYE quit (Ping timeout: 246 seconds)
12:56:48*Ricky_Ricardo joined #nimrod
12:58:19dyu_yep
13:02:49*vidot_j quit (Remote host closed the connection)
13:03:31*dymk quit (Ping timeout: 245 seconds)
13:12:12BitPuffinEXetoC: yes it is completely in my head :P
13:13:30EXetoCok
13:13:53BitPuffinno but I know what's in there
13:14:01BitPuffinjust can't ramble it up from memory
13:14:11EXetoCtrees and that
13:14:14BitPuffinyep
13:14:16BitPuffinbasically
13:14:18BitPuffinnodes etc
13:14:30BitPuffinprocs for manipulating nodes and stuff
13:15:22BitPuffinI wonder if the bug is in sigmatch
13:17:32EXetoCwhat bug ID?
13:17:53EXetoC656?
13:18:07BitPuffinEXetoC: 618
13:19:55EXetoChm maybe
13:20:44BitPuffinbut I'm slightly skeptical
13:20:48BitPuffinI haven't read sigmatch yet
13:21:12BitPuffinbut it sounds like it is about matching proc signatures. Not so much determining the types of on argument, could be wrong though
13:21:28*dymk joined #nimrod
13:22:37EXetoCoh right, TMatrix.T is where it fails. I suppose that could be the case anyway, since it might look for proc T(typedesc[TMatrix]) or something, but I don't know if the type parameters need to be present
13:24:08EXetoCnope, not necessary: "proc f(x: typedesc[TMatrix]): int = 42; echo TMatrix.f"
13:26:49EXetoCok enough guessing
13:27:35EXetoCif you saw this slice notation, what do you think it'd do? let x: TSlice[int] = y ..+ 3
13:29:30EXetoC*would
13:33:12BitPuffinhmm
13:34:08EXetoCnot intuitive, ok :p no one else is working on this project though
13:34:13BitPuffinEXetoC: count upward toward 3?
13:34:53BitPuffinno that sounds more like a range than a slice
13:34:55EXetoCthat's what x..y does
13:35:03EXetoCwell it doesn't count up
13:35:06BitPuffinyeah
13:35:22BitPuffinEXetoC: the first three?
13:35:35BitPuffinelements
13:35:37BitPuffinof y?
13:35:37EXetoCit just constructs a slice: x..y == TSlice(a: x, b: y)
13:37:06EXetoCno, a slice on its own is just TSLice = object\na, b: T
13:38:34EXetoCI just defined x ..+ y to be TSlice(a: x, b: x + y), which is just a way to save a little typing
13:38:41BitPuffinEXetoC: hmm, well what does a slice object do :P
13:39:31EXetoCdefines a range, and it's 'for' for example that generates numbers between that range
13:40:43BitPuffinEXetoC: so how is that different from a range :P
13:42:27EXetoCit is one, so maybe that would be a better name for it, though range is already taken
13:47:51*DAddYE joined #nimrod
13:52:27*DAddYE quit (Ping timeout: 260 seconds)
13:53:55*faassen joined #nimrod
13:54:22EXetoCslices in D are also sort of like ranges, except in the form of a buffer, so it's conceptually more similar to a slice of something
13:54:52EXetoCBitPuffin: does `..+` make more sense now?
13:59:31BitPuffinEXetoC: hang on
13:59:38*BitPuffin is computing
14:00:18BitPuffinprocessing
14:00:19BitPuffinprocessing
14:02:11BitPuffinEXetoC: yes
14:02:42BitPuffinEXetoC: is that ever useful though?
14:03:32BitPuffinobject constructors is another place where : introduceses some inconsistency
14:04:55BitPuffinEXetoC: or actually yeah that should be very useful
14:07:45EXetoCx .. x + 3 == x ..+ 3
14:08:03BitPuffinEXetoC: yep
14:08:18BitPuffinEXetoC: are you sure that +.. doesn't make more sense?
14:08:22BitPuffinputs the plus closer to x
14:08:30BitPuffinmaybe that gives some intuition maybe
14:08:31EXetoCit is of course pointless when using such short identifiers, which is fine at times, but Araq-style 1-2 letter identifiers all over the place is a little too hardcore for me :p
14:09:50BitPuffinEXetoC: yeah, I don't think it's a good way to code anyways. Makes it harder to follow
14:10:54BitPuffinbut when just hacking on something I guess naming stuff can take too much time
14:11:22*OrionPK joined #nimrod
14:13:15*Araq_ joined #nimrod
14:21:09EXetoCBitPuffin: you want = instead of : in constructors?
14:21:25BitPuffinEXetoC: would make it a bit more consistent I think
14:21:46BitPuffinseeing : makes my mind jump to type annotations
14:21:53*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 25.0/20131025151332])
14:23:33EXetoCyep
14:24:22EXetoCBitPuffin: when do you want to start working on that game?
14:25:39BitPuffinEXetoC: When I'm done with my website I'll touch up linagl a bit and start working. I'll skip the weston shell for a while until there is a fix for the glamor driver because I don't really have a reason to run wayland when I can't run xwayland. When that works maybe I'll work on that a little bit if the game is getting me down :P
14:29:37EXetoCOk I could start with the basics. input system etc
14:29:40webskipperhiho
14:29:49EXetoChoe hoe hoe
14:29:53EXetoC*ho
14:30:05*Ricky_Ricardo quit (Quit: Ricky_Ricardo)
14:30:12OrionPKthe = : inconsistency between parameter names and constructors has been brought up
14:30:19BitPuffinEXetoC: or oh you meant the open source game?
14:30:30BitPuffinI was talking about the commercial project
14:30:41BitPuffinuh I dunno first of all we need to decide what we should do I think
14:32:36BitPuffinI think something coop would be fun
14:32:42BitPuffinbecause then we could play it together :P
14:33:33BitPuffinAraq: I think the bug might be in qualifiedLookup
14:33:35OrionPKyou guys seriously need to start small :P
14:33:43EXetoC"You don't get anything done by planning" - Karl Pilkington
14:34:22BitPuffinEXetoC: didn't say planning, just something
14:34:23BitPuffinlol
14:34:34BitPuffinand who follows Karl Pilkington's advice!
14:35:01EXetoCsomeone might
14:35:43OrionPKKP is a secret genius
14:35:54CarpNetdefinitely
14:36:23BitPuffinyeah actually
14:36:51webskippersomebody used/use python here too ?
14:37:01EXetoCyes
14:37:15CarpNeti use it all day
14:38:34webskipperis Cython comparable to nimrod - what you think ? Didn't see in the documentation how I can compile a cython program to a standalone executable
14:38:35*p0nce is now known as ponce
14:39:39BitPuffinwebskipper: don't really think it is comparable
14:47:38webskippera python-dialect to nimrod translator / compiler would be fun
14:48:06BitPuffinwrite it :P
14:48:17webskipperwhy not ? :D
14:48:47*OrionPK quit (Ping timeout: 250 seconds)
14:49:17BitPuffinexactly
14:50:11webskipperI looked on python ast module - you get a full AST. The AST->python code generator by Armin Ronacher I have here already. http://eli.thegreenplace.net/wp-content/uploads/2009/11/codegen.py
14:50:35webskipperThe question is how to introduce static types in python (dialect).
14:50:44webskipperOO i dont need btw
14:52:13BitPuffinsounds more like a topic for #python
14:52:22EXetoCwhy a dialect?
14:52:27webskipperunion of both
14:53:01webskippersomething like this: def bool myfuc(int x = 3, string blub = 'test')
14:53:16webskipperof course its not python, but can be translated to nimrod
14:54:53webskipperand to python too btw. my idea: def bool_myfunc (int_x = 3, string_blub = 'test')
15:02:11LoneTechwebskipper: you may want to compare to cython, pyrex, and shedskin
15:02:54webskipperI know shedskin, its c++
15:04:05LoneTechfor instance cython adds type declarations: http://docs.cython.org/src/quickstart/cythonize.html
15:08:44BitPuffinwtf
15:08:59BitPuffinwhen you can't even add an echo then you know you are dealing with fragile software
15:09:15BitPuffinoh wait
15:10:07BitPuffinwas my fault
15:10:09BitPuffincarry on
15:15:20*mflamer joined #nimrod
15:15:38webskipperLoneTech: yea, don't like the cdef everywhere paradigma in cython.
15:19:02BitPuffinhmm, the compiler must be running in an interpreted mode or something while compiling itself
15:21:15EXetoCwhen?
15:23:05BitPuffinEXetoC: when compiling itself
15:23:21BitPuffinEXetoC: because I see the changes I made to the compiler as it is bootstrapping immediately after the change
15:23:48BitPuffinlike if I add a echo("wtf") every time it does dotexpr then it will print wtf while bootstrapping immediately after that
15:28:21freezerburnvBitPuffin: What things are you planning on touching up in linagl? Or what issues are there that need to be fixed, or stuff added, etc.? I'll contribute to it when I have a little time
15:29:16BitPuffinfreezerburnv: nothing that will take too much time. Submatrices, projection matrices, rotation matrices etc
15:29:27BitPuffinadding quaternions, exponential maps etc
15:30:37freezerburnv*shudder* Quaternions. I think I still have my Java code for them that... should? work from a class I took. They have an odd habit of doing weird things when you spin your mouse around really fast for a bit though. I'll port what code I have for as much as I have over to nimrod when I get a chance, as I should have at least some of what you mentioned
15:32:42freezerburnvAlso: I have ever more respect for nimrod after looking at that code. Those are some sweet features put together to make a nice library that will likely be screaming fast
15:32:45BitPuffinfreezerburnv: meh you don't have to :) I can be quite pedantic about how contributions should be, ask EXetoC :D. It will be added really soon. Best thing to do would to help zahary fix the bug with generic parameters that can't be numbers
15:34:04*BitPuffin is not sure if pedantic is even the right word
15:34:05freezerburnvBitPuffin: Haha. Well, I can try at least :P
15:34:15freezerburnvBitPuffin: What bug is this? Is it a nimrod compiler thing?
15:34:22BitPuffinfreezerburnv: yeah!
15:34:28BitPuffinfreezerburnv: Check yesterdays logs
15:34:34BitPuffinI believe that's when me and him spoke about it
15:34:40BitPuffinzahary: are you here?
15:36:52BitPuffinfreezerburnv: the reason the bug needs fixing is because it stops me from doing what I wanna do before next release (0.2) which is to not specify the dimensions of a vector and matrix with a number instead of rangue
15:36:54BitPuffinrange
15:36:55BitPuffin*
15:38:27*mflamer quit (Ping timeout: 272 seconds)
15:40:04freezerburnvBitPuffin: Basically you wanna do something like: TVector3* = TVector[float32, 3]?
15:40:25BitPuffinfreezerburnv: pretty much
15:40:32BitPuffinalthough it would be TVec3 :P
15:40:39BitPuffinbut yeah
15:41:07BitPuffininstead of TVec3 = TVector[float32, range[0..2]] it would be more like what you wrote
15:42:29freezerburnvAnd so the compiler bug is that you can't actually pass in 3 as a template? Got it
15:42:45freezerburnvor rather, lack of a feature. I don't think generics/templates in any other language would allow that...
15:42:52freezerburnvNo wait, C++ does
15:42:52freezerburnvMy bad
15:44:11BitPuffinfreezerburnv: the feature exist
15:44:15BitPuffinfreezerburnv: there is a bug with it
15:45:22dom96hi
15:45:26BitPuffinhey dom96!
15:45:33BitPuffinI'm getting closer to fixing the bug :D
15:45:38freezerburnvSup dom96
15:45:43BitPuffinI'm so fucking proud xD
15:45:45BitPuffinat least if I fix it
15:45:56*gradha joined #nimrod
15:47:02BitPuffinfreezerburnv: I'd start by looking ctrl+f'in the logs after zahary and me yesterday or whatever it was so that you can read the error and grab the sample code I linked and compile the compiler with debug flag and figure out where things are going wrong with gdb etc
15:47:08BitPuffinand talk to zahary whenever he returns
15:47:09dom96freezerburnv: nm
15:48:58EXetoCBitPuffin: pedantic indeed... won't even let my code style gain territory >:|
15:49:39BitPuffinEXetoC: yep, and force you to write public domain babble in your commit message :p
15:50:46freezerburnvo_o
15:51:11BitPuffinfreezerburnv: :D
15:51:27freezerburnvEXetoC: Should I be terrified?
16:00:16gradhadom96: in babel configuration files, which are nimrod .ini files, is there any syntax to break up long lines into multiple lines?
16:00:31gradhacurrently I have a longish 'InstallFiles = "nakefile.nim,alchemy.nim,ouroboros.nim,README.md,LICENSE.md,CHANGES.md,docs/file_format.md"'
16:00:41dom96gradha: Yeah, just use """ like in Nimrod.
16:00:58gradhano comma separation then?
16:01:11dom96no, you still need them
16:02:55gradhaon the second line I get an EOS "No such file or directory"
16:04:08gradhawill fix that later
16:04:40dom96Probably a bug then, perhaps I don't .strip after splitting.
16:07:15BitPuffindom96: gross
16:14:15BitPuffinhmm
16:14:40BitPuffinhow do I turn an identifier node into a symbol
16:17:02*MFlamer joined #nimrod
16:33:13BitPuffinwhaat
16:33:20EXetoCwhoot
16:34:26BitPuffinhmm
16:34:46*BitPuffin broke the compiler
16:37:09BitPuffinI think I might know whassup
16:38:36*OrionPK joined #nimrod
16:38:41BitPuffinI need to check if the identifier is a generic parameter identifier somehow
16:41:26BitPuffintricky wan
16:50:24*BitPuffin prays this works
16:50:27BitPuffinnope
16:51:21*MFlamer quit (Remote host closed the connection)
16:51:23BitPuffinbut that was just a silly thing
16:51:32*DAddYE joined #nimrod
16:53:31BitPuffincloser :P
16:56:35*Associat0r quit (Quit: Associat0r)
16:57:39*DAddYE quit (Ping timeout: 244 seconds)
17:16:33*Demos joined #nimrod
17:26:43*dymk quit (Ping timeout: 288 seconds)
17:30:44BitPuffinAraq: are you here?
17:31:34gradhaBitPuffin: pinging is the formal protocol
17:31:44BitPuffinokay
17:31:46BitPuffinping Araq
17:31:48BitPuffin:P
17:31:54BitPuffinare you still here? target lost.
17:32:26gradhaBitPuffin: good, now you only need to fill in your form, stamp it twice and send it to Germany
17:32:42BitPuffinsweet
17:33:21VarriountMeep
17:33:26*Varriount is aliiiiivvee
17:36:58*fowl joined #nimrod
17:40:27*MFlamer joined #nimrod
17:43:19BitPuffinMFlamer: I'm close to fixing your bug I think, just that I have gotten stuck lol
17:43:46MFlamernice, let me know if I can help in anyway
17:44:37BitPuffinMFlamer: Well I'm trying to figure out how to turn T into what the instance of T really is
17:44:51BitPuffinso far I have managed to change the error to: Error: undeclared identifier: 'T'
17:44:57BitPuffinwhich is closer than ''
17:45:23BitPuffinI am assuming it is to look it up somehow in the typeInstCache
17:46:02BitPuffinof the type on the left side of the .
17:46:28BitPuffinMFlamer: thoughts?
17:52:30*DAddYE joined #nimrod
17:54:14BitPuffinhmm maybe this does it
17:54:23MFlamersorry, in skype meeting now
17:55:19BitPuffinah
17:55:21BitPuffincarry on :P
17:56:25*Demos quit (Ping timeout: 272 seconds)
18:10:05dyu_dom96: perhaps I don't .strip after splitting. <-- quote of the day :-)
18:11:07*Varriount never knew dom96 was a stripper.
18:11:11dyu_hehe
18:25:07OrionPKdom96 is barely legal
18:29:11fowljb
18:36:45*enurlyx joined #nimrod
18:40:25*CarpNet quit (Quit: Leaving)
18:41:23dom96hah
18:53:03*Demos joined #nimrod
19:02:19VarriountAraq, just as lambda variables have semstmts.semLambda, do normal procedures have a corresponding procedure?
19:02:56EXetoCdom96: pie
19:04:26*Mat2 joined #nimrod
19:04:32Mat2hi all
19:04:50VarriountHello!
19:05:15Mat2hi Varriount
19:05:52VarriountMat2, need anything?
19:06:29dom96EXetoC: yes plz
19:06:38shodan45is there another tutorial besides "tutorial 2" that covers more advanced stuff in nimrod?
19:06:43Mat2hi dom96 and shodan45
19:06:50dom96hey Mat2!
19:06:54shodan45hello
19:06:55dom96Where have you been?
19:07:06Mat2Varriount: Not directly
19:07:11dom96shodan45: The manual.
19:07:25*Demos quit (Ping timeout: 246 seconds)
19:07:32gradhaMat2: will your work allow nimrod to compile without a C compiler installed on the users' machine?
19:07:45Mat2dom96: lot of work at past
19:08:03Mat2gradha: yes
19:08:09gradhaamazing
19:08:10NimBotnimrod-code/packages master 0d0103b Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds ouroboros module to package list.
19:08:10NimBotnimrod-code/packages master 572f3d7 Dominik Picheta [+0 ±1 -0]: Merge pull request #30 from gradha/pr_ouroboros... 2 more lines
19:08:56gradhathat with ouroboros will allow us to conquer the world by dropping binaries everywhere!
19:11:09VarriountWhat is ouroboros? (the module)
19:11:30gradhait's an API to read back files appended to your executable
19:11:54gradhait is also kind of a packed file format, which is appended to your binaries
19:12:06Varriountgradha, what's wrong with "static readFile(..)"?
19:12:20gradhanothing, try to read the data back
19:12:32gradhain the compiler
19:12:37gradhafor all available babel modules
19:17:53gradhawith Mat2's work and ouroboros you can in theory generate a single binary which has everything required to copy on a USB and compile nimrod wherever you want
19:18:03gradhano installation required
19:18:30gradhaand using ouroboros instead of static readFile also allows you to update the appended data without rebuilding the compiler version, which may be useful
19:19:59Mat2for me it would be ideal to have a EBNF notation of Nimrod at current
19:21:30dom96Mat2: Well, it's nice to see that you're still with us :)
19:21:46VarriountWhat kind of parser does nimrod even use? LR(1)?
19:22:14Mat2gradha: Yes but beware, my compiler will be more of an independent environment for system programming
19:22:53Mat2(it will be perfectly suited for os development for example)
19:22:57fowlMat2, there is one, somewhere
19:23:00gradhaaww, well, then the ouroborosed nimrod will require an installed working C compiler then
19:23:24gradhaor maybe somebody has the will to make it work with tinyc backend again or something small which can be embedded too?
19:23:33Mat2fowl: thanks, I take a search
19:24:06*Associat0r joined #nimrod
19:24:19*Associat0r quit (Changing host)
19:24:19*Associat0r joined #nimrod
19:24:32Mat2gradha: would be nice, but to ressource intensive for some common embedded systems around (like arduino class boards)
19:24:47*freezerburnv quit (Ping timeout: 260 seconds)
19:24:56gradhaalso tcc is LGPL, so maybe that would be a problem for binary distribution
19:25:04Mat2however, there exist always the option for cross-compilation
19:25:46Mat2dom96: thanks
19:25:58Araqyay wb Mat2
19:26:02Mat2hi Araq
19:26:18Mat2where can I find an EBNF notation for Nimrod's syntax ?
19:26:27Araqdon't you dare leaving without submitting your JIT stuff in a separate branch ;-)
19:26:55Araqthe manual contains an EBNF notation where 'E' stands for "Araq's enhancements"
19:27:10Araqwell in fact ... it's actually a PEG
19:27:13*brson joined #nimrod
19:27:27AraqEBNF is limiting and archaic
19:27:46Mat2what branch ? The compiler is entire written from scratch
19:28:08AraqEBNF lacks higher order rules/parametrization for instance
19:28:16Araqouch.
19:28:18Mat2anyhow, any notation will do, I take a look
19:28:27AraqI told you not to do this :P
19:29:04gradhathe desire to rewrite the wheel is strong in this channel
19:30:03Mat2Get me an insight how to sqeeze Nimrod's compiler into 8 kB of ram and I'm crazy enough to work on it as addition ;)
19:31:24gradhawe could actually beat all those Samsungs and Apples to implement a smartwatch, compiling everything in the fraction of their wallpaper PNG
19:31:41Mat2*g*
19:32:17shodan45Araq: hmm, what's your day job? just curious ;)
19:32:22fowli've seen samsungs smartwatch
19:32:25fowlit already exists
19:32:28AraqMat2: well I told you it won't fit in 8K ;-) Nimrod hasn't been designed for this. However defining a subset/dialect is fine with me
19:32:53Mat2that's what I'm working on now
19:33:10gradhafowl: like in meatspace? somebody bought one?
19:33:23Araqshodan45: it's a well kept secret
19:33:28fowlgradha, what?
19:33:35fowlgradha, i saw it in a verizon store
19:34:01shodan45Araq: oh? o_o as long as it isn't the nsa..... >_>
19:34:16gradhafowl: aaah, here in the third world we don't have verizon stores
19:34:45*enurlyx quit (Quit: Nettalk6 - www.ntalk.de)
19:35:40Mat2Araq: Found it, thanks. I will have some questions about the type system in future for sure
19:36:27gradhafowl: AFAICS I can't even buy one on the samsung webpage
19:36:45AraqMat2: compiler/parser.nim is also reasonably clean to be taken as a reference. imho anyway
19:37:32fowlgradha, http://www.samsung.com/us/mobile/cell-phones-accessories/SM-V7000ZGAXAR
19:37:45fowlfound in like 3 seconds
19:38:09gradhafowl: yeah, but http://www.samsung.com/es/consumer/mobile-phone/galaxy-gear/galaxy-gear/SM-V7000ZKAPHE doesn't have a shop button, so can't buy it
19:38:41fowlit does for me
19:39:01AraqVarriount: semProc ?
19:39:03gradhafowl: so you can shop from the spain web but not me?
19:39:12fowlno, im on the us page
19:39:16fowlworld #1
19:39:28gradhafowl: ah, yes, that's what I meant then
19:40:24Mat2fowl: Do you know the specification of this watch ?
19:40:52*fowl quit (Read error: Connection reset by peer)
19:40:58AraqBitPuffin: pong
19:41:06VarriountAraq, I'm trying to find out why a regular procedure ("proc test(a, b): auto = a+b") is having it's generic parameters generated, while a lambda ("var p = proc (a, b): auto = a+b") is not
19:41:32AraqVarriount: but you already did, I think
19:41:46AraqI never considered generic lambdas to be worth while
19:42:01Araqso it never was supported. crazy, I know
19:42:07BitPuffinAraq: ahoy cap'n! I'm wondering, given a certain context and a generic type T, how do I "extract" what the istance of that type is in the context?
19:42:19*enurlyx joined #nimrod
19:42:52AraqBitPuffin: depends on whether T is used for a proc or for a type iirc
19:43:26MFlamerIsn't is the last son in an generic instantiated node?
19:43:32Araqfor a proc that's some simple symbol table lookup iirc (which btw is quite a hacky way to implement it)
19:43:45AraqMFlamer: for a type you're right
19:44:13BitPuffinAraq: Hmm, well I'm working on 618, I think I figured out that the issue was in QualifiedLookup where it didn't catch a skType in the dotexpr
19:44:14MFlamerIsn't he working with types?
19:44:35Araqno idea what #618 is about
19:45:02BitPuffinAraq: it's about proc foo(a: TMatrix): TMatrix.T
19:45:16BitPuffinAraq: where it doesn't find TMatrix.T
19:45:27BitPuffinso it basically takes it as '' is the return type which isn't a type
19:45:46BitPuffinI've managed to get it to Error: undeclared identifier: 'T' which is at least closer than before lol
19:45:55Araqnice
19:46:08BitPuffinnow I just need to get what T represents
19:47:36MFlamerwhy does MFlamer find himself constatntly wanting to engage on this IRC when he's susuposed to be working?
19:48:06BitPuffinMFlamer: I have the same issue :P
19:48:24BitPuffinbut hey, our community is important too!
19:48:36MFlamerFor the greater good!
19:49:15BitPuffinso it isn't completely wasted time I think
19:49:23BitPuffinMFlamer: but you think in this case it is the last son?
19:50:10AraqBitPuffin: debug TMatrix and see what its type is
19:51:59BitPuffinAraq: in the tmatrix source code? In this case it doesn't even have a type. What the bug report contains is basically a type definition of TMatrix and a sample proc that returns TMatrix.T
19:52:06MFlamerI'm thinkng you may need to do the symbol lookup, then check the last son
19:52:47MFlamerhe means debug the node in the compiler, so you get a dump at compile time
19:53:17BitPuffinMFlamer: well the part that I'm trying to fix is the lookup
19:53:29*dymk joined #nimrod
19:54:15BitPuffinhttps://gist.github.com/BitPuffin/7343030#file-gistfile1-nim-L38 and downward is basically my work so far
19:54:32BitPuffinnevermind the duplication stuff, it wasn't like that before, I was just trying a thing :P
19:54:44BitPuffinI mean the var sym = gSym.typ.sym
19:54:49BitPuffinxD
19:54:52EXetoC"i < <tokSlices.len" operators ftw
19:55:17AraqBitPuffin: interesting approach but all wrong I think
19:56:06BitPuffinAraq: well it was the first thing that came to mind. By all wrong you mean fixing it in QualifiedLookup? or just what I did in there
19:57:06*fowl joined #nimrod
19:57:12EXetoCVarriount: actually, I think the container interface will improve as a result of the upcoming user-defined type classes
19:57:12*capisce_ joined #nimrod
19:58:00EXetoCI didn't think of it the last time we talked about container-agnostic functions
19:58:23AraqBitPuffin: fixing it in qualifiedLookup. In fact you should ask zahary how to proceed. he implemented TMatrix.T
20:01:37VarriountAraq, then what should be done for bugs concerning generic lambdas?
20:02:28VarriountEXetoC, *shrug* the itertools module shouldn't be too hard to modify
20:02:56*MFlamer quit (Remote host closed the connection)
20:04:15EXetoCwell we do have agnostic functions already, just that they might lack compile-time checks
20:04:38BitPuffinAraq: ah, sorry it was the first place I found where there seemed to be a way to fix the bug. I hope zahary comes around sometime soon :)
20:04:46VarriountEXetoC, or they crash the compiler.
20:05:28AraqBitPuffin: it's fine and you can continue to patch it there and then we'll move it to the proper position
20:06:08EXetoCsame goes for the code that does the checking, if there's a bug :p
20:07:02Mat2get some sleep, ciao
20:07:03EXetoCVarriount: you might want to start working on it anyway, in which case the definition of something like sequtils.toSeq might be of interest
20:07:09EXetoCMat2: hi, bye!
20:08:24*jdp_ joined #nimrod
20:08:26VarriountEXetoC, right now I'm just using generic iterators, and assuming that whatever type given supports the "for" statement
20:08:37fowlc2nim sucks with do {} while(); =(
20:09:04Varriountfowl, you might be able to fix it.
20:09:09*Mat2 quit (Quit: Verlassend)
20:09:11BitPuffinAraq: okay sure that sounds good. Maybe I'll put a comment there saying that it should be moved or something. I guess in this case the real type is probably the last son of n? if what MFlamer said was true
20:09:22EXetoCVarriount: that's a good start
20:09:29Varriountfowl, just have c2nim copy the block in the while loop, and paste it before the while
20:09:32*capisce quit (Ping timeout: 240 seconds)
20:09:32*shevy quit (Ping timeout: 240 seconds)
20:09:33*jdp quit (Ping timeout: 240 seconds)
20:09:33*mkb quit (Ping timeout: 240 seconds)
20:09:33*mkb joined #nimrod
20:09:38BitPuffinor hmm maybe not n
20:09:43*shevy joined #nimrod
20:10:54Varriount"do {body} while(condition)" is just syntactic sugar for "body; while(condition){body}"
20:11:10fowli know what do{}while() is
20:11:13fowlzz
20:11:17BitPuffinAraq: at first I suspected that it was somewhere in typeInstCache of the PSym
20:15:39BitPuffinBBQCoding
20:15:42BitPuffinyou guys should try it
20:15:48BitPuffinit's when you BBQ and code at the same time
20:16:10Araqsometimes I do drinkCoding
20:16:29Araqin fact
20:16:40BitPuffinnot when working on the compiler I hope :P
20:16:40Araqlet's see if there some beer here
20:17:06Araqlol of course. it's not like I have any other hobby projects
20:18:59BitPuffinAraq: How does it affect your coding abilities? Does it make you worse or does it maybe help you focus or something?
20:19:22EXetoCgive pony trekking a go
20:21:00AraqBitPuffin: well it lessens the pain :p
20:21:02BitPuffinscientific studies show that people who do bbqcoding are cooler than those who don't
20:21:11BitPuffinAraq: always so cheerful :P
20:21:36Araqgradha knows I only touch osproc when drunk
20:22:34shevyyou drink only when you touch osproc!
20:22:59AraqBitPuffin: fyi semexprs line 924 seems to be the issue
20:23:03gradhathe first rule of the tautology club is the first rule of the tautology club
20:24:19AraqBitPuffin: copy what tyGenericInst does and adapt it for tyGenericBody
20:25:07BitPuffinAraq: so I should undo all I did in lookups?
20:25:14Araqyes
20:25:43Araqand do your BBQ thing. it can only help
20:26:47BitPuffinI'll take a look
20:30:40BitPuffinAraq: you mean what tyGenericInst does within builtInFieldAccess?
20:30:54*MFlamer joined #nimrod
20:31:00BitPuffino/ MFlamer
20:31:09Araqyeah and that code is wrong too
20:31:15BitPuffinhaha
20:31:32EXetoCuh oh
20:31:54Araqbut it's an easy fix; instead of tParam.sym.name == i it should be tParam.sym.name.id == i.id
20:32:17Araqidents.nim should overload == I guess
20:35:38MFlamerah ha
20:37:00MFlamercool, I think this is going to make some stuff possible I was stuck on a while back
20:37:01AraqMFlamer: are up to some pretty big symbol table refactorings?
20:37:31MFlamerAraq: what do you mean?
20:38:02Araqthe symbol table implementation never got updated to deal with more recent features, causing all sort of bugs and problems
20:38:58MFlamerSo, you believe there is a group of bugs that all relate to this, and some one needs to step up and fix it?
20:39:18Araqyes but I don't believe it, I know it
20:39:43Araqthe bugs might not be reported but that matters little
20:40:43MFlamerMyself or BitPuffin could try and master that part of the compiler......
20:41:31*Jackneilll quit (Remote host closed the connection)
20:41:41Araqbasically everything that uses lookups.lookup, qualifiedLookup, and perhaps localSearchInScope and searchInScopes is wrong
20:42:11Araqthese all need to get a new kind of "preference" parameter
20:42:29Araqso that immediate templates are preferred over ordinary templates for instance
20:42:37*fowl quit (Read error: Connection reset by peer)
20:42:53Araqcurrently it's simply bad luck, depending on the hashing scheme
20:42:56BitPuffinty.len == 1: that's kind of weird
20:43:35Araqand arguably an sfImmediate macro cannot be overloaded at all
20:43:49BitPuffindoes that mean it will only work for TMatrix.T and not TMatrix.Type ?
20:43:51Araqso the compiler should reject that
20:44:21AraqBitPuffin: len is not the length of the identifier
20:44:26BitPuffinAraq: ah
20:44:40BitPuffinI had that suspicion
20:49:22BitPuffin │21:39:14 Araq | yes but I don't believe it, I know it │
20:49:34BitPuffinwoa
20:49:44BitPuffinhow did that happen
20:49:47BitPuffinxD
20:50:06MFlamerkeep it under control BitPuffin!
20:51:27BitPuffinI'm trying
20:51:46BitPuffinthe compiler has drained my sanity! :p
20:51:56MFlamerok, I copied that info for reference Araq
20:55:12BitPuffinMFlamer: you probably have much larger chances than me to master it because you've already fixed a few bugs and I didn't even manage to find the bug properly without Araq :P
20:55:16BitPuffinBut you have my axe!
20:55:51BitPuffinand dom96's underwear
20:56:51dom96Not my lucky programming underwear :(
20:56:59*freezerburnv joined #nimrod
20:57:19*freezerburnv quit (Client Quit)
20:57:27BitPuffindom96: well you are a stripper now remember :P
20:58:20*freezerburnv joined #nimrod
20:58:22MFlamerYeah, but the truth is my fixes were crap and Araq had to tell me how to redo them also!
20:58:49BitPuffinhahah
20:59:39MFlamerBut, I do reall want to get familiar with the compiler. I'm really intersted in language design and type theory right now. Want to learn from the master....
20:59:47MFlamerreally*
20:59:56BitPuffinI want to know how Araq found the bug :( maybe it was just him knowing the compiler and all. But who knows maybe he has a process (hint: Araq this would be a really nice blog post)
20:59:56Araqyeah but relax. everybody starts like that
21:00:07VarriountHrm. Why/how are lambdas different from ordinary procedures?
21:00:42BitPuffinMFlamer: yeah I think it's better the more people know the compiler, so that we get rid of the hit by a bus problem
21:00:57Varriount"Hit by a bus problem"?
21:00:59MFlameryes
21:01:09AraqVarriount: well they share most of the implementation
21:01:14BitPuffinVarriount: if Araq and zahary gets hit by a bus we are more or less fucked
21:01:17BitPuffin:P
21:01:45AraqMFlamer: in fact, I need to learn much more about type theory too ;-)
21:01:45VarriountAraq, be careful around buses.
21:02:11*Varriount gets out the bubble wrap.
21:02:12BitPuffindon't trust them
21:02:20*CarpNet joined #nimrod
21:02:22BitPuffindidn't you see that criminal minds episode?
21:02:34*Varriount rarely watches TV
21:02:41gradhaCriminal minds? Is that a show about politicians?
21:02:43BitPuffinVarriount: I didn't see it on TV
21:02:49*fowl joined #nimrod
21:02:50BitPuffingradha: oh snawp he dedont
21:02:58AraqBitPuffin: I don't think I've any tricks. It's just that I know the compiler quite well for obvious reasons
21:04:17BitPuffinAraq: so generally you just take a guess and usually you are right?
21:04:44gradhaBitPuffin: don't you do the same when debugging your own programs? aka guess?
21:04:48MFlamerAraq: have you read "Types and Programming Languages"
21:04:50*faassen left #nimrod (#nimrod)
21:05:42BitPuffingradha: more or less yeah
21:05:44AraqMFlamer: nope it's on my "to-read" list though
21:05:57Araqin fact it's the book I want to read ASAP
21:06:33BitPuffinread it then!!
21:06:36BitPuffin:D
21:06:38MFlamerIt's hard to relax and read when you feel like you need to actually should work
21:06:45BitPuffinyup
21:07:01gradhathat's easy: consider reading is part of your work
21:08:03*gradha opens up last months playboy magazine… for the articles
21:09:55MFlamerI started on this study group https://groups.google.com/forum/#!forum/hott-amateurs (don't mind the name) a while back. The first chapter was a review of standard type theory and was really cool. After that it got really abstract and I could keep up..
21:10:10VarriountWell, I may not have fixed the underlying problem, but at least generic lambdas don't crash the compiler now...
21:10:26*freezerburnv quit (Quit: freezerburnv)
21:10:44MFlamerHott is Homotopy Type Theory, not what gradha was thinking
21:11:12*gradha puts on again his tinfoil hat
21:11:21MFlamerkeep it on
21:12:53AraqMFlamer: let me know if you read something about how to eliminate cycles in type graphs
21:13:06Araqthat would be more useful than anything else
21:13:32MFlamerok
21:13:36*Araq hates graph structures that are not acyclic
21:14:25*Associat0r quit (Quit: Associat0r)
21:15:56gradhahow do cycles form in graph structures? for containers?
21:16:39Araqtype Foo = ptr array [8, Foo]
21:16:52gradhaso containers
21:17:00Araqyes
21:31:40EXetoCwawawiwa
21:32:46OrionPKthe upside down stack trace is a mindfuck sometimes
21:33:18AraqOrionPK: I think it's much more natural than the other way
21:33:34OrionPKAraq a stack is generally considered (gravitationally speaking) to be top to bottom, not bottom to top :P
21:33:58Araqit's also what python does iirc
21:34:09BitPuffinAraq: okay I did what I assumed you wanted me to do but it doesn't seem like it fixed the bug, let me paste
21:34:14Araqand you don't suggest python's stack traces are wrong, do you?
21:34:23OrionPKlol
21:34:27OrionPKno python is the end all be all
21:34:33OrionPKwe should all switch to python
21:35:13BitPuffinAraq: https://gist.github.com/BitPuffin/7344499#file-gistfile1-nim-L45
21:36:22AraqBitPuffin: I'm impressed. looks like I imagined
21:36:30BitPuffinAraq: :D
21:36:37BitPuffinAraq: but the bug remains
21:37:07Araqnow uncomment the echo "TYPE FiELD ACCESS" and debug ty lines
21:37:56BitPuffinalright
21:37:57Araqand see why it's not a tyGenericBody, or do you already know that it is?
21:38:31BitPuffinI don't, so let's see
21:39:46BitPuffinAraq: hmm, compiling the bug report code didn't show any output from echo type field access and debug ty
21:40:31BitPuffinso something catches it
21:41:25BitPuffinlet's see if the newly added of clause catches it
21:41:35webskipperhey guys, my translator is born. It can translate def to proc already - great (lol)
21:42:05Araqwebskipper: you can do the same with a source code filter ;-)
21:42:10webskipper"def bool myfunc ( int test, string blub):" => DefNode(bool myfunc [ArgNode(int test def:None), ArgNode(string blub def:None)])
21:42:10webskipper => proc myfunc (test : int, blub : string) : bool =
21:42:33fowlwebskipper, whats that, scala?
21:42:48Araqcython
21:42:55Araqor whatever it's called
21:42:56webskipperfowl: its my own python dialect :D
21:42:59fowloh
21:43:26VarriountAraq, are there any parts of nimrod source code filter functionality that aren't currently documented?
21:43:52AraqVarriount: I don't think so
21:44:11VarriountAlso, we should probably put up somewhere that a source code filter can be used if you want to change nimrod's indentation style.
21:44:38webskipperfowl: have to refactor my tokenizer. after that i can translate the tokens to instances of node classes (build a tree). from that tree i generate the nimrod code.
21:44:39VarriountFor all the Tab-users
21:44:48gradhaor for all the ruby users missing end
21:45:15Araq#end is not too bad, gradha :P
21:45:20BitPuffinno it does not
21:45:21webskipperwill link the code when its ready
21:45:47Araqwebskipper: you know nimrod has a pluggable parser architecture?
21:46:09Araqadding a custom parser is quite easy. and has never been done.
21:46:10webskipperAraq: i want to use python for that
21:46:21Araqlol I don't think so
21:47:44fowllol quite easy and has never been done
21:47:57BitPuffinneither tyGenericBody or Inst of's are entered
21:48:00BitPuffinand not the else
21:48:03BitPuffinhm
21:48:22AraqBitPuffin: semtypes line 232 is too blame
21:48:30dom96"quite easy", yeah, sounds totally believable coming from a compiler dev :P
21:48:48gradhawebskipper: adding a custom parser is quite easy
21:49:15Araqalright, I'll try to avoid that word from now on
21:49:35gradhause "fun" from now on
21:49:51Araqah, good idea
21:50:27BitPuffinAraq: how can a proc definition be the blame :P
21:50:32webskippergradha: is there a doc to ?
21:51:00BitPuffinthe builtInFieldAccess proc is actually not even called
21:51:02BitPuffinfor that file
21:52:07gradhawebskipper: sadly it has never been done
21:52:35AraqBitPuffin: yeah I know
21:52:50Araqyou need to patch that proc instead
21:53:04Araqbut it makes me wonder how that Matrix.T stuff ever worked
21:53:08Araqquite puzzling
21:53:20gradhawebskipper: take a look at compiler/parser.nim and ask here if something is not clear
21:53:36BitPuffinAraq: should I keep the changes made to builtInFieldAccess?
21:54:10BitPuffinAraq: If it is of any comfort I can't remember a time when it did work
21:54:50webskippergradha: will take a look
21:57:23Araqwebskipper: also look at syntaxes.nim which implements the parsing dispatcher
22:03:03gradhanimrod adoption should increase once we have a parser of shakespeare source code http://shakespearelang.sourceforge.net/report/shakespeare/
22:03:51BitPuffinAraq: ah I need to add an if for nkType in that proc
22:04:17BitPuffinor actually I just turned the if != nkType into an else for a check for nkType because why check twice
22:04:35*brson quit (Ping timeout: 245 seconds)
22:04:39AraqBitPuffin: I'm busy but it sounds good
22:04:52BitPuffinokay sorry :)
22:04:59*brson joined #nimrod
22:07:12*dyu_ quit (Quit: Leaving)
22:09:14*profmakx quit (Remote host closed the connection)
22:09:53*profmakx joined #nimrod
22:10:17*profmakx is now known as Guest16136
22:11:22VarriountAraq, on the topic of generic lambdas - currently a generic lambda crashes the compiler.
22:11:42AraqVarriount: well fix it
22:11:48VarriountI have a fix for the crashing (inserting a dummy generic node fixes it)
22:12:21VarriountHowever I don't know the internals of the compiler well enough to actually have nimrod process the generic lambda.
22:12:51VarriountCurrently the fix just leaves nimrod complaining that the generic lambda isn't a proper type.
22:13:32*Guest16136 quit (Changing host)
22:13:32*Guest16136 joined #nimrod
22:16:22BitPuffinhmm, I'm not even sure what is supposed to happen when the result is a type symbol ._.
22:17:57*Guest16136 quit (Remote host closed the connection)
22:18:11AraqVarriount: that sounds bad :-(
22:18:12*permanen1e joined #nimrod
22:19:53*permanen1e is now known as profmakx
22:20:26*profmakx is now known as Guest59588
22:20:44VarriountAraq, do you have any pointers as to where I could start digging?
22:20:51*Guest59588 quit (Changing host)
22:20:51*Guest59588 joined #nimrod
22:21:05*Guest59588 is now known as profmakx
22:21:16BitPuffinI assume something similar to the first thing I tried
22:39:02*CarpNet quit (Quit: Leaving)
22:39:02*DAddYE quit (Read error: Connection reset by peer)
22:39:34*DAddYE joined #nimrod
22:40:29*freezerburnv joined #nimrod
22:43:15BitPuffingrrrrrr
22:43:37VarriountBitPuffin, ?
22:44:07AraqVarriount: no, sorry; try to disable the error message and see where it then crashes ...
22:44:09*OrionPK quit (Ping timeout: 250 seconds)
22:45:15BitPuffinVarriount: I'm trying to fix a bug
22:45:23BitPuffinbut I suck at the compiler :P
22:45:50AraqBitPuffin: yeah but it's all my fault because I use 1-letter variable names
22:46:46BitPuffinAraq: that's not really what is causing my confusion in this case :P
22:47:08EXetoCsarcasm? who knows q:
22:47:11Araqoh really? now that's surprisng
22:48:25Araqseriously guys how can you like directories? I just typed pure/lib/htmlgen instead of lib/pure/htmlgen ...
22:48:59EXetoCfowl: Do you how to fix this? I'm trying to run bullet.nim. "could not import: gluErrorUnicodeStringEXT"
22:49:01BitPuffinthe horror :P
22:49:27fowlEXetoC, is bullet.nim mine?
22:50:00EXetoCfowl: it's in fowltek
22:52:41EXetoCsomeone said it's not in the spec, so I'll just comment it out and see what happens
22:53:03fowlderelictglu loads gluErrorUnicodeStringEXT on linux, but it seems this is a microsoft specific extension and thus not available on other platforms ...
22:53:44BitPuffinAraq: well now we are back exactly where I started. The result is nil because that's why QualifiedLookup returns
22:53:57AraqBitPuffin: I can imagine
22:54:26BitPuffinAraq: so how can it be semTypeIdent that needs patching and not QualifiedLookup :(
22:55:38BitPuffinis it because it shouldn't do a lookup at all?
22:55:52Araqwell semBuiltinFieldAccess doesn't use qualifiedLookup either
22:55:54*BitPuffin is confused, and not because of 1 letter var names :P
22:56:14Araqso yeah you must not perform the lookup too early
22:56:24EXetoCfowl: yeah I found that thread. will add a 'when' block
22:56:47EXetoCit runs, but the window remains blank
22:58:20*OrionPK joined #nimrod
22:58:28EXetoCbut then again it barely contains any logic
22:59:25BitPuffinAraq: grepping for various variatons on semBuiltinFieldAccess didn't give any results >.<
22:59:55AraqBitPuffin: the thing you edited before
23:00:40BitPuffinoh
23:00:43BitPuffinlol :p
23:01:06BitPuffinAraq: you mean except for 6 lines in
23:01:14BitPuffinit doesn't use qualifiedLookup
23:01:38Araqyeah
23:02:00fowlEXetoC, that is probably a 1:1 translation of some bullet demo
23:02:05fowlEXetoC, not sure if it ever worked
23:02:43*freezerburnv quit (Quit: freezerburnv)
23:04:04fowlEXetoC, if you make any changes to glu.nim please do the same for the babel pkg at github/nimrod-code/opengl
23:04:35Araqin fact you should only make changes to the babel package, right?
23:04:46fowli would say so
23:05:03fowland delete those wrappers from stdlib
23:06:26Araqyup
23:07:25BitPuffinAraq: ah maybe I've got it
23:09:25BitPuffinwell okay it's like the 73rd time I said that today
23:10:26*enurlyx quit (Quit: Nettalk6 - www.ntalk.de)
23:11:11BitPuffinat least i added this to the start of the proc elif n.kind == nkDotExpr:
23:12:27gradhagood night
23:12:37*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=n7pXRdkdJxI again)
23:22:31BitPuffinnot quite sure where to go from there :p
23:22:37BitPuffinguess I can figure that out tomorrow
23:22:40*fredmorcos joined #nimrod
23:25:54BitPuffingoodnight!
23:26:05NimBotAraq/Nimrod vm2 9447cc6 Araq [+0 ±6 -0]: VM now supports lambda lifting
23:26:05NimBotAraq/Nimrod vm2 bd74576 Araq [+0 ±5 -0]: tcnstseq works again
23:26:33Araqsame here, good night
23:30:33*BitPuffin quit (Ping timeout: 272 seconds)
23:33:28MFlamergoodnight guys
23:42:04*xenagi joined #nimrod