00:47:34 | * | q66 quit (Quit: Leaving) |
01:08:46 | * | darithorn joined #nimrod |
01:12:27 | dom96 | hi darithorn |
01:12:34 | darithorn | hello |
01:17:37 | dom96 | If you have any questions about Nimrod then ask them quickly, i'm about to head to bed :) |
01:25:55 | dom96 | good night |
02:24:14 | * | Sergio965 quit (Ping timeout: 240 seconds) |
02:53:08 | * | darithorn quit () |
03:06:06 | * | Associat0r quit (Quit: Associat0r) |
03:08:12 | * | Sergio965 joined #nimrod |
03:47:16 | * | brson joined #nimrod |
05:34:13 | * | OrionPK quit (Read error: Connection reset by peer) |
05:41:54 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
06:09:16 | * | NewGuy_ joined #nimrod |
06:09:25 | NewGuy_ | Hey guys, anyone awake? |
06:11:50 | NewGuy_ | Well, for when someone comes back: Say I have a type TChild inherit from a type TParent. |
06:12:31 | NewGuy_ | If I pass TChild to a TParent function, I assume I'm able to cast it back to a TChild? Just making sure implementation won't make something explode on me! |
06:17:51 | Araq | NewGuy_: you can use 'cast' but should use an ordinary type conversion |
06:18:30 | NewGuy_ | Araq: That's what I meant, wrong term. |
06:19:00 | Araq | in general inheritance works much better with 'ref' though than directly with the value types |
06:20:46 | NewGuy_ | Araq: Using the type in a channel between threads - wouldn't a ref type be a big no-no? |
06:21:00 | Araq | yeah but so would inheritance |
06:21:25 | Araq | channels copy data so you would "slice" the object like in C++ |
06:22:05 | NewGuy_ | Araq: Yeup - that was what I was afraid of. So, what would you suggest here? |
06:23:19 | Araq | well ... # XXX use dynamic type here! says my implementation -.- |
06:23:40 | Araq | so your use case should work but doesn't right now. |
06:24:17 | NewGuy_ | Damn - I seem to be treading the bounds of Nimrod's current implementation, haha. |
06:25:06 | Araq | well you can try to fix it |
06:25:32 | Araq | it's a 1 line change |
06:25:43 | NewGuy_ | Hm? How so? |
06:26:11 | Araq | system/channels.nim line 124 |
06:26:17 | Araq | replace it by: |
06:27:00 | Araq | storeAux(dest, src, pint[].node, t, mode) |
06:28:17 | Araq | however ... I think your way is ugly, you should pass a ptr instead or maybe some other handle |
06:28:50 | Araq | you need a general ID mechanism for networking support anyway :P |
06:30:01 | NewGuy_ | I do agree, I'm still just designing what I want to do, and this was one of a couple possible implementations. |
06:30:55 | NewGuy_ | Well, thank you very much for the help, but I'm off to bed. |
06:30:59 | NewGuy_ | Have a good one! |
06:31:04 | * | NewGuy_ quit (Quit: Page closed) |
07:50:04 | * | brson quit (Quit: leaving) |
08:18:42 | * | EXetoC joined #nimrod |
08:30:52 | * | io2 joined #nimrod |
08:33:02 | * | Associat0r joined #nimrod |
08:33:02 | * | Associat0r quit (Changing host) |
08:33:02 | * | Associat0r joined #nimrod |
09:01:50 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
09:43:52 | * | EXetoC joined #nimrod |
10:28:28 | * | zahary quit (Ping timeout: 245 seconds) |
10:28:48 | * | zahary joined #nimrod |
10:32:01 | * | q66 joined #nimrod |
11:29:52 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
12:13:34 | * | EXetoC joined #nimrod |
13:29:28 | * | oal quit (Read error: Operation timed out) |
13:29:28 | * | q66 quit (Ping timeout: 240 seconds) |
13:29:31 | * | q66 joined #nimrod |
13:35:08 | * | oal joined #nimrod |
13:44:43 | * | circ-user-pJXz2 joined #nimrod |
13:56:13 | circ-user-pJXz2 | hi, a new user here. is dom96 here? |
14:07:51 | Araq | I'm here |
14:08:00 | Araq | maybe I can help you too ;-) |
14:28:08 | Araq | hi circ-user-pJXz2, welcome |
14:36:30 | * | OrionPK joined #nimrod |
14:49:11 | circ-user-pJXz2 | Hi, Araq. Just check back and saw your message. Thanks. |
14:53:02 | circ-user-pJXz2 | ye. i got some questions for the aporia ide. i just found nimrod when i evaluating D or GO for a new project. I think nimrod is a just about right language and it come with every feature i like. i think d is a little over complicated and go is a little too simple. congrad on designing such a clean and great langugage. |
14:53:29 | Araq | thank you :-) |
14:53:42 | circ-user-pJXz2 | again, i am pretty new. forgit me if my question is too naive:) |
14:57:27 | circ-user-pJXz2 | 1. it seems the ide do not parse the imported module. i am also wondering how the compiler find the imported module? does it use the lib path approach? i try to find if i could put a path on the ide but it seems not offering any means? |
14:59:45 | Araq | the compiler has a configuration system which uses --path |
14:59:53 | circ-user-pJXz2 | "it seems the ide do not parse the imported module." I mean for its auto-complete g=feature |
15:00:21 | Araq | it does but auto-complete is still buggy |
15:00:48 | Araq | anyway the IDE supports compiling the current file or the "project" |
15:01:18 | Araq | the project is determined by a file.nim which has a corresponding file.nimrod.cfg |
15:01:34 | Araq | this is the way to mark a file as a project in nimrod |
15:01:50 | Araq | the IDE looks in the current directory for the project |
15:02:34 | Araq | I'm not sure if it tries the parent directory should the current directory not have any project |
15:04:31 | circ-user-pJXz2 | oo. i see. i guess maybe i need to add the path on the cfg file, e.g. --path:"$lib/packages/docutils". like it. very clean. |
15:06:03 | circ-user-pJXz2 | another question for you. it seems that nimrod supports 2 kind of configuration files, .ini and .cfg. anything for a new user need to know about them? |
15:08:19 | circ-user-pJXz2 | a pointer to a document anywhere should be sufficient for me. thanks again for your help and detail explaination. |
15:09:43 | Araq | these things are all covered in the user guide: http://nimrod-code.org/nimrodc.html |
15:10:06 | Araq | .ini files are not used by the compiler but by some tools like niminst |
15:15:05 | circ-user-pJXz2 | ok. will look at the document in detail. thanks again for your help. |
15:16:33 | Araq | you're welcome |
15:16:36 | Araq | see you later |
15:48:12 | * | Associat0r quit (Read error: Connection reset by peer) |
15:48:39 | * | Associat0r joined #nimrod |
15:48:39 | * | Associat0r quit (Changing host) |
15:48:39 | * | Associat0r joined #nimrod |
16:21:27 | * | Mat2 joined #nimrod |
16:21:50 | Mat2 | hi all together |
17:00:30 | * | OrionPK quit (Read error: Connection reset by peer) |
17:11:09 | Araq | hi Mat2 |
17:11:59 | Mat2 | hi Araq |
17:15:01 | * | io2 quit (Ping timeout: 245 seconds) |
17:19:34 | * | Mat2 want to define a variant record as union replacement |
17:21:08 | Araq | you can only get a checked union |
17:21:44 | Araq | well ... ok you can do everything with .emit |
17:21:51 | Araq | but that's cheating |
17:23:46 | Mat2 | as long as I can access the whole word of an 64 bit-sized element from an array[1..8, uInt8]- that's fine |
17:23:54 | * | BitPuffin joined #nimrod |
17:24:16 | Araq | well use 'cast' then |
17:25:02 | Mat2 | hmm, ok |
17:25:07 | Mat2 | hi BitPuffin |
17:25:31 | BitPuffin | oi Mat2 |
17:26:20 | Mat2 | ahoi! |
17:26:30 | Araq | ping zahary |
17:27:06 | * | gradha joined #nimrod |
17:27:08 | BitPuffin | what is up everybodeeey?< |
17:30:48 | Mat2 | reading these blog (and agree): http://olimex.wordpress.com/2013/08/23/do-we-really-need-faster-computers-to-write-more-bloated-software/ |
17:32:24 | gradha | Mat2: I'll consider machines are fast when I have one which encodes 4K 60fps video in real time |
17:35:03 | gradha | however I can relate to the sentiment of current crop of software being writen by monkeys with mega machines |
17:35:43 | gradha | in xcode when I select multiple files the whole IDE freaking stops for a few seconds because instead of highlighting all entries it creates some fancy gradient and draws it as a bitmap |
17:35:50 | gradha | pretty, but horribly useless |
17:36:04 | Araq | "but rather – do we need more and more cores? Yes. That phenomenon would be unuseful if software wouldn’t benefit from it (this is exactly the point of your article). But it does benefit indeed, mostly thanks to the pure functional programming paradigm. Clojure is the closest to perfection. In Clojure you get parallelization almost for free. Without functional programming, parallelization is.. |
17:36:05 | Araq | . |
17:36:07 | Araq | ...harder and worse, maybe too hard and too bad. Functional programming and multiple cores is a perfect marriage." |
17:36:14 | Araq | wow |
17:36:16 | Mat2 | well, that would be possible with the Parallela board for example (the 64 core version). I also think every decend DSP is able to do this |
17:36:30 | Araq | these Clojure guys are getting more annoying than the Rubyists ... |
17:36:37 | Mat2 | *g* |
17:36:50 | gradha | another feature of xcode is it takes several minutes to index your project (no matter how small) and consumes the whole RAM in the process |
17:37:00 | gradha | basically, for something which later performs worse than a grep command |
17:39:00 | Mat2 | it's an Apple product, you know ? |
17:39:41 | gradha | sorry, forgot my status as a crippled user |
17:40:07 | gradha | I'll return now to mouse clicking with a single button |
17:41:08 | Araq | one mouse button should be good enough for everyone |
17:41:50 | EXetoC | all you need is gestures, really |
17:42:13 | Mat2 | originally, Apple designers favored mouses without any button at all |
17:43:41 | Mat2 | hi EXetoC |
17:43:56 | BitPuffin | Araq: how does clojure get free paralellization? |
17:44:04 | BitPuffin | parallelization* |
17:45:09 | Mat2 | I guess there limit functions to CPS form |
17:45:11 | BitPuffin | Mat2: lol, really? |
17:45:21 | BitPuffin | (no buttons) |
17:45:30 | Mat2 | BitPuffin: really |
17:46:37 | BitPuffin | lame |
17:47:50 | Mat2 | and there success in building one: The no-button sensor mouse |
17:48:03 | Mat2 | ^had success |
17:48:04 | BitPuffin | screw osx, crux is where it is at :D |
17:48:14 | BitPuffin | weird |
17:48:22 | BitPuffin | well would it just click on everythnig or what? |
17:49:44 | Mat2 | The initial Mac creator, Mr. Raskin had favored keyboard input (which you can see if you search about the Canon Cat) |
17:50:07 | Araq | BitPuffin: Clojure has no growing stacks so it cannot web scale |
17:50:32 | BitPuffin | but can it sceb wale? |
17:50:45 | * | BitPuffin has never used clojure |
17:51:28 | Araq | oh it can likely use all of your 4 cores what C does on 1 core in the same time |
17:51:59 | BitPuffin | ha! |
17:52:50 | BitPuffin | well on the other hand |
17:52:58 | BitPuffin | same is probably true for most dynamic langs |
17:53:13 | Mat2 | I think its true that autoparallelization benefits from pure FP style |
17:53:34 | Araq | no because they all have a GIL and processes haven't been invented yet, BitPuffin |
17:53:47 | BitPuffin | Araq: ah, yeah that's true |
17:53:52 | Mat2 | *lol* |
17:53:55 | BitPuffin | Araq: but the GIL kind of sucks? |
17:55:13 | rndbit | GIL is like jumping on one leg in the middle of the busy street |
17:56:18 | Mat2 | sorry, what means GIL (Generic Immediate Language) ? |
17:56:31 | gradha | maybe global interpreter lock |
17:56:33 | rndbit | not globa interpreter lock? |
17:56:57 | Araq | global interpreter lock, yes |
17:57:04 | BitPuffin | nimrod should get that |
17:57:31 | rndbit | are you joking? |
17:57:36 | BitPuffin | and then you can pay for the full version that has it removed! |
17:57:45 | BitPuffin | no I am always extremely serious |
17:57:48 | rndbit | :)) |
17:57:55 | BitPuffin | :) |
17:58:06 | rndbit | serious sam \o/ |
17:58:20 | BitPuffin | rndbit: are you one of those who came over here because of the HN post? |
17:58:40 | rndbit | no idea what is HN. found nimrod in one post on stackoverflow |
17:58:49 | Mat2 | nice, the BSD folk worked hard for get rid of such lock and then came a language named 'closure' which reimplement it at user level! |
17:58:51 | * | gradha wonders to change nick xkcd style to /quit |
17:58:54 | BitPuffin | rndbit: just now? |
17:59:10 | rndbit | just a week ago or so |
17:59:17 | BitPuffin | ah |
17:59:18 | BitPuffin | welcome |
17:59:21 | Araq | Mat2: uh oh I think you got quite some things wrong |
17:59:28 | rndbit | thank you thank you! |
17:59:35 | Araq | 1) it's "Clojure" |
17:59:48 | Araq | 2) no it doesn't have a GIL as it runs on the JVM which has no GIL |
17:59:55 | BitPuffin | Mat2: it is python and ruby etc that has a GIL |
17:59:58 | rndbit | what is HN tho? |
17:59:58 | Araq | Python is famous for the GIL |
18:00:04 | BitPuffin | wait |
18:00:09 | BitPuffin | ruby removed its GIL |
18:00:14 | BitPuffin | and replaced it with the same thing |
18:00:21 | BitPuffin | with a different name |
18:00:23 | gradha | rndbit: hacker news |
18:00:36 | * | BitPuffin doesn't go there |
18:00:45 | gradha | rndbit: presumably some kind of peregrination mecca for all procrastinators |
18:01:10 | BitPuffin | the only one who uses it is dom96 |
18:01:14 | rndbit | lol |
18:03:47 | Mat2 | Araq, BitPuffin: oh, then interpret my statement in case of Phyton and Ruby (what a sad name by the way) |
18:04:19 | rndbit | rubbing rubbies la la la |
18:04:38 | BitPuffin | Mat2: yep I did :) |
18:04:53 | gradha | Araq: since you don't want any more gameras, next windows binaries could be the dongle edition? |
18:05:23 | Araq | gradha: the gamera joke is still to fresh to bother with a replacement |
18:07:00 | gradha | have to watch some kpop, bye |
18:07:04 | * | gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=fS9CcTpA9i0 again) |
18:07:06 | Mat2 | bye |
18:08:43 | Mat2 | Araq: What's the strategy for perallel processing in Closure then ? |
18:08:48 | Mat2 | ^parallel |
18:08:58 | dom96 | hello |
18:09:05 | BitPuffin | hey dom96! |
18:09:08 | BitPuffin | no see long time! |
18:09:17 | * | Mat2 bet its simply bringing the Lisp like statements in CPS form |
18:09:26 | Mat2 | hi dom96 |
18:09:46 | dom96 | hello BitPuffin and Mat2 |
18:10:13 | BitPuffin | Araq: I think we all still want to know more about this whole competitive concurrency thing |
18:10:18 | dom96 | BitPuffin: I know, it's been over 24 hours! :P |
18:11:01 | BitPuffin | dom96: probably about > 36! |
18:11:09 | dom96 | :O |
18:11:36 | zahary | hi Araq, what's up? |
18:13:35 | Araq | Mat2: it uses pure functions and transactional memory and quite some other means. But it relies on the JVM's global GC to support all this "cheap" sharing of immutable data. |
18:14:44 | Araq | zahary: how can we ever map a generic instantiation like 'TMatrix[3,3,float32]' to a native OpenCL matrix? |
18:15:11 | zahary | only by casting I guess |
18:15:42 | Mat2 | Araq: uah, that's an horrible sacrifice of system ressources |
18:15:49 | zahary | interpret_cast for matrices between toolkits is standard business in C++ |
18:17:19 | Araq | or we introduce a type pragma {.opencl.} |
18:20:39 | zahary | what is special about opencl here? thinking about it more, I would suggest that both the OpenCL type and TMatrix are defined as array[9, float32] (TMatrix could be distinct type). Then write a converter that allows implicit cast from TMatrix to OpenCL matrix |
18:22:40 | Araq | well I want to compile Nimrod to OpenCL some day |
18:22:53 | zahary | that's another story, it goes beyond the matrix type |
18:23:01 | Araq | of course |
18:23:52 | zahary | the kernels have other limitations, use different compiler, etc. if the opencl pragma marks a kernel, that makes sense I guess |
18:23:57 | dom96 | Araq: http://en.wikipedia.org/wiki/Wikipedia:NSOFT at least we pass this test http://en.wikipedia.org/wiki/Wikipedia:99_Bottles_of_Beer_test, I don't think it's enough though. |
18:26:39 | zahary | aren't the 180 stargazers at github also a sign of notability? |
18:28:15 | Mat2 | dom96: I found the IO language on wikipedia. If the description of these language was not deleted I do not understand why this should be the case for the Nimrod article |
18:28:31 | dom96 | We need secondary reliable sources. |
18:28:34 | dom96 | Which we do not have. |
18:28:56 | EXetoC | just deal with it later then |
18:29:00 | * | freefall joined #nimrod |
18:29:11 | Araq | hi freefall, welcome |
18:29:22 | freefall | hi Araq. |
18:29:29 | Mat2 | hi freefall |
18:29:43 | freefall | o/ |
18:30:18 | dom96 | hello freefall |
18:30:23 | Mat2 | dom96: What about an article at osnews ? |
18:31:05 | dom96 | Mat2: If we could get some reputable news site to write about Nimrod that would be great. |
18:31:10 | dom96 | But can we get that? |
18:31:45 | Mat2 | We can try it |
18:33:46 | freefall | is the whole compiler written in nimrod? |
18:34:32 | dom96 | yep |
18:35:40 | freefall | looks like the concurrency story is still in the works |
18:36:15 | dom96 | Mat2: Maybe slashdot would be easier? |
18:36:28 | * | exhu joined #nimrod |
18:37:21 | Mat2 | probably. I have just found out the editoring team at osnews can be interested in a short article about the benchmark test posted here |
18:38:53 | dom96 | I wonder how popular osnews actually is |
18:38:53 | exhu | hi guys! just wanted to boast my pkg-config pragmas in cairo/fontconfig bindings to serve some use on mac =) |
18:39:13 | Mat2 | hi exhu |
18:39:14 | Araq | freefall: yeah but I'd argue it's still an open research problem everywhere |
18:39:44 | Mat2 | dom96: the side is quite popular in the os-dev szene |
18:40:44 | dom96 | Mat2: Then perhaps they would be interested in my nimkernel repo. |
18:41:00 | Mat2 | slashdot however seem to bind a greather audience |
18:41:03 | freefall | Araq: saw on a forum post you said you didn't like CSP-type channels. would be curious to hear your thoughts, as i've found them to be one of the most accessible and clean approaches for the most common sorts of problems |
18:41:04 | exhu | still have not found a replacement for pango, seems like reinventing the Gtk+ otherwise. |
18:42:25 | Mat2 | dom96: indeed. It should however be of some minimal use. Maybee a project of creating a tiny operating system is something for you ? |
18:43:00 | dom96 | Mat2: I would love to. But I have way too many projects going on right now heh. |
18:44:18 | Araq | freefall: this channel thing is just message passing: pass a message by sharing and you need to make it deeply immutable for safety or copy it deeply, don't do that and it's just as unsafe as everything else |
18:44:45 | Araq | note that Go does neither |
18:45:36 | Mat2 | dom96: ok, I clone your kernel stub and create a CP/M clone |
18:45:59 | dom96 | Mat2: Awesome :D |
18:46:33 | dom96 | Araq: Really? How come nobody has complained then yet? |
18:47:17 | exhu | Mat2, long time ago i've created a dos-like 16-bit os in FASM, it supported COM-like modules -) that was real fun! Unfortunately i don't see any fun In writing modern x86-32/64 kernel :( |
18:47:55 | freefall | Araq: sure, but in reality a lot of the most common stuff you need to pass around is not an issue. if i dislike anything about go's approach it's not the basic model but the fact that it also shares memory by default, and doesn't have immutable types |
18:49:06 | freefall | Araq: even despite these limitations they did a good job in making a very simple and flexible system that neatly solves a lot of common problems |
18:52:49 | Araq | I disagree, sorry; I think they've done exceptionally bad given the kind of resources they have at their disposal |
18:53:43 | freefall | can you be more specific? how would you prefer things work? |
18:55:13 | freefall | i'm not wedded to the go model, but practically speaking i haven't seen another that works as well, and in particular that has such a good simplicity/effectiveness trade-off |
18:56:42 | Mat2 | exhu: well, there exist some nice boot loaders which bring back the fun again (like Pure64) |
19:00:57 | Araq | freefall: they could at least provide STM |
19:01:33 | exhu | Mat2, it's not only that legacy stuff, it's drivers, that's the hell! In good old times you had a 80x25 16-color display mode or e.g. vga 320x200 framebuffer, and bios routines to access keyboard, hdd, video... that was easy and fun to use. |
19:01:45 | Araq | or define the semantics so that thread local heaps are possible, freefall |
19:04:24 | Mat2 | exhu: that's true to some extend (meantime there exist quite large assembler libraries for handling most standard components) |
19:05:40 | exhu | Mat2, thanks for Pure64, i've googled an interesting site (BareMetalOS) |
19:06:29 | freefall | Araq: sure. i'm also unhappy about the comparatively primitive state of the GC. |
19:09:53 | * | exhu quit (Quit: Ex-Chat) |
19:10:12 | freefall | Araq: but i think go has nevertheless set a bar in terms of "bang for the buck". design particulars aside, the fact is that you can do a lot of powerful things very easily in go. i think any other concurrency solution needs to be at least that good, which is apparently a tall order since most other solutions out there are terrible by comparison - either too weak, or just too painful to use |
19:12:29 | freefall | how do you feel about clojure's core.async? |
19:19:53 | Mat2 | exhu: The sources would benefit from an UEFI loader but beside that I found it a nice project |
19:21:37 | * | fowl joined #nimrod |
19:21:40 | dom96 | holy shit what |
19:21:47 | dom96 | Nimrod is at the top of HN |
19:21:55 | fowl | hi |
19:23:42 | Mat2 | freefall: Go's coroutine concept is simple but at cost of fundamentally restriction to a limited set of usage patterns- and it does not seem to scale well |
19:23:48 | dom96 | hey fowl |
19:23:53 | Mat2 | hi fowl |
19:24:10 | fowl | One thing that gets me, though, is the var keyword in a statically typed language. Why say "var thing: string" instead of "string thing"? |
19:25:16 | fowl | ppl trip over the smallest things |
19:26:19 | BitPuffin | dom96: what? |
19:26:44 | dom96 | BitPuffin: What do you mean what?! Look at https://news.ycombinator.com :P |
19:26:53 | Araq | freefall: my knowledge about core.async is too weak to comment on it |
19:27:02 | BitPuffin | dom96: yes I am looking already |
19:27:05 | BitPuffin | that's nice |
19:30:28 | EXetoC | fowl: indeed |
19:31:44 | EXetoC | oh, you mean you think it's better that way because nubs won't complain as much? |
19:32:21 | freefall | Araq: this is a pretty good short overview, fwiw: http://clojure.com/blog/2013/06/28/clojure-core-async-channels.html |
19:32:34 | fowl | EXetoC, no, the reason var is needed because it allows context-free parsing, makes writing a parser much easier |
19:32:51 | EXetoC | right |
19:33:15 | Araq | freefall: oh I read that but that doesn't mean I can comment on it |
19:33:26 | BitPuffin | dom96: "This looks good. However according to the web framework benchmark its performance looks pretty underwhelming, below that of Python and Ruby:" |
19:33:30 | BitPuffin | dom96: :( |
19:33:33 | BitPuffin | dom96: he's wrong! |
19:33:36 | BitPuffin | ON THE INTERNET |
19:33:39 | dom96 | I replied. |
19:33:41 | dom96 | :P |
19:34:13 | dom96 | "But I think it suffers from the same fatal flaw that D does: you have to semi-manually translate C headers that you want to use. Like D, it provides an automated tool to help, but the translated headers will inevitably lag their original counterparts." How else would you do it? |
19:34:21 | freefall | Araq: yeah, i'm no expert on it either, but the contrast with go is interesting. and clojure at least has some stm support |
19:35:39 | Araq | dom96: lol |
19:35:45 | Araq | now see what you did :P |
19:35:56 | dom96 | hey, I defended your honor. |
19:35:59 | fowl | EXetoC, plus what would var x = 42 look like without it? it would have to be like auto x = 42 |
19:36:10 | dom96 | Araq: You better get in there and start defending Nimrod too :P |
19:37:43 | EXetoC | fowl: yeah, I think it improves readability; especially when grouping multiple vars together |
19:39:03 | BitPuffin | I don't understand how nimrod can be slower than ldmd2 |
19:39:48 | BitPuffin | still nice to be faster than g++ :) |
19:40:15 | EXetoC | is that surprising? I thought it was mostly dmd that sucked |
19:40:48 | BitPuffin | EXetoC: well yeah DMD isn't all that great, but ldmd and nimrod with clang, nimrod should win :P |
19:41:19 | dom96 | BitPuffin: With that benchmark we could really have been micro-optimising endlessly. |
19:43:06 | EXetoC | 0ad 2v2 later, ok? dom and I vs BitPuffin and an easy bot |
19:43:40 | BitPuffin | lol |
19:43:43 | BitPuffin | an easy bot |
19:43:45 | BitPuffin | gtfo :) |
19:44:09 | BitPuffin | more like me and dom96 against EXetoC and 3 hard bots |
19:44:11 | BitPuffin | but no |
19:44:21 | fowl | i have a little time |
19:44:22 | BitPuffin | I haven't set up my graphics driver yet on my desktop xD |
19:44:30 | fowl | is there any projects that someone needs help with |
19:44:49 | * | io2 joined #nimrod |
19:45:12 | dom96 | fowl: Aporia always. |
19:45:22 | Araq | dom96: HN had their chance, nobody cared about our 0.9.2 release notes |
19:45:24 | io2 | dom96: nice interaction on hn |
19:45:24 | fowl | whats up with aporia |
19:46:15 | dom96 | fowl: I've spent a lot of my time working on async stuff and well... I had no time for Aporia. |
19:46:26 | dom96 | io2: Thanks. I try my best. |
19:46:46 | dom96 | Araq: I think people will appreciate your presence. |
19:47:25 | dom96 | ooh, someone wants to move the AUR nimrod package to [community] |
19:47:32 | dom96 | Guys! This is what notability feels like! :P |
19:48:28 | BitPuffin | just as I stopped using arch :D |
19:48:31 | BitPuffin | lol |
19:48:35 | dom96 | hah |
19:48:42 | io2 | is there a tag we should use about nimrod |
19:48:56 | BitPuffin | you mean like hash tag? |
19:48:57 | io2 | I wrote about it in my g+ stream |
19:48:59 | io2 | yeah |
19:49:11 | dom96 | I think #nimrod is fine. |
19:49:48 | dom96 | I'd say the word 'nimrod' is not used often in other contexts. |
19:50:16 | BitPuffin | only in religion |
19:50:50 | io2 | how about #nimrodlang |
19:50:57 | io2 | or, #nimrodcode |
19:51:10 | fowl | #three-e's |
19:51:18 | dom96 | sure. Use all 3 :P |
19:51:34 | fowl | https://twitter.com/search?q=nimrod&src=typd |
19:51:51 | BitPuffin | #nim? |
19:52:01 | Mat2 | naram-sin ? |
19:52:29 | dom96 | wow, surprised at the effect HN has |
19:52:34 | * | gradha joined #nimrod |
19:53:31 | dom96 | gradha: As you prophesied, 2013 is the year of Nimrod and we are at the top of HN! |
19:53:33 | io2 | I used #nimrodlang #python #cplusplus :) |
19:54:01 | gradha | dom96: was it a prophecy? it was fact! |
19:54:09 | dom96 | gradha: :) |
19:54:35 | gradha | Araq: why not put your future talks/thingy/presentation as secondary source on wikipedia? is meatspace not a valid source? |
19:54:52 | dom96 | gradha: That's actually a good idea. |
19:54:59 | dom96 | Emerging langs is a secondary source |
19:55:13 | Araq | yeah but I haven't finished the slides |
19:55:20 | io2 | what about the ltu and hn discussions? anything there that could be of use? |
19:55:31 | dom96 | io2: Sadly no. |
19:55:43 | gradha | I don't mean the slides, the fact that people in real life, not just hikkikomoris, get to know about it. Maybe that's relevant? |
19:56:03 | dom96 | Yeah, the page which lists Araq's talk. |
19:56:13 | gradha | in fact, you could just not show up, but nimrod is still present in "the talks" |
19:56:57 | io2 | http://www.compileonline.com/compile_nimrod_online.php <000 anybody from here who did this? |
19:57:06 | gradha | also, may be worth checking the wikipedia pages of those other lans metnioned in the emerging langs thingy |
19:58:36 | io2 | Aha, so this is the talk: https://thestrangeloop.com/sessions/nimrod-a-new-approach-to-meta-programming |
20:00:12 | dom96 | argh, I can't keep up! HN, Twitter, here! |
20:00:55 | * | BitPuffin quit (Ping timeout: 242 seconds) |
20:03:06 | Mat2 | dom96: Probably HN as secondary reference is enough for Wikipedia |
20:03:19 | dom96 | Mat2: Nah, they don't accept stuff like HN I don't think. |
20:03:50 | * | EXetoC quit (Ping timeout: 240 seconds) |
20:04:36 | profmakx | get someone to write an academic paper that has nimrod mentioned/used in it |
20:06:17 | Araq | oh we had a guy written a kernel in it for an academic paper |
20:06:40 | gradha | fowl: the runTask is quite lacking, it doesn't even return a value, so no error checking can be done |
20:06:55 | Mat2 | I can write a paper for my compiler project (in fact I should write one at some stage) |
20:07:18 | fowl | gradha, what should it return? either the task completes successfully or quit() is called |
20:07:36 | profmakx | peer reviewed + published |
20:07:46 | profmakx | i think that is what got idris the "notability" |
20:08:13 | Mat2 | possible, only time consuming |
20:08:15 | profmakx | (iirc) |
20:08:29 | profmakx | well, for idris no problem since its a research project anyway. |
20:08:34 | profmakx | i think nimrod has more practical ambitions |
20:08:41 | fowl | gradha, write an example nakefile which uses task chaining before u make any changes like that |
20:09:03 | gradha | fowl: huh, what changes? |
20:09:13 | * | EXetoC joined #nimrod |
20:09:16 | fowl | making runtask() return something |
20:10:19 | gradha | ok |
20:10:29 | fowl | gradha, matter of fact, dont |
20:10:36 | fowl | because it will break all my nakefiles |
20:10:49 | fowl | like i said, success == quit() wasnt called |
20:12:16 | fowl | unless you can come up with a good example |
20:12:42 | gradha | no problem, I'll write procs wrapped in tasks |
20:15:25 | EXetoC | look, a few relevant entries in that twitter search! |
20:15:36 | EXetoC | I don't like names that aren't unique |
20:15:57 | EXetoC | just pick something that doesn't have 18 meanings already :> |
20:16:08 | fowl | today's convincing argument of the day: "Dear everyone, please stop using C as a compile target. Thanks." |
20:16:21 | fowl | lol that was redundant >_> |
20:16:26 | fowl | todays convincing argument of the day |
20:16:37 | io2 | so, asides dom96, who else is tweeting about nimrod that we should be following? |
20:16:42 | io2 | do some promo guys :) |
20:17:52 | Mat2 | fowl: Exist there any explanation for these posted statement ? |
20:18:13 | fowl | Mat2, that was the entirety of that comment |
20:18:56 | gradha | wow, can't create a hn account, too long nick |
20:19:44 | Mat2 | fowl: strange |
20:19:48 | EXetoC | your RL name you mean? :p |
20:19:53 | io2 | Araq: where is the paper about that? |
20:20:02 | gradha | EXetoC: just picked something random and had 16 chars |
20:20:10 | gradha | well, one less won't hurt |
20:21:22 | EXetoC | it's almost as optimal |
20:23:08 | gradha | there you go https://news.ycombinator.com/item?id=6273304 |
20:23:25 | gradha | not sure if mmfZ4e4OqQ7RRwP is as random as mmfZ4e4OqQ7RRwP2 |
20:25:03 | Araq | io2: the paper is still in the works |
20:26:33 | io2 | ok |
20:26:50 | dom96 | gradha: How will you ever log back in lol. |
20:26:54 | EXetoC | we should stop using the term 'paper'. we must be able to put the past behind us |
20:28:07 | gradha | dom96: my password is gradha, pretty convenient eh? |
20:28:25 | dom96 | haha |
20:28:39 | gradha | I guess i'll edit that comment and verbosely expand it to the limits of my knowledge of the english language |
20:28:41 | dom96 | gradha: In some parallel universe maybe. |
20:29:39 | * | xyproto joined #nimrod |
20:29:56 | Araq | hi xyproto, welcome |
20:30:08 | xyproto | Hi, thanks :) |
20:30:20 | xyproto | Just about to make nimrod an official Arch Linux package. A few more minutes now :) |
20:30:34 | Mat2 | hi xyproto |
20:30:43 | Mat2 | get some sleep, ciao |
20:30:51 | EXetoC | bb |
20:31:07 | * | Mat2 quit (Quit: Verlassend) |
20:31:10 | EXetoC | xyproto: great |
20:31:11 | xyproto | Just read through the tut1 and tut2 on the nimrod page. I really like the syntax. It's not doing bad in benchmarks either. |
20:31:18 | dom96 | xyproto: awesome :D |
20:31:29 | xyproto | dom96: hi :) |
20:31:48 | dom96 | Now rewrite pacman in Nimrod and I'll throw a party at my house :P |
20:32:09 | xyproto | dom96: hah ;) |
20:32:18 | EXetoC | win |
20:33:25 | io2 | actually that would not be that hard |
20:33:59 | io2 | a dag, network io and a parser |
20:34:48 | xyproto | Is "datadir" not used? the install.sh file doesn't seem to place anything there, as far as I can tell. |
20:36:30 | Araq | I think so; "datadir" is not used |
20:39:53 | xyproto | ok, thx |
20:40:30 | EXetoC | io2: and some sprites for the ghosts and that protagonist |
20:40:33 | EXetoC | the yellow guy |
20:40:55 | io2 | lol |
20:42:18 | xyproto | Ok, uploaded. Please let me know if it works as expected if any of you are using Arch. Thanks. |
20:42:39 | dom96 | xyproto: Awesome, thank you! |
20:43:36 | io2 | the question is, anybody tried to compile nimrod for android? |
20:43:37 | gradha | dom96: github is changing some URLs or IPs, just for fun I guess |
20:43:57 | gradha | io2: nothing special, works like any other C code |
20:44:07 | dom96 | gradha: huh? |
20:44:41 | io2 | gradha: meaning it does not have any problems? no patching required? |
20:44:52 | Araq | btw have you seen SO_REUSEPORT support for Linux? |
20:45:02 | Araq | should be quite handy |
20:45:21 | gradha | io2: the only thing I found difficult was dealing with the NDK and JNI |
20:45:36 | * | fowl quit (Remote host closed the connection) |
20:45:41 | gradha | dom96: https://github.com/blog/1606-ip-address-changes |
20:46:01 | gradha | hopefully that doesn't break any of the bots/builds |
20:47:06 | * | fowl joined #nimrod |
20:47:38 | dom96 | Araq: Yeah, I saw it. Haven't read much into it though. |
20:48:10 | dom96 | And it's Linux 3.9 only so I probably won't use it. |
20:48:38 | Araq | well at some point you will use Linux 3.9 I'm sure |
20:48:49 | gradha | io2: see https://github.com/gradha/nimrod-on-android, maybe it still compiles |
20:49:23 | dom96 | gradha: NimBuild is already using the Github API to grab the IPs so it should be fine. |
20:49:48 | io2 | gradha: thanks, still looking around before I dip in :) |
20:50:11 | fowl | what the hell is linux 3.9 |
20:50:17 | fowl | are they going version-number-crazy? |
20:50:37 | dom96 | looks like it |
20:50:57 | fowl | Linux 10.0 -- look for it next summer |
20:53:58 | xyproto | dom96: np. gtg :) |
20:54:14 | dom96 | xyproto: oh wait |
20:54:24 | dom96 | xyproto: Does that mean you will be responsible for updating the package now? |
20:59:31 | * | BitPuffin joined #nimrod |
20:59:38 | BitPuffin | Hmm |
20:59:42 | dom96 | Well, I tried: http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Nimrod_%28programming_language%29_%282nd_nomination%29 |
20:59:43 | BitPuffin | my laptop went cray cray |
21:02:14 | * | d34th joined #nimrod |
21:02:44 | dom96 | hello d34th |
21:02:50 | d34th | dom96: hey |
21:02:57 | * | dom96 notes we are close to 40 users! Record breaker! |
21:03:14 | d34th | saw it on ycombinator |
21:03:26 | d34th | made me think python and c had a sexy syntax child |
21:03:51 | d34th | really easy to get started on win32 from git |
21:05:49 | d34th | thought, in start.bat %CD% should be used instead of . |
21:08:33 | dom96 | I wasn't even aware of start.bat's existence hah |
21:09:24 | * | BitPuffin quit (Quit: WeeChat 0.4.1) |
21:13:18 | * | fowl quit (Quit: Leaving) |
21:14:03 | * | BitPuffin joined #nimrod |
21:21:22 | gradha | Araq: by the time you load search paths in the compiler they have all been resolved to full paths, maybe I should just iterate over all the directories found in the appended data? |
21:22:22 | gradha | it seems much easier than tracking all the path additions to searchPaths and somehow keeping them relative or creating an additional field to hold them |
21:22:46 | * | brson joined #nimrod |
21:23:02 | gradha | hrm... yeah, maybe I should treat the appended data as a virtual fs where all directories can be searched for |
21:25:19 | Araq | gradha: well I can't follow |
21:33:20 | gradha | paths are added in the form "/Users/gradha/project/nimrod/root/lib/pure" |
21:33:53 | gradha | so if using "data.getString("/system")" doesn't help much because of the prefix for string matching |
21:34:29 | gradha | I'll change it to simply look for system.nim in all appended directories |
21:34:44 | Araq | there used to be code for turning a full path into a relative path |
22:22:23 | * | filwit joined #nimrod |
22:22:31 | filwit | hey |
22:22:51 | dom96 | hey filwit! Noticed that we're at the top of HN eh? :P |
22:23:04 | filwit | just stopping by to say congrats on getting Nimrod into the Arch Linux Community repo |
22:23:12 | filwit | HN? |
22:23:21 | filwit | ps. hi |
22:23:29 | gradha | so it's true, only dom96 reads HN anyway |
22:23:41 | dom96 | Lies! |
22:23:41 | filwit | lol.. dunno what HN is.. |
22:23:51 | dom96 | There are many other people in this channel who do as well! |
22:23:52 | filwit | ah, hacker new |
22:23:54 | filwit | s |
22:24:13 | dom96 | Looks like I shouldn't assume these things. |
22:25:07 | dom96 | Yeah, I was really surprised when I saw xyproto asking me if I mind if its put in community. |
22:25:11 | filwit | well I noticed Nimrod on the top of updated packages on Arch homepage |
22:25:25 | filwit | and i know Nimrod wasn't in Arch main repos before |
22:25:44 | filwit | that's cool dom |
22:25:51 | filwit | glad there's a Arch maintainer now |
22:26:43 | dom96 | Also we're only 1 user off hitting 40 users here now! |
22:28:16 | filwit | nice! |
22:28:31 | filwit | wait.. |
22:28:34 | filwit | lol |
22:28:44 | filwit | has there never been more than 40 people here? |
22:28:58 | dom96 | indeed. |
22:29:03 | EXetoC | let's advertise in #php |
22:29:08 | filwit | lol |
22:29:13 | filwit | or #c++ |
22:29:57 | * | zahary quit (Ping timeout: 248 seconds) |
22:29:58 | filwit | or just go over to #archlinux and sing the praise about the new package in community |
22:30:06 | dom96 | nooo zahary |
22:32:07 | * | EfTwelve joined #nimrod |
22:32:24 | dom96 | damn it zahary, we would be at 40 by now. |
22:32:27 | dom96 | Hello EfTwelve! |
22:32:29 | Araq | hi EfTwelve, welcome |
22:32:36 | EfTwelve | hi |
22:32:49 | gradha | dom96: have you implemented user counting in NimBot? |
22:33:17 | dom96 | gradha: nah |
22:33:46 | filwit | lol dom, so close to 40 |
22:33:52 | filwit | missed it by a minute |
22:34:03 | dom96 | I know!!! |
22:39:01 | EfTwelve | hi, is there a binary package for the Aporia ide on windows> |
22:39:05 | EfTwelve | ? |
22:40:15 | dom96 | EfTwelve: This is a little bit old but may be enough to get you started: http://forum.nimrod-code.org/t/131/2#642 |
22:40:53 | dom96 | or you can compile Aporia yourself and reuse the GTK binaries given there |
22:41:05 | EfTwelve | awesome, ill try it out. tyvm |
22:41:37 | dom96 | np |
22:42:19 | gradha | goodnight |
22:42:23 | dom96 | bye gradha |
22:42:32 | * | gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=fS9CcTpA9i0 again) |
22:42:47 | dom96 | And we get further away from 40... |
22:42:50 | dom96 | :( |
22:43:59 | filwit | hmm.... why isn't this code working: https://gist.github.com/PhilipWitte/6336739 ? |
22:44:18 | filwit | says: "main.nim(11, 31) Error: undeclared identifier: 'name'" |
22:45:03 | dom96 | p.name |
22:45:18 | dom96 | Why did you write 'type(Person)'? |
22:45:23 | Araq | also you want typedesc[Person] instead of type(Person) |
22:45:31 | filwit | ahh.. that's right |
22:46:36 | filwit | dom: cause i want to right: var andrew = Person.new(name, age) |
22:46:43 | filwit | just a test |
22:46:47 | filwit | i remember doing this before |
22:46:47 | dom96 | yeah, I just noticed that heh |
22:47:07 | filwit | still isn't working thought |
22:50:10 | * | eco joined #nimrod |
22:50:54 | dom96 | hello eco! |
22:51:05 | eco | Hi |
22:51:12 | filwit | getting closer to 40$ |
22:51:16 | filwit | 40!** |
22:51:43 | dom96 | I swear if someone else leaves now... |
22:51:52 | * | filwit quit (Quit: Leaving) |
22:51:53 | * | eco left #nimrod (#nimrod) |
22:51:58 | * | eco joined #nimrod |
22:52:02 | eco | :P |
22:52:03 | dom96 | well hahaha |
22:52:20 | * | filwit joined #nimrod |
22:52:30 | filwit | sorry i had too :P |
22:52:31 | * | dom96 assassinates eco and filwit |
22:52:41 | filwit | lol |
22:59:16 | * | EfTwelve quit (Read error: Connection reset by peer) |
23:03:58 | * | circ-user-pJXz2_ joined #nimrod |
23:04:20 | Araq | duplicates don't count, dom96 |
23:04:41 | * | dom96 grumbles |
23:05:45 | * | circ-user-pJXz2 quit (Ping timeout: 246 seconds) |
23:13:57 | * | OrionPK joined #nimrod |
23:14:28 | Araq | OrionPK: invite a friend, make dom96 happy |
23:14:41 | OrionPK | hrmm? |
23:14:47 | dom96 | preferably a female friend |
23:15:13 | * | EfTwelve joined #nimrod |
23:15:18 | dom96 | YES! |
23:15:20 | dom96 | 40 users! |
23:15:25 | OrionPK | what female friends I do have are not programmers ;) |
23:15:37 | dom96 | EfTwelve: You are our 40th user! Congratulations! |
23:15:37 | OrionPK | HTML is stretching it |
23:15:47 | filwit | Congrats! |
23:15:50 | EfTwelve | yaay |
23:16:19 | EfTwelve | 40th of all time? |
23:16:58 | dom96 | 40th as a collective count of all users concurrently in this channel :P |
23:16:59 | filwit | well this is the first time Nimrod's hit 40 IRC users? that correct, dom? |
23:17:07 | dom96 | yes |
23:18:03 | EfTwelve | cool, my prize is that I get you annoy you with nimrod questions ;D |
23:18:17 | EfTwelve | for-ever! |
23:18:43 | dom96 | NoooooOooooOOOoooooOOOoooo. |
23:18:58 | dom96 | Although that is what this channel is mainly for... |
23:19:34 | dom96 | So actually. It's not an annoyance. :P |
23:20:38 | EfTwelve | Im testing nimrod to see if its a good fit for a re-write of a current project. im hoping there are no major threading+gc issues. |
23:21:43 | filwit | probably a question for Araq, though I don't know of any threading+gc issues |
23:21:54 | Araq | EfTwelve: how big is your project? |
23:22:12 | filwit | i believe Nimrods GC is per thread? |
23:22:35 | Araq | we're in desparate need for better/larger test cases for it tbh |
23:22:35 | EfTwelve | not too large about 10 files, each with a few hundred lines |
23:23:22 | * | SliceMeNice joined #nimrod |
23:23:41 | EfTwelve | its written and blitzmax, but the threadd gc in that language is an abomination. |
23:23:50 | EfTwelve | written in* |
23:23:55 | Araq | EfTwelve: please consider to add it to the test suite later |
23:24:11 | EfTwelve | ok |
23:24:47 | Araq | also ... if it doesn't work, I will do my best to make it work |
23:24:59 | Araq | hi SliceMeNice, welcome |
23:25:13 | SliceMeNice | Araq: hi there |
23:25:45 | EfTwelve | im going to be writing 4 or 5 toy programs first to a feel for the langauge |
23:29:07 | * | io2 quit () |
23:31:49 | * | fowl joined #nimrod |
23:37:58 | EfTwelve | i'm just starting out, so my first dumb question, is {.discardable.} the only way to define a void function? |
23:39:52 | EfTwelve | ok, i think i got it. |
23:41:35 | dom96 | {.discardable.} means that you do not need to explicitly discard the return value of the function |
23:48:14 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
23:49:34 | dom96 | aww, no 0 A.D. then? |