<< 24-04-2014 >>

00:02:04dom96yeah, but the code changes are more important.
00:08:45fowldom96, is it possible to write something generic using asyncdispatch
00:09:45dom96haven't tried it
00:10:11dom96should be possible
00:27:40dom96'night
00:29:14VarriountGoodnight.
00:31:06*oxful__ quit (Ping timeout: 240 seconds)
00:32:10*darkf joined #nimrod
00:50:38*DAddYE quit (Remote host closed the connection)
00:55:47OrionPKaraq posted up the bug here: https://github.com/Araq/Nimrod/issues/1140
00:58:32*q66 quit (Quit: Leaving)
01:06:44*Demos quit (Remote host closed the connection)
01:27:33*nequitans joined #nimrod
01:37:56*brson quit (Ping timeout: 255 seconds)
01:38:39*brson joined #nimrod
01:56:47*DAddYE joined #nimrod
02:00:42*nande quit (Read error: Connection reset by peer)
02:01:20*DAddYE quit (Ping timeout: 255 seconds)
02:04:17*nande joined #nimrod
02:06:53*brson quit (Ping timeout: 264 seconds)
02:28:42*DAddYE joined #nimrod
02:55:13*ehaliewicz joined #nimrod
03:07:00*flaviu quit (Remote host closed the connection)
03:28:44*DAddYE quit (Remote host closed the connection)
03:33:37*ehaliewicz left #nimrod ("ERC Version 5.3 (IRC client for Emacs)")
03:35:49*bjz quit (Quit: Textual IRC Client: www.textualapp.com)
03:37:43*bjz joined #nimrod
03:47:40reactormonkwe need a name for a babel package, like `gem' in ruby
04:10:16*bbodi joined #nimrod
04:11:02renesacor python' egg
04:29:37*DAddYE joined #nimrod
04:34:29*DAddYE quit (Ping timeout: 264 seconds)
04:45:58fowllets call them snoops and use snoop dogg's image and likeness in our advertising
05:03:49*xtagon quit (Quit: Leaving)
05:05:13*nequitans quit (Ping timeout: 240 seconds)
05:07:55*bbodi quit (Ping timeout: 252 seconds)
05:25:59*darithorn quit (Ping timeout: 276 seconds)
05:29:09*DAddYE joined #nimrod
05:33:47*DAddYE quit (Ping timeout: 276 seconds)
05:35:44*mxstirner joined #nimrod
05:41:24*ehaliewicz joined #nimrod
05:41:52ehaliewicze
05:42:47*mxstirner quit (Ping timeout: 265 seconds)
06:07:52*DAddYE joined #nimrod
06:20:53*brihat joined #nimrod
06:42:16*dmac joined #nimrod
06:42:21*dmac quit (Read error: Connection reset by peer)
06:42:48*dmac joined #nimrod
06:43:11*dmac left #nimrod (#nimrod)
07:27:17wanreactormonk: we could call them 'brick'. When your project needs the whole tower, you'll need lots of bricks
07:31:47AraqI like it. Reminds me of Lego.
07:45:55*UnnamedUser joined #nimrod
07:50:23*UnnamedUser quit (Ping timeout: 265 seconds)
08:01:31Skrylarwan: i'm sure there is a mortar joke in there somewhere
08:03:45SkrylarI keep finding myself needing the program I'm trying to write.
08:03:51Skrylarthis is an embarassing feeling
08:18:49*gXen joined #nimrod
08:23:02*io2 joined #nimrod
08:35:42Skrylar:|
08:35:59Skrylarso windows wants you to create a bitmap before you can ask what the size of a font's character is going to be in pixels.
08:36:02Skrylaryay design?
08:40:51*wooya joined #nimrod
08:49:47*ehaliewicz quit (Remote host closed the connection)
08:50:01*ehaliewicz joined #nimrod
08:50:32*DAddYE quit (Remote host closed the connection)
08:50:47*filwit joined #nimrod
08:50:59*DAddYE joined #nimrod
08:52:49filwiti updated the Kate support gist (https://gist.github.com/PhilipWitte/11196561) with some new colors (Monokai from Mono Develop which is my new favorite), and easier download (just save files and follow install guide and everything should work).
08:53:05filwitThere's some screenshots too, of each color variant
08:55:30filwitso renesac (dunno if you're around), i know you where going to update. Just a heads up.
08:55:30*DAddYE quit (Ping timeout: 252 seconds)
08:55:38filwitNot sure who else was using Kate
09:05:12*ehaliewicz quit (Remote host closed the connection)
09:05:56*bbodi joined #nimrod
09:07:36bbodihi all
09:09:47filwithi bbodi
09:11:44*bjz quit (Ping timeout: 252 seconds)
09:18:26*wooya quit (Quit: Bye)
09:21:42*DAddYE joined #nimrod
09:23:29*DAddYE_ joined #nimrod
09:25:54*DAddYE quit (Ping timeout: 240 seconds)
09:27:30*DAddYE_ quit (Ping timeout: 240 seconds)
09:31:01*oxful joined #nimrod
09:42:07*faassen joined #nimrod
09:44:32Araqhi filwit, hi bbodi
09:45:01bbodiHi Araq!
10:05:10*BitPuffin quit (Read error: Operation timed out)
10:08:52filwithi Araq
10:24:07*DAddYE joined #nimrod
10:28:19*DAddYE quit (Ping timeout: 240 seconds)
11:03:44*nande quit (Remote host closed the connection)
11:15:03EXetoCVarriount: Araq still didn't want to merge that spawn test though just in case it hangs the tester, but there's no point in reverting I guess
11:15:21EXetoCit was considered adding a timeout though, right?
11:17:32Araqmeh, now leave it merged
11:17:39AraqI'll be careful
11:24:59*DAddYE joined #nimrod
11:26:57*bjz joined #nimrod
11:29:13*DAddYE quit (Ping timeout: 240 seconds)
12:05:27*DAddYE joined #nimrod
12:07:20*DAddYE_ joined #nimrod
12:07:20*DAddYE quit (Read error: Connection reset by peer)
12:11:30*DAddYE_ quit (Ping timeout: 240 seconds)
12:38:40*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
12:53:49*darkf quit (Quit: Leaving)
13:05:17filwitwhat does {.compilerProc.} do? I just noticed that {.magic:"Foo".} will bind to 'nimFoo', but what i'm looking at (system/sysspan.spawn) is marked as {.compilerProc.}
13:05:35filwitwhat is that telling the compiler exactly? I don't see it in the docs anywhere
13:07:58EXetoC"sfCompilerProc, # proc is a compiler proc, that is a C proc that is # needed for the code generator"
13:08:20*DAddYE joined #nimrod
13:09:26filwitk. that doesn't help me much for some reason. but i'll think about it more.
13:11:21Skrylarfilwit: based on EXetoC's description, sounds like its just a different type of magic
13:11:32Skrylarfor deep internals
13:12:42*DAddYE quit (Ping timeout: 240 seconds)
13:13:24filwitwell the {.compilerProc.} i'm looking at has a body
13:13:53filwitidk, i need some coffee of something.
13:13:57filwitor*
13:15:20*bbodi quit ()
13:27:01*nequitans joined #nimrod
13:42:26*nequitans quit (Ping timeout: 255 seconds)
13:42:38*[1]Endy joined #nimrod
13:44:00*[2]Endy joined #nimrod
13:47:17*[1]Endy quit (Ping timeout: 252 seconds)
13:57:46*Demos joined #nimrod
14:08:56*DAddYE joined #nimrod
14:10:49*gXen quit ()
14:13:41*DAddYE quit (Ping timeout: 252 seconds)
14:16:08*faassen left #nimrod (#nimrod)
14:16:17*filwit quit (Quit: Leaving)
14:28:16OrionPKaraq got enough info to look into that issue?
14:28:34OrionPK(or too much info?)
14:53:41*Demos quit (Ping timeout: 264 seconds)
15:01:54*nequitans joined #nimrod
15:03:22*brihat left #nimrod (#nimrod)
15:03:26*BitPuffin joined #nimrod
15:09:49*DAddYE joined #nimrod
15:13:54*DAddYE quit (Ping timeout: 240 seconds)
15:17:58*nequitans quit (Remote host closed the connection)
15:18:10*brihat joined #nimrod
15:18:11*brihat1 joined #nimrod
15:18:12*brihat1 quit (Read error: Connection reset by peer)
15:18:37*brihat quit (Client Quit)
15:25:41*darithorn joined #nimrod
15:33:08*Trimsty joined #nimrod
15:40:59*bbodi joined #nimrod
15:58:49*untitaker quit (Ping timeout: 240 seconds)
16:04:40*untitaker joined #nimrod
16:07:55*bbodi quit (Ping timeout: 252 seconds)
16:08:06*bbodi joined #nimrod
16:08:07*bbodi quit (Client Quit)
16:10:25*DAddYE joined #nimrod
16:14:53*DAddYE quit (Ping timeout: 252 seconds)
16:21:20*q66 joined #nimrod
16:21:20*q66 quit (Changing host)
16:21:20*q66 joined #nimrod
16:29:36*Trimsty quit (Remote host closed the connection)
16:34:40*brson joined #nimrod
16:39:35*shodan45 joined #nimrod
16:42:37*bbodi joined #nimrod
16:43:38*uvelichitel joined #nimrod
16:52:20*DAddYE joined #nimrod
16:56:51*foodoo joined #nimrod
16:57:35*BitPuffin quit (Ping timeout: 252 seconds)
16:57:58*brson quit (Ping timeout: 240 seconds)
17:03:11*BitPuffin joined #nimrod
17:13:16*brson joined #nimrod
17:26:03*CarpNet quit (Quit: Leaving)
17:26:42VarriountIs there any system on which a double slash "//" in a path means anything
17:27:58*brson quit (Ping timeout: 265 seconds)
17:30:17OrionPK\\ on windows means something..
17:30:51OrionPKdouble // means implicit http(s) in browsers
17:32:31*brson joined #nimrod
17:34:01VarriountOrionPK: But on Linux/Posix/Mac, is "/User/Home" the same as "/User//Home"?
17:38:44uvelichitelVarriount: on my mac 'ls /Users//uvelichitel/' works same way, at least
17:41:51Varriountuvelichitel: Thanks. I'm trying to complete my path normalization procedure.
17:42:24VarriountI don't suppose there's a list of paths I could run my procedure through to test it?
17:44:08uvelichitelVarriount: Would it understand . .. ~ ?
17:45:09Varriount'.' and '..', yes. I haven't thought if it should expand '~'. What does '?' do?
17:47:22uvelichitel? means my sentence is literally a questions. ~ means /home
17:54:08uvelichitelVarriount: Also case_sensitivity and blank_spaces treated differently on systems
17:55:53Varriountuvelichitel: I'm not going to handle that. The procedure isn't meant to validate whether a path is correct, just simplify as best it can. Do you have any reasons against this? (I'm genuinely asking your opinion)
17:57:15reactormonkwan, ok
17:57:34*BitPuffin quit (Quit: WeeChat 0.4.3)
17:57:35reactormonksounds good to me >:)
17:57:50reactormonkdom96, request to change packages.json to bricks.json
17:58:12VarriountApropos of nothing, the nimrod stdlib really needs to have some sort of consistant style, for things like multi-line parameter declarations, etc.
17:58:19uvelichitelVarriount: I'd be satisfied with case insensitive and blank spaces not allowed
18:00:31reactormonkVarriount, you don't have to do all the fancy ../ path resolving, the OS does that for you
18:01:10Varriountreactormonk: Only when you have an actual file
18:04:21*BitPuffin joined #nimrod
18:11:07uvelichitelVarriount: seems blank spaces worth a reasoning. Disallowing it you make '/Library/Application Support' invalid on my mac. But parsing paths with blank spaces not trivial task for me
18:14:05Araqhmm what's the problem really?
18:14:43Araq"/foo/abc".relativeTo("/foo") == "abc"
18:14:53Araqspaces are irrelevant
18:17:24reactormonkAraq, "/foo//abc".relativeTo("/foo") == "abc"
18:18:17Araqwho cares if "/foo//abc" is handled properly. I've never encountered a path like this in my lifetime
18:18:27reactormonkAraq, I did. A lot.
18:18:30dom96reactormonk: why?
18:18:33Araqwhat?
18:18:38Araqwhy?
18:18:55reactormonkAraq, quirked configs, mostly.
18:19:09reactormonkor strange path handling
18:19:28reactormonkor people just not giving a fuck because they should be equivalent
18:20:20reactormonkuvelichitel, can "/" be part of a file name on a mac?
18:20:37uvelichitelno
18:21:27reactormonkgood, so I'd run a replace // with / over a path until it doesn't find anything anymore
18:23:08reactormonkAraq, also for your path, do you want to distinguish between relative and absolute path?
18:23:22reactormonks/path/path object/
18:27:43Araqwhy would I? 'relativeTo' returns a relative path
18:28:29AraqOrionPK: your bug report is just fine
18:28:39Araqwe need a "regression" tag for issues btw
18:29:03Araq"regression" and "blocker"
18:29:58reactormonkAraq, took you longer to type that than to go over to github and create them
18:30:33Araqnot true, I'm on the wrong machine
18:31:03OrionPKalright
18:32:16dom96'blocker'?
18:32:28dom96how is that different from 'showstopper'?
18:32:38AraqI dunno lol
18:32:50Araq"showstopper" # can't release with this bug
18:33:00Araq"blocker" # this is blocking my nimrod project
18:38:18uvelichitelDoes compiler typecheck multi-method invocation?
18:38:55Araqyes
18:48:26bbodiAraq: those new tags are good ideas! I have a project (https://github.com/bbodi/WhiteStag) that is suspended because of some compiler errors. Those error are so weird and complex that I unfortunately could not even reproduce them.
18:49:52Araqargh
18:50:12Araqwell tell me more. runtime crashes or compiler crashes?
18:50:47*Demos joined #nimrod
18:51:39bbodimodify: I can reproduce it in my program, but I could not create a simpler example where the error could oocur.
18:54:36Araqbbodi: well make a bug report anyway
18:55:29bbodiThe first and the most weird is a runtime crash. You can reproduce it by using TOption[int64] at mindy/types.nim:16 (and of course modify the other part of the code where the new int64 type causes compile time error). After running mindy.nim, then at the mindy.nim:65 the program crashes. Its like somehow at WhiteStag\view.nim:459 the child variable not a View, but a TOption[int64]. Ok, I report
18:55:29bbodithis sentence then.
18:56:28bbodianyway, its not a big problem for me that the project is suspended, I decided to learn the compiler intrinsic and help developoing Nimrod itself until it will be capable of compile my suspended project :)
18:59:43Varriountreactormonk: The simplifyPath procedure combines multiple '/' into just one '/'
19:00:34reactormonkbbodi, the unittest fails to compile :-/
19:01:34bbodiit needs SDL.dll. tomorrow I will create an Issue for my bug, and it will include a description hot wo compile it with the necessary files
19:02:12Varriountbbodi: By the way, that project looks awesome.
19:02:32Araqlet username = cast[PUTFString](switchUserComboBox.data) # what's PUTFString ?
19:02:34Araqif it's a 'ref' that is almost certainly wrong
19:03:08reactormonkbbodi, ... on linux.
19:03:36bbodioh, it was only tested on windows, sorry
19:03:37reactormonk/tmp/WhiteStag/WhiteStagEditor/sdlengine.nim(446, 5) Error: undeclared identifier: 'OpenClipboard'
19:04:04bbodiyou are right, currently it doesnt run only on windopws
19:04:26bbodiAraq: you are right, PUTFString is a ref. why is it wrong?
19:09:16bbodiSorry guys, I have to go to sleep, it's late here :) good night, meet tomorrow
19:09:21*bbodi quit ()
19:10:30*Amrykid quit (Ping timeout: 246 seconds)
19:10:55Araqbbodi: well it's an edge case, the underlying 'data' is a 'ref TObject' so that should be fine for your PUTFString
19:10:56*JStoker quit (Ping timeout: 246 seconds)
19:12:56*dom96 quit (Ping timeout: 246 seconds)
19:13:00*JStoker joined #nimrod
19:13:03Araqgah
19:13:03Araqoh well
19:13:09*Amrykid joined #nimrod
19:15:09*dom96 joined #nimrod
19:16:50VarriountAraq: Should I take into account the possibility that a directory seperator will be more than one character?
19:17:07Araqno
19:17:14Araqkeep it fast please
19:23:57reactormonkVarriount, whut? Is that even the case somewhere?
19:25:30reactormonkVarriount, every unix-based OS has "/", windows has its "\", and I don't know of anything else
19:26:15reactormonkVarriount, and make the path separator static.
19:26:32Varriountreactormonk: It already is. See os.nim
19:26:38reactormonkVarriount, perfect
19:27:09reactormonkVarriount, not sure if you want to subset between relative and absolute path
19:28:39Varriountreactormonk: It will fail if the path starts with a ".."
19:29:25reactormonkVarriount, ".." is a valid path
19:30:09*io2 joined #nimrod
19:33:00Araq"As mentioned in my post, the memory footprint for 12 million concurrent connections is about 36 GB. "
19:33:03Araqlol
19:33:47VarriountAraq: What's funny about that?
19:34:20reactormonkVarriount, that's ~3M per connection
19:34:30VarriountO_o
19:34:41reactormonkthat's nothing, we had 300MB per page rendered at my old company with rails
19:35:11VarriountAraq: Is he/she using thread-per-connection model?
19:35:13reactormonkwe considered harakiki (aka no GC, just kill the process after each render) and it went to about 1GB :-/
19:36:56Demoswebscale
19:37:13VarriountHow much should I rely on compiler optimization?
19:38:25*BitPuffin quit (Ping timeout: 240 seconds)
19:39:36AraqVarriount: he doesn't say
19:39:46Araqapparently he uses Java though
19:40:10VarriountAh. That puts things in perspective.
19:40:25Araqthough the memory footprint is only Linux's overhead if I read the article correctly
19:40:33Araqhttp://mrotaru.wordpress.com/2013/06/20/12-million-concurrent-connections-with-migratorydata-websocket-server/
19:41:19VarriountAraq: If you want a chuckle at just how badly Minecraft is coded, read this -> http://corbinsimpson.com/entries/take-a-bow.html
19:42:15*BitPuffin joined #nimrod
19:47:19Demosthread-per-client sounds like a good way to destroy your scheduler... hm network programming is all wierd
19:48:00VarriountDemos: Well, unless you have something like fibers, or io completion ports.
19:48:51VarriountEven then, I would think a thread per, say, 100 clients would be better, as there's less memory taken up by the thread itself per client.
19:50:20Demosseems like a work-queue type deal. Each thread doing some stuff, then fetching another connection to do more stuff with
19:51:24Araq"destroy your scheduler"? it's O(1)
19:51:49reactormonkDemos, that's what unicorn does (ruby webserver). For holding connections open, you usually use nginx to handle slow connections etc.
19:52:13reactormonkso you could solve that minecraft problem with a proxy which receives slow data then passes it on
19:57:26*filwit joined #nimrod
20:05:30dom96Varriount: Writing a Minecraft client lib in Nimrod sounds like a fun project.
20:06:12dom96Araq: how goes the hunting for the async mem leak?
20:09:45dom96Varriount: Think you could try to hook up fsmonitor to the new async module?
20:10:13reactormonkdom96, how do you hunt such a thing? reference counting?
20:10:34dom96reactormonk: no idea, that's why i'm relying on Araq to do it heh
20:12:39*flaviu joined #nimrod
20:13:23*BitPuffin quit (Ping timeout: 252 seconds)
20:15:22*BitPuffin joined #nimrod
20:18:24EXetoCAraq: the vm turns "echo int16(42349)" into an nkHiddenStdConv tree which ends up as an nkIntLit (no error). where do I look
20:18:53EXetoCI should try endb again. I did attempt to use some trace pragma bug that didn't work. I'll try stepping this time
20:19:01*nande joined #nimrod
20:28:06VarriountIf anyone can get this path simplification procedure working, I'd be eternally grateful: https://gist.github.com/Varriount/11268428
20:28:10*brson quit (Ping timeout: 276 seconds)
20:28:17VarriountI have to go to class. :<
20:32:05*foodoo quit (Ping timeout: 264 seconds)
20:41:02*Matthias247 joined #nimrod
20:42:54Araqfilwit: a "compilerproc" is a proc that the codegen calls. kind of the opposite of "magic"
20:43:20Araqof course it needs to have an implementation as that it is its whole point
20:43:49Araqthe codegen delegates the work to the proc, so instead of generating a huge blob of code, it generates a call
20:45:52filwiti'm still missing something important.. probably about how things are being compiled. But don't really want to figure it out right now.
20:46:03DemosVarriount: wait, why would you want to have that function output /Ben/? that is not even a valid path it looks like, or it is not gareenteed to be on a given system
20:46:50filwitAraq: btw, 'using' seems to be buggy when used with getAST()
20:47:07filwitAraq: trying to isolate for either a report, or fix myself
20:52:47flaviufilwit: This is offtopic, but I'd like to nitpick about the word 'non-ast comment' because block comments can exist even if they stay part of the AST
20:57:32filwitflaviu: you mean like C's /* */ ?
20:58:01filwiti'm not sure exactly what you're responding to that i said
20:58:32*EXetoC quit (Quit: WeeChat 0.4.3)
20:58:52*EXetoC joined #nimrod
20:59:43flaviu02:35:31 filwit: those things need to be fixed, and I really want non-AST comments so we can Ctrl-D blocks easily
21:00:04EXetoCรค
21:00:19filwitflaviu: the point is, currently (and i don't know of any plans to change this), there's only one kind of comment in Nim, the '#' mark, and that symbol must appear at the beginning of each line.. which makes text-editor support for this difficult since Nim's indent-sensitive style also applies to the '#' placement
21:00:41flaviuNo, I understand your point, but I'm just nitpicking your word choice
21:01:03filwitokay...
21:01:37reactormonkfilwit, any different in python?
21:01:50flaviuI don't want to get into another argument about multiline comments. I'm just saying that multiline comments are not incompatible with comments being in the AST, it is possible to have both
21:03:45Araqah good topic
21:03:54AraqI changed comment handling in the compiler
21:04:04Araqso only documentation comments are part of the grammar
21:04:09Araqhowever then code lik:
21:04:16Araqelse:
21:04:20Araq # do nothing
21:04:25Araqdoesn't compile anymore
21:04:34filwitprobably shouldn't anyways
21:04:59filwitisn't this why nil statements where depreciated in favor of discard?
21:05:00Araqwell the compiler itself uses that ofc
21:05:08filwitah, right
21:05:26filwitwere*
21:05:59*filwit does not know english and it's his only language..
21:06:56EXetoCthat shouldn't compile? well as long as you can comment out enumerators and other things that you can't comment out currently
21:07:35filwit^ yeah that's really annoying
21:09:13filwitbtw.. is there any super serious performance/memory implications I would run into by using `type T {.byRef.} = object ...` over `type T = ref object ...` everywhere ?
21:09:53*[2]Endy quit (Ping timeout: 264 seconds)
21:12:05*EXetoC quit (Quit: ChatZilla 0.9.90.1 [SeaMonkey 2.25/20140324220103])
21:12:32*EXetoC joined #nimrod
21:12:33AraqI don't know, the semantics are different
21:12:41AraqbyRef only affects parameter passing
21:12:47Araq'ref' is a pointer
21:14:42filwityeah i know they're slightly different. I actually like having an explicit 'ref T' (for the same reason you like your PFoo thing) in places like record-lists/local-vars.
21:15:14filwitI was just wondering if that cause weird stack issues i've i'm constantly allocating large objects their
21:15:18filwitthere*
21:15:46Araqsure it can cause problems
21:15:52renesacnimrod stack is fixed, like the default C one
21:15:56renesacstack size
21:15:58Araqthe stack is scanned conservatively
21:16:08filwiti see, so probably a bad idea then
21:16:10Araqand not incrementally at all
21:16:37Araqbut then if you run the GC in your main loop it's gone by then
21:16:46Araqso ... I don't know
21:16:54*flaviu quit (Quit: Leaving.)
21:16:58filwiti guess this calls for benchmarks then
21:17:27filwitstill, i'm not liking the sound of that
21:17:29renesacAraq, stackoverflow isn't a possible problem?
21:17:56renesacmaybe I'm using the wrong name
21:18:05filwitall i'm really looking for is a {.notNil.} pragma really
21:18:06renesacbut exceeding the stack size?
21:18:20filwiti don't want the stack allocation, just the value semantics
21:18:34filwit(unless explicitly used as 'ref')
21:18:41renesacPObject = ref TObj not nil
21:18:42renesac?
21:18:50filwitis that valid code?
21:19:00renesachttp://build.nimrod-lang.org/docs/manual.html#not-nil-annotation
21:19:18renesacthis feature don't seems finished yet
21:19:29renesacbut should work, probably
21:19:43Araqwhy do you say that? well it is not widely used
21:19:58Araqbut I got bug reports and fixed these bugs
21:20:06renesachum
21:20:11filwitthat looks like if i did 'var foo: Foobar' i'd get an error instead of an default allocated object
21:20:49filwitwill try though, didn't know about this feature
21:20:52Araqsure thing 'not nil' doesn't mean it's auto initialized via 'new' that would be crazy
21:21:34Araqfilwit: I'd stick with the stack allocations, as I said, run the GC in realtime mode and it shouldn't be any problem
21:22:46filwitAraq: i'll make a benchmark to test that later, but i'm wary of doing something that could potentially cause stack-overflow or other serious hard-to-find issues
21:23:41filwitand it may be crazy, but having a pragma like {.defaultAlloc:new.} might actually be nice... just a thought
21:24:18Araqstack overflows are not hard to find, it's just that their error message sucks
21:25:01Araqand no, we can't easily fix that
21:28:29filwitokay, i'm fine with using 'ref object' really. I was just testing the boundaries of possibility. One thing i'm still not sure how to do, is get a 'T' from a 'ref T' (in generic code)
21:28:58Araqtype(x[]) should work
21:29:13filwitah, okay great
21:34:08Demosif you are writing generic code you may want to take a var T instead of a ref T
21:35:09Demosstack overflows are only hard to find on embedded systems, desktops will segfault if you overflow
21:36:15filwitit's only really needed for generating procs/etc for a ref-type. Aka buildProcFor(T) where T is a 'ref T' and the proc this macro produces needs to inject a 'var T' not a 'var ref T'
21:38:56filwiti can't remember the exact area i was having issue with this, only that I didn't know how to do it offhand
21:40:48VarriountDemos: The procedure is meant to simplify *any* possible path, without consulting the OS or asking the disc.
21:41:15*Demos_ joined #nimrod
21:41:29VarriountDemos_: The procedure is meant to simplify *any* possible path, without consulting the OS or asking the disc.
21:42:50*Demos quit (Read error: Connection reset by peer)
21:44:06Demos_right, but it is strange that it takes out the first parts, then again
21:44:11Demos_there is a windows function that does this
21:44:23VarriountDemos_: Yes. But not a linux one.
21:44:27Demos_right
21:50:25*BitPuffin quit (Ping timeout: 240 seconds)
21:55:43VarriountHm. How cache efficient can Nimrod be?
21:56:49*BitPuffin joined #nimrod
21:57:21Araqas cache efficient as anything else
21:57:56VarriountAraq: You mean, as cache efficient as python? :3
21:59:40Araqeven in python there is a 'struct' module :P
22:00:14Araqbbl
22:10:19*brson joined #nimrod
22:13:29*Demos_ quit (Ping timeout: 264 seconds)
22:23:25*uvelichitel quit (Quit: Textual IRC Client: www.textualapp.com)
22:48:46*askatasuna joined #nimrod
22:49:19*noam quit (Read error: Connection reset by peer)
22:50:28*noam joined #nimrod
22:50:55*noam quit (Read error: Connection reset by peer)
22:52:46*noam joined #nimrod
22:56:23*brson quit (Ping timeout: 255 seconds)
23:01:47*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
23:03:35filwitAraq: any thoughts on eventually depreciating the 0f32 and 0'f32 syntax in favor of (the consistent) 0.float | 0.f32 ?
23:03:58*brson joined #nimrod
23:04:10*zahary quit (Ping timeout: 276 seconds)
23:07:09*Demos joined #nimrod
23:07:40dom96filwit: 0.float32
23:08:38filwitdom96: i know, that's what i'm suggesting (f32 would just be a shorthand alias, if it existed at all)
23:09:13*Matthias247 quit (Quit: Matthias247)
23:09:33filwitdom96: i was talking the 0f32 and 0'f32 (those version of casting) being redundant
23:09:40filwitdom96: not 'f32' specifically
23:12:05dom96hrm, I guess there is something to that.
23:12:09dom96Would break code though
23:12:33filwiti'm willing to do the grunt work for these sorts of things
23:13:10filwitlike "remove every case this syntax is used in the compiler" is something I would happily do for the sake of consistency
23:13:33EXetoC*deprecate </nitpick>
23:13:37EXetoCdom96: just deprecate then
23:13:44filwitand as for other's code, just make a clear announcement of the change in release notes.
23:13:52EXetoCand then maybe add automatic conversion. seems trivial
23:14:11EXetoCwith that said, it's a really minor point so I don't care either way
23:14:43renesacdeprecate and add '.f32' and such
23:14:53renesacbecause otherwise things would become verbose
23:15:09filwitrenesac, you can always make your own aliases too
23:15:59renesacyeah, but I would be against deprecate those forms if it means that normal code would need to be that verbose
23:16:33renesacnimrod is much stricter with types than C, even w/o considering the uint bugs
23:24:00Varriount Hm.. If we got rid of the ' character for literal types, what could we use it for instead?
23:25:18EXetoCwhat was just suggested
23:25:43*Demos quit (Read error: Connection reset by peer)
23:27:01VarriountEXetoC: I mean, what could ' be used for then. Like, what new use could we ascribe to it.
23:28:04EXetoCoh
23:28:32*flaviu joined #nimrod
23:30:08flaviufilwit: `find . -iname '*.nim' -type f -print0 | xargs -0 -P 8 sed -i 's/\'f32/f32/g'`
23:30:08flaviuWhat grunt work?
23:31:16filwitgood point
23:32:35EXetoCand the others? probably not so common either
23:32:50flaviuEXetoC: Which others?
23:33:13EXetoCoh replace. I should try that some time
23:34:11EXetoCdoes vim have search/replace across buffers?
23:34:13dom96You will likely end up accidentally replacing something inside a str literal.
23:34:40*dom96 always ends up replacing something he didn't want when doing a 'replace all'
23:37:37EXetoCflaviu: can that be adapted to allow for selective replaces?
23:37:48flaviuEXetoC: Can you give an example?
23:38:17EXetoCflaviu: interactively that is. similar to the 'c' flag in vim
23:38:29dom96I think nimgrep supports interactive replaces
23:38:54EXetoCyes but it was buggy for me
23:39:10EXetoCcouldn't do it with groups
23:39:14renesacVarriount, ' is already used for quoting chars
23:39:36renesacnot that much use, but you see them in some 'case' statements
23:39:50flaviuNo, I can't find any
23:40:19flaviuMaking a script should be possible though, echo the changes and ask for confirmation, per-file
23:43:14*xenagi joined #nimrod
23:45:14EXetoCflaviu: can't be bothered :p I found greplace.vim though
23:45:57*darkf joined #nimrod
23:56:31*askatasuna quit (Ping timeout: 252 seconds)
23:56:45*zahary joined #nimrod