<<18-01-2013>>

00:20:11*q66 quit (Quit: Quit)
00:22:17dom96Not a bad idea.
00:29:22*XAMPP-8 joined #nimrod
00:37:35*comex` is now known as comex
01:54:35*fowl joined #nimrod
06:00:01*fowl quit (Quit: Leaving)
06:13:41*shevy joined #nimrod
06:14:38shevyheya
06:16:11shevyI forgot again
06:16:22shevyhow do I compile nimrod into a specific prefix?
06:16:39shevyI am looking at http://nimrod-code.org/download.html, not sure about the prefix
06:16:58shevyoh wait
06:17:00shevyfound it
06:17:03shevy"There are also install.sh and deinstall.sh scripts for distributing the files over the UNIX hierarchy."
06:17:42shevy sh install.sh /Programs/Nimrod/0.9.0
06:17:44shevyI think that has worked
06:18:33shevyyeah
06:18:39shevythe bin/nimrod seems to work fine
06:46:28*zahary joined #nimrod
06:46:41*zahary1 quit (Read error: Connection reset by peer)
08:50:23*zahary quit (Read error: Connection reset by peer)
08:50:28*zahary1 joined #nimrod
08:56:32*XAMPP-8 quit (Ping timeout: 272 seconds)
09:14:24*Araq_ joined #nimrod
09:39:56*Araq_ quit (Quit: ChatZilla 0.9.89 [Firefox 17.0.1/20121128204232])
09:53:25*zahary1 quit (Read error: No route to host)
09:53:34*zahary joined #nimrod
10:26:24dom96yay shevy
10:26:32dom96Getting back into Nimrod i see :)
10:36:07shevywell
10:36:14shevyI am trying to start with bio-nimrod slowly
10:36:47dom96great. Let us know if you need any help :)
12:21:49*fowl joined #nimrod
13:49:35*q66 joined #nimrod
14:21:34dom96_ponce: I see you've been promoting Nimrod on reddit a bit, awesome :)
14:26:29*Araq_ joined #nimrod
14:27:19*Araq_ quit (Client Quit)
14:32:02_poncedom96: I HATE that influx of false solutions like Go, vanilla C, C2
14:32:16dom96Same.
14:32:19_ponceonly working for my own sanity
14:32:57_poncemoreover, languages which do not support the "STL" style, aka typeclasses, aka concepts... are imho worthless
14:33:00dom96I seem to dislike all C-like languages, so even the syntax bothers me...
14:33:44_ponceand as a codec C++ programmer I'd like to see actual problems being solved :) not imaginary ones
14:33:46dom96And all these languages like to copy C's syntax.
14:33:57_poncedon't forget the comma :)
14:34:32dom96But yeah, syntax is hardly a problem.
14:34:48dom96I just love Nimrod's syntax though :P
14:34:52_ponceC also has ugly integer promotion rules
14:35:38_poncefor me the main problem is not syntax but
14:35:54_ponceI've been hopping from Delphi to ocaml to D to C++ etc
14:36:03_ponceand I must rewrite everything each time
14:36:24dom96hehe, just rewrite it once more in Nimrod ;)
14:36:24_ponceI'd like languages that let express very general algorithm and data structures separately
14:36:51_ponceit's even worse in a team, and there seems to be an offspring problem
14:37:09_ponceeveryone using only the idioms she known or created
14:37:57_ponceso imho there is an ugly social aspect to non-reusable code (only one type of polymorphism), it lead to sofware inconsistency
14:38:01dom96yes. But perhaps strict code style rules can help with that
14:38:38_ponceI don't know. People generally agree on syntax, formatting that don't matter much
14:38:53_poncethen tell nothing about how much abstractions you are allowed to add
14:39:03_ponceor the philosophy of a module or something
14:40:04_ponceso the main thing with Nimrod for me is 1. it support "typeclasses" 2. compile to many target, code would be immortal :)
14:40:32dom96hrm, I wonder. What do you mean by "typeclasses"?
14:41:05_ponceI mean C++ concepts, D static if(isSomething!T), Scala traits
14:41:16dom96You mean templates?
14:41:25_ponceyeah, using them like in STL
14:41:41dom96ahh yeah. I was wondering if you meant like Haskell's type classes.
14:41:50_ponce"a type is an X if it provide operations Y and Z"
14:41:58dom96Nimrod's templates/macros are IMO the best.
14:41:58_ponceno, probably not like Haskell
14:42:21_poncethen write algorithm based on the minimum amount of operations
14:42:27dom96As with #2: I agree, portability is another reason I love Nimrod :D
14:43:26dom96Have you written anything in Nimrod yet?
14:43:57_ponceonly a <canvas> example, so I'm talking out of my ass right now
14:44:07dom96ahh yes. I saw that.
14:44:14dom96Very nice :)
14:44:17_ponceand I've compiled Aporia, that's about it :|
14:44:56dom961. Make more things! 2. Blog about them! 3. Spam reddit! 4. ??? 5. Profit :P
14:45:53_poncewill do
14:46:10_poncewhat's your background?
14:46:20_ponce(languages etc...)
14:47:18dom96Started with VB.NET when I was quite young, then took up Python, moved to Haskell and then I found Nimrod.
14:47:35_ponceso you quitted haskell?
14:47:36dom96(Also i'm working part time for a company which uses C#)
14:47:41dom96yeah
14:47:58dom96The functional purity drove me insane :P
14:48:21_ponceeh
14:49:01dom96once I reached monads I decided it was not the language for me.
14:49:34_ponceI never understood monad (let alone what they would be useful for) yet I was taught by compiler implementers etc
14:50:04_ponceF# had very impressive exemple of a parallelizing monads, also very clever parsers
14:50:13dom96yeah, I still don't quite understand them.
14:51:08dom96what do you think of Aporia btw?
14:51:19_poncetbh I won't use it
14:51:25_ponceI'm happy with Sublime Text
14:51:36dom96blasphemy :O
14:52:04_poncethe most important single feature in ST is _multiple cursors_
14:52:24_ponceit's way better than vim column-mode
14:52:30dom96I was thinking about implementing a similar feature in Aporia
14:52:33_ponceif Aporia has it then I might switch :)
14:52:50dom96Maybe it will happen for the next version :P
14:53:38dom96Any other features you like in ST?
14:54:01_poncedefault color scheme is good
14:54:12_ponceand that's about it
14:54:16_ponceit reasonably fast
14:54:22_poncebut unable to open large files
14:55:18_poncemultiple cursors shine best when writing library bindings
14:55:22_poncelots of repetitive lines
14:56:42_poncethat said most of my programming life happen inside Visual Studio for the debugger
14:57:27dom96ahh
14:57:47_poncewhen I have to actually edit text, I switch to ST
14:59:09_poncegot to go, later+
15:00:12dom96see ya
16:39:33*XAMPP-8 joined #nimrod
17:29:02*zahary quit (Ping timeout: 252 seconds)
17:33:17*gradha joined #nimrod
17:37:06*zahary joined #nimrod
17:51:05*gradha quit (Quit: Leaving)
17:51:19*gradha joined #nimrod
17:52:12dom96hey gradha, what's up?
17:52:49gradhayo yo yo, dom96!
17:53:08gradhahaving a bud, coding in nimrod
17:53:19dom96cool cool
17:53:30gradhaactually I'm eating chocolate, alcohol is bad for health
17:53:47dom96hah! I'm eating chocolate too!
17:54:20dom96And trying to code and watch Friends at the same time.
17:54:36gradhatoday I'm celebrating I'm awesome, so I picked some orange filled dark chocolate, I'll be trying to release epak officially through babel soon
17:55:15gradhaneed to test the compile pragma Araq suggested, maybe that will avoid a previous C lib install
17:55:25dom96awesome
17:56:27*dom96 is going through his Aporia todo list
17:57:03dom96Also plotting to spam reddit with lots of Nimrod blog posts
17:58:07gradhathis reddit thing, I've never understood it, is there any manual on how it works? I only see meaningless random text lines and hyperlinks in tree willing to outgrow the width of my screen
17:59:16dom96It's ok, stay away from it, or you will be unable to be productive for the next few years.
18:00:08gradhadon't worry, I know how to waste time, just today I was thinking of benchmarking command line parsing libraries
18:01:11dom96lol
18:02:01gradhabut then it struck me, bash already introduces some glob expansion, so it wouldn't be fair across platforms
18:02:11gradhaan then you realize: wait, who the hell CARES?
18:05:35dom96I'm sure someone out there would care
18:06:55gradhaso searching reddit for nimrod gives me a 3 yeard old link, with people saying Araq has bad taste for being case insensitive
18:08:50dom96yeah, some people are silly...
18:10:23gradhahehe, at least some comments are funny, wrt lisp macros: "I heard you like programming so I put a language in your language so you can code while you code!"
18:12:24gradhaso, isn't reddit like slashdot without the incendiary summary?
18:12:36gradhaat least forces the people to follow links by not saying much about them
18:15:39Araqaporia should finally get that "render the AST as you feel like" feature
18:16:09Araqso these silly arguments about code formating finally stop
18:16:12Araqit's pathetic
18:16:29gradhaoh, I thought you meant interactive helpers for macro development
18:16:50gradhalike, typing something, then Aporia expanding what would the compiler spit out
18:18:06dom96even if aporia gets that feature people will say they don't like languages which depend on IDEs.
18:18:28dom96People always find something to complain about.
18:18:42gradhathat's why we can't have nice things <insert funny lolcat here>
18:18:47reactormonkdom96, come on, if you can get the same functionality in vim and emacs
18:18:53reactormonkapropos...
18:19:42Araq*everybody* uses a kind of IDE
18:19:50Araqnobody codes in notepad
18:19:58dom96That's true.
18:20:37Araq"right tool for the job" :P
18:20:45Araqthat's what these people love to say :P
18:21:08dom96http://www.reddit.com/r/programming/comments/16t9qf/go_a_nice_language_with_an_annoying_personality/c7z61zm
18:21:08gradhanotepad does it's job very poorly, which is advertising you need word
18:21:58dom96That would their new argument :\
18:22:01dom96*would be
18:22:50*shevy quit (Ping timeout: 255 seconds)
18:24:15gradhaactually, does notepad still exist in recent windows incarnations? is it a tile in windows 8?
18:24:38dom96It exists in Windows 8. Not sure if it's a tile though.
18:26:09gradhaI imagine people confusing the "notepad tile" with the "twitter tile" and wondering why their mental farts are not being published on the internet
18:26:46gradhaalso, what's this question asking me to save my tweet? aren't they saved on the internet? Jeez...
18:27:02*zahary quit (Ping timeout: 252 seconds)
18:29:15gradhaAraq: the compile pragma works only with single file C, right? that's why you suggested concatenating all C files
18:29:32*XAMPP-8 quit (Ping timeout: 252 seconds)
18:30:39Araqright, but nothing stops you from using multiple compile pragmas ;-)
18:31:00AraqI only concatenated them for convenience
18:31:09Araqno header files to distribute etc.
18:31:47gradhathe libtcc.c example from compiler/tccgen.nim has an #include, so I guess they are relative to the C's source path
18:32:55AraqI'm thinking of pcre_all.c
18:33:22reactormonkAraq, btw, how do you solve coariance?
18:34:06Araqargh, evil question, I always mix them up
18:34:35Araqcovariance and contravariance are evil, ok?
18:34:51*shevy joined #nimrod
18:34:54reactormonkcovariance is when you have e.g. seq[T] and U which is a subtype of T, covariance implies that seq[U] is a subtype of seq[T]
18:35:24Araqneither is sound with value types anyway
18:36:04reactormonkI'm not that good at type theory - why are value types different?
18:37:11Araqsay you have int16 <: int32, neither array[int16] <: array[int32] nor the other way round holds
18:38:41Araqit's not compatible "under the hood", the type conversion for arrays needs to copy all elements
18:38:48Araqso why do it implicitely?
18:38:56reactormonkfor objecet types?
18:39:04Araq*implicitly
18:39:25reactormonknote, covariance is no type conversion, but rather for type checks
18:40:22Araq*shrug* 'distinct' doesn't create a subtype relation either
18:40:52Araqso it only affects 'ref object' with inheritance which I almost never use
18:43:40Araqthis means nimrod is unlikely to support it very soon as I don't care :P
18:45:38reactormonkfine enough
18:45:50AraqC# only allows co-/contravariance in interfaces btw
18:45:54*^libman quit (Quit: leaving)
18:46:04Araqs/in/for
18:46:21Araqyou may want to read why that is ... ;-)
18:46:30reactormonkdon't bother too much
19:05:23Araqgradha: the macro expansion feature for an IDE is a good idea too :-)
19:08:57gradhait would be a special "macro interactive" mode, where the code you write gets executed and you see the generated nimrod code, and from inside aporia you can jump to it like normal code or check its docstrings
19:09:20gradhait would be nice for newbies, because you can start with a normal macro wich does the equivalent of a noop
19:09:49gradhabut this expands to the whole going-through-function-parameters and whatever the compiler is doing internally
19:10:25gradhaso you can easily see what is the compiler generating and jump with aporia through code to see "what is this fourth parameter doing"
19:10:43gradhawhich you said didn't like very much, because the APi was semi-fixed
19:10:53Araqalternatively we could clean up the AST ... *cough*
19:11:17Araqthe API was rushed and then never changed and now code depends on it :-)
19:12:14Araqlike the rest of the world does it :P
19:14:33gradhaI'm sure dom96 is taking notes to implement this super cool in-editor-in-macro-interactive-expansion-mode
19:15:10dom96of course :D
19:29:54*gradha quit (Quit: Leaving)
19:32:01reactormonkAraq, deprecation?
19:32:16Araqyeah but later
20:12:41*zahary joined #nimrod
20:58:08*codeallergy joined #nimrod
20:59:10Araqhi codeallergy
21:00:39dom96codeallergy: welcome to #nimrod!
21:01:00codeallergyhi!
21:03:23*gradha joined #nimrod
21:03:54gradhanice nick codeallergy
21:05:55Araqgradha: are you polling the logs? ;-)
21:06:11gradhano, just came from gym/shower
21:06:34gradhabtw, made a hole in the floor, yay me
21:08:31Araqare you talking about some sexual thing here now?
21:08:58Araqsorry, couldn't resist ... :P
21:09:05gradhano, was removing weighs from the bar and forgot to lock it
21:09:09dom96guys, we have guests.
21:09:14dom96:P
21:09:33gradhawhen one was left it fell over to the other side and made a 1cm hole
21:10:20gradhaI guess they make safety locks for something
21:11:10Araqsounds like a poor floor for a gym
21:11:48gradhait's the kind of cheap community room with a few machines and weights, real gyms can sustain more damage
21:12:59gradhaapropos holes, https://github.com/Araq/Nimrod/pull/306 looked like a hole to me, want to discuss this?
21:16:05AraqI don't get it
21:16:19gradhathe types seem wrong at the nimrod level
21:16:27reactormonkzahary, https://github.com/Araq/Nimrod/issues/309
21:16:42Araqsrand(unsigned seed) means unsigned int
21:16:43dom96I see you took my advice :)
21:18:28gradhasrand48 is suposed to accept a long
21:18:52gradhabut nimrod defines it as cint
21:19:13gradhadoing "echo high(clong)" on my machine shows 9223372036854775807, so it doesn't match?
21:19:26gradhaecho high(cint) shows 2147483647
21:19:45gradhamy conclusion is srand() is wrong, or srand48() is wrong
21:20:00gradhaa final third possibility I just reached is my knowledge of C types is wrong too, could be
21:21:24Araqoh I see
21:21:43gradhalong story short: do I update srand48 to use clong?
21:22:08Araqsure why not if that's what the C standard says
21:22:30Araqcan't see why you need srand48 though
21:23:25gradhaI didn't even know it existed, just noticed it when I went in to add randomize(int), and nimrod's type system warned be about passing an int to srand48
21:23:29gradhaso you can blame nimrod
21:27:44Araqand I thought we already have a way to set the initial seed of the random number generator
21:28:11gradhayes, but you can't use that to seed the same value for unit testing
21:28:26Araqdon't call 'randomize' at all then :P
21:28:52gradhathen the numbers would be actually random...
21:29:08Araqthey won't differ from run to run
21:29:11Araqthen
21:29:31Araqbut *shrug*
21:29:34gradhabut I can't go back and repeat the tests without creating a new process, can I?
21:30:09Araqthat's a good point :-)
21:33:40gradhahmm... I'll add a note about the random numbers not being cross-platform portable, you need the same implementation if you plan on doing random stuff on multiplayer games to reduce bandwidth
21:34:44Araqdunno a stdlib's 'rand' is overengineered for a game anyway I think
21:35:03Araqit often trades performance for better "randomness"
21:35:15Araqsomething which is questionable for a game
21:35:15gradhayes, game random generators seem to be less security inclined
21:36:14Araqimplement a 'fastRand' in pure Nimrod that's cross-platform portable
21:37:56*codeallergy quit (Ping timeout: 260 seconds)
21:41:00gradhacould try http://stackoverflow.com/a/1227137/172690 as a babel lib
21:42:39Araqlooks good; make sure it's thread safe though
21:43:11gradhaoh, threads, haven't reached that point in nimrod, are they good?
21:43:11Araqthough thinking about it races may be even better for randomness ;-)
21:43:38Araqgood enough for nimbuild and aporia at least
21:43:42dom96gradha: Don't be silly, everything in Nimrod is good.
21:43:50dom96:P
21:44:07gradhasure, they could be excellent, and after that, superduper, and...
21:44:38gradhait all depends on whether you are using the imperial or metric awesomeness system
21:45:54gradhaare the aporia threads native to nimrod or does gtk use some sort of C level threads and perform callbacks on your code?
21:46:18dom96aporia uses native nimrod threads.
21:46:25dom96i.e. it doesn't use GTK's threads at all.
21:46:59dom96Now to test first class iterators :O
21:47:38*XAMPP-8 joined #nimrod
21:49:54gradhaoh, you need to compile with --threads:on? what does happen if you don't use that switch? coroutines?
21:50:20Araqif you don't use that switch you have no threads
21:50:37Araqthe compiler complains about an unknown 'TThread' type then
21:51:02gradhabut I compiled aporia without the switch, shouldn't it have failed compilation then?
21:51:25dom96gradha: --threads:on is specified in aporia's nimrod.cfg file.
21:51:32gradhaoh, clever
21:51:40dom96indeed :D
21:53:15Araqhttp://xkcd.net/221/
21:53:46gradhaone of stackoverflow's answers did embed that gif
21:54:11dom96hah, look at the alt text of that image
21:54:23dom96"RFC 1149.5 specifies 4 as the standard IEEE-vetted random number."
22:00:18dom96Araq: Is there like a 'next' function that I can use on iterators?
22:01:24Araqwhile not finished(iter): let x = iter(...)
22:01:33Araqto 'nest' it just invoke it
22:01:36Araq*next
22:02:31dom96oh, I see what i'm doing wrong.
22:03:54dom96why is the iterator not considered finished after it's invoked (when the iterator only has 1 yield)?
22:04:45AraqI think it is?
22:05:09dom96https://gist.github.com/0badc2f5e4cd9f4bed48
22:05:54dom96after line 8 is uncommented it echos true
22:06:17Araqhrm I wonder why my tests didn't catch this ...
22:06:50dom96no worries
22:06:59dom96but fix it please :P
22:07:14Araqmaybe I'll change the spec instead :P
22:07:34Araqthere is usually a good reason for these things under the hood
22:07:38dom96I don't think that's wise :P
22:08:08Araqwhat happens when you use a1 in a for loop?
22:08:17Araqdoes it yield 1 twice?
22:09:02dom96no.
22:09:06dom96once.
22:09:10Araqsee? :P
22:09:37reactormonkAraq, could I go write a lib so I can write iterations functional like in ruby?
22:09:47dom96am I suppose to use some special trick to determine whether the iterator is in fact finished?
22:10:08reactormonkI have to admit my knowledge of how to pass a piece of code in nimrod is a bit smalley
22:10:34dom96Araq: btw if I invoke x() again, it yields 0 not 1.
22:10:49Araqafter it's done it's undefined
22:10:52gradhareactormonk: how does the ruby code look like? recently I updated the docs of sequtils, it contains some basic functional procs on sequences
22:11:27Araqreactormonk: you can try but most 'items' iterators in system are not first class
22:11:40reactormonkAraq, now that sucks balls
22:11:46dom96Araq: Please tell me how to use this as it is currently designed if you plan to keep it this way, because I have no idea.
22:11:48Araqso the way to go is to use templates
22:12:00Araqsequtils has some examples like gradha said
22:12:20Araqand btw it doesn't suck balls, it's cool if you care about performance :P
22:12:30reactormonkgradha, foo.keys.map { |attr| attr.to_s }.sort
22:13:00reactormonkalthough you could also write that as foo.keys.map(&:to_s).sort
22:13:41reactormonkAraq, touché
22:14:11gradhaI've done pretty much that recently, you have to type more due to lack of special syntax like ruby has
22:15:07reactormonkI can live with that
22:15:18Araqit'll get better though
22:16:21gradhahere's a line of code I'm using "var chunks = int_list.each do (x: int) -> string : key_value_table[$x].str"
22:16:41gradhathat uses the each proc for mapping
22:16:57gradhathen uses the do-notation to specify the anonymous proc to be invoked for each item
22:16:59Araqmake a pull request please for 'map' please btw
22:17:50Araqit's misguided to try to use better names than map and fold
22:18:26gradhareactormonk: if you have the latest git checkout the sequtil docstrings provide some more examples with different notations
22:19:15gradhaAraq: won't an each/map change trigger a lot of changes and break stuff?
22:19:39Araqyes that's why you don't simply rename it
22:20:02Araqbut copy and paste and modify the name to be 'map' and deprecate the 'each' declarations
22:20:12dom96You can also look at the nimbuild docs which are always up-to-date: http://build.nimrod-code.org/docs/sequtils.html
22:21:22gradhanice, maybe a link to github version could be added to http://nimrod-code.org/documentation.html
22:23:34Araqreactormonk: in general: just use a template to pass a body of code around
22:23:57gradhabtw, any plans to deal with docstrings for procs defined for specific platforms? would it be possible to run the comment extractor for all possible branches and then mark what platform/define do they exist?
22:26:14dom96Araq: so any ideas about that first class iterators issue?
22:26:23Araqdom96: looking into it
22:26:28dom96thanks
22:27:15Araqdom96: can you work around that issue for now?
22:28:04Araqif you look at my "simple tasking" example you see that the iterator performs some action after its last 'yield'
22:28:06dom96Sure. I can figure something out. Is this expected behaviour?
22:28:31Araqso only after 'echo "a1: D"' has been executed the iterator is finished
22:28:55Araq'yield' is supposed to perform some task switching in the example
22:29:21*gradha quit (Quit: Leaving)
22:29:25Araqso if you only have 'yield 1' in the body control needs to come back once more for the iterator to be finished
22:29:55Araqso I'm not sure if it's a bug or a design issue
22:30:30dom96hrm, I see.
22:30:53dom96Well I think that as soon as the last yield in that iterator is executed the iterator should be finished.
22:31:55dom96however then the problem is that if you have something else after the last yield, it will not be executed
22:32:02Araqyeah
22:32:39dom96but in the current design 'finished' is simply misleading I think.
22:34:14Araqperhaps it's a simple codegen bug ...
22:34:18dom96maybe the iterator should instead be considered to have "finished" when it 'returns'?
22:34:37dom96if you know what I mean?
22:34:58dom96i.e. when the last line of the iterator is executed.
22:35:03Araqbut that's what it does now
22:35:15dom96it doesn't with my example
22:35:18Araq'yield 1' is not 'return 1'
22:35:59dom96hrm, this may work.
22:36:32dom96but perhaps the last 'yield' should be considered a 'return'?
22:36:57AraqI'm still not getting it 100% so just be patient please
22:37:08Araqit's been a while and I have a headache :P
22:38:00dom96np
22:55:56Araqdom96: this works:
22:56:05Araqwhile true:
22:56:06Araq let y = x()
22:56:08Araq if x.finished: break
22:56:10Araq echo y
22:56:27Araqand that's what the 'for' loop does, so yeah there is a bug
22:56:47Araqthe 0 is produced but not echo'd
22:56:51dom96I see.
22:56:57dom96So will you change this behaviour?
22:57:09Araqyes
22:57:31Araqmight be easy to fix
22:57:42dom96cool
22:58:03Araqbut then it might also be impossible
22:58:12dom96not cool :P
22:58:38Araq"the last yield is implicitly a return"
22:58:50Araq"except when it isn't"
23:10:58Araqdom96: looks impossible to fix, need to sleep over it
23:11:48dom96awww too bad.
23:12:05dom96but yeah, do sleep over it.
23:12:40Araqas I said "yield" means "return this value and continue back here"
23:13:06Araqso a body of "yield 1" continues with an empty statement
23:13:20Araqwhich is the 0 that you encounter
23:13:31Araqand only after that it's finished
23:13:54Araqyou want the yield to mean "yield 1 and be done" which is "return"
23:14:41dom96alright. I think I get it.
23:14:54Araqbut then the 'for' loop transformation doesn't adhere to this :-/
23:15:10Araqso hrm
23:15:18dom96yes, that's true. It is quite misleading :|
23:16:43Araqon the other hand ... it transforms it into the 'while' loop I gave above
23:16:54Araqso perhaps good docs are all that's necessary
23:17:30Araqmy original design didn't even support 'finished' really
23:17:58Araqiterators were supposed to run endlessly when not invoked from a for loop
23:18:29AraqI mean they would *always* produce the last value when done
23:19:02dom96Well I think "finished" is currently wrong.
23:20:04dom96I might as well use some value as the terminator.
23:20:20Araqyeah but that's not always avaliable
23:20:31dom96yeah, exactly.
23:20:35Araqindeed that's what the implementation kind of does
23:22:46dom96So yeah, I think it is better if this is fixed. Principle of least surprise and stuff :P
23:23:38Araqthat's just a saying for "works like in ruby" :P
23:23:49Araqor perhaps "works like in JS"
23:24:56dom96perhaps :P
23:25:40Araqbtw ruby uses names like "upcase", "downcase" and "rescue" so POLS my ass
23:26:10dom96and JS doesn't even get == right :P
23:26:11Araqnot to mention that it gets scoping rules wrong
23:26:26dom96or was that PHP, I can't remember now :P
23:40:35reactormonkcan I use int as a long (at least in JS)?
23:44:20AraqI think so
23:53:38reactormonkand float as double?
23:53:55Araqsure