Index

Show enters and exits. Hide enters and exits.

00:03:07rue10.5.7 is available
01:01:16ddub10.5.7 is overrated
01:29:37rueAlready?
01:48:29boyscout1.8.7: StringIO (optional block) - 6c3f46e - Marc-Andre Lafortune
01:48:29boyscout1.8.7: ARGF (optional block) - 7517225 - Marc-Andre Lafortune
01:48:29boyscout1.8.7: Method#name, #owner, #receiver (new) - 232c44d - Marc-Andre Lafortune
01:48:29boyscout1.8.7: UnboundMethod#name, #owner - 3757cfc - Marc-Andre Lafortune
01:55:32boyscoutCI: 3757cfc success. 2679 files, 10335 examples, 32880 expectations, 0 failures, 0 errors
03:29:57tarcieriyo
03:30:12tarcieridid you guys see the CUDA thread on ruby-talk?
03:34:32slavahi tarcieri
03:34:39tarcierisup slava
04:13:29wycatshow do I run the specs?
04:13:57tarcierirake ci?
04:16:12wycats:)
04:16:23wycatschecks out rubyspecs :)
04:18:14wycatsDon't know how to build task 'ci'
04:21:49tarcieri:/
04:24:20wycatstarcieri: thoughts?
04:25:32tarcierii am not sure?
04:25:36tarcierifrom the rbx repo?
04:25:43wycatsahhh bin/mspec ci
04:25:49tarcieriaah
04:26:08tarcierihasn't pulled rbx in awhile
04:30:25wycatshehe
04:49:43wycatstarcieri: where's the right place to submit patches?
04:52:33tarcierisubmitted his here... then got commit access :/
04:52:49tarcieriyou could post on the google group maybe?
04:55:24tonylahttp://github.com/evanphx/rubinius/blob/e6240bbbeaf52905bee9f767be842282efab5b22/doc/howto/fix_a_f ailing_spec.txt
04:55:38tonylai'm new but that says to upload it to a lighthouse ticket
04:56:10wycatstarcieri: once upon a time I had commit
04:56:11wycats;)
04:56:21wycatsI think I lost it with the switch to github
04:56:35tarcierio
04:56:38tarcierijust ask then
04:57:02wycatsyo evan: can I have commit?
04:57:15wycatsjust fixed a Kernel#extend bug
04:57:19wycatsthere are only 4 specs =-o
04:57:27wycatsand one of them failed =-o
04:58:19tarcieriheh
05:17:28wycatstarcieri: how am I supposed to recompile changes so they get included in a spec run?
05:17:40wycatsthe rbc's that is
05:50:54craftermgday all!
06:09:18tarcieriwycats: I don't know :/
06:09:26tarcierilike
06:09:29tarcierithey should check mtime
06:09:37tarcieriand automatically recompile when loaded
06:09:38tarcieriI believe
06:10:41slavafactor caches compiled code in an image and there's a word which reloads any source files which have changed on disk. its really handy
07:07:27ddubchecks git to see if the robots and unicorns branch has been made yet
07:07:43ddubdoes a git checkout rainbow-laserbeams
07:32:48tarcieriheh
07:36:55tarcierirobots don't necessarily have laser beams... that's a misconception
07:37:04tarcieribut robots are able to tap into UNICORN POWER
07:48:00ffwonkotrue story
07:48:27tarcieriquite
09:47:57ruewycats: `rake build` (clean firsnt in some cases)
09:48:11rueFirst*
13:14:15scooprooh yeah http://www.e-booksdirectory.com/programming.php
18:24:52rueHm, weird
18:42:53luislavenahey guys, quick question.
18:43:29evanluislavena: hey!
18:43:32evanwassup?
18:43:58luislavenaevan: hey man, is there are reason why libev is 3.48 ?
18:44:38luislavenaevan: win32 support of if is not good compared to 3.6
18:44:53luislavenacannot comment further what he has been doing.
18:46:53evanin rubinius?
18:46:54evanno reason
18:46:59evanwe're not actually using libev much anymore
18:47:04evansince the switch to stackful
18:47:24evanbut I intend to allow for it's usage again eventually
18:51:29luislavenaevan: oh, but when executed rake -T the depedency is being checked to be built.
18:51:38luislavenaevan: that was my noob question.
18:52:12luislavenaevan: other noob question.
18:54:02evansure
18:54:05evanit's being built
18:54:07evanand linked
18:54:09evanbut not used
18:54:47luislavenaevan: ah, cool then.
18:55:04evanluislavena: hows things?
18:55:12luislavenaevan: overwhelmed by work :)
18:55:42luislavenabesides that, everything is good.
18:55:47evangood!
18:58:50luislavenaevan: what about you?
18:59:20luislavenaevan: how rubinius is coming? when a 1.0 release? (or at least nightly builds) :D
19:03:24rueluislavena: I have not updated the included libev since 3.48 :P
19:03:57luislavenarue:
19:04:06luislavenarue: I see, but no problem ;-)
19:27:35slavaluislavena: does libev use windows io completion ports yet, or is it still calling lame-ass winsock select()?
19:28:01evanslava: probably using select()
19:28:13luislavenaslava: I can bet that still calls lame-ass winsock2 select() :(
19:28:21rueYes
19:28:50luislavenaslava: haven't this kind of things solved in libraries like boost ?
19:29:13luislavenaslava: I mean, instead of using plain posix or NT API, rely on those IO libraries?
19:30:25slavaI don't think there's a good abstraction layer for all that yet
19:30:35slavalast I looked at libev and libevent neither one was satisfactory
19:30:58ruelibev is good, except for the IOCP support
19:33:05slavarue: its also missing OS X CFRunLoop support
19:37:08rueMm, yep
19:38:34slavatook me way too long to implement all this crap for every platform
19:38:45slavaand i still don't have non-blocking SSL sockets on windows
19:39:00slavait should be easier
19:39:24slavalinux's insistence on using epoll instead of kqueue is kind of moronic too, its just NIH since epoll is almost the same
19:40:02scoopruh, so in total, how many different ways there are to do the same thing currently?
19:40:17slavayou mean non-blocking i/o in general, or in rubinius?
19:40:23scooprin general
19:40:30slavaevery OS has several overlapping APIs
19:40:40scooprnice =)
19:41:00slavaeverybody has select() in some form, but it sucks, linux has epoll, bsd has kqueue, os x also has the core foundation run loop stuff, windows has two more APIs and one of them is shit
19:41:24slavathere's also async i/o apis of various sorts
19:41:52scooprif you have mostly done the work on all of those, could you separate that part in to a separate lib, or is it factor-dependant code?
19:42:14slavathe code is pluggable and modular and all but its written in factor
19:42:25scooprah right
19:42:53slavait was one of the first things I did with ffi
19:43:54slavato avoid infinite regress in bootstrap, I have the VM export some simple wrappers around fopen()/fread()/fwrite() that are only used to load the source for the 'real' I/O implementation
19:44:07slavarubinius could take a similar approach eventually, instead of baking I/O into the VM
19:45:35boyscoutUpdated CI frozen specs to RubySpec 897ddcd3. - e9f6598 - Yehuda Katz
19:45:36boyscoutMake Dir.glob much faster - 2e898ea - Yehuda Katz
19:45:56luislavenaslava: interesting approach, do you have something online that I can peek?
19:46:35slavaluislavena: all the code is in http://gitweb.factorcode.org/gitweb.cgi?p=factor/.git;a=tree;f=basis/io/backend;hb=HEAD
19:47:27luislavenaslava: awesome, thank you.
19:47:57boyscoutCI: 2e898ea success. 2684 files, 10335 examples, 32880 expectations, 0 failures, 0 errors
19:55:03tarcieriwants a self-hosted compiler :(
19:55:30brixentarcieri: for a small fee..
19:56:18slavatarcieri: I'm not sure self-hosting is a worthy goal in itself
19:56:28slavaif it makes things simple, sure, but as a matter of principle its probably not a good idea
19:56:35tarcierislava: but if I don't, I have to write the compiler in Erlang :(
19:56:59slavaother than the factor parser being written factor, its not really self-hosting
19:57:24tarcierislava: I'm really sick of the Erlang-based compiler :/
19:57:36slavais Erlang painful for this task or something?
19:57:53slavawhen you say compiler you really mean parser, right, since you're not really doing any optimization or code transformations?
19:57:59tarcierisingle assignment sux
19:58:01slavayou're just parsing reia and dumping beam bytecode?
19:58:05tarcierino, I mean compiler
19:58:12tarcierithe thing that translates the parse tree into Erlang code
19:58:17slavaoh ok
19:58:36tarcierianyway, loonch!
19:58:47slavatarcieri: if you want to see pain, go look at javascript compilers implemented in C++
20:05:15luislavenais funny, but FreeBASIC (yeah, basic) is self hosted parser and compiler.
20:05:29luislavenaand it's BASIC! if basic could do it ... :P
20:05:33luislavena(you get the idea)
20:24:33rueevan: What was the plan with the LLVM distro? Does not look like llvm-jit includes it
20:27:50evanrue: yes, it's been removed
20:27:52evannot sure yet
20:28:20rueSo just uses the system version if it exists?
20:28:28evanwell
20:28:32evanyou need to use the svn version
20:28:55rueHm
20:28:59rueinstalls SVN
20:29:08evanwith http://github.com/evanphx/llvm-patches/blob/master/jit-info.diff applied
20:29:29evani'm working to get that patch committed
20:29:40evani was hoping to get it committed today
20:29:42evanbut not yet.
20:30:26rue...On the eight link to the SVN version now.. :P
20:31:35boyscoutA mild refactoring - 7af8b85 - Evan Phoenix (llvm-jit)
20:31:35boyscoutSync with latest jit-info patch - 9df5c8c - Evan Phoenix (llvm-jit)
20:31:49rueDid you find out who has github.com/rubinius? I thought we set it up at some point
20:32:36evanno
20:32:37evani need to
20:33:31rueHu, weird, apparently a semi-active user
20:33:36brixenI messaged the account, got a response
20:33:57brixenSorry I had this nick already before ruby and rubinius was so popular
20:33:57brixenBut as a fan of rubinius as a vm for ruby i would love to donate my account to the project
20:34:00brixenso let me know, it even does not fit to the projects that i have in mind to put on github....
20:34:03evanwhat was the response?
20:34:04brixenerg
20:34:07evanno wa
20:34:10brixenhttp://gist.github.com/111234
20:34:12rueHaha
20:34:13evanno fucking way did have that nick
20:34:17brixenyeah
20:34:19brixenexactly
20:34:31evanbefore rubinius existed
20:34:34evanit's a fucking made up word.
20:34:40brixenheh
20:34:42headiusso is headius
20:34:50rueWell, theoretically someone could have made it up too
20:35:04rueBut there is a slim chance they never noticed it in the last, what, 3 years :P
20:35:17evani suppose that i could be killed by a quark storm right now too
20:35:22evanbut it's pretty fucking unlikely.
20:35:31rueWell, 50/50 chance
20:35:40rueEither you are or not ;)
20:36:28rueAgh. It takes forever or so to even checkout LLVM
20:36:37brixenI should ask if he's got anything with a date on it before oh nov 2006
20:36:56rueNah, should leave the poor guy/gal alone :P
20:37:21headiusevan: you mentioned the other day that there are still things busted in 1.8.7...what are they?
20:37:33headiusI think in JRuby 1.4 we're just going to flip the bits and make 1.8 mode 1.8.7
20:37:55evanheadius: i dunno what they are
20:37:57evanthats the problem
20:38:00evanbrb
20:38:08headiusnobody's been able to say, even though ruby-core asked
20:39:36rueheadius: Do you have any plans for 1.8.8?
20:40:19headiusnot right now
20:40:28headiusI guess they merged some of the parser changes
20:40:36headiusother than that I haven't been tracking it
20:56:49PierreYhi guys !
20:57:07PierreYFinished in 324.439925 seconds
20:57:08PierreY2684 files, 10328 examples, 32859 expectations, 0 failures, 0 errors !!!!!!! yeah !
20:57:56brixenPierreY: cool! what platform?
20:58:13PierreYrubinius 0.11.0-dev (ruby 1.8.6) (9df5c8cb9 12/31/2009) [x86_64-unknown-linux-gnu]
20:58:36brixenwhat distro?
20:59:07PierreYubuntu x64
20:59:08rueEmm.. what is the svn command to apply the diff? :P
21:00:51brixenI just use patch for diffs
21:36:31dgtizedwhere do we get our definition of RBASIC?
21:37:14dgtizedin capi I mean?
21:38:28rueI do not think we do :)
21:39:12dgtizedthe compiler is not reporting that the definition of RBASIC is missing, it just doesn't seem to know how to dereference from it correctly
21:40:19dgtizedI was trying to test the algorithms gem
21:40:23dgtizedand got this:
21:40:25dgtizedrbtree.c: In function ‘rbtree_compare_function’:
21:40:25dgtizedrbtree.c:295: error: invalid type argument of ‘->’ (have ‘int’)
21:40:43rueMight it be possible that it is including the *actual* ruby.h somewhere?
21:41:10rueLooks like zlib uses it too
21:41:40dgtizedyea I was confused on that too, I did a git grep, and only found it there
21:43:28rueMake sure all the #includes are capi/ruby.h, not just ruby.h
21:44:03dgtizedin the gem?
21:44:18rueWell, ideally you should just be able to double-check the -I
21:44:45dgtizedthe -I is for . and for the capi directory
21:44:57dgtizedand there is no ruby.h in .
21:45:02rueHrm...it uses <ruby.h>, right?
21:45:22rueBy and large, the angle brackets mean a system include dir lookup
21:45:24dgtizednope "ruby.h"
21:45:26dgtizedyea I know
21:45:58rueThere are a bunch of <ruby.h> in the sources. Humm.
21:46:37dgtizedyea so it's pulling in our ruby.h, and then maybe getting an mri ruby.h from there somewhere?
21:46:41dgtizeddo we want that?
21:47:30rueProbably not, no..
21:47:34dgtizedbet you if we change zlib include <ruby.h> to "ruby.h" it breaks
21:47:43dgtizedwell depending on load order anyway
21:48:14dgtizedI also note that every one of the capi test includes uses <ruby.h> instead of "ruby.h"
21:50:04rueSee what happens if you change all those.
21:50:32headiusI like QBASIC better
21:50:54rueBlitz Basic
21:50:58dgtizedheadius: personally I liked Commodore Basic 7.0
21:51:24dgtizedheadius: as you didn't have to mess with all the poke codes like you did in 2.0
21:52:00headiusI only used basic when I was about 8, so I never really did much peeking and poking
21:52:59dgtizedI used basic from 8 - 12 or so, in commmodore basic 2, if you wanted to change the output colors you had to poke a foreground / background / border color in order to change it
21:53:44dgtizedsame for initializing the SID chip to put out audio
21:54:51dgtizedheh, I bet you we couldn't even fit the rubinius runtime into 64k
21:55:19headiusnot counting the kernel, maybe
21:56:52dgtizedrue: do you know if the the spec/capi/ext specs were written to link against both capi AND mri ruby.h?
21:57:08dgtizedrue: because i bet you that's why they use <ruby.h> and not "ruby.h"
21:58:49dgtizedcome to think of it, I'm not sure if capi specs are included during the vm specs pass
21:59:03rueI suppose it could be possible, but "" is the correct way
21:59:07brixendgtized: of course they're written to run against both
21:59:19brixenbut you should not need the <ruby.h> form
21:59:25brixenI'm not sure why that was used
22:00:19brixenthey don't all use it, so you should try changing the <ruby.h> ones
22:00:41brixenI know I specifically used "ruby.h" in language_spec.c
22:01:22brixenhowever, since this normally is working, I think this is a red herring...
22:02:08ruePossibly working
22:02:16brixenyou probably are not using the right include path when building your ext
22:02:32brixenrue: how possibly?
22:02:38brixenthe ci specs run every commit
22:02:48brixenthe exts build too
22:03:05dgtizedrbx gem install algorithms is what I am testing and what is failing
22:03:14dgtizedit correctly uses "ruby.h"
22:03:31dgtizedbut it's getting a definition of RBASIC from somewhere in our sources
22:03:32brixenso, check the include path in the makefile
22:03:50dgtizedthe include path reported by the compile line before that is for capi and .
22:04:50dgtizedhow do I force the capi specs to recompile / run?
22:05:24brixenyou can rm all the .bundle/.so files
22:05:48brixenwe have no def of RBASIC in our sources http://gist.github.com/111295
22:06:17brixenso, it's picking up your system dir for ruby.h
22:07:07rueI am not sure if angle brackets _ever_ look at anything but system include dirs
22:07:10brixenwhich is most likely an rbconfig or mkmf problem
22:07:20slavarue: angle brackets look in the paths that you pass to gcc with the -I flag as well
22:07:36slavaso if you do -I. then you can #include <foo.h> from the current dir
22:07:54dgtizedI can't remember is GCC aware of CPPFLAGS or is that merely the common way to suggest to a configure script?
22:08:10rueslava: Assuming that there is no foo.h system header, in that case
22:08:45rue"" will look in system headers, I was not aware that <> would also look elsewhere, but I assume you are correct about that part
22:09:16slavadgtized: that's usually done in the makefile
22:09:19slavaconfigure scripts? gah
22:09:42rueBut "" is the correct option
22:09:44dgtizedslava: ok that's what I thought, it doesn't have a configure script it just has an mkmf
22:10:04brixendgtized: I don't see why you think it's picking up the mri ruby.h
22:10:28dgtizedbrixen: because it is not complaining that it doesn't know what RBASIC is
22:10:36dgtizedit's complaining that it doesn't know what to do with the result
22:11:07brixenthe error I get compiling is because RBASIC isn't defined
22:11:50brixenif I put #ifdef RBASIC around 295 to 299 ir rbtree.c, poof, no error
22:12:44dgtizedhttp://gist.github.com/111302
22:13:10brixenand, like I said...
22:13:16dgtizedif the "invalid type argument '->' is a reference that RBASIC doesn't exist
22:14:12dgtizedI presumed it would actually report that name was not something it would know about
22:14:48dgtizedalright so the answer then is that we need an implementation of RBASIC in capi?
22:16:07dgtizedand my second question is that we shouldn't have references to <ruby.h> in our extensions either should we? I'm pretty sure that the only reason zlib compiles is because it's using a combination of mri ruby.h and our ruby.h
22:18:28rueNo, that is not a missing definition error
22:20:38rueAnd yes, all should be ""
22:21:13dgtizedalso, I tried switching the spec/capi/ext specs to "", and I don't know how to get them to recompile, they are not tested if you run rake
22:21:39dgtizedwait, actually just a sec let me check one more thing on that
22:22:58dgtizedok, I see they get compiled during the bin/mspec run
22:24:46rueThere is an extensions:clean or something
22:24:49rueOr just delete the .so
22:25:24dgtizedyea I figured that out, I just deleted the .so, it's just I expected it to report it was recompiling those extensions for the tests, but it happens silently somewhere in the mspec run
22:27:20dgtizedah -- I see, zlib uses RBASIC, but we stopped using zlib
22:27:46dgtizedso it's not getting any copy of mri ruby.h in, we are simply missing RBASIC
22:28:33rueTry it
22:29:48dgtizedtry what, compiling zlib?
22:32:00dgtizedoh, we are using the ffi form of zlib, but we still have stdlib/ext/zlib
22:41:41ruedgtized: Where is your MRI ruby.h located?
22:42:18rueHell, even INCLUDES sets /usr/local/include to be looked in *before* . and vm :/
22:46:08dgtizedrue: a couple of places, but none of them are in /usr/include, /usr/local/include or the like
22:46:57dgtizedrue: /usr/lib/ruby/1.8/i486-linux/ruby.h, /home/clgc/usr/lib/ruby/1.8/i686-linux/ruby.h, /home/clgc/usr/include/ruby-1.9/ruby.h
22:48:28dgtizedif I make a file that just does a #include <ruby.h> and try to compile it gcc reports it can't find ruby.h
22:49:23rueAnd your error for RBASIC says nothing about an implicit declaration, right?
22:49:57dgtizedhttp://gist.github.com/111302 -- thats the error I get
22:50:45brixenhaha, I had time to make and eat a sandwich and you guys still think it's including mri's ruby.h
22:51:06brixengoes back to his codez
22:53:24dgtizedrue: do you get the same error from rbx gem install algorithms, or the same?
22:55:08dgtizedrue: ah alright, gcc is reporting a pointless error if it can't find RBASIC
22:55:55dgtizedbrixen: besides making fun of us for trying to search down the problem, do you have any pointers for how to implement RBASIC in capi?
22:57:04rueRBasic is the "header" in MRI
22:57:14dgtizedfor each object?
22:57:26brixendgtized: I gave you the problem, RBASIC is not defined
22:57:38brixenif you want to define it, read the MRI source
22:58:22rueOh, fuck off
22:58:25brixenthere's examples in capi you can follow, eg RCLASS
22:58:31dgtizedbrixen: I did, and it doesn't look like it's directly analogous to how we store our objects
22:58:38brixenit's not
22:59:07brixenrue: that's funny
22:59:37brixendgtized: if we support it, we have to fake it
22:59:38evangeez guys
22:59:38evanchill.
22:59:47headiusyou guys have a weird way of cooperating
23:01:11rueThe struct only has the two fields, so it is reasonably easy to fake out...and I am not sure there are any extensions that access the flags field, for that matter
23:01:32evanwe've got our own zlib extension
23:01:39evanso we don't need to run the MRI one
23:01:46evanunless we're trying to get rid of our own and use the MRI one
23:02:05brixennah
23:02:05seydargreets
23:02:13brixenthis is about the algorithms gem
23:02:16dgtizedevan: I'm trying to compile the algorithms gem which requires RBASIC
23:02:18brixenwhich is using RBASIC
23:02:27brixenseydar: sup yo
23:02:39evandgtized: ah
23:02:44evandgtized: why does it need RBASIC
23:02:54rue(And, regardless, they should all use "", not <>)
23:02:55dgtizedevan: http://gist.github.com/111302
23:02:56evani've never seen anyone using RBASIC in an extension
23:03:21evandgtized: that guys is just being a douche
23:03:31evanthat code is busted
23:03:56evanwe can work support for RBASIC in
23:04:02rueOr did not realise there are better ways of getting the class object
23:04:03evanbut whoever wrote this needs to fix their code
23:04:11evancomparing directly against class does NOT do what you think it does
23:04:32evandirectly against class == RBASIC()->klass
23:05:05ruedgtized: Yes, I have the same error
23:05:18evancase in point: s = ""; def s.fun; end; code_that_calls_this_rbtree_compare(s)
23:05:27evanthat code will fail incorrectly
23:05:32rueChecking with "" substituted
23:06:03dgtizedI think it's intended as a performance opt in the extension for comparing two red black tree nodes
23:06:06dgtizedbut anyway regardless
23:06:29dgtizedit would seem like if we don't implement RBASIC, we should at least spit out deprecated
23:06:38dgtizedor implement it in some fashion
23:06:46dgtizedinstead of just letting the compiler spit out a nonsense error
23:07:02brixendgtized: we just haven't encountered it yet
23:07:15evanyeah
23:07:17brixenthere's not stubs for all MRI macros and functions
23:07:20evanalmost no one uses RBASIC in extensions
23:07:39evanand i'd say that everyone that does use it probably has bugs
23:08:48brixendgtized: btw, my making fun of you is because almost an hour ago I told you it wasn't defined and you didn't listen
23:08:57brixenand that wastes my time looking at your issue
23:09:03brixenand that is super annoying
23:09:07brixenjust so you know
23:09:27rueThe error message says zippo about it not being defined.
23:09:44evantrue
23:09:45evanhm
23:09:45brixendoesn't matter, I checked and told you so
23:09:50evani wonder how we could do that
23:10:20evanperhaps
23:10:39rueAnd, once again, using <> is wrong either way
23:10:43evan#define RBASIC assert(!!! && "NOT DEFINED")
23:11:05evansounds like the problem is 2 fold
23:11:10evanrubinius has no RBASIC
23:11:19evanand ruby.h is being used from MRI inside a rubinius extension
23:11:23evanthe later is much worse that the former atm
23:11:37dgtizedbrixen: well when you dismiss issues without explaining then it's harder to accept the dismissal -- I wasn't sure you had the exact same error and it's not like it's an intuitive error message
23:12:37brixenthere is no evidence it is including mri's ruby.h
23:12:40dgtizedno ruby.h is not being used in any rubinius extension other then zlib, but we implement that using FFI now, so it's not using the source that uses <ruby.h>
23:13:12dgtizedbrixen is correct that we aren't using mri's ruby.h as far as I can tell
23:13:17evandgtized: FFI has no relation to any ruby.h
23:13:22brixenstdlib/zlib is not being used
23:13:24brixenremove it
23:13:31evanok
23:13:36evanwhy are we talkinga bout zlib?
23:13:38dgtizedand the other stdlib extensions that reference <ruby.h> there as well?
23:13:45dgtizedbecause that was the red herring
23:13:51dgtizedthat rue and I chased
23:14:19dgtizedanyway, it doesn't matter, the point is RBASIC doesn't exist, and so the question is how it should be handled if encountered in an extension
23:14:54evanthis is one really shitty thing about gcc/C
23:15:04evanthe error is because, since there is no RBASIC defined
23:15:10evanit figured it's declared to return an int
23:15:17evansince thats the default
23:15:30dgtizedwow that's user friendly
23:15:36evanexactly.
23:15:48evani wonder why it didn't report that there is no RBASIC defined
23:15:51slavaif you compile with -Wall -Werror it actually complains about the missing identifier
23:15:51evanit usually does that as well
23:15:57slavainstead of assuming it returns an int
23:16:02evanso just -Wall
23:16:08evan-Werror is something else.
23:16:10slavaI highly recommend -Werror too
23:16:13slavait makes all warnings into errors
23:16:25evani know what -Werror does
23:16:26evan:/
23:16:29dgtizedshould we add that to our default flags for mkmf?
23:16:35evanyes
23:16:38brixenslava: that means most code associated with MRI would not compile
23:16:39evani'm surprised we don't have it now.
23:16:57brixenwe do not, because exts are not generally warning free
23:17:04evani'd rather spit warnings
23:17:06evanand not error out
23:18:17evandgtized: your time would be best served contacting the algorithms gem guy
23:18:21slavabrixen: that's a shame
23:18:23evanand tell him to use rb_knid_of
23:19:00dgtizedevan: ok, and then we just throw in some kind of build warning for RBASIC usage?
23:19:17slavaif you adopt the right coding style, warnings will indicate actual problems with the code
23:19:51evandgtized: -Wall will provide the proper warning
23:20:05brixenI've added it to rbconfig
23:20:14brixenit gives the implicit def warning
23:20:44evanok
23:20:46evani think thats fine
23:21:01brixenhttp://pastie.org/477422
23:22:16evanbingo
23:22:40dgtizedso we don't have rb_eval_string or rb_ary_new3 yet as well I guess?
23:22:48evanjust haven't done them yet
23:23:03evanbut yes
23:24:38dgtizedk, well I'll try to work up a rb_kind_of patch for the algorithms guy, and then just wait on rb_eval_string or rb_ary_new3 to test
23:25:12evank
23:25:45dgtizedI just picked this gem as I thought it was neat to have some basic datastructures available by extension and that might be a good angle for some of our more specialized structures -- I didn't expect it to unearth a list of not yet implemented capi functions
23:26:46evanwhen you drink from the firehouse, it can knock you on your ass.
23:28:26boyscoutAdded -Wall to rbconfig CFLAGS. - 075a90d - Brian Ford
23:28:49dgtizedhe also implemented some c extension versions of sort, I don't know how much overhead we get using c extensions, but I wonder if we could move a few things out of core into a library like this
23:29:20evanhaving the kernel depend on someone's extension gem makes my stomach turn
23:29:21dgtizedhttp://github.com/kanwei/algorithms/tree/master
23:29:54brixenhaving evidence from real apps that we need to implement something differently is the first step
23:30:05brixenafter that, it would be fixed in core
23:30:18brixenor kernel rather
23:31:04dgtizedwait, before everyone thinks I'm criticizing, it just seemed like this guys project has some overlap, we are discussing using vlists and alternate hash implementations and the like
23:31:10boyscoutCI: 075a90d success. 2684 files, 10335 examples, 32880 expectations, 0 failures, 0 errors
23:31:52evandgtized: PDI
23:31:54dgtizedand this guy has pure ruby implementations of red black trees and suffix arrays and what not, that also have capi backings for performance if necessary
23:32:28evandgtized: give it a look
23:32:32evanlet us know what you fin.d
23:32:45evani know nothing about it
23:32:49dgtizedI wasn't actually suggesting we load up a rubygem just after a loading kernel with a bunch of sorting methods and the like
23:32:52evanthe alorgithms gem that is.
23:33:28dgtizedit was more just that if he is doing performance testing on datastructures in pure ruby that have c api backends for performance, it just seems like there is some overlap
23:33:41evanhave a look
23:33:43evanlet us know
23:33:45evani'll leave it at that.
23:35:16dgtizedk
23:58:57rueevan: Might want to do the patch against a more recent checkout...looks like it is about 1500 revisions behind
23:59:38evanoh. hrm.