00:03:51 | Araq | good night |
00:05:52 | * | tinAndi quit (Quit: ChatZilla 0.9.90.1 [Firefox 27.0.1/20140212131424]) |
00:06:15 | * | Puffin quit (Quit: WeeChat 0.4.3) |
00:06:34 | * | BitPuffin joined #nimrod |
00:12:34 | * | darkf joined #nimrod |
00:19:19 | * | EXetoC1 joined #nimrod |
00:21:14 | * | EXetoC quit (Ping timeout: 264 seconds) |
00:25:11 | * | nequitansMobile joined #nimrod |
00:31:56 | * | skyfex quit (Quit: Computer has gone to sleep.) |
00:43:36 | * | nequitansMobile quit (Ping timeout: 240 seconds) |
00:49:12 | * | EXetoC1 is now known as EXetoC |
00:49:13 | * | icebattle quit (Quit: leaving) |
01:14:52 | * | io2 quit () |
01:26:31 | * | nequitans_ joined #nimrod |
01:27:14 | nequitans_ | Ah, Araq, I fixed the indexing issue (thanks), but that wasn't the cause of the slowdown. Your guess about the random number generator appears to be the cause |
01:42:48 | * | Matthias247_ quit (Read error: Connection reset by peer) |
01:46:21 | * | DAddYE quit (Remote host closed the connection) |
01:46:37 | * | zielmicha quit (Quit: Connection closed for inactivity) |
02:32:55 | * | XAMPP-8 joined #nimrod |
02:34:25 | * | XAMPP-8 quit (Client Quit) |
02:38:52 | * | nande quit (Remote host closed the connection) |
03:00:16 | * | Tyler__ quit (Quit: Leaving) |
03:08:52 | * | xtagon joined #nimrod |
03:16:33 | * | DAddYE joined #nimrod |
04:09:57 | * | q66 joined #nimrod |
04:19:05 | * | skrylar joined #nimrod |
04:19:06 | * | skrylar peeks in for a moment |
04:19:57 | skrylar | Araq: so what was the final verdict on --cs:partial; are we losing the neat style-insensitivity or has forcing a naming style become a failed experiment? |
04:21:55 | * | comex_ is now known as comex |
04:23:12 | Demos_ | I think araq is asleep |
04:26:44 | skrylar | i'll just have to send dream ghosts to haunt |
04:27:05 | * | filwit joined #nimrod |
04:27:54 | filwit | skrylar: i think removing the T/P prefix would be best for adoption |
04:28:01 | filwit | (just read the logs) |
04:28:38 | filwit | besides, local variables should not be named ambiguous things like "file" anyways. |
04:29:14 | Discoloda | that is what originally made me ignore Nimrod, case insensitive identifiers (why, i imagine, T/P became convention) |
04:29:15 | filwit | so: var prefsFile = File.open("..") shouldn't cause naming conflicts, case-sensitive or not |
04:30:02 | filwit | (not really valid code, but you get the idea) |
04:30:56 | filwit | Discolada, yeah the Hungarian notation was always a sore spot for me, but i really like the case-insensitivity (though it probably does cause some conflits |
04:31:53 | filwit | still, the compiler should be able to figure this out: var file: File; open(file, "...") # because this overload doesn't take a typedesc, it implicitly accepts the local var |
04:32:02 | Discoloda | i guess my C code is worse, i dont use typedefs for structs so i end up with "struct foo" everywhere |
04:32:35 | filwit | Discolada, I've seen a lot of major C project do the same though (wayland for instance), not sure why |
04:33:14 | Discoloda | i feel its more explicit and uses the struct/union namespace for those types |
04:35:17 | filwit | brb |
04:38:50 | filwit | Ultimately I never really saw the point of T/P prefixes to begin with. It seems to be a left-over from when Nimrod didn't have 'type T = ref object' and you had to make a seperate alias (PFoo = ref TFoo) for everything |
04:39:09 | skrylar | Discoloda: what made you eventually decide to un-ignore nimrod? |
04:39:32 | skrylar | filwit: i actually like pascal type names, but it's not something i'm going to riot over or anything. |
04:39:34 | Discoloda | c2nim |
04:40:12 | skrylar | there's a lot of C/C++ code that has "CThisClass", enums have hungarian notation "e.g. ThisEnum = teDoAThing" so its not exactly unheard of |
04:40:34 | filwit | skrylar: yeah i saw your forum post |
04:40:49 | skrylar | Qt names everything QBlah and also notates enum flags |
04:41:12 | filwit | skrylar: i don't see the point of a prefix at all unless you have a global (and i have a better idea for that anyways) |
04:41:26 | skrylar | Discoloda: sounds like nimrod is full of those weird things that look like dealbreakers at first and then you come back two weeks later and realize they aren't, lol. For me it was the C compilation step |
04:41:35 | skrylar | filwit: for enums or for type names? |
04:41:35 | filwit | skrylar: "global" means "singleton" |
04:41:45 | filwit | skrylar: both? |
04:41:51 | Discoloda | the c compilation is also what brought me back |
04:42:16 | skrylar | i thought the point of prefixing enums was so you could write taJustified instead of JustifiedTextAlignment or TextAlignment.Justified everywhere |
04:42:39 | filwit | i prefer the latter really |
04:42:53 | skrylar | Haskell's algebraic types lead to that awful JustifiedTextAlignment style of naming too |
04:43:32 | filwit | are you really typing TextAlignment.Justify so often that it becomes a chore? |
04:43:33 | skrylar | but i'm an old pascal/delphi derp, so i tend not to mind pascalisms |
04:43:53 | skrylar | filwit: depends on if i'm using an awesome text editor or not |
04:44:05 | filwit | plus, this problem disapeers when you have intellisense/code-complete |
04:44:13 | skrylar | I didn't mind as much with Sublime's fuzzy text complete, but its a chore in everything else (e.g. vim) |
04:45:04 | filwit | meh, I use Kate at the moment but am used to Visual Studios. Both basically means i start typing three characters then hit tab most of the time |
04:45:07 | skrylar | It also looks stupid when you have to type ThisEnum.DoAThing | ThisEnum.DoAnotherThing when you're composing a set of obviously the same enum type |
04:45:37 | skrylar | eh, i use Ctrl-P in vim which does that but sublime does one better |
04:45:48 | filwit | well that's why you can just use DoAThing | DoAnotherThing unless there's a conflict |
04:46:07 | skrylar | it uses a fuzzy match instead of a prefix match, so you can type "sfm<tab>" and it will go "Oh, SuperFlippingMachine" |
04:46:57 | filwit | honestly, what the compiler should do as far as naming resolution is this: if the function takes an enum, you don't need to prefix the enum name and it doesn't conflict with local names when they're of non-acceptable types |
04:47:20 | skrylar | doesn't that add extra symbol table and scoping rules though? |
04:47:42 | skrylar | one of the pascalisms is to avoid symbol table lookups because they exponentially slow the compilation of huge codebases |
04:47:48 | filwit | so if you have: var justify = 10; foo(Justify) # take TextAlign enum - no conflict since local is type int |
04:48:26 | filwit | skrylar: you could be right, i'm not sure. I haven't really thought about the performance implications.. but honestly i would accept a slower compiler for this kind of thing |
04:48:38 | skrylar | slower compilers have to be accepted very carefully |
04:49:00 | filwit | true, but i doubt it would be a huge deal unless you had a shit-ton of name conflicts? |
04:49:07 | skrylar | specifically what we all *don't* want is a "well lets put this in for that feature, now lets tie everything in to it since we already have it" and then the compiler becomes C++0x |
04:49:35 | skrylar | i'm not objecting to it intelligently solving the name conflicts btw |
04:49:59 | filwit | plus, i really don't see how that would slow things down... it just looks at the proc overloads and says: if this takes an enum, resolve to that enum type |
04:50:17 | filwit | otherwise it looks for locals |
04:50:32 | skrylar | i have no idea how the AST passes run though i should probably look some time |
04:50:42 | skrylar | i know macros don't get access to certain type information from parameters |
04:51:37 | skrylar | having an enum value the same identifier as a structure or function name could confuse what "let x = Foobar" means |
04:52:05 | skrylar | (admittetly other languages already solve that by just saying its ambiguous and listing off the potential matches) |
04:52:22 | filwit | the only area i ever need to use 'TFoo' is if i have a type that's design to be a singleton.. and that could be resolved if Nimrod eventually adds "type Foo {.global.} # creates singleton and all access is to the global var not typename" |
04:52:49 | skrylar | I don't think thats something you would need compiler help for |
04:53:00 | skrylar | that sounds like something a regular macro could do |
04:53:07 | filwit | yeah, good point |
04:53:22 | Demos_ | I like T/P prefixes |
04:53:25 | skrylar | if a regular macro can't do that, it *should* be able to |
04:53:34 | filwit | plus it's not a huge deal to just make "TFoo; var Foo*: TFoo" |
04:53:34 | Demos_ | although I don't see what is so bad about ref TBlah |
04:53:51 | Demos_ | also I dont like the ref object syntax, since it limits what people can do with the object |
04:54:05 | filwit | Demos_, how does it limit? |
04:54:19 | skrylar | Demos_: that goes back to a pascal-ism where pointer types had to be typedef'd because it allowed the compiler to sweep everything in one-pass with simpler grammar |
04:54:19 | Demos_ | it enforces refernce semantics |
04:54:21 | filwit | i'm pretty sure you can get the non-ref type |
04:54:26 | filwit | i just can't remember how |
04:54:53 | skrylar | you can do a much simpler grammar if you only need to accept an identifier |
04:55:08 | skrylar | which is the legacy of PFoo |
04:55:12 | Demos_ | still, I really dont mind the prefixes |
04:55:30 | skrylar | I don't either, but its not really up to me. lol |
04:55:40 | filwit | Demos_: the biggest problem with the T/P thing is adoption concern. I mean most people can "live" with it, but they're not going to move away from "language X" for something they feel is straight out of the 80s (not my words) |
04:55:46 | Demos_ | I dont understand why people have their panties in a bunch |
04:55:56 | Demos_ | oh dear god |
04:55:58 | skrylar | filwit: if thats the only reason, i don't think its legitimate |
04:56:10 | Demos_ | "the syntax is not C so it must be slow" |
04:56:21 | skrylar | Once you're so far outside of C syntax, changing one tiny thing isn't going to make them go "oh well i've changed my mind then!" |
04:56:38 | filwit | skrylar: i think it's very ligament if Nimrod hopes to gain popularity and eventually be funded somehow |
04:56:47 | Demos_ | these are the people who are going to bitch about every way in which nimrod is different from java |
04:57:02 | skrylar | filwit: but D is a C-like and doesn't have commercial support either |
04:57:16 | Demos_ | skrylar, well...erm...facebook |
04:57:20 | Demos_ | a little |
04:57:26 | filwit | skrylar: D actually offers commercial support now |
04:57:37 | skrylar | outside of digital mars? |
04:58:04 | filwit | not sure if anyone pays for it or not, but Remedy games is hireing D devs.. so.. |
04:58:25 | Demos_ | interestingly I found nimrod really easy to pick up dispite never having used another language with a similar syntax |
04:58:40 | skrylar | I'm not an expert on language marketing, but I'm still fairly sure people make their decisions on tooling support more than whether there is a T prefix |
04:58:46 | filwit | skrylar: i'm not sure what you mean by "outside digital mars" you mean DMD? |
04:59:05 | skrylar | i remember araq posting about Delphi still being marked as the 17-th most used language or something |
04:59:43 | Demos_ | well delphi was kinda killed by having too much commercial support right? |
04:59:47 | filwit | skrylar: of course there are many reasons people use one language over the next. The point is what is statistically the best option. |
04:59:54 | skrylar | Demos_: Delphi compilers are bumfooz expensive |
05:00:18 | skrylar | even back in delphi 5 days they wanted a few thousand for a single developer |
05:00:23 | filwit | skrylar: I'm very unfamiliar with the Delphi/Pascal world, so i can't really comment |
05:01:14 | skrylar | filwit: 'statistically the best' is how you get to live with C++ :P |
05:01:40 | filwit | all I'm saying is this: statistically speaking, we would *probably* get more interest if we removed the T/P thing, right? And then you folks could still use it if you wanted too.. so it's a win-win |
05:01:43 | Demos_ | christ over $4,000 for delphi |
05:02:10 | skrylar | filwit: we really couldn't; it would schism from the standard library |
05:02:23 | Demos_ | we probably will not get more intrest by doing that but whatever, Also, I want to point out that it is useful in documentation browsing |
05:02:28 | filwit | skrylar: no, i don't just mean pure democracy. I'm not saying lets just take a poll and do whatever that leads too. I'm saying it's relevant tho |
05:03:03 | skrylar | filwit: yeah but that same argument could say why are 2x spaces the compilers indent marker? |
05:03:10 | skrylar | we could get more interest if we supported tabulators |
05:03:11 | skrylar | etc |
05:03:46 | filwit | skrylar: accept that has demonstrably negative implications, while removing T/P just means more adoption |
05:03:53 | Demos_ | I thought it was just alignment, if you want to use 4x spaces you can afaik |
05:04:11 | skrylar | as I said the other night, you need a 'killer app' and then it doesn't matter what decisions you made along the way |
05:04:26 | skrylar | Ruby is dog slow and always has been, kind of quirky in many ways, and 37signals made everyone stop caring |
05:04:26 | filwit | skrylar: completely agree with that |
05:04:26 | Demos_ | right, except that T/P helps when you are style-insensitive, which I personally like |
05:04:49 | Demos_ | what was c++'s killer app? |
05:04:55 | skrylar | the thing with Matz is he never sat and said "What would make my language more appealing to C coders?", he's said up front "I wrote this to make it fun to use" |
05:05:07 | filwit | Demos_, it doesn't actually help with case-insensitive though |
05:05:10 | skrylar | Demos_: C++'s benefit was that it stacked on to C |
05:05:31 | skrylar | the alternative was Objective-C, but the two guys who made Obj-C wanted extortionate fees |
05:06:35 | skrylar | (I don't actually have a super-strong lamentation about dropping T/P, I just don't think that people are choosing against Nimrod because of syntax. I mean people are choosing Rust and the syntax is godawful for that.) |
05:06:58 | skrylar | They didn't even consider what looked like code, they just slapped a parser over text and went "welp it works lets keep it" |
05:07:42 | filwit | skrylar: i almost passed up Nimrod because of this sort of thing, and I've met a bunch of people who have complained about it a ton. The only people who seem to like it don't really care either way, so we should just remove it and everyone is pretty happy :P |
05:07:57 | skrylar | filwit: as long as i get to keep my style insensitive parser |
05:08:26 | filwit | skrylar: agree there. I always liked the case-insensitive thing Nimrod's got going on |
05:08:42 | filwit | it means everyone can agree-to-disagree |
05:08:47 | Demos_ | I will probably keep using T/P prefixes |
05:08:48 | filwit | :P |
05:08:50 | xtagon | What's the benefit of style insensitive parsing anyways? Do people commonly typo their capitalization? |
05:08:57 | Demos_ | also, lets remember that C coders are used to this sort of thing |
05:09:00 | skrylar | xtagon: it removes the argument over style |
05:09:01 | Demos_ | namespaces and whatnot |
05:09:27 | filwit | xtagon: if i really like camelCase but you really like snake_case you can use my lib how you like |
05:09:30 | Demos_ | and I find it nice to be able to just type the funciton name without looking up capitalization in the docs |
05:09:36 | xtagon | Ah |
05:09:47 | skrylar | xtagon: basically, people can scream blue in the face over "official styles" but nobody cares; thats a "me vs you" opinion argument. If the compiler is style insensitive, then it simply *does not matter* and so we can do work instead. |
05:10:17 | filwit | ^ exactly |
05:10:23 | skrylar | And yes, there is also the benefit that six different libraries will look the way *you* want to use them, instead of the miniature hell of "SDL_SemiCaps(ftdothings())" |
05:10:24 | Demos_ | I really just want generics to work correctly |
05:10:40 | Demos_ | or rather I want a definition of "working correctly" and then I want that |
05:10:50 | skrylar | lol |
05:10:51 | filwit | plus it makes things more care-free in terms of compiler mistakes (accept that Nimrod also it very touchy in other areas like comment indentation) |
05:11:06 | skrylar | there is at least a good reason for that; it lets comments be used for things |
05:11:37 | skrylar | all though elastic tabstop would be pretty cool too |
05:11:43 | filwit | skrylar: i think it should be optional, and off by default |
05:11:49 | Demos_ | essentially I think that nimrod does things so differently (dare I say correctly) that people who are really used to the way C/C++ does things will be spooked |
05:11:59 | skrylar | filwit: off by default just brings back the arguments |
05:12:03 | xtagon | I'd love to be able to use tabulators for indentation. But I doubt anybody cares or feels the same way |
05:12:15 | Demos_ | there is a very good reason for disallowing tabs |
05:12:28 | Demos_ | if you accedently mix tabs and spaces it creates hell |
05:12:47 | filwit | skrylar: well the biggest (and only) problem is IDE adoption. Most text-editors aren't going to know exactly where to place the '#' unless they understand the AST |
05:12:55 | skrylar | Demos_: moonscript solved that by defining what a tab means to the compiler and documenting it; but that's just a style&tool argument again |
05:13:02 | xtagon | I've never accidentally mixed tabs and spaces. Makefiles use tabs for indentation and I've never had an issue with them |
05:13:02 | filwit | skrylar: i use Kate, but can't use block-comment/uncomment because of this |
05:13:02 | skrylar | Demos_: but thats not what an elastic tabstop does anyway |
05:13:34 | skrylar | elastic tabstop is a neat concept that basically uses a character as an indendation marker, then it automatically aligns those markers up in the renderer |
05:13:51 | filwit | xtagon: mixing tabs and spaces is a very bad idea with white-space-significant code |
05:13:52 | skrylar | so you get the option to set indent level without borking text alignment |
05:14:00 | skrylar | but this requires tool support |
05:14:03 | Demos_ | liek '&' in LaTeX's align envirenment |
05:14:42 | Demos_ | I am impressed with nimlime and VisualNimrod is coming along again |
05:15:07 | filwit | Demos_: there's a VS plugin in the works? |
05:15:32 | skrylar | I think a decent nimrod IDE that supported elastic tabstop, the style-insensitive parser and integrating nimrod pretty would lead to a pretty argument-free environment |
05:15:42 | filwit | Demos_, if so, that's awesome (though i would much prefer to see a cross-platform IDE like MonoDev supported over VS) |
05:15:43 | skrylar | that was basically what the SCID concept was meant to do |
05:16:06 | Demos_ | yeah it supports highlighting, building, and project navigation |
05:16:19 | filwit | Demos_, that said, VS support would probably go much further than MonoDev support in terms of gaining attention |
05:16:21 | Demos_ | should have completion by the end of the week (I hope) |
05:16:38 | filwit | Demos_, nice man, good work! |
05:17:01 | * | r0b1 quit (Ping timeout: 264 seconds) |
05:17:09 | skrylar | anyhows, i should get back to reinstalling windows on this machine; ubuntu has given me too many migraines lol |
05:17:27 | filwit | that's cause Ubuntu :P |
05:17:33 | filwit | use Manjaro |
05:17:35 | skrylar | yeah i used to use mint |
05:17:41 | xtagon | When GNU/Linux gives you migrains, just try another distro ;) |
05:17:45 | Demos_ | yeah I started it a few months ago and it has been kinda on hold with classes. The VS plugin API makes me want to stab myself with a rusty spork |
05:17:50 | skrylar | But the fact that you have to play whack-a-distro is one of the primary failures of linux |
05:17:52 | filwit | Mint is not much better, unless you use Mint Debian |
05:17:59 | filwit | i can't stand non-rolling distros |
05:18:12 | xtagon | I consider the fact that I get to play whack-a-distro until I find one I like a feature of Linux |
05:18:20 | Demos_ | yeah I installed ubuntu and it was crashing and panicing everywhere, went back to arch |
05:18:32 | filwit | skrylar: yeah the many distro game is a problem, but it's getting better really |
05:18:45 | Demos_ | you could use a *BSD |
05:18:47 | skrylar | I kinda like how the BSDs take responsibility over their system and you can safely say "I use FreeBSD" or "FreeBSD has this problem" without people getting in to the whole "NO NO THIS IS JUST THE KERNEL" b.s. |
05:18:51 | filwit | skrylar: but if you like Windows, by all means use it. I would just dual-boot though for testing |
05:19:21 | skrylar | filwit: i actually don't like windows, but the tools i need just aren't here on nix |
05:19:27 | Demos_ | I /really/ want windows to support booting off something like btrfs or zfs. Never gunna happen thouhg |
05:19:41 | filwit | skrylar: accept that BSD is quickly becoming the same thing as Linux in that regard. It's all about popularity and open-source that causes "fragmentation" |
05:19:53 | skrylar | I mentioned doing audio work a while back, and linux is about on par with studio software 20 years ago. lol |
05:20:16 | filwit | skrylar: interesting. all my best tools are Linux things these days |
05:20:39 | skrylar | filwit: i haven't found a good non-orgmode outliner, and most of the audio softsynths i ran in to were poorly built |
05:20:43 | filwit | skrylar: but mostly because i chose to migrate to linux awhile ago and haven't used Windows in awhile |
05:20:58 | filwit | (beyond VS and Unity3D that is) |
05:21:17 | skrylar | i actually still miss my OSX; but eh. |
05:21:27 | filwit | skrylar: i don't even know what a non-orgmode outler or audio softsynths is.. lol |
05:21:44 | skrylar | filwit: outliners are for organizing / heavy writing |
05:22:05 | filwit | skrylar: have you used KDE and KAuthor? |
05:22:18 | skrylar | filwit: and a softsynth is kind of like a computer version of a guitar/piano |
05:23:18 | skrylar | filwit: KDE yes, KAuthor no |
05:23:53 | filwit | skrylar: my main tools, besides coding, are art tools, and I switched to FOSS awhile ago and haven't needed to look back. Blender/Gimp/Inkscape/Krita all run much better on Linux than Windows, so I stay in Linux most of the time I can |
05:24:05 | skrylar | Krita is nice, I will admit |
05:24:48 | filwit | skrylar: yeah, KAuthor is for heavy authoring, not sure if it's what your looking for but it's pretty nice in terms of usability (granted i don't have much to compare it too) |
05:25:01 | filwit | skrylar: what tools do you use on Windows for these things? |
05:25:02 | skrylar | i can't even find kauthor with targeted searching |
05:25:24 | skrylar | filwit: well on my mac, i used notebook http://www.circusponies.com/ and tinderbox |
05:25:28 | skrylar | well, wanted to use tinderbox |
05:26:06 | skrylar | Notebook is vaguely Onenote with bulleted lists on steroids and a neat app skin to look like a book |
05:26:09 | filwit | wait.. so you want a fancy notepad program? |
05:26:30 | filwit | why not use Google docs and stuff? |
05:26:34 | Demos_ | my advice is to get a paper notepad |
05:26:40 | filwit | ^ lol |
05:26:40 | Demos_ | nothing like actually writing stuff down |
05:26:46 | Demos_ | seriously |
05:26:48 | skrylar | bleh, i hate handwriting :) |
05:27:36 | filwit | i can understand switch OSes for the sound tools, but a notepad program? there's got to be something on Linux that is basically good enough unless you're really picky about features |
05:27:57 | filwit | what about the Benjin program or whatever it's called? |
05:28:13 | skrylar | never heard of it |
05:28:13 | filwit | I'm on Windows right now, or i would look through my KDE programs |
05:28:21 | filwit | let me look it up |
05:28:41 | skrylar | But yeah, 300$ of audio software is my present motivation to switch the computer back over |
05:28:58 | skrylar | especially after spending a good six months demoing linux options |
05:29:26 | skrylar | with great hits like qtractor deciding i don't actually need those MIDI notes to get recorded when i ask it to. haha |
05:29:29 | filwit | skrylar: http://worldofgnome.org/bijiben-3-11-5-and-owncloud/ |
05:29:54 | Demos_ | YES! I just figured how the fuck to get a reference to the active project in VS |
05:30:03 | Demos_ | jesus christ that was harder than it should have been |
05:30:15 | Demos_ | two casts and the use of an internal object |
05:30:23 | filwit | skrylar: yeah if you have a lot of audio windows-only tools you should probably use that. Still i would recommend dual-booting |
05:30:28 | filwit | Demos_: nice! |
05:30:47 | skrylar | i might set up a dual boot again some time later |
05:30:52 | filwit | Demos_: ps. no idea what you just figured out, but good job! |
05:30:54 | filwit | lol |
05:30:57 | Demos_ | skrylar, you could run windows in KVM |
05:31:01 | skrylar | what i've been doing so far is one computer was dedicated ubuntu and the other is dedicated windows |
05:31:06 | * | q66 quit (Quit: Leaving) |
05:31:26 | filwit | skrylar: dual-boot is really good for benchmarking different OSes |
05:31:51 | skrylar | i did actually write a book in linux using wine for quite a while |
05:32:01 | filwit | skrylar: you wrote a book? |
05:32:10 | skrylar | i did |
05:32:13 | skrylar | nanowrimo 2013 |
05:32:13 | filwit | skrylar: i'm a bit book-worm :) |
05:32:17 | filwit | big* |
05:32:28 | skrylar | i was one of those scrivener derps for a while |
05:32:37 | Demos_ | skrylar, you should write a book on nimrod once 1.0 comes out! |
05:33:09 | filwit | skrylar: mind if i ask what book you wrote? |
05:33:20 | skrylar | filwit: it was never published |
05:33:26 | filwit | ah, too bad :( |
05:33:30 | skrylar | i should still have it around to clean up as a PDF |
05:33:45 | filwit | what genre ? |
05:33:53 | filwit | i'm a fantasy/scifi guy |
05:33:55 | skrylar | fantasy/fiction |
05:33:58 | filwit | nice |
05:34:11 | filwit | i've always wanted to write a book.. but never have the time |
05:34:39 | skrylar | It really sucks when you decide to do it in a month and then realize the only thing you have to go on is the vague idea of something you did before |
05:35:30 | filwit | yeah you probably have to be pretty dedicated. I really love Brandon Sandersons work, and he's a machine with writing (like 5+ books a year) |
05:35:47 | skrylar | Then you find out, most people actually spend all year developing characters and outlining the story instead of just going "I WILL DO IT ALL NOW" xD |
05:36:14 | * | Demos_ quit (Read error: Connection reset by peer) |
05:37:05 | filwit | yeah. i've read a lot of novel (100+) and can narrow down my favorites to a consistent story-arch graph almost, haha |
05:37:25 | skrylar | theres a website about the snowflake method which goes over the 'correct formula' for fiction |
05:37:44 | filwit | i've often thought that if I ever wrote a book, i would just plot the story events along that graph and i'd have a best-seller haha |
05:38:10 | skrylar | there's cool stuff like Aeon Timeline that helps with that; it makes these pretty timelines and tracks events you throw in it |
05:38:14 | skrylar | I ended up not using it at all though |
05:39:51 | filwit | novels are probably like indi-games.. lot of competition and hard to actually get reconized |
05:40:32 | skrylar | just have to finish them, really; then go bother tons of agents until you get one that wants it |
05:40:40 | filwit | though idk, I've gotten some of those free-amazon books for kicks-n-giggles before, and they're always pretty lame (accept Emperors Edge, that was excellent) |
05:40:49 | skrylar | but i don't want to be a professional author, and they recommend writing several books in a row because it will take years to get the first one published |
05:41:09 | filwit | you can self-publish on Amazon now |
05:41:17 | skrylar | just because you can doesn't mean you should, lol |
05:41:35 | * | Demos joined #nimrod |
05:41:37 | Varriount|Mobile | I dream of writing a fiction novel one day... |
05:41:37 | skrylar | i remember seeing this one horrible book sample on amazon that was like |
05:41:56 | filwit | yeah seriously... some of those books i got off self-published amazon i couldn't make it a 5th way through they where so damn lame |
05:42:09 | skrylar | "due to political reasons we are unable to reproduce so i have come back from the future and we have decided to sex everyone up here for great glory" or some equally cringe-worthy "... wut?" |
05:42:18 | skrylar | yay crap-fi \o/ |
05:42:34 | filwit | lol |
05:43:09 | skrylar | someone was trying to get me to write this one dream out as a book, which involved the planet's orbit stopping and so they built a huge axle to make it spin manually, until some cult decided to terrorize the world axle |
05:43:26 | filwit | i found this really good book series on there once (Emperors Edge) and ever since them I try the highest rated freebies out now and then... i don't even know why though.. they're all horrible.. |
05:44:15 | filwit | skrylar: lol wut.. that sounds either very un-scientific or a very cool alien twist |
05:44:28 | Varriount|Mobile | The hope for finding the diamond in the dross |
05:44:42 | filwit | dross? |
05:45:05 | Varriount|Mobile | Term for junk found during mining. |
05:45:35 | Varriount|Mobile | Specifically metallic ores, iirc |
05:45:36 | filwit | (ps, we're completely spaming #nimrod right now... Araq's gunna be anoyed when he ways up trying to read the back-log, lol, sorry man ;P ) |
05:45:37 | skrylar | filwit: steampunk physics in dreams \o/ |
05:45:57 | skrylar | filwit: just git-rebase it all in to the offtopic channel that was never sanctioned lol |
05:46:22 | fowl | whatsw steampunk physics |
05:47:00 | Varriount|Mobile | I deal with sketchy physics in fantasy novels by just imagining that the entire book takes place in a universe with alternate physics. |
05:48:27 | Discoloda | #nimrod-offtopic exists |
05:48:38 | filwit | i really don't like books where things are completely undefined. I always hated things like LOTR where Gandolf can randomly shoot lightning out his ass and save the day in a way you never saw coming.. |
05:48:54 | skrylar | asspull@tvtropes |
05:49:11 | filwit | Discolada: oh rly? thanks we should probably move this convo over there guys, really |
05:49:34 | skrylar | thats sort of a sad trope because the way you avoid an ass pull is to telegraph and that can get equally boring when you start calling al of the plot twists because of what they set up in advance |
05:50:04 | filwit | yeah, but if it's done cleverly it's a lot better, IMO |
05:50:22 | filwit | i really like Mistborn and Way of Kings cause they do it right |
05:50:53 | filwit | (ps, i can't figure out how to join a different channel on this crappy web IRC..) |
05:51:18 | Discoloda | . /join doesnt work? |
05:51:35 | filwit | i'm a IRC newb, didn't know you could do that |
05:51:53 | filwit | worked, thanks |
06:08:45 | Demos | wow pipelight is using 300% of my CPU |
06:09:57 | filwit | cause Wine |
06:10:14 | filwit | wait.. 300%.. how? |
06:10:20 | filwit | statistically impossible.. |
06:11:36 | Demos | cause wine |
06:16:49 | Demos | I think it does CPU decodeing of the video |
06:18:15 | xtagon | Is there a builtin proc to unshift or shift a seq? All I see in the docs is pop |
06:19:57 | Demos | I doubt it, shifting is slow |
06:23:45 | * | xtagon quit (Quit: sleeeep) |
06:24:16 | filwit | Pipelight works pretty much perfect on my machine.. but then my machine is good and i'm using Arch |
06:24:25 | filwit | Never looked at the CPU usage though |
06:24:35 | Demos | it is smooth but the cpu usage is hight |
06:28:28 | filwit | The CPU usage is tooo damn high! |
06:30:26 | Varriount|Mobile | She can't take much more o' this capt'n! |
06:31:06 | Demos | I have been trying to get primary VGA passthrough working so I can just use netflix in KVM but primary VGA passthrough is hard to do since you need to disconnect the VGA from the host before connecting it to the guest |
06:32:01 | * | BitPuffin quit (Ping timeout: 264 seconds) |
06:32:34 | Demos | turned quality to low and CPU usage went down quite a bit |
06:34:47 | filwit | how do you adjust the quality? |
06:34:59 | filwit | right-click? |
06:35:06 | filwit | (not on linux or i'd try) |
06:35:19 | Demos | in account options |
06:35:51 | filwit | k i'll look next time i reboot |
06:44:52 | Araq | seriously guys |
06:45:23 | Araq | T/P are about value vs reference based semantics. That has always been the reason. |
06:45:24 | Discoloda | Araq? |
06:45:46 | Araq | I *copied* Pascal often and changed it into something meaningful |
06:46:18 | Araq | Delphi uses 'T' for classes which have reference semantics and so Delphi's convention makes no sense. |
06:47:20 | Araq | Likewise the need for symbol forwarding stems from nimrod's macro system. |
06:47:47 | Araq | "having a fast 1 pass compiler" was not the reason to do it this way and never has been. |
06:48:04 | Araq | Nimrod uses 3-5 passes anyway. |
06:50:34 | Araq | I don't disagree it looks like straight from the 80ies in places, but you should know better in #nimrod. ;-) |
06:57:55 | Varriount|Mobile | Hi Araq! |
07:11:29 | * | DAddYE quit () |
07:12:01 | skrylar | i already removed the T/P from the skutf code on github; all though the styleinsensitivity is something i'm attached to |
07:12:32 | * | Varriount_ is now known as Varriount |
07:12:49 | Varriount | My goodness Earthbound has some wierd enemies. |
07:13:36 | skrylar | Earthbound (NES)? |
07:13:42 | skrylar | well, snes |
07:13:58 | Varriount | Yep. (On my phone, using an emulator0 |
07:14:43 | Varriount | Earthbound and Mother 3 are the best rpg games I've ever played. |
07:14:58 | skrylar | earthbound is such a strange game overall |
07:15:41 | Varriount | "Demonic Petunia became Tame" <- WTF? |
07:16:24 | Varriount | It's the only game I've played where you have to face melting clocks and cups of coffee as enemies. |
07:17:22 | Demos | Sounds like "The Void" |
07:17:50 | Varriount | "The Void"? |
07:18:39 | Demos | Russian game |
07:18:43 | Demos | very strange |
07:20:16 | skrylar | that one sounded interesting but when i talked to people who played it, they said it was 'russian hard' |
07:22:34 | Varriount | Oooh, another strange game -> http://jayisgames.com/archives/2013/06/undertale_demo.php |
07:25:26 | Demos | I also recomend "The Precursors" |
07:25:31 | Demos | very good russian game |
07:25:49 | Demos | and with that I am oging to go to sleep |
07:30:01 | * | Demos quit (Ping timeout: 240 seconds) |
07:59:15 | Araq | skrylar: yeah I'm collecting data about the style-insensitivity now and will blog about it |
07:59:53 | Araq | title of the blog post is most likely "consistency is a poor man's approach to correctness" |
08:02:08 | Araq | zahary1: have a look at bug #966 |
08:02:20 | Araq | seeems to be caused by the new delegators |
08:55:01 | Varriount | Araq: Is the style sensitivity option something that can be altered by the push and pop pragmas? |
09:03:21 | skrylar | Varriount: how would that work? if one module has strict mode on and another doesn't, what does strict mode have to do to use the nonstrict code? |
09:04:11 | skrylar | right now its a global compiler flag IIRC because it turns off normalizing identifiers |
09:11:52 | filwit | hey Araq |
09:12:26 | * | Endy joined #nimrod |
09:17:12 | Araq | hi filwit |
09:17:19 | Araq | you're doing a great job on reddit :-) |
09:28:53 | filwit | hey, glad you approve man |
09:29:43 | filwit | i realized after i came here that i didn't truly know what the final direction was for the T/P thing but my second post kinda hinted at being removed |
09:30:00 | filwit | i don't mean to advertise something that you're against |
09:31:59 | filwit | anyways, i saw that guys post about a "potential future language" and though it would be a perfect opportunity to plug Nimrod a little :) |
09:32:36 | filwit | seems like it was approved by the larger reddit community which is a good sign :) |
09:33:59 | filwit | i really wounder if that's because it's new to those people or because it's becoming familiar. I would guess that later |
09:35:22 | Araq | I'm playing with the idea to disallow upper cased letters ... lol |
09:35:40 | Araq | so there is only foo_bar_baz possible and everybody uses that |
09:36:19 | Araq | and ultimately we'll get rid of fonts that make _ look like a thing of the 70ies |
09:36:27 | filwit | i really think that would be "bad for business" and i personally wouldn't like it |
09:37:12 | filwit | wait get rid of fonts? are you just joking.. i'm a bit confused |
09:37:27 | Araq | I prefer fooBar too, but thinking about it, it makes perfect sense |
09:37:44 | Araq | well I'm not serioulsy suggesting this change, of couse |
09:37:56 | filwit | oh, i thought you where.. |
09:38:00 | Araq | but it does make perfect sense... |
09:38:21 | filwit | idk really, what's so much better about it than have just case-insensitivity? |
09:38:25 | filwit | what does it fix? |
09:38:48 | Araq | why do we have Z and z in the first place? it just creates another option to misspell things |
09:39:05 | Araq | Chinese does fine without upper cased letters |
09:39:39 | filwit | yeah i actually thought once you could make a editor which would auto-inject the '_' mark |
09:39:48 | filwit | (when you press space) |
09:40:03 | filwit | so typing code would feel more like writing language |
09:40:14 | Araq | why do we have 2 ways to write the same letter? why not 3 or 5? |
09:40:35 | Araq | it's just some crappy cultural artifact |
09:40:52 | Varriount|Mobile | German has ß |
09:40:55 | filwit | haha, araq is getting deep |
09:40:58 | filwit | but it's true |
09:41:14 | filwit | it's pretty pointless if you think about it |
09:41:41 | rixx | Varriount|Mobile: yes, and russian has a different alphabet, and romanian has some letters from the cyrillic alphabet |
09:41:49 | filwit | plus theses day's it's just a psuedo-class thing. Oh, you didn't use correct grammer, you must be dumb |
09:42:01 | filwit | when no one texts with correct grammar |
09:42:07 | Varriount|Mobile | Pointless it may be, but you will never get me to willingly, purposefully use "i" instead of "I" |
09:42:13 | filwit | kinda a pointless formality |
09:43:07 | Araq | happiness comes from eliminating choices |
09:43:31 | Araq | I take away the upper letters and make everybody happy |
09:43:58 | Araq | Varriount|Mobile: ß has an uppercased representation now. but nobody noticed. |
09:44:20 | Varriount|Mobile | What is programming, but a series of choices to bring about a desired solution? |
09:44:24 | * | Araq bets less than 1% of all germans know about it |
09:44:25 | filwit | haha damn, i'm sure there's some "german nazi" joke in there somewhere, i just can't find it :P |
09:47:14 | filwit | so wait German doesn't use upper-case either? |
09:47:27 | Araq | it does |
09:47:41 | Araq | ß used to have no uppercased representation as it never starts a word |
09:47:42 | filwit | i didn't even think about asian-languages capitalization before you mentioned it |
09:47:53 | filwit | ahh, i see |
09:48:12 | filwit | but they made it so folks could YELL IN CAPS? |
09:48:23 | Araq | yes, exactly |
09:48:35 | Araq | ALLCAPS is even on the passports here, lol |
09:49:16 | filwit | i haven't seen a passport in awhile, couldn't tell you what ours look like |
09:49:16 | * | Matthias247 joined #nimrod |
09:49:20 | Araq | meaning if your name is Gruß it became GRUSS |
09:49:36 | Araq | and if your name is Gruss it became GRUSS too lol |
09:49:54 | Araq | on the passports |
09:50:01 | filwit | is Gruss a common German name? |
09:50:08 | Araq | nah, I made it up |
09:50:08 | filwit | never heard that one before |
09:50:15 | filwit | oh, i see |
09:58:10 | rixx | Araq: nah, I think more people know about ẞ |
09:58:47 | rixx | I think it was even mentioned in elementary school once |
09:59:18 | rixx | and I think I've seen it in advertising, too |
09:59:25 | filwit | i wounder if kids still get taught cursive in elementary school here |
09:59:31 | filwit | y'all have cursive in german? |
09:59:44 | rixx | yup |
10:00:06 | Araq | I'm not sure it's still taught |
10:00:09 | rixx | but they teach it later nowadays, I think |
10:00:37 | rixx | it is still taught, seen my siblings use it |
10:00:48 | rixx | and they are 10 and 8 |
10:01:02 | filwit | that sounds about right |
10:01:15 | rixx | but they started pretty late |
10:01:18 | Araq | elementary school is mostly to teach children that one can cook his own lunches and that one can move backwards |
10:01:27 | rixx | :D |
10:01:57 | rixx | Araq: and how to deal with other children and being a little silent in class ;) |
10:02:04 | rixx | well. not too loud, maybe |
10:02:07 | filwit | i don't get the expression :| |
10:02:32 | filwit | do you cook your own lunches in german elementary school or something? |
10:02:48 | filwit | or is that just a phrase i'm unfamiliar with? |
10:03:08 | rixx | would probably be better than the stuff they serve there |
10:03:17 | filwit | i watched this german movie called "the wave" once which was pretty good |
10:04:04 | filwit | yeah our cafeteria food was gross too. public schools don't exactly feed the students brain-food |
10:04:06 | rixx | ah, well. not exactly representative of our educational system though |
10:04:39 | filwit | they do alright though i suppose, it's just they give you pizza & cheeseburgers as options... what kid is going to pass that up? |
10:04:56 | * | Varriount|Mobile misses German bakeries. |
10:05:49 | filwit | oregon has some really good food that i miss |
10:06:12 | filwit | the only place you can eat vegetarian and actually have a good meal |
10:06:24 | filwit | at least in my experience in the US |
10:06:40 | filwit | well no, California had souplantation which was good too |
10:06:50 | rixx | filwit: ah, no, they serve real food here, but it's … think mashed potatoes made from instant powder >.< |
10:07:14 | * | rixx stopped eating that stuff after fourth grade and just brought her own lunches |
10:07:40 | filwit | yeah I have a Hungarian neighbor, and he's made some really good Hungarian and German dishes for us before. |
10:07:51 | filwit | but they where both very rich |
10:08:49 | rixx | well, really good German dishes don't require you to be rich |
10:08:57 | rixx | Hungarian ones neither, actually |
10:09:07 | rixx | Hungarian ones even less |
10:09:22 | rixx | damn, now I wanna make Hungarian Goulash |
10:09:50 | filwit | well he's not the healthiest person alive, and i'm sure there are unhealthy people everywhere. Still, his dishes where tasty :) |
10:10:01 | filwit | yeah it was Hungarian Goulash that he made too |
10:10:18 | filwit | with just chopped potatoes and chopped pork or something |
10:10:27 | filwit | and some sort of sauce |
10:11:29 | filwit | good combo really. I like the "classic american" cookout food too (probably not from america): corn, bakedbeens, burger/hotdogs |
10:12:09 | filwit | but if i had to pick a perfect meal (since' i'm making myself hungry right now) i would probably choose steak and potatoes and broccoli |
10:12:38 | filwit | with A1 steaksauce and a beer (only time i actually like beer is with that combo) |
10:13:22 | filwit | probably should stop spamming #nimrod with food posts |
10:16:59 | Araq | nah it's fine |
10:18:32 | rixx | weeell, now I have to choose: Goulash for the whole hackerspace ooor studying for my exam |
10:18:56 | rixx | (exam is about formal languages/automata and compilers, so there's that) |
10:20:19 | filwit | i haven't seen you around before rixx, are you new? |
10:20:33 | rixx | filwit: yup, just getting started with nimrod |
10:20:46 | filwit | cool, and welcome |
10:21:07 | rixx | thanks :) |
10:21:28 | filwit | if you're researching languages then you're in the right place ;) |
10:21:53 | rixx | yep, a friend of mine pointed me this way when I was complaining about Python's lack of static typing (Python being my language of choice for all private projects, because it's so damn convenient) |
10:22:26 | rixx | well, he first tried to get me to use Ada, as always, but then he told me about Nimrod and I chose to give it a try |
10:22:47 | filwit | never really used Python besides hacking on Blender UI, but I'm kinda apposed to dynamically-typed languages in general |
10:22:56 | rixx | still gonna do my next project in python, though, because I wanna get through with it fast ^^ |
10:23:00 | filwit | we where just talking about that the other day |
10:24:10 | skrylar | Ada is neat but the tooling is eeeh unless you pay |
10:25:08 | Araq | Ada is simply not the right tool unless you care about bounded memory usage by construction |
10:25:22 | rixx | Ada sounded pretty neat after everything my friend told me. I was basically left with saying "Yeah, but I don't wanna program tanks" |
10:25:35 | Araq | it sucks when it comes to resizable arrays and strings |
10:25:48 | Varriount|Mobile | rixx: We have a user in here who is working on some neat CPython interfacing lib |
10:25:49 | Araq | been there, done that, decided nimrod is necessary |
10:26:56 | Varriount|Mobile | Program tanks? |
10:27:20 | rixx | afaik that's one of the things Ada is actually used for |
10:28:03 | filwit | i've heard it was developed by some military, but that's about the extent of my experience with Ada |
10:28:12 | filwit | looked at it once and didn't like the syntaxd |
10:28:26 | Varriount|Mobile | rixx: https://github.com/micklat/NimBorg |
10:29:18 | rixx | nah, Ada is pretty nice, but I'm so not into Pascal-like begin/end syntax |
10:29:30 | Varriount|Mobile | If you want to use python from Nimrod . If you want to use nimrod from python, I'd suggest just using cffi and exporting C procedures. |
10:30:02 | rixx | I don't really plan on using the two together |
10:30:50 | filwit | i have always been more of a C-style person (just what i am used to), but Nimrod's made me appreciate indent-style |
10:31:10 | filwit | it can be easier to shift blocks of code around when you don't have curly-braces |
10:31:59 | filwit | btw, Araq, you mentioned removing comments from the AST, you still plan on that or did you change your mind? |
10:32:28 | filwit | i brought it up last night and someone said they like it being part of the AST, but i forget who and why |
10:33:38 | filwit | i just think it would make support Nimrod on simple text editors a bit easier, but other than that i could care less really |
10:34:32 | Araq | yeah that's still in the pipeline |
10:34:43 | Araq | I think only doc comments should be part of the AST |
10:35:00 | Araq | you're talking about alignment of comments though, editors don't care about ASTs |
10:35:16 | Varriount|Mobile | If you want regular comments in the ast, make them doc comments |
10:36:05 | filwit | Araq: right |
10:36:40 | Araq | filwit: so apparently we need more bikeshedding before the people can accept nimrod's syntax |
10:37:03 | filwit | like i've been saying man :P |
10:37:27 | filwit | actually some things about Nimrod i've really started to appreciate in terms of style |
10:37:44 | Araq | well the *real* reason is simply a lot of inherent disrespect for my work as I didn't invent unix |
10:37:46 | filwit | but i still think there's some inconsistencies that could help |
10:38:06 | rixx | oh, damn, Araq, you didn't? what am I doing here then? |
10:38:06 | Varriount|Mobile | "Nimrod: Just like that deadly space fungus, it grows on you" |
10:38:15 | Araq | but so be it |
10:38:24 | filwit | Araq: yeah, unfortunately people are pretty picky, it's true |
10:38:27 | rixx | Araq: I thought you were the secret child of K&R or something |
10:39:16 | * | EXetoC quit (Quit: WeeChat 0.4.3) |
10:39:28 | filwit | Araq: i'm sure no-one disrespects your work, it's just not everyone needs the performance of C, so that leaves them with other GC languages they might prefer the syntax of.. so syntax is important |
10:40:24 | filwit | still, there are a lot of people from Python/Ruby that seem attracted to Nimrod's syntax as-is |
10:41:22 | filwit | it's the C++/C#/Java crowd that seem to have very rigid ideas about what's right/wrong with syntax |
10:42:34 | filwit | that said, I kinda actually agree with many of C#'s designs.. like "str + str" for concatenation |
10:42:38 | Matthias247 | filwit: actually I though the same when I first looked at Nimrod. But it's simply the unfamilarity |
10:44:04 | filwit | Matthias247: yes but i hear that a lot. and how many people look at it and simply turn away? Some we will never get because they're too set in there ways, but other things could probably help people accept an unfamiliar thing if it has good reason too it |
10:44:41 | filwit | it's true it's rather arbitrary when it comes to syntax, but some things are also a bit universal |
10:44:50 | filwit | math, strings, lists, ect |
10:46:54 | * | r0b1 joined #nimrod |
10:46:58 | * | r0b1 quit (Changing host) |
10:46:58 | * | r0b1 joined #nimrod |
10:46:59 | filwit | those things have a lot of cross-over, and if people can just look at something and think 'that make sense' (like "hello " + p.name + ".") it could help grow the language. at least, I think it would. |
10:47:30 | filwit | ultimately though, these things could be also changed after Nimrod 1.0, and it might be a better plan to do so |
10:47:36 | filwit | (if they get changed at all) |
10:47:39 | dom96 | gutten morgen |
10:47:59 | filwit | morning dom |
10:48:38 | Varriount|Mobile | I think the dynamic language crowd is attracted to nimrod because nimrod gives many of the benefits that a dynamic language normally has. |
10:48:49 | dom96 | My worry is that we will become too much like C if we fold to people's demands too much. |
10:49:33 | filwit | nah, the language already is leaps and bounds better than C because there's no ending marks and no headers |
10:49:54 | Varriount|Mobile | Let's add braces. And mandatory semicolon delimiters >:) |
10:50:06 | filwit | plus the ref/ptr/addr syntax is way better (because they're descriptive) |
10:50:10 | Araq | "+" for concatenation is wrong |
10:50:17 | * | io2 joined #nimrod |
10:50:21 | filwit | Araq: i disagree |
10:50:29 | filwit | Araq: cause of "commonality" |
10:50:32 | Araq | @[1,2] + @[2,3] # what does it do? |
10:50:48 | filwit | that's [1,2,1,2] |
10:50:56 | Araq | in nimrod it's not ambiguous |
10:51:12 | Araq | and it's @[3,5]of course ;-) |
10:51:15 | filwit | if you did this: @[1,2][] + @[2,3][] it shoudl be addition |
10:51:21 | rixx | wat |
10:51:34 | rixx | Araq's version is much more intuitive |
10:51:45 | filwit | Araq: i know what it is in Nimrod, i just meant what i think it *should* be |
10:52:08 | filwit | and i mispelled, i meant [1,2,2,3] |
10:52:32 | Araq | well lifting via `[]` is awful though |
10:52:49 | filwit | rixx: i dissagree. i think if you took a poll most people would understand: mylist + otherlist as concatenation not addition |
10:53:10 | filwit | the reason is because often list's are not just numbers |
10:53:36 | rixx | filwit: maybe I'm thinking too mathematically |
10:53:45 | filwit | so it's a wider application to use the most common symbol of addition '+' for the most common _application_ of lists (joining) |
10:54:02 | rixx | doesn't make it right, though |
10:54:05 | filwit | mylist + other list (join); mylist += node (add) |
10:54:16 | Matthias247 | for lists I find + to e ambigous and would prefer named operators (join, add) |
10:54:23 | rixx | but I like Araq's versin better, and I agree that appending [] to change the meaning is pretty horrible |
10:54:32 | filwit | rixx: that's why i was saying do this for add: mylist[] + otherlist[] (addition) |
10:54:34 | Matthias247 | however for strings I find + for concetanation naturally |
10:54:58 | Araq | could easily be done, Matthias247 |
10:55:00 | filwit | rixx, Araq: then you can also do things like this: mylist[0..5] + otherlist[5..10] |
10:55:15 | rixx | I don't. I got used to + concating strings, but I don't think it's nice |
10:56:14 | Araq | Lua uses '..' fwiw, Perl uses '.' |
10:56:22 | Matthias247 | And Qt uses % |
10:56:33 | Matthias247 | which is totally strange |
10:57:26 | filwit | Araq: neither of those 'imply' addition, which is why they're worse than '+' |
10:57:42 | Araq | what? o.O |
10:58:15 | Araq | concatenation has nothing to do with addition except for the fact that afterwards result.len == a.len + b.len |
10:58:33 | filwit | ./../% don't imply addition, while '+' is taught to us to mean 'add' and when you apply 'add' to lists you normally mean 'add together' |
10:59:47 | filwit | that's pretty much as simplified as i can make my argument |
11:00:41 | filwit | so if you can find fault in that, sure i'll take it. Ultimately you'd have to take a study about what "most people" associate when you "imply" addition of strings (math or join), but I'm assuming that later |
11:01:20 | * | [1]Endy joined #nimrod |
11:02:42 | Araq | for english speaking people, perhaps you're right |
11:03:20 | filwit | that's what i mean, "most common" unless something else becomes the world trading language |
11:03:40 | Araq | in German it never occurred to me to conflate "hinzufügen" and "addieren" |
11:04:24 | * | Matthias247 quit (Read error: Connection reset by peer) |
11:05:01 | * | Endy quit (Ping timeout: 264 seconds) |
11:05:02 | * | [1]Endy is now known as Endy |
11:05:20 | filwit | Araq: interesting you guys have two words for 'add'? i mean i guess english does as well, but the common 'math' term is always 'addition' which is part of the crux of my argument |
11:06:33 | filwit | Araq: based off google-translate, it looks like the first word is more like 'append' and the second is more like 'addition' |
11:06:34 | dom96 | wow. Mozilla spend 115K per month for the CI |
11:07:05 | filwit | CI? |
11:07:33 | dom96 | continuous integration |
11:07:37 | dom96 | http://taras.glek.net/blog/2014/02/06/cost-efficient-continious-integration/ |
11:09:12 | Araq | filwit: yeah |
11:09:18 | * | ponce__ joined #nimrod |
11:09:26 | * | brson quit (Quit: leaving) |
11:09:30 | Araq | hi ponce__ wb |
11:09:34 | ponce__ | hi! |
11:09:47 | ponce__ | I hate to make language suggestions but |
11:10:24 | Araq | no worries, go on |
11:10:28 | ponce__ | I thought about just "public" and "private" sections as a * replacement |
11:11:01 | Araq | brb |
11:14:20 | filwit | pounce__ i suggested something similar on the forums already: http://forum.nimrod-lang.org/t/381/3 |
11:15:33 | filwit | pounce__ ultimately changes like that will probably take a lot of discussion before it would be changed (if it changes in the near future at all) because it would probably require a lot of work and there are somewhat bigger issues to address (like IDE tooling and things) |
11:16:36 | ponce__ | I only say that because I see people complaining, I suspect that the current syntax is more readable |
11:17:09 | ponce__ | especially if couloured differently in IDE etc |
11:17:46 | * | EXetoC joined #nimrod |
11:18:34 | filwit | ponce__ i agree with you though, i think there could be a better solution to the '*' too, but ultimately that's probably the least needed syntax change in Nimrod ATM |
11:20:25 | filwit | ponce__ though it is brought up a lot, probably because it's confused with C's semantics |
11:20:30 | dom96 | filwit: I would still love an Aporia logo if possible. |
11:21:23 | filwit | dom96: okay i'll get around to making you one. Just last few times I tried i could tell you didn't really like the designs. |
11:21:45 | ponce__ | compiling HEAD babel with HEAD nimrod compiler makes: "babelpkg\packageinfo.nim(4, 14) Error: cannot open 'version'" |
11:22:04 | ponce__ | what did I do wrong? |
11:22:23 | dom96 | filwit: Yeah, sorry. :\ |
11:22:28 | filwit | dom96: i've been meaning to sit down and do a bit of design touch-up/artwork/mascot changes to Nimrod for awhile and layout a visual design for the docs |
11:22:53 | dom96 | Better design for docs is more important. |
11:22:56 | dom96 | Do that first if you can |
11:22:59 | filwit | dom96: no problem man, i'm not asking you to like all my design :P just that means it takes a little longer |
11:23:22 | filwit | ponce__ use devel |
11:23:49 | ponce__ | ok |
11:25:15 | filwit | dom96: i will and maybe we can work together on the HTML or something (where I do the front end and you modify the docgen?) I'm hoping we can add in some JS to make seaching for procs by type-association very convenient |
11:25:39 | dom96 | filwit: sure |
11:25:59 | filwit | dom96: that would probably only require a hidden tag to be exported in the docgen along with every proc so i could search through them in JS |
11:26:32 | * | Varriount|Mobile quit (Remote host closed the connection) |
11:26:46 | * | Varriount|Mobile joined #nimrod |
11:27:10 | dom96 | filwit: We need to be careful not to bloat the html too much though |
11:28:32 | filwit | dom96: it could be in the anchor tag, so <a name="jmpname" data-param="int float int")> |
11:28:41 | filwit | data-params* |
11:29:03 | dom96 | That's abusing html a bit heh |
11:29:13 | filwit | how so? |
11:29:21 | * | eigenlicht joined #nimrod |
11:29:24 | filwit | data-* attributes are part of HTML5 |
11:29:24 | dom96 | Specifying a non-standard argument |
11:29:29 | dom96 | oh |
11:29:34 | dom96 | Didn't know that lol |
11:29:35 | filwit | no, it's a standard now |
11:29:37 | filwit | yeah |
11:29:55 | dom96 | Thought you just made up an attribute and added it in there. |
11:30:02 | filwit | lol, no :P |
11:30:10 | filwit | it will validate |
11:30:32 | filwit | as long as you use <!doctype html> |
11:30:44 | dom96 | good |
11:31:10 | filwit | yeah, it makes doing this sort of thing much easier |
11:31:29 | filwit | was really happy when they i found out about that addition to HTML5 |
11:32:34 | filwit | of course, before html5 there was xhtml which basically allowed the same type of things if i recall |
11:32:53 | dom96 | ahh, xhtml. Good times. |
11:33:06 | filwit | yep, haha |
11:33:37 | filwit | i still kinda prefer xhtml to html5 since it was consistent with it's </> instead of having some takes not require the / |
11:34:03 | filwit | but it's been discontinued, so what are you gonna do |
11:34:08 | dom96 | I like html5 simply because I can finally remember the doctype. |
11:34:17 | filwit | lol, good point |
11:51:42 | * | ddl_smurf joined #nimrod |
11:54:16 | Araq | ponce__: tbh I understand how the "trailing" '=' for procs looks weird at first, how pragmas look strange, how type sections can feel 'off' but that the export marker continues to be brought up suprises me |
11:54:40 | skrylar | i sometimes forget to type it |
11:54:54 | skrylar | filwit: xhtml is still valid |
11:55:18 | skrylar | just because some /'s are optional in html5 doesn't mean you can't still just export perfect XML all the same |
11:55:18 | filwit | skrylar: thought 2.0 was officially dropped |
11:55:53 | skrylar | filwit: as a standard it might be abandoned (which is kinda dumb) but since it was largely just "proper html", you can still do that for all intents and purposes |
11:56:12 | Araq | it works nicely and has been designed after people noticed the interface/implemetation split of pascal doesn't work well. And it's not my invention, I took it from Oberon. |
11:56:35 | skrylar | (nb: i don't have a problem with the export marker, i just forget to type it a lot) |
11:57:15 | skrylar | i should write a "reasons why nimrod seems derpy at first glance (but it really isn't)" |
11:57:34 | filwit | skrylar: yeah i know it still is accepted in browsers. i only meant it's not being promoted and supported to the level HTML5 now is. I'm sure there's some odd tablet browser that doesn't render correctly with it by now or something |
11:58:14 | skrylar | i always had trouble with browsers accepting xhtml when passed as xhtml :\ |
11:58:21 | Araq | python uglifies private names with a leading '_'. how is that better? and more importantly: why isn't that constantly brought up against python? I find the other __builtin__ stuff equally ugly |
11:58:54 | skrylar | because python is used by NASA and dissing python = dissing NASA which is uncool |
11:58:55 | skrylar | :P |
11:59:06 | Varriount|Mobile | Araq: Private names are rarely used in small projects |
11:59:17 | skrylar | (then again LISP is also used by NASA but nobody cares about that lol) |
11:59:33 | filwit | Araq: because it's a common style practice in other langauges like C whereas '*' mostly alien (although i agree with what you're saying) |
11:59:36 | Varriount|Mobile | Most libraries use the __all__ variable to selectively export things |
11:59:49 | filwit | Araq: because _** is a common.... |
12:00:09 | skrylar | amusingly people sometimes use _foo to mean private in C/C++ but this is in error |
12:00:18 | skrylar | the spec says that anything starting with underscore is reserved for the compiler |
12:00:41 | filwit | i thought it was two underscores |
12:00:43 | skrylar | but people wholesale ignore that and so compilers ended up having to use double underscore instead |
12:01:03 | filwit | at least it's not Dart where '_' is protected and '__' is private |
12:01:18 | EXetoC | :E |
12:01:41 | skrylar | because 'private blah blah' is too stupid |
12:02:20 | skrylar | i think D allowed both C++ and Java styles for visibility, which IMO are more directly explicit than underscore soup |
12:02:50 | filwit | D reserves __ for the compiler, technically |
12:03:01 | filwit | __traits(..) |
12:03:10 | filwit | __XMM(..) // simd |
12:03:21 | ponce__ | Araq: I guess it's frequently discussed because a line like "ip*: string" create confusion with the C pointer declaration |
12:03:31 | skrylar | according to IBM C its two underscores or one underscore and a capital letter+end of identifier |
12:03:41 | skrylar | so _fooBar is allowed but _FOOBY isn't |
12:04:02 | filwit | ... |
12:04:18 | Araq | skrylar: that is correct |
12:04:30 | Varriount|Mobile | ponce__: But after you found out that "*" was a visibility modifier, were you still confused? |
12:04:47 | ponce__ | I think the * for public is a good idea |
12:05:08 | ponce__ | that probably takes a bit of time to sink in |
12:05:21 | Araq | I have nothing against ! for public, it's like 1 line in the compiler to support that too |
12:05:22 | ponce__ | once used to the C family |
12:05:49 | skrylar | i'm not sure making concessions to C syntax is a great idea |
12:05:53 | Araq | var s!: string # hmm |
12:05:58 | skrylar | there's a certain point that if you're different enough you might as well do what you want |
12:06:18 | filwit | Araq: use ! for public and ? for package? |
12:06:27 | * | askatasuna quit (Ping timeout: 244 seconds) |
12:06:28 | filwit | Araq: i almost like the sound of that.. |
12:06:28 | skrylar | kind of like how asian grammar is completely different to european grammars so its a full "well, i guess i just need to learn" trigger instead |
12:06:40 | filwit | Araq: then again, * and + make just as much sense really |
12:06:43 | Araq | filwit: meh, don't start with "package" |
12:06:47 | skrylar | filwit: protected isn't needed? |
12:06:53 | skrylar | private members are already visible to that module |
12:07:03 | skrylar | (admittedly people complained about this in D1) |
12:07:10 | filwit | Araq: :P just planning ahead for when it's so requested you have no choice but to add it. |
12:07:21 | ponce__ | "package" visibility is seldom used in D |
12:07:31 | Araq | I don't even think it can work, filwit :P |
12:07:56 | filwit | why? it just exposes a symbol to only the files within the same folder? |
12:08:21 | filwit | i could see why that could require more work that it's worth right now, but impossible? |
12:08:27 | ponce__ | http://pastebin.com/A0ihp2zQ < talking about visibility, I can't help but notice that "publicness" get repeated many times |
12:08:51 | ponce__ | so I guess people talk about it because until our eyes are accustomed, it jumps out |
12:09:04 | filwit | Araq: then again, there might be a better solution with submodule & includes, so idk |
12:09:23 | Araq | well it requires a notion of "package friends", filwit |
12:09:31 | dom96 | I don't get this package visibility you guys are talking about. |
12:09:41 | Araq | currently there is an implicit notion of a "friend" module |
12:09:43 | dom96 | Wouldn't the compiler need to be aware of babel even more then? |
12:10:00 | dom96 | Also, if you change the export marker to ! I will actually leave and never come back :P |
12:10:14 | filwit | Araq: all files in the same folder would be friends like in D |
12:10:19 | skrylar | dom96: also make sure that public members are in allcaps |
12:10:31 | skrylar | proc NEWTHING!(...) |
12:10:33 | ponce__ | like the template notation in D (!), it's too much expressive ;) |
12:10:42 | skrylar | just to complete the notion of shouting at users |
12:10:54 | * | psquid quit (Quit: work) |
12:11:06 | dom96 | skrylar: perfect |
12:11:14 | Araq | proc foo+(a, b: int) # what about + then? |
12:11:35 | skrylar | proc `+`+(a, b: int) # not confusing at all |
12:11:39 | filwit | Araq: why change the '*' ? |
12:12:00 | filwit | skrylar: no different than proc `*`*(a, b:int) |
12:12:01 | dom96 | skrylar: well to be fair: proc `*`*(a, b: int) exists. |
12:12:08 | filwit | jinks |
12:12:12 | ponce__ | that would make http://pastebin.com/bPd3z9RT |
12:12:23 | EXetoC | dom96: no, package as in a directory in said project |
12:12:37 | dom96 | EXetoC: So then we have two different definitions of "package"? |
12:12:42 | skrylar | dom96: i will now hide under a mushroom |
12:12:44 | dom96 | That's completely sane. |
12:13:05 | EXetoC | the programming community? |
12:13:08 | filwit | wait, there's a current definition of package? |
12:13:23 | Varriount|Mobile | I thought package private/public was only needed for silly languages that use the concept of packages |
12:13:30 | dom96 | filwit: A babel package. |
12:13:32 | filwit | i thought it was basically just a path thing at the moment, anthing before the '.' in an import was a folder |
12:13:38 | Varriount|Mobile | Eg: java |
12:13:42 | filwit | filwit: babel is part of the compiler? |
12:13:51 | filwit | dom96 ^ |
12:13:53 | Araq | filwit: because it looks like a pointer declaration and + only looks like UML |
12:13:54 | dom96 | no. |
12:14:01 | dom96 | well, it is a bit. |
12:14:46 | ponce__ | how about public: blocks http://pastebin.com/RPhkdjCU |
12:14:50 | dom96 | Araq: Seriously. If you want to appeal to everyone then you might as well just make a new D and call it "a better C". |
12:15:24 | filwit | don't listen to him Araq, CHANGE ALL THE THINGS!!!! |
12:15:45 | ponce__ | dom96: they would still differ in many ways |
12:15:54 | Araq | now who is the angel and who the demon ... |
12:16:06 | Varriount|Mobile | ponce__: Can be done with macroz |
12:16:10 | dom96 | ponce__: That will result in too much indentation. |
12:16:39 | dom96 | I was under the impression that human beings are intelligent. |
12:16:43 | dom96 | And capable of learning new conventions. |
12:16:53 | Araq | dom96: you're wrong though |
12:16:54 | EXetoC | only some are |
12:16:54 | filwit | Araq: seriously though, i don't think changing * to + is a valuable change really |
12:17:01 | dom96 | Is learning that * means "export" so hard? |
12:17:04 | filwit | Araq: i agree with dom96 on this one |
12:17:13 | Araq | filwit: yeah I'm not serious |
12:17:21 | ponce__ | dom96: no, but is "export" so valuable that it has to be on every line? |
12:17:41 | dom96 | Araq: Gah. Stop joking around. |
12:17:48 | filwit | Araq: i can never tell |
12:18:01 | dom96 | Araq: That's how you get quoted infavourably. |
12:18:24 | Araq | at least I get quoted. that's already better than getting ignored. |
12:18:26 | filwit | lol.. he's trolling his own IRC |
12:18:52 | skrylar | Araq: speaking of demons, when is the compiler going to support futhark |
12:18:54 | dom96 | Araq: Be careful, you may regret it later :P |
12:18:55 | filwit | because everyone always talks about petty changes, he suggests the pettiest of them just to watch the reactions.. |
12:19:08 | skrylar | [actually it probably does considering those are unicode alphas] |
12:19:31 | EXetoC | no but srsly, we need to extend the concept further, but allowing more than just optional begin/end and {} etc, if we do indeed get that |
12:19:32 | dom96 | ponce__: That's true. For objects it is likely that you want to export every field. For that case it may make sense to add something like that, but I think a pragma may be nicer. |
12:19:54 | skrylar | isn't that something a macro could already do (or should be able to) :3 |
12:19:58 | EXetoC | everybody wins. "def p(x): ..." |
12:20:07 | ponce__ | if public: private: blocks are possible with macros, might as well keep the current syntax and eventually wrap it when needed |
12:20:19 | skrylar | well i meant a "make all fields public" macro |
12:20:27 | dom96 | EXetoC: Funny. I was actually making a macro which allowed you to do that a while back :P |
12:20:36 | skrylar | all though yeah a certain template syntax would probably work too |
12:21:02 | dom96 | ponce__: I think it would make sense to finally settle on an OOP macro, and let the OOP macro provide that. |
12:21:20 | Araq | oh yeah. dom96 is right |
12:21:21 | EXetoC | "go do_stuff()" -> ??? |
12:21:36 | filwit | Araq: just realized i can make my macros use '+' instead of {.get.} to generate getters... |
12:21:56 | dom96 | Araq: Indeed. I think we should add that for 0.9.4 together with a closure macro. |
12:21:58 | Araq | filwit: so '+' for readonly? |
12:22:06 | filwit | yeah basically |
12:23:15 | dom96 | Oh and in regards to allowing pragmas to be used using the {pragma} syntax, I am fine with that. |
12:23:31 | EXetoC | dom96: well, if you could just push/pop inside a type |
12:23:38 | dom96 | Aporia highlights pragmas anyway, so it should look pretty much the same to me anyway. |
12:24:49 | filwit | dom96: that means pragmas and sets will be highlighted the same unless you have more advanced semantic checking going on |
12:24:52 | EXetoC | and then you could group anything by visibility |
12:25:03 | dom96 | filwit: oh damn. I forgot about sets. |
12:25:18 | dom96 | In that case I change my opinion. |
12:25:26 | dom96 | Pragmas should stay as they are. |
12:25:51 | EXetoC | I think .pragma. was proposed |
12:26:34 | filwit | yeah i really have no problem with the existing */{..} syntax.. it's only the T/P thing and a select few type names (seq) and there operators that i have any problem with at all |
12:26:53 | * | nequitans_ quit (Ping timeout: 252 seconds) |
12:27:08 | Araq | filwit: aliasing & to + for strings is *very* easy to do |
12:27:23 | filwit | oh, and the inconsistency with type/proc's use of :/= too.. but that needs more discussion |
12:28:09 | Araq | actually maybe we should do this instead, filwit : |
12:28:10 | filwit | Araq: i know, but people will always do what the docs say, and it's not like i don't know what '&' does.. i'm just saying for adoption purposes only. it makes things simpler, IMO |
12:28:23 | Araq | proc foo(a, b: int) is |
12:28:26 | Araq | echo a, b |
12:28:38 | * | askatasuna joined #nimrod |
12:28:48 | filwit | proc foo(..): int is ... ? |
12:28:52 | Araq | yes |
12:29:06 | filwit | not bad. but what about types then? |
12:29:20 | filwit | type Foo is ...; type Bar: Foo is ... ? |
12:29:24 | Araq | type foo = int # stays? |
12:29:38 | Araq | it's much more of an equals in this place anyway |
12:29:47 | Araq | const foo = 3+4 # = makes sense |
12:29:55 | Araq | var foo = 4 # = makes sense |
12:30:20 | Araq | proc foo: int = 4 + 5 # = also makes sense :P |
12:30:26 | filwit | yes but those are fundamentally different (to the coder) than defining types/procs (even though const is somewhat both) |
12:30:55 | filwit | Araq: i don't dislike the '=' for procs at all.. i just dislike how type/proc makes different use of them |
12:31:10 | filwit | Araq: in fact i would probably prefer = to 'is' |
12:31:35 | Araq | filwit: well what are you complaining about then? |
12:31:45 | filwit | Araq: but I still think types should be this: type Foo: int; type Bar: Foo = ... |
12:32:01 | filwit | because it matches what procs are like |
12:32:13 | filwit | and that's the closest idiom, not 'const' |
12:32:20 | Araq | 'type' introduces a section, 'proc' does not |
12:32:32 | Araq | 'type' is much more like 'const' already |
12:32:39 | filwit | only cause you made it that way... proc could introduce a section as well |
12:32:49 | filwit | in fact i could probably add that in now that i know more about the AST |
12:32:53 | Araq | ':' means "has type" '=' means "aliases type" |
12:33:21 | filwit | : doesn't mean "has type" for procs |
12:33:30 | filwit | it means "returns type" |
12:33:56 | Varriount|Mobile | Which is the single exception. |
12:34:13 | Araq | filwit: yes, but you're not arguing for '->' are you? |
12:34:21 | Araq | proc foo -> int |
12:34:37 | filwit | i did actually, i just called it 'of'.. see my forum post |
12:35:00 | Araq | 'of' is commonly spelled 'as' in Basic iirc |
12:35:16 | filwit | i would be fine with either if that's a concern |
12:36:33 | filwit | Araq: here's what I don't like about the differences between the '=' with type/proc: type T = U <body>; proc F:U = <body> |
12:37:07 | filwit | Araq: the stmt body follows the = for one but not the other |
12:37:26 | filwit | Araq: moreover, it's also different for if/else/etc statements |
12:38:03 | filwit | Araq: if we're talking about 'syntax cleanup' i would argue that any change which made things more consistent on all fronts would be the best direction |
12:38:34 | filwit | Araq: may not be possible, but then no change at that level would be an easy one, so probably shouldn't be jumped to anyways |
12:39:00 | Araq | again, it's not U <body>, it's <body> |
12:39:22 | Araq | object of foo\n a, b: int # is the <body> |
12:39:36 | filwit | but i sure looks like 'U' body the way it's written, especially since you cant do object[...] |
12:40:21 | Araq | that's a different concern then |
12:40:44 | filwit | you can't do: type Foo = |
12:40:48 | filwit | object of Foo |
12:40:51 | filwit | a: int |
12:40:52 | filwit | either |
12:41:17 | filwit | wait.. can you? |
12:41:19 | filwit | one sec |
12:41:33 | Araq | lol I dunno either |
12:42:14 | Araq | but either way, 'type' is not 'class' and so 'type' doesn't resemble 'proc'. I guess that's what it comes down to, you want them to be as similar as possible |
12:42:27 | dom96 | For my closure macro I was considering also implementing some proc type sugar: |
12:42:35 | dom96 | (int, string) -> int |
12:42:54 | dom96 | But then that's a problem if you don't want a return type |
12:43:04 | dom96 | You could just write void but that's not really in the spirit of Nimrod. |
12:43:05 | EXetoC | -> void? |
12:43:08 | filwit | Araq: didn't know you could put 'object' on the same line as the recList |
12:43:09 | EXetoC | right |
12:43:15 | dom96 | Araq: What do you think? |
12:46:53 | filwit | Araq: it's odd how 'object of T' can be on the same line as the recList that follows it, or it's recList can be indented.. |
12:47:08 | Araq | dom96: -> is to appeal to the math/FP people and so '-> void' is fine here, I think |
12:47:57 | filwit | Araq: personally I would love to see ':' replace '=' everwhere so that if/else/custom-macro was consistent with type/proc.. if it really came to it i would probably even prefer "const foo: 10" |
12:48:13 | dom96 | Araq: Alright. I was also considering: ~(int, string) or something. |
12:48:38 | filwit | Araq: sorry, i meant "i think** i would love..." |
12:49:28 | * | Varriount|Mobile would rather not have any hasty language changing decisions made. |
12:49:48 | dom96 | Let's just s/:/=/ :D |
12:50:19 | Varriount|Mobile | filwit: You scare me. Is this revenge for me dropping that medical link earlier? |
12:50:44 | filwit | Varriount|Mobile: I don't think anything being talked about is actually being seriously talked about as a change that will happen anytime soon |
12:52:03 | filwit | Varriount|Mobile: lol, no, but that's alot for that :P |
12:52:15 | filwit | dom96: btw, did you see the PM i sent you earlier? |
12:53:10 | dom96 | filwit: nope? |
12:54:07 | filwit | dom96: well just /join me an i'll ask again |
12:54:26 | dom96 | What? That's not quite how IRC works lol |
12:54:33 | dom96 | Just /msg me |
12:54:40 | filwit | oh, that's probably why it didn't work... |
12:54:42 | filwit | :P |
12:55:32 | filwit | g'damn.. can you just open a chat.. im a newb at IRC and this webIRC isn't helping.. |
12:56:27 | filwit | i just wanted to ask you about the super secrete google-analytic anyways.. |
12:58:25 | filwit | dom96: i tried to /msg you three times but it didn't work.. |
12:59:06 | EXetoC | "/query dom96" or "/msg dom96 ohai" |
12:59:20 | dom96 | filwit: I PM'ed you |
12:59:30 | filwit | k |
13:25:08 | filwit | g2g, bbl |
13:25:14 | * | filwit quit (Quit: Page closed) |
13:49:22 | * | nequitans_ joined #nimrod |
13:57:38 | nequitans_ | Hello! |
13:57:45 | dom96 | hey |
13:58:30 | nequitans_ | Thanks for your guys' assistance yesterday -- Araq's suggestion about by slowdown being related to random() was right |
14:01:11 | nequitans_ | Once I fixed that issue (quickly wrote my own generator in nimrod), I decided that I wanted to do some metaprogramming to make doing this again simpler |
14:01:17 | Varriount|Mobile | Hah, PHPFail -> http://codegolf.stackexchange.com/questions/21114/weirdest-way-to-produce-a-stack-overflow/21160#21160 |
14:01:19 | nequitans_ | ala: https://gist.github.com/geetduggal/9290100 |
14:02:29 | nequitans_ | However, I get this error at compile time: Error: internal error: param not set: :env |
14:03:34 | nequitans_ | ideally, it would be generecized too |
14:03:38 | Varriount|Mobile | nequitans: Sounds like something wrong with the compiler |
14:04:04 | Varriount|Mobile | The env parameter is the hidden param passed to iterators |
14:04:30 | * | darkf quit (Quit: Leaving) |
14:05:18 | nequitans_ | VarriountIMobile, I see -- does the template itself look legit ('cause it's probably likely that I'm doing something wrong there :)) |
14:06:22 | Varriount|Mobile | nequitans: What line/col is the error reporting? |
14:07:19 | nequitans_ | line 6 right after the proc |
14:07:38 | Varriount|Mobile | Oh! Its the closure proc too, I think |
14:08:06 | Varriount|Mobile | env parameters are also passed with them, to capture outer variables |
14:09:01 | Araq | nequitans_: I think this bug has already beeen reported |
14:11:12 | nequitans_ | Araq, noted. Is there a hack to get around it in the interim? |
14:12:10 | Araq | try without the 'block' which is kind of deprecated anyway |
14:14:10 | Varriount|Mobile | How is 'block' depracated? |
14:14:21 | nequitans_ | Araq, it worked! |
14:14:57 | * | brihat left #nimrod (#nimrod) |
14:15:18 | Araq | Varriount|Mobile: 'block' in templates is a hacky way to introduce a fresh scope. With hygienic templates that is not necessary anymore. |
14:17:11 | Varriount|Mobile | nequitans: What are you working on? Some sort of simple threading thing? |
14:20:23 | nequitans_ | VarriountIMobile, well after I became interested in nimrod and super excited after seeing its metaprogramming capabilities, I wanted to use it for my next project (I'm towards the end of my phd). One aspect requires creating a lot of random matrices (up to tens of thousands of rows and columns) and then doing an optimal selection amongst them. Threads makes it faster :) |
14:21:20 | Varriount|Mobile | Ooh, nifty |
14:23:28 | nequitans_ | I really like how it is so easy to write things like 'withFile', 'debug', 'parallelFor' in a syntax similar to nimrod itself without modifying the language (e.g. i assume you have to do this in python, for instance). i haven't looked into rust and julia's metaprogramming capabilities, but i wonder if this is an advantage of nimrod? |
14:24:56 | profmakx | is there a way to get hold of .h #defined constants in nimrod code? |
14:29:04 | Varriount|Mobile | profmakx: Use c2nim to extract them from the header, or use some varient of the cimport pragma |
14:29:33 | profmakx | {.importc, noDecl.}: cint |
14:29:35 | profmakx | like that? |
14:29:55 | dom96 | also {.header: ...} |
14:30:00 | profmakx | AF_INET6 = 23 ## for network protocol IPv6. this will almost certainly not work on anything but the system that it was taken from (I'll assume linux) |
14:44:17 | Araq | profmakx: you can use var AF_INET6 {.importc, header: "<foo.h>".}: cint to get "portable constants" |
14:44:33 | Araq | but this has its disadvantages of course |
14:44:45 | profmakx | does that work in an enum? |
14:44:51 | profmakx | maybe i should just try |
14:46:22 | Araq | no |
14:47:00 | nequitans_ | Varriount|Mobile, only one part of the project is in impure nimrod now (calls previously written C++ code via a compiled library) ended up writing some basic graph algs on my own). Would be cool to make it all pure Nimrod just to show how easy it is to do without sacrificing speed |
14:47:51 | Varriount|Mobile | nequitans: Even if part of it is in nimrod, its still neat! |
14:50:01 | Varriount|Mobile | Hm. What part of nimrod uses "::"? |
14:53:22 | * | dom96 wonders if GTK has a resize end signal |
15:05:11 | Araq | Varriount|Mobile: nothing but it's a valid operator symbol |
15:23:22 | EXetoC | Araq: so you think that the rule that states that you shouldn't nest more than about 3-4 levels doesn't really help when it comes to readability? |
15:24:25 | Araq | the rule *at least* needs 1 exception |
15:26:49 | EXetoC | you even said that you liked deep nestings, when we asked you about the two-space indent convention, so that's why I'm asking |
15:34:46 | Araq | iterating over an N dimensional space needs N loops |
15:35:10 | Araq | it's foolish to split that up into multiple procs to avoid the deep nesting |
15:42:41 | * | BitPuffin joined #nimrod |
15:43:04 | profmakx | having a nice iterator there would sometimes help more fwiw |
15:46:54 | * | nequitans_ quit (Remote host closed the connection) |
15:49:01 | EXetoC | surely the complexity varies from case to case |
15:50:42 | * | BitPuffin quit (Quit: WeeChat 0.4.3) |
15:51:14 | renesac_ | @[1,2] + @[2,3] indeed looks like @[3,5] for me |
15:51:51 | EXetoC | what else if it does indeed work? & is for concatenation |
15:52:08 | renesac_ | Araq, what about the possibility of specifying the operator precedence via a pragma or something? |
15:53:40 | Araq | renesac_: we have "strong spaces" planned to affect operator precedence which is IMO a superior solution to this problem |
15:53:55 | Araq | profmakx: yes but then you have that nesting in the iterator |
15:54:32 | renesac_ | well, as I said, 'shl' and friends don't mix well with 'strong spaces' |
15:56:02 | renesac_ | and that 'first character' rule probably leads to ankward operators... and I don't really think it simplifies anything for the user |
15:56:27 | renesac_ | as there are many operators to remember... |
15:56:39 | renesac_ | *characters |
15:59:25 | Araq | well fair enough with strong spaces we can have << |
15:59:34 | EXetoC | Araq: and that's essentially why we got this two-space convention? |
16:00:02 | Araq | EXetoC: no, I'm used to 2 spaces, that's why. No deep thoughts behind it really. |
16:00:12 | Araq | feel free to use 4 spaces |
16:00:23 | Araq | the compiler doesn't mind, nor do I |
16:02:56 | Araq | renesac_: it's not only about "simplifying" things for users |
16:03:19 | Araq | which operator overloading and the macro system symbol lookup can happen lately |
16:03:31 | Araq | and so precedence must not be bounds to symbols |
16:04:53 | renesac_ | macros can't lookup the precedence information someway? |
16:11:21 | Araq | well surely it could be done |
16:11:30 | Araq | but what's the point really? |
16:11:59 | Araq | x<<1 & 5 should be parsed as I wrote it, not as you defined &'s precedence |
16:13:36 | renesac_ | well, I'm not sure I'm really into this strong spaces bandwagon, as I like to have spaces between operators and values |
16:14:24 | renesac_ | and if you don't use this feature, the << operator will have lousy precedence... |
16:16:16 | renesac_ | and having both 'shl' and '<<' is bad |
16:17:39 | renesac_ | though we likely would still need some non-special signal operators... |
16:19:58 | renesac_ | and or not xor shl shr div mod in notin is isnot of -> & (confusion with concatenation), | , ! , ^ (no conflict?), <<, >>, // (python-like), % (confusion with format), the others may be left as is.... |
16:20:32 | Araq | can you wait until we implemented it and you tried it in practice before you complain? |
16:20:42 | renesac_ | well, and I haven't looked up the precedences |
16:21:05 | renesac_ | ok... |
16:21:29 | renesac_ | but then we would have two versions for those operators? |
16:21:58 | Araq | I don't think so, but you can always alias yourself |
16:23:55 | Araq | however =<< and =>> are cool and 'shr' doesn't easily enable it |
16:24:18 | Araq | so perhaps we should copy C more here |
16:25:00 | Araq | but then 'shr' and 'shl' should be deprecated and ultimately removed though most people are not opposed to having aliases to make programmers feel right at home |
16:25:20 | Araq | so I dunno and it's not important anyway |
16:25:39 | Araq | see you later |
16:38:40 | * | nequitans_ joined #nimrod |
17:03:34 | * | Matthias247 joined #nimrod |
17:21:08 | * | Mat3 joined #nimrod |
17:21:12 | Mat3 | hi all |
17:22:51 | * | brihat joined #nimrod |
17:22:51 | * | brihat1 joined #nimrod |
17:23:15 | * | brihat left #nimrod (#nimrod) |
17:23:19 | * | brihat1 quit (Client Quit) |
17:23:47 | * | brihat joined #nimrod |
17:39:08 | nequitans_ | i have a simple mersenne twister random number generator in pure nimrod.. dunno if it's in a package already (first glance says, no, but i'm not sure) |
17:41:58 | dom96 | Not that I know of. |
17:44:28 | renesac_ | I was going to implement some xorshift random number generators |
17:45:43 | renesac_ | well, I implemented a simple one, but was going to make it more generic and this xorshift1024* looked interesting also: |
17:45:49 | nequitans_ | dom96, noted. renesac_ -- i implemented xorshift last night to test out whether random nums were slowing me down. decided to use mersenne today since it is basically a standard, proven generator. i could provide both since already implemented. do you know how to seed a xorshift generator? |
17:45:59 | renesac_ | http://xorshift.di.unimi.it/ |
17:46:28 | nequitans_ | renesac_, interesting |
17:47:37 | renesac_ | he don't show the seeding procedure, but I don't think you need the warm up that mersenne needs |
17:49:36 | nequitans_ | ic |
17:50:02 | renesac_ | I'm far from expert in those issues though |
17:50:20 | renesac_ | and none of those are cryptographic secure anyway |
17:50:36 | renesac_ | so speed seems the most important thing |
17:51:31 | nequitans_ | yea, i think the idea behind them is application to simulations and statistics more than crypto stuff |
17:52:34 | renesac_ | well, it is true that peer review can get picky about the quality of the RNG you used for simulations... |
17:57:59 | renesac_ | anyway, adding that multiplication in the end of xorshift is like making a lot more shifts, and is cheap, at least on current x86 |
17:58:37 | renesac_ | that is why murmurhash is also so good in that table |
17:58:37 | nequitans_ | yea, it's pretty interesting that the xorshift under certain measures of quality performs so well |
17:59:08 | renesac_ | one thing that bothers me though is the lack of 0 as possible output |
17:59:09 | renesac_ | :P |
17:59:43 | * | nequitans_ quit (Read error: Connection reset by peer) |
18:00:59 | * | nequitans_ joined #nimrod |
18:01:06 | nequitans_ | ack, computer froze! |
18:01:41 | renesac_ | I think that a murmurhash-like algorithm with a bigger state would be a killer rng... but I don't have the number theory knowledge to build it |
18:01:46 | renesac_ | [14:59:08] <renesac_> one thing that bothers me though is the lack of 0 as possible output |
18:02:26 | nequitans_ | interesting |
18:05:22 | renesac_ | does an addition/subtraction step fix that lack of 0 thing? |
18:05:30 | renesac_ | w/o introducing the lack of another number? |
18:05:42 | renesac_ | well, away |
18:05:49 | * | renesac_ is now known as renesac|away |
18:07:53 | nequitans_ | yea, that's an interesting question |
19:11:34 | * | jbe joined #nimrod |
19:13:31 | jbe | does anyone know if there is a way to yield process control in nimrod without specifying a wait time - similar to sleep(0) on windows or sched_yield on unix? |
19:17:10 | jbe | never mind, i can just use the posix library |
19:18:12 | dom96 | yeah, I think that may be the only way |
19:23:34 | Mat3 | use the Posix wrapper |
19:30:45 | jbe | yep that works fine, thanks |
19:33:18 | * | noam_ quit (Ping timeout: 240 seconds) |
19:34:37 | * | noam joined #nimrod |
19:39:52 | Mat3 | hello Araq: Have you found a strategy for limiting the type zoo yet ? |
19:40:59 | Araq | Mat3: well I have 2 "narrowing" instructions but I have no idea whether that's correct for every edge case |
19:41:15 | Araq | people will report bugs though, so I'm not too worried |
19:45:49 | * | noam quit (Ping timeout: 264 seconds) |
19:45:51 | Mat3 | I think that says, you extend all types from a basic one ? |
19:46:30 | Araq | yes, well now that you say it, it can't work for uint64 :-) |
19:47:21 | renesac|away | :/ |
19:47:24 | Araq | it uses int64 operations for everything and then narrowSigned and narrowUnsigned ops bitmask the result |
19:47:36 | * | renesac|away is now known as renesac |
19:47:57 | * | noam joined #nimrod |
19:48:37 | renesac | don't this introduce some overhead? |
19:48:51 | renesac | or from the C code the compiler optimizes it out? |
19:52:06 | Araq | renesac: I'm talking about the VM used for compile time ops |
19:52:16 | Araq | not about the other code generators |
19:52:36 | renesac | oh, ok |
19:52:49 | Araq | and currently we treat uint64 as a second class citizen already so it's fine for now |
19:52:55 | renesac | then it makes sense |
19:53:30 | renesac | and nimrod don't exposes a uint128 right? (I remember seeing something like that somewhere in the compiler though) |
19:53:50 | renesac | for SIMD |
19:54:24 | * | noam quit (Ping timeout: 252 seconds) |
19:54:32 | Araq | well actually we need to rework all this for int128 |
19:54:47 | Araq | we'll have a more generic intXX type internally then |
19:54:55 | Mat3 | I am a bit confused; Integer and unsigned integers can be both represented as ... integers (2 complement make it possible) |
19:55:06 | Mat3 | so what's the problem ? |
19:55:13 | Araq | Mat3: that is correct but div for instance differs |
19:55:27 | Araq | so you need sdiv and udiv |
19:55:36 | profmakx | Mat3 you are confused in the wrong way |
19:55:48 | profmakx | you want to think about how you n bits are interpreted |
19:56:09 | Araq | for addition/substraction it doesn't matter, for multiplication it's dfiferent again iirc |
19:56:38 | Araq | and it's all different when you consider overflows |
19:56:39 | profmakx | primitive types are a pita |
19:58:02 | renesac | well, in my code I aways end up with uints and bitwise operations, so good nimrod support for them is important for me... |
19:58:15 | Araq | profmakx: that's why I keep saying I'm glad unsigned floating point numbers don't exist |
19:58:33 | Mat3 | not really, All needed ist masking of a single bit for integer divisions. There are plenty processors avariable which only support unsigned division (if at all) |
19:58:52 | Mat3 | ^is |
19:59:59 | Araq | Mat3: how does that work in detail? |
20:03:16 | Araq | renesac: I know, don't worry |
20:03:21 | Mat3 | simply mask out the sign bit and adjust negative numbers |
20:04:22 | Mat3 | example: |
20:05:19 | Mat3 | MOV RBX; RAX ; RAX : RBX |
20:05:34 | Mat3 | TEST RBX, RBX |
20:05:43 | * | Demos joined #nimrod |
20:06:13 | Mat3 | sorry |
20:06:24 | Mat3 | MOV RDX, RAX |
20:06:35 | Mat3 | TEXT RAX, RAX |
20:06:39 | Mat3 | ^test |
20:09:05 | Mat3 | then, xor rdx, rax set the high bit of rdx if both have a different sign |
20:10:28 | Mat3 | because rdx can be used as mask for 'NOT' it is now possible to: |
20:10:35 | Mat3 | MUL RDX |
20:11:11 | Mat3 | regardless of the sign of both values, because |
20:11:19 | Mat3 | NOT EAX |
20:11:23 | Mat3 | NOT EDX |
20:11:28 | Mat3 | ADD EAX, EDX |
20:12:20 | reloc0 | i'm currently trying to understand nimrod better. and writing some code with it, trying to learn it. |
20:12:28 | Mat3 | (please replace RDX with RBX) |
20:12:34 | Mat3 | so: |
20:12:46 | reloc0 | every now and then i have some problems with the documentation. |
20:13:23 | reloc0 | can i help to improve documentation or give example programs? |
20:13:33 | reloc0 | and if so - what's the best way? |
20:15:07 | Mat3 | mov rbx, rax; test rax, rax; xor rbx, rdx; test rdx, rdx; mul rdx; test rbx, rbx; not rax; not rdx; add rax, 1 |
20:15:39 | Mat3 | that code should divide signed and unsigned integers |
20:16:30 | Araq | reloc0: the docs are in RST in $nimrod/doc, just edit the .txt files and make a pull request |
20:16:44 | Araq | nimrod rst2html file.txt |
20:16:49 | Araq | produces the html version |
20:18:55 | reloc0 | Araq: cool. thanks |
20:18:56 | Mat3 | Araq: You will find such tricks in every common Z80 assembly book for example |
20:19:16 | Araq | Mat3: yeah but I'm lazy so I am asking you ;-) |
20:19:36 | Araq | also a sequence of instructions is bad for a VM |
20:19:52 | Araq | where CISC is the name of the game |
20:22:23 | Mat3 | well, just implement an unified division instruction (your Out-Of-Order cpu will have no problem with it) |
20:24:07 | Mat3 | I just found out the Small C compiler compiles this way, check it out |
20:24:18 | Mat3 | ciao |
20:24:30 | * | Mat3 quit (Quit: Verlassend) |
20:35:17 | Varriount | reloc0: The library documentation is mostly in the docstrings of types, procedures, and other code in the library source files |
20:40:22 | Varriount | OrionPK: ping |
20:47:13 | * | Demos quit (Ping timeout: 240 seconds) |
20:55:01 | * | q66 joined #nimrod |
20:57:01 | Varriount | Araq: Do iterators have result variables? |
20:57:21 | Araq | no |
21:00:35 | renesac | Varriount, why the bug I filled about the implicit initialization of the result variable, even when it isn't assigned to, was tagged as 'feature'? |
21:01:29 | renesac | Araq, right, good to know |
21:01:57 | renesac | https://github.com/Araq/Nimrod/issues/868 <-- this one |
21:02:07 | Varriount | renesac: I don't know. I don't control the issue tracker. |
21:02:36 | renesac | ah, as you were the only one to answer I though it was you |
21:03:20 | renesac | maybe I should rename it, reflecting the edit |
21:04:05 | Varriount | renesac: I stated that it was arguable whether this was a bug or a feature. |
21:04:59 | renesac | how "proc foo():int = var bar = 42" returning 0 is a feature? |
21:05:36 | renesac | (in my edit I discovered the 'result' identifier wasn't the problem |
21:05:44 | Araq | it *is* a feature |
21:05:56 | Varriount | The result value is always initialized to 0 |
21:06:11 | Varriount | Or rather, the memory that it uses is zeroed |
21:06:16 | renesac | yes, but this hides programmer errors |
21:06:28 | renesac | if you return w/o even touch the return value |
21:06:46 | renesac | I'm not against it being initialized to 0 |
21:07:28 | renesac | but the compiler should complain when a proc is supposed to return something, and you don't use either 'result' or 'return' to set this return value |
21:07:28 | Araq | well we can easily produce a warning |
21:07:33 | fowl | <renesac> if you return w/o even touch the return value -- what if this what you meant to do, knowing the semantics, then its not an error |
21:07:57 | renesac | 'proc foo():int' will complain of missing implementation |
21:08:16 | Araq | we recently got the necessary control flow analysis |
21:08:39 | renesac | right |
21:09:44 | * | Demos joined #nimrod |
21:09:45 | renesac | well, if it has at least one return somewhere, returning 0 by default w/o touching may be desired |
21:10:09 | Araq | indeed the compiler uses this idiom heavily |
21:10:32 | renesac | right |
21:11:00 | Demos | you can say proc foo(): int = 4 though right? |
21:11:02 | renesac | I wonder if it is easy do differentiate the two cases |
21:11:06 | Demos | and it will return 4 |
21:11:09 | renesac | Demos, yes |
21:11:16 | Araq | IME it doesnt hide bugs, it hides 'result = 0 | false' |
21:11:36 | Demos | it hides boneheaded errors |
21:11:54 | Demos | imo it should be a warning |
21:11:57 | Araq | I said IME |
21:11:57 | renesac | yeah |
21:12:00 | Demos | like it is in C |
21:12:11 | Araq | so ymmv |
21:12:34 | renesac | and allowing or not to redeclare a 'var result' is another issue |
21:13:00 | renesac | that shadows the original one, but isn't used by default for returning |
21:13:59 | renesac | well, any experienced nimrod coder wouldn't make this error anyway... just me when messing around the first time... |
21:14:24 | renesac | that isn't high priority though.. |
21:14:34 | Varriount | Araq: How exactly do I produce a new test result for the babel package build test? |
21:15:02 | Varriount | Unlike the other tests, this one doesn't use test files with specs |
21:16:28 | renesac | Araq, how fast would be to querry the memory allocator for the capacity of an array, for example? |
21:16:52 | renesac | I find it kinda a waste to duplicate this information... |
21:18:39 | renesac | only for the few uses where you allocate a seq but don't want it's length to follow the capacity... |
21:20:20 | renesac | you would need to query the memory alocator, maybe in one step via a realloc with special flags, once every array duplication (assuming normal dinamic array growth here) |
21:21:02 | Varriount | renesac: sizeof()? |
21:21:39 | renesac | I think if you ask sizeof() a pointer it will return 4 or 8... |
21:23:07 | renesac | and for a struct, it will return the baseline size, not the size of the slot the memory allocator decided to insert it |
21:23:46 | Araq | Varriount the tester has lots of special stuff in categories.nim |
21:24:35 | Araq | renesac: it would be very fast |
21:25:10 | renesac | so, isn't this idea interesting? |
21:26:38 | Varriount | renesac: But what could it be used for? |
21:26:44 | dom96 | I spent an entire day trying to get scrolling past bottom working in Aporia. |
21:26:45 | renesac | you ask for a newSeq(cap=10000), and then internally it calls a 'realloc(shrink=false)' every doubling |
21:26:57 | renesac | (not using the current API) |
21:27:17 | renesac | Varriount, arrays and seqs with 4/8 bytes less overhead |
21:27:25 | * | dom96 </3 GTK |
21:27:41 | renesac | that could translate to even bigger savings |
21:28:14 | renesac | if your seq type is a tuple 'len, pointer' |
21:28:33 | Araq | renesac: it's in my todo for years now |
21:28:46 | renesac | if you add another field, it would not be a power of two anymore, and would likely be allocated in a bigger slot |
21:28:53 | Araq | so sorry it's not interesting ;-) |
21:29:00 | renesac | hehe |
21:29:04 | renesac | *heh |
21:30:13 | renesac | btw, is it safe to store information in lower bits of pointers? |
21:30:17 | renesac | or it confuses the GC? |
21:33:45 | dom96 | Who wants $10K? If somebody uses Nimrod for this it would give us some really good publicity: http://www.raspberrypi.org/archives/6299 |
21:35:18 | renesac | * Okay, so sue us** |
21:35:20 | renesac | ** Please dont sue us. |
21:35:24 | renesac | lol |
21:35:56 | Araq | renesac: sorry not safe and would have desastrous results |
21:36:19 | renesac | :( |
21:36:42 | renesac | can't the GC mask those bits, or it already use them? |
21:36:51 | renesac | *uses |
21:38:31 | jbe | how should i go about iterating through some bytes that i have a pointer to? (sdl surface pixels actually) |
21:40:11 | dom96 | Araq: Wow, that reddit post of yours is at ~50 upvotes. There are people out there that respect you :) |
21:42:32 | dom96 | jbe: Something like this perhaps? for x in 0 .. <width: for y in 0 .. <height: pixels[x + y] |
21:44:11 | Varriount | dom96: Link to the post? |
21:44:35 | dom96 | http://www.reddit.com/r/programming/comments/1z6j37/on_garbage_collection_in_games/cfrb3jy |
21:45:00 | dom96 | Might as well look at all the comments though to get the context: http://www.reddit.com/r/programming/comments/1z6j37/on_garbage_collection_in_games/ |
21:45:31 | Demos | idetools seems to have trouble with spaces in paths |
21:45:40 | Araq | renesac: it is very easy to unmask these bits but the consequences are awful for performance |
21:46:14 | * | q66 quit (Ping timeout: 252 seconds) |
21:46:18 | Varriount | Demos: escapeShell? |
21:46:28 | Varriount | Or just put quotes around the path |
21:46:35 | fowl | jbe, check out the source for the graphics library |
21:46:39 | renesac | really? I would think that masking was a cheap operation |
21:46:41 | renesac | :P |
21:46:43 | Demos | I tried both |
21:46:49 | jbe | dom96: like, cast the pointer to a ptr byte, and then use thepointer[i]? |
21:47:19 | dom96 | jbe: If you're using sdl then you might as well use the graphics module. |
21:47:35 | Demos | maybe not the spaces |
21:47:53 | dom96 | jbe: Cast it to an array[0..1000_000-1, int32] |
21:48:04 | renesac | too bad then... another place that might hide a bit would be the sign bit of a seq lenght, but it isn't nearly as widely useful... |
21:48:52 | Araq | the masking itself is not measurable of course :P |
21:48:53 | renesac | but at least I could def a bigint as a 'distinct seq' |
21:49:35 | renesac | or 'seqWithHiddenBit' |
21:50:05 | Araq | there are other consequences that make it slow |
21:50:09 | Demos | OK idetools actually has trouble with the dirty file being in my temp folder |
21:50:23 | renesac | seqs are magic, and you pointed me where they were defined sometime ago, but I lost it |
21:50:46 | renesac | Araq, like what, now I'm curious (not criticizing) |
21:50:47 | jbe | dom96: thanks. well, it's just to load files into a texture packager. i'll see how it works |
21:50:53 | renesac | ? |
21:54:00 | fowl | dom96, can i put sdl2 on nimrod-code |
21:55:01 | dom96 | fowl: sure. The wrapper is complete right? |
21:55:55 | Varriount | dom96: The comments in that thread... they bring tears of pride to my eyes. Go filwit! Go Araq! |
21:56:37 | dom96 | Varriount: hehe |
21:56:43 | fowl | dom96, net and audio needs work |
21:57:13 | * | nequitans_ quit (Ping timeout: 240 seconds) |
21:57:20 | dom96 | fowl: it should be fine. |
21:57:35 | * | brson joined #nimrod |
21:57:37 | fowl | ok |
21:57:49 | jbe | dom96: thanks. well, it's just to load files into a texture packager. i'll see how it works |
21:57:56 | jbe | oops |
22:06:19 | fowl | dom96, do we have something that launches a platform-independant open file dialog |
22:06:36 | fowl | gtk on linux, win gui on windows |
22:06:38 | dom96 | fowl: dialogs module |
22:09:23 | Demos | oh it fails if run in COMMAND.COM |
22:09:50 | Varriount | Command.com doesn't exist in windows anymore. |
22:09:56 | Demos | whatever |
22:10:02 | Demos | the old style command shell |
22:10:07 | Varriount | \nitpick |
22:10:22 | Demos | fails in powershell as well, does it assume some sh stuff? |
22:12:02 | fowl | dom96, how about naming, is import sdl2/ttf ok? :D |
22:13:02 | dom96 | fowl: yeah |
22:15:59 | Varriount | Araq: Almost have testament/babel integration done. I'm testing the output right now. |
22:17:13 | * | OrionPK quit (Ping timeout: 240 seconds) |
22:21:02 | Araq | excellent |
22:21:14 | skrylar | meepity meep |
22:22:19 | Varriount | Hi skrylar! |
22:22:32 | Varriount | Did you see Araq & filwit's post on reddit? |
22:35:01 | * | Endy quit (Ping timeout: 264 seconds) |
22:37:29 | Demos | WoooWWWWWWW VS completion |
22:39:39 | profmakx | when people say "syntax is odd" they mean "it doesn't look like C" right? |
22:39:42 | profmakx | or |
22:39:56 | profmakx | "it looks like C, but works differently, I want it to work like C" |
22:42:07 | Varriount | profmakx: That's my guess. |
22:42:35 | Demos | yeah, also nimrod ignores pseudo software engeneering |
22:42:54 | Varriount | Demos: Huh? "Pseudo software engineering"? |
22:43:42 | Varriount | Araq: What should the tester do if it can't find babel? |
22:43:44 | Demos | stuff like strict scope control (beyound sane modules) and extremely explicit everything. |
22:44:01 | Demos | and sticking everything to objects |
22:44:15 | Varriount | Demos: You mean, Java? |
22:44:42 | * | Varriount is now known as Java |
22:44:42 | Demos | yeah, and c++ a little |
22:44:50 | Java | MOOOAR OBJECTSSS |
22:45:06 | Demos | some of these things seem to make sense when you are coming from C/C++ and have very little control over scope |
22:45:11 | * | Java noms all the memory |
22:45:11 | Demos | imo |
22:45:17 | * | Java is now known as Varriount |
22:47:52 | dom96 | oh look. A new programming language: http://wasyl.eu/programming/2014/03/01/introducing-september.html |
22:49:32 | profmakx | reinventing lisp macros now with curly braces> |
22:49:53 | profmakx | i really hate syntax with {} for blocks and ; as terminator |
22:49:55 | Varriount | To be fair, he does say that it's a hobby |
22:50:07 | Varriount | profmakx: So do I! :D |
22:50:11 | profmakx | of course |
22:50:19 | profmakx | everyone should have implemented at least one language |
22:50:20 | dom96 | It seems that 99% here do :P |
22:50:33 | * | profmakx calls bias |
22:51:25 | * | psquid joined #nimrod |
22:51:45 | Varriount | Hi psquid |
22:52:36 | dom96 | It seems like a perfect place to mention Nimrod |
22:52:55 | Varriount | dom96: That could be seen as inflammatory |
22:53:40 | dom96 | True. |
22:55:07 | renesac | only mention nimrod if you have something to add |
22:55:18 | renesac | and well, rust was already mentioned in the reddit thread |
22:55:27 | dom96 | of course it was... |
22:55:33 | Varriount | >:/ |
22:55:56 | Varriount | Throw the infidels into the pits of DOOOOM! |
22:56:14 | * | Varriount gets the torches and pitchforks |
22:56:25 | profmakx | i should put out a disclaimer of the form |
22:56:28 | renesac | you can answer that rust poster, saying that nimrod metaprogramming is much more powerful, and also works on the AST |
22:56:30 | profmakx | "spare me the rust talk" |
22:56:51 | dom96 | I could mention Araq's strong spaces idea here: http://www.reddit.com/r/programming/comments/1z9ppe/introducing_september_working_on_an/cfruobb |
22:56:56 | renesac | but compare with september too, or it will be purely a flame |
22:57:37 | dom96 | or I could show an example of 'until' here: http://www.reddit.com/r/programming/comments/1z9ppe/introducing_september_working_on_an/cfrusbg |
22:59:37 | fowl | dom96, i guess ihave to set up a window though |
22:59:59 | dom96 | fowl: hrm? |
23:00:04 | EXetoC | profmakx: that syntax should be illegal |
23:00:20 | fowl | dom96, sry, for dialogs.nim, btw this module should be moved to babel |
23:00:30 | fowl | it uses glib/gtk2 |
23:00:53 | dom96 | fowl: hrm, yeah. |
23:01:18 | Varriount | My very fuzzy havanese is sitting in front of a space heater. Why? |
23:01:23 | dom96 | I guess it may as well be a part of the gtk package? |
23:03:15 | fowl | i would put it in a separate package, possibly with browsers.nim |
23:03:36 | dom96 | I think the tester uses browsers.nim |
23:04:56 | * | Varriount|Mobile quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) |
23:26:29 | * | jbe quit (Quit: Leaving) |
23:36:06 | fowl | yea it does |
23:37:38 | * | runvnc joined #nimrod |
23:37:42 | runvnc | hello |
23:37:52 | fowl | hey |
23:37:52 | runvnc | is there an easy way to convert from a tuple to json |
23:38:20 | Araq | marshal.nim uses a json representation |
23:38:36 | runvnc | oh ok thanks a lot even better |
23:50:55 | * | ddl_smurf quit (Quit: ddl_smurf) |
23:52:16 | * | ddl_smurf joined #nimrod |
23:58:02 | NimBot | nimrod-code/Aporia master b150d1c Dominik Picheta [+0 ±3 -0]: Added first implementation of scrolling past bottom. |
23:58:28 | NimBot | nimrod-code/packages master 71ec516 Billingsly Wetherfordshire [+0 ±1 -0]: added sdl2 |