<< 25-08-2013 >>

00:47:34*q66 quit (Quit: Leaving)
01:08:46*darithorn joined #nimrod
01:12:27dom96hi darithorn
01:12:34darithornhello
01:17:37dom96If you have any questions about Nimrod then ask them quickly, i'm about to head to bed :)
01:25:55dom96good 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:25NewGuy_Hey guys, anyone awake?
06:11:50NewGuy_Well, for when someone comes back: Say I have a type TChild inherit from a type TParent.
06:12:31NewGuy_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:51AraqNewGuy_: you can use 'cast' but should use an ordinary type conversion
06:18:30NewGuy_Araq: That's what I meant, wrong term.
06:19:00Araqin general inheritance works much better with 'ref' though than directly with the value types
06:20:46NewGuy_Araq: Using the type in a channel between threads - wouldn't a ref type be a big no-no?
06:21:00Araqyeah but so would inheritance
06:21:25Araqchannels copy data so you would "slice" the object like in C++
06:22:05NewGuy_Araq: Yeup - that was what I was afraid of. So, what would you suggest here?
06:23:19Araqwell ... # XXX use dynamic type here! says my implementation -.-
06:23:40Araqso your use case should work but doesn't right now.
06:24:17NewGuy_Damn - I seem to be treading the bounds of Nimrod's current implementation, haha.
06:25:06Araqwell you can try to fix it
06:25:32Araqit's a 1 line change
06:25:43NewGuy_Hm? How so?
06:26:11Araqsystem/channels.nim line 124
06:26:17Araqreplace it by:
06:27:00AraqstoreAux(dest, src, pint[].node, t, mode)
06:28:17Araqhowever ... I think your way is ugly, you should pass a ptr instead or maybe some other handle
06:28:50Araqyou need a general ID mechanism for networking support anyway :P
06:30:01NewGuy_I do agree, I'm still just designing what I want to do, and this was one of a couple possible implementations.
06:30:55NewGuy_Well, thank you very much for the help, but I'm off to bed.
06:30:59NewGuy_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:13circ-user-pJXz2hi, a new user here. is dom96 here?
14:07:51AraqI'm here
14:08:00Araqmaybe I can help you too ;-)
14:28:08Araqhi circ-user-pJXz2, welcome
14:36:30*OrionPK joined #nimrod
14:49:11circ-user-pJXz2Hi, Araq. Just check back and saw your message. Thanks.
14:53:02circ-user-pJXz2ye. 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:29Araqthank you :-)
14:53:42circ-user-pJXz2again, i am pretty new. forgit me if my question is too naive:)
14:57:27circ-user-pJXz21. 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:45Araqthe compiler has a configuration system which uses --path
14:59:53circ-user-pJXz2"it seems the ide do not parse the imported module." I mean for its auto-complete g=feature
15:00:21Araqit does but auto-complete is still buggy
15:00:48Araqanyway the IDE supports compiling the current file or the "project"
15:01:18Araqthe project is determined by a file.nim which has a corresponding file.nimrod.cfg
15:01:34Araqthis is the way to mark a file as a project in nimrod
15:01:50Araqthe IDE looks in the current directory for the project
15:02:34AraqI'm not sure if it tries the parent directory should the current directory not have any project
15:04:31circ-user-pJXz2oo. 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:03circ-user-pJXz2another 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:19circ-user-pJXz2a pointer to a document anywhere should be sufficient for me. thanks again for your help and detail explaination.
15:09:43Araqthese things are all covered in the user guide: http://nimrod-code.org/nimrodc.html
15:10:06Araq.ini files are not used by the compiler but by some tools like niminst
15:15:05circ-user-pJXz2ok. will look at the document in detail. thanks again for your help.
15:16:33Araqyou're welcome
15:16:36Araqsee 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:50Mat2hi all together
17:00:30*OrionPK quit (Read error: Connection reset by peer)
17:11:09Araqhi Mat2
17:11:59Mat2hi 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:08Araqyou can only get a checked union
17:21:44Araqwell ... ok you can do everything with .emit
17:21:51Araqbut that's cheating
17:23:46Mat2as 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:16Araqwell use 'cast' then
17:25:02Mat2hmm, ok
17:25:07Mat2hi BitPuffin
17:25:31BitPuffinoi Mat2
17:26:20Mat2ahoi!
17:26:30Araqping zahary
17:27:06*gradha joined #nimrod
17:27:08BitPuffinwhat is up everybodeeey?<
17:30:48Mat2reading these blog (and agree): http://olimex.wordpress.com/2013/08/23/do-we-really-need-faster-computers-to-write-more-bloated-software/
17:32:24gradhaMat2: I'll consider machines are fast when I have one which encodes 4K 60fps video in real time
17:35:03gradhahowever I can relate to the sentiment of current crop of software being writen by monkeys with mega machines
17:35:43gradhain 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:50gradhapretty, but horribly useless
17:36:04Araq"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:05Araq.
17:36:07Araq...harder and worse, maybe too hard and too bad. Functional programming and multiple cores is a perfect marriage."
17:36:14Araqwow
17:36:16Mat2well, 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:30Araqthese Clojure guys are getting more annoying than the Rubyists ...
17:36:37Mat2*g*
17:36:50gradhaanother 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:00gradhabasically, for something which later performs worse than a grep command
17:39:00Mat2it's an Apple product, you know ?
17:39:41gradhasorry, forgot my status as a crippled user
17:40:07gradhaI'll return now to mouse clicking with a single button
17:41:08Araqone mouse button should be good enough for everyone
17:41:50EXetoCall you need is gestures, really
17:42:13Mat2originally, Apple designers favored mouses without any button at all
17:43:41Mat2hi EXetoC
17:43:56BitPuffinAraq: how does clojure get free paralellization?
17:44:04BitPuffinparallelization*
17:45:09Mat2I guess there limit functions to CPS form
17:45:11BitPuffinMat2: lol, really?
17:45:21BitPuffin(no buttons)
17:45:30Mat2BitPuffin: really
17:46:37BitPuffinlame
17:47:50Mat2and there success in building one: The no-button sensor mouse
17:48:03Mat2^had success
17:48:04BitPuffinscrew osx, crux is where it is at :D
17:48:14BitPuffinweird
17:48:22BitPuffinwell would it just click on everythnig or what?
17:49:44Mat2The initial Mac creator, Mr. Raskin had favored keyboard input (which you can see if you search about the Canon Cat)
17:50:07AraqBitPuffin: Clojure has no growing stacks so it cannot web scale
17:50:32BitPuffinbut can it sceb wale?
17:50:45*BitPuffin has never used clojure
17:51:28Araqoh it can likely use all of your 4 cores what C does on 1 core in the same time
17:51:59BitPuffinha!
17:52:50BitPuffinwell on the other hand
17:52:58BitPuffinsame is probably true for most dynamic langs
17:53:13Mat2I think its true that autoparallelization benefits from pure FP style
17:53:34Araqno because they all have a GIL and processes haven't been invented yet, BitPuffin
17:53:47BitPuffinAraq: ah, yeah that's true
17:53:52Mat2*lol*
17:53:55BitPuffinAraq: but the GIL kind of sucks?
17:55:13rndbitGIL is like jumping on one leg in the middle of the busy street
17:56:18Mat2sorry, what means GIL (Generic Immediate Language) ?
17:56:31gradhamaybe global interpreter lock
17:56:33rndbitnot globa interpreter lock?
17:56:57Araqglobal interpreter lock, yes
17:57:04BitPuffinnimrod should get that
17:57:31rndbitare you joking?
17:57:36BitPuffinand then you can pay for the full version that has it removed!
17:57:45BitPuffinno I am always extremely serious
17:57:48rndbit:))
17:57:55BitPuffin:)
17:58:06rndbitserious sam \o/
17:58:20BitPuffinrndbit: are you one of those who came over here because of the HN post?
17:58:40rndbitno idea what is HN. found nimrod in one post on stackoverflow
17:58:49Mat2nice, 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:54BitPuffinrndbit: just now?
17:59:10rndbitjust a week ago or so
17:59:17BitPuffinah
17:59:18BitPuffinwelcome
17:59:21AraqMat2: uh oh I think you got quite some things wrong
17:59:28rndbitthank you thank you!
17:59:35Araq1) it's "Clojure"
17:59:48Araq2) no it doesn't have a GIL as it runs on the JVM which has no GIL
17:59:55BitPuffinMat2: it is python and ruby etc that has a GIL
17:59:58rndbitwhat is HN tho?
17:59:58AraqPython is famous for the GIL
18:00:04BitPuffinwait
18:00:09BitPuffinruby removed its GIL
18:00:14BitPuffinand replaced it with the same thing
18:00:21BitPuffinwith a different name
18:00:23gradharndbit: hacker news
18:00:36*BitPuffin doesn't go there
18:00:45gradharndbit: presumably some kind of peregrination mecca for all procrastinators
18:01:10BitPuffinthe only one who uses it is dom96
18:01:14rndbitlol
18:03:47Mat2Araq, BitPuffin: oh, then interpret my statement in case of Phyton and Ruby (what a sad name by the way)
18:04:19rndbitrubbing rubbies la la la
18:04:38BitPuffinMat2: yep I did :)
18:04:53gradhaAraq: since you don't want any more gameras, next windows binaries could be the dongle edition?
18:05:23Araqgradha: the gamera joke is still to fresh to bother with a replacement
18:07:00gradhahave 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:06Mat2bye
18:08:43Mat2Araq: What's the strategy for perallel processing in Closure then ?
18:08:48Mat2^parallel
18:08:58dom96hello
18:09:05BitPuffinhey dom96!
18:09:08BitPuffinno see long time!
18:09:17*Mat2 bet its simply bringing the Lisp like statements in CPS form
18:09:26Mat2hi dom96
18:09:46dom96hello BitPuffin and Mat2
18:10:13BitPuffinAraq: I think we all still want to know more about this whole competitive concurrency thing
18:10:18dom96BitPuffin: I know, it's been over 24 hours! :P
18:11:01BitPuffindom96: probably about > 36!
18:11:09dom96:O
18:11:36zaharyhi Araq, what's up?
18:13:35AraqMat2: 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:44Araqzahary: how can we ever map a generic instantiation like 'TMatrix[3,3,float32]' to a native OpenCL matrix?
18:15:11zaharyonly by casting I guess
18:15:42Mat2Araq: uah, that's an horrible sacrifice of system ressources
18:15:49zaharyinterpret_cast for matrices between toolkits is standard business in C++
18:17:19Araqor we introduce a type pragma {.opencl.}
18:20:39zaharywhat 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:40Araqwell I want to compile Nimrod to OpenCL some day
18:22:53zaharythat's another story, it goes beyond the matrix type
18:23:01Araqof course
18:23:52zaharythe kernels have other limitations, use different compiler, etc. if the opencl pragma marks a kernel, that makes sense I guess
18:23:57dom96Araq: 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:39zaharyaren't the 180 stargazers at github also a sign of notability?
18:28:15Mat2dom96: 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:31dom96We need secondary reliable sources.
18:28:34dom96Which we do not have.
18:28:56EXetoCjust deal with it later then
18:29:00*freefall joined #nimrod
18:29:11Araqhi freefall, welcome
18:29:22freefallhi Araq.
18:29:29Mat2hi freefall
18:29:43freefallo/
18:30:18dom96hello freefall
18:30:23Mat2dom96: What about an article at osnews ?
18:31:05dom96Mat2: If we could get some reputable news site to write about Nimrod that would be great.
18:31:10dom96But can we get that?
18:31:45Mat2We can try it
18:33:46freefallis the whole compiler written in nimrod?
18:34:32dom96yep
18:35:40freefalllooks like the concurrency story is still in the works
18:36:15dom96Mat2: Maybe slashdot would be easier?
18:36:28*exhu joined #nimrod
18:37:21Mat2probably. 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:53dom96I wonder how popular osnews actually is
18:38:53exhuhi guys! just wanted to boast my pkg-config pragmas in cairo/fontconfig bindings to serve some use on mac =)
18:39:13Mat2hi exhu
18:39:14Araqfreefall: yeah but I'd argue it's still an open research problem everywhere
18:39:44Mat2dom96: the side is quite popular in the os-dev szene
18:40:44dom96Mat2: Then perhaps they would be interested in my nimkernel repo.
18:41:00Mat2slashdot however seem to bind a greather audience
18:41:03freefallAraq: 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:04exhustill have not found a replacement for pango, seems like reinventing the Gtk+ otherwise.
18:42:25Mat2dom96: indeed. It should however be of some minimal use. Maybee a project of creating a tiny operating system is something for you ?
18:43:00dom96Mat2: I would love to. But I have way too many projects going on right now heh.
18:44:18Araqfreefall: 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:45Araqnote that Go does neither
18:45:36Mat2dom96: ok, I clone your kernel stub and create a CP/M clone
18:45:59dom96Mat2: Awesome :D
18:46:33dom96Araq: Really? How come nobody has complained then yet?
18:47:17exhuMat2, 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:55freefallAraq: 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:06freefallAraq: 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:49AraqI disagree, sorry; I think they've done exceptionally bad given the kind of resources they have at their disposal
18:53:43freefallcan you be more specific? how would you prefer things work?
18:55:13freefalli'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:42Mat2exhu: well, there exist some nice boot loaders which bring back the fun again (like Pure64)
19:00:57Araqfreefall: they could at least provide STM
19:01:33exhuMat2, 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:45Araqor define the semantics so that thread local heaps are possible, freefall
19:04:24Mat2exhu: that's true to some extend (meantime there exist quite large assembler libraries for handling most standard components)
19:05:40exhuMat2, thanks for Pure64, i've googled an interesting site (BareMetalOS)
19:06:29freefallAraq: sure. i'm also unhappy about the comparatively primitive state of the GC.
19:09:53*exhu quit (Quit: Ex-Chat)
19:10:12freefallAraq: 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:29freefallhow do you feel about clojure's core.async?
19:19:53Mat2exhu: 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:40dom96holy shit what
19:21:47dom96Nimrod is at the top of HN
19:21:55fowlhi
19:23:42Mat2freefall: 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:48dom96hey fowl
19:23:53Mat2hi fowl
19:24:10fowlOne 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:16fowlppl trip over the smallest things
19:26:19BitPuffindom96: what?
19:26:44dom96BitPuffin: What do you mean what?! Look at https://news.ycombinator.com :P
19:26:53Araqfreefall: my knowledge about core.async is too weak to comment on it
19:27:02BitPuffindom96: yes I am looking already
19:27:05BitPuffinthat's nice
19:30:28EXetoCfowl: indeed
19:31:44EXetoCoh, you mean you think it's better that way because nubs won't complain as much?
19:32:21freefallAraq: this is a pretty good short overview, fwiw: http://clojure.com/blog/2013/06/28/clojure-core-async-channels.html
19:32:34fowlEXetoC, no, the reason var is needed because it allows context-free parsing, makes writing a parser much easier
19:32:51EXetoCright
19:33:15Araqfreefall: oh I read that but that doesn't mean I can comment on it
19:33:26BitPuffindom96: "This looks good. However according to the web framework benchmark its performance looks pretty underwhelming, below that of Python and Ruby:"
19:33:30BitPuffindom96: :(
19:33:33BitPuffindom96: he's wrong!
19:33:36BitPuffinON THE INTERNET
19:33:39dom96I replied.
19:33:41dom96:P
19:34:13dom96"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:21freefallAraq: 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:39Araqdom96: lol
19:35:45Araqnow see what you did :P
19:35:56dom96hey, I defended your honor.
19:35:59fowlEXetoC, plus what would var x = 42 look like without it? it would have to be like auto x = 42
19:36:10dom96Araq: You better get in there and start defending Nimrod too :P
19:37:43EXetoCfowl: yeah, I think it improves readability; especially when grouping multiple vars together
19:39:03BitPuffinI don't understand how nimrod can be slower than ldmd2
19:39:48BitPuffinstill nice to be faster than g++ :)
19:40:15EXetoCis that surprising? I thought it was mostly dmd that sucked
19:40:48BitPuffinEXetoC: well yeah DMD isn't all that great, but ldmd and nimrod with clang, nimrod should win :P
19:41:19dom96BitPuffin: With that benchmark we could really have been micro-optimising endlessly.
19:43:06EXetoC0ad 2v2 later, ok? dom and I vs BitPuffin and an easy bot
19:43:40BitPuffinlol
19:43:43BitPuffinan easy bot
19:43:45BitPuffingtfo :)
19:44:09BitPuffinmore like me and dom96 against EXetoC and 3 hard bots
19:44:11BitPuffinbut no
19:44:21fowli have a little time
19:44:22BitPuffinI haven't set up my graphics driver yet on my desktop xD
19:44:30fowlis there any projects that someone needs help with
19:44:49*io2 joined #nimrod
19:45:12dom96fowl: Aporia always.
19:45:22Araqdom96: HN had their chance, nobody cared about our 0.9.2 release notes
19:45:24io2dom96: nice interaction on hn
19:45:24fowlwhats up with aporia
19:46:15dom96fowl: I've spent a lot of my time working on async stuff and well... I had no time for Aporia.
19:46:26dom96io2: Thanks. I try my best.
19:46:46dom96Araq: I think people will appreciate your presence.
19:47:25dom96ooh, someone wants to move the AUR nimrod package to [community]
19:47:32dom96Guys! This is what notability feels like! :P
19:48:28BitPuffinjust as I stopped using arch :D
19:48:31BitPuffinlol
19:48:35dom96hah
19:48:42io2is there a tag we should use about nimrod
19:48:56BitPuffinyou mean like hash tag?
19:48:57io2I wrote about it in my g+ stream
19:48:59io2yeah
19:49:11dom96I think #nimrod is fine.
19:49:48dom96I'd say the word 'nimrod' is not used often in other contexts.
19:50:16BitPuffinonly in religion
19:50:50io2how about #nimrodlang
19:50:57io2or, #nimrodcode
19:51:10fowl#three-e's
19:51:18dom96sure. Use all 3 :P
19:51:34fowlhttps://twitter.com/search?q=nimrod&src=typd
19:51:51BitPuffin#nim?
19:52:01Mat2naram-sin ?
19:52:29dom96wow, surprised at the effect HN has
19:52:34*gradha joined #nimrod
19:53:31dom96gradha: As you prophesied, 2013 is the year of Nimrod and we are at the top of HN!
19:53:33io2I used #nimrodlang #python #cplusplus :)
19:54:01gradhadom96: was it a prophecy? it was fact!
19:54:09dom96gradha: :)
19:54:35gradhaAraq: why not put your future talks/thingy/presentation as secondary source on wikipedia? is meatspace not a valid source?
19:54:52dom96gradha: That's actually a good idea.
19:54:59dom96Emerging langs is a secondary source
19:55:13Araqyeah but I haven't finished the slides
19:55:20io2what about the ltu and hn discussions? anything there that could be of use?
19:55:31dom96io2: Sadly no.
19:55:43gradhaI 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:03dom96Yeah, the page which lists Araq's talk.
19:56:13gradhain fact, you could just not show up, but nimrod is still present in "the talks"
19:56:57io2http://www.compileonline.com/compile_nimrod_online.php <000 anybody from here who did this?
19:57:06gradhaalso, may be worth checking the wikipedia pages of those other lans metnioned in the emerging langs thingy
19:58:36io2Aha, so this is the talk: https://thestrangeloop.com/sessions/nimrod-a-new-approach-to-meta-programming
20:00:12dom96argh, I can't keep up! HN, Twitter, here!
20:00:55*BitPuffin quit (Ping timeout: 242 seconds)
20:03:06Mat2dom96: Probably HN as secondary reference is enough for Wikipedia
20:03:19dom96Mat2: Nah, they don't accept stuff like HN I don't think.
20:03:50*EXetoC quit (Ping timeout: 240 seconds)
20:04:36profmakxget someone to write an academic paper that has nimrod mentioned/used in it
20:06:17Araqoh we had a guy written a kernel in it for an academic paper
20:06:40gradhafowl: the runTask is quite lacking, it doesn't even return a value, so no error checking can be done
20:06:55Mat2I can write a paper for my compiler project (in fact I should write one at some stage)
20:07:18fowlgradha, what should it return? either the task completes successfully or quit() is called
20:07:36profmakxpeer reviewed + published
20:07:46profmakxi think that is what got idris the "notability"
20:08:13Mat2possible, only time consuming
20:08:15profmakx(iirc)
20:08:29profmakxwell, for idris no problem since its a research project anyway.
20:08:34profmakxi think nimrod has more practical ambitions
20:08:41fowlgradha, write an example nakefile which uses task chaining before u make any changes like that
20:09:03gradhafowl: huh, what changes?
20:09:13*EXetoC joined #nimrod
20:09:16fowlmaking runtask() return something
20:10:19gradhaok
20:10:29fowlgradha, matter of fact, dont
20:10:36fowlbecause it will break all my nakefiles
20:10:49fowllike i said, success == quit() wasnt called
20:12:16fowlunless you can come up with a good example
20:12:42gradhano problem, I'll write procs wrapped in tasks
20:15:25EXetoClook, a few relevant entries in that twitter search!
20:15:36EXetoCI don't like names that aren't unique
20:15:57EXetoCjust pick something that doesn't have 18 meanings already :>
20:16:08fowltoday's convincing argument of the day: "Dear everyone, please stop using C as a compile target. Thanks."
20:16:21fowllol that was redundant >_>
20:16:26fowltodays convincing argument of the day
20:16:37io2so, asides dom96, who else is tweeting about nimrod that we should be following?
20:16:42io2do some promo guys :)
20:17:52Mat2fowl: Exist there any explanation for these posted statement ?
20:18:13fowlMat2, that was the entirety of that comment
20:18:56gradhawow, can't create a hn account, too long nick
20:19:44Mat2fowl: strange
20:19:48EXetoCyour RL name you mean? :p
20:19:53io2Araq: where is the paper about that?
20:20:02gradhaEXetoC: just picked something random and had 16 chars
20:20:10gradhawell, one less won't hurt
20:21:22EXetoCit's almost as optimal
20:23:08gradhathere you go https://news.ycombinator.com/item?id=6273304
20:23:25gradhanot sure if mmfZ4e4OqQ7RRwP is as random as mmfZ4e4OqQ7RRwP2
20:25:03Araqio2: the paper is still in the works
20:26:33io2ok
20:26:50dom96gradha: How will you ever log back in lol.
20:26:54EXetoCwe should stop using the term 'paper'. we must be able to put the past behind us
20:28:07gradhadom96: my password is gradha, pretty convenient eh?
20:28:25dom96haha
20:28:39gradhaI guess i'll edit that comment and verbosely expand it to the limits of my knowledge of the english language
20:28:41dom96gradha: In some parallel universe maybe.
20:29:39*xyproto joined #nimrod
20:29:56Araqhi xyproto, welcome
20:30:08xyprotoHi, thanks :)
20:30:20xyprotoJust about to make nimrod an official Arch Linux package. A few more minutes now :)
20:30:34Mat2hi xyproto
20:30:43Mat2get some sleep, ciao
20:30:51EXetoCbb
20:31:07*Mat2 quit (Quit: Verlassend)
20:31:10EXetoCxyproto: great
20:31:11xyprotoJust 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:18dom96xyproto: awesome :D
20:31:29xyprotodom96: hi :)
20:31:48dom96Now rewrite pacman in Nimrod and I'll throw a party at my house :P
20:32:09xyprotodom96: hah ;)
20:32:18EXetoCwin
20:33:25io2actually that would not be that hard
20:33:59io2a dag, network io and a parser
20:34:48xyprotoIs "datadir" not used? the install.sh file doesn't seem to place anything there, as far as I can tell.
20:36:30AraqI think so; "datadir" is not used
20:39:53xyprotook, thx
20:40:30EXetoCio2: and some sprites for the ghosts and that protagonist
20:40:33EXetoCthe yellow guy
20:40:55io2lol
20:42:18xyprotoOk, uploaded. Please let me know if it works as expected if any of you are using Arch. Thanks.
20:42:39dom96xyproto: Awesome, thank you!
20:43:36io2the question is, anybody tried to compile nimrod for android?
20:43:37gradhadom96: github is changing some URLs or IPs, just for fun I guess
20:43:57gradhaio2: nothing special, works like any other C code
20:44:07dom96gradha: huh?
20:44:41io2gradha: meaning it does not have any problems? no patching required?
20:44:52Araqbtw have you seen SO_REUSEPORT support for Linux?
20:45:02Araqshould be quite handy
20:45:21gradhaio2: 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:41gradhadom96: https://github.com/blog/1606-ip-address-changes
20:46:01gradhahopefully that doesn't break any of the bots/builds
20:47:06*fowl joined #nimrod
20:47:38dom96Araq: Yeah, I saw it. Haven't read much into it though.
20:48:10dom96And it's Linux 3.9 only so I probably won't use it.
20:48:38Araqwell at some point you will use Linux 3.9 I'm sure
20:48:49gradhaio2: see https://github.com/gradha/nimrod-on-android, maybe it still compiles
20:49:23dom96gradha: NimBuild is already using the Github API to grab the IPs so it should be fine.
20:49:48io2gradha: thanks, still looking around before I dip in :)
20:50:11fowlwhat the hell is linux 3.9
20:50:17fowlare they going version-number-crazy?
20:50:37dom96looks like it
20:50:57fowlLinux 10.0 -- look for it next summer
20:53:58xyprotodom96: np. gtg :)
20:54:14dom96xyproto: oh wait
20:54:24dom96xyproto: Does that mean you will be responsible for updating the package now?
20:59:31*BitPuffin joined #nimrod
20:59:38BitPuffinHmm
20:59:42dom96Well, I tried: http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Nimrod_%28programming_language%29_%282nd_nomination%29
20:59:43BitPuffinmy laptop went cray cray
21:02:14*d34th joined #nimrod
21:02:44dom96hello d34th
21:02:50d34thdom96: hey
21:02:57*dom96 notes we are close to 40 users! Record breaker!
21:03:14d34thsaw it on ycombinator
21:03:26d34thmade me think python and c had a sexy syntax child
21:03:51d34threally easy to get started on win32 from git
21:05:49d34ththought, in start.bat %CD% should be used instead of .
21:08:33dom96I 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:22gradhaAraq: 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:22gradhait 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:02gradhahrm... yeah, maybe I should treat the appended data as a virtual fs where all directories can be searched for
21:25:19Araqgradha: well I can't follow
21:33:20gradhapaths are added in the form "/Users/gradha/project/nimrod/root/lib/pure"
21:33:53gradhaso if using "data.getString("/system")" doesn't help much because of the prefix for string matching
21:34:29gradhaI'll change it to simply look for system.nim in all appended directories
21:34:44Araqthere used to be code for turning a full path into a relative path
22:22:23*filwit joined #nimrod
22:22:31filwithey
22:22:51dom96hey filwit! Noticed that we're at the top of HN eh? :P
22:23:04filwitjust stopping by to say congrats on getting Nimrod into the Arch Linux Community repo
22:23:12filwitHN?
22:23:21filwitps. hi
22:23:29gradhaso it's true, only dom96 reads HN anyway
22:23:41dom96Lies!
22:23:41filwitlol.. dunno what HN is..
22:23:51dom96There are many other people in this channel who do as well!
22:23:52filwitah, hacker new
22:23:54filwits
22:24:13dom96Looks like I shouldn't assume these things.
22:25:07dom96Yeah, I was really surprised when I saw xyproto asking me if I mind if its put in community.
22:25:11filwitwell I noticed Nimrod on the top of updated packages on Arch homepage
22:25:25filwitand i know Nimrod wasn't in Arch main repos before
22:25:44filwitthat's cool dom
22:25:51filwitglad there's a Arch maintainer now
22:26:43dom96Also we're only 1 user off hitting 40 users here now!
22:28:16filwitnice!
22:28:31filwitwait..
22:28:34filwitlol
22:28:44filwithas there never been more than 40 people here?
22:28:58dom96indeed.
22:29:03EXetoClet's advertise in #php
22:29:08filwitlol
22:29:13filwitor #c++
22:29:57*zahary quit (Ping timeout: 248 seconds)
22:29:58filwitor just go over to #archlinux and sing the praise about the new package in community
22:30:06dom96nooo zahary
22:32:07*EfTwelve joined #nimrod
22:32:24dom96damn it zahary, we would be at 40 by now.
22:32:27dom96Hello EfTwelve!
22:32:29Araqhi EfTwelve, welcome
22:32:36EfTwelvehi
22:32:49gradhadom96: have you implemented user counting in NimBot?
22:33:17dom96gradha: nah
22:33:46filwitlol dom, so close to 40
22:33:52filwitmissed it by a minute
22:34:03dom96I know!!!
22:39:01EfTwelvehi, is there a binary package for the Aporia ide on windows>
22:39:05EfTwelve?
22:40:15dom96EfTwelve: 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:53dom96or you can compile Aporia yourself and reuse the GTK binaries given there
22:41:05EfTwelveawesome, ill try it out. tyvm
22:41:37dom96np
22:42:19gradhagoodnight
22:42:23dom96bye gradha
22:42:32*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=fS9CcTpA9i0 again)
22:42:47dom96And we get further away from 40...
22:42:50dom96:(
22:43:59filwithmm.... why isn't this code working: https://gist.github.com/PhilipWitte/6336739 ?
22:44:18filwitsays: "main.nim(11, 31) Error: undeclared identifier: 'name'"
22:45:03dom96p.name
22:45:18dom96Why did you write 'type(Person)'?
22:45:23Araqalso you want typedesc[Person] instead of type(Person)
22:45:31filwitahh.. that's right
22:46:36filwitdom: cause i want to right: var andrew = Person.new(name, age)
22:46:43filwitjust a test
22:46:47filwiti remember doing this before
22:46:47dom96yeah, I just noticed that heh
22:47:07filwitstill isn't working thought
22:50:10*eco joined #nimrod
22:50:54dom96hello eco!
22:51:05ecoHi
22:51:12filwitgetting closer to 40$
22:51:16filwit40!**
22:51:43dom96I 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:02eco:P
22:52:03dom96well hahaha
22:52:20*filwit joined #nimrod
22:52:30filwitsorry i had too :P
22:52:31*dom96 assassinates eco and filwit
22:52:41filwitlol
22:59:16*EfTwelve quit (Read error: Connection reset by peer)
23:03:58*circ-user-pJXz2_ joined #nimrod
23:04:20Araqduplicates 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:28AraqOrionPK: invite a friend, make dom96 happy
23:14:41OrionPKhrmm?
23:14:47dom96preferably a female friend
23:15:13*EfTwelve joined #nimrod
23:15:18dom96YES!
23:15:20dom9640 users!
23:15:25OrionPKwhat female friends I do have are not programmers ;)
23:15:37dom96EfTwelve: You are our 40th user! Congratulations!
23:15:37OrionPKHTML is stretching it
23:15:47filwitCongrats!
23:15:50EfTwelveyaay
23:16:19EfTwelve40th of all time?
23:16:58dom9640th as a collective count of all users concurrently in this channel :P
23:16:59filwitwell this is the first time Nimrod's hit 40 IRC users? that correct, dom?
23:17:07dom96yes
23:18:03EfTwelvecool, my prize is that I get you annoy you with nimrod questions ;D
23:18:17EfTwelvefor-ever!
23:18:43dom96NoooooOooooOOOoooooOOOoooo.
23:18:58dom96Although that is what this channel is mainly for...
23:19:34dom96So actually. It's not an annoyance. :P
23:20:38EfTwelveIm 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:43filwitprobably a question for Araq, though I don't know of any threading+gc issues
23:21:54AraqEfTwelve: how big is your project?
23:22:12filwiti believe Nimrods GC is per thread?
23:22:35Araqwe're in desparate need for better/larger test cases for it tbh
23:22:35EfTwelvenot too large about 10 files, each with a few hundred lines
23:23:22*SliceMeNice joined #nimrod
23:23:41EfTwelveits written and blitzmax, but the threadd gc in that language is an abomination.
23:23:50EfTwelvewritten in*
23:23:55AraqEfTwelve: please consider to add it to the test suite later
23:24:11EfTwelveok
23:24:47Araqalso ... if it doesn't work, I will do my best to make it work
23:24:59Araqhi SliceMeNice, welcome
23:25:13SliceMeNiceAraq: hi there
23:25:45EfTwelveim 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:58EfTwelvei'm just starting out, so my first dumb question, is {.discardable.} the only way to define a void function?
23:39:52EfTwelveok, i think i got it.
23:41:35dom96{.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:34dom96aww, no 0 A.D. then?