00:00:55 | reactormonk | Araq_, /msg chanserv set #nimrod mlock +if #nim |
00:03:39 | reactormonk | Is an addr managed by nimrod? |
00:03:52 | Araq_ | no |
00:03:56 | * | starless quit (Quit: WeeChat 1.0.1) |
00:04:10 | reactormonk | So is https://github.com/Araq/Nimrod/issues/1715 relevant? Shouldn't it be a[] ? |
00:05:09 | Araq_ | clang errors means we produce wrong C code |
00:05:25 | Araq_ | surely it's a valid bug no matter what |
00:10:25 | fowl | looks 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:42 | Araq_ | 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:26 | Varriount | All 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:52 | gokr | Morning 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:34 | nullmove | Hi, are the development docs gone permanently? |
11:37:46 | nullmove | what 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:53 | wan | the new link for the channel log is in the room topic |
11:49:49 | nullmove | ah 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:34 | nickles | http://build.nimrod-lang.org/ seems to be off-line. Is this an error, or is a shift going on? |
12:37:54 | EXetoC | I 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:39 | gokr | Wondering why there is initTable, newTable, and initSet but no newSet. |
13:28:08 | gokr | Varriount: 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:49 | nickles | Where 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:28 | nickles | No one? |
15:18:11 | * | nickles quit () |
15:22:17 | dom96 | Anybody feel like writing some benchmarks? Port this to Nim https://github.com/logicchains/LPATHBench |
15:31:48 | onionhammer | looks pretty small, might do it |
15:33:41 | def- | nimrod forum down as well I think |
15:34:11 | def- | 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:32 | dom96 | def-: works for me |
15:59:14 | EXetoC | yes now it does |
15:59:53 | def- | dom96: yeah, it's back for me as well |
16:03:45 | dom96 | I 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:44 | Araq0 | dom96: the forum is hardly usable: "Error: Subject not long enough" when I try to reply. |
17:25:04 | Araq0 | But 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:20 | willwillson | maybe 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:23 | Araq0 | willwillson: will do tonight, already noticed |
17:35:46 | willwillson | ok, sounds good :D |
17:36:16 | * | yglukhov__ quit (Ping timeout: 255 seconds) |
17:36:18 | Araq0 | maybe I will even manage to update the website so it uses the forum's design ... |
17:38:49 | willwillson | :O that would be impressive |
17:38:53 | Araq0 | it's crap that we now use 2 different designs ... |
17:39:30 | * | gokr_ quit (Read error: Connection reset by peer) |
17:39:58 | willwillson | function over form ;-) |
17:40:23 | * | gokr_ joined #nimrod |
17:43:07 | * | dts|supersaiyan is now known as dts|pokeball |
17:43:13 | willwillson | will finalizers be around in 1.0? |
17:44:57 | ldlework | So are we forgoing a 0.10.2 release? |
17:45:54 | * | dom96_ joined #nimrod |
17:46:02 | Araq0 | willwillson: finalizers yes, destructors are ending up in {.experimental.} |
17:46:03 | dom96_ | Araq0: I know. I already reported that bug on github. |
17:46:09 | dom96_ | Will fix it ASAP |
17:46:15 | Araq0 | excellent |
17:46:18 | dom96_ | At least the forum is still running :) |
17:46:31 | dom96_ | Also. I can set up a redirect for build.nimrod-lang.org/irclogs |
17:48:27 | Araq0 | ldlework: I don't know. it's only a name though. 0.10.2 vs 1.0 RC 1 |
17:48:43 | ldlework | Araq0: ah so at least we are not going to do a plain 1.0 |
17:49:55 | Araq0 | well nobody except me thinks that's a good idea :P |
17:50:19 | Araq0 | when that happens I consider being wrong |
17:51:00 | Araq0 | ldlework: any comment on my 'func' ideas? |
17:51:21 | ldlework | Araq0: you're just excited, and reasonably so |
17:51:28 | ldlework | in fact, I'm actually really excited for you |
17:51:39 | ldlework | I hope you can keep your hat on :) |
17:51:49 | ldlework | Araq0: I haven't see them, I assume they are on the forum |
17:51:51 | * | ldlework looks |
17:52:47 | dom96_ | bbl |
17:52:52 | * | dom96_ quit (Quit: Page closed) |
17:56:03 | ldlework | Araq0: 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:45 | Araq0 | ldlework: maybe, but we can also come up with clever hacks instead |
18:04:03 | ldlework | Araq0: why would we want that |
18:04:52 | Araq0 | in fact, I think Nimble packages should list the Nim version and then the compiler can degrade itself for certain packages |
18:06:27 | yeye123 | for i in countup(1,4): |
18:06:27 | yeye123 | attach_defaults(table,label, i, i+1, i, i+1) |
18:06:43 | yeye123 | can i change a int to a uint? |
18:07:11 | Araq0 | no idea what attach_defaults is |
18:07:25 | yeye123 | a gtk2 proc requiring guint |
18:07:31 | Araq0 | you 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:40 | yeye123 | thanks, 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:23 | willwillson | yeye123: couldn't you just use i.guint or guint(i)? |
18:29:11 | ldlework | EXetoC: your glfw wrapper is borked |
18:33:13 | ldlework | (just fyi) |
18:37:28 | * | rpag joined #nimrod |
18:38:12 | * | rpag quit (Read error: Connection reset by peer) |
18:41:04 | EXetoC | ldlework: in what way? |
18:41:29 | EXetoC | some call segfaulted for me for some reason, but that went away somehow |
18:42:04 | ldlework | events.nim(27, 34) Error: undeclared identifier: 'ffDecimal' |
18:42:58 | EXetoC | I forgot to push the fix |
18:43:09 | EXetoC | it should work now |
18:44:48 | ldlework | hmm I guess I don't have glfw installed |
18:44:49 | yeye123 | willwilson: is that how i change to guint? |
18:44:55 | ldlework | I have libglfw2... |
18:45:06 | ldlework | yeye123: that is how casting works yeah |
18:45:21 | EXetoC | there's a binding but no wrapper for glfw 2 |
18:45:46 | yeye123 | am I allowed to cast the "i" in a for loop? |
18:47:04 | ldlework | yeye123: why not? |
18:47:22 | * | irrequietus quit (Ping timeout: 255 seconds) |
18:47:24 | yeye123 | I don't know |
18:55:51 | willwillson | yeye123: you might get away with an unsigned countup and no type conversion: import unsigned; for i in countup(1'u64,4'u64) |
18:57:01 | yeye123 | Idlework:works like a charm |
18:57:10 | ldlework | are those "'"'s really required? |
18:57:10 | yeye123 | willwilson:thanks for the tips! |
18:57:55 | Araq_ | ldlework: no, but few people know this |
18:59:41 | yeye123 | willwilson: tried uint64 now, it complains, seems it needs guint(i) |
19:02:30 | willwillson | yeye123: yeah, my mistake, it is probably `distinct`, so you need an explicit conversion |
19:02:36 | ldlework | Araq_: are you familiar with Monte? |
19:03:24 | wan | the problem with the "'" is when your editor highlights the numbers differently if they are not there |
19:03:52 | ldlework | wan: sounds like your syntax highlighter needs an update |
19:04:04 | Araq_ | ldlework: no. |
19:04:27 | ldlework | Araq_: its some guys that I know from the Python community who are writing a new modern implementation of (essentially) E |
19:04:36 | ldlework | I asked them if they knew about Nim and here were there responses: |
19:05:03 | ldlework | simpson | 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:12 | ldlework | dash | there's nothing egregiously wrong with it but it doesn't address the use cases i care about |
19:05:24 | ldlework | simpson | 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:38 | ldlework | ldlework | 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:40 | ldlework | ldlework | simpson: don't you think that's fair? |
19:05:49 | ldlework | simpson | ldlework: A little, but I already like and know Haskell. |
19:07:49 | * | rpag joined #nimrod |
19:08:09 | ldlework | ldlework | dash: what is the usecase that you mentioned Nim doesn't serve? |
19:08:26 | ldlework | dash | ldlework: safe execution of mutually suspicious code |
19:08:27 | ldlework | dash | ldlework: that's pretty much the only reason i'm working on monte |
19:08:29 | ldlework | ldlework | dash: like code in a string you get from a user? |
19:08:31 | ldlework | dash | ldlework: yes, like (for example) a multiplayer game server that runs arbitrary user-submitted code |
19:08:51 | ldlework | dash | where different users' functions/objects get to invoke each other |
19:08:56 | Araq_ | maybe you should pastebin this conversation instead |
19:09:03 | ldlework | sorry, its ongoing |
19:09:08 | ldlework | I'll stop though |
19:09:17 | Araq_ | 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:55 | Araq_ | ldlework: any link to Monte? |
19:11:31 | ldlework | Araq_: mind coming into #monte for like 5 minutes |
19:11:58 | ldlework | I 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:42 | ldlework | The code is quite clean |
19:23:01 | ldlework | oops |
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:36 | Mat4 | hello |
19:48:51 | Araq_ | servus |
19:53:23 | Mat4 | hi 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:30 | gokr | ldlework: Ideas from E and Smalltalk has already been explored quite deeply in Croqute/Teatime which is the basis of our product. |
20:42:37 | gokr | Croquet. |
20:43:03 | ldlework | gokr: I know that dash is very familiar with Croquet |
20:45:17 | gokr | Ok, I see he has worked on porting OMeta to Python etc |
20:52:03 | Mat4 | gokr: E as in Amiga E ? |
20:52:21 | gokr | E as in erights.org |
20:52:48 | gokr | Distributed computing based on eventual sends, promises, sandboxing by reachability etc etc |
20:53:31 | onionhammer | dom96_ https://github.com/onionhammer/LPATHBench/blob/patch-1/nim.nim |
20:53:40 | gokr | I am no expert in E - but several of those mechanisms are core to our system of bit identical synchronized computing. |
20:56:01 | ldlework | gokr: so.. your company is basically betting on Nim? |
20:58:06 | Mat4 | '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:35 | onionhammer | Araq_ there might be an issue building a nim file named nim :p |
20:59:00 | onionhammer | (I didnt come up with the naming convention in that LPATHBench) |
20:59:04 | Araq_ | onionhammer: why? the compiler itself is named that? |
20:59:13 | onionhammer | no idea, it just wouldnt work until i renamed it |
21:00:09 | onionhammer | oh no.. i see |
21:00:16 | onionhammer | after you build it it takes precedence |
21:00:25 | onionhammer | out 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:08 | willwillson | how did nim do in the benchmark onion? did run any of the others? :D |
21:26:20 | Araq_ | onionhammer: I would violate the naming convention |
21:26:35 | ldlework | I need a programmer friend :( |
21:28:31 | gokr | Sorry, was busy with the electrician here |
21:29:50 | ldlework | Is there an ORM? |
21:29:57 | Araq_ | ldlework: I'm your friend. |
21:30:13 | ldlework | Araq_: I mean a friend to do stupid propgrammer-y things with |
21:30:27 | gokr | ldlework: Yeah, well, its a long term transition. But yes, we are betting on Nim. |
21:30:35 | ldlework | gokr: where are you? |
21:30:54 | gokr | I am at 3dicc.com |
21:31:18 | gokr | Geographically I am slightly north of Stockholm |
21:31:19 | ldlework | I meant geologically |
21:31:25 | ldlework | err geographically :) |
21:31:41 | gokr | Geologically I am about 30 meter above sea level on a bed rock. |
21:32:04 | gokr | That's Stockholm, Sweden. |
21:32:14 | ldlework | I bet Sweden is awesome |
21:33:17 | gokr | I like it :) |
21:34:02 | gokr | The rest of the company is in the US |
21:34:54 | * | milosn joined #nimrod |
21:38:46 | Araq_ | so ... nobody seems to like my 'func' idea too much |
21:39:32 | flaviu | Araq_: Where is it? |
21:39:43 | Araq_ | forum |
21:40:37 | ldlework | Araq_: I like the func idea very much |
21:41:37 | Araq_ | hrm ... NimBot should have announced a couple of commits by now |
21:41:45 | flaviu | I don't really like it, the same thing can be done with macros |
21:41:53 | Matthias247 | gokr: seems like an in interesting company if they are open for such ideas ;) |
21:42:01 | dom96 | onionhammer: Thank you for doing that! |
21:42:16 | Araq_ | dom96: Nimbot is quiet! :-( |
21:42:22 | gokr | Matthias247: Its "we" not they :) |
21:42:29 | flaviu | and encouraging overloading a keyword like that doesn't sound like a good idea to me. |
21:43:01 | Matthias247 | gokr: usually there are manager somewhere that are afraid of everything they don't know :) |
21:43:36 | dom96 | Araq_: Yeah. It just does IRC logs. |
21:43:50 | gokr | Hehe, 3DICC was born by developers - and our system is already written in very non mainstream tech, and design. |
21:43:59 | Matthias247 | but 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:21 | gokr | Also, we are small enough to not have any managers ;) |
21:44:48 | ldlework | gokr: save me a spot for once Docker goes IPO I can sell out and come work for you guys |
21:44:49 | Matthias247 | that's good. I think I should really move to a much much smaller company |
21:45:22 | dom96 | onionhammer: 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:29 | Matthias247 | ldlework: then you are so rich you can focus on playing around instead of working? ;) |
21:45:33 | * | BlaXpirit_UA joined #nimrod |
21:46:05 | gokr | Matthias247: We already play around. I mean... virtual reality, 3D out your ears, cloud yaddayadda and Nim? That's not work. |
21:46:09 | ldlework | Matthias247: I doubt my options will pay off that much :D |
21:46:15 | ldlework | gokr: :DDD |
21:46:47 | gokr | And the current codebase is all Smalltalk, which also is pure fun. |
21:47:08 | ldlework | I would love to have a job where I just focused on internal tooling |
21:47:13 | ldlework | I love automation |
21:47:24 | Matthias247 | we are only bullshitting around :( |
21:48:15 | Matthias247 | don't join any german mechanical engineering company if you are interested in software ;) |
21:48:22 | gokr | Hehe |
21:48:28 | Araq_ | dom96, onionhammer it has no obvious deficiencies |
21:48:32 | Mat4 | Araq_: 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:47 | Araq_ | or whatever it's spelt |
21:49:14 | Araq_ | but this is a typical micro benchmark, it bores me to death |
21:49:15 | ldlework | Mat4: what do you mean it cannot be distinguished from functions? |
21:49:27 | ldlework | proc and func are not exactly ambiguous |
21:50:52 | Araq_ | dom96 well if Nimbot doesn't announce my awesome improvements it feels like I didn't do anything |
21:51:34 | Mat4 | imperative 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:37 | Araq_ | how do I make a nimble package out of the compiler's sources? |
21:51:41 | gokr | Araq_: Was the idea that a template that is defined as "only pragmas" turns into some kind of ... "different proc"? |
21:52:14 | ldlework | Mat4: I guess I don't understand what you're saying |
21:52:24 | Araq_ | 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:35 | Araq_ | hi stonecolddevin welcome |
21:52:39 | gokr | In 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:56 | Araq_ | no |
21:53:03 | Araq_ | 'func' is special |
21:53:18 | ldlework | Araq_: we just need decorators |
21:53:19 | Mat4 | Idlework: Possible translation problem |
21:53:40 | gokr | Araq_: Then the use of "template" in that line defining 'func' is slightly misleading. Or? |
21:53:44 | dom96 | Araq_: You're going to have to be patient. |
21:53:57 | ldlework | dom96: is there an ORM? |
21:54:08 | stonecolddevin | hi Araq_ |
21:54:13 | dom96 | ldlework: not that I know of |
21:54:15 | Araq_ | gokr: yeah, I made that up |
21:54:17 | ldlework | dom96: okay thanks |
21:54:25 | gokr | Araq_: Okidoki. |
21:54:27 | ldlework | Araq_: lol |
21:54:38 | flaviu | ldlework: Pragmas can be made decorators. |
21:54:49 | ldlework | flaviu: what do you mean |
21:55:02 | flaviu | ldlework: You can use a macro as a pragma iirc |
21:55:09 | ldlework | whaaaaat |
21:55:17 | flaviu | and macro functionality is a superset of decorator functionality. |
21:55:21 | ldlework | hmm, I can't think of what that would even do |
21:55:33 | flaviu | ldlework: http://nimrod-lang.org/manual.html#macros-as-pragmas |
21:56:12 | ldlework | that example is too small to understand |
21:56:40 | ldlework | hi stonecolddevin |
21:56:57 | flaviu | seems straightforward: `proc p() {.m.} = discard` is sugar for `m: proc p() = discard` |
21:57:48 | ldlework | but what does m: do? |
21:58:04 | ldlework | flaviu: like what if I wanted a pragma that converted the string output of a proc to all uppercase? |
21:58:16 | Mat4 | is 'm:' a label ? |
21:58:42 | Mat4 | variable ? |
21:58:49 | Araq_ | a macro |
21:59:03 | ldlework | idgi |
21:59:16 | onionhammer | Araq_ dom96 i only tested the C# one, it's about 3-3.5x faster |
21:59:34 | onionhammer | i'll test some of the others when i get home, im at work |
21:59:35 | ldlework | What's the differnce betwee `m: proc p() = discard` and `proc p() = discard` ? |
21:59:37 | dom96 | onionhammer: Ask logicalchains to see how it compares in your PR |
22:01:16 | Mat4 | Araq_: Exist there a way to embed labels though a macro in Nim ? |
22:01:27 | Araq_ | onionhammer: use 'int32' instead of 'int' to get a more meaningful comparison with C# |
22:01:43 | Araq_ | maybe you're simply benchmarking your cache |
22:02:34 | flaviu | ldlework: 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:03 | ldlework | flaviu: how's nimlets going? |
22:03:04 | onionhammer | dom96 Araq_ it's also the smallest of the benchmarks i think |
22:03:15 | ldlework | I was going to give you a couple days to establish things before I started adding to it |
22:03:19 | onionhammer | the clj one is shorter, but theres less whitespace |
22:03:28 | onionhammer | erm, sorry, the "fs" one is shorter |
22:03:30 | flaviu | ldlework: I won't have time for it tonight, but the C and python is all wrapped. |
22:03:45 | Araq_ | Mat4: there is no 'goto' in Nim if that's what you mean |
22:04:05 | ldlework | flaviu: 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:17 | flaviu | ldlework: 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:38 | ldlework | flaviu: do you think you could write a tiny trivial-but-not-empty example of the decorator thing/ |
22:04:47 | flaviu | ldlework: Not tonight |
22:04:51 | ldlework | k |
22:05:00 | flaviu | I shouldn't even be chatting in irc :( |
22:05:08 | * | flaviu quit (Quit: Leaving.) |
22:05:52 | ldlework | I like flaviu |
22:06:09 | Mat4 | Araq_: yes |
22:19:22 | dts|pokeball | would it be possible to write a kernel in just nim and assembly |
22:20:03 | willwillson | dts|pokeball: https://github.com/dom96/nimkernel |
22:20:40 | dts|pokeball | dude awesome |
22:29:11 | Araq_ | it's not possible. it's your moral obligation! |
22:32:30 | dom96 | Araq_: Forum fixed. |
22:32:43 | Araq_ | yay |
22:32:45 | dom96 | Now i'm going to eat. Possibly the pizza you funded. |
22:32:50 | Araq_ | I fixed 'echo' :P |
22:32:58 | Araq_ | lies! I only funded beer. |
22:36:27 | dts|pokeball | im going to make an os in nim! |
22:36:32 | dts|pokeball | after my compiler in nim! |
22:37:06 | Araq_ | dts|pokeball: good. but an OS that doesn't suck is more important than yet another compiler :P |
22:37:27 | Mat4 | why 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:09 | onionhammer | AraqOS |
22:39:29 | onionhammer | Microsoft AraqOS after you sell out to the ma |
22:39:31 | onionhammer | n |
22:40:38 | * | wan joined #nimrod |
22:42:02 | willwillson | I think they might rebrand it as it sounds abit too like IraqOS |
22:48:17 | onionhammer | Microsoft Skype OS for Business |
22:48:33 | onionhammer | 2020 |
22:49:11 | willwillson | sounds more like it ;-) |
22:52:57 | * | johnsoft quit (Ping timeout: 265 seconds) |
22:53:10 | ldlework | lol |
22:54:07 | * | johnsoft joined #nimrod |
22:58:49 | Mat4 | Fensterln Version X |
23:01:58 | Mat4 | ciao |
23:02:12 | * | Mat4 left #nimrod (#nimrod) |
23:04:56 | dts|pokeball | back |
23:05:02 | dts|pokeball | oops wrong channel |
23:05:39 | dts|pokeball | because this compiler is the start of a much needed addition to irc |
23:06:01 | EXetoC | ? |
23:06:48 | dts|pokeball | ? |
23:07:08 | ldlework | dts|pokeball: still wrong channel |
23:07:20 | ldlework | oh |
23:07:22 | dts|pokeball | ldlework, no its not |
23:07:31 | dts|pokeball | <Araq_> dts|pokeball: good. but an OS that doesn't suck is more important than yet another compiler :P |
23:07:34 | ldlework | yeah |
23:07:55 | ldlework | how does a compiler contribute to irc? |
23:08:28 | * | PV quit (Ping timeout: 246 seconds) |
23:08:38 | dts|pokeball | it contributes to the next stage of the project that contributes to irc |
23:10:48 | EXetoC | and that is? I don't follow |
23:11:09 | ldlework | I'm lost also |
23:11:16 | dts|pokeball | its a compiler for a language designed to make an irc bot |
23:12:39 | ldlework | o_o |
23:13:33 | Araq_ | dts|pokeball: you can make an irc bot in Nim |
23:13:47 | EXetoC | standalone DSLs seem more an more unnecessary with the advent of extensible languages |
23:13:58 | ldlework | EXetoC: I was just thinking that |
23:14:06 | ldlework | Iwas thinking "Well you could write a DSL with Nim.." |
23:14:20 | ldlework | "Wait! You could like include procedural code handlers in that DSL too, fuck Nim is awesome" |
23:14:23 | ldlework | those were my actual thoughts |
23:15:04 | dts|pokeball | Araq_, i know you can. but my partner in this was admanant on the compiler |
23:15:35 | ldlework | I suddenly want to build an IRCBot DSL in Nim |
23:15:38 | ldlework | ffff |
23:15:42 | dts|pokeball | its fun |
23:15:51 | Araq_ | ad, adman ... how many words does the language have? |
23:16:00 | dts|pokeball | mine? |
23:16:08 | Araq_ | english |
23:16:53 | ldlework | Araq_: lol what |
23:17:54 | * | dts|pokeball is confused |
23:18:28 | * | Araq_ switched to a better dictionary |
23:18:31 | Araq_ | ok |
23:18:38 | Araq_ | now I know what admanant means |
23:20:04 | dts|pokeball | oh you arent a native speaker? |
23:21:27 | Araq_ | no. |
23:21:34 | Araq_ | so let me get this straight: |
23:21:44 | dts|pokeball | you speak good english btw |
23:21:47 | dts|pokeball | better than me |
23:21:53 | Araq_ | you write a lexer and a parser and some transformations (aka compiler) |
23:22:05 | dts|pokeball | yes |
23:22:21 | Araq_ | to get a language in which you then write a lexer and parser (aka irc bot) ? |
23:22:30 | dts|pokeball | yes |
23:22:49 | Araq_ | what about parser generators? |
23:22:57 | dts|pokeball | no |
23:23:11 | dts|pokeball | im doing this completely from scratch |
23:23:16 | dts|pokeball | except the networking parts |
23:23:34 | Araq_ | why not write a parser generator in Nim for nim? |
23:23:40 | Araq_ | cause that's surely missing |
23:23:46 | dts|pokeball | ill do that afterwords |
23:23:59 | ldlework | Doesn't Nim have peg in the stdlib? |
23:24:11 | ldlework | (I don't know anything about what you're talking about) |
23:24:31 | Araq_ | Nim's PEG is a poor man's regex stuff |
23:24:50 | dts|pokeball | do you want a bison style parser generator? |
23:24:54 | Araq_ | it can match, but it cannot construct any parse tree |
23:25:01 | Araq_ | dts|pokeball: yeah |
23:25:21 | dts|pokeball | whats the difference between a parse tree and an ast? |
23:25:37 | Araq_ | there is none |
23:25:43 | dts|pokeball | ok thats what i thought |
23:25:44 | Araq_ | unless you're an academic |
23:25:59 | dts|pokeball | which i am not |
23:26:02 | Araq_ | then "parse tree" means "something nobody would ever come up with" |
23:26:46 | dts|pokeball | what does nimbot do? |
23:27:34 | Araq_ | "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:53 | ldlework | Araq_: lol wait, the peg doesn't even return a tree!? |
23:27:54 | dts|pokeball | why not just start with an ast? |
23:28:06 | Araq_ | dts|pokeball: exactly. |
23:28:20 | Araq_ | ldlework: no, as I said, it's a regex replacement |
23:28:34 | Araq_ | does a regex return a tree for you? |
23:28:36 | ldlework | Araq_: aw I impressed some people with that |
23:28:44 | ldlework | we should totally have a legit peg in the stdlib |
23:28:47 | ldlework | ^_^ |
23:28:53 | Araq_ | sure go ahead |
23:29:04 | Araq_ | I don't care, pegs are overly simplistic |
23:29:20 | Araq_ | you are better off implementing a real parsing algorithm |
23:29:27 | ldlework | Araq_: the lojban language is specified in peg |
23:29:34 | ldlework | I'm pretty sure it covers all cases |
23:29:47 | ldlework | the grammar, not peg in general |
23:29:52 | dts|pokeball | i might take a break from the compiler actually and get started on the nim parser generator |
23:30:00 | ldlework | dts|pokeball: do ettttt |
23:30:03 | dts|pokeball | what should i call it? |
23:30:04 | ldlework | so. useful. |
23:30:21 | ldlework | nibble |
23:30:37 | dts|pokeball | nibble? ok |
23:30:42 | Araq_ | dts|pokeball: from0toTree |
23:30:55 | ldlework | nibble it is! |
23:31:01 | ldlework | :P |
23:31:33 | Araq_ | happyTreeFriends |
23:31:54 | * | dts|pokeball adds nibble to his project list |
23:32:29 | ldlework | Araq_: now you're getting the hang of it |
23:32:55 | wan | I wish there were more parser generators that would accept bnf/ebnf |
23:33:13 | wan | then you'd have more and more syntaxes in ebnf |
23:33:23 | wan | then a syntax highlighter could be based on those |
23:33:37 | wan | and a smart editor |
23:33:50 | dts|pokeball | im just going to put on monty python and the holy grail then ill get started |
23:33:57 | ldlework | I understand peg because it is easy. Are other parser types much more complicated? |
23:34:10 | ldlework | dts|pokeball: I love the feeling you're feeling right now |
23:35:03 | Araq_ | no, they are easier cause they are declarative :P |
23:35:22 | Araq_ | Peg is a 1 to 1 mapping to a parsing algorithm |
23:35:36 | Araq_ | that's not really declarative |
23:35:41 | dts|pokeball | i want to be feeling drunk |
23:35:49 | dts|pokeball | but im still under age :L |
23:35:49 | ldlework | Araq_: hmm it feels declarative |
23:36:30 | ldlework | Araq_: I wrote a thing once which was essentially the opposite of a peg |
23:36:34 | Araq_ | ldlework: try a left recursion then |
23:36:46 | Araq_ | ldlework: subexes? |
23:36:56 | ldlework | Araq_: is that what it is called? |
23:37:00 | * | ldlework looks that up |
23:37:08 | Araq_ | I invented these |
23:37:13 | ldlework | no way |
23:37:17 | ldlework | its in the stdlib haha |
23:37:40 | ldlework | Araq_: how can you claim that? :P |
23:38:06 | ldlework | Araq_: I remember a program back i nthe early 90's on my mac performa 575 called Kant Generator |
23:38:15 | ldlework | Which was essentially a subexe template editor |
23:38:18 | Araq_ | I invented the term and wrote the implementation |
23:38:42 | ldlework | It had modules that would generate extremely real sounding nonsense written in the style of Emmanuel Kant |
23:38:44 | Araq_ | and designed the mini language when I had some holidays |
23:38:59 | Araq_ | you know, back then when I still had holidays |
23:39:03 | ldlework | And other's that would generate emails to your boss why you had to take the day off |
23:40:33 | dts|pokeball | would it be cheating to just take bison's source and make it better? |
23:41:29 | Araq_ | dts|pokeball: no, that's much harder than rewriting it from scratch |
23:41:34 | ldlework | Araq_: 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:52 | dts|pokeball | Araq_, good point |
23:42:09 | ldlework | Araq_: I coined then Replacement Template Grammar |
23:42:40 | ldlework | But I only support a simple random choice |
23:42:48 | * | ldlework looks at what the Nim module supports |
23:43:00 | Araq_ | a non-random choice |
23:43:55 | Araq_ | subex"$[apples|apple|apples]1" % "0" |
23:44:04 | Araq_ | --> apples |
23:44:11 | Araq_ | it's for i18n |
23:44:16 | ldlework | ooo |
23:44:41 | ldlework | But doesn't that mean you have to embed every language in the literal? |
23:45:01 | * | wan quit (Ping timeout: 244 seconds) |
23:45:46 | Araq_ | this is not how i18n works ... :P |
23:46:12 | Araq_ | "$1 File(s) copied" ---> File(s) is ugly |
23:46:41 | Araq_ | so rewrite it: "$[Files|File|Files]1 copied" |
23:46:52 | dts|pokeball | SLR(1) or LR(0) parse |
23:47:00 | dts|pokeball | what types of parsers are these? |
23:47:23 | Araq_ | LR(0) is archaic |
23:47:32 | Araq_ | SLR(1) a decent algorithm iirc |
23:47:50 | dts|pokeball | hmmm... interesting. ill stick with LALR(1) |
23:47:59 | ldlework | Araq_: I don't understand your rewrite at all |
23:48:31 | * | wan joined #nimrod |
23:48:56 | Araq_ | dts|pokeball: omg no. |
23:49:10 | * | quasinoxen quit (Ping timeout: 256 seconds) |
23:49:18 | dts|pokeball | no LALR? so not completely like bison |
23:49:39 | dts|pokeball | do you want me to use SLR(1) then? |
23:50:02 | gokr | dts|pokeball: Port PetitParser to Nim. |
23:50:22 | dts|pokeball | ok |
23:50:28 | gokr | Its a brilliant parsing library IMHO. Best I have ever used. |
23:50:48 | gokr | Written originally in Smalltalk by Lukas Renggli, he ported it to Java and Dart. |
23:50:52 | * | quasinoxen joined #nimrod |
23:50:56 | dts|pokeball | which should i port? |
23:51:03 | gokr | The one you can read :) |
23:51:11 | dts|pokeball | good point |
23:51:20 | gokr | Let me find you some slides |
23:51:35 | Araq_ | dts|pokeball: go for this: http://en.wikipedia.org/wiki/CYK_algorithm |
23:51:43 | Araq_ | or this: http://en.wikipedia.org/wiki/GLR_parser |
23:52:19 | gokr | dts|pokeball: http://www.slideshare.net/renggli/mastering-grammars-with-petitparser |
23:53:07 | gokr | dts|pokeball: Summary: http://www.lukas-renggli.ch/blog/petitparser-1 |
23:53:51 | dts|pokeball | alright. im on it now |
23:54:21 | gokr | I 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:23 | gokr | And 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:56 | Araq_ | 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:14 | Araq_ | the algorithms I suggested are quite broad |
23:56:37 | Araq_ | usually anything PEG based cannot even handle a left recursion |
23:57:24 | * | brson quit (Quit: leaving) |
23:57:27 | gokr | dts|pokeball: Good chapter on it: http://pharobooks.gforge.inria.fr/PharoByExampleTwo-Eng/latest/PetitParser.pdf |
23:57:37 | Araq_ | that said, the deterministic choice is just what the doctor ordered |
23:57:53 | * | brson joined #nimrod |
23:58:07 | Araq_ | but ideally the grammar supports both deterministc and nondeterministic choice |
23:58:52 | gokr | I am not exactly sure what it means but about PetitParser: "Packrat Parsers: give linear parse-time guarantees and avoid common problems |
23:58:52 | gokr | with left-recursion in PEGs." |
23:59:47 | Araq_ | gokr: nice. |
23:59:57 | gokr | I think it uses memoization to do that |