| 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 |