<< 24-11-2013 >>

00:00:09*DAddYE quit (Ping timeout: 252 seconds)
00:00:16AraqI don't want to see } } } or 'end end end' for that matter
00:00:45filwityeah i'm fine with indent-style. my brother hates it for some reason, but it's just fine to me
00:00:51Araqthese things are to keep primitive parsers happy IMO
00:01:00filwithonestly, i could care-less either way.. sounds odd coming from me, lol
00:01:21filwitbut it's the same with the case-sensitivity.. the ability to choose isn't bad really
00:01:44filwitAraq: yeah, just like ending marks
00:01:50BitPuffinwell is @ really this in ruby though?
00:01:57BitPuffinI thought it was more like static or something
00:02:08BitPuffincan't remember lol, too tired :P
00:02:29filwitidk, i don't know anything about Ruby really
00:02:51BitPuffinor wait no it's kind of like this
00:02:57BitPuffinit means that it's available to other methods
00:03:19filwiteither way, it's not a bad design
00:04:48AraqI used to make fun of Ruby. "scope is so important that it's a sigil and yet the type is so unimportant I can't even write it down!?" but I changed my mind
00:05:21Araqscopes are important ;-)
00:05:35Araqbut types too
00:06:10BitPuffinyup
00:08:22fowlfilwit, i wrote something like this before
00:08:28filwitbtw, Araq, i'm not sure i like the idea of submodule. So if you had any plans on implementing it to appease people like me, i'm just letting you know i don't really see it's advantage
00:08:38filwitfowl, cool
00:08:48Araqfilwit: alright, good to know
00:09:16AraqI still like it cause it's easy to implement and pleases dot lovers
00:09:27Araqdom96 hates it though :D
00:09:31filwitfowl, my main goal isn't just to have OOP-tyle object definitions, but to be able to compile them to communicate with an editor and things how i need
00:09:53filwitAraq: i think it's afraid it will get abused
00:10:04Araqsurely it will
00:10:21Araqespecially since I consider any use of it an abuse
00:10:30Araqbut it's simple to implement
00:10:42filwitAraq: what would be a better design, i think, is if you could just used sub-modules (that are from folders)
00:10:56Araqmeh folders suck
00:11:11filwitwell, you already have the ability to do: import foo.bar
00:11:18Araqsure
00:11:21filwitwhat if you just did: import foo
00:11:24dom96Dynamic typing is easy to implement too. Lets just get rid of the type system! :P
00:11:29filwitbut then you could do "bar.somthing" in your code
00:11:35filwitwithout having to import it
00:11:43filwitbut you had to prefix
00:11:51filwitunless you import, i mean
00:12:00Araqfilwit: that's somewhat harder to implement
00:12:07Araqand I dislike that much more
00:12:32filwitokay, fine, but can i ask why you dislike it more?
00:12:46Araqfolders are irrelevant, heck hierarchies simply don't work and I wish the file system would be a relational database
00:13:43filwiti completely disagree, hierarchies are rational.. just not *single* hierarchical classification
00:13:56filwitthen again.. i don't know much about this topic
00:14:14filwitand i would be crazy to debate a database programmer about it, lol
00:15:00Araqwell even if you're right. *single* hierarchies are all that you get from a file system
00:15:30dom96Why a relational database? How would that help?
00:17:54filwitif everything only has a single namespace.. you end up just using '_' instead of '.' for the same thing
00:18:04filwitimport math_vector
00:18:08filwitimport math.matrix
00:18:12filwitsame thing..
00:18:21Araqno. not at all.
00:18:33Araqmath.matrix # sexy and I want to sleep with it
00:18:42filwitLOL
00:18:43Araqmath_matrix # meh, ugly like my wife
00:18:44filwittrue
00:18:58filwitwhoops.. bad timing on my part, haha
00:19:07filwitbut still, lol
00:19:15fowlAraq, you have a wife?
00:19:55*BitPuffin quit (Read error: Operation timed out)
00:20:06filwitwhen you are famous, Araq, you will be asked to give interviews about your life all the time
00:20:21filwitjust saying..
00:20:46EXetoCc(:)
00:21:20filwit^ ?
00:21:27filwitis that a face of some kind?
00:21:45Araqwell I have a wife and she isn't ugly *cough*
00:22:17*dom96 can confirm
00:22:59filwitoh snap, forgot i had Doctor Who loading.. :D
00:24:31dom96David Tennant <3
00:25:22filwitno spoilers though, i haven't watched it yet
00:25:45Araqdom96: well relational databases are good for everything. you can perform adhoc queries like "how many .nim files do I have" without iterating over the hierarchy
00:26:05Araqdepends on the implementation though ofc
00:26:37filwitisn't mongoDB better in a lot of ways than SQL?
00:26:54Araqhell no
00:26:59dom96Wouldn't you have to search through all files anyway though?
00:27:06filwit^^
00:27:12Araqand I've used both excessively, so trust me.
00:27:19AraqI know you don't
00:27:37filwiti don't use databases
00:27:55Araqthat's no reason not to mistrust me
00:27:56filwitactually, i'm building a MSSQL right now (my brother an I are)
00:28:07filwitbut it's not an area i know much about
00:28:21Araqthat's no reason not to argue vehemently with me
00:28:51filwitgood point
00:29:11filwityou're wrong, no matter what argumen arise
00:29:17filwitarguments*
00:29:36Araqyup.
00:30:08filwitstill, i thought the only ways for efficient data searching was to pre-sort things into external lists?
00:30:21Araqdom96: no. you wouldn't if you have an index on the file extension/ file type.
00:30:24filwitcouldn't the same thing be done for hierarchical systems?
00:30:30dom96^^
00:31:23Araqfilwit: sure but it's unnatural :P
00:31:29dom96You can build an index like Vista/7 does and then searching would be fast.
00:31:38EXetoCfilwit: + binary search?
00:31:45Araqyes. modern FS reinvent databases.
00:32:21filwitwell, that's technically was MongoDB is right (a JSON-tree + indexing) ?
00:33:19filwithierarchy is a natural formation really.. for instance, transformation children
00:33:44Araqyes, mongo is json + indexing + mmap
00:34:02dom96Relational databases only make sense if you have some sort of relationship between different entities. So you can get rid of the redundancy easily.
00:34:35Araqdom96: hierarchies also model a relation
00:35:03filwitAraq: for some reason it seems like both databases and modern filesystems are virtually the same thing, just looked at from reverse directions
00:35:15*CarpNet quit (Quit: Leaving)
00:35:31filwitthe memory is laid out differently maybe..
00:35:49dom96So what do you propose? A directory table which is linked to a file table?
00:36:14dom96But then a directory can also contain other directories...
00:36:26filwitbut the same structures exist. Even in SQL commands, sure it must structure the search lists in a hierarchical manor for efficiency?
00:36:39filwitsurly*
00:37:06dom96A database just seems to add another layer of complexity to a file system.
00:37:09*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
00:37:50Araqfilwit: I agree they are the same thing. the interface differs though
00:38:44Araqand if you look at how the hierarchy is implemented ... it's all overhead over plain IDs or a simple name->ID mapping afaict
00:39:26Araqthe HD surely has no support for a hierarchal structure
00:39:45filwitHD?
00:39:55filwitoh, nevermind gotit
00:40:39Araqalso ... computer noobs don't use the hierarchy at all, they store everything on the desktop or whatever
00:41:05Araqit surely is not natural for them to pack it into subfolders
00:41:05filwiti wouldn't be so apposed to a tag-base sorting system really
00:41:24filwitbut i think even then, you could have both a flat-list, or a hierarchy
00:41:33filwiti mean.. it's just how relationships work
00:41:43Araqthe idea of a recursive file system structure has to be learned
00:41:54filwitif i have dependent things (like spacial transforms), then i want to be able to view them accordingly
00:42:04filwitand the same goes for files really
00:42:11filwitproject files
00:42:35Araqthat it has to be learned doesn't make it bad of course, but it suggests it's not natural.
00:43:12filwitthat may be a good point actually
00:43:21filwitmost noobs do put everything on the desktop
00:43:33filwitbut i would say that's because they're not inventing much
00:44:16filwitwhen you have to compartmentalize your thoughts, sometimes sub-categories are useful
00:44:27Araqwell it's an interface design issue; I still think google is the best example
00:44:45filwityeah, i agree
00:44:45Araqjust type what comes to mind and google lists results
00:45:10AraqI couldn't care less if my flight belongs to "travel"
00:45:25Araqor "planes"
00:45:35filwitactually, i think you would
00:46:00filwitif there where tons of plains, and tons of flights, some algorithms care a lot about their relationships.
00:46:20filwitthough i suppose how that's tackled is by sub-procedure really.. where you isolate each case
00:46:25filwitso maybe you're right
00:46:38Araqmy point is that google doesn't give me categories to choose from and I am glad it does not.
00:47:16filwitit does though, 'web', 'images', 'maps', etc
00:47:36filwitof course, that's not really a "hierarchy"
00:47:51Araqtrue but it's slim and it find images anyway
00:48:02Araqeven if I didn't select that
00:48:56*ics joined #nimrod
00:49:16filwitright now i'm designing the way my part macros will export data, and how the editor will list scene data.
00:49:55filwitbecause i'm not restricting instances to have a single transform, there's not clear-cur hierarchy to work from
00:50:36dom96Yes, but when searching you are specifying the category. There are many ambiguities and you usually resolve them by adding extra keywords to your search.
00:50:38filwiti was thinking about different solutions, but my best idea so far is to make both solutions work (where i can switch the way things are listed)
00:51:16filwitdom96 <- i agree
00:51:23Araqdom96: the extra keywords are in no strict hierarchy though
00:51:46filwitI used a professional stream-service for a company once
00:52:00filwitit was designed to stream massive amounts of data from a lot of different sources
00:52:18filwitit didn't use a hierarchy at all, but still had a good way to find stuff (like google)
00:52:25filwitso i know that way can be effective
00:52:49filwiti just think hierarchy is also natural too
00:53:20dom96I think that tags are more natural.
00:54:02filwityeah.. i'm starting to thing that, only i'm starting to think the tags themselves should be what has category
00:54:06dom96And the latest Mac OS X got them IIRC
00:54:26filwitit does
00:54:30dom96But then you could get tags which belong to a tag group...
00:54:34filwitbut it's just an additional layer
00:54:36dom96and you have a hierarchy again lol
00:55:24filwitwell sorta.. but that's the point, really both systems have to exist for different reasons
00:55:38filwitso it kinda does make sense to use tags by default
00:55:46filwitsearch terms type of thing
00:55:54Araqjust go to amazon and click through their categories. it's significant overhead to determine that Baby lotion belongs to "Lebensmittel & Drogerie" -> "Drogerie & Körperpflege"
00:56:04dom96As much as I would like to type in "movie matrix" and have the computer show me a list of the matrix movies on my computer I know that many people are not comfortable with that.
00:56:12Araqsorry too tired to translate it into english :P
00:56:26Araqyou get the point anyway
00:56:39Araqit's an incredibly abstract category
00:56:52Araqreally slowing me down
00:57:13*DAddYE joined #nimrod
00:57:14filwityes, but that's really just the way the data list categorized for business reasons (author.book).
00:57:16dom96Araq: The question is whether it's quicker to look through the few categories which look "about right" or whether it's faster to look through a list of 100+ specific categories.
00:57:39Araqdom96: it's faster to just type "baby lotion"
00:57:51Araqand let the system figure it out what I mean
00:58:00filwitbut what if there's a ton of results?
00:58:15filwityou have to specify category at that point
00:58:22Araq*then* you need to ask "do you mean X?"
00:58:23filwitvanilla baby lotion
00:58:54filwiti guess it's just another search term, like i just listed it
00:58:57filwitso whatever
00:59:07dom96Someday Aporia will get a way to quickly open files by typing in their name and pressing enter.
00:59:17dom96Because the file browser dialog is a piece of crap that needs to die.
00:59:21Araqdom96: hell yes
00:59:36*Araq <3 aporia.
01:00:18dom96I bet Sublime already has that.
01:00:52filwiti really like Kate's features
01:01:02filwitit has Sublime's 100-mile-view
01:01:12filwitand nice tabulator lines
01:01:24AraqI guess I should try Kate again
01:01:40*DAddYE quit (Ping timeout: 264 seconds)
01:01:49*dom96 guesses he will end up being the only one who uses Aporia soon
01:01:54filwitone problem though, i can't get it to comment out lines correctly
01:02:04dom96and then i'll probably just switch to Sublime
01:02:26filwitdom96, actually, what i would like to do eventually is have our own text rendered, so it can be used in both Aporia and Hymn
01:02:26Araqlol don't worry
01:02:37filwitbut that's a whiles off
01:02:54dom96I would like to move away from GTK.
01:03:07dom96But I have no time at all nowadays.
01:03:22dom96And it sucks.
01:03:29filwityes, and I want text rendering features that probably neither GTK or KTextEdit's default source-viewers are going to support
01:03:40filwityeah, that sux
01:03:59Araqwe'll switch to exhu's UI sooner or later
01:04:13filwitexhu has a UI?
01:04:16dom96or i'll get libcef to work
01:04:29Araqit's in the works but I don't know the status
01:04:59Araqit uses x11 and winapi directly afaik
01:05:05Araqand perhaps wayland now
01:05:13filwiti've actually had this idea that i can make Hymn both a UI editor and Game editor.. since they both largely follow the same design principles (event/state based)
01:06:05filwitso i was thinking of making Hymn's UI with Hymn itself, lol (have to finish designing the JSON scene stuff first, then start the visual editor app)
01:06:43filwitbesides, modern UI's need to be OpenGL/DirectX based anyways (by default)
01:07:06filwitlet Gallium3D's LLVM pipe and DX11's CPU mode handle the "no hardware for that" situations
01:07:17filwitMac can go suck it
01:07:24filwitlol
01:07:31dom96My biggest worry with these custom UIs is that they always look crap. But I'm sure filwit will fix that.
01:07:41filwitactually, nevermind.. no Mac is sold with a GPU anyways
01:08:08filwitdom96: my design is incredibly flexible (still early though)
01:08:26filwitdom96: it's the same 'mode' system i'll be using for all part instances
01:09:40filwitdom96: basically you'll use an editor to define an object visually, and what states it has (and the animations between those states.. which i'm calling 'modes'), then the Nimrod script just supplies, by name, what happens on specific events (procs) under what modes.
01:10:57filwitdom96: the rest is left up to what the part is built out of (remember, part's variables can have behaviors which are injected into the final part machinery, along with the hand-written code)
01:11:34filwitso for a button, it's just a quad (and or borders, text, etc..) with modes: on, off, hover, default, etc..
01:11:58filwitfor a game character it's 3d models, physics meshes, and modes: running, jumping, falling, etc
01:12:06filwitsame concept, different goals
01:12:27dom96right ok
01:12:47dom96I need to sleep
01:12:48dom96bye
01:12:52filwitnight man
01:13:17filwiti'm going to watch Doctor Who, talk to you later folks
01:16:27fowlstill waiting for it to finish downloading
01:17:15EXetoClegally, yeah?
01:17:57fowlyeah "legally"
01:18:02fowlin somalia maybe
01:18:18EXetoCc(:)
01:36:31EXetoCare different instantiations of typedesc's supposed to be distinguishable by the type system? I assume the answer is yes. I guess I've hit one of those recent overloading bugs again
01:37:15EXetoCproc x(typedesc[T]), proc y(typedesc[U])...
01:39:27*ack006 quit (Quit: Leaving)
01:40:54EXetoCI was going to use it for defining zero vectors etc, but it might be overkill compared to just defining constants
01:41:00EXetoCstill neat though
01:41:25EXetoCbye
01:47:47Araqbye
01:58:34*DAddYE joined #nimrod
02:03:09*DAddYE quit (Ping timeout: 272 seconds)
02:06:07*brson joined #nimrod
02:11:05*brson_ joined #nimrod
02:14:29*brson quit (Ping timeout: 248 seconds)
02:15:56*familiar125 quit (Read error: Connection reset by peer)
02:20:01*brson_ quit (Quit: leaving)
02:20:14*brson joined #nimrod
02:59:55*DAddYE joined #nimrod
03:04:29*DAddYE quit (Ping timeout: 272 seconds)
03:23:43*Amrykid quit (Excess Flood)
03:23:52*Amrykid joined #nimrod
03:46:42*tylere quit (Disconnected by services)
04:14:14*filwit quit (Quit: Leaving)
04:29:02*fowl quit (Quit: Leaving)
04:39:17*OrionPKM joined #nimrod
05:00:34*OrionPK quit (Read error: Connection reset by peer)
05:00:34*OrionPKM quit (Read error: Connection reset by peer)
05:02:05*DAddYE joined #nimrod
05:06:14*DAddYE quit (Ping timeout: 240 seconds)
05:42:26*fowl joined #nimrod
05:58:50*DAddYE joined #nimrod
05:59:07*DAddYE quit (Remote host closed the connection)
05:59:13*DAddYE joined #nimrod
06:01:22*Associat0r quit (Quit: Associat0r)
06:21:40*reactormonk quit (Ping timeout: 245 seconds)
06:23:04*reactormonk joined #nimrod
06:48:03*xenagi quit (Quit: Leaving)
06:48:16*brson quit (Quit: leaving)
07:35:38fowlwhere is csources.zip
07:36:32fowlnvm
08:09:57*fowl quit (Quit: Leaving)
08:12:54*fowl joined #nimrod
08:38:53*DAddYE_ joined #nimrod
08:41:26*DAddYE quit (Ping timeout: 240 seconds)
08:51:52*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
10:32:52*fredmorcos joined #nimrod
10:44:44*fredmorcos quit (Quit: Leaving)
11:07:13*Jackneill joined #nimrod
11:09:36*t4nk638 joined #nimrod
11:13:41*t4nk638 quit (Ping timeout: 250 seconds)
11:14:09*Associat0r joined #nimrod
11:18:32*Associat0r quit (Client Quit)
11:26:01*Associat0r joined #nimrod
11:26:01*Associat0r quit (Changing host)
11:26:01*Associat0r joined #nimrod
11:30:47*DAddYE_ quit (Remote host closed the connection)
11:40:50*BitPuffin joined #nimrod
11:49:33*BitPuffin is going through the logs
11:49:45BitPuffinping zahary
11:51:00BitPuffinAraq: I think the notion of a database like filesystem sounds interesting
11:51:35BitPuffinBut I find it hard to wrap my brain around because I'm so used to the folder tree system
11:53:02BitPuffineven though I use databases lol :P
11:53:50BitPuffinI've got something though that actually adds points to your side of the argument that it is actually more natural
11:54:52BitPuffinpeople who's got a huge collection of files, say sound designers etc use software that they can just search through their library like (sound miner is an example of such software), and I guess that kind of proves that the folder structure isn't good enough in a way
11:56:03BitPuffinalthough I guess with a little bit of command line magic one can do just as well of a job
11:58:03dom96hi
11:59:46BitPuffinhey dom96
11:59:51dom96hey BitPuffin
12:00:00BitPuffinwassaaa
12:01:51dom96The usual: making pizza for breakfast because why not and depressed because it's Sunday already :P
12:02:28BitPuffinoh come on you always eat what I wanna eat
12:02:42BitPuffinAll I'm gonna be able to make today is porridge :(
12:03:25BitPuffintoo poor for pizza
12:04:08dom96aww poor you
12:04:22BitPuffinpoor me indeed
12:05:07BitPuffinAnd I don't even know what I'm gonna do xD I don't have any idea how to fix the bug that would make my workaround to the workaround work
12:06:04EXetoCjust work around it
12:10:15BitPuffinEXetoC: there is no way to work around this one
12:17:02EXetoC:/
12:19:39BitPuffinEXetoC: I think you may have been hit by a similar bug after I left yesterday
12:20:16BitPuffinhttps://github.com/Araq/Nimrod/issues/686
12:20:42EXetoCyes it seemed similar
12:21:31BitPuffinAnd it's a show-stopper, I KNEW I should have used ocaml :P
12:21:33BitPuffin(kidding)
12:21:54*BitPuffin waits for Araq's fist to reach my face
12:22:18BitPuffins/my/his
12:22:21EXetoCexcept it only failed when trying to call one of the overloads, similar to my other error
12:22:45BitPuffinEXetoC: that's weird
12:22:48BitPuffinhave you reported it?
12:23:16BitPuffinI also had some problems with ambiguous calls, but to fix that I just had to annotate the variable with the type
12:25:05EXetoCI was told that it was a known issue, but I'll see if it has been reported
12:25:15BitPuffinBut in all seriousness, it's kind of a panicky situation, I have set a strict deadline for this project and need to get the work done :/
12:25:58EXetoC>.<
12:26:47BitPuffinBut yeah, I can work on audio or something while waiting and hope that there isn't any show stopper there, but how do I know that this is gonna be fixed on time even :P lol
12:32:13EXetoClet's donate $5 each and then tell him what to do next
12:32:19EXetoChave you decided on an audio lib?
12:40:31BitPuffinyeah perhaps :P but then we'd all ask for different things lol
12:40:40BitPuffinproblem is that I don't have much moneys
12:40:43BitPuffinyeah I think so
12:40:49BitPuffinI think I'll go with libao
12:47:03BitPuffinyeah I think I'll play with audio today, I'll have faith and hope that the gods (Araq and zahary) have mercy
12:48:51BitPuffinIf not I guess there is one final "workaround" (not really)
12:50:47BitPuffinAnd that would be to define the submatrix operator only for 2x2 and 4x4 (because 2x2 works for some weird reason) as the submatrix thing is really only needed for 4x4 determinands, the lower ones can (and should) be hardcoded
13:10:40EXetoCok
13:19:32EXetoCgl&hf. l8r
13:29:25BitPuffinsee ya
13:40:00*zahary quit (Read error: Connection reset by peer)
13:40:07*zahary joined #nimrod
14:36:16*CarpNet joined #nimrod
15:06:02*OrionPK joined #nimrod
15:19:14*OrionPK_ joined #nimrod
15:23:49NimBotnimrod-code/babel master d534538 Grzegorz Adam Hankiewicz [+1 ±1 -0]: Splits main readme.... 4 more lines
15:23:49NimBotnimrod-code/babel master c761500 Dominik Picheta [+1 ±1 -0]: Merge pull request #15 from gradha/pr_splits_docs... 2 more lines
15:26:50*Hannibal_Smith joined #nimrod
16:39:14VarriountAraq, any idea where in the compiler inner iterators (iterator procs that resides within another procedure) are lifted/handled?
16:40:10Araqlambdalifting.nim
16:40:36Araqbut iirc I never implemented inner .closure iterators
16:40:54Araqand lambdalifting surely is fun
16:41:03Varriount... which explains why they cause a gcc syntax error when used.
16:41:26Araqwell there is also a general LL bug
16:41:35Araqhaven't looked into it yet
16:43:30VarriountAre any of the lambdalifting.nim procedures for regular procedures also used for iterator procedures?
16:48:17Araqno but it's "easy" to do
16:48:39Araqthe code in general is quite generic
16:49:56Araqhave fun, lambdalifting is the best part of the compiler. Took me 2 weeks to write these 800 lines of code and 2 weeks of debugging them and it's still unfinished and has bugs
16:52:32AraqisInnerProc needs to deal with skIterator
16:52:42*mflamer joined #nimrod
16:57:25Araqbut only if s.kind == skIterator and s.typ.callConv == ccClosure, otherwise the iterator is inlined later and doesn't require lambda lifting
16:58:45*mflamer quit (Ping timeout: 248 seconds)
17:15:04VarriountAraq, yay for corner cases!
17:16:36Araqalso you need to ensure that the environments are merged properly
17:16:42VarriountFrom what I can see, the iterator lifting procedure doesn't capture any environment variables, unlike the lambda lifting procedure.
17:16:59Araqin particular the state field needs to be the first
17:17:05Araqso that's at offset 0
17:17:21AraqVarriount: we need both
17:17:36Araqordinary lambda lifting to capture outer variables
17:17:43Araqand then later the state transformation
17:18:12AraqI mean the state machine generation
17:19:14VarriountSorry for the slow response, I'm on my laptop, with a bad connection to my desktop, its irc client, and editor.
17:20:58VarriountAraq, so, for inner iterators, both liftLambda and liftIterator need to be run on the node and its' body, and the environments need to be merged properly?,
17:21:23Araqyeah
17:23:51*OrionPK_ left #nimrod (#nimrod)
17:28:32*OrionPKM joined #nimrod
17:28:40*fredmorcos joined #nimrod
17:30:11VarriountAraq, so where/what is the lifted closure iterators environment?
17:30:57OrionPKMyay working on raspberry PI :)
17:31:11VarriountI see an environment thing generated for lifted procs, but not for lifted iterators.
17:36:18VarriountOr do you mean environment as in, the generated tree?
17:36:30Araqno
17:36:34Araqthe env
17:38:42*OrionPKM quit (Remote host closed the connection)
17:38:44*fredmorcos quit (Quit: Leaving)
17:48:24*OrionPKM joined #nimrod
17:57:56VarriountAraq, so, I see that closure iterators are already passed through liftLambdas, so is it now a matter of ensuring that the closure iterator's environment is merged correctly?
17:59:06*ics joined #nimrod
18:00:13Araqit's actually rather easy to "merge" correctly
18:00:30Araqyou only need to ensure the ':state' field is the first one
18:01:54OrionPKargh
18:01:58OrionPKthat friggin 12:00 bug :P
18:02:00*OrionPKM quit (Remote host closed the connection)
18:02:32OrionPK12:00 - 1:00 = time to turn off ircfamiliar :P
18:05:06bastian_what is the operator to perform logical shift? shl/shr are only defined for signed integers and perform arithmetic shift
18:06:13Araq* or div 2^n
18:06:30AraqI wonder when logical shift is ever needed
18:06:57Araqsome guy wrote an lshr with the help of 'emit'
18:07:03VarriountI always wonder whenever shifting is needed.
18:07:23Araqshifting is necessary for bit extraction
18:07:37Araqbut I have never needed "logical shifting"
18:08:20bastian_positioning bits in a byte
18:09:40bastian_shifted right and it was 'filling' with ones, wondered what was going on, then noticed it's a seq[int8]
18:11:00bastian_(e.g 0b1000000 shr 2 == 0b11100000)
18:14:20Araqhuh? shr should treat everything as unsigned
18:14:55*OrionPK quit (Read error: Connection reset by peer)
18:16:15bastian_well, did that initially, even though bitset.nim is using seq[int8], then noticed none of the bitwise operations are defined for unsigned integers
18:16:40bastian_it wasn't a problem ... until now
18:16:40Araqimport unsigned
18:17:00Araqand then you have shr/shl for uint
18:17:10*dymk quit (Ping timeout: 264 seconds)
18:17:41bastian_oh, well, didn't see that anywhere. thanks!
18:18:31bastian_"To discourage users from using unsigned integers" heh :)
18:19:01bastian_so again to prevent misuse, nice
18:19:21bastian_just didn't know where to look
18:23:41*dymk joined #nimrod
18:30:21bastian_and to get an uint8 from any integer: toU8 still returns a signed integer, so i'll need cast[uint8]?
18:31:01AraqI think you should use a type conversion instead uint8(x)
18:32:41bastian_ah, ok
18:41:11*Amrykid quit (Changing host)
18:41:11*Amrykid joined #nimrod
18:52:45bastian_everything seems to be working now, great
18:54:53bastian_and once unsigned is imported, `==` works also on seq[uint8], neat
19:01:47EXetoCawesome
19:03:41dom96Wouldn't it make sense to put the unsigned types in the unsigned module?
19:04:32Araqwell kind of
19:05:07Araqmy idea was that people want to use uint32 etc. for wrapping but then don't compute with them
19:05:08EXetoCand the type classes in system.nim? should system import unsigned then?
19:05:24EXetoCok
19:06:50dom96well but then it's really confusing for new people as to why == is not there for uint
19:07:57dom96I think it make sense to keep them together.
19:08:27*filwit joined #nimrod
19:09:15filwitdom96: last night I started playing around with Aporia's nimrod.lang file
19:09:31filwitdom96: i have gotten it relatively to the point of my Kate one
19:10:50EXetoCI think it might be confusing either way, so the documentation needs to be clear on this
19:11:02EXetoCnot that I've checked if it is
19:11:06filwitdom96: i plan on making a couple new color schemes and then sending you a pull-request, but I'll want to know exactly what you do and don't like (i have it color PascalCase different, for example).
19:12:11filwitdom96: however, i noticed last night that your lang file uses this regex idiom everywhere: (i|I)_*(n|N)_*(t|T)_*
19:12:30filwitdom96: you don't actually need to do that, since you can enable case-insensitivity
19:12:59filwitdom96: just letting you know i guess
19:15:14dom96Yes, I know. Araq wrote that not me :P
19:15:28dom96However, the _* is still needed for style insensitivity.
19:16:10filwitahh, so Araq is the culprit of this syntax.. that makes sense :P
19:17:06Araqlol as if I wrote it
19:17:11Araqobviously I generated it
19:17:34filwityeah i was thinking it was generated (cause of the (1|1) everywhere)
19:20:15filwiti plan on making three new color schemes: CottonCandy (the colors from my Kate), MonoNim? (stolen from MonoDev's new C# dark-theme.. it's pretty), and NimStudios? (classic visual-studios colors)
19:20:53filwitbut if you have a request or color suggestion, place them now!
19:21:30filwiti was thinking about making a "Coffee" flavor too.. but i need to find a good reference
19:21:34VarriountAraq, where is the 'state' field? I changed the isInnerProc to deal with inner closure iterators correctly, however I'm now getting an error about parameter "env" not being initialized.
19:21:36EXetoCvim-hybrid and solarized maybe
19:21:48filwitisn't solarized already there?
19:21:59filwiti'll look up vim-hybrid
19:22:39filwithmm... vim-hybrid is pretty, but looks a lot like the MonoDev dark-colors
19:23:31EXetoCok
19:25:14dom96copy some of the pygments styles
19:25:35filwitmy reg-ex are pretty cool actually.. i have one that colors anythingFollowedBy( backets ) as unique, also "a THIS b" is colored like if/else/etc.. and "yourMacro ...:" is colored like type/var/etc
19:25:45filwitpygments? i'll look it up
19:26:37filwitpygment already export Nimrod lang files?
19:26:50dom96hrm?
19:27:06filwithttp://pygments.org/
19:27:10dom96pygments is a syntax highlighter.
19:27:15filwitahh... nevermind
19:27:35filwitthought it made a common color file or something
19:28:12filwitwhere are their styles though?
19:28:40dom96https://github.com/richleland/pygments-css
19:29:39dom96my blog uses monokai IIRC
19:30:01filwityeah that one was nice
19:30:21EXetoC"$#\n#$\n#$\n#$" % [$o.x, $o.y, $o.z, $o.p] # strutils.nim(1108) invalidFormatString
19:30:25EXetoChm
19:31:28dom96It's $# not #$.
19:31:54EXetoC-.-
19:32:17EXetoCvim yank fail
19:33:05filwitthe only thing i don't know how to do in .lang files is highlight the proc/type/etc names..
19:34:35dom96they are already highlighted as keywords
19:34:38filwitin my screenshot: http://reign-studios.net/philipwitte/screenshots/arch-win-mac2.png you can see that 'runGame' is very distinct (like github)
19:35:13filwitthat's really nice when browsing a lot of code (since it's one of the most important separations
19:35:30dom96oh I see.
19:35:39filwitthe problem is regex is always forward, not backwards
19:35:54filwiti can't say "highlight this word after 'proc '"
19:35:57dom96you could use a lookbehind maybe
19:36:08filwiti can only say "highlight this word if it's followed by ...", etc
19:36:20filwitwhat's a lookbehind?
19:36:33filwiti mean, is that regex or .lang specific?
19:36:51dom96regex
19:37:08filwitin the Kate one, i start a new context when 'proc' is found, then highlight the next word, then break
19:37:20filwiti don't know how to set that up in .lang, though i'm sure it's possible
19:37:28*olahol joined #nimrod
19:37:50*Varriount wants a PEG to Regex translator
19:38:24filwiti never learned exactly what PEG was
19:38:34filwitthese things rarely effect my work
19:38:35VarriountParsing Expression Grammer
19:38:42filwitwell i know that much...
19:38:59filwitit's just a different kind of regex?
19:39:22VarriountA parsing language much more suited for the parsing of contextual formats, such as programing languages
19:40:14VarriountOr an EBNF to Regex translator, that would be fine too.
19:40:55dom96filwit: Something like: (?<=proc\s).+
19:41:09filwitwoah...
19:41:22filwit?<= is real regex?
19:41:42dom96Yeah, but i'm not sure if everything supports it.
19:41:56filwiti've been looking at MSDN for reference (web stuff), i guess i'll try it
19:42:23filwitthat's really useful if it works
19:42:29dom96this is really good btw: http://regex101.com/
19:42:48filwitthanks
19:43:39*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:46:07filwitnot sure it works...
19:47:15filwitgtksourceview is having issues with it
19:47:16filwitdamn
19:49:25fowlproc\s([^*\[]+)
19:49:59filwitthe problem fowl, is that 'proc' will get highlighted with that
19:50:14filwitactually.... that could work...
19:50:37filwiti could just re-highlight 'proc' afterwards (by adjusting the regex order)
19:50:59Varriount^ Why I hate that editors use regex for highlighting
19:53:45fowlfilwit, there are captures in the .lang, why should it highlight proc if its not captured
19:53:46dom96what should they use?
19:54:22dom96indeed, you can probably select the capture group.
19:54:57filwitfowl: i'm not that experienced with .lang stuff. How do i distinguish what get's captured and what doesn't?
19:59:29filwitbtw, is there a reason varargs is written with '?' like this: (v_?a_?r_?a_?r_?g_?s_?) instead of '_*' like every other keyword?
20:00:02filwitis there some special rule where varargs can only have single underscores in Nimrod? or is this a bug?
20:01:16dom96oh, I changed that.
20:01:23dom96Because actually _* is incorrect :P
20:01:31filwithow so?
20:01:35filwit* means 0 or more times
20:01:47filwit? means 1 or 0 times
20:01:55dom96You can't have multiple consecutive underscores or else the compiler will complain.
20:02:15filwitah, okay, so everything should be _?
20:02:20dom96ya
20:02:21filwiti didn't know that about Nimrod either
20:02:26filwitk, will fix
20:03:07VarriountAlso, you can't have an identifier that starts with an underscore.
20:03:32fowlfilwit, () is a capture group
20:03:58filwitfowl: yeah i know, but that's now how the .lang files work
20:04:25filwiti have <match> and <keyword>, both which match their entire reqex contents
20:05:35filwitso i can't say "proc\s+(\w+)" match $0... at least i don't know how to if it's possible
20:06:10filwitmaybe there's some xml attribute i can tag on which isolates the highlighting to a single capture group, idk
20:20:03fowlfilwit, well there must be some reason the keywords use (A|a) instead of [Aa]
20:20:44filwit?
20:20:59fowl() is capture, [] is a character search
20:21:12filwitwell those are different when you add '*' to the end
20:21:19filwiti think...
20:21:35filwitmaybe not actually
20:21:58filwit(\w\.|\S\b.)*
20:22:02filwitfor instance
20:22:39filwitthe problem with trying that with [] is that [] removes special characters (again, not an expert here)
20:22:39fowlthats just a bunch of matches
20:23:00filwitno, it's two match, separated by the |
20:23:37filwitbut in [], all the '\' chacters, etc, don't do anything special (it literally matches '\')
20:23:40filwitcharacters*
20:24:02filwitthat's the difference between the two i think
20:24:11fowlfilwit, not usually
20:24:18fowlyou still need \\ for \ instide []
20:24:39filwityeah, but i don't think that applies to everything
20:24:49filwitat least not on some versions of regex?
20:25:29filwitidk, i'll have to try later. either way, they're basically the same thing
20:26:42fowllol
20:27:48dom96the | means 'or'
20:27:56dom96so match capital A or match small a.
20:31:04filwitg'damnit .lang.. y u so difficult!?
20:31:59dom96maybe try asking in GIMPNet/#gedit
20:32:17filwityeah good point
20:44:05filwitno one is active on #gedit...
20:46:44dom96patience :P
20:47:18filwityeah..
20:47:26filwit#nimrod has more people than #gedit
20:47:31dom96but actually it is pretty quiet in there
20:47:48dom96well, last message was an hour ago
20:47:51dom96so it's not that bad
20:48:44filwitoh well, i can always start making the colors and come back to this
20:56:18VarriountAraq, ping
20:56:40Araqpong
20:57:09VarriountAraq, why would the compiler complain about "env" being an uninitialized parameter?
20:57:43VarriountI mean, what normally initializes the env parameter for closures in the first place?
20:57:51Araqdunno, that means you did something wrong
20:58:39VarriountAll I did was change isInnerProc to report true for iterator's with closure calling conventions.
21:25:44*DAddYE joined #nimrod
21:28:35*Hannibal_Smith quit (Quit: Sto andando via)
21:36:15*Jackneill quit (Remote host closed the connection)
21:46:38*mkb quit (Remote host closed the connection)
21:59:24VarriountAraq, I see what you mean by lambdalifting being "fun"
21:59:33*ics joined #nimrod
21:59:44VarriountHow many painkillers did you go through while writing this stuff?
22:00:19Araqiirc I had holidays
22:00:40Araqand obviously writing lambda lifting algorithms is what I do for fun
22:02:12VarriountI just wish I had an easy way to print the data structures the compiler uses. I can use debug for some of the nodes, but that doesn't print everything, and won't work for structures that merely contain some nodes.
22:03:29Araqast.nim contains almost everything important
22:07:02VarriountAraq, any way to get gdb to actually print out nimrod data structures, instead of just pointers?
22:07:25Araqwell I use 'debug'
22:07:54VarriountThat doesn't work for environment structures. :/
22:08:00Araqyou can try 'repr' for arbitrary structures
22:08:42VarriountAraq, the problem with repr is that if *any* of those arbitrary structures contain a node, things hang.
22:09:06VarriountThough, I'll try, thanks for the tip.
22:09:47Araqreally? interesting
22:10:14AraqI guess we need a recursion limit for 'repr'
22:11:52*BitPuffin quit (Ping timeout: 264 seconds)
22:40:24*brson joined #nimrod
22:40:24*brson quit (Client Quit)
22:41:32*brson joined #nimrod
22:46:03*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
22:46:09VarriountAraq, under what circumstances would an inner procedure have two environment variables?
22:46:35VarriountOr rather, an inner iterator procedure.
22:47:11Araqwell if the code that adds the 'env' doesn't check whether an 'env' already exists
22:48:48*xenagi joined #nimrod
23:23:44*CarpNet quit (Quit: Leaving)
23:34:16*apotheon joined #nimrod
23:34:16*apotheon quit (Changing host)
23:34:16*apotheon joined #nimrod
23:37:01*xenagi quit (Read error: Connection reset by peer)
23:38:38*apotheon quit (Client Quit)
23:38:58*apotheon joined #nimrod
23:39:03*apotheon quit (Changing host)
23:39:03*apotheon joined #nimrod
23:40:05*apotheon quit (Client Quit)
23:40:23*apotheon joined #nimrod
23:40:23*apotheon quit (Changing host)
23:40:23*apotheon joined #nimrod
23:45:11*apotheon quit (Client Quit)
23:45:29*apotheon joined #nimrod
23:45:29*apotheon quit (Changing host)
23:45:29*apotheon joined #nimrod
23:57:18VarriountAraq, currently, where/what is the environment for closure iterators? Is it the contexts, or what?
23:58:09VarriountI have only a faint idea on which structures need to be merged for inner-closure iterators.