Show enters and exits. Hide enters and exits.
| 00:07:09 | lstoll leaves the room. | |
| 00:08:22 | lstoll enters the room. | |
| 00:08:25 | graza leaves the room. | |
| 00:09:05 | graza enters the room. | |
| 00:15:24 | thehcdreamer leaves the room. | |
| 00:17:37 | ezmobius leaves the room. | |
| 00:18:19 | pietia leaves the room. | |
| 00:19:30 | jayWHY leaves the room. | |
| 00:22:34 | ezmobius enters the room. | |
| 00:26:16 | ezmobius leaves the room. | |
| 00:26:23 | graza leaves the room. | |
| 00:27:04 | graza enters the room. | |
| 00:33:07 | ezmobius enters the room. | |
| 00:39:57 | graza_ enters the room. | |
| 00:39:58 | graza leaves the room. | |
| 00:50:34 | derdewey enters the room. | |
| 01:03:50 | graza_ leaves the room. | |
| 01:09:03 | jtoy enters the room. | |
| 01:09:55 | dc_ leaves the room. | |
| 01:13:15 | _ADS enters the room. | |
| 01:20:06 | joachimm leaves the room. | |
| 01:20:26 | bitbckt leaves the room. | |
| 01:29:38 | bitbckt enters the room. | |
| 01:31:12 | bitbckt leaves the room. | |
| 01:35:31 | rue | Hola |
| 01:38:01 | djwhitt | yo |
| 01:46:54 | antares | rue: hey |
| 01:50:43 | derdewey | so... how long did it take you guys to get up to speed on the way rubinius works? |
| 01:52:42 | rue | A while |
| 01:53:01 | bitbckt enters the room. | |
| 01:54:15 | derdewey | ya, my two days hasn't netted very much :) |
| 01:55:41 | bitbckt leaves the room. | |
| 02:05:52 | derdewey leaves the room. | |
| 02:11:55 | RyanTM leaves the room. | |
| 02:12:49 | mernen leaves the room. | |
| 02:20:53 | seydar enters the room. | |
| 02:24:07 | lstoll_ enters the room. | |
| 02:24:27 | lstoll leaves the room. | |
| 02:24:59 | seydar | drbrain: what did you do to fix bootstrap.rba? |
| 02:25:15 | drbrain | seydar: nothing |
| 02:25:33 | drbrain | seydar: does it work for you now? |
| 02:25:37 | seydar | yea it does |
| 02:25:50 | drbrain | it's a problem in the Rakefile somewhere |
| 02:27:12 | seydar | ah |
| 02:27:17 | seydar | well... good thing it works now |
| 02:30:39 | seydar | are you familiar with the YAML stuff? |
| 02:33:03 | drbrain | vaguely |
| 02:33:48 | seydar | ok. whats the difference between lib/rbyaml and stdlib/yaml |
| 02:34:28 | drbrain | ew, stdlib/yaml should be deleted |
| 02:34:34 | drbrain | I didn't know it was still there |
| 02:37:50 | seydar | ooh! can i delete it? |
| 02:38:12 | drbrain | yes |
| 02:38:38 | seydar | nice. i feel like a better coder already |
| 02:38:39 | _ADS leaves the room. | |
| 02:39:22 | seydar | wait why am i deleting it? |
| 02:39:51 | drbrain | because it is old and busted |
| 02:40:01 | drbrain | rbyaml is the new hotness |
| 02:40:13 | seydar | k |
| 02:40:22 | seydar | how come it doesn't have tagurize? |
| 02:40:26 | seydar | #tagurize |
| 02:40:30 | drbrain | which? |
| 02:40:38 | drbrain | old and busted? or new hotness? |
| 02:40:50 | seydar | new hotness |
| 02:41:06 | drbrain | because the original author never implemented it |
| 02:41:15 | drbrain | I should make a patchset against the latest rbyaml |
| 02:41:20 | seydar | well... there are specs for it |
| 02:41:20 | drbrain | and contribute back our changes |
| 02:42:20 | drbrain | yeah |
| 02:42:33 | drbrain | there's specs for lots of things rubinius doesn't have :/ |
| 02:42:39 | drbrain | they're "motivation" |
| 02:43:28 | seydar | shoot. i messed up when describing it in git commit -a |
| 02:43:28 | _ADS enters the room. | |
| 02:43:31 | seydar | how do i fix it? |
| 02:43:43 | drbrain | git commit --amend |
| 02:44:15 | seydar | fork that didn't do it |
| 02:44:33 | seydar | im ditching this and regitting |
| 02:44:36 | _ADS_ enters the room. | |
| 02:44:37 | jayWHY enters the room. | |
| 02:44:50 | drbrain | I don't know much about git |
| 02:45:00 | drbrain | I'm too stupid to use a stupid tool |
| 02:45:00 | seydar | how do i find out if someone commited my patches? |
| 02:45:17 | drbrain | http://git.rubini.us/?p=code;a=summary |
| 02:45:28 | drbrain | look for your name here |
| 02:45:30 | jayWHY leaves the room. | |
| 02:45:52 | seydar | hmph. i posted mine to lighthouse because i don't have commit priveleges yet |
| 02:46:24 | drbrain | which? |
| 02:46:27 | drbrain | URL? |
| 02:47:05 | seydar | http://rubinius.lighthouseapp.com/projects/5089/tickets/335-bug-building-rubinius-failed-due-to-_s truct_mcontext-on-macos-x#ticket-335-8 |
| 02:47:14 | VVSiz_ enters the room. | |
| 02:47:25 | seydar | http://rubinius.lighthouseapp.com/projects/5089/tickets/352-bug-ipaddr-specs-used-improper-ipv6-no tation#ticket-352-2 |
| 02:49:06 | drbrain | the stdlib/ part of the IPAddr patch should be submitted to ruby-core |
| 02:49:39 | drbrain | I can't review the pre-leopard patch, as I don't have my pre-leopard box running |
| 02:50:26 | seydar | its what you had me do. TRUST ME IT WORKS please |
| 02:50:48 | drbrain | which is the one I had you do? |
| 02:51:04 | djwhitt | seydar: I think it's what Defiler had you do |
| 02:51:16 | seydar | oh yea it was |
| 02:51:34 | seydar | well im talking to a genius. |
| 02:51:41 | seydar | !!! rubinius devs should have hive minds! |
| 02:51:46 | drbrain | I will let defiler handle it then |
| 02:51:48 | _mutle enters the room. | |
| 02:51:54 | seydar | grrr |
| 02:51:54 | drbrain | but, I would also submit it to ruby-core |
| 02:52:13 | seydar | meh too much work. but ok |
| 02:53:01 | drbrain | seydar: yes, it's work, work, work |
| 02:53:04 | evan | i don't get the ipaddr one |
| 02:53:10 | evan | looks like just a formatting change |
| 02:53:18 | drbrain | and precious little thanks for it :( |
| 02:53:21 | evan | or was there things mixed in with the formatting change |
| 02:53:30 | seydar | evan: originally, IPAddr#getaddress was in the unless |
| 02:53:50 | seydar | and so since AF_INET6 was already defined, several key methods were left undefined |
| 02:54:35 | evan | your ipaddr patch needs to only have fixes |
| 02:54:38 | evan | no formatting changes |
| 02:54:49 | evan | it's nearly impossible for me to figure out what you really changed |
| 02:55:09 | cored leaves the room. | |
| 02:55:32 | srbaker_ enters the room. | |
| 02:55:44 | seydar | oh. uh, i moved the unless and formatted what WAS in the unless |
| 02:56:41 | seydar | then lemme refix everything. |
| 02:56:44 | drbrain | evan: if it was a whitespace-free diff, you'd know what changed :/ |
| 02:57:10 | seydar | but how do I apply a patch to rubinius? my "friend" needs help |
| 02:57:38 | drbrain | if it's just for evaluation, patch -p0 < patchfile |
| 02:58:17 | srbaker leaves the room. | |
| 02:58:18 | seydar | k |
| 02:59:03 | radarek leaves the room. | |
| 03:01:29 | _ADS leaves the room. | |
| 03:01:37 | ttmrichter enters the room. | |
| 03:01:40 | evan | argv[]: very un |
| 03:01:49 | evan | argv[]: it's the worst part of rubinius |
| 03:02:00 | evan | it's a hacked up version of the 1.8.2 parse.y |
| 03:02:08 | evan | combined with a hacked up version of parsetree |
| 03:02:31 | seydar | well, at least we can get sexp for all parts of it, though. and then use ruby2ruby. right? |
| 03:02:37 | evan | sure |
| 03:02:54 | evan | argv[]: right, my thinking was when i started, that i didn't want to write a ruby parser |
| 03:02:57 | evan | i wanted to write a ruby VM |
| 03:03:03 | seydar | nice. i always wanted to see ruby interpretations of C |
| 03:03:07 | drbrain | argv[]: ruby_parser is slated to be the next parser in ruby |
| 03:03:19 | drbrain | err, rubinius |
| 03:04:48 | evan | argv[]: mainly because it was a dirty port of the jruby parser |
| 03:05:01 | VVSiz leaves the room. | |
| 03:05:16 | evan | zenspider is slowly refactoring and cleaning it up now. |
| 03:07:58 | evan | whats yard? |
| 03:08:17 | mutle leaves the room. | |
| 03:08:38 | evan | argv[]: ah, thats easy to fix |
| 03:08:59 | evan | argv[]: add a Comment < Node class to lib/compiler/nodes.rb |
| 03:09:22 | evan | then add Comment#bytecode in lib/compiler/bytecode.rb |
| 03:09:28 | evan | and have that method do nothing |
| 03:09:51 | evan | yeah, it is |
| 03:09:55 | drbrain | uh, RDoc has YAML output |
| 03:10:40 | evan | argv[]: changing the parser requires a few steps |
| 03:10:42 | drbrain | argv[]: unlikely |
| 03:10:51 | evan | argv[]: you need to change lib/compiler to expect your changes |
| 03:10:55 | evan | then you have to do |
| 03:11:12 | evan | rake build; rake runtime/stable/compiler.rba |
| 03:11:21 | drbrain | I now know better than even Dave Thomas himself the power of RDoc |
| 03:11:22 | evan | then you change shotgun/ to have your changes |
| 03:11:36 | drbrain | and it is very, very flexible inside |
| 03:13:23 | mae enters the room. | |
| 03:13:25 | evan | ok |
| 03:14:06 | evan | yep |
| 03:14:12 | evan | sounds backwards, i know. |
| 03:14:38 | evan | use diff to create a patch file |
| 03:14:40 | evan | then do |
| 03:14:42 | evan | git checkout shotgun/lib |
| 03:14:47 | evan | to revert back |
| 03:15:09 | evan | VERY. |
| 03:15:28 | evan | well, you can't reset a subdirectory for one |
| 03:15:40 | evan | you have to reset the entire clone |
| 03:16:26 | evan | git reset is kinda like brain surgery |
| 03:16:32 | evan | git checkout is like writing yourself a note |
| 03:17:48 | evan | yes, 'git reset --hard HEAD' happens to do the same as 'git checkout .' |
| 03:20:01 | evan | it's not just you. |
| 03:20:30 | evan | they broke with traditional command names for pretty much everything |
| 03:21:01 | seydar | my patching skillz just went up by 1 |
| 03:25:50 | seydar | so evan - can you commit the pre-leopard patch defiler wrote and I posted? |
| 03:27:07 | evan | argv[]: rip out what subset? |
| 03:27:10 | cremes enters the room. | |
| 03:27:20 | evan | seydar: yeah, i can. |
| 03:27:28 | seydar | awesome. |
| 03:28:30 | lopex leaves the room. | |
| 03:29:48 | evan | oh, you mean rip out to put inside something else |
| 03:29:59 | evan | actually, those parts don't depend on rubinius much at all |
| 03:30:06 | evan | there are few things you'll have to change |
| 03:30:14 | evan | grammar.y is actually from sydparse |
| 03:30:21 | evan | which was a 1.8 extension |
| 03:30:33 | evan | completely standalone |
| 03:31:57 | evan | should be around |
| 03:32:55 | evan | there is still a gem for it |
| 03:32:59 | evan | search google for sydparse |
| 03:33:27 | evan | seems like there is a lot of hits for it |
| 03:34:12 | evan | thats still a lot of hits |
| 03:34:48 | evan | i'd be happy to commit your patch to add comment nodes |
| 03:35:04 | evan | want to send me your diff? |
| 03:36:36 | evan | sure |
| 03:36:58 | seydar | what will the comment nodes do? |
| 03:37:31 | seydar | well duh, but what purpose will those server, other than reproducing comments? |
| 03:39:04 | seydar | omg that just clicked |
| 03:39:16 | seydar | please make yard work with rubinius |
| 03:39:34 | seydar | evan: what books did you look at when starting out? |
| 03:39:42 | seydar | argv[]: no thank you. just rubinius |
| 03:39:52 | evan | seydar: the Smalltalk 80 Blue Book |
| 03:40:18 | evan | i still use it. |
| 03:40:33 | evan | if all VM books were like it... we'd live in a utopia. |
| 03:40:50 | seydar | nice. i just got a free copy of Compiler Construction. turns out its worth $118 |
| 03:41:27 | seydar | i was hoping it would make me a genius |
| 03:41:36 | evan | http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html |
| 03:41:37 | seydar | but it looks good enough |
| 03:41:46 | evan | those are the chapters in the blue book I used a lot |
| 03:41:53 | evan | they're how to implement a smalltalk system |
| 03:42:39 | seydar | niice. if one were to do bytecode -> ASM, they'd need to reimplement the whole innerd set, right? |
| 03:42:49 | seydar | like the innerds of the VM? |
| 03:44:56 | evan | probably note |
| 03:44:58 | evan | not. |
| 03:45:10 | seydar | oh whew. |
| 03:45:12 | evan | but it would depend entirely on the approach |
| 03:45:42 | seydar | i have no clue what the approaches are, but am desperate to learn |
| 03:46:19 | seydar | i'm trying to sneak in (free) courses at my local college. they have compilers, but i'm not at that level yet. i have to wait till spring '09 |
| 03:47:00 | seydar | evan: drbrain says i should destroy stdlib/yaml because its old and ugly and a tramp. is this worthy? |
| 03:47:34 | evan | destroy? |
| 03:47:40 | drbrain | delete |
| 03:47:53 | drbrain | seydar: also, lib/ext/syck |
| 03:47:59 | seydar | gotcha. |
| 03:48:02 | evan | sure, yeah. |
| 03:48:47 | seydar | i'm gonna patch it. where should i send it, since there's not really a ticket for this? |
| 03:49:06 | drbrain | seydar: I've got a task you might find interesting |
| 03:49:13 | evan | this is not a patch activity |
| 03:49:18 | drbrain | seydar: convert stdlib/ext/syslog/syslog.c to pure-ruby using FFI |
| 03:49:20 | evan | you need direct commit rights to do it |
| 03:50:18 | seydar | evan: so... what should I do? maybe i can get commit rights for that first patch? |
| 03:50:27 | seydar | drbrain: sounds fun? i'm on it |
| 03:51:01 | drbrain | seydar: it's small, so it shouldn't be too challenging, but sufficiently challenging that it'll be interesting |
| 03:51:31 | seydar | right. is there a standard for online C docs? |
| 03:51:45 | seydar | and what possible types are there for me to utilize? |
| 03:51:58 | drbrain | for FFI? |
| 03:52:03 | drbrain | or ? |
| 03:52:10 | drbrain | you shouldn't be writing any C code... |
| 03:52:18 | drbrain | if you're doing the syslog thing |
| 03:53:00 | seydar | drbrain: to know what C methods to defer to |
| 03:53:10 | drbrain | ah, `man` |
| 03:53:19 | seydar | oh they're in man pages? nice |
| 03:53:26 | drbrain | syslog should all be in the man pages |
| 03:53:34 | seydar | i shall attempt this right now! |
| 03:53:41 | drbrain | but, you can read the C source, too |
| 03:53:45 | seydar | evan, how bout that Tiger patch :-)? |
| 03:53:49 | drbrain | of ruby's syslog interface |
| 03:54:43 | seydar | and you say it shall be a small challenge for one who knows no c? |
| 03:55:54 | drbrain | can you read some C? |
| 03:56:00 | drbrain | there's not much to it |
| 03:56:06 | drbrain | (the syslog wrapper) |
| 03:56:57 | drbrain | start with Init_syslog() to flesh out the module Syslog and go from there |
| 03:57:30 | seydar | i can read C. just can't program it. |
| 03:58:14 | tarcieri | is programming C |
| 03:58:15 | tarcieri | urgh |
| 03:59:24 | seydar | drbrain: was fixing rakefile now to now hit the syck ext. can you do that while I get a good start on the syslog? |
| 03:59:50 | seydar | i feel... important... big and strong... like i'm worthy to call myself a dev |
| 03:59:53 | drbrain | what do you mean? |
| 03:59:59 | drbrain | "hit the syck extension" ? |
| 04:00:21 | seydar | drbrain: er, sorry. i can never remember words and so i just replace them. rake is trying to build it when it's not ther |
| 04:00:23 | seydar | there* |
| 04:00:31 | drbrain | ah |
| 04:00:47 | drbrain | do you want me to delete the old syck yaml implementation then? |
| 04:00:51 | drbrain | I can do that |
| 04:02:29 | seydar | i think that'd be good |
| 04:02:40 | seydar | but in all honesty i have no clue. why the hell not |
| 04:05:07 | boyscout | 1 commit by Eric Hodel |
| 04:05:08 | boyscout | * Remove old-and-busted syck.; 3634599 |
| 04:06:06 | seydar | how are attach_function methods defined? in their current context, or in the metaclass? |
| 04:06:39 | drbrain | they are module functions |
| 04:06:40 | seydar | like will `module Syslog; attach_function.....; end` define an instance method or module method? |
| 04:06:47 | drbrain | module |
| 04:06:49 | seydar | k |
| 04:08:26 | GMFlash leaves the room. | |
| 04:11:22 | _ADS_ leaves the room. | |
| 04:12:19 | seydar | wait. FFI eliminates the need for C-exts. so, for example the mSyslog_open method, i just want to refer to the "openLog" method, right? |
| 04:13:27 | _ADS_ enters the room. | |
| 04:13:32 | GMFlash enters the room. | |
| 04:15:10 | _ADS | I just attached a spec to ticket #333 |
| 04:15:27 | _ADS | now I'm going to see if I can make it pass |
| 04:16:28 | benburkert_ leaves the room. | |
| 04:17:20 | drbrain | seydar: yup |
| 04:17:45 | drbrain | you'd attach_function openlog() |
| 04:18:05 | drbrain | and implement the equivalent ruby for mSyslog_open |
| 04:18:08 | benburkert enters the room. | |
| 04:18:08 | drbrain | for/to |
| 04:18:23 | seydar | k |
| 04:18:48 | seydar | and what should I use as a type for a class object |
| 04:18:52 | seydar | like, nonstandard |
| 04:19:31 | ezmobius leaves the room. | |
| 04:19:39 | seydar | and what about a block? |
| 04:19:39 | drbrain | I don't understand |
| 04:20:16 | seydar | so open takes a bunch of optional params. [:string, :int, :string] (i think). howver, they're optional, and it can ALSO take a block |
| 04:20:23 | seydar | how would I define that? |
| 04:20:29 | drbrain | oh |
| 04:20:51 | rubuildius | Eric Hodel: 36345996f; 1616 files, 5540 examples, 19087 expectations, 0 failures, 0 errors; http://rafb.net/p/afUZpK33.html |
| 04:21:42 | d2dchat leaves the room. | |
| 04:21:54 | rubuildius_ppc | Eric Hodel: 36345996f; 1616 files, 5540 examples, 19076 expectations, 0 failures, 12 errors; http://pastie.caboo.se/paste/156482 |
| 04:22:57 | drbrain | for Syslog::open, def open(ident = $PROGRAM_NAME, options = LOG_PID | LOG_CONS, facility = LOG_USER) |
| 04:23:01 | drbrain | and so-on |
| 04:23:12 | drbrain | that's what rb_scan_args() and the following code does |
| 04:23:23 | seydar | whoawhoa |
| 04:24:19 | seydar | i thought i was using ffi to do like `attach_function "openLog", :open, [:string, :int, :string], :object` |
| 04:24:27 | drbrain | ah, no |
| 04:24:49 | drbrain | so if you `man openlog` you see: |
| 04:24:53 | seydar | so you want pure ruby, no ffi? |
| 04:25:00 | drbrain | void openlog(const char *ident, int logopt, int facility); |
| 04:25:10 | drbrain | so, you'll wrap just that with FFI |
| 04:25:34 | drbrain | and implement Syslog::open with ruby, that calls the FFI function with the right things |
| 04:25:41 | drbrain | you're turning mSyslog_* into ruby code |
| 04:25:49 | drbrain | and some of that will call FFI-wrapped C functions |
| 04:25:52 | seydar | i'm following so far. |
| 04:26:08 | seydar | how do I call the ffi function? i understand how to create it |
| 04:26:24 | drbrain | so, for openlog, it would be: |
| 04:27:11 | drbrain | attach_function 'openlog', :openlog, [:string, :int, :int], :void |
| 04:27:38 | drbrain | and you would call it: openlog ident, options, facility |
| 04:28:02 | seydar | and then write a ruby wrapper for that... to... do the C stuf... wow i'm dumb |
| 04:28:26 | seydar | thanks so much drbrain! i feel like i just grew one of my own |
| 04:28:32 | drbrain | nah, it's a bit confusing at first getting the interactions right |
| 04:28:44 | drbrain | I did the same things when I started in on MD5 and Zlib |
| 04:29:45 | seydar | heh i feel better |
| 04:30:29 | be9 enters the room. | |
| 04:33:16 | seydar | for returning Qnil, should I return :void or :object ? |
| 04:33:52 | benburkert_ enters the room. | |
| 04:34:13 | drbrain | nil |
| 04:34:26 | drbrain | C functions won't return Qnil |
| 04:34:33 | drbrain | ... libc functions for syslog |
| 04:35:05 | seydar | oh right i'm doing C, not Ruby-C |
| 04:37:14 | seydar | hitting the sack now. later! |
| 04:37:20 | seydar leaves the room. | |
| 04:37:23 | drbrain | later! |
| 04:38:00 | seydar enters the room. | |
| 04:38:15 | seydar | syslog seems to tyake variable arguments. how do i represent this? |
| 04:38:16 | RyanTM enters the room. | |
| 04:38:40 | tarcieri | Holy crap |
| 04:38:44 | tarcieri | I just wrote a ton of C code |
| 04:38:48 | tarcieri | Compiled the first time, no errors |
| 04:38:49 | tarcieri | Spooky |
| 04:38:50 | drbrain | I don't know, but you'll only need to pass it two... |
| 04:38:59 | drbrain | "%s" and the string you're putting in to it |
| 04:39:08 | seydar | drbrain: what about priority? |
| 04:39:16 | drbrain | so, try just wrapping it with two string arguments |
| 04:39:21 | seydar | void syslog(int priority, const char *message, .../* arguments */); |
| 04:39:25 | drbrain | [:int, :string, :string] |
| 04:39:32 | seydar | ah. |
| 04:39:39 | seydar | thanks |
| 04:39:42 | seydar | g'night! |
| 04:39:46 | seydar leaves the room. | |
| 05:07:29 | benburkert_ leaves the room. | |
| 05:08:21 | _ADS | is grammar.y lifted directly from MRI or has it been modified? |
| 05:08:44 | benburkert enters the room. | |
| 05:09:14 | antares | _ADS, it has been lifted originally but it seems that slight changes have been made, too |
| 05:11:47 | be9 | _ADS: it has been made "pure" and generates syntax tree, whereas MRI's grammar makes direct operations on nodes |
| 05:12:24 | be9 | _ADS: aren't you Adam Shelly, by the way? |
| 05:14:02 | rubuildius_ppc | oleg dashevskii: 49b72719b; 1616 files, 5540 examples, 19076 expectations, 0 failures, 12 errors; http://pastie.caboo.se/paste/156489 |
| 05:14:36 | antares leaves the room. | |
| 05:16:01 | rubuildius | oleg dashevskii: 49b72719b; 1616 files, 5540 examples, 19087 expectations, 0 failures, 0 errors; http://rafb.net/p/HeDR0091.html |
| 05:17:59 | _ADS | answer: modified, a lot. |
| 05:20:56 | _ADS | be9, yes |
| 05:21:26 | _ADS | I seem to be having some odd lag here |
| 05:23:53 | be9 | _ADS: I've committed your spec bit (#333), having also added an exclusion tag |
| 05:24:15 | _ADS | be9: cool, thanks |
| 05:24:37 | be9 | _ADS: but your name was lost in the process :( |
| 05:24:37 | wifelette enters the room. | |
| 05:25:32 | benburkert leaves the room. | |
| 05:25:49 | _ADS | be9: no problem. |
| 05:26:40 | _ADS | funny, the line to throw that missing compile error is still in grammar.y |
| 05:35:49 | wifelette leaves the room. | |
| 05:36:05 | benburkert enters the room. | |
| 05:37:12 | _ADS leaves the room. | |
| 05:37:29 | _ADS_ enters the room. | |
| 05:43:47 | wifelette enters the room. | |
| 06:04:03 | KirinDav enters the room. | |
| 06:11:26 | therealadam leaves the room. | |
| 06:13:55 | lstoll enters the room. | |
| 06:15:04 | lstoll_ leaves the room. | |
| 06:17:33 | KirinDav leaves the room. | |
| 06:20:06 | be9_ enters the room. | |
| 06:24:51 | be9 leaves the room. | |
| 06:27:22 | rphillips leaves the room. | |
| 06:37:14 | wifelette leaves the room. | |
| 06:43:28 | lstoll leaves the room. | |
| 06:58:19 | rphillips enters the room. | |
| 07:08:15 | headius enters the room. | |
| 07:13:35 | wycats leaves the room. | |
| 07:15:56 | imajes leaves the room. | |
| 07:16:07 | RyanTM leaves the room. | |
| 07:37:46 | squeegy leaves the room. | |
| 07:49:53 | manveru | well then |
| 07:50:23 | manveru | i'm out of ideas... |
| 07:50:41 | _ADS | for what? |
| 07:50:41 | manveru | getaddress just fails because it feels like it... |
| 07:51:03 | drbrain | manveru: even my pure-ruby versions don't help? |
| 07:51:06 | drbrain | :( |
| 07:51:10 | manveru | no :| |
| 07:51:25 | manveru | though they helped me confirm that there is no difference |
| 07:51:42 | drbrain | well, at least that's something |
| 07:51:48 | benburkert leaves the room. | |
| 07:51:58 | manveru | IPSocket.getaddress('192.168.0.0') works fine in 1.8.6/1.9.0/jruby but fails in rubinius... |
| 07:52:04 | ezmobius enters the room. | |
| 07:52:18 | manveru | and only on this machine |
| 07:52:23 | manveru | it's quite occult |
| 07:52:50 | manveru | since i suspect that rubinius uses the same network API in C as 1.8.6 |
| 07:57:09 | jtoy leaves the room. | |
| 07:59:06 | drbrain | the same libc calls, yes |
| 08:00:54 | manveru | well, i'm kinda out of ideas |
| 08:01:05 | ezmobius leaves the room. | |
| 08:01:16 | manveru | not that i had any to begin with... |
| 08:01:32 | drbrain | :( |
| 08:02:32 | manveru | i could compare a strace of 1.8.6/rubinius |
| 08:03:51 | sfaxon leaves the room. | |
| 08:03:52 | headius leaves the room. | |
| 08:04:25 | headius enters the room. | |
| 08:05:51 | mae leaves the room. | |
| 08:06:08 | srbaker_ leaves the room. | |
| 08:06:39 | srbaker enters the room. | |
| 08:08:26 | manveru | drbrain: would that be 'getsockname' ? |
| 08:08:45 | manveru | there's only one call for that... |
| 08:08:55 | drbrain | getsockname and getaddrinfo |
| 08:10:30 | manveru | getaddrinfo is never called... |
| 08:11:58 | perdix leaves the room. | |
| 08:12:35 | drbrain | in both? |
| 08:12:43 | manveru | yeah |
| 08:12:54 | drbrain | ok, I was wrong then |
| 08:12:58 | manveru | strace says getaddrinfo is not even a valid system-call |
| 08:13:51 | srbaker leaves the room. | |
| 08:14:00 | drbrain | ah, yes, it is in section 3 |
| 08:14:22 | drbrain | not 2, like syscalls |
| 08:14:36 | drbrain | but, I think that's what's being called to get the name back |
| 08:14:51 | drbrain | since getsockname(2) would only be used for a connected socket |
| 08:15:13 | manveru | well... afaik it tries to open a socket |
| 08:15:36 | drbrain | maybe also getpeername()? |
| 08:15:41 | perdix enters the room. | |
| 08:15:57 | manveru | hmm |
| 08:16:04 | manveru | i can give you a list of all functions being called |
| 08:16:20 | drbrain | that might help |
| 08:16:37 | manveru | for a failing or successful lookup? |
| 08:16:47 | manveru | or for 1.8.6 and rubinius? |
| 08:16:56 | drbrain | 1.8.6 and rubinius |
| 08:17:07 | manveru | ok |
| 08:18:41 | manveru | rubinius: http://p.ramaze.net/628 -- ruby: http://p.ramaze.net/629 |
| 08:20:57 | drbrain | can you do them in-order? |
| 08:21:36 | drbrain | strange the ruby has 4 calls to connect() though |
| 08:21:44 | manveru | heh |
| 08:21:51 | drbrain | err, rubinius |
| 08:21:52 | manveru | i just found -e trace=network |
| 08:23:28 | manveru | drbrain: http://p.ramaze.net/631 |
| 08:24:36 | drbrain | and with ruby? |
| 08:24:47 | manveru | that's the first part |
| 08:27:19 | drbrain | what's the code you're running, again? |
| 08:27:44 | manveru | 14 manveru@sigma rubinius-git/src/rubinius % strace -e trace=network ./shotgun/rubinius -rsocket -e 'p IPSocket.getaddress("192.168.0.0")' |
| 08:28:32 | drbrain | do you have a trace with ruby that works? |
| 08:28:46 | drbrain | this looks like it comes out of the resolver |
| 08:29:07 | manveru | the first part of the paste is with 1.8.6 |
| 08:29:22 | manveru | then come 4-5 newlines and then rubinius |
| 08:29:24 | drbrain | oh, I missed it, way at the top there |
| 08:29:28 | drbrain | sorry |
| 08:31:14 | drbrain | um, what's that giant value that MRI has for the third thing of getsockname() |
| 08:31:19 | drbrain | [17502288393181069324] |
| 08:31:26 | drbrain | rubinius has [12] |
| 08:31:41 | manveru | hell, how should i know :) |
| 08:34:13 | manveru | want a working lookup from rubinius and the equivalent for MRI? |
| 08:34:35 | drbrain | isn't that what you just pasted? |
| 08:34:39 | drbrain | or, sure |
| 08:34:45 | drbrain | working from both is good |
| 08:35:09 | manveru | http://p.ramaze.net/632 |
| 08:35:14 | manveru | same paste layout |
| 08:40:34 | drbrain | manveru: is 192.168.0.1 on your network? |
| 08:40:42 | drbrain | what if you try, say 10.0.0.0? |
| 08:40:48 | manveru | yes |
| 08:41:02 | manveru | that would work as well |
| 08:42:35 | manveru | http://p.ramaze.net/633 |
| 08:42:57 | manveru | only existing addresses in the 192.168.0.x range work in rubinius |
| 08:43:59 | manveru | i'm currently checking all IPv4 addresses, so far all up to 0.31.227.63 work |
| 08:45:02 | drbrain | manveru: well, it looks like something in rubinius' getaddrinfo() tickles everything wrong |
| 08:46:35 | drbrain | (namely, the resolver) |
| 08:46:55 | drbrain | first it contacts the in-kernel resolver with the PF_NETLINK socket |
| 08:47:05 | drbrain | then nscd (which you don't seem to have running) |
| 08:47:19 | drbrain | then it contacts the resolver running on 192.168.0.1:53 |
| 08:47:49 | drbrain | since ruby goes straight to the kernel and gets a result, something must be set up wrong |
| 08:49:36 | manveru | well... whatever this resolver is... |
| 08:51:20 | manveru | but you're right, if i turn on nscd it works |
| 08:51:40 | drbrain | what does `host 192.168.0.0` say? |
| 08:51:59 | manveru | Host 0.0.168.192.in-addr.arpa not found: 2(SERVFAIL) |
| 08:52:02 | drbrain | or, `host 192.168.0.0 192.168.0.1` |
| 08:52:17 | drbrain | yeah, which matches what we're seeing |
| 08:52:34 | manveru | Name: 192.168.0.1 |
| 08:52:35 | manveru | Address: 192.168.0.1#53 |
| 08:52:43 | drbrain | *why* it isn't calling the kernel resolver correctly is still unknown :( |
| 08:52:51 | drbrain | maybe we give different flags to getaddrinfo() ? |
| 08:53:17 | drbrain | (in the hints structure) |
| 08:53:41 | manveru | well, i'm happy to listen to your questions... but please don't expect me to answer :) |
| 08:54:17 | drbrain | I'm just as lost as you are |
| 08:54:19 | manveru | i know next to nothing about how this networking stuff works |
| 08:54:38 | drbrain | it seems the networking side works just fine |
| 08:54:44 | drbrain | but the in-kernel resolver does not |
| 08:54:51 | drbrain | rather, we call it wrong |
| 08:54:57 | manveru | hmm |
| 08:55:03 | drbrain | I'd focus my attention on getaddrinfo() |
| 08:55:12 | drbrain | since that's what's making all these sockets |
| 08:55:38 | manveru | well, it does work fine with same kernel version with same rubinius, but on 32bit |
| 08:55:58 | drbrain | interesting |
| 08:56:16 | drbrain | I heard of an FFI problem with 64 bit casting... |
| 08:58:46 | manveru | well, i'm going for a quick teewars-session, bbl |
| 09:00:03 | drbrain | I'm going to bed |
| 09:06:53 | headius leaves the room. | |
| 09:09:23 | imajes enters the room. | |
| 09:14:22 | _ADS leaves the room. | |
| 09:19:36 | wycats enters the room. | |
| 09:30:30 | joachimm enters the room. | |
| 09:43:25 | thehcdreamer enters the room. | |
| 09:53:50 | jtoy enters the room. | |
| 10:00:22 | headius enters the room. | |
| 10:01:05 | headius_ enters the room. | |
| 10:02:31 | headius | g'day |
| 10:07:29 | headius leaves the room. | |
| 10:11:36 | wycats leaves the room. | |
| 10:12:05 | wycats enters the room. | |
| 10:29:40 | chris2 enters the room. | |
| 10:43:37 | headius enters the room. | |
| 10:43:44 | headius_ leaves the room. | |
| 10:48:32 | chris2 leaves the room. | |
| 10:48:36 | jptix enters the room. | |
| 10:56:42 | headius leaves the room. | |
| 11:09:21 | crossblaim enters the room. | |
| 11:30:09 | graza enters the room. | |
| 11:30:34 | GMFlash leaves the room. | |
| 11:42:20 | graza_ enters the room. | |
| 11:42:22 | graza leaves the room. | |
| 11:54:30 | graza enters the room. | |
| 11:54:31 | graza_ leaves the room. | |
| 11:59:13 | ragnard enters the room. | |
| 12:06:34 | thehcdreamer leaves the room. | |
| 12:07:03 | thehcdreamer enters the room. | |
| 12:07:08 | graza_ enters the room. | |
| 12:07:12 | graza leaves the room. | |
| 12:19:44 | graza enters the room. | |
| 12:19:45 | graza_ leaves the room. | |
| 12:32:24 | graza_ enters the room. | |
| 12:32:25 | graza leaves the room. | |
| 12:40:18 | radarek enters the room. | |
| 12:46:18 | crossblaim leaves the room. | |
| 12:48:18 | graza enters the room. | |
| 12:48:19 | graza_ leaves the room. | |
| 12:50:09 | geekounet leaves the room. | |
| 12:51:35 | jtoy leaves the room. | |
| 13:01:02 | headius enters the room. | |
| 13:05:59 | manveru | yay, catching more edgecases... |
| 13:07:09 | _mutle leaves the room. | |
| 13:08:44 | binary42_ enters the room. | |
| 13:16:25 | binary42 leaves the room. | |
| 13:24:19 | graza_ enters the room. | |
| 13:24:20 | graza leaves the room. | |
| 13:38:15 | vruz leaves the room. | |
| 13:38:48 | radarek leaves the room. | |
| 13:40:15 | graza enters the room. | |
| 13:40:16 | graza_ leaves the room. | |
| 13:48:58 | chris2 enters the room. | |
| 14:00:37 | binary42_ leaves the room. | |
| 14:01:55 | graza_ enters the room. | |
| 14:01:56 | graza leaves the room. | |
| 14:03:33 | binary42 enters the room. | |
| 14:03:36 | squeegy enters the room. | |
| 14:08:01 | dewd leaves the room. | |
| 14:27:10 | graza enters the room. | |
| 14:27:11 | graza_ leaves the room. | |
| 14:34:46 | jptix leaves the room. | |
| 14:39:11 | cored enters the room. | |
| 14:39:21 | graza leaves the room. | |
| 14:40:04 | graza enters the room. | |
| 14:48:13 | skweegee enters the room. | |
| 14:50:36 | lopex enters the room. | |
| 14:50:36 | headius leaves the room. | |
| 14:50:49 | squeegy leaves the room. | |
| 14:53:23 | jtoy enters the room. | |
| 14:57:25 | geekounet enters the room. | |
| 15:02:00 | headius enters the room. | |
| 15:04:30 | jptix enters the room. | |
| 15:04:36 | graza leaves the room. | |
| 15:05:17 | graza enters the room. | |
| 15:07:09 | binary42 leaves the room. | |
| 15:10:32 | binary42 enters the room. | |
| 15:12:37 | mutle enters the room. | |
| 15:12:38 | headius leaves the room. | |
| 15:13:20 | headius enters the room. | |
| 15:21:08 | graza_ enters the room. | |
| 15:21:09 | graza leaves the room. | |
| 15:21:47 | octopod enters the room. | |
| 15:27:01 | headius leaves the room. | |
| 15:27:54 | headius enters the room. | |
| 15:38:23 | graza enters the room. | |
| 15:38:24 | graza_ leaves the room. | |
| 15:40:03 | dbussink | afternoon |
| 15:40:19 | be9 | hi dbussink |
| 15:45:02 | ttmrichter leaves the room. | |
| 15:50:14 | skaar enters the room. | |
| 15:57:39 | graza_ enters the room. | |
| 15:57:40 | graza leaves the room. | |
| 16:09:17 | binary42_ enters the room. | |
| 16:10:14 | binary42 leaves the room. | |
| 16:10:19 | RyanTM enters the room. | |
| 16:23:15 | graza enters the room. | |
| 16:23:16 | graza_ leaves the room. | |
| 16:25:37 | headius_ enters the room. | |
| 16:28:44 | headius leaves the room. | |
| 16:33:50 | mernen enters the room. | |
| 16:34:36 | dbussink | be9: it's quiet in here :P |
| 16:36:42 | be9 | dbussink: most people are asleep now I guess :) |
| 16:37:14 | dbussink | and it's already 8:30 at the us west coast :P |
| 16:37:31 | be9 | 8:30am Sunday :) |
| 16:37:53 | dbussink | real nerds don't differentiate between sundays and other days ;) |
| 16:38:12 | be9 | BTW I've got something to discuss. So I set up an msys stuff in windows and made a little progress in compiling rbx |
| 16:38:28 | dbussink | ah, that's nice |
| 16:38:35 | cremes | i've been awake for hours and i'm in us central time |
| 16:38:47 | be9 | stuck with libzip and libtool shit |
| 16:38:52 | dbussink | cremes: good boy :) |
| 16:38:58 | cremes | i try... ;) |
| 16:39:15 | be9 | but still there's a problem apart from that |
| 16:39:23 | be9 | msys is DAMN DAMN slow |
| 16:39:23 | dbussink | and that is? |
| 16:39:51 | dbussink | as in compiling or the resulting binary? |
| 16:40:10 | cremes | i am seeing a strange problem with the rubuildius_ppc output... |
| 16:40:26 | cremes | it complains Expected "file" to equal "characterSpecial" for File.ftype an File::stat... |
| 16:40:30 | be9 | in configuring and compiling. forks are slow in windows, as everybody knows |
| 16:40:32 | octopod leaves the room. | |
| 16:40:41 | cremes | however, when i rerun it manually on my machine it doesn't show those errors at all! |
| 16:40:45 | cremes | very puzzling |
| 16:40:51 | dbussink | that's strange |
| 16:41:08 | dbussink | maybe it depends on non deterministic ordering of files? |
| 16:41:12 | cremes | maybe it's only the first build & run... i'm going to try rake distclean and rerun |
| 16:41:17 | be9 | external libs take forever to configure & compile, especially those which use libtool |
| 16:41:20 | cremes | dbussink: could be |
| 16:41:34 | be9 | even when it works you won't be happy run rake distclean |
| 16:41:47 | be9 | so we need some another build system |
| 16:42:06 | dbussink | be9: well, compile time speed is a problem, but i'm more interested in runtime speed |
| 16:42:14 | dbussink | or didn't you get that far yet? |
| 16:42:22 | be9 | sure I didn't :) |
| 16:42:42 | rubyconsumer enters the room. | |
| 16:43:03 | dbussink | too bad ;) |
| 16:43:09 | be9 | now I'm considering two possibilities. one is to use CMake, second is to write a completely new pure ruby build sys |
| 16:43:36 | dbussink | the second options sounds nice |
| 16:43:46 | dbussink | but it's probably a lot of work |
| 16:43:56 | be9 | I started one in previous year, didn't go far |
| 16:44:33 | be9 | dbussink: it is, a fair amount of work. |
| 16:45:09 | dbussink | most definitely, you also need to consider all kinds of possible platform idiosyncrasies |
| 16:45:29 | be9 | dbussink: that's the hardest problem of all |
| 16:45:36 | cremes | a pure ruby build system could be leveraged by other projects outside rubinius too |
| 16:45:58 | cremes | isn't it time we get something better than autoconf? :) |
| 16:46:01 | be9 | autohell has gathered the "knowledge" of platform stuff for years |
| 16:46:28 | dbussink | it's not something you "just" do |
| 16:46:31 | cremes | true... i'd argue it hasn't "scaled" with that "knowledge" very well |
| 16:46:37 | cremes | agreed |
| 16:48:06 | be9 | but mostly it doesn't matter nowadays. nobody actually needs running rbx in some old ugly hp-ux |
| 16:48:37 | be9 | and i really hate when ./configure script checks for GNU fortran |
| 16:48:46 | cremes | :) |
| 16:48:58 | mernen_ enters the room. | |
| 16:49:09 | crossblaim enters the room. | |
| 16:49:18 | be9 | there's a project on python side, called waf, which came out of SCons |
| 16:49:52 | crossblaim | hi |
| 16:49:59 | be9 | I've looked into it when I wanted to switch from CMake which I use now for my C++ projects |
| 16:50:00 | cremes | reading about waf now |
| 16:50:10 | rubyconsumer leaves the room. | |
| 16:50:44 | be9 | it sucks badly, though less than SCons. python guys haven't got DSLs and they try to make everything "object-oriented" |
| 16:50:58 | cremes | hmmm... why not just use waf as a prototype? no real need to rewrite in ruby, is there? |
| 16:51:18 | cremes | "it sucks less!" |
| 16:52:23 | be9 | cremes: well, CMake for now is better, I think. |
| 16:52:40 | be9 | CMake works really good on Windows, which isn't true for weaf |
| 16:52:42 | cremes | be9: i don't disagree |
| 16:52:42 | be9 | *waf |
| 16:54:04 | be9 | IMHO the best way to compile for windows is to use microsoft vcc. cmake gives us that |
| 16:54:37 | cremes | true... we're unfortunately in a world where we always need two build systems, one for unix and another for windows |
| 16:54:55 | cremes | there isn't a generic enough one that works well enough to be used on both |
| 16:55:20 | cremes | (at least not without jumping thru lots of hoops like installing cygwin, etc) |
| 16:55:33 | be9 | what really sucks is cygwin |
| 16:55:53 | cremes | heh |
| 16:56:08 | dbussink | i also think we can't avoid a separate windows build system |
| 16:56:17 | dbussink | but i have no clue what would be the easiest way to go there |
| 16:57:00 | dbussink | my windows c skills don't go beyond the standard visual studio project i created some time ago for some opengl programming |
| 16:57:25 | be9 | what I suggest is to completely switch to CMake for now. it's able to replace autohell on unix and generate valid makefiles for mingw & vcc on windoze |
| 16:57:26 | sfaxon enters the room. | |
| 16:57:30 | cremes | mine are atrophied... i wouldn't know where to start on a modern windows box (XP or later) |
| 16:57:43 | be9 | you lucky guys :) |
| 16:57:56 | cremes | osx & linux for me! |
| 16:58:06 | dbussink | yeah, me too :) |
| 16:58:50 | binary42_ leaves the room. | |
| 16:59:06 | dbussink | well, currently we don't use stuff like automake and autoconf |
| 16:59:15 | dbussink | so that doesn't need to be replaced |
| 16:59:15 | be9 | dbussink: we don't, external libs do |
| 16:59:19 | KirinDav enters the room. | |
| 16:59:31 | dbussink | well, i can build on my openbsd box that doesn't has it installed |
| 16:59:48 | mernen leaves the room. | |
| 17:00:04 | be9 | dbussink: all configure & libtool scripts are already there, so you don't need to install it |
| 17:00:12 | dbussink | ah ok |
| 17:00:15 | headius leaves the room. | |
| 17:00:34 | dbussink | did you look at how mri does it? |
| 17:01:13 | thehcdreamer leaves the room. | |
| 17:01:20 | be9 | dbussink: configure.bat :) |
| 17:01:52 | dbussink | i'm looking at it right now, doesn't seem really hard |
| 17:02:13 | dbussink | but i don't know how the other think about adding a dependency for unix systems |
| 17:02:18 | be9 | so I'm going to write cmake files for all libs and rbx itself and publish it on a separate branch |
| 17:03:12 | be9 | dbussink: from this point of view, pure ruby build sys is better :) |
| 17:03:49 | dbussink | too bad we can't keep up the "ignore windows" attitude forever ;) |
| 17:04:15 | cremes | we shouldn't want to |
| 17:04:25 | wmoxam enters the room. | |
| 17:04:31 | be9 | dbussink: rbx running on windows will attract more developers |
| 17:04:59 | dbussink | i know, i wasn't being serious |
| 17:05:23 | be9 | dbussink: at least, more interest (windows developers aren't probably best ones :) |
| 17:05:30 | dbussink | but ignoring windows makes life so much easier :) |
| 17:05:51 | dbussink | just like ignoring internet explorer during web development |
| 17:06:05 | dbussink | which i actually can for a project i work on :) |
| 17:06:20 | be9 | dbussink: lucky again :) |
| 17:07:51 | be9 | as for build systems, a new one can be added not removing old one |
| 17:08:16 | be9 | after all, it's not the makefile part that changes rapidly in rbx :) |
| 17:08:27 | dbussink | well, one thing i really want to have fixed is the location of all the platform specific gcc and linker options |
| 17:08:37 | jeremydurham enters the room. | |
| 17:08:38 | dbussink | they should be in one place, not everywhere as they are now |
| 17:09:20 | be9 | dbussink: for now, each library has its own options as I see |
| 17:09:33 | dbussink | yeah, well, not only for the libraries |
| 17:09:49 | dbussink | but stuff like the struct / const / types generators use gcc / cpp too |
| 17:10:01 | dbussink | and they should use the same options that shotgun is build with |
| 17:10:07 | be9 | dbussink: oh damn |
| 17:10:12 | dbussink | and ideally all libraries |
| 17:10:18 | graza leaves the room. | |
| 17:10:39 | be9 | dbussink: cmake can do that |
| 17:11:00 | d2dchat enters the room. | |
| 17:11:52 | dbussink | well, if you can get a prototype up relatively easy, please go ahead :) |
| 17:12:27 | be9 | dbussink: I'm going to. you seem to have a wide selection of boxes with different archs, we'll be able to test it |
| 17:12:42 | KirinDav leaves the room. | |
| 17:12:49 | dbussink | be9: virtual machines make that easy :) |
| 17:12:58 | be9 | dbussink: lol |
| 17:13:24 | be9 | dbussink: actually I haven't got a mac, that what I meant |
| 17:13:49 | KirinDav enters the room. | |
| 17:16:02 | dbussink | woo, everything works pretty good on openbsd :) |
| 17:18:58 | dbussink | hmm, for some reason, freebsd doesn't load the extensions properly, which are used for digest and other things |
| 17:19:18 | Vagabond | yeah, freebsd is kinda flaky |
| 17:19:33 | dbussink | well, besides that everything is ok |
| 17:19:47 | dbussink | Vagabond: any idea how this could be fixed? |
| 17:19:54 | Vagabond | you don't have problems with IPPROTO_UDP and friends not being defined? |
| 17:20:03 | dbussink | my freebsd experience is very limited |
| 17:20:03 | jtoy leaves the room. | |
| 17:20:20 | dbussink | Vagabond: that issue is solved |
| 17:20:24 | Vagabond | oh, nice |
| 17:20:35 | Vagabond | let me git pull |
| 17:23:13 | RyanTM leaves the room. | |
| 17:23:43 | RyanTM enters the room. | |
| 17:37:38 | headius enters the room. | |
| 17:40:06 | seydar enters the room. | |
| 17:40:32 | seydar | how do i access C constants through ffi? |
| 17:41:21 | dbussink | seydar: what do you want to access? |
| 17:41:27 | Vagabond | dbussink: okay, I've got rbx rebuilt, how do I triffer the issue you're referring to |
| 17:41:36 | seydar | LOG_PID |
| 17:41:41 | dbussink | Vagabond: ./bin/mspec ci |
| 17:42:01 | Vagabond | dbussink: yeah, that's already running ;) |
| 17:42:47 | dbussink | seydar: take a look at rakelib/platform.rake |
| 17:42:53 | dbussink | seydar: should be a simple addition there |
| 17:43:09 | seydar | wait i should add something? |
| 17:43:41 | seydar | no... do i need to make a StructGenerator? |
| 17:43:42 | dbussink | seydar: the constant needs to be available in ruby, even in you want to pass it to a ffi function |
| 17:43:58 | seydar | k |
| 17:44:23 | dbussink | seydar: if you want to use a c struct too, you need to change things in rakelib/platform.rake for that struct too |
| 17:44:42 | dbussink | seydar: look at existing structs in that case and do it in the same way |
| 17:44:44 | seydar | i just want to access LOG_PID, which seemed to be global |
| 17:44:45 | seydar | k |
| 17:45:17 | dbussink | seydar: did you see my comment on your ipaddr ticket on lighthouse? |
| 17:45:27 | seydar | not yet. lemme check |
| 17:46:38 | seydar | ah. yea, since i removed an unless.. end, i figured i should dedent the rest. it's using soft tabs , 2 spaces |
| 17:47:06 | seydar | i can fix the ipaddr implementation, no prob. |
| 17:47:18 | seydar | so aftr i add the c constant, what do I do to access it? |
| 17:48:05 | dbussink | seydar: well, you need to link it somewhere in the ruby code |
| 17:49:24 | seydar | yea, in platform.rake, but after that. |
| 17:49:29 | dbussink | seydar: look for example at kernel/core/io.rb line 111 and the next couple of lines |
| 17:50:26 | Ingmar leaves the room. | |
| 17:50:30 | Vagabond | dbussink: oh yes, I recall the problem you mention |
| 17:50:41 | Ingmar enters the room. | |
| 17:52:39 | dbussink | Vagabond: any idea how it could be fixed? |
| 17:53:07 | Vagabond | dbussink: digging into it now |
| 17:53:45 | seydar | k. thank you! |
| 17:56:01 | dbussink | seydar: did you check whether your changes to the const generator work? |
| 17:56:11 | seydar | working on it now |
| 17:56:27 | dbussink | seydar: you can remove runtime/platform.conf and then rake build again |
| 17:56:37 | seydar | remove?!?! |
| 17:56:43 | dbussink | that will create a new runtime/platform.conf and the constant should be in that file then |
| 17:56:59 | dbussink | runtime/platform.conf is created at build time |
| 17:57:14 | dbussink | that's not the same file as the platform.rake file of course :) |
| 17:57:35 | seydar | oh, ok. |
| 17:58:07 | seydar | why are syslog.h's constants uppercase but the others in rakelib/platform.rake in lowercase? |
| 17:58:28 | dbussink | seydar: they are all uppercase |
| 17:58:40 | dbussink | seydar: look at the constants, not at the structs |
| 17:58:43 | seydar | in rakelib/playform.rake? |
| 17:59:02 | dbussink | seydar: line 101 in platform.rake |
| 17:59:07 | seydar | oooh crap. i was making a new StructGenerator |
| 17:59:20 | dbussink | seydar: you probably need to create a log_constants somewhere |
| 17:59:35 | dbussink | seydar: well, if you want a constant, a struct is not very useful ;) |
| 17:59:50 | seydar | nyah! i knew that! i was testing you! |
| 18:00:13 | seydar | so what kind of struct generator should I make for syslog.h? |
| 18:01:31 | dbussink | seydar: does any of the functions you want to wrap with ffi use a struct? |
| 18:01:41 | seydar | no |
| 18:01:52 | dbussink | then you don't need a struct |
| 18:02:04 | Vagabond | dbussink: yeah, I'm not really having much luck figuring out why this ain't working |
| 18:02:11 | seydar | then how does it know what header file to look at? |
| 18:02:36 | dbussink | seydar: look down at the part where the constant definitions are evaluated |
| 18:02:50 | seydar | k. |
| 18:02:52 | Vagabond | the only thing I'm not seeing is where the actual library is told to load |
| 18:02:54 | dbussink | seydar: from line 479 onward |
| 18:03:09 | dbussink | Vagabond: a require statement should do that |
| 18:03:10 | seydar | dbussink: good. you pass the test |
| 18:03:19 | seydar | i, uh, definitely knew that |
| 18:03:21 | Vagabond | dbussink: no, I mean the C lib |
| 18:03:23 | dbussink | seydar: oh, that makes me feel all warm and fuzzu :P |
| 18:03:38 | dbussink | Vagabond: well, a require statement can also load on a .so file |
| 18:03:45 | dbussink | load in |
| 18:05:16 | Vagabond | yeah, okay i see |
| 18:05:27 | Vagabond | but why FFI can't see the functions still eludes me |
| 18:05:41 | dbussink | well, i think it doesn't get loaded properly |
| 18:05:55 | dbussink | due to some freebsd specific issue |
| 18:06:14 | dbussink | because ffi works ok for the c library functions that it is used for |
| 18:06:32 | srbaker enters the room. | |
| 18:07:16 | Vagabond | well, the .so for md5 isn't a ruby shared object, it's just a plain old C one |
| 18:07:45 | Vagabond | load handles that right? |
| 18:07:56 | dbussink | yeah, it should |
| 18:08:20 | dbussink | afaik that is |
| 18:08:25 | seydar | dbussink: what do i do about constants wrapped around an #ifdef in the C code? |
| 18:08:59 | Vagabond | dbussink: my FFI experience is kinda stale, but that's not how I remember it working |
| 18:09:02 | kevwil enters the room. | |
| 18:09:42 | dbussink | Vagabond: i could be wrong though, but there is something different on freebsd, because it does work for for example openbsd |
| 18:10:10 | Vagabond | right |
| 18:10:33 | Vagabond | I just don't know enough about the internals to even figure out where the breakdown is |
| 18:10:48 | Vagabond | let me go see how FFI works these days |
| 18:11:16 | Vagabond | I can probably help on the FreeBSD side, but the rbx side is all very different than the last time I was involved |
| 18:12:13 | dbussink | seydar: what is the exact problem? what needs to be defined to satisfy the ifdef? |
| 18:12:50 | seydar | dbussink: all the constants used in the syslog c-ext are wrapped in an #ifdef |
| 18:13:08 | seydar | i don't want to break something by assuming the constants exist |
| 18:13:10 | dbussink | seydar: what's the exact ifdef? |
| 18:13:39 | seydar | #ifdef LOG_PID; rb_module_function(LOG_PID....); #end |
| 18:14:12 | dbussink | seydar: i don't get it, what is it your trying to do? |
| 18:14:18 | wmoxam leaves the room. | |
| 18:14:29 | dbussink | seydar: rewrite the syslog stuff using ruby / ffi? |
| 18:14:47 | seydar | yes |
| 18:14:59 | seydar | and i don't want to assume a constant exists if it doesn't |
| 18:15:38 | dbussink | seydar: well, just test it in ruby |
| 18:15:53 | dbussink | seydar: because it will be nil here if the const generator doesn't find it |
| 18:16:17 | seydar | ooh |
| 18:16:21 | seydar | oh thats a relief |
| 18:16:22 | seydar | thank! |
| 18:16:28 | seydar | must write paper now |
| 18:16:29 | seydar leaves the room. | |
| 18:24:03 | wmoxam enters the room. | |
| 18:24:31 | srbaker leaves the room. | |
| 18:24:38 | srbaker enters the room. | |
| 18:27:46 | srbaker leaves the room. | |
| 18:28:00 | srbaker enters the room. | |
| 18:37:01 | GMFlash enters the room. | |
| 18:39:29 | mernen leaves the room. | |
| 18:39:43 | benburkert enters the room. | |
| 18:42:09 | djwhitt | http://marvin.spcom.org:8010/waterfall |
| 18:42:13 | djwhitt | a preview of things to come |
| 18:42:52 | mae enters the room. | |
| 18:43:13 | kevwil leaves the room. | |
| 18:44:28 | dbussink | djwhitt: waterfall has the association with the dreaded waterfall software engineering model ;) |
| 18:44:45 | djwhitt | true |
| 18:44:52 | djwhitt | I didn't write the software though |
| 18:45:03 | dbussink | ah, some existing system? |
| 18:45:08 | djwhitt | it's running a copy of this http://buildbot.net/trac |
| 18:45:30 | djwhitt | yeah, I started to, but then drbrain mentioned tinderbox thing for gems |
| 18:45:45 | djwhitt | I looked at that, but it seemed like more pain than it was worth for what I was trying to accomplish |
| 18:45:55 | djwhitt | but it got me thinking that there were probably solutions to this problem out there already |
| 18:46:40 | djwhitt | http://marvin.spcom.org:8010/one_line_per_build |
| 18:46:59 | djwhitt | there are other formats besides waterfall |
| 18:47:49 | srbaker leaves the room. | |
| 18:48:40 | _ADS_ enters the room. | |
| 18:49:41 | lifo enters the room. | |
| 18:49:50 | be9 leaves the room. | |
| 18:50:12 | KirinDav leaves the room. | |
| 18:53:02 | dbussink | but definitely looks useful |
| 18:53:23 | djwhitt | yeah, my configs aren't quite there yet, but I have the basics working |
| 18:58:04 | dodecaphonic enters the room. | |
| 19:00:26 | gnufied enters the room. | |
| 19:13:48 | _ADS_ enters the room. | |
| 19:13:50 | KirinDav enters the room. | |
| 19:14:32 | evan | so, btw, we don't have an "ignore windows" attitude. we just don't have any windows programmers yet who are working on the project |
| 19:15:19 | dbussink | well, it's probably not high on our list |
| 19:15:40 | dbussink | but we really need someone to pick it up, because it's gonna be a big effort |
| 19:16:23 | dbussink | evan: on something different, do you happen to have any idea why the digest stuff is failing on freebsd? |
| 19:16:35 | Vagabond | dbussink: zlib fails too, no? |
| 19:16:48 | dbussink | yeah, everything in lib/ext |
| 19:16:52 | evan | fail how? |
| 19:16:52 | dbussink | all the same problem |
| 19:17:20 | evan | let me book up my freebsd image and look |
| 19:17:38 | dbussink | ffi can't find the functions |
| 19:17:38 | dbussink | ArgumentError: "Unable to find function 'rbx_Zlib_z_stream_Alloc' to bind to Zlib.z_stream_Alloc" |
| 19:18:30 | dbussink | evan: i've been looking at openbsd, and it only has some really minor failures |
| 19:18:46 | wycats leaves the room. | |
| 19:18:54 | evan | it's probably a behavior of freebsd's dlsym() |
| 19:19:24 | wycats enters the room. | |
| 19:21:20 | _ADS leaves the room. | |
| 19:22:18 | mae leaves the room. | |
| 19:22:40 | srbaker enters the room. | |
| 19:23:05 | _ADS | evan: so on windows, are you hoping for a complete port to the MS development environent, or a hybrid solution using cygwin or MingW? |
| 19:23:56 | evan | complete port |
| 19:23:56 | _ADS | I got as far as building rubinius.bin on cygwin, but it was segfaulting even before it got to main() |
| 19:24:46 | Vagabond | I pity the poor guy who gets stuck doing the win32 stuff |
| 19:24:47 | evan | ok, well, that mode should work too |
| 19:25:03 | _ADS | it seems to me the biggest issue with a port is all those makefiles for external libraries |
| 19:25:36 | dbussink | evan: be9 wanted to test some stuff with cmake |
| 19:25:37 | _ADS | well maybe not biggeest, |
| 19:25:42 | _ADS | but the first hurdle |
| 19:27:10 | evan | _ADS: if thats the biggest issue, this is going to be easy. |
| 19:27:25 | evan | all other makefiles we have are autoconf, so i'm sure someone has gotten autoconf working on windows |
| 19:27:34 | dbussink | porting all the stuff in posix.rb is gonna be a lot more work |
| 19:27:56 | evan | yeah |
| 19:28:02 | evan | well, we won't port it directly |
| 19:28:03 | _ADS | Ok, that's true |
| 19:28:09 | evan | we'll refactor functionality from core into platform |
| 19:28:21 | evan | and remove direct usage of Platform::POSIX |
| 19:28:38 | dbussink | yeah, true, should all be abstracted |
| 19:28:49 | dbussink | probably the hierarchy rue suggested, looks sane to me |
| 19:29:10 | evan | sure |
| 19:29:24 | evan | all though, i had a plan to have different platform() directories |
| 19:29:52 | evan | and at build time, the correct one would be chosen |
| 19:29:54 | dbussink | and just include the correct one based on the platform? |
| 19:29:59 | evan | the other ones wouldn't even be included. |
| 19:32:58 | wifelette enters the room. | |
| 19:40:43 | aotearoa enters the room. | |
| 19:40:47 | jeremydurham leaves the room. | |
| 19:41:05 | aotearoa leaves the room. | |
| 19:42:43 | evan | yep, thats in |
| 19:42:48 | evan | freebsd uses RTLD_LOCAL by default |
| 19:44:24 | benburkert leaves the room. | |
| 19:44:25 | dbussink | so probably an easy fix? |
| 19:44:34 | evan | yep |
| 19:44:37 | evan | doing it now |
| 19:44:44 | Vagabond | nice |
| 19:46:56 | evan | hrm... that didn't seem to fix it... |
| 19:47:56 | dbussink | strange, openbsd man page for truncate says that errno is set to EINVAL for negative values, but it actually doesn't do that |
| 19:48:02 | evan | ah, there we go. |
| 19:48:14 | evan | dlopen(NULL, ..) and dlsym(NULL, name) |
| 19:48:21 | evan | aren't the same thing |
| 19:48:28 | evan | er. rather. |
| 19:48:38 | evan | dlsym(dlopen(NULL, ..), name) and dlsym(NULL, name) |
| 19:49:58 | evan | hrm. |
| 19:50:21 | evan | freebsd's libdl seems to have quite different behavior than others |
| 19:50:36 | mae enters the room. | |
| 19:52:10 | wifelette leaves the room. | |
| 19:53:33 | evan | bingo |
| 19:53:38 | evan | RTLD_DEFAULT was the key |
| 19:56:54 | dbussink | hmm, openbsd's truncate behavior is pretty different from that on other platforms |
| 19:57:12 | dbussink | irb responds in the same way, so it's a behavior of the libc function |
| 20:02:19 | joachimm leaves the room. | |
| 20:03:44 | Vagabond | hah, I just realized that if I want to test on some of my more oddball hardware I'd need to retarget GNU lightning to MIPS and Alpha first |
| 20:04:07 | Vagabond | that might be a bit more work than I'd anticipated ;) |
| 20:04:29 | evan | forget that |
| 20:04:36 | geekounet leaves the room. | |
| 20:04:36 | evan | we're going to get rid of lightning soon. |
| 20:04:47 | joachimm enters the room. | |
| 20:04:51 | dbussink | how hard are the 64 bit ppc problems with it? |
| 20:05:12 | evan | lightning doesn't support longlong type at all. |
| 20:05:19 | evan | zippo. |
| 20:05:21 | Vagabond | in favor of what? |
| 20:05:30 | dbussink | auch |
| 20:06:14 | evan | well, i'm going to write a FFI adapter |
| 20:06:14 | evan | that doesn't generate machine assembly |
| 20:06:14 | evan | so it will be slower, but work on all platforms that gcc works on |
| 20:06:14 | evan | that will get us by for a while |
| 20:06:22 | Vagabond | ah, okay |
| 20:08:03 | Vagabond | hell, if you ended up finding a replacement that generates asm, leaving in the slower one as a fallback would be great |
| 20:08:12 | evan | exactly |
| 20:09:50 | dbussink | what is used on x86 right now? |
| 20:11:06 | evan | a custom one rue wrote |
| 20:11:35 | evan | it just spits out assembly directly from some templates |
| 20:12:19 | dbussink | ah ok, so we're gonna keep that one? |
| 20:12:24 | evan | yep |
| 20:12:33 | evan | that and the amd64 one |
| 20:13:06 | Vagabond | maybe I can use rubinius as an excuse to learn MIPS asm |
| 20:16:41 | boyscout | 1 commit by Evan Phoenix |
| 20:16:42 | boyscout |