<< 08-12-2014 >>

00:00:55reactormonkAraq_, /msg chanserv set #nimrod mlock +if #nim
00:03:39reactormonkIs an addr managed by nimrod?
00:03:52Araq_no
00:03:56*starless quit (Quit: WeeChat 1.0.1)
00:04:10reactormonkSo is https://github.com/Araq/Nimrod/issues/1715 relevant? Shouldn't it be a[] ?
00:05:09Araq_clang errors means we produce wrong C code
00:05:25Araq_surely it's a valid bug no matter what
00:10:25fowllooks like valid code
00:21:04*jasondotstar joined #nimrod
00:21:30*jasondotstar quit (Remote host closed the connection)
00:31:31*flaviu joined #nimrod
00:35:42Araq_good night
00:35:44*rpag_ quit (Ping timeout: 256 seconds)
00:48:29*flaviu quit (Ping timeout: 264 seconds)
00:56:05*q66 quit (Quit: Leaving)
00:57:08*Trustable quit (Quit: Leaving)
00:57:17*Asdf joined #nimrod
00:59:12*Asdf quit (Client Quit)
01:05:27*flaviu joined #nimrod
01:06:10*q66 joined #nimrod
01:36:13*fowl quit (Quit: Leaving)
01:42:28*rpag_ joined #nimrod
02:00:21*brson quit (Quit: leaving)
02:28:37*q66 quit (Quit: Leaving)
02:37:01*darkf joined #nimrod
02:40:44*BitPuffin quit (Read error: Connection reset by peer)
02:49:06*rpag_ quit (Ping timeout: 250 seconds)
03:07:50*Demos joined #nimrod
03:18:29*EXetoC quit (Ping timeout: 250 seconds)
03:28:35*flaviu quit (Remote host closed the connection)
03:28:49*flaviu joined #nimrod
03:44:40*flaviu quit (Ping timeout: 255 seconds)
03:48:08*rpag_ joined #nimrod
03:51:00*willwillson quit (Ping timeout: 244 seconds)
04:35:14*gokr quit (Ping timeout: 245 seconds)
04:47:29*gokr joined #nimrod
05:12:21*endou_____ quit (Ping timeout: 272 seconds)
05:13:12*endou_____ joined #nimrod
05:37:17*ARCADIVS joined #nimrod
05:45:21*khmm joined #nimrod
05:51:32*khmm quit (Ping timeout: 250 seconds)
05:54:21*khmm joined #nimrod
06:13:47*TylerE quit (Ping timeout: 272 seconds)
06:16:16*dts|pokeball quit (Read error: Connection reset by peer)
06:16:42*TylerE joined #nimrod
06:17:09*dts|pokeball joined #nimrod
06:25:26VarriountAll in all, even taking into account java's... shortcomings, Qt is so much more flexible.
06:33:40*Skrylar joined #nimrod
06:33:51*Skrylar left #nimrod (#nimrod)
07:16:39*gokr_ joined #nimrod
07:17:46*bjz joined #nimrod
07:38:01*CARAM_ quit (Ping timeout: 272 seconds)
07:40:12*CARAM_ joined #nimrod
07:42:20*gokr_ quit (Read error: Connection reset by peer)
07:42:57*gokr_ joined #nimrod
07:54:17*rpag_ quit (Ping timeout: 240 seconds)
08:03:16*gour joined #nimrod
08:04:54*dts|pokeball is now known as pokeball|dts
08:05:32*pokeball|dts is now known as dts|pokeball
08:05:52*shodan45 quit (Quit: Konversation terminated!)
08:28:09*milosn quit (Ping timeout: 245 seconds)
08:33:35*yglukhov joined #nimrod
08:36:52gokrMorning fellas
08:46:40*milosn joined #nimrod
08:46:45*dts|pokeball is now known as dts|supersaiyan
08:46:57*BlaXpirit quit (Ping timeout: 240 seconds)
09:08:10*irrequietus joined #nimrod
09:10:25*gour quit (Quit: Konversation terminated!)
09:22:38*Trustable joined #nimrod
09:26:41*gour joined #nimrod
10:42:55*gour quit (Quit: Konversation terminated!)
11:02:20*gour joined #nimrod
11:02:21*gour quit (Changing host)
11:02:21*gour joined #nimrod
11:31:04*nullmove joined #nimrod
11:31:55*flaviu joined #nimrod
11:37:34nullmoveHi, are the development docs gone permanently?
11:37:46nullmovewhat about the channel log?
11:37:54*gour_ joined #nimrod
11:41:10*gour quit (Ping timeout: 244 seconds)
11:43:15*gour_ is now known as gour
11:46:53wanthe new link for the channel log is in the room topic
11:49:49nullmoveah I forget to read that first
11:56:19*flaviu quit (Ping timeout: 252 seconds)
11:59:29*yglukhov_ joined #nimrod
12:00:48*EXetoC joined #nimrod
12:01:37*yglukhov quit (Ping timeout: 240 seconds)
12:03:07*yglukhov__ joined #nimrod
12:05:55*yglukhov_ quit (Ping timeout: 272 seconds)
12:21:58*q66[lap] quit (Ping timeout: 250 seconds)
12:34:47*nickles joined #nimrod
12:35:34nickleshttp://build.nimrod-lang.org/ seems to be off-line. Is this an error, or is a shift going on?
12:37:54EXetoCI don't know. build.nim-lang.org works, but it doesn't take you to the build page
12:59:06*BitPuffin joined #nimrod
13:12:39gokrWondering why there is initTable, newTable, and initSet but no newSet.
13:28:08gokrVarriount: Wonder if something changed, my two Linux buildslaves are offline. I do know I had to reboot the x64 box, and forgot to start slave - but... it doesn't seem to want to connect.
13:35:32*BlaXpirit joined #nimrod
13:48:31*ARCADIVS quit (Quit: ARCADIVS)
14:08:12*willwillson joined #nimrod
14:13:29*nullmove left #nimrod ("Leaving")
14:15:27*untitaker quit (Read error: Connection reset by peer)
14:20:53*willwillson quit (Ping timeout: 264 seconds)
14:22:49nicklesWhere would I get help on the commands usable here?
14:24:48*untitaker joined #nimrod
15:00:08*Araq0 joined #nimrod
15:00:42*darkf quit (Quit: Leaving)
15:01:16*irrequietus quit ()
15:06:12*saml joined #nimrod
15:08:57*Araq0 quit (Quit: Page closed)
15:10:11*brson joined #nimrod
15:16:28nicklesNo one?
15:18:11*nickles quit ()
15:22:17dom96Anybody feel like writing some benchmarks? Port this to Nim https://github.com/logicchains/LPATHBench
15:31:48onionhammerlooks pretty small, might do it
15:33:41def-nimrod forum down as well I think
15:34:11def-or the entire website
15:39:58*BlaXpirit quit (Read error: Connection reset by peer)
15:56:32*khmm quit (Ping timeout: 245 seconds)
15:58:32dom96def-: works for me
15:59:14EXetoCyes now it does
15:59:53def-dom96: yeah, it's back for me as well
16:03:45dom96I think there is something odd going on with the DNS
16:19:24*mko joined #nimrod
16:22:09*Boscop is now known as Boscop_
16:22:14*Boscop_ is now known as Boscop
16:27:23*irrequietus joined #nimrod
16:42:08*milosn quit (Ping timeout: 260 seconds)
16:45:14*mwbrown joined #nimrod
16:50:16*mwbrown quit (Quit: Leaving)
16:50:35*mwbrown joined #nimrod
16:53:09*Matthias247 joined #nimrod
17:06:40*dom96_ quit (Ping timeout: 258 seconds)
17:19:11*yeye123 joined #nimrod
17:24:13*Araq0 joined #nimrod
17:24:18*q66 joined #nimrod
17:24:44Araq0dom96: the forum is hardly usable: "Error: Subject not long enough" when I try to reply.
17:25:04Araq0But there is not even a subject field to fill in anymore
17:27:28*willwillson joined #nimrod
17:28:17*gokr_ quit (Ping timeout: 240 seconds)
17:29:28*BlaXpirit joined #nimrod
17:29:53*gokr_ joined #nimrod
17:33:20willwillsonmaybe it would be a good idea to update http://nimrod-lang.org/community.html so that the irc logs link points to the new location
17:35:23Araq0willwillson: will do tonight, already noticed
17:35:46willwillsonok, sounds good :D
17:36:16*yglukhov__ quit (Ping timeout: 255 seconds)
17:36:18Araq0maybe I will even manage to update the website so it uses the forum's design ...
17:38:49willwillson:O that would be impressive
17:38:53Araq0it's crap that we now use 2 different designs ...
17:39:30*gokr_ quit (Read error: Connection reset by peer)
17:39:58willwillsonfunction over form ;-)
17:40:23*gokr_ joined #nimrod
17:43:07*dts|supersaiyan is now known as dts|pokeball
17:43:13willwillsonwill finalizers be around in 1.0?
17:44:57ldleworkSo are we forgoing a 0.10.2 release?
17:45:54*dom96_ joined #nimrod
17:46:02Araq0willwillson: finalizers yes, destructors are ending up in {.experimental.}
17:46:03dom96_Araq0: I know. I already reported that bug on github.
17:46:09dom96_Will fix it ASAP
17:46:15Araq0excellent
17:46:18dom96_At least the forum is still running :)
17:46:31dom96_Also. I can set up a redirect for build.nimrod-lang.org/irclogs
17:48:27Araq0ldlework: I don't know. it's only a name though. 0.10.2 vs 1.0 RC 1
17:48:43ldleworkAraq0: ah so at least we are not going to do a plain 1.0
17:49:55Araq0well nobody except me thinks that's a good idea :P
17:50:19Araq0when that happens I consider being wrong
17:51:00Araq0ldlework: any comment on my 'func' ideas?
17:51:21ldleworkAraq0: you're just excited, and reasonably so
17:51:28ldleworkin fact, I'm actually really excited for you
17:51:39ldleworkI hope you can keep your hat on :)
17:51:49ldleworkAraq0: I haven't see them, I assume they are on the forum
17:51:51*ldlework looks
17:52:47dom96_bbl
17:52:52*dom96_ quit (Quit: Page closed)
17:56:03ldleworkAraq0: It seems pretty obvious to me to make func a keyword asap
17:58:41*vendethiel quit (Ping timeout: 272 seconds)
17:59:24*gokr_ quit (Ping timeout: 245 seconds)
18:00:40*gokr_ joined #nimrod
18:03:29*vendethiel joined #nimrod
18:03:45Araq0ldlework: maybe, but we can also come up with clever hacks instead
18:04:03ldleworkAraq0: why would we want that
18:04:52Araq0in fact, I think Nimble packages should list the Nim version and then the compiler can degrade itself for certain packages
18:06:27yeye123for i in countup(1,4):
18:06:27yeye123 attach_defaults(table,label, i, i+1, i, i+1)
18:06:43yeye123can i change a int to a uint?
18:07:11Araq0no idea what attach_defaults is
18:07:25yeye123a gtk2 proc requiring guint
18:07:31Araq0you can use a type conversion from int to uint in general
18:08:34*Araq0 quit (Quit: Page closed)
18:09:40*mwbrown quit (Remote host closed the connection)
18:15:50*milosn joined #nimrod
18:22:50*q66 quit (Quit: Leaving)
18:23:40yeye123thanks, seems to be that it was a cint required, i'm not sure of the details here, but it works now
18:25:43*q66 joined #nimrod
18:26:23willwillsonyeye123: couldn't you just use i.guint or guint(i)?
18:29:11ldleworkEXetoC: your glfw wrapper is borked
18:33:13ldlework(just fyi)
18:37:28*rpag joined #nimrod
18:38:12*rpag quit (Read error: Connection reset by peer)
18:41:04EXetoCldlework: in what way?
18:41:29EXetoCsome call segfaulted for me for some reason, but that went away somehow
18:42:04ldleworkevents.nim(27, 34) Error: undeclared identifier: 'ffDecimal'
18:42:58EXetoCI forgot to push the fix
18:43:09EXetoCit should work now
18:44:48ldleworkhmm I guess I don't have glfw installed
18:44:49yeye123willwilson: is that how i change to guint?
18:44:55ldleworkI have libglfw2...
18:45:06ldleworkyeye123: that is how casting works yeah
18:45:21EXetoCthere's a binding but no wrapper for glfw 2
18:45:46yeye123am I allowed to cast the "i" in a for loop?
18:47:04ldleworkyeye123: why not?
18:47:22*irrequietus quit (Ping timeout: 255 seconds)
18:47:24yeye123I don't know
18:55:51willwillsonyeye123: you might get away with an unsigned countup and no type conversion: import unsigned; for i in countup(1'u64,4'u64)
18:57:01yeye123Idlework:works like a charm
18:57:10ldleworkare those "'"'s really required?
18:57:10yeye123willwilson:thanks for the tips!
18:57:55Araq_ldlework: no, but few people know this
18:59:41yeye123willwilson: tried uint64 now, it complains, seems it needs guint(i)
19:02:30willwillsonyeye123: yeah, my mistake, it is probably `distinct`, so you need an explicit conversion
19:02:36ldleworkAraq_: are you familiar with Monte?
19:03:24wanthe problem with the "'" is when your editor highlights the numbers differently if they are not there
19:03:52ldleworkwan: sounds like your syntax highlighter needs an update
19:04:04Araq_ldlework: no.
19:04:27ldleworkAraq_: its some guys that I know from the Python community who are writing a new modern implementation of (essentially) E
19:04:36ldleworkI asked them if they knew about Nim and here were there responses:
19:05:03ldleworksimpson | Yeah. Nim's cute, and I'm glad that it exists, because it validates an area of research, but it doesn't feel very compelling.
19:05:12ldleworkdash | there's nothing egregiously wrong with it but it doesn't address the use cases i care about
19:05:24ldleworksimpson | Hm. Mostly what compels me to look at a new language is what problem it solves that hasn't been tackled or solved before.
19:05:38ldleworkldlework | I think that a language (actually) at the level of C (unlike Golang) that has generics, traits, and AST macros is pretty compelling.
19:05:40ldleworkldlework | simpson: don't you think that's fair?
19:05:49ldleworksimpson | ldlework: A little, but I already like and know Haskell.
19:07:49*rpag joined #nimrod
19:08:09ldleworkldlework | dash: what is the usecase that you mentioned Nim doesn't serve?
19:08:26ldlework dash | ldlework: safe execution of mutually suspicious code
19:08:27ldlework dash | ldlework: that's pretty much the only reason i'm working on monte
19:08:29ldleworkldlework | dash: like code in a string you get from a user?
19:08:31ldlework dash | ldlework: yes, like (for example) a multiplayer game server that runs arbitrary user-submitted code
19:08:51ldleworkdash | where different users' functions/objects get to invoke each other
19:08:56Araq_maybe you should pastebin this conversation instead
19:09:03ldleworksorry, its ongoing
19:09:08ldleworkI'll stop though
19:09:17Araq_and dash's use case is dealt by Nim's effect system
19:10:03*untitaker quit (Quit: ZNC - http://znc.in)
19:10:08*rpag quit (Remote host closed the connection)
19:10:55Araq_ldlework: any link to Monte?
19:11:31ldleworkAraq_: mind coming into #monte for like 5 minutes
19:11:58ldleworkI just want to hear this short discussion about Monte's usecase and Nim's effect system
19:18:17*milosn quit (Read error: Connection reset by peer)
19:19:00*rpag joined #nimrod
19:19:00*milosn joined #nimrod
19:22:13*q66 quit (Remote host closed the connection)
19:22:42ldleworkThe code is quite clean
19:23:01ldleworkoops
19:24:32*q66 joined #nimrod
19:31:01*untitaker joined #nimrod
19:40:34*yeye123 left #nimrod ("Leaving")
19:44:13*q66[lap] joined #nimrod
19:46:28*Mat4 joined #nimrod
19:46:36Mat4hello
19:48:51Araq_servus
19:53:23Mat4hi Araq
20:22:33*starless joined #nimrod
20:26:48*PV joined #nimrod
20:33:17*gour quit (Remote host closed the connection)
20:35:38*gour joined #nimrod
20:36:35*gour quit (Client Quit)
20:37:01*dom96_ joined #nimrod
20:38:24*flaviu joined #nimrod
20:42:30gokrldlework: Ideas from E and Smalltalk has already been explored quite deeply in Croqute/Teatime which is the basis of our product.
20:42:37gokrCroquet.
20:43:03ldleworkgokr: I know that dash is very familiar with Croquet
20:45:17gokrOk, I see he has worked on porting OMeta to Python etc
20:52:03Mat4gokr: E as in Amiga E ?
20:52:21gokrE as in erights.org
20:52:48gokrDistributed computing based on eventual sends, promises, sandboxing by reachability etc etc
20:53:31onionhammerdom96_ https://github.com/onionhammer/LPATHBench/blob/patch-1/nim.nim
20:53:40gokrI am no expert in E - but several of those mechanisms are core to our system of bit identical synchronized computing.
20:56:01ldleworkgokr: so.. your company is basically betting on Nim?
20:58:06Mat4'E has two implementations: One based on Java and one based on Common Lisp', ... ok, this E
20:58:34*milosn quit (Ping timeout: 245 seconds)
20:58:35onionhammerAraq_ there might be an issue building a nim file named nim :p
20:59:00onionhammer(I didnt come up with the naming convention in that LPATHBench)
20:59:04Araq_onionhammer: why? the compiler itself is named that?
20:59:13onionhammerno idea, it just wouldnt work until i renamed it
21:00:09onionhammeroh no.. i see
21:00:16onionhammerafter you build it it takes precedence
21:00:25onionhammerout of your hands, nevermind
21:00:40*BitPuffin quit (Ping timeout: 260 seconds)
21:07:32*starless quit (Quit: WeeChat 0.4.2)
21:14:09*bjz quit (Ping timeout: 244 seconds)
21:14:40*BlaXpirit quit (Ping timeout: 260 seconds)
21:14:40*wan quit (Quit: WeeChat 1.0.1)
21:14:42*BlaXpirit-UA joined #nimrod
21:15:08willwillsonhow did nim do in the benchmark onion? did run any of the others? :D
21:26:20Araq_onionhammer: I would violate the naming convention
21:26:35ldleworkI need a programmer friend :(
21:28:31gokrSorry, was busy with the electrician here
21:29:50ldleworkIs there an ORM?
21:29:57Araq_ldlework: I'm your friend.
21:30:13ldleworkAraq_: I mean a friend to do stupid propgrammer-y things with
21:30:27gokrldlework: Yeah, well, its a long term transition. But yes, we are betting on Nim.
21:30:35ldleworkgokr: where are you?
21:30:54gokrI am at 3dicc.com
21:31:18gokrGeographically I am slightly north of Stockholm
21:31:19ldleworkI meant geologically
21:31:25ldleworkerr geographically :)
21:31:41gokrGeologically I am about 30 meter above sea level on a bed rock.
21:32:04gokrThat's Stockholm, Sweden.
21:32:14ldleworkI bet Sweden is awesome
21:33:17gokrI like it :)
21:34:02gokrThe rest of the company is in the US
21:34:54*milosn joined #nimrod
21:38:46Araq_so ... nobody seems to like my 'func' idea too much
21:39:32flaviuAraq_: Where is it?
21:39:43Araq_forum
21:40:37ldleworkAraq_: I like the func idea very much
21:41:37Araq_hrm ... NimBot should have announced a couple of commits by now
21:41:45flaviuI don't really like it, the same thing can be done with macros
21:41:53Matthias247gokr: seems like an in interesting company if they are open for such ideas ;)
21:42:01dom96onionhammer: Thank you for doing that!
21:42:16Araq_dom96: Nimbot is quiet! :-(
21:42:22gokrMatthias247: Its "we" not they :)
21:42:29flaviuand encouraging overloading a keyword like that doesn't sound like a good idea to me.
21:43:01Matthias247gokr: usually there are manager somewhere that are afraid of everything they don't know :)
21:43:36dom96Araq_: Yeah. It just does IRC logs.
21:43:50gokrHehe, 3DICC was born by developers - and our system is already written in very non mainstream tech, and design.
21:43:59Matthias247but most managers I know also don't have any clues of C++ or Java, so they should actually have no reason to be concerned ;)
21:44:21gokrAlso, we are small enough to not have any managers ;)
21:44:48ldleworkgokr: save me a spot for once Docker goes IPO I can sell out and come work for you guys
21:44:49Matthias247that's good. I think I should really move to a much much smaller company
21:45:22dom96onionhammer: I would also like to know how well the benchmark does against the other PLs. If it's not so good then get Araq_ to help you optimise it
21:45:28*BlaXpirit-UA quit (Ping timeout: 260 seconds)
21:45:29Matthias247ldlework: then you are so rich you can focus on playing around instead of working? ;)
21:45:33*BlaXpirit_UA joined #nimrod
21:46:05gokrMatthias247: We already play around. I mean... virtual reality, 3D out your ears, cloud yaddayadda and Nim? That's not work.
21:46:09ldleworkMatthias247: I doubt my options will pay off that much :D
21:46:15ldleworkgokr: :DDD
21:46:47gokrAnd the current codebase is all Smalltalk, which also is pure fun.
21:47:08ldleworkI would love to have a job where I just focused on internal tooling
21:47:13ldleworkI love automation
21:47:24Matthias247we are only bullshitting around :(
21:48:15Matthias247don't join any german mechanical engineering company if you are interested in software ;)
21:48:22gokrHehe
21:48:28Araq_dom96, onionhammer it has no obvious deficiencies
21:48:32Mat4Araq_: I prefer syntactical keywords like 'func' over explicit pragma usage. However, the naming may be irritating because it can not distinguished from functions with side effects. How about 'fn' as keyword ?
21:48:47Araq_or whatever it's spelt
21:49:14Araq_but this is a typical micro benchmark, it bores me to death
21:49:15ldleworkMat4: what do you mean it cannot be distinguished from functions?
21:49:27ldleworkproc and func are not exactly ambiguous
21:50:52Araq_dom96 well if Nimbot doesn't announce my awesome improvements it feels like I didn't do anything
21:51:34Mat4imperative languages as you know does not grant side-effect free functions so programmers who are familiar with such function behaviour and expect them may be confused
21:51:37Araq_how do I make a nimble package out of the compiler's sources?
21:51:41gokrAraq_: Was the idea that a template that is defined as "only pragmas" turns into some kind of ... "different proc"?
21:52:14ldleworkMat4: I guess I don't understand what you're saying
21:52:24Araq_gokr: the idea was to make 'func' programmable
21:52:25*stonecolddevin joined #nimrod
21:52:27*BlaXpirit_UA quit (Quit: Quit Konversation)
21:52:35Araq_hi stonecolddevin welcome
21:52:39gokrIn other words, would having this imply I can also create "fronc" that embodies some other kind of "proc" with another set of pragmas?
21:52:56Araq_no
21:53:03Araq_'func' is special
21:53:18ldleworkAraq_: we just need decorators
21:53:19Mat4Idlework: Possible translation problem
21:53:40gokrAraq_: Then the use of "template" in that line defining 'func' is slightly misleading. Or?
21:53:44dom96Araq_: You're going to have to be patient.
21:53:57ldleworkdom96: is there an ORM?
21:54:08stonecolddevinhi Araq_
21:54:13dom96ldlework: not that I know of
21:54:15Araq_gokr: yeah, I made that up
21:54:17ldleworkdom96: okay thanks
21:54:25gokrAraq_: Okidoki.
21:54:27ldleworkAraq_: lol
21:54:38flaviuldlework: Pragmas can be made decorators.
21:54:49ldleworkflaviu: what do you mean
21:55:02flaviuldlework: You can use a macro as a pragma iirc
21:55:09ldleworkwhaaaaat
21:55:17flaviuand macro functionality is a superset of decorator functionality.
21:55:21ldleworkhmm, I can't think of what that would even do
21:55:33flaviuldlework: http://nimrod-lang.org/manual.html#macros-as-pragmas
21:56:12ldleworkthat example is too small to understand
21:56:40ldleworkhi stonecolddevin
21:56:57flaviuseems straightforward: `proc p() {.m.} = discard` is sugar for `m: proc p() = discard`
21:57:48ldleworkbut what does m: do?
21:58:04ldleworkflaviu: like what if I wanted a pragma that converted the string output of a proc to all uppercase?
21:58:16Mat4is 'm:' a label ?
21:58:42Mat4variable ?
21:58:49Araq_a macro
21:59:03ldleworkidgi
21:59:16onionhammerAraq_ dom96 i only tested the C# one, it's about 3-3.5x faster
21:59:34onionhammeri'll test some of the others when i get home, im at work
21:59:35ldleworkWhat's the differnce betwee `m: proc p() = discard` and `proc p() = discard` ?
21:59:37dom96onionhammer: Ask logicalchains to see how it compares in your PR
22:01:16Mat4Araq_: Exist there a way to embed labels though a macro in Nim ?
22:01:27Araq_onionhammer: use 'int32' instead of 'int' to get a more meaningful comparison with C#
22:01:43Araq_maybe you're simply benchmarking your cache
22:02:34flaviuldlework: I guess you can convert the nnkProcDef to a nnkLambda, which you can then use however you might want to in a decorator.
22:03:03ldleworkflaviu: how's nimlets going?
22:03:04onionhammerdom96 Araq_ it's also the smallest of the benchmarks i think
22:03:15ldleworkI was going to give you a couple days to establish things before I started adding to it
22:03:19onionhammerthe clj one is shorter, but theres less whitespace
22:03:28onionhammererm, sorry, the "fs" one is shorter
22:03:30flaviuldlework: I won't have time for it tonight, but the C and python is all wrapped.
22:03:45Araq_Mat4: there is no 'goto' in Nim if that's what you mean
22:04:05ldleworkflaviu: You should like write a little bit on what you're trying to do. I don't know any of those libs that you involved.
22:04:17flaviuldlework: I'm currently working on the indexing, my idea is to cut off the top 20 or so words and place the rest in json.
22:04:38ldleworkflaviu: do you think you could write a tiny trivial-but-not-empty example of the decorator thing/
22:04:47flaviuldlework: Not tonight
22:04:51ldleworkk
22:05:00flaviuI shouldn't even be chatting in irc :(
22:05:08*flaviu quit (Quit: Leaving.)
22:05:52ldleworkI like flaviu
22:06:09Mat4Araq_: yes
22:19:22dts|pokeballwould it be possible to write a kernel in just nim and assembly
22:20:03willwillsondts|pokeball: https://github.com/dom96/nimkernel
22:20:40dts|pokeballdude awesome
22:29:11Araq_it's not possible. it's your moral obligation!
22:32:30dom96Araq_: Forum fixed.
22:32:43Araq_yay
22:32:45dom96Now i'm going to eat. Possibly the pizza you funded.
22:32:50Araq_I fixed 'echo' :P
22:32:58Araq_lies! I only funded beer.
22:36:27dts|pokeballim going to make an os in nim!
22:36:32dts|pokeballafter my compiler in nim!
22:37:06Araq_dts|pokeball: good. but an OS that doesn't suck is more important than yet another compiler :P
22:37:27Mat4why not start with the operating system and then the compiler (which run under your OS) ?
22:38:57*rpag quit (Ping timeout: 250 seconds)
22:39:09onionhammerAraqOS
22:39:29onionhammerMicrosoft AraqOS after you sell out to the ma
22:39:31onionhammern
22:40:38*wan joined #nimrod
22:42:02willwillsonI think they might rebrand it as it sounds abit too like IraqOS
22:48:17onionhammerMicrosoft Skype OS for Business
22:48:33onionhammer2020
22:49:11willwillsonsounds more like it ;-)
22:52:57*johnsoft quit (Ping timeout: 265 seconds)
22:53:10ldleworklol
22:54:07*johnsoft joined #nimrod
22:58:49Mat4Fensterln Version X
23:01:58Mat4ciao
23:02:12*Mat4 left #nimrod (#nimrod)
23:04:56dts|pokeballback
23:05:02dts|pokeballoops wrong channel
23:05:39dts|pokeballbecause this compiler is the start of a much needed addition to irc
23:06:01EXetoC?
23:06:48dts|pokeball?
23:07:08ldleworkdts|pokeball: still wrong channel
23:07:20ldleworkoh
23:07:22dts|pokeballldlework, no its not
23:07:31dts|pokeball<Araq_> dts|pokeball: good. but an OS that doesn't suck is more important than yet another compiler :P
23:07:34ldleworkyeah
23:07:55ldleworkhow does a compiler contribute to irc?
23:08:28*PV quit (Ping timeout: 246 seconds)
23:08:38dts|pokeballit contributes to the next stage of the project that contributes to irc
23:10:48EXetoCand that is? I don't follow
23:11:09ldleworkI'm lost also
23:11:16dts|pokeballits a compiler for a language designed to make an irc bot
23:12:39ldleworko_o
23:13:33Araq_dts|pokeball: you can make an irc bot in Nim
23:13:47EXetoCstandalone DSLs seem more an more unnecessary with the advent of extensible languages
23:13:58ldleworkEXetoC: I was just thinking that
23:14:06ldlework Iwas thinking "Well you could write a DSL with Nim.."
23:14:20ldlework"Wait! You could like include procedural code handlers in that DSL too, fuck Nim is awesome"
23:14:23ldleworkthose were my actual thoughts
23:15:04dts|pokeballAraq_, i know you can. but my partner in this was admanant on the compiler
23:15:35ldleworkI suddenly want to build an IRCBot DSL in Nim
23:15:38ldleworkffff
23:15:42dts|pokeballits fun
23:15:51Araq_ad, adman ... how many words does the language have?
23:16:00dts|pokeballmine?
23:16:08Araq_english
23:16:53ldleworkAraq_: lol what
23:17:54*dts|pokeball is confused
23:18:28*Araq_ switched to a better dictionary
23:18:31Araq_ok
23:18:38Araq_now I know what admanant means
23:20:04dts|pokeballoh you arent a native speaker?
23:21:27Araq_no.
23:21:34Araq_so let me get this straight:
23:21:44dts|pokeballyou speak good english btw
23:21:47dts|pokeballbetter than me
23:21:53Araq_you write a lexer and a parser and some transformations (aka compiler)
23:22:05dts|pokeballyes
23:22:21Araq_to get a language in which you then write a lexer and parser (aka irc bot) ?
23:22:30dts|pokeballyes
23:22:49Araq_what about parser generators?
23:22:57dts|pokeballno
23:23:11dts|pokeballim doing this completely from scratch
23:23:16dts|pokeballexcept the networking parts
23:23:34Araq_why not write a parser generator in Nim for nim?
23:23:40Araq_cause that's surely missing
23:23:46dts|pokeballill do that afterwords
23:23:59ldleworkDoesn't Nim have peg in the stdlib?
23:24:11ldlework(I don't know anything about what you're talking about)
23:24:31Araq_Nim's PEG is a poor man's regex stuff
23:24:50dts|pokeballdo you want a bison style parser generator?
23:24:54Araq_it can match, but it cannot construct any parse tree
23:25:01Araq_dts|pokeball: yeah
23:25:21dts|pokeballwhats the difference between a parse tree and an ast?
23:25:37Araq_there is none
23:25:43dts|pokeballok thats what i thought
23:25:44Araq_unless you're an academic
23:25:59dts|pokeballwhich i am not
23:26:02Araq_then "parse tree" means "something nobody would ever come up with"
23:26:46dts|pokeballwhat does nimbot do?
23:27:34Araq_"first you construct a concrete parse tree and then transform it to an *abstract* parse tree" -- and I was like "lol, as if anybody would ever do that"
23:27:53ldleworkAraq_: lol wait, the peg doesn't even return a tree!?
23:27:54dts|pokeballwhy not just start with an ast?
23:28:06Araq_dts|pokeball: exactly.
23:28:20Araq_ldlework: no, as I said, it's a regex replacement
23:28:34Araq_does a regex return a tree for you?
23:28:36ldleworkAraq_: aw I impressed some people with that
23:28:44ldleworkwe should totally have a legit peg in the stdlib
23:28:47ldlework^_^
23:28:53Araq_sure go ahead
23:29:04Araq_I don't care, pegs are overly simplistic
23:29:20Araq_you are better off implementing a real parsing algorithm
23:29:27ldleworkAraq_: the lojban language is specified in peg
23:29:34ldleworkI'm pretty sure it covers all cases
23:29:47ldleworkthe grammar, not peg in general
23:29:52dts|pokeballi might take a break from the compiler actually and get started on the nim parser generator
23:30:00ldleworkdts|pokeball: do ettttt
23:30:03dts|pokeballwhat should i call it?
23:30:04ldleworkso. useful.
23:30:21ldleworknibble
23:30:37dts|pokeballnibble? ok
23:30:42Araq_dts|pokeball: from0toTree
23:30:55ldleworknibble it is!
23:31:01ldlework:P
23:31:33Araq_happyTreeFriends
23:31:54*dts|pokeball adds nibble to his project list
23:32:29ldleworkAraq_: now you're getting the hang of it
23:32:55wanI wish there were more parser generators that would accept bnf/ebnf
23:33:13wanthen you'd have more and more syntaxes in ebnf
23:33:23wanthen a syntax highlighter could be based on those
23:33:37wanand a smart editor
23:33:50dts|pokeballim just going to put on monty python and the holy grail then ill get started
23:33:57ldleworkI understand peg because it is easy. Are other parser types much more complicated?
23:34:10ldleworkdts|pokeball: I love the feeling you're feeling right now
23:35:03Araq_no, they are easier cause they are declarative :P
23:35:22Araq_Peg is a 1 to 1 mapping to a parsing algorithm
23:35:36Araq_that's not really declarative
23:35:41dts|pokeballi want to be feeling drunk
23:35:49dts|pokeballbut im still under age :L
23:35:49ldleworkAraq_: hmm it feels declarative
23:36:30ldleworkAraq_: I wrote a thing once which was essentially the opposite of a peg
23:36:34Araq_ldlework: try a left recursion then
23:36:46Araq_ldlework: subexes?
23:36:56ldleworkAraq_: is that what it is called?
23:37:00*ldlework looks that up
23:37:08Araq_I invented these
23:37:13ldleworkno way
23:37:17ldleworkits in the stdlib haha
23:37:40ldleworkAraq_: how can you claim that? :P
23:38:06ldleworkAraq_: I remember a program back i nthe early 90's on my mac performa 575 called Kant Generator
23:38:15ldleworkWhich was essentially a subexe template editor
23:38:18Araq_I invented the term and wrote the implementation
23:38:42ldleworkIt had modules that would generate extremely real sounding nonsense written in the style of Emmanuel Kant
23:38:44Araq_and designed the mini language when I had some holidays
23:38:59Araq_you know, back then when I still had holidays
23:39:03ldleworkAnd other's that would generate emails to your boss why you had to take the day off
23:40:33dts|pokeballwould it be cheating to just take bison's source and make it better?
23:41:29Araq_dts|pokeball: no, that's much harder than rewriting it from scratch
23:41:34ldleworkAraq_: check it out, I wrote this in september, remembering randomly this program from my childhood when thinking about how to generate Lojban sentences for automatic testing of a student's reading comprehension: https://gist.github.com/dustinlacewell/7ed9be6399c43368bd7d
23:41:52dts|pokeballAraq_, good point
23:42:09ldleworkAraq_: I coined then Replacement Template Grammar
23:42:40ldleworkBut I only support a simple random choice
23:42:48*ldlework looks at what the Nim module supports
23:43:00Araq_a non-random choice
23:43:55Araq_subex"$[apples|apple|apples]1" % "0"
23:44:04Araq_--> apples
23:44:11Araq_it's for i18n
23:44:16ldleworkooo
23:44:41ldleworkBut doesn't that mean you have to embed every language in the literal?
23:45:01*wan quit (Ping timeout: 244 seconds)
23:45:46Araq_this is not how i18n works ... :P
23:46:12Araq_"$1 File(s) copied" ---> File(s) is ugly
23:46:41Araq_so rewrite it: "$[Files|File|Files]1 copied"
23:46:52dts|pokeballSLR(1) or LR(0) parse
23:47:00dts|pokeballwhat types of parsers are these?
23:47:23Araq_LR(0) is archaic
23:47:32Araq_SLR(1) a decent algorithm iirc
23:47:50dts|pokeballhmmm... interesting. ill stick with LALR(1)
23:47:59ldleworkAraq_: I don't understand your rewrite at all
23:48:31*wan joined #nimrod
23:48:56Araq_dts|pokeball: omg no.
23:49:10*quasinoxen quit (Ping timeout: 256 seconds)
23:49:18dts|pokeballno LALR? so not completely like bison
23:49:39dts|pokeballdo you want me to use SLR(1) then?
23:50:02gokrdts|pokeball: Port PetitParser to Nim.
23:50:22dts|pokeballok
23:50:28gokrIts a brilliant parsing library IMHO. Best I have ever used.
23:50:48gokrWritten originally in Smalltalk by Lukas Renggli, he ported it to Java and Dart.
23:50:52*quasinoxen joined #nimrod
23:50:56dts|pokeballwhich should i port?
23:51:03gokrThe one you can read :)
23:51:11dts|pokeballgood point
23:51:20gokrLet me find you some slides
23:51:35Araq_dts|pokeball: go for this: http://en.wikipedia.org/wiki/CYK_algorithm
23:51:43Araq_or this: http://en.wikipedia.org/wiki/GLR_parser
23:52:19gokrdts|pokeball: http://www.slideshare.net/renggli/mastering-grammars-with-petitparser
23:53:07gokrdts|pokeball: Summary: http://www.lukas-renggli.ch/blog/petitparser-1
23:53:51dts|pokeballalright. im on it now
23:54:21gokrI think PetitParser could fit Nim like a glove, given that its a "DSL" for constructing parsers.
23:54:58*Matthias247 quit (Read error: Connection reset by peer)
23:55:23gokrAnd I am not a parsing guru like Araq, but at least I can say that PetitParser is the first parsing library/tool that actually "does what I expect it to". :)
23:55:56Araq_I still think the value you get out of parser generators is a direct function of what kind of grammars they allow you to write
23:56:14Araq_the algorithms I suggested are quite broad
23:56:37Araq_usually anything PEG based cannot even handle a left recursion
23:57:24*brson quit (Quit: leaving)
23:57:27gokrdts|pokeball: Good chapter on it: http://pharobooks.gforge.inria.fr/PharoByExampleTwo-Eng/latest/PetitParser.pdf
23:57:37Araq_that said, the deterministic choice is just what the doctor ordered
23:57:53*brson joined #nimrod
23:58:07Araq_but ideally the grammar supports both deterministc and nondeterministic choice
23:58:52gokrI am not exactly sure what it means but about PetitParser: "Packrat Parsers: give linear parse-time guarantees and avoid common problems
23:58:52gokrwith left-recursion in PEGs."
23:59:47Araq_gokr: nice.
23:59:57gokrI think it uses memoization to do that