00:02:10 | * | jaco60 quit (Ping timeout: 260 seconds) |
00:02:41 | * | zepolen joined #nim |
00:07:08 | Araq_ | ldlework: back to your question, it's not that hard to serialize the VM's state but keep in mind that the VM doesn't support eg. sockets |
00:07:30 | * | zepolen quit (Ping timeout: 260 seconds) |
00:07:32 | Araq_ | and if it would, it would copy the socket handles around |
00:07:47 | Araq_ | and so you cannot just run it on some other machine |
00:09:55 | ldlework | Araq_: well I would hope that I could expose functions from the parent application to the VM |
00:10:20 | ldlework | and the VM could do whatever at all I expose to it, if even indirectly through some kind of interpreative relationship with the data coming out of the VM. |
00:10:35 | Araq_ | oh yeah true |
00:10:41 | Araq_ | that you can do. |
00:10:44 | ldlework | Araq_: but if we could do that efficiently, I could start writing a small metaverse :D |
00:11:07 | ldlework | wherein script executions are seemlessly passed over the network between simulation servers. |
00:11:23 | ldlework | as objects owning scripts move around the segmented world |
00:11:42 | Araq_ | what application do you have in mind? |
00:12:41 | ldlework | Araq_: some kind of realtime simulation wherein, say participants can create geomertry and attach code they write while they're connected to the game with the client, to that geometry and the script will start affecting the behavior of the geomertry in realtime for all network participants |
00:13:01 | ldlework | But the ability to partition the simulation topologically across a networked cluster as to scale |
00:13:22 | ldlework | requires that scripts that exist in one runtime environment can be quicky migrated to another |
00:13:36 | ldlework | as entities cross server simulation boundries |
00:14:05 | Araq_ | sounds like you only need to exchange code though, not globals |
00:14:19 | ldlework | you need the running state of the scripts |
00:14:20 | Araq_ | or rather that you want to separate the two |
00:14:29 | ldlework | so basically the entire state of the vm |
00:14:44 | ldlework | Araq_: a vm for each script too |
00:14:50 | ldlework | so ideally its super lightweight |
00:14:52 | * | gokr quit (Read error: Connection reset by peer) |
00:15:08 | * | gokr joined #nim |
00:15:12 | ldlework | the more indpendent scripts doing different things, the more compelling the simulation |
00:15:13 | Araq_ | do you need the stack and PC or the heap too? |
00:15:23 | ldlework | Araq_: the one inside the VM I suppose |
00:15:28 | ldlework | but not the state of the parent application |
00:15:38 | ldlework | that is instantiating vm's and calling .step() on them |
00:15:46 | ldlework | controlling how long they run for |
00:15:53 | ldlework | and serving their native interfaces etc |
00:16:24 | ldlework | Araq_: check out this project, https://github.com/mbrezu/Shovel |
00:18:06 | * | bpr joined #nim |
00:21:27 | Araq_ | well ok, but that's just a stack based VM |
00:22:33 | ldlework | I don't know a whole lot about VM implementations, I'm seeing this more from the perspective of someone who wants to run simple user scripts that are able to call into a native interface, be pausable serializable and reconstitute it on some other server that is running the same kind of program with the same native interface etc. |
00:24:08 | Araq_ | make it happen. |
00:24:37 | ldlework | Well the question was if Nim's VM could serve this purpose |
00:24:46 | Araq_ | I can guide you through the process, but you need to do it |
00:24:54 | ldlework | So that's a yes? |
00:24:59 | Araq_ | yes. |
00:25:07 | ldlework | Interesting, I'll keep it in mind. |
00:25:12 | Araq_ | ha, see? |
00:25:16 | ldlework | Hmm? |
00:25:35 | ldlework | I wasn't interested in you doing any work in this conversation. I literally was asking if Nim's VM could be used for this. |
00:25:37 | Araq_ | don't talk about it, do it ;-) |
00:25:41 | ldlework | Why? |
00:25:50 | Araq_ | because it's cool. |
00:26:02 | ldlework | I'm working on an awesome SDL2 based framework right now :D |
00:26:12 | Araq_ | fair enough I guess |
00:26:55 | Araq_ | but the VM already can bound infinite loops |
00:27:37 | Araq_ | and running the bytecode incrementally ... well that's really simple since it's still a traditional VM and not a JIT |
00:30:12 | bpr | Araq, did you get a chance to look at my weird code that causes linker errors? |
00:30:41 | Araq_ | bpr: no, sorry, let me do it now. |
00:34:10 | Araq_ | ah, that's a simple one |
00:34:22 | bpr | Araq: I'll keep trying to come up with crazier code. Like I said, compiling to JS works fine. |
00:38:23 | Araq_ | no I mean it's easy to fix |
00:38:33 | Araq_ | too bad I didn't catch it earlier |
00:41:28 | * | brokencode joined #nim |
00:46:04 | * | perturbation joined #nim |
00:48:24 | perturbation | hey guys - can someone look at https://github.com/nim-lang/Nim/pull/3703/files ? I think I found an issue with CountTable in tables module of standard library and I have a PR to fix it |
00:48:57 | Araq_ | perturbation: yeah I noticed but I need to review it properly |
00:49:23 | perturbation | okay - thanks Araq |
00:50:20 | * | zepolen joined #nim |
00:51:24 | Araq_ | bpr: there you go, compiles for me now. |
00:51:35 | Araq_ | note that new-ll was merged into devel today, so use devel |
00:53:14 | Araq_ | bpr: but as I said, this all works with .nimcall too, you don't use closures to emulate OO here |
00:59:06 | * | perturbation quit () |
01:05:13 | * | brokencode quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
01:14:06 | * | desophos quit (Read error: Connection reset by peer) |
01:22:21 | * | Jesin quit (Quit: Leaving) |
01:44:17 | * | bpr_ joined #nim |
01:48:05 | * | brson quit (Quit: leaving) |
01:49:14 | bpr_ | Araq: Thanks! While the gist didn't need closures, you can imagine having those inner ...Local functions referring to local vars in the enclosing new<Whatever>Interface function |
01:49:31 | bpr_ | ... and that would need {.closure.}, right? |
01:51:48 | bpr_ | Araq: All this hacking on faux objects is in response to an offhand comment you made on this IRC about disposing of 'method', which I think is a great idea. |
01:56:17 | bpr_ | OTOH, I'm not sure that just dropping method and not doing anything else is right. |
01:58:35 | * | gokr quit (Ping timeout: 240 seconds) |
02:02:59 | Araq_ | right |
02:35:48 | * | bpr_ quit (Ping timeout: 252 seconds) |
02:40:10 | * | desophos joined #nim |
02:49:53 | * | zepolen quit (Read error: Connection reset by peer) |
02:51:03 | * | zepolen joined #nim |
02:52:11 | * | bigfondue_ quit (Read error: Connection reset by peer) |
03:03:34 | * | MyMind joined #nim |
03:04:28 | * | sam_d_ joined #nim |
03:05:06 | * | Sembei quit (Ping timeout: 240 seconds) |
03:05:13 | * | brokencode joined #nim |
03:07:41 | * | brokencode quit (Client Quit) |
03:19:38 | * | Jesin joined #nim |
03:19:41 | * | pregressive joined #nim |
03:21:48 | ldlework | How do you reuse functions when making type aliases? |
03:22:00 | * | sam_d_ quit (Ping timeout: 252 seconds) |
03:22:05 | ldlework | like, if I did a type alias for seq[MyType], how can I take advantage of contains and so on |
03:23:47 | ldlework | I'm not even sure how to write a converter in that case |
03:29:16 | ldlework | casting doesn't seem to work even |
03:29:47 | * | Varriount-Laptop joined #nim |
03:30:50 | ldlework | Varriount-Laptop: hey if I give a type alias like `type MyTypeSeq = seq[MyType]` how can I get functions like `contains` to work for my type? |
03:33:51 | ldlework | aha |
03:35:09 | Varriount-Laptop | ldlework: Huh? They should work already. |
03:35:31 | ldlework | Yeah I was searching it for a string, lol |
03:35:35 | ldlework | instead of MyType |
03:35:40 | ldlework | I thought I had written a converter |
03:35:47 | ldlework | sorry for bothering you |
03:36:04 | Varriount-Laptop | It's ok. I'm not bothered. |
03:37:04 | ldlework | though it seems strange where converters work and where you must do something manually |
03:37:15 | ldlework | like I have a toString converter for my type |
03:37:27 | ldlework | but I can't use my type with "$1" % my_type |
03:40:22 | Varriount-Laptop | ldlework: proc `%`(a: string, b: MyType): string = a % $b |
03:40:50 | ldlework | Varriount-Laptop: here's another interesting thing |
03:40:52 | ldlework | https://gist.github.com/dustinlacewell/09d99e8dc2352ce0ee71 |
03:41:13 | ldlework | If I swap the for-loops, I get SIGSEV on the `let` in the commented out version |
03:41:20 | ldlework | but they are basically inversions of the same algorithm |
03:41:31 | ldlework | in the first, we iterate over the Table and check a list of names |
03:41:43 | ldlework | in the second version, we iterate the list of names, and pull stuff out of the table |
03:42:10 | ldlework | how is it possible that accessing the Table with [] in the second version causes a SIGSEV? Why would anything be nil, if I can iterate over the thing in the working version? |
03:42:22 | Varriount-Laptop | ldlework: The SIGSEV occurs in the generated code, or the VM? |
03:42:37 | ldlework | how can I tell? |
03:42:40 | ldlework | I get the echo |
03:42:46 | ldlework | about registering X to Y |
03:42:50 | ldlework | and then bam, SIGSEV |
03:42:53 | ldlework | I'm guessing in the VM |
03:42:58 | ldlework | since this is an immediate macro |
03:43:02 | Varriount-Laptop | I mean, does the SIGSEV occur during compilation of the code, or running the code? |
03:43:13 | ldlework | it must be running the immediate macro in the vm |
03:43:16 | ldlework | because I get the echo |
03:43:23 | ldlework | right before the sigsev let |
03:43:32 | Varriount-Laptop | Well, macros and templates are all run at compile time. |
03:43:40 | ldlework | right, in the vm |
03:44:15 | ldlework | so my point is, if I comment out this for loop, and uncomment the other, they should both be in the vm during compile time |
03:44:18 | ldlework | but the second one dies |
03:44:33 | Varriount-Laptop | Probaby some bug in the vm |
03:44:42 | ldlework | And honestly, I have this sneaking suspicion that when you're doing stuff this early, that Nim is running some statements before all other statements |
03:44:44 | ldlework | like |
03:44:47 | ldlework | pre-compile-time |
03:44:50 | ldlework | I swear... |
03:45:00 | ldlework | individual statements too, not whole functions |
03:45:06 | ldlework | I've put echo statements in my macros |
03:45:08 | Varriount-Laptop | ldlework: What do you mean? |
03:45:19 | ldlework | and those echo's would be printed before all other things that would run in compiletime |
03:45:21 | ldlework | like |
03:45:26 | ldlework | before even other statements in the same macro |
03:45:33 | ldlework | like say there was an echo at the start of a macro saying 1 |
03:45:43 | ldlework | then a loop with echo statements in it |
03:46:02 | ldlework | I would g et the loop echo once before *anything else*, and then my macro would execute like normal |
03:46:07 | ldlework | other echo statements in rational order |
03:46:19 | ldlework | this line was executed before anything else and only once |
03:46:35 | ldlework | I might have the gist still |
03:46:49 | ldlework | Varriount-Laptop: https://gist.github.com/dustinlacewell/058d327a096fdb9c52f7 |
03:47:06 | ldlework | both of the let statements, the function that is called have echo statements inside |
03:47:07 | * | askatasuna joined #nim |
03:47:09 | ldlework | that say PROCS and FIELDS |
03:47:28 | ldlework | the first snippet breaks the time-continuum |
03:47:36 | ldlework | the second adheres to phyiscs |
03:47:46 | ldlework | based on whether a NimNode is passed to it |
03:47:55 | ldlework | I don't have this code anymore I refactored a long time ago |
03:48:09 | ldlework | but I get the impression this let statement in my current code is getting run before EVERYTHING else |
03:48:17 | ldlework | and that's why `registry` hasn't been initialized yet |
03:48:48 | ldlework | (which is a Table initialized with {.compileTime.} in module scope |
03:50:12 | ldlework | Varriount-Laptop: sorry for the long-windedness |
03:51:11 | ldlework | Varriount-Laptop: almost like it executed the let line as a compile-time constant O_O |
03:51:35 | ldlework | I don't know why I'm telling you all this |
03:52:44 | Varriount-Laptop | ldlework: Because I like reading? |
03:52:49 | ldlework | hehe |
03:53:29 | Varriount-Laptop | ldlework: Honestly, I don't know why the VM would do that, unless there's some sort of broken optimization code going on. |
03:53:38 | ldlework | right |
03:54:03 | ldlework | Varriount-Laptop: I probably wouldn't understand the generated C |
03:54:31 | ldlework | Varriount-Laptop: like |
03:54:31 | Varriount-Laptop | ldlework: I could take a look, I'd just need a copy of the two main generated C files |
03:54:37 | ldlework | if I uncomment the second for-loop |
03:54:43 | ldlework | IE, add all the procs and fields twice |
03:54:46 | ldlework | it still sigsevs |
03:54:48 | ldlework | that PROVES |
03:55:07 | ldlework | that it's moving it before the code that successfully iterates the table, if you leave the broken part commented out |
03:56:03 | ldlework | Varriount-Laptop: do you want the version where they are both uncommented? |
03:56:39 | Varriount-Laptop | Sure. |
03:56:42 | ldlework | wait nimcache doesn't appear |
03:56:49 | ldlework | because ... it crashes the compiler |
03:56:53 | Varriount-Laptop | :/ |
03:56:54 | ldlework | O_O |
03:57:08 | ldlework | Varriount-Laptop: hehe we're silly |
03:57:13 | ldlework | this happens before any codegen of course |
03:57:15 | Varriount-Laptop | ldlework: Is your compiler built with stack trace on? |
03:57:23 | ldlework | no idea |
03:57:33 | Varriount-Laptop | I mean, unless it was compiled in release mode, there should be some sort of stack trace. |
03:57:47 | ldlework | I used the instructions online |
03:57:51 | ldlework | and i think that has the release flag on it |
03:57:59 | ldlework | I can recompile |
03:58:01 | Varriount-Laptop | 'koch boot -d:release --stacktrace:on --linetrace:on' |
03:58:37 | Varriount-Laptop | That'll get you something that's faster than a non-release compiler, but still shows most stack traces. |
03:59:06 | ldlework | thx |
03:59:52 | ldlework | there should probably be an option to generate bytecode files |
04:01:36 | ldlework | Varriount-Laptop: nim's macros are so awesome usually |
04:04:50 | ldlework | Varriount-Laptop: https://gist.github.com/dustinlacewell/984bfced905460305573 |
04:05:42 | Varriount-Laptop | ldlework: I wish python had templates, even simple ones. |
04:06:14 | ldlework | Varriount-Laptop: https://pypi.python.org/pypi/meta |
04:06:46 | ldlework | Varriount-Laptop: https://pypi.python.org/pypi/karnickel |
04:07:34 | Varriount-Laptop | *gasp* |
04:07:42 | ldlework | *luls* |
04:08:20 | ldlework | Varriount-Laptop: I'm guessing that stacktrace doesn't say much |
04:09:34 | ldlework | Varriount-Laptop: also https://github.com/lihaoyi/macropy |
04:13:21 | ldlework | I should have kept those as random for your perspective on that stacktrace ^_^ |
04:13:59 | ldlework | s/random/ransom* |
04:18:31 | * | pregressive quit (Read error: Connection reset by peer) |
04:18:42 | * | pregressive joined #nim |
04:27:59 | ldlework | Varriount-Laptop: macropy looks like the nicest option |
04:44:54 | * | Varriount-Laptop quit (Read error: Connection reset by peer) |
04:58:57 | * | mtj_ quit (Remote host closed the connection) |
04:59:10 | * | mtj_ joined #nim |
05:09:17 | * | askatasuna quit (Ping timeout: 255 seconds) |
05:14:48 | * | pregressive quit (Remote host closed the connection) |
05:23:20 | * | strcmp1 quit (Quit: WeeChat 1.3) |
05:27:18 | * | BitPuffin|osx joined #nim |
05:40:48 | * | ldlework sighs, https://gist.github.com/dustinlacewell/bdd22d275e9fe3309c35 |
05:41:06 | ldlework | Why the heck doesn't it find seq[T], T ??? |
05:43:26 | ldlework | type mismatch: got (seq[Proc]) |
05:43:28 | ldlework | but expected one of: |
05:43:30 | ldlework | system.mitems(a: var cstring) |
05:43:32 | ldlework | system.mitems(a: var seq[T]) |
05:43:34 | ldlework | lol wtf |
05:44:47 | ldlework | ah everything's gotta be var |
05:45:33 | ldlework | yay more sigsev |
05:47:20 | * | pregressive joined #nim |
05:48:06 | ldlework | great now Nim is moving this loop statement to before the table's init |
05:48:10 | ldlework | garrrrrr whyyyy |
05:53:25 | * | zepolen quit (Remote host closed the connection) |
05:59:33 | ldlework | lol makes no sense |
05:59:38 | ldlework | use mitems get SIGSEV |
05:59:54 | Xe | SIGSEGV is the kernel's way of saying "I love you" |
05:59:55 | ldlework | use items, and assign the iter variable to a "var foovar = foo" |
06:00:04 | ldlework | no sigsev |
06:00:08 | ldlework | how does that make any sense at all |
06:00:35 | ldlework | I think in this case a nast broken optimization in the compiler is "loving" me |
06:02:05 | ldlework | its like I have to convince the compiler that _no really_ I'm going to need this code to execute during compile-time, don't optimize it away while compiling stuff to bytecode |
06:03:21 | ldlework | it badly wants to optimize away all uses of this compile-time table for some reason |
06:03:43 | ldlework | which causes the table to be none when those statements are executed because it executes them way too early |
06:03:48 | ldlework | nil* |
06:16:23 | * | pregressive quit (Remote host closed the connection) |
06:25:26 | ldlework | this is ridiculous |
06:25:34 | ldlework | I have a proc that defines a var Foo as a parameter |
06:25:53 | ldlework | but I can't access .mitems of foo because its getting a (Foo) not a (var Foo) |
06:25:55 | ldlework | whyyyyy |
06:34:48 | * | zepolen joined #nim |
06:35:55 | * | darkf joined #nim |
06:48:19 | * | zepolen quit (Remote host closed the connection) |
06:49:13 | * | zepolen joined #nim |
07:26:02 | * | bjz joined #nim |
07:36:01 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
07:42:59 | * | zepolen quit (Remote host closed the connection) |
07:45:11 | * | zepolen joined #nim |
07:50:35 | * | BitPuffin|osx quit (Ping timeout: 260 seconds) |
08:07:36 | * | s4 joined #nim |
08:17:30 | * | jaco60 joined #nim |
08:17:46 | * | bjz joined #nim |
08:19:36 | * | vangroan joined #nim |
08:24:57 | * | desophos quit (Read error: Connection reset by peer) |
08:35:05 | * | yglukhov joined #nim |
08:36:27 | * | kas_ joined #nim |
08:42:30 | * | jaco60 quit (Ping timeout: 260 seconds) |
08:44:38 | * | zepolen quit (Remote host closed the connection) |
09:05:45 | * | Trustable joined #nim |
09:14:21 | * | zepolen joined #nim |
09:14:45 | * | kas_ quit (Remote host closed the connection) |
09:15:12 | * | kas_ joined #nim |
09:21:03 | Araq_ | lde |
09:21:18 | Araq_ | ldlework: pretty do proper bug reports instead of ranting here |
09:21:23 | Araq_ | oh god |
09:21:27 | Araq_ | *please do |
09:22:01 | * | strcmp1 joined #nim |
09:29:23 | * | strcmp1 quit (Quit: cycle like charlie) |
09:29:40 | * | strcmp1 joined #nim |
09:32:05 | * | strcmp1 quit (Client Quit) |
09:32:17 | * | strcmp1 joined #nim |
09:34:33 | * | zepolen quit (Remote host closed the connection) |
09:36:19 | * | zepolen joined #nim |
09:36:40 | * | zepolen quit (Remote host closed the connection) |
10:21:47 | * | strcmp1 quit (Quit: cycling backwards like charlie) |
10:22:00 | * | strcmp1 joined #nim |
10:22:59 | * | strcmp1 quit (Client Quit) |
10:24:05 | * | strcmp1 joined #nim |
10:24:12 | * | bjz_ joined #nim |
10:26:55 | * | bjz quit (Ping timeout: 260 seconds) |
10:44:10 | * | irrequietus joined #nim |
11:23:45 | * | dv-_ joined #nim |
11:27:30 | * | dv- quit (*.net *.split) |
11:31:45 | * | Demon_Fox quit (Quit: Leaving) |
11:36:16 | * | zepolen joined #nim |
11:39:23 | * | ImNoRobot joined #nim |
12:01:32 | * | irrequietus quit (Remote host closed the connection) |
12:09:11 | * | ImNoRobot quit (Quit: Page closed) |
12:18:26 | yglukhov | Araq: sorry, missed a regression with new-ll, reproduced with nakefile |
12:22:48 | * | askatasuna joined #nim |
12:23:04 | * | zepolen quit (Remote host closed the connection) |
12:27:55 | Araq_ | just saw it. |
12:28:08 | Araq_ | no idea how that happened, an older version of nake is part of the test suite |
12:28:44 | * | minmax joined #nim |
12:32:14 | * | irrequietus joined #nim |
12:45:43 | * | minmax quit (Quit: Page closed) |
12:51:24 | * | dv-_ is now known as dv- |
12:53:50 | * | exebook joined #nim |
13:05:35 | * | vangroan quit (Ping timeout: 264 seconds) |
13:20:52 | * | irrequietus quit () |
13:23:41 | * | zepolen joined #nim |
13:28:06 | * | zepolen quit (Ping timeout: 240 seconds) |
13:47:46 | * | pregressive joined #nim |
13:49:38 | * | s4 quit (Quit: Konversation terminated!) |
13:50:11 | * | pregressive quit (Client Quit) |
14:00:11 | Araq_ | yglukhov: fixed. |
14:03:13 | * | pregressive joined #nim |
14:16:10 | * | darkf_ joined #nim |
14:19:40 | * | darkf quit (Ping timeout: 260 seconds) |
14:26:50 | * | askatasuna quit (Ping timeout: 255 seconds) |
14:28:37 | * | pregressive quit (Remote host closed the connection) |
14:32:34 | yglukhov | Araq: thanks a bunch! :) |
14:40:29 | * | NimNewb joined #nim |
14:44:10 | NimNewb | hello, i got a little problem with the 32bit release of the 0.12.0 compiler on win7 x64: i can't even get a simple 'echo "Hello World" ' to compile. gcc always throws me an error about a missing system.o object file in nimcache, which frankly is missing. there is a system.c in my nimcache but no system.o ... is this a known problem (eg. using 32bit compiler on 64bit architecture and os)? |
14:46:10 | NimNewb | btw. i installed the binary package of 0.12.0. didn't try compiling myself yet |
14:46:56 | Araq_ | NimNewb: no, it should just work. what does 'gcc -i' say? |
14:48:53 | NimNewb | unrecognized commandline option '-i' |
14:48:59 | NimNewb | ^^ |
14:49:22 | NimNewb | i'm using the mingw build supplied by the nim 0.12.0 setup |
14:57:35 | * | askatasuna joined #nim |
15:00:15 | Araq_ | what does 'where gcc' say? |
15:00:30 | Araq_ | try an official mingw please |
15:00:49 | Araq_ | the one that we ship should work, but I think there is something wrong with your setup |
15:02:36 | NimNewb | i got it to work! msys2 didnt work, mingw official didnt work, vcc didn't work, tcc didnt work but the gcc supplied by my haskell 7.10.2 install somehow did the trick... dont know why... just rollin' with it... :P |
15:15:16 | * | bpr quit (Quit: Page closed) |
15:24:09 | * | BitPuffin|osx joined #nim |
15:26:33 | Araq_ | fix your %PATH% |
15:30:51 | * | NimNewb quit (Quit: Page closed) |
15:33:23 | * | wh1t3r0s3 quit (Ping timeout: 276 seconds) |
15:38:38 | * | wh1t3r0s3 joined #nim |
15:47:53 | * | darkf_ is now known as darkf |
15:53:41 | * | zepolen joined #nim |
15:58:09 | * | jaco60 joined #nim |
15:58:46 | * | zepolen quit (Ping timeout: 272 seconds) |
16:13:20 | * | askatasuna quit (Ping timeout: 272 seconds) |
16:30:19 | * | askatasuna joined #nim |
17:00:26 | * | brson joined #nim |
17:04:15 | * | yglukhov quit (Ping timeout: 240 seconds) |
17:22:51 | * | pregressive joined #nim |
17:24:43 | * | zepolen joined #nim |
17:29:08 | * | zepolen quit (Ping timeout: 250 seconds) |
17:33:18 | * | askatasuna quit (Ping timeout: 260 seconds) |
17:44:40 | * | yglukhov joined #nim |
17:47:30 | * | askatasuna joined #nim |
17:49:05 | * | yglukhov quit (Ping timeout: 260 seconds) |
17:53:58 | flyx | is there a more efficient way to compare a range within a cstring to an expected string than to compare it char-by-char? |
18:09:03 | * | darkf quit (Quit: Leaving) |
18:25:34 | * | zepolen joined #nim |
18:26:01 | * | zepolen quit (Remote host closed the connection) |
18:33:25 | dom96 | flyx: I don't think so. |
18:35:17 | flyx | hmm. cstring also seems to be unable to do mycstring[1..3] |
18:35:56 | flyx | actually, it's interesting that [] works on it since this isn't explicitly declared anywhere |
18:36:03 | flyx | at least I didn't find it |
18:37:42 | * | brson quit (Ping timeout: 260 seconds) |
18:39:15 | dom96 | flyx: I think cstring is just an alias for an array |
18:42:10 | ldlework | Araq_: sorry, half the time I'm just confused, its 5 hours before work and I'm just tired and deluded. |
18:42:37 | ldlework | If I ever come up with a minimal reproduction I promise to do so though. |
18:43:18 | Araq_ | I don't care about minimal reproductions all that much. |
18:43:36 | Araq_ | more important is that's in a single file so I can add it to the test suite easily |
18:44:33 | ldlework | The thing is, it seems to optimize or not optimize the statements out based on very hard to discern things |
18:45:52 | ldlework | I'll see if I can reproduce it... |
18:45:58 | Araq_ | well .immediate means "super early" which seems part of the problem |
18:46:14 | Araq_ | we'll deprecate .immediate soon |
18:49:00 | ldlework | Araq_: doesn't immediate also let you do things that non-immediate can't? |
18:49:06 | ldlework | like treat the AST untyped? |
18:49:25 | * | desophos joined #nim |
18:49:37 | ldlework | I dunno if my crazy unified-type macros would work in non-immediate mode, but that's just a guess |
18:49:54 | Araq_ | like yes. |
18:51:06 | * | zepolen joined #nim |
18:56:35 | * | zepolen quit (Remote host closed the connection) |
18:58:22 | * | zepolen joined #nim |
19:09:32 | * | dingo_bat joined #nim |
19:09:43 | * | Matthias247 joined #nim |
19:16:08 | * | dingo_bat left #nim (#nim) |
19:22:34 | * | zepolen quit () |
19:34:43 | * | brokencode joined #nim |
19:35:29 | dom96 | hey ldlework, how's the game going? |
19:39:08 | * | Matthias247 quit (Read error: Connection reset by peer) |
19:57:11 | * | brokencode quit (Quit: Textual IRC Client: www.textualapp.com) |
20:19:50 | * | Demon_Fox joined #nim |
20:31:53 | ldlework | dom96: I have been working on an entity system |
20:55:00 | * | yglukhov joined #nim |
21:02:46 | * | askatasuna quit (Ping timeout: 272 seconds) |
21:05:29 | * | BlaXpirit_ joined #nim |
21:07:49 | * | BlaXpirit quit (Quit: Bye) |
21:07:49 | * | BlaXpirit_ is now known as BlaXpirit |
21:08:12 | * | BlaXpirit_ joined #nim |
21:08:33 | * | BlaXpirit quit (Client Quit) |
21:08:33 | * | BlaXpirit_ is now known as BlaXpirit |
21:34:14 | * | brson joined #nim |
22:22:34 | Araq_ | guys, check your code with the no-echo-gotcha branch please, I want to merge it into devel |
22:35:24 | * | desophos quit (Read error: Connection reset by peer) |
22:37:57 | strcmp1 | Araq_: happy new year |
22:51:47 | Araq_ | hey, thanks! |
22:54:37 | * | pregressive quit (Remote host closed the connection) |
22:56:08 | * | BitPuffin|osx quit (Ping timeout: 272 seconds) |
22:58:41 | strcmp1 | :) |
22:58:51 | ldlework | no-echo-gotcha ? |
22:59:01 | ldlework | I should start reading the nim forums again |
22:59:43 | * | ai joined #nim |
23:00:23 | * | ai is now known as Guest39494 |
23:07:53 | dom96 | ldlework: echo $i |
23:08:06 | dom96 | is a common gotcha |
23:08:14 | dom96 | (At least I think that's what it fixes) |
23:11:34 | ldlework | dom96: what's the gotcha |
23:12:59 | * | saml quit (Quit: Leaving) |
23:14:07 | dom96 | ldlework: try it |
23:15:43 | * | Matthias247 joined #nim |
23:22:55 | * | nande joined #nim |
23:46:29 | * | nsf quit (Quit: WeeChat 1.3) |
23:49:47 | * | desophos joined #nim |
23:53:57 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:57:08 | * | Guest39494 quit (Quit: Page closed) |