00:00:13 | Araq | (ref Foo)(field: 4) also works |
00:00:22 | onionhammer | it's less efficient |
00:00:54 | Araq | it's not. and if it were, we could optimize it in the compiler more |
00:01:09 | onionhammer | ah nevermind, its the same |
00:01:12 | onionhammer | just more writing |
00:01:35 | onionhammer | and looks weird |
00:01:35 | Araq | according to ldlework nobody ever requested getting rid of () though |
00:01:48 | * | Sphax quit (Quit: CYA!!) |
00:01:48 | onionhammer | ref Foo(field: 4) ? |
00:01:55 | onionhammer | then you're treating ref like new in other languages |
00:02:01 | Araq | (which must be the reason why everybody loves Lisp) |
00:03:26 | onionhammer | the fact that people have found so many ways to do this indicates they're looking for an easier way :P |
00:03:50 | Araq | to me it indicates they are using too many different types |
00:04:21 | onionhammer | in what way |
00:06:17 | ldlework | Araq: for expressions, no I haven't heard the majority of this field complaining about () |
00:06:26 | ldlework | talk about a feature no one's asked for (strong spaces) ;) |
00:06:50 | * | ajhager joined #nim |
00:07:06 | Araq | yeah, everybody stumbles upon 'echo $foo' but "nobody asked for the feature". sure. |
00:08:00 | onionhammer | the echo $foo thing does suck |
00:08:53 | ldlework | Araq: yeah, in the most simple cases people do it |
00:09:29 | ldlework | The only time I use that is for new, so it stands out as a memory allocation |
00:12:31 | * | z1y joined #nim |
00:12:32 | dtscode | aporia is still actively developed right? |
00:13:12 | onionhammer | theoretically |
00:13:52 | dtscode | i wonder how much trouble i would get in for suggesting gedit like features |
00:16:06 | * | Sergio965 joined #nim |
00:16:25 | Araq | dtscode: just go ahead |
00:16:47 | ldlework | dtscode: like what |
00:27:32 | dtscode | ldlework, like being able to close all of the tabs |
00:29:31 | Var|Mobile | Gah. Anyone seen the latest post in the constructors thread on the forum? |
00:29:48 | Araq | Var|Mobile: just read it |
00:30:36 | Araq | dtscode: I never have more than 10 tabs open, it's unmanagable with more. so I don't need "close all tabs", but ymmv |
00:30:48 | Var|Mobile | It made me feel... annoyed |
00:31:53 | Araq | I can answer |
00:32:32 | * | irrequietus quit () |
00:32:44 | dtscode | Araq, i mean like ill be working on nimbus, then switch to bill bot, but i have to open billbot before i can close out nimbus |
00:33:28 | Araq | you can disable the "already running" check and start 2 instances of the process |
00:33:43 | * | Trustable quit (Remote host closed the connection) |
00:33:43 | dtscode | but i only need the one open |
00:34:11 | Araq | you just described you need 2. :P |
00:34:33 | dtscode | no i didnt |
00:34:36 | * | gmpreussner_ joined #nim |
00:34:45 | dtscode | that would mean i need two projects open at once |
00:34:46 | * | gmpreussner quit (Ping timeout: 255 seconds) |
00:34:55 | dtscode | i want to completely close out a project and start a new one |
00:35:48 | * | casci joined #nim |
00:36:06 | * | arekzb_ joined #nim |
00:36:43 | * | arekzb_ quit (Client Quit) |
00:37:12 | * | areckizb joined #nim |
00:37:16 | * | enquora quit (Quit: enquora) |
00:49:09 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
00:52:25 | * | no_name quit (Remote host closed the connection) |
00:55:22 | * | casci left #nim (#nim) |
00:55:47 | * | EXetoC joined #nim |
01:07:32 | * | no_name joined #nim |
01:08:19 | Varriount | Araq: Here are the installers: https://drive.google.com/file/d/0B077nrrf63xtNTc1UkhubExIUGs/view?usp=sharing |
01:10:12 | Varriount | Araq: Now what should I work on? Buildbot? IDETools? |
01:10:48 | dtscode | what are the ide tools? |
01:11:04 | Araq | buildbot |
01:11:09 | Varriount | dtscode: Features of the compiler meant to help augment support for text editors. |
01:11:12 | jpoirier | Are untyped proc parameters a part of the language? e.g. this compiles proc tst(a, b, c) = echo(a); echo(b); echo(c) and runs tst("Hello", "World", 42.0) |
01:11:18 | dtscode | ah |
01:11:21 | Varriount | jpoirier: Yes. |
01:11:26 | jpoirier | roger |
01:11:49 | dtscode | that would be under varargs wouldnt it be? |
01:12:09 | Araq | jpoirier: I might reconsider this though |
01:12:39 | Araq | I don't like it too much tbh |
01:13:21 | Araq | I think I'll put this to .experimental |
01:13:31 | flaviu | > undeclared identifier: 'NEVER_UTF' |
01:13:54 | flaviu | But right next to it is declared another identifier that does work |
01:14:59 | Varriount | Araq: Could you clarify what you said about generic parameter lists in the nim for scientific application thread? |
01:15:39 | jpoirier | Araq: I don't really care for it in Nim either; it doesn't seem orthogonal with the rest of the language |
01:16:07 | Araq | jpoirier: it is. it has been introduced for reasons of orthogonality |
01:16:28 | Araq | template t(a, b, c) = ... # works and should work |
01:16:33 | Araq | it's a shortcut for: |
01:16:41 | Araq | template t(a, b, c: expr) |
01:16:57 | flaviu | Oh, it's my fault after all. |
01:17:39 | Araq | Varriount: generics can always be in [. .] but also in [] for convenience and backwards compatibility |
01:18:14 | Araq | but for [. .] we can allow obj.m[.int, float.](a, b) |
01:18:32 | Araq | which is m[.int, float.](obj, a, b) |
01:19:17 | Araq | in contrast to that obj.m[int, float](a, b) is (obj.m[int, float])(a, b) which fails |
01:19:21 | Varriount | Araq: Hm, but isn't the ambiguity resolvable? The compiler just has to peek and see if 'm' is a generic, rather than a field with `[]` access |
01:19:29 | flaviu | I'm not sure I like that. There are already a thousand ways to do everything, two thousand it too many. |
01:19:34 | flaviu | *is |
01:19:52 | flaviu | Varriount: No, that's a bad idea |
01:20:05 | Varriount | flaviu: Why? |
01:20:22 | flaviu | The parser should be totally decoupled from the rest of the language |
01:20:28 | Araq | Varriount: what about generic [] accessors though? |
01:20:54 | Varriount | flaviu: This wouldn't be coupled with the parser? It would be done in the semantic checking phase. |
01:21:01 | Araq | flaviu: the parser doesn't do the precedence rewriting. but I don't like it either. |
01:22:28 | Varriount | Araq: What generic procedure also has a generic accessor? |
01:22:52 | renesac | Araq: I was trying to apply c2nim in the first code sample from here: http://www-unix.mcs.anl.gov/~kazutomo/rdtsc.html |
01:24:38 | Varriount | if `m` is not a field in `obj`, and `m` is a generic procedure or macro, rewrite the ast |
01:27:42 | * | Var|Mobile quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) |
01:27:52 | jpoirier | Araq: orthogonal from the point of view of "does what you expect" and not from the AST point of view |
01:28:45 | Araq | jpoirier: do you mean the proc p(a, b, c) feature or the obj.m[T](x) stuff? |
01:29:52 | * | willwillson quit (Ping timeout: 240 seconds) |
01:32:14 | Araq | good night |
01:32:28 | * | yglukhov______ joined #nim |
01:34:03 | * | gmpreussner_ quit (Remote host closed the connection) |
01:34:35 | * | gmpreussner_ joined #nim |
01:35:40 | * | saml_ joined #nim |
01:36:07 | * | leavengood quit (Ping timeout: 244 seconds) |
01:36:50 | * | yglukhov______ quit (Ping timeout: 244 seconds) |
01:47:40 | gmpreussner_ | hmm... stdin.readChar still requires Return to be pressed. is there a simple way to read just key presses? |
01:48:03 | * | jpoirier quit (Quit: Leaving) |
01:50:45 | * | jpoirier joined #nim |
01:56:38 | * | jpoirier quit (Quit: Leaving) |
01:57:16 | renesac | gmpreussner_: unix specific, but maybe fits: http://nim-lang.org/readline.html |
01:58:24 | gmpreussner_ | that looks good, but some crossplatform solution would be better |
01:58:56 | gmpreussner_ | oh well, maybe i'll just leave that out for now |
02:00:54 | * | gsingh93 quit (Quit: Connection closed for inactivity) |
02:03:38 | * | jpoirier joined #nim |
02:03:56 | * | jpoirier quit (Client Quit) |
02:05:30 | * | jpoirier joined #nim |
02:06:06 | * | superfunc joined #nim |
02:10:16 | * | gokr why do I let myself get sucked into discussions .... oh well. |
02:10:49 | EXetoC | /me? :p |
02:11:45 | * | JinShil quit (Quit: Konversation terminated!) |
02:15:18 | gokr | Someone called Nikki on forum? |
02:16:52 | * | jpoirier quit (Quit: Leaving) |
02:17:01 | gokr | gnite |
02:17:11 | * | jpoirier joined #nim |
02:19:06 | * | jpoirier quit (Client Quit) |
02:19:27 | * | jpoirier joined #nim |
02:20:13 | * | EXetoC quit (Ping timeout: 264 seconds) |
02:23:13 | * | ajhager quit (Ping timeout: 264 seconds) |
02:27:16 | * | shevy joined #nim |
02:31:41 | * | gokr quit (Quit: Leaving.) |
02:31:45 | flaviu | I copied the code from <https://github.com/Araq/Nim/blob/devel/lib/wrappers/pcre.nim#L38-L49> into one of my own files |
02:31:55 | * | ajhager joined #nim |
02:32:00 | flaviu | but "Error: invalid pragma: dynlib: pcreDll" |
02:32:40 | flaviu | Which I don't understand, if it works for Nim, why doesn't it work for me? |
02:35:15 | flaviu | dom96: ping, I'm getting missing css on http://irclogs.nim-lang.org/16-06-2012.html |
02:37:42 | Varriount | flaviu, dom96: As am I. |
02:38:09 | * | kapil__ joined #nim |
02:38:10 | Varriount | Although, whether missing CSS impacts usability greatly is debatable. |
02:38:16 | Varriount | Hello kapil__ |
02:38:27 | Varriount | Hello ajhager |
02:39:06 | def- | flaviu: you defined const pcreDll? |
02:39:20 | Varriount | def-: Yeah, it's defined |
02:39:24 | def- | strange |
02:39:33 | Varriount | def-: He's using Nim's PCRE wrapper |
02:39:39 | flaviu | Varriount: No |
02:39:52 | flaviu | I'm using my own PCRE wrapper with Nim's dynlib code. |
02:40:16 | flaviu | https://gist.github.com/e4a30004d0bb8e90fb8c |
02:41:01 | renesac | Varriount:: importing windows module is scary |
02:41:11 | renesac | only the docs already make my browser pause |
02:41:20 | def- | flaviu: this is funny indeed |
02:41:30 | Varriount | renesac: Yeah. Windows has a *huge* api |
02:41:49 | renesac | I ended up copying just what I wanted... |
02:42:00 | renesac | about 6 lines |
02:42:03 | Varriount | renesac: Are you sure what you need isn't in winlean? |
02:42:12 | renesac | maybe |
02:42:24 | renesac | where is it? |
02:42:35 | Varriount | renesac: Same directory as the windows module |
02:42:53 | Varriount | renesac: It's the module most of the Nimrod stdlib uses when interfacing with Windows. |
02:43:03 | renesac | http://nim-lang.org/lib.html <-- I'm not seeing it here |
02:43:30 | Varriount | renesac: *shrug*, it exists. |
02:43:35 | Varriount | I mean, as a file. |
02:43:47 | flaviu | http://nim-lang.org/winlean.html |
02:43:56 | flaviu | renesac: The good stuff is hidden from that page :P |
02:44:52 | renesac | why? |
02:45:21 | flaviu | renesac: I was just joking, it was probably overlooked. |
02:45:42 | renesac | well, it got the types I need, just the GetCurrentProcess() I need to copy from windows.nim |
02:46:07 | def- | flaviu: remove the pcreImport inside the type definitions, then it works |
02:46:10 | renesac | BOOL WINAPI == WINBOOL? |
02:46:23 | def- | the error message should say something about being triggered there =/ |
02:49:44 | renesac | Varriount:: the pascal case in the windows API is annoying now that Nimrod is first case sensitive |
03:01:49 | * | SplinterOfChaos joined #nim |
03:04:13 | * | gmpreussner__ joined #nim |
03:04:57 | * | gmpreussner_ quit (Ping timeout: 265 seconds) |
03:06:01 | * | BitPuffin quit (Ping timeout: 244 seconds) |
03:07:11 | jpoirier | what's the func keyword for/do? I assumed s/proc/func but that gives an error. |
03:08:00 | def- | jpoirier: it's reserved for potential use as procs without side effects (I think) |
03:08:38 | jpoirier | roger |
03:09:47 | * | Sergio965 joined #nim |
03:11:00 | def- | there it is: http://nim-lang.org/manual.html#nosideeffect-pragma |
03:12:59 | jpoirier | def-: thanks. was just reading that... |
03:15:48 | * | VinceAddons quit (Read error: Connection reset by peer) |
03:16:12 | Varriount | renesac: Feel free to change it, using the deprecated pragma |
03:18:06 | def- | anyone who can remove forum threads online? |
03:20:12 | * | pwernersbach joined #nim |
03:20:13 | superfunc | hey man |
03:20:18 | superfunc | fifa coins are important :3 |
03:20:36 | pwernersbach | hey, just dropping in to alert everyone that we've been spammed on the forums |
03:21:00 | * | darkf joined #nim |
03:21:06 | superfunc | pwernersbach: yeah def- is looking for someone to pull it |
03:21:20 | pwernersbach | Cool, thanks for being on it |
03:21:21 | def- | Probably no one with forum moderation access awake |
03:21:23 | * | yglukhov______ joined #nim |
03:21:34 | pwernersbach | I g2g though goodbye |
03:21:39 | * | pwernersbach left #nim (#nim) |
03:23:04 | * | brson quit (Ping timeout: 264 seconds) |
03:25:53 | * | yglukhov______ quit (Ping timeout: 240 seconds) |
03:27:55 | * | superfunc quit (Quit: Page closed) |
03:33:35 | * | yglukhov______ joined #nim |
03:37:53 | renesac | Varriount: : I though there would be discussion |
03:38:11 | renesac | so all that is lacking is someone making a script to do it? |
03:38:18 | * | yglukhov______ quit (Ping timeout: 265 seconds) |
03:47:01 | Varriount | renesac: Or something. What happens when you run it through nimfix? |
03:55:19 | * | BitPuffin joined #nim |
03:57:56 | renesac | it probably don't create the "deprecated" pragmas |
03:58:02 | renesac | but i don't know |
03:58:06 | renesac | I will try tomorro |
03:58:07 | renesac | w |
03:58:49 | renesac | Varriount: :BOOL WINAPI == WINBOOL ? |
04:00:24 | * | gsingh93 joined #nim |
04:01:45 | * | renesac is now known as renesac|away |
04:04:22 | * | gmpreussner__ quit (Remote host closed the connection) |
04:04:49 | * | gmpreussner__ joined #nim |
04:14:48 | Varriount | renesac|away: Huh? |
04:14:49 | * | BitPuffin quit (Ping timeout: 264 seconds) |
04:16:46 | * | BitPuffin joined #nim |
04:21:39 | * | BitPuffin quit (Ping timeout: 264 seconds) |
04:34:45 | * | Sergio965 quit (Read error: Connection reset by peer) |
04:38:53 | * | jefus_ joined #nim |
04:42:35 | * | jefus quit (Ping timeout: 265 seconds) |
04:47:44 | * | Sergio965 joined #nim |
04:47:52 | onionhammer | spammers on the forum..... |
04:48:21 | * | Sergio965 quit (Client Quit) |
04:48:55 | * | Sergio965 joined #nim |
04:51:40 | * | z1y quit (Ping timeout: 264 seconds) |
04:56:19 | * | hjjyuuu joined #nim |
04:56:56 | * | hjjyuuu quit (Client Quit) |
05:01:45 | * | saml_ quit (Quit: Leaving) |
05:02:12 | Varriount | ? |
05:02:16 | Varriount | onionhammer: Hm? |
05:02:49 | Varriount | onionhammer: Do you mean Nikki? |
05:10:57 | * | brson joined #nim |
05:14:20 | * | z1y joined #nim |
05:17:35 | * | BitPuffin joined #nim |
05:17:54 | * | vbtt joined #nim |
05:19:52 | * | z1y quit (Ping timeout: 240 seconds) |
05:22:44 | * | BitPuffin quit (Ping timeout: 245 seconds) |
05:34:28 | * | Epic|gmpreussner joined #nim |
05:35:16 | * | gmpreussner__ quit (Ping timeout: 265 seconds) |
05:54:33 | * | nRike joined #nim |
05:55:11 | nRike | hey guys, I'm having trouble when trying to make a httpclient request from a URL |
05:55:33 | nRike | every time I want to look up for a website, it throws 400 error |
06:01:17 | * | bjz joined #nim |
06:27:49 | * | z1y joined #nim |
06:34:21 | * | gmpreussner joined #nim |
06:34:49 | * | Epic|gmpreussner quit (Ping timeout: 245 seconds) |
06:45:58 | * | nRike quit (Ping timeout: 246 seconds) |
06:52:37 | * | ajhager quit (Ping timeout: 264 seconds) |
07:00:09 | * | kniteli quit (Ping timeout: 252 seconds) |
07:01:35 | * | Demon_Fox quit (Quit: Leaving) |
07:06:38 | * | BitPuffin joined #nim |
07:11:29 | * | BitPuffin quit (Ping timeout: 245 seconds) |
07:18:04 | * | jefus joined #nim |
07:20:56 | * | jefus_ quit (Ping timeout: 244 seconds) |
07:23:51 | * | nande quit (Remote host closed the connection) |
07:26:06 | * | bjz quit (Ping timeout: 244 seconds) |
07:29:42 | dtscode | does jester work reasonably well with apache? |
07:30:36 | * | gokr_ joined #nim |
07:32:06 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
07:35:10 | * | bjz joined #nim |
07:39:34 | * | bjz quit (Ping timeout: 255 seconds) |
07:46:50 | vegai | dtscode: don't see why it wouldn't |
07:47:02 | vegai | apache might be a bottleneck in such a setup, though :P |
07:47:12 | dtscode | what do you mean? |
07:47:38 | vegai | half-joking there. I meant that jester will be churning out stuff faster than apache can serve it |
07:47:45 | vegai | but I'm not certain if that's true |
07:47:55 | dtscode | oh well that i dont care about so much |
07:48:03 | dtscode | its just for my personal site |
07:48:05 | vegai | yeah, it should be fast enough anyway |
07:48:13 | dtscode | awesome |
07:48:22 | vegai | you'll know when you try it :) |
07:51:09 | dtscode | is dom96's fork of jester the current one? |
07:52:59 | vegai | he started it and I believe it's the most current one |
07:53:10 | dtscode | awesoem |
07:53:11 | dtscode | thanks |
07:53:32 | * | gokr joined #nim |
07:53:39 | gokr | Good morning! |
07:54:06 | gokr | dom96: A spammer account has appeared on the forum, chou66 |
07:54:09 | dtscode | good morning gokr |
07:54:30 | gokr | Morning to ya! |
07:54:46 | gokr | Where are you btw? |
07:55:05 | dtscode | cali |
07:55:07 | * | gour joined #nim |
07:55:11 | dtscode | i just keep weird hours |
07:56:42 | gokr | Cali? |
07:56:52 | dtscode | california |
07:57:00 | gokr | Ah :) |
07:57:05 | dtscode | you? |
07:57:19 | gokr | Sweden, north of Stockholm |
07:57:29 | gokr | So its... 9 in the morning here |
07:57:49 | dtscode | are the bank accounts as good as they say? |
07:57:54 | Varriount | Hey gokr |
07:58:02 | gokr | Bank accounts? |
07:58:07 | gokr | Varriount: hey :) |
07:58:09 | Varriount | gokr: I admire your civil responses on the forum. |
07:58:09 | dtscode | swedish bank accounts |
07:58:20 | dtscode | i should start being on the forum more |
07:58:20 | gokr | Varriount: hehe... yeah. |
07:58:42 | dtscode | i can get input on my impending tutorial there :} |
07:58:45 | gokr | I am spoiled by the extremely polite Smalltalk community I guess. |
07:58:48 | Varriount | gokr: I also liked that article link you posted. |
07:58:58 | gokr | You mean by Gilad? |
07:59:20 | gokr | dtscode: You saw my Nim articles, right? |
07:59:23 | Varriount | gokr: Well, I'd like to think that the Nim community, overall, is polite. Though, a few... sour apples are bound to pop up. |
07:59:35 | dtscode | gokr, i did, but havent had time to read them |
07:59:59 | gokr | Varriount: I agree, the community has been very friendly to an "outsider" like me for sure. |
08:00:24 | gokr | dtscode: Feel free to pillage for a tutorial |
08:00:33 | Varriount | gokr: Did you see my earlier response? The last one on page 2? |
08:00:37 | dtscode | i probably will. you write great stuff |
08:01:36 | gokr | Varriount: Yes, i read it |
08:02:15 | dtscode | > Constructors are supposed to guarantee that the object is initialized fully and properly. |
08:02:16 | dtscode | heh |
08:02:18 | dtscode | n00b |
08:02:41 | Varriount | Well, *supposed* is the key term. |
08:03:08 | gokr | Now... there are two things Smalltalk has that Nim doesn't - that may be a factor here. |
08:03:19 | gokr | Smalltalk has "method categories". |
08:03:25 | gokr | Which is IMHO a brilliant thing. :) |
08:03:59 | gokr | Its basically "named groups" of methods, but have no impact - so they are like annotations. |
08:04:17 | Varriount | "All methods are public.1 Methods are grouped into protocols that indicate their intent. Some common protocol names have been established by convention, for example, accessing for all accessor methods, and initialization for establishing a consistent initial state for the object." |
08:04:22 | gokr | And very convention driven - so you have say "accessing" which always contains pure getters/setters etc. |
08:04:32 | gokr | Yes, right. |
08:04:45 | gokr | And same goes for the class side. |
08:04:51 | * | gmpreussner quit (Ping timeout: 264 seconds) |
08:04:54 | * | gmpreussner_ joined #nim |
08:05:02 | gokr | Now... this is where most non Smalltalkers get confused - classes are objects. |
08:05:08 | Varriount | gokr: Which makes me wonder if smalltalk wouldn't have been a better choice for Android. :P |
08:05:20 | gokr | Sure it would. |
08:05:40 | gokr | But the reasons Smalltalk is not more popular - its a whole book. |
08:05:58 | gokr | But it's a brilliant language - similar to how Lisp is brilliant. |
08:06:13 | dtscode | Varriount, im sure lots of things woul dhave been better |
08:06:15 | gokr | Anyway... so classes have methods, and they also are categorized of course. |
08:06:35 | gokr | So... my point: there is a class side method category called "instance creation" |
08:06:54 | gokr | By convention it always has all the "constructor methods". |
08:07:12 | gokr | So you can easily find them - and you know they can be used to create instances. |
08:07:33 | gokr | Example code: Date today |
08:07:53 | gokr | That's Smalltalk for ... `Date.today()" |
08:08:07 | gokr | So "Date" is a class. |
08:08:18 | gokr | And today is a method on the class side. |
08:08:41 | Varriount | Neat. |
08:08:50 | gokr | It doesn't follow any naming convention - but since there are method categories - you find them anyway. |
08:09:25 | gokr | And since classes are objects - and thus are instances of meta classes - they all inherit one such method. Its called "new". |
08:10:28 | gokr | The second thing different in Smalltalk - is that since we send a message to the class - its very easy to find examples of "instance creations." |
08:10:28 | Varriount | So you can create new classes on-the-fly |
08:10:42 | gokr | Yes, in Smalltalk you are always in runtime. |
08:10:59 | gokr | As I have said a few times - but I understand its "foreign". |
08:11:15 | Varriount | gokr: Not for someone whose first language was python. |
08:11:50 | gokr | Well, Python is close - agree. |
08:11:59 | gokr | Ruby is even closer. |
08:12:37 | gokr | Matz has even said he basically took the Smalltalk object model and put a more "traditional" syntax on it, and made it script friendly. |
08:13:04 | * | dts|pokeball joined #nim |
08:13:10 | Varriount | gokr: Matz? |
08:13:24 | gokr | So the second thing there - since 95% of all messages sent to classes - are in fact these instance creation messages - then its very easy to find all places where "Date" is instantiated. |
08:13:55 | gokr | http://en.wikipedia.org/wiki/Yukihiro_Matsumoto |
08:14:11 | gokr | Met him once at OOPSLA |
08:15:20 | gokr | To summarize - these two things (method categories and the fact that we easily can find all places where Date is the receiver) - make "constructor methods" a non problem in Smalltalk. |
08:16:00 | gokr | Nim doesn't have those two things though, but it could easily be improved if we annotated them using pragmas. |
08:16:09 | gokr | Follow? |
08:16:34 | Varriount | gokr: I think. |
08:16:59 | Varriount | gokr: Certainly makes me want to read up on smalltalk. It sounds like a fascinating language. |
08:17:12 | gokr | It is very fascinating. |
08:17:23 | gokr | 6 keywords :) |
08:17:30 | Varriount | O_o |
08:17:40 | gokr | Or wait, 5. |
08:17:45 | Varriount | o_o |
08:18:05 | gokr | And they are probably not what you think. |
08:18:17 | gokr | Most people would guess "if", "while" etc |
08:18:31 | gokr | But nah, those are all methods in Smalltalk. |
08:18:58 | gokr | They are: nil, true, false, self, super, thisContext |
08:19:03 | gokr | Oh, 6 it is. |
08:19:13 | gokr | thisContext is often forgotten :) |
08:19:30 | Varriount | gokr: Unfortunately, I don't think Nim can be quite so dynamic as Smalltalk. |
08:19:52 | gokr | No, it can't. The languages are quite far from each other. |
08:21:04 | gokr | I have programmed in about 25-30 languages since I was 12 yo. I am 45 now. I discovered Smalltalk in 1993 I think - addict ever since. |
08:22:23 | gokr | Nim is actually the first language since 1993 that I am giving more time than just "playing a while and then going back home to Smalltalk". |
08:22:42 | Varriount | :D |
08:22:51 | gokr | So that's quite telling for Nim. |
08:24:20 | gokr | My influence on Nim is from that extensive Smalltalk experience. I know when things in Smalltalk "don't fit" - but I also know when its worth raising a hand and saying that... "hey, guys, this language from the 1980s does it like this...". |
08:25:11 | gokr | Btw, I used to teach Smalltalk too - the language fits comfortably on 5 slides. |
08:26:22 | Varriount | gokr: Well, annoying users on the forum aside, know that I value your feedback. I think Araq does too (or maybe he just enjoys discussing/arguing with you. Maybe it's the same thing? :P ) |
08:27:30 | gokr | I haven't used the pragmas much yet - are they also used for purely annotation purposes? |
08:27:53 | Varriount | gokr: Well, they have a couple of uses (like everything else) |
08:27:56 | gokr | I am cool with Araq. |
08:28:25 | * | dtscode quit (Quit: ZNC - http://znc.in) |
08:29:23 | Varriount | You can use macros as pragmas to pass various AST's to the macro. You can use them to control how the compiler treats the target (calling convention, load from dll, etc) |
08:30:09 | gokr | Damn Nim is extensive :) |
08:30:19 | Varriount | gokr: There also macros which describe the procedure, such as what kinds of side-effects it has, if it requires locks, etc |
08:30:38 | gokr | Yeah, I know several of them etc, just curious if there are any that "just" do annotations. |
08:30:54 | Varriount | gokr: Well, I think you can have an empty user pragma. |
08:30:57 | gokr | So anyway - we could mark "constructor methods" using a pragma. |
08:31:09 | Varriount | *user-defined |
08:31:43 | gokr | Or in fact... we could even create a "proc category pragma". |
08:31:58 | gokr | So we could categorize behaviors - like in Smalltalk. |
08:32:22 | Varriount | http://nim-lang.org/manual.html#pragma-pragma |
08:32:34 | gokr | Ah, right :) |
08:32:51 | * | gmpreussner__ joined #nim |
08:33:10 | gokr | It may be overkill in your eyes - but the method categories are very, very nice in Smalltalk. |
08:33:29 | gokr | Now, if you look at say http://nim-lang.org/queues.html - you do get the iterators separately, which is nice. |
08:33:37 | * | gmpreussner_ quit (Ping timeout: 265 seconds) |
08:33:47 | gokr | But the "construction procs" are not easily found. |
08:34:30 | Varriount | gokr: Yep, you can create an empty user-defined macro, and place it on a procedure. |
08:35:04 | * | BlaXpirit joined #nim |
08:35:11 | Varriount | gokr: https://gist.github.com/Varriount/8442ead784268640ab41 |
08:35:36 | gokr | yeah |
08:36:14 | gokr | So I think it would be a worthwhile thing - especially for even better auto completion I guess. |
08:37:12 | Varriount | Anyway, I need to get back to bed. It was nice talking with you gokr. |
08:37:16 | Varriount | Goodnight. |
08:37:19 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
08:37:19 | gokr | Gnite! |
08:37:55 | BlaXpirit | i kinda like it without constructors |
08:38:25 | gokr | BlaXpirit: We do too. We are just talking about annotating the "construction procs". |
08:38:39 | BlaXpirit | kinda pointless |
08:38:44 | gokr | Eh, no? |
08:38:55 | BlaXpirit | yes |
08:39:09 | BlaXpirit | if a function returns something of that type, you could call it construction proc |
08:39:20 | BlaXpirit | expecially if it doesn't take an argument that is the type itself |
08:39:29 | BlaXpirit | s* |
08:40:00 | gokr | So you think we could skip the newXXX, initXXX convention too? |
08:40:16 | BlaXpirit | uh now that i think about it, yes |
08:40:28 | BlaXpirit | i've been skipping "init" myself |
08:40:36 | BlaXpirit | new may be good though |
08:41:44 | gokr | I don't agree, although I agree the heuristic would catch many of them. But it would also catch "false" ones. |
08:42:10 | BlaXpirit | i don't know what would even be "false" |
08:42:40 | BlaXpirit | you can't have a strict definition of a constructor in context of nim anyway |
08:42:46 | gokr | So, say you have an object holding lots of Bananas, and you call "find" to get one of them. Construction? No. |
08:43:01 | BlaXpirit | what if the heuristic is actually the sanes definition of them |
08:43:19 | BlaXpirit | gokr, that is true and renders a lot of my points invalid :p |
08:44:49 | gokr | One could however possibly argue - that if the proc returns a single T, and it also actually allocated it... but you know, I do think an annotation may be more intention revealing :) |
08:45:08 | * | brson quit (Quit: leaving) |
08:45:33 | BlaXpirit | nah... using proc body is not an option |
08:45:39 | BlaXpirit | especially in the context of FFI |
08:46:08 | gokr | Either way, if you read what I wrote above - my experience from Smalltalk indicates this "annotation" is very useful. |
08:46:27 | BlaXpirit | was gonna say i can't... but chat log |
08:46:49 | gokr | Ah, you just entered - sorry, didn't see. |
08:48:48 | BlaXpirit | another problem is, nobody's gonna use those |
08:49:03 | gokr | Why not? |
08:49:19 | BlaXpirit | i dunno. it's too late? |
08:49:33 | gokr | To add annotations like that? |
08:49:50 | gokr | It would be trivial to scan the stdlib and add them I think. |
08:50:10 | BlaXpirit | if someone is writing code, they don't wanna bother with something that has no effect |
08:51:00 | gokr | I disagree - that's invalidating all of documentation too. |
08:51:01 | BlaXpirit | now, if special convenient syntax for constructors is introduced, that may be a different story |
08:51:33 | gokr | Comments don't have effects either, yet we write them, don't we? |
08:51:43 | BlaXpirit | sometimes :p |
08:52:36 | gokr | Its of course a library maturity thing, you are not forced to use it in your little script etc, but nice to have it in stdlibs. |
08:53:44 | * | infrashortfoo joined #nim |
08:55:25 | * | BitPuffin joined #nim |
08:55:29 | BlaXpirit | ok, all things considered, it's not bad |
08:55:52 | gokr | Ha! :) I will treasure this moment |
08:56:06 | * | gokr taking a snapshot picture of my screen... |
08:56:16 | gokr | Just kidding. |
08:56:49 | BlaXpirit | no change in nim required. might as well start a movement right now |
08:58:32 | gokr | A sidenote: In Smalltalk when I want to see how a class is used, I tend to hit ctrt-N (or whatever) to have a browser on all methods referencing the class. |
08:59:02 | * | z1y quit (Remote host closed the connection) |
08:59:18 | gokr | 95% of those methods would be methods calling an instance creation method - so I get lots of examples of usage that way. |
08:59:23 | BlaXpirit | "all methods referencing the class" is indeed a must |
08:59:48 | BlaXpirit | generated documentation is barely usable right now because if its absence |
08:59:53 | * | BitPuffin quit (Ping timeout: 240 seconds) |
09:00:09 | BlaXpirit | someone has been working on documentation full of sorting, filtering and other goodies |
09:00:09 | gokr | Having this annotation would make it easy to find all places where a type is "created" - and thus easy to find sample code. |
09:00:12 | BlaXpirit | no time now |
09:00:51 | BlaXpirit | gokr, but what do you mean "in smalltalk" |
09:01:06 | gokr | In the Smalltalk IDE |
09:01:11 | BlaXpirit | ok |
09:01:30 | BlaXpirit | vim users laugh at that |
09:01:35 | gokr | Smalltalk is 50% language, 50% IDE. |
09:01:39 | BlaXpirit | even though i'm not a vim user, i don't use no IDEs |
09:02:28 | gokr | Well... the Smalltalk "IDE" is not like other IDEs. |
09:02:37 | gokr | But "IDE" is the only name fitting. |
09:03:09 | gokr | Well, I guess Emacs is similar. |
09:03:43 | gokr | Similar in a theoretical POV. As in being immersed inside a Lisp "world". |
09:04:43 | gokr | Hard to explain, but its very cool stuff and you should try it sometime :) |
09:04:46 | * | Epic|gmpreussner joined #nim |
09:05:02 | BlaXpirit | easy to dismiss as unpopular |
09:05:03 | * | gmpreussner__ quit (Ping timeout: 256 seconds) |
09:05:10 | gokr | You mean like Nim? |
09:05:12 | BlaXpirit | but then again, we are in #nim |
09:05:26 | gokr | The really cool things are never mainstream. |
09:05:55 | gokr | Smalltalk is in this regard just like Nim. A gem going under the radar for most people. |
09:06:11 | BlaXpirit | for how many years has it been evading radars now? |
09:06:26 | gokr | Smalltalk was quite big you know |
09:07:21 | gokr | In say 1990-95 C++ had about 60% and Smalltalk had 33% of the "OOP" market. |
09:10:10 | gokr | In fact, lots of the big companies using Smalltalk didn't want to tell - because it was considered a competitive advantage. This was true especially in the stock market domain. |
09:11:12 | gokr | Sorry for the offtopic - but most seem to be asleep anyway ;) |
09:15:37 | * | minciue joined #nim |
09:19:17 | * | dts|pokeball quit (Remote host closed the connection) |
09:25:57 | * | dts|pokeball joined #nim |
09:29:24 | * | zahary1 quit (Ping timeout: 245 seconds) |
09:45:26 | * | dts|pokeball quit (Quit: Leaving) |
09:47:44 | * | dts|pokeball joined #nim |
09:51:02 | * | johnsoft quit (Read error: Connection reset by peer) |
09:54:28 | * | dts|pokeball quit (Quit: Leaving) |
09:56:27 | * | dts|pokeball joined #nim |
09:57:29 | * | dts|pokeball quit (Remote host closed the connection) |
10:04:44 | * | yglukhov______ joined #nim |
10:05:12 | * | gmpreussner joined #nim |
10:05:14 | * | Epic|gmpreussner quit (Ping timeout: 245 seconds) |
10:24:02 | * | MajorTennis joined #nim |
10:24:33 | * | MajorTennis quit (Changing host) |
10:24:33 | * | MajorTennis joined #nim |
10:28:37 | * | JinShil joined #nim |
10:34:38 | * | Sphax joined #nim |
10:48:03 | * | yglukhov_______ joined #nim |
10:48:03 | * | yglukhov______ quit (Ping timeout: 264 seconds) |
10:55:14 | * | BitPuffin joined #nim |
10:57:53 | * | JinShil quit (Ping timeout: 240 seconds) |
11:00:44 | * | bjz joined #nim |
11:00:54 | * | gsingh93 quit (Quit: Connection closed for inactivity) |
11:11:31 | * | yglukhov_______ quit (Quit: Lingo: www.lingoirc.com) |
11:12:51 | * | VinceAddons joined #nim |
11:16:49 | * | gour_ joined #nim |
11:19:34 | * | gour quit (Disconnected by services) |
11:19:38 | * | gour_ is now known as gour |
11:22:39 | * | Sphax quit (Quit: ZZZZZzzzzz) |
11:23:05 | * | BitPuffin quit (Ping timeout: 264 seconds) |
11:28:02 | * | JinShil joined #nim |
11:29:14 | * | BitPuffin joined #nim |
11:32:42 | * | bjz quit (Read error: Connection reset by peer) |
11:34:41 | * | gmpreussner_ joined #nim |
11:36:04 | * | gmpreussner quit (Ping timeout: 264 seconds) |
11:39:40 | JinShil | What does the .magic prama do? Does it just forward to a C function? |
11:40:24 | JinShil | Let me rephrase that. What does the magic pragma do? |
11:42:10 | Varriount | JinShil: It's used by the compiler to detect special procedures. |
11:42:16 | * | zielmicha joined #nim |
11:42:31 | Varriount | Usually procedures implemented by the compiler. |
11:43:03 | JinShil | Varriount, ok that makes sense. Thanks. |
11:44:24 | * | keyle joined #nim |
11:44:34 | JinShil | May I ask, why aren't those special procedures implemented in the runtime? |
11:45:31 | keyle | hi |
11:46:24 | Araq | JinShil: depends. |
11:46:49 | Araq | often the magic is transformed into a .compilerProc which is implemented in the runtime |
11:49:48 | * | bjz joined #nim |
11:50:23 | Araq | lol @ "forward to a C function". We don't use C. We generate it. I know it's hard to imagine but Nim doesn't require a core written in C. |
11:53:59 | * | johnsoft joined #nim |
11:56:46 | * | EXetoC joined #nim |
12:00:14 | JinShil | I guess I keep expecting the man behind the curtain written in C. |
12:03:35 | * | repax joined #nim |
12:04:37 | * | bjz quit (Ping timeout: 264 seconds) |
12:06:15 | * | leavengood joined #nim |
12:06:38 | * | leavengood is now known as Guest7667 |
12:12:55 | * | bjz joined #nim |
12:21:17 | * | willwillson joined #nim |
12:21:26 | * | darkf quit (Ping timeout: 244 seconds) |
12:22:40 | * | areckizb quit (Ping timeout: 246 seconds) |
12:25:44 | * | bjz quit (Read error: Connection reset by peer) |
12:28:56 | * | Trustable joined #nim |
12:34:55 | * | gmpreussner__ joined #nim |
12:35:39 | * | gmpreussner_ quit (Ping timeout: 245 seconds) |
12:37:29 | * | bjz joined #nim |
12:37:38 | Araq | Varriount: I was quicker :P |
12:38:34 | Varriount | Araq: Hm? |
12:38:56 | Araq | I replied too in the IUP thread |
12:40:22 | keyle | is there a tutorial with a real world spawn example? ... I'm trying to hookup ircclient with readLine and I'm not having much luck :> |
12:40:47 | Varriount | keyle: Could you show us your code? |
12:40:49 | Araq | keyle: there are a couple of tests in tests/parallel |
12:41:59 | keyle | Varriount: note that I'm a nim noob - https://gist.github.com/keyle/46337a707c23492c7e11 |
12:43:25 | * | Epic|gmpreussner joined #nim |
12:43:37 | * | gmpreussner__ quit (Ping timeout: 245 seconds) |
12:44:02 | keyle | I guess I have to use spawn here |
12:44:17 | Araq | keyle: no, don't use it here |
12:44:32 | Araq | oh wait |
12:44:56 | * | Sphax joined #nim |
12:45:12 | keyle | the goal here is to make a very basic irssi inspired client |
12:45:35 | Araq | well it doesn't work that way |
12:46:00 | Araq | launchClient shouldn't be .async |
12:46:39 | Araq | and should call runForever I guess which is not .gcsafe |
12:47:06 | Varriount | keyle: Async is not quite the same as spawn |
12:47:29 | Araq | but I need to talk with dom96 about this, currently async + spawn is simply not supported |
12:48:04 | keyle | yeah I admit I'm poking in the dark with this code |
12:48:21 | Varriount | keyle: For now, stick to async only |
12:48:46 | Varriount | Araq: There's also the problem that 'await' is used by both async and thread procedures. Is that intended? |
12:48:51 | keyle | ok, how do I make my readLine work with irc events? |
12:49:48 | Araq | hrm nope, asyncdispatch is already threadsafe |
12:50:03 | Araq | so it should work. do this: |
12:50:27 | Araq | don't make launchClient .async and call runForever in it |
12:51:06 | Araq | spawn launchClient() # note that this doesn't return anything |
12:51:54 | keyle | to be clear, I do runForever in launchClient or not? |
12:52:07 | Araq | in launchClient |
12:53:10 | Araq | but if it doesn't work we have to ask dom96 ;-) |
12:53:43 | Araq | Varriount: that's a problem I guess |
12:53:51 | Araq | the awaits are completely different |
12:54:02 | keyle | yep, it compiles fine, but I get this at start - http://pastebin.com/7e71xw4k |
12:55:29 | Araq | well it looks like it fails to 'connect' |
12:56:31 | Varriount | Araq: Did the irc module get removed from the stdlib? |
12:57:00 | Araq | dunno |
12:58:05 | Varriount | Araq: Yep, it got removed... |
12:58:20 | Varriount | Despite the fact that several tests and modules use it. |
12:58:24 | Varriount | >_> |
12:59:01 | renesac|away | Varriount: : I meant this type of BOOL WINAPI: http://msdn.microsoft.com/en-us/library/windows/desktop/dd627165%28v=vs.85%29.aspx |
12:59:13 | renesac|away | how do I translate as a nimrod type? |
12:59:17 | * | renesac|away is now known as renesac |
13:00:26 | Varriount | renesac: WinBool will work |
13:00:38 | Varriount | renesac: This page will help you: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx |
13:01:18 | keyle | thanks guys |
13:01:37 | Varriount | keyle: Sorry for the trouble. |
13:01:48 | renesac | right, thanks |
13:02:01 | Varriount | keyle: We'd be happy for any help with documentation or tutorials |
13:03:13 | Varriount | Araq: I'm working on the patch for PR 1896, and I have a design question |
13:04:32 | Varriount | The incrSeq procedure in sysstr.nim needs to somehow have the part where it modifies the actual length of the sequence disabled or deferred for a single call. |
13:04:50 | keyle | Varriount: thanks, I guess I'm learning as well and trying to do something non-trivial here... constantly readLine while another process outputs |
13:05:30 | keyle | I am having difficulty with the runtime errors though... they can be really good or really puzzling. And google is no help. |
13:07:06 | keyle | I think those connect fails are due to the await going on in the irc lib, that I spawned |
13:07:07 | Varriount | Araq: What would you prefer, that I add an argument to the incrSeq procedure to enable/disable the incrementing of the sequences length field, or remove the length increment entirely, and patch each usage of incrSeq to modify the length field right after the call? |
13:08:15 | Varriount | keyle: If you must use another thread, put the readLine in it's own thread, rather than the irc client |
13:08:59 | keyle | I'm used to GUI development, I would have thought that readline needs to be in the UI thread? ie. the terminal in this case? |
13:09:15 | keyle | can I readline from another thread? |
13:09:27 | * | BitPuffin quit (Ping timeout: 245 seconds) |
13:09:41 | Varriount | keyle: I don't see why not. |
13:09:56 | renesac | and going on the windows folder I discovered one more wrapper not listed on the libs page... |
13:10:02 | renesac | the psapi.nim.... |
13:10:10 | keyle | Varriount: also, is it possible to do this without another thread? how would a readline work within an evented environment? |
13:10:18 | Varriount | renesac: Perhaps you could add those to the documentation index? |
13:10:23 | renesac | yeah |
13:10:32 | Varriount | keyle: Optimally, readLine would not be a blocking operation. |
13:10:32 | renesac | a bit frustrating because that is what I was wrapping |
13:10:34 | renesac | ^^' |
13:11:02 | keyle | but it _is_, right? |
13:11:05 | renesac | and nimfix psapinimfix.nim --styleCheck:auto |
13:11:16 | renesac | does nothing to those PascalCase windows names |
13:11:43 | Varriount | keyle: You could poll stdin to see if a read() on it would be non-blocking |
13:12:01 | Varriount | keyle: However keep in mind that this is not cross-platform. It won't work on Windows. |
13:12:22 | keyle | ah. |
13:12:48 | keyle | will try spawn readline, thanks for your time |
13:13:09 | * | bjz quit (Ping timeout: 245 seconds) |
13:14:08 | Varriount | Araq: Also, do compilerProcs accept default arguments? |
13:14:21 | * | darkf joined #nim |
13:14:33 | * | darkf quit (Changing host) |
13:14:34 | * | darkf joined #nim |
13:16:23 | * | infrashortfoo quit (Read error: Connection reset by peer) |
13:16:33 | * | infrashortfoo joined #nim |
13:20:42 | * | bjz joined #nim |
13:28:52 | * | Demos joined #nim |
13:34:52 | * | Epic|gmpreussner quit (Ping timeout: 245 seconds) |
13:34:59 | * | Epic|gmpreussner joined #nim |
13:37:16 | Demos | Has anyone looked at the c++ variadic folding feature, seems crazy to me |
13:37:36 | Varriount | Demos: Huh? |
13:37:46 | EXetoC | that's a surprise |
13:38:26 | Demos | n4295 |
13:38:43 | Demos | allows stuff like |
13:39:11 | Demos | template<typename... Args> bool f(Args... args) { return (true + ... + args); } |
13:45:08 | keyle | Varriount: what's poll() ? |
13:48:54 | Araq | Varriount: patch every usage of incrSeq |
13:49:43 | Araq | but yes, these can have default arguments but you need to pass every argument when it's used by the codegen |
13:58:34 | * | bjz quit (Ping timeout: 244 seconds) |
14:05:35 | * | BitPuffin joined #nim |
14:08:54 | * | bjz joined #nim |
14:09:03 | * | Demos quit (Ping timeout: 264 seconds) |
14:10:08 | * | BitPuffin quit (Ping timeout: 244 seconds) |
14:11:34 | * | kapil__ quit (Quit: Connection closed for inactivity) |
14:14:52 | * | z1y joined #nim |
14:17:46 | keyle | Is there a way to get a onkeydown instead of a readline ? |
14:20:14 | BlaXpirit | probably not |
14:20:17 | BlaXpirit | unless... curses? |
14:20:28 | ekarlso- | anyone that wanna help up with packages crud ? |
14:20:45 | keyle | I figured as much |
14:22:32 | keyle | afaik just importing and compiling threadpool within an app causes anything async to crash |
14:22:43 | ekarlso- | hmmms, noone seems to have a clue for that ;P |
14:22:56 | keyle | at runtime that is. No need to even use spawn. |
14:24:03 | keyle | night |
14:24:07 | * | keyle quit (Quit: Page closed) |
14:34:15 | * | ajhager joined #nim |
14:36:24 | * | gokr quit (Quit: Leaving.) |
14:43:53 | * | bjz quit (Ping timeout: 240 seconds) |
15:01:57 | * | bjz joined #nim |
15:02:49 | * | z1y quit (Remote host closed the connection) |
15:03:47 | * | z1y joined #nim |
15:09:57 | * | willwillson quit (Ping timeout: 265 seconds) |
15:11:37 | * | Sergio965 joined #nim |
15:13:17 | * | bjz quit (Read error: Connection reset by peer) |
15:15:05 | * | JinShil quit (Quit: Konversation terminated!) |
15:38:00 | * | bjz joined #nim |
15:42:48 | * | Demos joined #nim |
15:52:15 | * | gokr joined #nim |
15:52:20 | Araq | Demos: I'm about to try your VS plugin |
15:52:29 | Demos | uh oh |
15:52:51 | Araq | does it use the "server mode" of idetools? |
15:53:18 | * | Epic|gmpreussner is now known as gmpreussner |
15:53:51 | Demos | nope |
15:53:55 | Demos | server mode does not work |
15:54:09 | Demos | or it did not when I wrote it. There is code to do it if I remember though |
15:55:21 | Araq | well it's a nice chicken and egg |
15:55:39 | Araq | I can't fix the server mode since no editor supports since it doesn't work |
15:57:22 | * | repax quit (Ping timeout: 245 seconds) |
16:02:28 | * | renesac quit (Ping timeout: 246 seconds) |
16:03:05 | jpoirier | The compiler is okay with using using a data type as a proc parameter name, e.g. proc tst(int, uint) = echo(int); echo(uint), and, proc tst(int: char) = echo(int) |
16:05:40 | * | gmpreussner quit (Ping timeout: 244 seconds) |
16:05:49 | * | gmpreussner joined #nim |
16:05:52 | * | z1y quit (Ping timeout: 244 seconds) |
16:11:59 | onionhammer | Araq NimLime has servermode implemented but disabled iirc |
16:12:22 | onionhammer | (since it doesnt work:)) |
16:12:58 | onionhammer | I would love to use a VS plugin though Demos |
16:12:59 | onionhammer | :) |
16:13:48 | Demos | The biggest thing with the VS plugin is testing and fixing the crash when you exit the IDE |
16:14:26 | * | bjz quit (Read error: Connection reset by peer) |
16:14:35 | onionhammer | and just tidying things up imo |
16:14:47 | onionhammer | getting real projects working, if thye dont |
16:14:58 | Demos | my wishlist features include a better project tree view that does not rely on a XML project file, either using some kind of IDEtools output or mirroring the filesystem, and a way to build the project that does not involve a bash script embedded in an XML file |
16:16:06 | Demos | real projects should work, and I am willing to help people get them to work, but the amount of time I have to devote to doing these wishlist features is very small |
16:16:06 | onionhammer | you should also rename it ;) |
16:16:18 | onionhammer | yeah |
16:16:21 | onionhammer | understandable |
16:16:24 | Demos | yeah, and make sure it works in VS 2015 |
16:16:25 | onionhammer | also inline debugging |
16:16:29 | onionhammer | lol |
16:16:31 | Demos | hm? debugging works |
16:16:37 | onionhammer | i wasnt able to get it to work |
16:17:58 | Demos | it might have been a bug in the project templates. I really want to figure out how to deal with those deployment wise. I think I will put the project generator in nimble, that should make things easier. When I use the VS plugin to write code I add the solutions and project files to .gitignore and generate them with that tool when needed |
16:18:49 | onionhammer | yeah |
16:18:51 | * | z1y joined #nim |
16:18:51 | onionhammer | good idea |
16:20:24 | Demos | the tools is really basic at the moment (and I think it should remain so). you invoke it like vsgen mainfile.nim and it traverses the filesystem and adds all sibling and child .nim files to the project, it then sets mainfile.nim as the "startup object" and writes all the bash build script stuff |
16:21:06 | Demos | this is all stuff that I should be able to do in code that overrides the VS build and project systems, but the API to actually do that is a total and complete fustercluck |
16:21:11 | onionhammer | mm, and you cant do that without the command line tool? |
16:21:19 | onionhammer | oh ok |
16:23:21 | * | z1y quit (Ping timeout: 252 seconds) |
16:27:32 | * | darkf quit (Quit: Leaving) |
16:29:44 | * | bjz joined #nim |
16:31:01 | * | infrashortfoo quit (Ping timeout: 264 seconds) |
16:31:34 | Demos | the problem is not only that the API is really bad but also that there is little documentation |
16:38:01 | * | johnsoft quit (Ping timeout: 252 seconds) |
16:38:17 | * | johnsoft joined #nim |
16:38:56 | * | jefus_ joined #nim |
16:39:51 | onionhammer | Demos you should also test it w/ the free version of vs |
16:40:07 | Demos | The community edition? |
16:42:46 | * | bjz quit (Read error: Connection reset by peer) |
16:43:01 | * | jefus quit (Ping timeout: 264 seconds) |
16:43:06 | onionhammer | yea |
16:43:12 | onionhammer | its supposed to support plugins, right? |
16:46:11 | BlaXpirit | does anyone else find the code examples on home page cryptic? |
16:46:29 | BlaXpirit | i can imagine them scaring me off if i just came to that page |
16:46:32 | onionhammer | the parallel one yah |
16:47:13 | * | gokr_ quit (Ping timeout: 264 seconds) |
16:48:08 | * | BitPuffin joined #nim |
16:50:06 | Demos | onionhammer, yeah I think it is actually just a license for VS 2013 pro |
16:57:35 | * | gsingh93 joined #nim |
16:57:39 | * | Varriount|Busy joined #nim |
16:58:19 | * | MajorTennis quit (Quit: Leaving) |
16:58:20 | * | bjz joined #nim |
16:59:39 | Varriount|Busy | Gah. I think I'm just going to disable the timeout for testament for the buildbots |
17:04:31 | Araq | BlaXpirit: well the parallel one needs to outline the basic idea |
17:04:39 | Araq | it's not code you can run |
17:04:49 | BlaXpirit | i'd just like to see more simple examples of typical things |
17:05:12 | Araq | we have the other snippets for that |
17:05:30 | * | gmpreussner quit (Remote host closed the connection) |
17:05:46 | Araq | the parallel example is there to say "shut up, Nim can do things that Rust cannot" |
17:06:03 | * | gmpreussner joined #nim |
17:14:14 | Varriount|Busy | onionhammer: NimLime also needs to be cleaned up. (Why is there assignment aligning code? How is that related to Nim?) |
17:14:35 | * | Demos quit (Ping timeout: 244 seconds) |
17:15:17 | * | bjz quit (Ping timeout: 264 seconds) |
17:17:53 | * | gokr testing QtCreator... |
17:18:54 | * | Matthias247 joined #nim |
17:19:10 | BlaXpirit | gokr, how exactly......???? |
17:19:20 | Varriount|Busy | gokr: QtCreator is nice... |
17:19:43 | BlaXpirit | it sure is, but how does it relate to Nim? |
17:19:54 | * | Demos joined #nim |
17:19:58 | gokr | I got syntax highlighting working using NimKate definitions |
17:20:03 | onionhammer | assignment aligning is awesome, thats why |
17:20:13 | BlaXpirit | gokr, whatever... |
17:20:18 | gokr | I have also read that QtCreator is good at debugging. |
17:20:24 | gokr | So wanted to try that. |
17:20:32 | gokr | And filcuc's QML stuff would be nice to test. |
17:20:34 | BlaXpirit | it's OK but how can you make it work with nim? |
17:20:37 | BlaXpirit | how? |
17:20:41 | gokr | Debugging? |
17:20:51 | BlaXpirit | let's start with that for example |
17:20:52 | gokr | It uses gdb AFAIK |
17:20:58 | onionhammer | but agree, it can be taken out of the plugin.......... |
17:21:07 | gokr | KDevelop works fine, so I think QtCreator also will work |
17:21:17 | BlaXpirit | gokr, :o where is info on that? |
17:22:14 | * | dtscode joined #nim |
17:22:14 | gokr | Info on... debugging? |
17:22:31 | BlaXpirit | info on debugging Nim in a C++ IDE |
17:22:33 | BlaXpirit | ,yes |
17:22:55 | gokr | I intended to write an article - but its nothing magical. Just compile with -debuginfo and -lineDir:on and then debug away. Works great in KDevelop. |
17:23:11 | gokr | I have said so here several times ;) |
17:23:22 | BlaXpirit | I have no idea |
17:23:36 | BlaXpirit | I barely was able to get KDevelop to work with C++ |
17:24:01 | BlaXpirit | and while I'm quite confident with Qt Creator, I still have no idea how to do anything else but C++ in it |
17:24:16 | BlaXpirit | please do make an article... |
17:24:36 | onionhammer | Varriount|Busy okay, im removing it |
17:24:40 | * | Sphax quit (Quit: CYA!!) |
17:25:18 | * | dtscode quit (Quit: ZNC - http://znc.in) |
17:25:49 | * | dtscode joined #nim |
17:25:55 | gokr | BlaXpirit: I will. |
17:25:57 | Varriount|Busy | onionhammer: And the favorite file thing? |
17:26:05 | onionhammer | idk what that is |
17:27:16 | onionhammer | oh i think that's the license for the 'favorite file' code, which we used to set the 'main' nim file |
17:27:21 | onionhammer | (I think) |
17:27:49 | onionhammer | https://github.com/facelessuser/FavoriteFiles/ |
17:28:46 | onionhammer | Varriount|Busy are you working on the idetools stuff? |
17:29:17 | * | gokr quit (Quit: Leaving.) |
17:30:25 | * | vendethiel quit (Quit: q+) |
17:31:20 | Varriount|Busy | onionhammer: No, I'm busy at work. |
17:31:36 | * | brson joined #nim |
17:32:03 | Varriount|Busy | After that, I've been tasked with getting more of the buildbot done. |
17:32:21 | onionhammer | the thing I think nimlime needs is probably to refactor the naming a bit in our tmLanguage file |
17:32:31 | onionhammer | make sure stuff goes into the correct scope |
17:32:54 | onionhammer | i.e. misc vs store vs entity vs keyword etc |
17:33:25 | onionhammer | I just cleaned up the proc highlighting stuff |
17:33:27 | onionhammer | yesterday |
17:33:31 | * | bjz joined #nim |
17:33:40 | onionhammer | and added highlighting for call syntax |
17:35:41 | onionhammer | probably highlight pragmas finally as well.. not sure how to classify them yet though, i'll probably follow C++'s plugin |
17:35:55 | Varriount|Busy | onionhammer: Put in some issues, so I have a reminder |
17:36:59 | Varriount|Busy | Araq: Where is the proc definition for the `[]` in 'addr(someString[0])' |
17:38:35 | Araq | Varriount|Busy: it's builtin in a way that's not visible in system.nim |
17:39:20 | Varriount|Busy | Araq: Oh, so there's no way to replicate it in arbitrary types? |
17:39:44 | Araq | Varriount|Busy: sure there is |
17:40:00 | Araq | proc `[]`(x: Foo: index: int): var Bar |
17:40:11 | Araq | proc `[]`(x: Foo; index: int): var Bar |
17:41:17 | Varriount|Busy | proc `[]`(ls: LinkedString, n: int): var char = ls.value[n] |
17:41:26 | Varriount|Busy | doesn't work |
17:41:59 | Araq | maybe you need 'var LinkedString' |
17:43:11 | * | bjz quit (Read error: Connection reset by peer) |
17:43:42 | ekarlso- | hmm |
17:44:10 | ekarlso- | if you have two procs that take a string but returns different types how does it call the right one ? |
17:45:57 | Araq | ekarlso-: it complains it doesn't know what to call |
17:46:29 | ekarlso- | Araq: how you get it to call the right one :| |
17:46:31 | Varriount|Busy | ekarlso-: You can resolve the ambiguity by specifying the module the desired proc is in. |
17:46:34 | * | willwillson joined #nim |
17:47:01 | ekarlso- | Varriount|Busy: it's in the same module |
17:47:09 | ekarlso- | like a fromRow proc |
17:47:39 | Varriount|Busy | ekarlso-: So... you have two procedures, named the same thing, taking the same arguments, but returning a different return type? |
17:47:51 | * | kniteli joined #nim |
17:48:05 | ekarlso- | lemme make a example instead ;P |
17:51:13 | ekarlso- | https://bpaste.net/show/804f39e6ae08 |
17:51:45 | * | superfunc|busy joined #nim |
17:51:59 | Varriount|Busy | ekarlso-: There's no way around that ambiguity at the moment. Consider changing the procedure names |
17:52:09 | ekarlso- | darn :( |
17:52:26 | Varriount|Busy | eg: getPackageFrom(...) and getStringFrom(...) |
17:52:39 | ekarlso- | rowToPackage |
17:52:41 | ekarlso- | I guess |
17:53:08 | Varriount|Busy | ekarlso-: The other alternative is to use a type variant to encapsulate the two types. |
17:53:27 | ekarlso- | type variant ? sounds beyond the tutorials |
17:56:05 | Araq | don't use type variants if you don't need them |
17:56:32 | ekarlso- | why can't the compiler infer the type though ? |
17:57:20 | Araq | why can't you come up with 2 different names though? |
17:58:42 | ekarlso- | Araq: I did now |
17:58:47 | ekarlso- | packageFromRow or rowToPackage ? |
17:58:49 | ekarlso- | :P |
18:00:03 | Varriount|Busy | ekarlso-: This is type variants: https://bpaste.net/show/3e5b80c7e2e0 |
18:00:28 | Varriount|Busy | (That example may not work exactly, I can't remember if variant fields can share names) |
18:02:09 | Araq | (they cannot, why would they?) |
18:02:42 | onionhammer | Varriount|Busy i forgot the issue i was having with ##'s, but i dont see it anymore |
18:07:33 | * | bjz joined #nim |
18:11:48 | EXetoC | not packageToRow and rowToPackage? |
18:12:33 | EXetoC | I misread |
18:17:23 | * | kniteli quit (Remote host closed the connection) |
18:18:15 | Varriount|Busy | onionhammer: I'm gonna try something ... interesting this afternoon that might help with the plugin organization. |
18:18:47 | onionhammer | oh? |
18:18:56 | onionhammer | (i just checked in pragma highlighting 5 secs ago) |
18:19:49 | * | kniteli joined #nim |
18:20:10 | onionhammer | Varriount|Busy what, pray tell? :) |
18:21:14 | Varriount|Busy | onionhammer: Using __all__ or eval() |
18:21:29 | onionhammer | come again? |
18:22:11 | Varriount|Busy | onionhammer: One is a hidden module variable that controls what is exported in a python module. The other is a function that evaluates a string as python code, in context of the current scope. |
18:22:14 | onionhammer | you're reorganizing the python? |
18:22:43 | Varriount|Busy | onionhammer: Yeah. |
18:22:48 | * | BitPuffin quit (Ping timeout: 265 seconds) |
18:23:17 | Varriount|Busy | onionhammer: We can't really move the other files. :/ |
18:26:14 | * | AMorpork is now known as ShovelingMorpork |
18:27:48 | EXetoC | the python? sounds like some kind of mutant |
18:28:56 | BlaXpirit | the programming language.. |
18:30:57 | * | Demos quit (Ping timeout: 252 seconds) |
18:35:34 | * | gmpreussner_ joined #nim |
18:36:13 | * | gmpreussner quit (Ping timeout: 244 seconds) |
18:38:34 | * | Demon_Fox joined #nim |
18:42:06 | * | BitPuffin joined #nim |
18:45:39 | * | bjz quit (Ping timeout: 264 seconds) |
18:47:41 | * | bjz joined #nim |
18:48:09 | * | superfunc|busy quit (Ping timeout: 256 seconds) |
18:50:41 | * | Varriount|Busy quit (Quit: Page closed) |
19:00:30 | * | bjz quit (Ping timeout: 265 seconds) |
19:02:16 | * | ShovelingMorpork is now known as AMorpork |
19:09:47 | * | Lordovos joined #nim |
19:11:54 | * | brson quit (Quit: leaving) |
19:17:39 | * | bjz joined #nim |
19:25:13 | * | repax joined #nim |
19:27:48 | * | renesac joined #nim |
19:28:19 | * | bjz quit (Read error: Connection reset by peer) |
19:36:04 | * | gmpreussner_ quit (Ping timeout: 245 seconds) |
19:36:09 | * | gmpreussner__ joined #nim |
19:38:09 | jpoirier | Can spawn be used as a cheap thread or is it not advisable? |
19:41:04 | jpoirier | ...to create a cheap thread that is. |
19:45:53 | * | rpag joined #nim |
19:46:02 | * | rpag quit (Client Quit) |
19:49:25 | * | Guest7667 is now known as leavengood |
19:49:33 | * | dloss_ joined #nim |
19:50:40 | * | rpag joined #nim |
19:51:18 | Varriount | jpoirier: Spawn is used for threadpools, so in a way, yes |
19:52:48 | dloss_ | Hi. Running "nimble install c2nim" gives me "Unsatisfied dependency: nim (>= 0.10.3)." Any hints? |
19:53:49 | dloss_ | I'm on nimble v0.6.0 and nim installed from github |
19:55:30 | willwillson | dloss_: yeah, you need to use latest devel code |
19:57:07 | * | bjz joined #nim |
19:57:19 | dloss_ | willwillson: git pull says I'm up-to-date. Freshly installed from 647aadc1 |
19:57:59 | willwillson | what does nim -version say? |
19:58:16 | willwillson | nim --version |
19:58:23 | dloss_ | Nim Compiler Version 0.10.2 (2015-01-09) [MacOSX: amd64] |
19:58:28 | * | BlaXpirit_ joined #nim |
19:58:57 | willwillson | there is your problem, you need to compile nim from the latest devel sources |
19:59:27 | willwillson | or step back a few commits from c2nim HEAD |
19:59:37 | * | rpag quit (Quit: Leaving) |
19:59:50 | dloss_ | thx. will try that |
20:01:37 | * | BlaXpirit quit (Ping timeout: 264 seconds) |
20:07:33 | * | nande joined #nim |
20:09:26 | dloss_ | using the nim devel branch helped. thx. |
20:12:51 | * | bjz quit (Read error: Connection reset by peer) |
20:13:53 | * | EXetoC quit (Ping timeout: 240 seconds) |
20:14:27 | * | bjz joined #nim |
20:16:49 | * | repax quit (Quit: repax) |
20:25:35 | * | billp joined #nim |
20:28:45 | * | bjz quit (Read error: Connection reset by peer) |
20:33:24 | dtscode | BlaXpirit_, was it you that wrote the article on writing jester apps? |
20:33:32 | BlaXpirit_ | definitely not |
20:33:36 | BlaXpirit_ | why |
20:33:56 | dtscode | im trying to figure out how to get jester to work with apache |
20:36:19 | * | gour quit (Quit: Leaving) |
20:38:08 | * | shodan45 joined #nim |
20:38:39 | * | gokr joined #nim |
20:42:21 | dtscode | Araq, is that build status https://github.com/Araq/Nim here current? |
20:43:08 | * | bjz joined #nim |
20:45:42 | gokr | Varriount: You need nodejs on the build slaves? |
20:45:44 | gokr | I presume |
20:51:36 | def- | dtscode: you would just run the jester app locally and on apache setup a reverse proxy |
20:52:04 | dtscode | def-, well as it turns out i need apache |
20:52:09 | dtscode | dtscode.io:5000 |
20:52:14 | dtscode | thats just jester afaik |
20:52:17 | def- | yes |
20:52:39 | dtscode | so now i just need jester to work on port 80, and i can cut apache out of the equation |
20:52:57 | def- | yes, that would work |
20:53:09 | def- | may be insecure, but I'm not sure |
20:53:27 | dtscode | i think thats all the nim forums use |
20:54:05 | def- | I bet the nim forum is behind an nginx reverse proxy for the "forum.nim-lang.org" domain |
20:54:27 | dtscode | how would i setup a reverse proxy |
20:54:49 | def- | with apache you need a line like "ProxyPass /foo http://localhost:5000/" |
20:55:31 | def- | nginx should be faster, there it's called proxy_pass |
20:56:02 | dtscode | meh, speed i dont care about so much right now |
20:56:12 | dtscode | ive already got apache installed |
20:56:56 | ldlework | if you use Docker its easy peasy |
20:56:58 | ldlework | :) |
20:57:05 | ldlework | https://registry.hub.docker.com/u/jwilder/nginx-proxy/ |
20:57:06 | dtscode | for a webserver? |
20:57:07 | ldlework | magic |
20:59:26 | * | bjz quit (Read error: Connection reset by peer) |
21:01:19 | * | bjz joined #nim |
21:05:50 | * | Epic|gmpreussner joined #nim |
21:06:53 | * | gmpreussner__ quit (Ping timeout: 264 seconds) |
21:07:57 | * | Demos joined #nim |
21:12:46 | dtscode | def-, do i need to write that in my apache2.conf file? |
21:13:36 | jsudlow | there you go again sharing the magical image ldlework |
21:14:03 | ldlework | jsudlow: worked for you right? |
21:14:20 | jsudlow | ldlework: It worked surprisingly well - the first time |
21:14:34 | def- | dtscode: yes, something like that |
21:14:40 | jsudlow | if your patient enough to read a few paragraphs you can have it |
21:14:42 | gokr | Can report that debugging in QtCreator works fine |
21:16:19 | * | bjz quit (Ping timeout: 252 seconds) |
21:16:20 | * | Matthias247 quit (Quit: Matthias247) |
21:18:28 | flaviu | https://gist.github.com/flaviut/e4a30004d0bb8e90fb8c |
21:18:40 | flaviu | Can anyone tell what "pcre.nim(10, 30) Error: invalid pragma: dynlib: pcreDll" is all about? |
21:18:50 | def- | flaviu: yes, i told you last time |
21:19:03 | def- | flaviu: in the type definitions, remove all pcreImports |
21:19:45 | flaviu | def-: Oh, sorry. I had gone to bed by that time. |
21:19:50 | def- | no problem |
21:27:27 | * | gokr1 joined #nim |
21:27:57 | * | arekzb quit (Quit: Page closed) |
21:28:02 | * | Kal_ joined #nim |
21:29:06 | * | gokr quit (Ping timeout: 244 seconds) |
21:30:43 | * | irrequietus joined #nim |
21:33:51 | * | billp left #nim (#nim) |
21:38:44 | gokr1 | Its slick that debugging goes fine into templates etc |
21:43:27 | * | dyu joined #nim |
21:45:15 | ldlework | Is devel still broken? |
21:45:31 | * | Matthias247 joined #nim |
21:47:45 | * | bjz joined #nim |
21:48:42 | * | brson joined #nim |
21:49:15 | * | minciue quit (Quit: minciue) |
21:52:15 | * | Demos quit (Ping timeout: 252 seconds) |
21:54:38 | dtscode | devel compiles fine for me |
21:55:15 | ldlework | yeah |
21:55:20 | ldlework | dtscode: how the hell do you use the irc module |
21:55:26 | ldlework | is the example in the docs wrong? |
21:55:37 | dtscode | ldlework, no idea. i mostly tore apart nimbot |
21:56:00 | ldlework | sure it instantiates a PAsyncIRC directly |
21:56:05 | ldlework | but the docs say to use irc.irc |
21:56:19 | dom96 | The docs are likely outdated. |
21:56:19 | ldlework | which I'm getting: talmud.nim(3, 16) Error: expression 'irc(IRC_NETWORK)' cannot be called |
21:56:24 | ldlework | ok |
21:56:40 | dtscode | i might make a deal with dom96 where he writes proper asyncio code for nimbus and i write eval stuff for nimbot |
21:56:45 | dtscode | anyways, i can show you my code |
21:57:02 | ldlework | I'm just checking that the docs are wrong and not me |
21:57:04 | dom96 | sure, how much will you pay me? :P |
21:57:06 | ldlework | I can read nimbot |
21:57:29 | dtscode | dom96, ummmm |
21:57:36 | dtscode | how much do you cost? |
21:58:09 | dom96 | $100 an hour :P |
21:58:17 | dtscode | fuck that |
21:58:25 | ldlework | lol |
21:58:28 | onionhammer | $100/hour for a student? :P |
21:58:34 | onionhammer | i'll give u $10/hour |
21:58:45 | dtscode | it would just be cheaper for me to learn the asyncnet module |
21:59:06 | dtscode | im broke right now anyways so its a mute point |
22:00:52 | * | bjz quit (Ping timeout: 255 seconds) |
22:02:33 | ldlework | moot* |
22:02:54 | dtscode | woot |
22:03:14 | dom96 | onionhammer: deal. |
22:06:06 | * | gmpreussner joined #nim |
22:06:11 | * | adam_s joined #nim |
22:07:04 | * | Epic|gmpreussner quit (Ping timeout: 265 seconds) |
22:07:57 | ldlework | dom96: why can't I call irc.irc |
22:08:28 | dom96 | dunno |
22:08:50 | dom96 | what are you trying to do? |
22:09:04 | dtscode | ldlework, have you installed irc? |
22:09:14 | ldlework | dtscode: oh I thought it was stdlib |
22:09:25 | dtscode | ldlework, nope :/ gave me some trouble |
22:09:46 | dtscode | nimble install irc |
22:12:55 | ldlework | dtscode: I already have it installed |
22:12:58 | ldlework | irc.irc not callable |
22:13:08 | ldlework | dom96: I'm trying to run the code in the documentation |
22:13:20 | dtscode | ah |
22:14:07 | dom96 | you want newIrc |
22:14:15 | dom96 | or something like that |
22:20:37 | * | bjz joined #nim |
22:22:48 | * | jefus_ is now known as jefus |
22:31:41 | * | Lordovos quit (Quit: Leaving) |
22:31:59 | * | bjz quit (Ping timeout: 256 seconds) |
22:43:44 | * | dloss_ quit (Quit: Leaving) |
22:45:53 | * | shevy left #nim ("I'll be back ... maybe") |
22:46:35 | * | rpag joined #nim |
22:56:49 | ldlework | that worked |
23:01:35 | * | ajhager quit (Ping timeout: 244 seconds) |
23:03:17 | * | EXetoC joined #nim |
23:09:35 | ldlework | Does anyone know where theindex.html is generated? |
23:12:55 | ldlework | I can't figure it out |
23:13:13 | EXetoC | have yu tried t grep fr it? |
23:13:23 | EXetoC | damn keybard |
23:14:43 | ldlework | EXetoC: yeah |
23:14:51 | ldlework | I've found various related things |
23:14:57 | ldlework | but not where the actual html is generated for the index |
23:15:32 | EXetoC | tools/nimweb shows up when I grep for it |
23:15:57 | * | bjz joined #nim |
23:16:37 | ldlework | yes I see that too, but that's not really the actual work |
23:17:16 | ldlework | (it shells out back to the compiler) |
23:18:47 | ldlework | i have been trying to trackdown what 'buildIndex' does but not really getting lucky |
23:18:52 | ldlework | all I find is shit in the csources |
23:19:05 | EXetoC | docgen.commandBuildIndex? |
23:19:10 | BlaXpirit_ | don't forget the possibility that it is not in repo |
23:19:22 | BlaXpirit_ | index might be an external idx file or some stuff |
23:19:48 | ldlework | this is turning out to be a time sink |
23:20:03 | flaviu | ldlework: ack? |
23:20:11 | ldlework | whyyyy don't we just use a normal template system for generating html like every other project in the world |
23:20:16 | flaviu | --ignore-dir=nimcache --ignore-dir=csources |
23:20:17 | ldlework | flaviu: ack? |
23:20:17 | * | saml quit (Quit: Leaving) |
23:20:24 | flaviu | ack |
23:20:25 | flaviu | http://beyondgrep.com/ |
23:20:30 | EXetoC | he was using grep already |
23:20:31 | ldlework | flaviu: try it? |
23:20:47 | EXetoC | commandBuildIndex doesn't lead you anywhere? |
23:21:02 | ldlework | EXetoC: and where did you find 'commandBuildIndex'? |
23:21:29 | EXetoC | compiler/docgen.nim |
23:21:37 | flaviu | ldlework: compiler/docgen.nim:636 |
23:21:43 | ldlework | right but how did you /find that/ |
23:21:57 | * | saml joined #nim |
23:22:15 | flaviu | EXetoC: Yeah, but with ack it doesn't look at .git, and with --ignore-dir=nimcache --ignore-dir=csources, it's even more useful |
23:22:50 | ldlework | guys do you have any idea where the actual logic of generating html actually is? |
23:22:56 | ldlework | where is the template for the index that this is using? |
23:23:01 | EXetoC | ok I never got a match in csources |
23:23:14 | BlaXpirit_ | search for css? |
23:23:29 | ldlework | BlaXpirit_: what |
23:23:45 | BlaXpirit_ | search all files for "text/css" literally |
23:24:01 | BlaXpirit_ | ah you're talking about index specifically |
23:24:23 | flaviu | ldlework: config/nimdoc.cfg |
23:24:39 | * | bjz_ joined #nim |
23:25:38 | * | bjz quit (Read error: Connection reset by peer) |
23:25:47 | ldlework | lib/packages/docutils/rstgen.nim |
23:25:50 | ldlework | jesus |
23:25:55 | ldlework | this isn't complicated at all :) |
23:26:12 | ldlework | getting closer :P |
23:26:19 | * | saml quit (Client Quit) |
23:26:42 | ldlework | yay line 416 |
23:26:44 | BlaXpirit_ | ah, so many reinvented wheels |
23:26:45 | ldlework | thanks guys |
23:26:49 | ldlework | BlaXpirit_: no kiddin |
23:27:06 | * | juhani joined #nim |
23:27:12 | EXetoC | round ones or square wheels? |
23:27:23 | ldlework | EXetoC: they are parametric wheels at least |
23:28:26 | ldlework | I wonder how I will go about testing my changes |
23:29:10 | * | Sergio965 quit (Remote host closed the connection) |
23:30:01 | * | Sergio965 joined #nim |
23:30:14 | * | Sergio965 quit (Client Quit) |
23:30:33 | * | Sergio965 joined #nim |
23:30:35 | Araq | yeah "reinvented wheels". lets invoke some external python script instead which didn't even exist when the code was written |
23:31:07 | Araq | the real question here is why the docutils people never used Nim's improved RST parser and called it a day |
23:31:24 | Araq | it's like 20 times faster too |
23:31:39 | Trixar_za | Because that would be too easy and people never use the easy or obvious solution? |
23:32:42 | EXetoC | must have round wheels down to the molecular level |
23:33:12 | flaviu | Araq: There are markdown parsers written in C available. |
23:33:48 | Araq | flaviu: in what way is that even relevant? |
23:34:28 | Araq | RST has been designed for documentation of programming stuff. markdown ... well I don't even know if that's been designed in the first place |
23:34:48 | flaviu | Because "C library" sounds a lot better than "external python script" |
23:34:55 | ldlework | Araq: haha |
23:35:14 | ldlework | Araq: where should invoke buildIndex to get a full theindex.html |
23:35:23 | flaviu | It hasn't been designed by committee, but it's been designed over time by people |
23:35:38 | flaviu | It's supposed to be similar to plain-text email formatting. |
23:35:42 | Araq | by that logic everything has been "designed" |
23:36:21 | flaviu | I wouldn't consider that a flaw in the argument. |
23:36:38 | * | gmpreussner_ joined #nim |
23:36:43 | * | gmpreussner quit (Ping timeout: 255 seconds) |
23:36:53 | Araq | the only reason why everything now uses markdown is that RST is a PITA to implement and the reference impleemntation is unreadable |
23:37:13 | ldlework | Does anyone know where to invoke `nim buildIndex` |
23:37:19 | flaviu | RST isn't fun to use as a user either, IMO |
23:37:33 | Araq | yes, much worse than Nim's implementation, spare me, I am the one who actually *tried* to port it |
23:38:14 | ldlework | :( |
23:38:42 | Araq | ldlework: 'koch web' does that |
23:38:47 | ldlework | thanks |
23:40:07 | flaviu | Araq: Nothing wrong with just wrapping a library |
23:41:02 | Araq | flaviu: nothing wrong with continuing our own stuff which actually works fine already |
23:41:18 | * | juhani left #nim ("WeeChat 1.0.1") |
23:41:38 | ldlework | I think its wierd that we piece together html via string concatenation |
23:41:49 | flaviu | As I said, I feel like the RST syntax is inferior. IMO, it's not near as nice as markdown. |
23:42:16 | ldlework | nm |
23:43:27 | Trixar_za | It's not that Markdown is superior to RST, nor that it's easier to use. It's down to to what people are used to or familiar with. Markdown has been spoon fed to people by places like github - that's the only reason people prefer it. |
23:43:47 | BlaXpirit_ | umm |
23:44:07 | BlaXpirit_ | no, the reason is rst is ugly, markdown is not |
23:44:11 | Araq | RST is superior because it uses indentation based parsing for things like ..code-block avoiding escape hell |
23:44:22 | Triplefox | So do we need an RST editor or something |
23:44:44 | flaviu | Triplefox: That may be part of the reason, but my reasoning is that `.. image:: gnu.png` is too long and annyoing |
23:44:45 | BlaXpirit_ | Araq, please elaborate on the last sentence |
23:44:57 | BlaXpirit_ | what do you mean by escape hell |
23:45:10 | Trixar_za | BlaXpirit_: Markdown can get ugly too... |
23:45:29 | BlaXpirit_ | maybe, but rst is always ugly |
23:45:36 | flaviu | Araq: GHFMD uses indentation too, but it also allows you to avoid indentation |
23:45:42 | flaviu | with ```lang |
23:45:46 | Triplefox | I don't think md would help much once you get into actually complex things like images |
23:45:47 | Trixar_za | Try converting a wiki page over to Markdown including tables and tell me again that Markdown is pretty. |
23:45:49 | * | tinAndi joined #nim |
23:46:02 | flaviu | Trixar_za: Tables are a pain in every markdown language. |
23:46:18 | Araq | BlaXpirit_: I write RST for any .txt file I write. it's not ugly by any means. |
23:46:30 | flaviu | Trixar_za: RST doesn't really do better: http://sphinx-doc.org/rest.html#tables |
23:46:56 | BlaXpirit_ | Araq, but what were you saying |
23:46:59 | reactormonk | flaviu, except org-mode ;-) |
23:47:14 | BlaXpirit_ | [:44:11] <Araq> RST is superior because it uses indentation based parsing for things like ..code-block avoiding escape hell |
23:47:35 | flaviu | reactormonk: I've never touched org-mode, but it seems nice. It's more a property of the tooling than of the table. |
23:48:18 | reactormonk | flaviu, yes, indeed. And I really like org-mode to just patch my experimental data somewhere in a section with :noexport: and generating the fancy graphs somewhere in a source-code block |
23:49:24 | * | shodan45 quit (Read error: Connection reset by peer) |
23:49:32 | * | shodan45_ joined #nim |
23:49:43 | * | shodan45_ quit (Client Quit) |
23:50:52 | * | shodan45 joined #nim |
23:51:59 | Araq | flaviu: RST has been designed so that it reads very well as text on its own as a .txt file |
23:52:12 | ldlework | org-mode is the amaze |
23:52:20 | Trixar_za | flaviu: True. However that table style is closer to the one I use out of habit. |
23:52:35 | Araq | it has not been optimized for saving keystrokes |
23:52:46 | ldlework | RST is totally fine |
23:53:12 | ldlework | before markdown, I remember advocating for RST all the time |
23:53:20 | flaviu | Araq: I have two complaints: ".." and requiring more than 3 characters for underlining. |
23:53:35 | flaviu | That's my only arguments. |
23:53:41 | flaviu | I don't want to type all that. |
23:53:48 | BlaXpirit_ | Araq, no, no, no, rst definitely doesn't read as normal text |
23:53:52 | BlaXpirit_ | while markdown does |
23:54:02 | Araq | #Header |
23:54:04 | Araq | Header |
23:54:07 | Araq | ====== |
23:54:13 | BlaXpirit_ | what is this |
23:54:17 | Araq | case closed. |
23:54:23 | BlaXpirit_ | which case |
23:54:30 | BlaXpirit_ | you are not explaining anything |
23:54:48 | flaviu | Araq: # Header is not part of the spec, as far as I can tell. |
23:55:03 | BlaXpirit_ | what are you all talking about |
23:55:16 | flaviu | RST may be technically superior, but markdown is incredibly easy to use. |
23:55:22 | BlaXpirit_ | if you think markdown doesn't have ====== header, you are wrong |
23:55:38 | flaviu | BlaXpirit_: It does, but it only requires 3 underline characters. |
23:55:48 | BlaXpirit_ | 3 or more |
23:55:52 | flaviu | And I can use # anyway. |
23:56:07 | Araq | BlaXpirit_: ok, I forgot about that syntax :P |
23:56:09 | flaviu | BlaXpirit_: I never gave an upper bound :) |
23:56:15 | BlaXpirit_ | "only" |
23:56:20 | BlaXpirit_ | whatever |
23:57:06 | BlaXpirit_ | Araq, please just actually look at some markdown documents |
23:57:38 | * | z1y joined #nim |
23:58:09 | BlaXpirit_ | rst is not technically superior |
23:58:12 | * | bjz_ quit (Ping timeout: 245 seconds) |
23:58:12 | Triplefox | Well...which markdown |
23:58:15 | Araq | like our readme.md? |
23:58:20 | BlaXpirit_ | most of the things that you could call ugly in markdown, are not even possible in rst |
23:58:52 | * | ajhager joined #nim |
23:58:56 | flaviu | BlaXpirit_: It is technically superior. It has an official method of creating extensions in a non-breaking way. |
23:59:02 | BlaXpirit_ | that readme.md is definitely not written in the best practices |
23:59:12 | BlaXpirit_ | yeah but you can't have bold links |
23:59:23 | BlaXpirit_ | can't have bold links |
23:59:30 | Triplefox | I don't know how anyone could consider md for lengthy documentation |
23:59:32 | BlaXpirit_ | or part of a link, for that matter |