Index

Show enters and exits. Hide enters and exits.

00:03:41headiusevan: whatcha seein
00:17:27jbarnette leaves the room.
00:17:53NoKarma leaves the room.
00:18:09nari leaves the room.
00:32:56qrush_ leaves the room.
00:35:44lopex leaves the room.
00:41:21dysinger enters the room.
00:43:26dysinger leaves the room.
00:43:34dysinger enters the room.
01:02:07benburkert_ enters the room.
01:02:12headius leaves the room.
01:18:30benburkert leaves the room.
01:20:44nari enters the room.
01:27:46jicksta enters the room.
01:30:38wmoxam enters the room.
01:30:58michalw leaves the room.
01:35:10jtoy enters the room.
01:37:02cored leaves the room.
01:37:49imajes_ enters the room.
01:41:03nari leaves the room.
01:42:56nari enters the room.
01:58:12benny leaves the room.
02:05:16guitsaru leaves the room.
02:12:58dysinger leaves the room.
02:13:38moofbong enters the room.
02:14:39lstoll enters the room.
02:16:59brapse enters the room.
02:20:49ezmobius leaves the room.
02:26:07jbarnette enters the room.
02:27:33jackdempsey leaves the room.
02:33:05pauldix enters the room.
02:41:23jackdempsey enters the room.
02:43:48nari leaves the room.
02:47:11cremes enters the room.
02:50:23nari enters the room.
02:52:55DefilerAnyone know what I'm doing wrong here? http://pastie.org/251089.txt
03:10:13imajes leaves the room.
03:11:15lchin enters the room.
03:39:37jbarnetteDefiler: you still seeing the behavior you pastied? 'cause I'm getting that on "rake vm" with a fresh checkout
03:46:20pauldix leaves the room.
03:49:07DefilerYep
03:49:13DefilerStill getting it, even after a distclean
03:49:17Defilertime to look and see what broke it heh
03:49:26Defilerthanks for verifying that it happens on a fresh checkout
03:56:52Defileraah, I see what it is
03:58:07moofbong leaves the room.
03:58:30CIA-20* A comment for String::apply_and; 6524cab - Wilson Bilkovich
03:58:31CIA-20* Change LLVM_STYLE back to 'Release'; 9541ea8 - Wilson Bilkovich
03:58:47Defileroh, forgot I had that other commit on that branch hah
03:59:06Defilerjbarnette: Try building it with that change
04:00:33jbarnetteDefiler: good to go :)
04:01:15jbarnette...assuming the assertion failure in test_channel is a known thing
04:01:29DefilerProbably
04:01:40DefilerLet me see if it looks familiar. heh
04:01:49Defiler(by running them here)
04:01:54jbarnettechan->waiting->empty_p
04:02:34DefilerHrm. No test failures here
04:02:56jbarnetteO.o
04:03:02jbarnettedamned sunspots
04:04:05Defilermaybe try suffering through a rake clean? =(
04:04:24jbarnettealready started the pain
04:09:25benburkert enters the room.
04:26:08benburkert_ leaves the room.
04:31:26nari leaves the room.
04:34:47mernen leaves the room.
04:35:26edwardam enters the room.
04:36:00keisukefukuda enters the room.
04:36:46blakewatters leaves the room.
04:38:24obvio171 leaves the room.
04:52:42jbarnetteDefiler: weird, same failure. guess I should actually look at the test
04:58:46nari enters the room.
05:01:12benburkert leaves the room.
05:02:24Defilerjbarnette: What OS is this on again?
05:02:35jbarnetteDefiler: os/2 warp
05:02:37jbarnetteerm
05:02:41jbarnetteOS X
05:02:53jbarnetteOS X/x86
05:04:12Defilerhah
05:07:27ryanlowe leaves the room.
05:08:51ezmobius enters the room.
05:31:15benny enters the room.
05:32:47benburkert enters the room.
05:44:24aotearoa enters the room.
05:48:05RyanTM leaves the room.
05:51:29antares leaves the room.
05:55:00gnufied leaves the room.
06:04:57jackdempsey leaves the room.
06:12:16jbarnette leaves the room.
06:15:07trythil enters the room.
06:34:06wmoxam leaves the room.
06:37:09blakewatters enters the room.
07:11:33dysinger enters the room.
07:18:38thehcdreamer enters the room.
07:28:27BobFunkasdas enters the room.
07:37:19thehcdreamer leaves the room.
07:38:05keisukefukuda leaves the room.
07:39:16blakewatters leaves the room.
07:40:58blakewatters enters the room.
07:54:22blakewatters leaves the room.
08:02:19Fullmoon leaves the room.
08:02:49Fullmoon enters the room.
08:03:34dbussinkmorning
08:12:12evanhey there.
08:13:32keisukefukuda enters the room.
08:17:09dbussinkevan: ah, i have a question for you :)
08:17:25evansure, wassup?
08:17:53dbussinki was wondering, what's your opinion on changing mp_get_int in libtommath so it doesn't clip stuff at 32 bit?
08:18:04dbussinkbecause it could make our bignum code a lot cleaner
08:18:08BlackEdder enters the room.
08:18:20dbussinkand it's pretty much the only place where it's done
08:18:30evanI thought we already made that change
08:18:34dbussinknope
08:18:42evanwell, mp_get_int has to clip it somewhere
08:18:43dbussinkbut if there's no objection, i'm gonna change it ;)
08:18:58dbussinkwhy? because our native_int matches their internal representation
08:19:02dbussinkand that's a long
08:19:06evanno no
08:19:08evani mean
08:19:08dbussinkwhich is the same as our native_int
08:19:17evanyou can't represent the contents of a mp entirely as a long
08:19:25evanyou have to decide to only put some many bits in
08:19:28dbussinkyeah ok
08:19:30evanso what do you want to change it to?
08:19:35dbussinkto nothing
08:19:42evanyou.. can't.
08:19:43dbussinkso it gets the lower long
08:19:45evanyou have to clip it to something
08:19:59evanso you want to clip it to a long instead of an int?
08:20:02benburkert leaves the room.
08:20:04dbussinkyeah
08:20:14dbussinkbecause their internal mp_digit has that size
08:20:17dbussinkand our native_int too
08:20:22evanwhy not clip it to exactly the number of bits our Fixnum is?
08:20:27evan29
08:20:32dbussink28 / 60
08:20:36evani guess, i don't understand.
08:20:36dbussinkbut yeah, that could be done too
08:20:48evani don't see what doing long versus int buys us
08:20:58evanbut if you think it's important, go for it.
08:20:59dbussink64 bit platform issues
08:21:08dbussinkbecause they are different there
08:21:21evani'd prefer you write a new function
08:21:29evanmp_get_dbussink_number()
08:21:33evanor something :)
08:21:36jackdempsey enters the room.
08:21:44dbussinkyeah, that could be done
08:22:14evani'd prefer that to changing the meaning of mp_get_int
08:23:42dbussinkyeah, mp_get_native_int
08:23:45dbussinksomething like that
08:24:23keisukef_ enters the room.
08:24:54benburkert enters the room.
08:25:02Arjen_ enters the room.
08:26:05evansure.
08:26:18krsh enters the room.
08:27:03keisukefukuda leaves the room.
08:30:09trythil_ enters the room.
08:30:32trythil leaves the room.
08:32:14Fullmoon leaves the room.
08:37:14trythil_ leaves the room.
08:41:53Fullmoon enters the room.
08:55:17brapse leaves the room.
08:55:58octopod enters the room.
09:01:59wvdschel leaves the room.
09:15:52Fullmoon leaves the room.
09:30:08jackdempsey leaves the room.
09:31:10yugui enters the room.
09:37:00aotearoa leaves the room.
09:42:34thehcdreamer enters the room.
09:45:34thehcdreamer leaves the room.
09:59:31benburkert leaves the room.
10:00:06thehcdreamer enters the room.
10:08:45Maledictus enters the room.
10:17:23ezmobius leaves the room.
10:20:52imajes enters the room.
10:21:25chris2 enters the room.
10:26:21aotearoa enters the room.
10:28:07imajes_ leaves the room.
10:47:53Arjen_ leaves the room.
11:07:46lchin leaves the room.
11:09:36jtoy leaves the room.
11:26:18mutle_ enters the room.
11:26:50lchin enters the room.
11:27:34mutle leaves the room.
11:34:49lchin leaves the room.
11:37:30krsh leaves the room.
11:44:43aotearoa leaves the room.
11:49:58chris2 leaves the room.
12:44:46antares_ enters the room.
13:00:13yugui leaves the room.
13:00:58jicksta leaves the room.
13:05:29jicksta enters the room.
13:22:22jicksta leaves the room.
13:38:16keisukef_ leaves the room.
13:41:12robin_dewd_ leaves the room.
13:52:44thehcdreamer leaves the room.
14:01:19robin_dewd enters the room.
14:05:02edwardam leaves the room.
14:17:19mib_pwf0ge enters the room.
14:31:34atmos leaves the room.
14:35:19atmos enters the room.
14:37:15binary42 leaves the room.
14:37:36nari leaves the room.
14:40:54moofbong enters the room.
14:41:06wyhaines enters the room.
14:49:21dysinger leaves the room.
14:52:36michalw enters the room.
15:02:46botanicus enters the room.
15:08:21thehcdreamer enters the room.
15:08:28binary42 enters the room.
15:15:23Defilerdbussink: I added an 'mp_get_long' or something long ago for that reason. It should still be there.
15:15:40dbussinkDefiler: ah, maybe i should look for that then somewhere
15:15:45dbussinkdo you where you put it?
15:17:57Defilerdbussink: sec
15:18:39Defilerdbussink: aah.. I was thinking of e53047bc1b5a890f9fe8de4c
15:18:44Defilerwhere I added 'mp_set_long'
15:18:48Defilervs. get long
15:19:00dbussinkah ok, well, we'll probably want a get_long version too then
15:19:11dbussinkbecause with that the bignum code can be cleaned up another tad
15:19:12DefilerYeah, that sounds fine to me
15:19:42DefilerI didn't want to teach libtommath about native_ints, because they are signed
15:19:57thehcdreamer leaves the room.
15:21:43octopod_ enters the room.
15:26:29octopod leaves the room.
15:26:54botanicus_ enters the room.
15:29:37nari enters the room.
15:50:39pauldix enters the room.
15:52:44chris2 enters the room.
15:54:53atmos leaves the room.
15:55:10atmos enters the room.
15:55:43botanicus leaves the room.
15:57:02benburkert enters the room.
15:58:21antares_ leaves the room.
16:00:15krsh enters the room.
16:01:06blakewatters enters the room.
16:02:34jackdempsey enters the room.
16:11:16shayarnett enters the room.
16:16:14jackdempsey leaves the room.
16:19:08enebo enters the room.
16:22:48nicksieger enters the room.
16:22:57thehcdreamer enters the room.
16:23:00jackdempsey enters the room.
16:24:42shayarnett leaves the room.
16:36:35guitsaru enters the room.
16:40:50jackdempsey leaves the room.
16:44:45AndrewO enters the room.
16:47:29lopex enters the room.
16:50:27dbussinkDefiler: what do you think of all the to_int / to_i / to_nint stuff in bignum?
16:50:32dbussinki'd like to clean it up a bit
16:51:03DefilerI can't say it is my favorite part, but we do have a legitimate need for various kinds of conversion
16:51:13DefilerWe should look and see where each is used, I suppose
16:51:19dbussinkof course, but the naming seems a bit sometimes
16:51:36dbussinksometimes int means native_int, sometimes not
16:52:07DefilerOh man don't get me started
16:52:29DefilerWe should ban the letter 'n' from these function names
16:52:33dbussinkhehe
16:52:41DefilerSo ambiguous
16:52:44dbussinkyeah
16:52:45botanicus_ leaves the room.
16:52:48dbussinkand what about int?
16:52:52Defilersame, yeah
16:53:00dbussinkto_int, do you expect a native_int or an int?
16:53:05dbussinkor should it be to_native_int
16:53:08Defilerto_numeric was vetoed when I proposed it
16:53:13Defilerbecause it was 'too much to type'
16:53:38dbussinktyping a bit extra is not a problem if it removes insanity :)
16:53:41Defilertemplate <> { public public static public volatile concept_map SquizzList is so short
16:53:47DefilerI can see why to_numeric would be cast down
16:54:45dbussinkwell, numeric can create confusion with ruby's numeric
16:54:52dbussinki can see that as an objection
16:54:57DefilerSo, I think to_numeric and to_native (or to_native_int, etc) should be the names
16:55:12Defilerno, to_numeric would be the one that returned a subclass of Numeric
16:55:15Defilere.g. Bignum or Fixnum
16:55:26Defilerso it would return Object*
16:55:28dbussinkto_integer perhaps then?
16:55:32dbussinkand to_native_int
16:55:32dbussink?
16:55:36DefilerSure
16:55:53dbussinki've added back the set and get from long now
16:56:09evanwhat would to_numeric return?
16:56:10Defilerthough I think to_native is an easier sell, personally
16:56:12Defilera numeric
16:56:20evanwhat is a numeric?
16:56:26Defilera ruby object representing a number
16:56:31dbussinkwell, i would use to_integer there
16:56:37DefilerJust trying to think of words that have no meaning in C++
16:56:38dbussinkbecause it's actually an Integer object
16:56:43evanso, to_numeric == Object::i2n
16:57:17DefilerThe 'i' in i2n means 'native int', and the n means what again?
16:57:18evanwell, we could just mirror the ruby API
16:57:24evanand have a function called Integer()
16:57:42dbussinkwell, i don't see that being used in Bignum now
16:57:44DefilerI personally really like these being member functions, rather than macros or other weirdness
16:57:56dbussinkmost of the annoyance i have is with the int / native_int confusion
16:58:04evanDefiler: you can't have member functions on 'int' or 'native_int'
16:58:07DefilerYeah, I know
16:58:08evanthey're not objects.
16:58:12DefilerNot until C++0x at least ha ha
16:58:53DefilerMaybe I am just slow, but I constantly have to remind myself which is which between i2n and n2i
16:59:06evanthey're not in the same places
16:59:07DefilerBecause I think 'native_int' when I think of what I want an inward-facing function to return
16:59:15evanso i'm sure it's caught quickly
16:59:24DefilerSure. It doesn't introduce bugs, just new tabs in vim
17:00:32DefilerWe are so big on naming things clearly (LookupTable instead of rbxlt or something mad), that the three-letter converters stand out as being relatively hard to read
17:01:03danlucraf1 enters the room.
17:02:15evanok, so what should Object::i2n() be renamed to?
17:02:38evantakes a signed int, returns an Integer
17:03:20dbussinkwell, it works for me a lot better in the cpp vm
17:03:36dbussinkbecause seeing Object:: triggers me into "ok, we're not working on an object"
17:03:44dbussinkcontrary to ->i2n()
17:04:05evanDefiler: it'n n2i()
17:04:07evanhah
17:04:11evanbut yeah.
17:04:17headius enters the room.
17:04:21evani've fine changing them
17:04:27evanit's a pretty simple refactoring job
17:04:28dbussinkthat makes a huge difference imho compared to I2N() and N2I() in shotgun
17:06:09Defilerevan: so, n2i is meant to be 'native to Integer', just to confirm
17:06:18Defilerand i2n is convert self (an Integer) to a native_int
17:06:19evanno
17:06:34evanand no.
17:06:38DefilerOh, you were correcting dbussink not yourself
17:06:41evanyou've got them bacwards.
17:06:46evanDefiler: yeah
17:06:57DefilerOK, yeah, then I had it right before, just reverse what I just said. Heh
17:07:29DefilerSo I don't understand the i2n name at all, then
17:07:52Defilerint to numeric?
17:09:17evanyes
17:09:33Defilerstatic Object::to_integer and member functions Fixnum/Bignum::to_native perhaps?
17:09:36evanhow about using caps?
17:09:42evansince they're gonig to be objects?
17:09:45evani2N
17:09:49evanand N2i
17:09:54evanthat looks pretty weird though
17:10:05dbussinki'm ok with Defiler's idea
17:10:06DefilerYeah, looks weird, but it would be a little clearer than what we have now, amazingly. :)
17:10:30DefilerI am totally open to other ideas for what to call 'to_native', but it does return a native_int so it makes sense to me
17:10:43DefilerIt's not like you can work on the VM without knowing what a native_int is anyway
17:10:44dbussinkor Integer.from_native()
17:10:48dbussinkand to_native()
17:10:50DefilerOoh
17:11:17dbussinkInteger.from_long_long
17:11:18DefilerI like that
17:11:23dbussinkor whatever you want
17:11:57DefilerNo great reason for it to be on Object anyway, right?
17:12:06DefilerInteger reads nicely
17:12:12dbussinkyeah, that was my thinking too
17:12:13evansure
17:12:18dbussinkand we already have an Integer object
17:12:26evanbut lets use C++
17:12:32evanwe only need one
17:12:38evanwith multiple signatures
17:12:52evanthats why i was suggesting Integer()
17:12:55Defilerstatic Integer::from_native(native_int val)
17:13:02Defilerbut yeah, I see what you mean there
17:13:07dbussinki like the overloading actually yeah
17:13:09Defilerbecause we kinda want static Integer::from_someting
17:13:15evanhaving a dozen from_* methods is dumb
17:13:26evanwhy not just from?
17:13:28dbussinkevan: there are dozen of those on Object now ;)
17:13:33Defilerhot
17:13:33evanInteger::from(native_int i)
17:13:40evanInteger::from(int i)
17:13:44evanInteger::from(unsigned int i)
17:13:44dbussinkyeah
17:13:45dbussinkcool :)
17:13:46DefilerInteger::from(unsigned long long i)
17:13:47Defileretc
17:13:48Defilernice
17:14:10dbussinkcan you use a type as an argument in c++?
17:14:17dbussinkwe could do the same with to() then
17:14:30evanhm...
17:14:30DefilerInteger::to(TypeInfo destination_type)
17:14:32Defilerright?
17:14:34evanlike how?
17:14:55evanyou can as a template
17:15:10DefilerI guess we would need hardcore contravariant return types from that function
17:15:11evanif you make to a template function
17:15:31evanwhich would probably be ok
17:15:33rudebwoy_ enters the room.
17:15:43evansince it would just do a cast to the type they want.
17:15:54DefilerHrm.. the return type would be something that wasn't a class, though
17:15:57rudebwoy leaves the room.
17:16:06DefilerHow do you make a C++ function that can return an unsigned long or a native_int?
17:16:07evanDefiler: that actually doesn't matter
17:16:15evanyou can pass any time as a template param
17:19:32dbussinkmaybe it's easiest to do it manually still, i dunno
17:19:43dbussinkwould it have any performance impact?
17:19:51evandbussink: we'll be right back
17:19:53DefilerIt would all be compile-time
17:19:56evanwe've having a quick meeting
17:20:04dbussinkok
17:21:21headius_ enters the room.
17:21:21headius leaves the room.
17:22:32wmoxam enters the room.
17:26:51thehcdreamer leaves the room.
17:28:53BobFunk enters the room.
17:29:20jayWHY enters the room.
17:29:25BobFunk leaves the room.
17:30:53benny leaves the room.
17:34:27michalw leaves the room.
17:35:18rudebwoy_ leaves the room.
17:44:52mib_pwf0ge leaves the room.
17:52:23gnufied enters the room.
17:53:08BobFunk enters the room.
17:54:09BobFunk leaves the room.
17:55:52thehcdreamer enters the room.
17:56:13thehcdreamer leaves the room.
17:58:41lopex leaves the room.
18:04:10krsh leaves the room.
18:05:39octopod_ leaves the room.
18:06:18chris2_ enters the room.
18:12:59chris2 leaves the room.
18:24:12ijcd enters the room.
18:24:29benburkert leaves the room.
18:24:45ryanlowe enters the room.
18:25:02c0sin enters the room.
18:26:45ijcd_ enters the room.
18:35:34dgtizedevan: gcc 4.2.3 is complaining about jumping over an initialization in context.cpp
18:35:52evancould ya paste the error?
18:36:24dgtizedhttp://gist.github.com/4901
18:37:12evanoh rm.
18:37:14evanhrm.
18:37:23evanneed to just move the bytes declaration to the top
18:38:12dgtizedyea I mean that fixes it
18:38:57dgtizedI gather the goto's are from the squeak stuff directly?
18:39:27evanno
18:39:41evanjust the simplest way to implement the logic I wanted
18:40:45dgtizedk
18:41:58CIA-20* moved initialization of variable bytes out of goto block to make the compiler happier; 5668296 - Charles Comstock
18:42:03ijcd leaves the room.
18:48:23headius leaves the room.
18:48:51headius enters the room.
18:49:16headius leaves the room.
18:52:00jicksta enters the room.
18:52:31benburkert enters the room.
19:04:37guitsaru leaves the room.
19:12:30blakewatters leaves the room.
19:17:54bricolage enters the room.
19:19:46Arjen_ enters the room.
19:27:07BlackEdder enters the room.
19:27:21ezmobius enters the room.
19:30:52ijcd_ leaves the room.
19:37:47krsh enters the room.
19:37:50dgtized leaves the room.
19:37:56CIA-20* Add Context tests and ability to filter tests run. Set the env vars TEST and SUITE to filter which tests and suites are run. For instance, setting ...; d0399ec - Evan Phoenix
19:37:57CIA-20* Add autotest hook output, activated with AUTO=1 Hooks for running cxxtest under autotest. Outputs --- F SuiteName::testname::file::line for a test ...; 9f6c3f2 - Evan Phoenix
19:38:37evanok, you can now filter the C++ tests that are run using the SUITE and TEST env vars
19:38:48viimrles leaves the room.
19:38:57evanI got tired of waiting for 492 test to run everytime I changed something
19:39:29dgtized enters the room.
19:40:50enebo leaves the room.
19:43:37brixensweet
19:43:45dbussinkcool
19:43:56evanI added an autotest hook
19:44:03evanif someone wants to hook it up to autotest
19:44:09evanjust set AUTO=1
19:44:10dbussinkmy header skills are as always lacking, was trying to get that integer refactor going
19:44:19evanand it will print out easy to parse info about each test it runs
19:44:50evanoh, I was going to check something about template functions
19:45:57dbussinkah, no problem, go right ahead
19:46:09dbussinkfirst step i was going to try was the Integer::from stuff
19:47:40evanso, we could have
19:48:00evanchar blah = integer->to<char>();
19:48:13evanthat works
19:48:58brixenthat's pretty clean
19:49:10brixenpointy, but clean :)
19:49:14evanheh
19:49:49dbussinklooks nice :)
19:53:53dbussinkok, i'm just being plain dumb
19:54:08dbussinkcopy pasted a header conditional and didn't rename it
19:58:09evanI see a couple problems with out<>()
19:58:33evanit doesn't really tell you anything about what kinds of types you can pass into the <>
19:58:49evanmaybe we don't care about that, just let them pass any thing they want, and expect them to know what they're doing
19:59:47evanwhere as ::to_int() self documents nicely.
20:00:36dbussinkyeah, well, maybe we need it to be explicit
20:00:53dbussinkbecause when i think of it, the implementations could be pretty different
20:00:59brixenthe type should be fairly clear from context though
20:01:17dbussinkin order to ensure correct behavior for different bitsizes and endianness
20:01:47evanwell
20:02:16evanwhy not just have just have ->to_signed() and ->to_unsigned()
20:02:41evanor better, just 'native_int to_real()'
20:02:42dbussinkon what? only those two?
20:02:49evanand require the caller to cast it to the type they need
20:02:58evanI mean, thats all that to<>() would do anyway
20:03:15evanpull it out as the best type, then cast it to what you asked for
20:03:17dbussinkwell, stuff like FFI could need something that is able to convert a bignum into a long long for example
20:03:42evanah.
20:03:43evanok.
20:03:55evanwe'd have to get into template specialization to do that
20:04:04evanseems like we should just make it explicit
20:04:18dbussinkyeah, probably we should indeed
20:04:44evanesp. in the case of long long
20:04:51evansince you can't ask a Fixnum to be a long long anyway
20:05:00evanso it's not really a property of Integer
20:05:02evanjust of Bignum
20:06:27dbussinkwell, on 64 bit you can
20:06:33michalw enters the room.
20:06:47dbussinkbecause long long is still 64 bit there
20:07:33evanhm.
20:07:39dbussinkevan: http://gist.github.com/4921
20:07:42evanbut you wouldn't ever explicitly ask for that of a Fixnum
20:07:42dbussinkthat's for the from case
20:07:47scooprhint: #include <stdint.h> -> int64_t
20:07:48evanbecause a 32bit platform can't deliver.
20:08:05dbussinkevan: true, but you can if you don't know what it is
20:08:16evanhuh?
20:08:17larrytheliquid enters the room.
20:08:19dbussinkif you look at large file support for example
20:08:19evanthat makes no sense to me
20:08:29brixenevan: should we be using SYMBOL in tests instead of Symbol*, or do you care?
20:08:41dbussinkwhich uses long long which could turn into a Fixnum on 64 bit platforms
20:08:43evanso Fixnum::to_long_long on a 32platform would just be the 32bit value cast to a long long?
20:09:00evanbrixen: probably best to use SYMBOL.
20:09:04dbussinkyeah, i think it would be
20:09:05brixenevan: k
20:09:06evanjust to be consistent
20:09:14dbussinkpurely consistency yeah
20:09:23dbussinkeverywhere the same behavior
20:09:45evanok, well, don't forget
20:09:51evanif you put these methods on Integer
20:09:58evanyou can't use virtual dispatch
20:10:16dbussinkwhat i can see now is that everything except for converting to / from native_int is only really useful for ffi
20:10:22dysinger enters the room.
20:10:23evaneither these methods go on Fixnum and Bignum seperately, and happen to have the same names
20:10:36dbussinkevan: why can't they?
20:10:39evanor they go on Integer, and the Integer versions have to be made aware of it's subtypes
20:10:54evandbussink: because we can not use virtual methods in builtin classes
20:10:54dbussinkwell, doesn't the code have to be already?
20:11:06dbussinkalso not if they are static?
20:11:30evanthe to methods wont be static
20:11:34evanthe from methods will be
20:11:40dbussinkyeah ok, the to's wont be yeah
20:11:40evanperhaps we switched topics
20:11:47dbussinksorry for the confusion
20:11:56dbussinkthe from() should be fine though i think
20:12:06evanSure.
20:12:16evanthey all need to take STATE to though.
20:12:29evanotherwise you can't create Bignum's
20:12:32dbussinkah ok
20:12:56ijcd enters the room.
20:13:02dbussinkbecause of the allocation that is isn't it?
20:13:16evanyep
20:14:31enebo enters the room.
20:15:04evandbussink: right now, we have a Object::i2n() that doesn't take a STATE
20:15:07ezmobius leaves the room.
20:15:10evanit's used in a few places where we don't have state
20:15:20evanand we know that we just need a Fixnum (ie, no allocation)
20:15:30evanwe should put a static method on Fixnum for that
20:15:34dbussinkyeah
20:15:38dbussinkFixnum::from()
20:15:43evanyeah
20:15:46dbussinkshould be pretty explicit i think :)
20:15:48evanit doesn't need the massive overloading
20:15:53evanint is enough.
20:15:59evanthe caller can cast if they need more.
20:16:12dbussinknot native_int?
20:16:19dbussinkwould make more sense i think
20:16:31evansure
20:22:11evandbussink: hm, do we need all those forms of from()
20:22:12evan?
20:22:24dbussinkmwah, not really i think
20:22:36dbussinkthe char's and short's could be discarded
20:22:42evanyeah
20:22:44dbussinkthey go fine with just casting them when need
20:22:46dbussinkneeded
20:22:52evanexactly
20:22:56evanlets do that.
20:23:06evanbtw, you don't need to put the code for these in headers
20:23:14evanthrow them in .cpp files
20:23:22evanwe can optimize them back into the headers later if we need to.
20:23:53dbussinki was putting it in a separate cpp file
20:24:04dbussinki also moved the numeric definition to the integer.hpp header
20:24:10evansounds good.
20:24:13dbussinkor do you have objections against that?
20:24:23evannope
20:27:19brixenyay for SUITE
20:27:26aemadrid enters the room.
20:27:49aemadridhey
20:28:21aemadridhaving some troubles building rubinius on OSX PPC
20:28:48aemadridanybody built it on PPC and can help me figure it out?
20:29:33Yurik leaves the room.
20:32:00evanaemadrid: what troubles are you having?
20:33:39aemadridLINK librubinius-local-dev.dylib
20:33:40aemadridld: flag: -undefined dynamic_lookup can't be used with MACOSX_DEPLOYMENT_TARGET environment variable set to: 10.1
20:33:40aemadridmake[2]: *** [librubinius-local-dev.dylib] Error 1
20:33:40aemadridmake[1]: *** [lib/librubinius-0.9.0.dylib] Error 2
20:33:40aemadridmake: *** [vm] Error 2
20:33:41aemadridrake aborted!
20:33:50aemadridCommand failed with status (2): [make vm...]
20:33:51aemadrid(See full trace by running task with --trace)
20:33:53aemadridpastie is really slow right now
20:34:05ezmobius enters the room.
20:34:21brixenaemadrid: gist.github.com
20:34:58ijcd leaves the room.
20:35:21aemadridsorry
20:35:23aemadridhttp://gist.github.com/4926
20:35:33aemadridbrixen: thx for the link
20:36:00aemadridevan: it's osx 10.4 on a g5 ppc box
20:36:23evanaemadrid: run
20:36:29evanexport MACOSX_DEPLOYMENT_TARGET=10.4
20:36:31evanthen try again
20:36:50aemadridevan: do I need to make clean before?
20:36:55evanno
20:37:35aemadridevan: cool, thx
20:37:56aemadridlib/librubinius-0.9.0.dylib(single module) definition of ___hexnan_D2A
20:39:08aemadridevan: bunches of this http://gist.github.com/4927 but it keeps going
20:39:21BobFunk enters the room.
20:39:30evanaemadrid: hm,
20:39:33evanperhaps try a 'rake clean' :)
20:40:28aemadridevan: rake clean seems to have _cleaned_ everything, trying rake build again
20:40:44evank.
20:42:28aemadridevan: bunches of those warnings again http://gist.github.com/4928
20:42:44ijcd enters the room.
20:42:53aemadridevan: is gcc4.0 a problem?
20:43:00evannope
20:43:02evanstrange
20:43:06evanit warned, but kept going
20:43:09evanwell, you should be fine.
20:43:09aemadridweird
20:43:13evanwe'll have to look into it
20:43:18evanwould you open a ticket about this on lighthouse?
20:43:25aemadridsure
20:43:57evaninclude the output from 'uname -a' and 'gcc --version'
20:43:59evanin the ticket.
20:44:03aemadridthe 10.1 souldn't be too hard to fix
20:44:16aemadridany idea in which area I can look?
20:44:20aemadridI will
20:44:28evancan look for what?
20:45:09aemadridwhere it's doing 10.1 instead of 10.4
20:45:09tmornini enters the room.
20:45:11tmornini leaves the room.
20:45:36aemadridwhere it's setting MACOSX_DEPLOYMENT_TARGET to 10.1 instead of 10.4
20:45:49evanthats really supposed to be set by you.
20:45:54evanthats why we don't set it anymore
20:46:00aemadridok
20:46:05evanwe recommend people set that in their shell's rc file
20:46:13evanwe used to set it
20:46:16aemadridI thought it was figuring it out on it's own
20:46:19evanbut don't anymore.
20:46:43octopod enters the room.
20:46:49aemadridI guess it should be added to http://rubinius.lighthouseapp.com/projects/5089/getting-started
20:47:03evanok.
20:48:13aemadridor in INSTALL?
20:48:19gilesgoatboy enters the room.
20:51:26evansure
20:53:04brapse enters the room.
20:53:25evanwow, vm_copy is a rad darwin function
20:54:48DefilerHrm.. why do I see the docs for that online, but I don't appear to have a 'man vm_copy'
20:56:05evanno clue
20:56:09evani guess because it's a mach function
20:56:15evanthere aren't many man pages for mach functions
20:56:31evanit gives you copy-on-write memory at the kernel level
20:58:36nicksieger leaves the room.
20:59:27aemadrid leaves the room.
20:59:33nicksieger enters the room.
20:59:56shayarnett enters the room.
21:00:24larrytheliquid leaves the room.
21:04:25chris2 leaves the room.
21:23:58joachimm leaves the room.
21:24:42joachimm enters the room.
21:24:46Maledictus leaves the room.
21:24:50joachimm leaves the room.
21:29:33joachimm enters the room.
21:31:24dfg59 enters the room.
21:31:52gilesgoatboy leaves the room.
21:39:35shayarnett leaves the room.
21:40:26yroc enters the room.
21:56:05CIA-20* Fix stack GC invariant When a context is activated, if it's mature, it's remembered. This keeps us from having to run the write barrier when the stack ...; dbe8229 - Evan Phoenix
21:56:06CIA-20* Refactor context cache, fix semantics. Context cache now only recycles young contexts, like it should.; ee2c395 - Evan Phoenix
21:56:23krsh leaves the room.
21:59:13gilesgoatboy enters the room.
22:04:16blakewatters enters the room.
22:06:06jbarnette enters the room.
22:11:46fbuilesv leaves the room.
22:18:19michalw leaves the room.
22:31:36brapse leaves the room.
22:35:07dbussinkevan, Defiler I've pushed the first step of the refactor
22:35:22evancool
22:35:22dbussinkall tests still work for me, but please check :)
22:36:11wmoxam leaves the room.
22:36:26dbussinkneed to add some nasty and insane tests for all the signed / unsigned etc. cases
22:36:35dbussinkto verify they are 100% correct
22:36:43dbussinkthey now behave the same as they did
22:36:57dbussinkbut there aren't any specific tests for it as far as i can tell
22:38:29dbussinkbut i'm off to bed, late enough over here
22:38:31dbussinknite
22:39:22brixennight dbussink, and thanks :)
22:40:58headius enters the room.
22:42:28brixenthings like this make static languages so much fun: hashval hash = str->hash_string(state);
22:42:33brixentalk about redundant info
22:43:00brixenevan: can I make static hashval String::hash_string and hasval String::hash ?
22:43:23brixeninstead of hash_str for static and hash_string?
22:43:31evanwell
22:43:33evanno
22:43:34brixens/hasval/hashval/
22:43:36evanbecause there is Object::hash
22:43:42brixenahh, right
22:43:42evanand you can't shadow it in String
22:43:47brixenyep
22:44:26brixenI would say our C++ is cleaner, but definitely more obscure
22:44:37brixenor perhaps I just don't have it all in my head yet :P
22:45:43CIA-20* Isolated access to SymbolTable behind VM methods.; 195ef1b - Brian Ford
22:46:23brapse enters the room.
22:46:56brixenI should get our rubuildus bots running the cpp tests
22:50:03joachimm leaves the room.
22:52:59brixenhmm, I really like the look of Fixnum::from(0) over Object::i2n(0)
22:53:07moofbong leaves the room.
22:53:36evanme too
22:57:57evanhrm
22:57:59evanbroken dp
22:58:00evandep
22:58:14evandbussink's header change didn't cause instructions.o to get recompiled
22:58:14dgtizedhttp://gist.github.com/4956
23:00:15dgtizedbuild is broken for me because of the above paste
23:00:27evancompiled fine for me.
23:00:37lopex enters the room.
23:00:46evanack.
23:00:50evanfucking linux gcc!
23:00:55evancomplains about newlines at the ends of files.
23:01:07evanmeans dbussink probably used textmate
23:01:28drbrainha! that's no error!
23:01:37evanwe have -Werror on
23:01:38evanthough.
23:02:06drbrainthat shouldn't even be a warning
23:02:17dgtizedwhat the int -> native_int switch?
23:02:19evanI know.
23:02:27evanlinux gcc is stupid like that.
23:02:53evanok, pushed "fix", ie. a newline.
23:02:58jackdempsey enters the room.
23:03:04CIA-20* Fix primitive failure, rework primitive type checks. Primitive type checks are now performed carefully, defering to failure if the typecheck fails.; 5d54bad - Evan Phoenix
23:03:04CIA-20* Fix instructions.o dep, add newline; 933877d - Evan Phoenix
23:03:06evandrbrain: I kludged the instructions.o deps
23:03:12evandrbrain: by throwing *hdrs on the end
23:03:21dgtizednot fixed
23:03:23evanif you've got a better way, feel free to fix it.
23:03:36dgtizedsame type failure as before
23:03:43Arjen_ leaves the room.
23:03:44evandgtized: you have
23:03:50evandgtized: you have 933877d ?
23:04:29drbrainevan: I don't know if I have a better one, did you mark it?
23:04:32dgtizedif I do a git pull it says I'm up to date
23:04:44evandrbrain: mark it?
23:04:49evandgtized: same error?
23:04:50dgtizedand that includes the newline fix
23:04:55dgtizedevan: exact same
23:04:59evanwtf.
23:05:01evanum.
23:05:06drbrainwith a # TODO or HACK or FIXME
23:05:14evanah, no.
23:05:15evanshould have.
23:05:50evandgtized: could you check there is a newline there?
23:05:55evandgtized: ie, see if you can resolve it on your end
23:07:52dgtizedI guess I don't follow how a "cannot be overloaded" is affected by newlines
23:08:01evanoh
23:08:05evanso the newline one is gone
23:08:11evanbut the others are still there?
23:08:37evanhm.
23:08:42evani wonder why it's complaining about that
23:08:43evanone sec
23:08:47dgtizedoh I'm sorry -- yea it did change, no I don't have the newline anymore, but the overloading was the one I paid attention to
23:09:25dgtizedI didn't even register the newline error was in there somehow, I was focused on the overload error
23:10:48pauldix leaves the room.
23:13:04evanoh
23:13:16evanit's because native_int is a typedef of int
23:13:23evanso you can't overload both of them.
23:14:09evandgtized: go into integer.hpp
23:14:19evanand comment out line 28
23:14:23evanand see if that fixesit.
23:16:00joachimm enters the room.
23:16:17dgtizedwell it fixes that error, but then it complains later about an ambiguous call to vm/ffi.cpp:822: error: call of overloaded ‘from(rubinius::VM*&, long int&)’ is ambiguous
23:16:35evanhrm.
23:16:35evank
23:16:45dgtizedso it does need both
23:16:54evannah
23:16:56evanit doesn't.
23:17:18evanthose ffi calls need casts
23:17:28evanthey should be more explicit
23:17:39evanon 822, add (native_int) in from of result
23:19:42lstoll leaves the room.
23:19:58evanour native_int is a typedef from intptr_t
23:20:14evanwhich means 32bit on 32bit platforms, 64bit on 64bit platforms
23:20:53evanwhich, on all 64bit platforms I know of, means a native_int is the size of a long
23:20:59massthe problem with getting into ruby with rails, I keep typing things like "rails test" instead of "rake test"
23:21:02evanso we should be able to just have things that take native_int
23:22:27dgtizedyou also have to cast it in dir.cpp at line 78, and comment out the actual implementation in integer.cpp
23:22:33evanyep
23:22:38evanjust thinking about it now.
23:22:40dgtizedand all of these fixes will fail if I were running 64 bit
23:22:49dgtizedbecause then it would be the same as the long int instead
23:22:55evanseems that darwin, on 32bit, says that intptr_t == int
23:23:00evanand on linux, intptr_t == long
23:23:04evanwhich is fine, they're the same thing on 32bit
23:23:19evanbut it's causing a disconnect in how C++ wants to treat the type
23:24:46NoKarma enters the room.
23:25:26dgtizedwhat if we just don't bother with a native_int from?
23:25:38dgtizedshouldn't the long and int definitions just take care of it naturally?
23:25:45evanhm
23:25:49evanperhaps
23:25:50evanyes.
23:25:54evanthey should
23:26:00dgtizedk, I'll set it up that way
23:27:22evank
23:28:43ch0wda enters the room.
23:29:34ijcd leaves the room.
23:31:09dgtizedyea we already had this problem once before -- there was a comment in the integer.hpp saying we didn't need from(*,long) because it was taken care of by native_int
23:32:09enebo leaves the room.
23:34:30dgtizedI'm converting Bignum::from(*,native_int) into int and long versions as well
23:36:36evanok
23:37:08ch0wda leaves the room.
23:38:07dgtizedare we actually using every one of those from types?
23:38:21dgtizedFixnum::from is getting by just fine with only native_int
23:38:59evanthat one is a little different
23:39:19evanfix it up enough to work where you are
23:39:28evanthen lets talk with dbussink again
23:39:30evanwhen he's around
23:39:32dgtizedk
23:40:44CIA-20* fix for type overloading problems on Integer from native_int; 49bce9f - Charles Comstock
23:43:21binary42 leaves the room.
23:43:46BobFunk leaves the room.
23:44:02dgtizedthat still work for everyone else?
23:44:25brixenchecking..
23:45:47octopod leaves the room.
23:47:22brixendgtized: worked for me on osx intel
23:48:35evanalmost done moving ivars into the object header
23:48:49mutle_ enters the room.
23:49:08brixencool
23:52:59dgtizedbrixen: good -- I was worried since it was compiler fixing that I might break the build in reverse
23:59:53mutle__ enters the room.