<< 13-08-2014 >>

00:05:04*Boscop quit (Read error: Connection reset by peer)
00:05:04*brson quit (Ping timeout: 240 seconds)
00:05:31*Boscop joined #nimrod
00:05:36*Boscop quit (Changing host)
00:05:36*Boscop joined #nimrod
00:09:17*Boscop quit (Read error: Connection reset by peer)
00:09:43*Boscop joined #nimrod
00:10:00*enquora quit (Quit: enquora)
00:11:28*Boscop quit (Read error: Connection reset by peer)
00:11:50*Boscop joined #nimrod
00:15:06*Boscop quit (Read error: Connection reset by peer)
00:15:11VarriountAraq: Found out the bug.
00:15:30*Boscop joined #nimrod
00:15:31VarriountA pointer was being incremented for some reason.
00:15:36*Boscop quit (Changing host)
00:15:37*Boscop joined #nimrod
00:15:56VarriountAraq: Any particular reason the SysAssert just quits, instead of writing a stack trace to the output?
00:18:33Araqyou can't always write a stack trace when your heap is corrupted
00:23:53VarriountAraq: Now here's a good question: Now that Linux and (nearly) Windows have file monitoring support, what is going to be done about Mac and *BSD?
00:24:02*Varriount_ joined #nimrod
00:24:02*Varriount_ quit (Client Quit)
00:25:12AraqVarriount: the Mac users do not need this feature and the BSD users will write a patch for us
00:25:34VarriountWhy don't Mac users need the feature?
00:26:19Araqthey are happy without a DEL key, they are happy without this advanced feature called "file monitoring" ;-)
00:26:34VarriountOh you cynic you. :P
00:29:52VarriountAraq: Perhaps we can convince gradha to write an implementation for us. I think he's the only one who has access to a Mac.
00:30:18Araqlol, you're so wrong
00:30:42VarriountHm. So you have access to a Mac?
00:30:55Araqlots of people here use a mac, jehan, zahary
00:31:10*Varriount looks for zahary
00:31:28Araqhe promised he'll return btw
00:31:45VarriountAraq: Ah. On another note, why is 'semistatic' evil?
00:32:58Araqbecause it's a side effect of disambiguation pass masquerading as a type
00:33:41VarriountIn other words...?
00:35:30NimBotAraq/Nimrod devel 9d5d3c9 Araq [+0 ±1 -1]: fixes #820
00:35:30NimBotAraq/Nimrod devel abc8447 Araq [+0 ±1 -0]: fixes #1413
00:35:52Araqin other words it is yet another semantically vague clusterfuck
00:36:05VarriountAh. Now I get it.
00:36:15Varriount*writes that down for future posterity*
00:37:14Araqso ... when should you use 'semiStatic[T]'? why is static[T] even in the language? is 4 a static[int] or is it an int?
00:39:36VarriountAraq: So... why didn't you tell zahary this?
00:41:03AraqI did
00:41:20Araqmonths ago, you can check the logs
00:41:56VarriountSo.. should I remove the static[] section in the language manual?
00:43:46Araqno, I need to think about how this should work
00:47:50*willwillson quit (Ping timeout: 260 seconds)
00:47:54VarriountAraq: If --gc:markAndSweep and -d:useSysAssert -d:useGcAssert don't help in finding memory leaks, is there anything else I can do?
00:48:48Araqsure, use the memory profiler
00:49:23Araqby their nature leaks are caused by the stack traces that cause frequent allocations
00:51:44VarriountIt's too bad Nimrod doesn't have some sort of memory visualization tool.
00:54:02NimBotAraq/Nimrod devel 32a5d4b Araq [+0 ±2 -0]: fixes #1442
00:54:11Araqgood night
00:54:19VarriountGood night. Thanks for the help.
01:09:52*q66_ quit (Quit: Leaving)
01:10:25adoniscikbye
01:30:03*nande quit (Read error: Connection reset by peer)
01:40:22*noam quit (Read error: Connection reset by peer)
01:40:47*noam joined #nimrod
01:47:10adoniscikis there a linter?
01:48:37Varriountadoniscik: Sorta. `nimrod pretty` is supposed to reformat a file to fit style conventions, and `nimrod check` is supposed to warn about deprecated programming conventions.
01:49:19VarriountThe pretty tool needs updating though, to fit the style guide (located at https://github.com/Araq/Nimrod/wiki/NEP-1-:-Style-Guide-for-Nimrod-Code )
02:58:23*xenagi joined #nimrod
03:38:41*xenagi quit (Ping timeout: 255 seconds)
03:41:52*saml_ quit (Quit: Leaving)
04:00:35Varriountdom96, Araq: I'm re-working the file watching procedure to use a different scheme for tracking if a file has moved. Hopefully it will sort out the GC problems I'm having.
04:13:38*flaviu quit (Ping timeout: 260 seconds)
04:49:41*kshlm joined #nimrod
05:06:36*silven joined #nimrod
05:15:52*ome joined #nimrod
05:17:32*gkoller joined #nimrod
05:20:29*gkoller quit (Client Quit)
05:48:02*Demos quit (Read error: Connection reset by peer)
06:41:33NimBotnimrod-code/packages master df2db95 achesak [+0 ±1 -0]: Added pythonfile and colorsys.
06:41:33NimBotnimrod-code/packages master bac77d5 achesak [+0 ±1 -0]: Fixed URL.
06:41:33NimBotnimrod-code/packages master 6ad8d36 achesak [+0 ±1 -0]: Oops.
06:41:33NimBotnimrod-code/packages master 504f3c9 Dominik Picheta [+0 ±1 -0]: Merge pull request #81 from achesak/master... 2 more lines
07:13:26*adoniscik quit (Ping timeout: 250 seconds)
07:19:03*kunev joined #nimrod
07:27:04*johnsoft quit (Ping timeout: 260 seconds)
07:28:04*johnsoft joined #nimrod
07:32:42*reloc0 quit (Ping timeout: 246 seconds)
07:43:56*zahary joined #nimrod
07:45:44*BlameStross joined #nimrod
08:02:48*zahary quit (Quit: Leaving.)
08:42:54*johnsoft quit (Ping timeout: 260 seconds)
08:43:11*johnsoft joined #nimrod
08:48:17*johnsoft quit (Ping timeout: 255 seconds)
08:48:35*johnsoft joined #nimrod
08:53:58*io2 joined #nimrod
09:31:02*OrionPK quit (Read error: Connection reset by peer)
09:31:30*BlameStross1 joined #nimrod
09:32:49*BlameStross quit (Ping timeout: 246 seconds)
09:33:05*reloc0 joined #nimrod
09:59:23*johnsoft quit (Ping timeout: 255 seconds)
09:59:57*johnsoft joined #nimrod
10:00:04*BlameStross1 quit (*.net *.split)
10:00:05*untitaker quit (*.net *.split)
10:00:05*Varriount quit (*.net *.split)
10:07:18*BlameStross1 joined #nimrod
10:07:18*untitaker joined #nimrod
10:07:18*Varriount joined #nimrod
10:07:33*ome quit (Quit: Connection closed for inactivity)
10:16:02reactormonk#81? O.o
10:16:49reactormonkah, packages.
10:23:55*BlameStross1 quit (*.net *.split)
10:23:55*untitaker quit (*.net *.split)
10:23:56*Varriount quit (*.net *.split)
10:25:50*gs joined #nimrod
10:29:32*kshlm quit (Ping timeout: 255 seconds)
10:30:40*BlameStross1 joined #nimrod
10:30:40*untitaker joined #nimrod
10:30:40*Varriount joined #nimrod
11:58:34*EXetoC joined #nimrod
12:04:29*willwillson joined #nimrod
12:07:04EXetoChas anyone needed to use MongoDB yet?
12:12:40*johnsoft quit (Ping timeout: 260 seconds)
12:13:04*johnsoft joined #nimrod
12:19:05EXetoCother than the guy who submitted the bug report 8 months ago.. I wasn't aware of that one. I need to fix it in any case
13:03:59*zahary joined #nimrod
13:11:08*darkf quit (Quit: Leaving)
13:14:24*zahary quit (Quit: Leaving.)
13:16:17*Varriount_ joined #nimrod
13:19:12*Varriount quit (Ping timeout: 246 seconds)
13:28:37*johnsoft quit (Ping timeout: 245 seconds)
13:30:03*OrionPK joined #nimrod
13:33:08*zahary joined #nimrod
13:35:57*johnsoft joined #nimrod
13:46:18*enquora joined #nimrod
13:47:43*EXetoC quit (Quit: WeeChat 0.4.3)
13:56:24*nueva joined #nimrod
13:57:13*nueva quit (Client Quit)
14:08:02*EXetoC joined #nimrod
14:43:16*kunev quit (Quit: leaving)
14:55:16*zahary quit (Quit: Leaving.)
14:55:54*EXetoC quit (Quit: WeeChat 0.4.3)
15:19:01*ome joined #nimrod
15:29:04*ics joined #nimrod
15:32:07*EXetoC joined #nimrod
15:38:18*Demos joined #nimrod
15:55:36Skrylarmeep.
15:59:47*zling_ quit (Ping timeout: 245 seconds)
16:00:34enquoraAm looking at nimrod to create a non-trivial library that needs to run on server, iOS and in browser. Need to pass in a substantial amount of data, prefereably in json or xml format, and output a non-trivial byte object. Any examples of how one would configure a project for this?
16:00:56enquoraThe library is a pdf generator, btw
16:01:06*zling_ joined #nimrod
16:08:04Skrylarnimrod doesn't really have to be configured for that
16:08:11Skrylarunless you mean like, library design guides or the like
16:09:32willwillsonthere are some cross platform examples in the examples directory, e.g : https://github.com/Araq/Nimrod/tree/devel/examples/cross_calculator
16:23:35*silven quit (Remote host closed the connection)
16:28:27Demosone of the nicest features of nimrod is that because of its great compile time code exceution and metaprogramming support you rarely need complex build systems
16:32:17*BlameStross joined #nimrod
16:32:18*silven joined #nimrod
16:33:48*BlameStross1 quit (Ping timeout: 246 seconds)
16:40:25*adoniscik joined #nimrod
16:49:35*q66 joined #nimrod
17:00:40*Matthias247 joined #nimrod
17:23:03*brson joined #nimrod
17:23:37*adoniscik quit (Read error: No route to host)
17:55:19*TylerE quit (Read error: Connection reset by peer)
17:56:15*TylerE joined #nimrod
18:00:24*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
18:10:38*adoniscik joined #nimrod
18:13:13*gs quit (Ping timeout: 246 seconds)
18:14:33*Trustable joined #nimrod
18:17:18NimBotAraq/Nimrod devel 1573400 Reimer Behrends [+0 ±2 -0]: More robust implementation for finding the beginning of the stack.... 4 more lines
18:17:18NimBotAraq/Nimrod devel 1d19c95 Andreas Rumpf [+0 ±2 -0]: Merge pull request #1400 from rbehrends/fix-stackscan... 2 more lines
18:32:13*noam_ joined #nimrod
18:35:06*silven_ joined #nimrod
18:39:27*willw946 joined #nimrod
18:40:05*noam_ quit (Ping timeout: 260 seconds)
18:41:15dom96hi
18:41:28*silven quit (*.net *.split)
18:41:28*willwillson quit (*.net *.split)
18:41:28*noam quit (*.net *.split)
18:41:29*Fr4n quit (*.net *.split)
18:42:39shodan45dom96: hello
18:42:47dom96hi shodan45
18:47:02shodan45... I really should stop reading systemd flame wars & get some work done >_>
18:47:57*Fr4n joined #nimrod
18:50:04dom96haha
18:56:19*noam joined #nimrod
19:01:33*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:13:13endou__shodan45: Haha, just the same here
19:13:41endou__all: Btw, I have not introduced my self, so hello everyone and thank you Araq I like Nimrod very much
19:13:41Matthias247I also read it...
19:14:05Araqhi endou__. thank you.
19:14:07Matthias247reddit seems to be the death for productivity :)
19:15:58dom96hello endou__!
19:22:06*askatasuna joined #nimrod
19:24:09dom96Araq: Should zmq remain in the stdlib?
19:24:20Araqno
19:24:31Araqit should be a babel package
19:40:50*flaviu joined #nimrod
19:42:35*Ven joined #nimrod
19:46:36NimBotAraq/Nimrod devel 3b7a149 Dominik Picheta [+0 ±0 -1]: Removed zmq wrapper.
19:47:46flaviuDoes this work for anyone else: https://github.com/Araq/Nimrod/graphs/traffic ?
19:47:53flaviu*someone
19:48:39dom96works for me
19:48:54flaviuhmm, you might have to be a contributer to the repo then
19:49:01flaviuIt works for me on my repos too
19:49:11flaviuCan you screenshot it? I'm curious
19:50:05adoniscikdoesn't for me
19:50:13Araqworks for me
19:50:26flaviuI guess you have to be a contributor to get those analytics
19:50:51*untitaker quit (Ping timeout: 246 seconds)
19:51:02dom96I can screenshot it, if Araq doesn't mind.
19:52:31Araqsure why not
19:53:18Araqhint: the numbers are so huge that we don't have names for them
19:55:56*untitaker joined #nimrod
19:56:07dom96flaviu: http://i.imgur.com/AtsbvzF.png
19:57:02flaviureddit: 6
19:57:04flaviulol
19:58:10flaviuAnyway, not too shabby, especially since it looks like they only started collecting data since a couple weeks ago
19:58:51dom96It is interesting that the Nimrod forum gives more unique visitors to the repo
19:58:55dom96than reddit
19:59:13flaviuI assume thats because it contains a lot more googleable contents
19:59:33flaviureddit contains just maybe ~1000 comments overall, the fourm much more
20:01:41Araqthe redditors are all busy writing haskell code that doesn't use the GC
20:02:47Araqbecause we all know that (a) GCs don't scale and hurt multi core and (b) pure functional programming is excellent for multi core
20:03:22flaviupure functional programming is also good for GC
20:03:58flaviuOld can never point to new
20:05:25Matthias247oh, I also found the religous post about clojure-fibers being the one and only async approach - interesting ;)
20:06:23Matthias247or arguing whether python is too slow for tcp
20:06:30Matthias247I should really block that page :)
20:12:15NimBotAraq/Nimrod devel fc6a799 def [+0 ±1 -0]: Add random() for openarrays
20:12:15NimBotAraq/Nimrod devel add0a0e Dominik Picheta [+0 ±1 -0]: Merge pull request #1351 from def-/random-openarrays... 2 more lines
20:12:18EXetoCtoo slow for tcp. I don't even..
20:12:55flaviuEXetoC: Apparently the library that she used was really slow
20:14:01*askatasuna quit (Quit: WeeChat 0.4.3)
20:14:44endou__ Matthias247: Could you send me the link to the clojure-fibers post?
20:15:12flaviuendou__: http://www.reddit.com/r/programming/comments/2ddl21/farewell_to_asynchronous_code/
20:15:30Matthias247yep, that one
20:15:36endou__ty
20:17:59dom96Somebody mentioned async await so it's all good.
20:18:50Araqnow since there are several people here not sleeping ...
20:19:30Araqany opinion on .benign ?
20:20:09dom96oh, this guy is arguing that Quasar is more powerful, whatever that is.
20:20:22*Ven quit (Ping timeout: 250 seconds)
20:20:32Matthias247for my c# work project I now converted everything that' async first to Tasks and now the rest to Rx Observables.
20:20:38dom96Araq: My opinion is: it sound ok.
20:20:51EXetoC"Reactive (Dataflow) Programming in Java and Clojure with Quasar and Pulsar"
20:20:58Matthias247that really fixed a lot of my threading mess :)
20:20:58dom96Matthias247: You should try out Nimrod's async await :)
20:21:10Matthias247yeah, i have to
20:21:15Matthias247But you also need Rx ;)
20:21:17dom96We worked out most of the issues now, I hope.
20:21:23dom96What's Rx?
20:21:27Matthias247reactive extensions
20:21:35Matthias247asynchronous streams
20:21:47dom96got any links handy?
20:22:11Matthias247http://www.introtorx.com
20:23:03Matthias247was initially done for C#, but there are now ports for Java (rxjava), the remaining jvm stuff, JS, cpp and probably others
20:23:50Matthias247that's probably a nice example: https://gist.github.com/benjchristensen/4679253#file-videoexample-snippet-groovy
20:24:02adoniscikdoes nimrod have a limit on the number of -l parameters it accepts?
20:24:27flaviuI'd be surprised lol
20:26:41Araqthe VM has all sorts of limits
20:26:44dom96Matthias247: that site is a bit broken
20:27:18flaviudom96: There's a second, vertical, TOC
20:27:38dom96flaviu: ... I know
20:27:57Matthias247I can do nothing about that :)
20:29:01dom96That site is really more of a tutorial and an in-depth look. I would prefer a TL;DR :P
20:29:54flaviudom96: https://github.com/Netflix/RxJava/wiki
20:30:09flaviuGoogle is pretty great lol
20:30:34dom96what did you search for?
20:30:54flaviurxjava
20:31:23flaviurx has poor searchablility, but I remembered Matthias mentioning java
20:31:42dom96ahh
20:31:56Matthias247yeah, the wiki is pretty good
20:31:58dom96I searched for reactive extensions and to no surprise there were no results for RxJava
20:32:08Matthias247especially the marble diagrams they have for all operators
20:34:31Araqan observably is a queue that you are only allowed to read from. I think.
20:34:57dom96'onNext'? Isn't that a callback?
20:36:07dom96Matthias247: I think you should write RxNimrod :P
20:37:32Matthias247The basic thing is similar to a multicast delegate or a C# event
20:37:33adoniscikdoes nimrod have a limit on the number of -l parameters it accepts?
20:37:56Matthias247But you can use composition operators to transform that into other events (like in LINQ)
20:38:23Matthias247and you can switch threads in between by using observable.ObserveOn(scheduler). Which is extremely helpful
20:39:00Matthias247and contrary to a a normal event it has an end (OnCompleted) or can report an error (OnComplete)
20:39:44Matthias247thereby you can use them as a replacement for futures. The value comes through OnNext and then the end follows. Or an error is reported through OnError
20:42:59Matthias247oh, and when you Subscribe() to an Observable you get an IDisposable which you can use to unsubscribe from the stream. Or event to cancel an async operation when it's implemented that way
20:43:51Araqmeh I don't really like objects reinventing basic control flow
20:44:20Araqbut perhaps "basic" control flow is all wrong
20:44:31Matthias247but it's for async cross-thread control-flow
20:44:54Araqyeah but that doesn't change anything:
20:45:15Araqfoo(x); bar(y) # ok sequential control flow
20:46:00AraqandThen(foo, x, bar, y) # bah
20:47:34*ARCADIVS joined #nimrod
20:47:35Araqit suggests you got the builtin control flow wrong
20:48:10Araqand indeed maybe C# is simply too sequential/ low level and you should program in a dataflow language instead
20:49:03Araqofc nim has the same problem but then we always have the "systems programming" excuse ... ;-)
20:49:40Araqs/have/use
20:49:49Matthias247ok, I agree that it's hard to follow with the hidden async operations and the whole map/flatmap/whatever stuff
20:50:20Matthias247but I don't know a really good solution for all use cases :)
20:51:28Araquse a really dataflow language instead? you get data race freedom as a nice side effect if you pick the right language
20:52:29Araqbut I don't know what dataflow languages are out there
20:53:29Matthias247but is that suitable for e.g. building a UI, which also involves lot's of async?
20:55:10Matthias247e.g. I would have a hard time imagening how Erlang or Go concurrency would map to a UI (which is quite async but everything is in a single thread and not multiples)
20:57:07*io2 joined #nimrod
20:57:10Araqyou can tell Go to only use a single thread ... I think
20:57:22dom96yep
20:57:56Matthias247yes. Then you are safe to manipulatee everything from everywhere ;)
20:59:10Matthias247But with C# I can easily have most UI stuff asynchronously in the UI Thread and still have others threads which do other (possibly blocking) stuff :)
21:00:21Matthias247ok, you could probably use a single goroutine as your UI mainloop. Which uses a channel input as the message pump
21:00:40Araqif you do have a UI in C#, you're doing it wrong
21:00:54Araqyou should write a web app instead :P
21:01:10dom96asp.netmasterrace
21:01:10Matthias247yeah, then you are bound to a single thread anyway ;)
21:01:37AraqMatthias247: sssshhht, but it's webscale this way
21:02:10Matthias247oh, btw: Dart also has futures and a stripped down version of Rx (called streams) for async stuff
21:02:37Matthias247but as it is single threaded there's no need for streams working across threads
21:02:44Araqit's like Dart's main designer knows about C#
21:03:15SkrylarSingle threaded languages are good jokes :)
21:04:05shodan45hm? what about web workers?
21:05:27Matthias247web workers (and dart isolates) are really limited in what they can do compared to real multithreaded languages
21:06:28Matthias247Araq: that's not the worst thing :)
21:06:34adoniscikisn't nimrod supposed to see static libraries before dynamic ones?
21:07:31Araqadoniscik: no, you have to use --dynlibOverride or some other means to link to a static library
21:18:45*Jehan_ joined #nimrod
21:23:15Araqhi Jehan_ your patch causes gcleak, gcleak2 and gcleak5 to fail
21:23:27Jehan_Araq: Bleh.
21:23:41Jehan_Let me have a look.
21:23:43Araqand also DLL building
21:24:02Araqwell it's quite possible that the limits are simply too narrow
21:24:22Araqbut apart from that it's all good
21:24:31SkrylarDLLs are hell :/
21:24:54SkrylarConceptually the idea of using shared libs is great, in practice its nearly worthless.
21:25:48SkrylarI'm thinking here of how turbopascal et all are able to perform O(1) RTTI because they simply don't support DLLs and hard-code type info, whereas if I recall C++ has to do a lot of moebius garbage to support that. And in truth, everybody ends up shipping their own DLLs anyway. So all you gain is de-duplicated code within the shipped package.
21:26:22SkrylarOn Windows you end up with "the <insert/> runtime" packages during install, on OSX you just bundle them with the .app
21:26:56SkrylarAnd oops, the system python is 0.0.1 different than you built, with some unforseen change that shouldn't have been in a maintenence build; now your programs broke.
21:27:25Araqyeah. and on Linux it simply doesn't work, but its users are used to it. :P
21:27:42SkrylarLinux software that isn't an OS package tends to do the mac thing: put the .so's with the binary
21:27:55Skrylarbecause you can't even trust that your glibc won't try to give you surprise anal
21:28:18Araqwhat's "Linux software that isn't an OS package"?
21:28:46def-most commercial software for example
21:28:48SkrylarAraq: proprietary
21:28:59shodan45I know some linux admins that would get very angry if you took away their shared libs :)
21:29:07Araqlol obviously
21:29:22AraqI mean: there is very little commercial software for linux
21:29:24Skrylarshodan45: shared libs are a wonderful source of bugs ._.
21:30:17Skrylarbut eh, some people like psychosis, so more power to them
21:30:28shodan45Skrylar: hm? you mean the shared libs mechanism? or the libs themselves?
21:30:45SkrylarI'm more critical of a language having no true threading support, or having a dumb GC, because threading is important and GCs without manual control are a recipe for pain
21:31:07SkrylarI'm willing to give up shared objects from a language if it comes with good enough benefits (e.g. significantly faster RTTI systems)
21:31:16Skrylarshodan45: both.
21:31:32Skrylarshodan45: Take Python for instance; they LOVE to break the language even in 0.0.1 updates
21:31:51shodan45Skrylar: errr you must be joking and/or thinking of PHP
21:32:03Skrylarno, i've had a lot of nightmare experiences with pythons
21:32:16Araqby its very nature every change in python, is a breaking change, strictly speaking
21:32:21Skrylar"wait i need this python for that program, this python for this program, then play spin-the-python to see which one i need loaded this minute"
21:32:41shodan45Skrylar: ok... that's not my experience at all
21:34:04Jehan_Araq: Hmm, I can't reproduce the leaks.
21:34:36Skrylarshodan45: there's also the multi-compiler problem of the shared object design
21:34:47shodan45hehe, I've always found it interesting in online discussions when people have completely opposite experiences from myself
21:34:57SkrylarIIRC with C++, the recommendation is to actually use a C function to instantiate C++ objects portably
21:35:11Skrylarbecause they can't agree on what "x = new Foo::Bar()" actually means in assembly
21:35:18Jehan_Oops, with --gc:markandsweep I do.
21:35:38Skrylarshodan45: yeah, 'cause there's a lot of stuff that works for me out of the box that takes other people months to figure out xD
21:35:41Jehan_But only for 4 and 5.
21:35:54AraqJehan_: windows-x86, inux-x86, linux-ppc64
21:36:04Araqmost fail for linux-ppc64
21:36:37Araq--gc:markAndSweep is not what I mean, they fail since quite some time, I think
21:37:25Araqhttps://gist.github.com/anonymous/c737fcbd22db866bbf09
21:37:33Araqhttps://gist.github.com/anonymous/c7273972e68a126a6427
21:37:42Araqhttps://gist.github.com/anonymous/2aa829193d874a70a711
21:39:04shodan45Skrylar: in one instance of "opposite experiences", I eventually figured out that a friend of mine is an idiot, after many cases of "gahh! I HATE $foo!!"
21:39:09shodan45:)
21:40:29shodan45Skrylar: but seriously - PHP absolutely comes in 1st place WRT breaking crap between releases
21:40:57AraqPHP is in a class of its own for everything
21:41:32shodan45(disclaimer: I have MANY years of PHP experience, and I absolutely hate it.)
21:42:09Jehan_Araq: I have no doubt that they fail for you, I'm just puzzled why.
21:43:23shodan45have you guys seen this? https://air.mozilla.org/language-composition/
21:44:14shodan45I thought it was pretty cool, aside from the custom editor thing
21:45:57EXetoCdoesn't work
21:46:23EXetoCright...
21:46:53EXetoCcan't have the same url as referer
21:48:32shodan45EXetoC: you mean the mozilla link?
21:50:10flaviuOf all the languages, they chose python for performance lol
21:52:00shodan45flaviu: hm? you mean pypy? pypy is written in "rpython", not quite the same thing
21:52:21flaviu"HP (Hippy) + Python (PyPy) RPython meta-tracing VM. Even with mixed source files, our performance is better than the stock PHP interpreter"
21:52:48flaviuI'm reading that as "If we write some of the program in python rather than PHP, we get better performance"
21:53:04shodan45flaviu: ahh no, that's not what they meant :)
21:53:05flaviuI don't know how good pypy is though
21:53:18flaviuOh, I see
21:53:41shodan45flaviu: it's quite good, afaik, especially for a dynamic language
21:54:43flaviuI suppose so, although I don't understand the appeal of dynamic typing. Though I
21:54:58shodan45nimrod & pypy are where I go when I feel my brain cells dying from having to code PHP for a living :)
21:55:00flaviu'd rathar not get into that
21:56:40*enquora quit (Quit: enquora)
21:56:47Jehan_Araq: Okay, I can't reproduce it on Linux/x86_64, either. This is with gcc 4.9.0
21:58:40shodan45flaviu: sure, understood... I've done both & appreciate both
21:59:33*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
21:59:44*Demos quit (Ping timeout: 260 seconds)
22:02:52AraqJehan_: ok, does DLL building work for you?
22:04:02Jehan_In a second, I do get a crash with markandsweep on gcleak4 if I modify it a bit, and trying to figure out why that happens.
22:05:29Araq when defined(setStackBottom): # creates a warning
22:05:33Araqand rightly so
22:05:40Araqit needs to be 'declared' now
22:08:12Jehan_Well, when I wrote that, it was still defined. :)
22:08:12Araqand indeed for me bootstrapping fails
22:08:26Araqon win32 here in debug mode
22:09:07Jehan_I was adapting the existing routine.
22:09:46Jehan_Sigh, this Linux machine is poorly setup.
22:10:27Araqugh
22:10:34AraqI "fixed" it and still crashes
22:13:06Jehan_Araq: By DLL building, you mean nimrtl?
22:13:17Jehan_That works for me on both Mac and Linux.
22:13:24Araqthere is a test dll/client.nim
22:14:01dom96[linux-x86 1d19c9525e3b devel] Test diff (5 now fail, 0 now succeed): https://gist.github.com/c7273972e68a126a6427
22:14:06dom96[windows-x86 1d19c9525e3b devel] Test diff (7 now fail, 0 now succeed): https://gist.github.com/2aa829193d874a70a711
22:14:14dom96[linux-ppc64 1d19c9525e3b devel] Test diff (8 now fail, 0 now succeed): https://gist.github.com/c737fcbd22db866bbf09
22:14:18dom96These might be helpful
22:27:07Jehan_Okay, I'm getting an illegal storage access with the DLL.
22:27:21Jehan_In canBeCycleRoot.
22:29:50Araqwell
22:30:08Araqit used to be called in PreMain()
22:30:23Araqnow it's called in nimMain
22:37:34Araqwell ... I made some other change to the codegen ... maybe it's not your patch that breaks my bootstrapping
22:38:31Araqping Varriount_
22:40:50Jehan_Okay, in the DLL case, I have gch.stackBottom == 0.
22:41:43Jehan_Ugh, somehow different code gets generated for DLLs.
22:43:04Jehan_Eh, nevermind. Looking at the wrong file.
22:46:15Jehan_Hmm. How did this ever work?
22:49:18Araqwell check how it is before your patch ;-)
22:49:27Araqmaybe it never worked on your platform
22:49:56Araqtesting DLLs is not really supported by our tester since it requires messing with LD_WTF settings
22:50:04Jehan_Yeah.
22:50:09Jehan_Here's the problem:
22:50:58Jehan_setStackBottom is not defined when useNimRtl is defined.
22:51:32Jehan_This turns initStackBottom/initStackBottomWith into a no-op.
22:52:57Jehan_So stackBottom doesn't get set.
22:53:51Jehan_But: the same problem would have occurred pre-patch, since I copied the initStackBottom implementation and simply gave it a parameter rather than having it figure it out itself.
23:05:10Araqyeah and this has been a patch
23:05:19Araqcode doesn't start like that
23:06:16*Varriount_ is now known as Varriount
23:06:19VarriountAraq: Pong
23:07:33*ome quit (Quit: Connection closed for inactivity)
23:07:39AraqVarriount: can you please "koch boot" for win32 for the most recent devel version
23:08:05VarriountOk.
23:08:21VarriountI'll have to take the builders down.
23:13:50VarriountAraq: Ok, I've recompiled.
23:14:16Araqwith the 32bit gcc?
23:14:23VarriountYes.
23:14:42Araqwith "koch boot"? no release?
23:15:12VarriountOh, you never specified the flags. I used -d:release --stackTrace:on --lineTrace:on
23:15:48*Matthias247 quit (Read error: Connection reset by peer)
23:17:28Jehan_Okay, pre-patch, the setStackBottom code does get generated. Now I'm completely baffled.
23:18:07*nande joined #nimrod
23:19:09VarriountAraq: Ok, done.
23:24:52VarriountAraq: So, why did you need me to do that?
23:26:20Araqbecause it doesn't work for me
23:26:37Araqbut I guess my other patch that cannot possible be responsible is responsible ...
23:27:43VarriountAh.
23:28:47VarriountSo Araq, I was unable to find the memory leak. I'm reduced to making my code iterative instead of recursive. :<
23:29:11*darkf joined #nimrod
23:39:27*Trustable quit (Quit: Leaving)
23:42:40Jehan_Okay, I think I'm finally getting a handle on why the DLL case breaks (or at least have a reasonable idea why). Umm, let's just say, dark compiler magic.