Index

Show enters and exits. Hide enters and exits.

00:08:35moofbong enters the room.
00:15:52wycats enters the room.
00:19:26zenspiderwow. we're being amazingly thwarted
00:19:38evanzenspider: my run down make sense?
00:20:09drbrainyeah
00:20:17drbrainthat's what we're poking at
00:20:24evani'm betting thats the case
00:20:26w1rele55 leaves the room.
00:20:30evansince i don't see AS pulling in test/unit/assertions
00:20:33evanbefore adding shit to it.
00:20:42drbrainwhich is broken
00:20:45evanvery.
00:21:20zenspiderevan: that's exactly the case... they do HORRIBLE things because they have no fucking clue how to properly deal with dependencies
00:21:33evanyp.
00:21:35zenspiderin fact, almost all my problems go away if they just learn how to require
00:21:35evanyep.
00:21:43zenspiderI can swich t/u from modules to classes as I see fit, etc.
00:21:56evanyeah
00:22:06dctanner leaves the room.
00:22:25evanif you want, we can counter a little
00:22:33evanhooking into __const_set__
00:22:39evanto subvert their subversion.
00:22:57imajes enters the room.
00:23:06evanthat could get ugly though.
00:24:29yugui enters the room.
00:25:15moofbong leaves the room.
00:26:58drbrainwe're trying to get it working in MRI
00:31:49blakewatters enters the room.
00:36:02pauldix enters the room.
00:42:10zenspiderI've got code to ferret out the offenders
00:42:15zenspiderbut there aren't any
00:42:17zenspideryet
00:42:27zenspiderreally what's happening is I'm tanking on bloodsugar
00:42:36zenspidertoo much protein in my lunch, not enough carbs
00:43:03wycatszenspider: get a donut
00:43:06Defileryou should just lean over and bite into a stray neck
00:43:09Defilerevery few hours
00:43:10wycatswe need a Rubinius donut patrol
00:43:29DefilerI don't understand why we don't have a network of pneumatic tubes to distribute these donuts
00:45:00wycatsOmg... soylent donut... it's people!
00:47:14AndrewO enters the room.
00:47:48pauldix leaves the room.
00:52:12edwardam leaves the room.
00:52:19edwardam enters the room.
00:52:50edwardam_ enters the room.
00:53:51edwardam leaves the room.
00:56:44Silva enters the room.
00:58:27lopex leaves the room.
01:00:23Fishy5 leaves the room.
01:00:42imajes leaves the room.
01:00:53lstoll enters the room.
01:02:59mapar leaves the room.
01:06:42ezmobius leaves the room.
01:14:49twbray enters the room.
01:16:23ezmobius enters the room.
01:18:27zenspiderone dick's cheeseburger later and I'm still not back on track... I _am_ executing more tests now. 3 errors left
01:18:34zenspiderand prolly the same type of fix for 2 of them
01:18:49zenspiderevan: http://rafb.net/p/K7H1Jn48.html -- ugh
01:22:49kevinclark leaves the room.
01:24:00wycatsgo zenspider!
01:25:03crafterm enters the room.
01:25:38zenspidersuch gross code. I hate that I have to do this
01:25:50crafterm enters the room.
01:26:23zenspiderand honestly, I really don't trust the rails guys to fix their code... it has been a long time since they've accepted one of my patches wo breaking it
01:27:07twbray leaves the room.
01:29:12wycatszenspider: :(
01:29:20wycatsthis is why we made Merb
01:29:26wycatswhich probably isn't up to your standards either :P
01:29:30wycatsbut at least it's only 4k LOC
01:29:34wycatsinstead of 100Kloc
01:29:58elight leaves the room.
01:29:59anteaya leaves the room.
01:31:23squeegy leaves the room.
01:32:50evanzenspider: ug indeed.
01:34:57mapar enters the room.
01:37:25kw leaves the room.
01:38:52yugui leaves the room.
01:39:42robin_dewd enters the room.
01:41:33anteaya enters the room.
01:44:22corp enters the room.
01:46:12NoKarma leaves the room.
01:47:57_sk enters the room.
01:48:12_skhello rubinius
01:48:22evanhello
01:48:35evan_sk: i see you're coming all the way from japan, welcome.
01:48:51_skhmm, not actually from japan
01:48:59_ski'm from malaysia
01:49:03evanah.
01:49:06_skworking in a japanese company :)
01:49:12eventualbuddha enters the room.
01:49:19evangotcha.
01:49:34_skevan, i was checking the rubinius build last night
01:49:39evanok.
01:50:09_skand noticed, you need shotgun, as well as a compiled rbc for the compiler to actually compile the rest of the .rb files into .rbc
01:50:27evanyes, thats what the purpose of the stables is
01:50:32_skshotgun + stable rba that's what i meant
01:50:37evanpre .rbc compiled versions
01:50:38evanyep
01:50:40_skbut how did you do the stables?
01:50:43evanbecause the compiler is written in ruby
01:50:48evanah!
01:50:54evanthey have evolved
01:51:00evanthe first versions were generated by 1.8
01:51:15evanuntil rubinius was able to produce versions itself
01:51:15edwardam leaves the room.
01:51:18_skic... tq very much...
01:51:28edwardam enters the room.
01:51:30tarcieriheh, bootstrapping is fun
01:51:34tarcieriwants to do it with Reia
01:52:28_skrubinius looks fun enough in that sense
01:53:29m7d enters the room.
02:00:37xhanjian leaves the room.
02:01:56dysinger leaves the room.
02:05:39dfg59 leaves the room.
02:06:42cored enters the room.
02:08:32jtoy enters the room.
02:09:06mapar leaves the room.
02:11:24shame enters the room.
02:24:26kevinclark enters the room.
02:30:15VVSiz_ enters the room.
02:31:10squeegy enters the room.
02:37:34VVSiz leaves the room.
02:44:08m7d leaves the room.
02:44:23manveru leaves the room.
02:44:32manveru_ enters the room.
02:44:52fowlduck enters the room.
02:46:41MenTaLguY leaves the room.
02:50:26MenTaLguY enters the room.
02:50:29MenTaLguY enters the room.
03:01:52radarek leaves the room.
03:03:00lstoll leaves the room.
03:14:22xhanjian enters the room.
03:15:24eventualbuddha leaves the room.
03:16:51boyscout2 commits by Eric Hodel
03:16:52boyscout * RDoc for Dir::glob.; 6fd11a4
03:16:53boyscout * Fix Dir::glob to support '**/x/** patterns properly; 4caee3a
03:17:15drbrainwoo! #562 closed!
03:17:52brixendrbrain: nice!
03:25:43drbrainI mistranslated MRI's dir.c
03:25:49drbrainbut I finally understand
03:30:07cored leaves the room.
03:31:08rubuildius_ppcEric Hodel: 6fd11a4da; 2175 files, 7167 examples, 25748 expectations, 0 failures, 0 errors
03:31:51corp leaves the room.
03:33:45vertiginous enters the room.
03:35:45yipstar leaves the room.
03:37:32MenTaLguY leaves the room.
03:38:10cezarsahey guys, is there anyone available to review 2 patches i've submitted (564 and 565)?
03:41:03drbraincezarsa: I approve of both
03:41:17drbrainbut, I think evan should look at it to double check
03:41:44cezarsadrbrain: thanks!
03:42:46fowlduck leaves the room.
03:42:52brixencezarsa: #564 doesn't change ruby.c
03:42:58brixencould you resubmit on that one?
03:43:10brixencezarsa: otherwise, they both look good
03:47:17edwardam leaves the room.
03:48:47cezarsabrixen: but changing ruby.c isn't really needed, should i add it to the patch just for consistency?
03:49:01rubuildius_ppc leaves the room.
03:49:34rubuildius_ppc enters the room.
03:49:40brixencezarsa: ah, I see. probably no need then
03:50:00brixencezarsa: I should have #565 committed in just a sec
03:50:23brixencezarsa: then you can use your shiny new bit to handle #564 :)
03:51:48boyscout1 commit by Cezar Sá Espinola
03:51:49boyscout * Adding rb_str_cat2 to subtend, with specs.; a9282f1
03:52:25brixencezarsa: pastie evan your pub ssh key (preferably not generated on old debian/ubuntu :)
03:54:45cezarsabrixen: thx! one second i'll do the pastie, is evan still here?
03:55:21drbrainhe is not idle on IM
03:56:50brixenevan: ping?
04:04:01benny leaves the room.
04:05:08cezarsaevan: if you show around here, my pub_key http://pastie.caboo.se/private/juonc0opk1fcrjyfe7puya, brixen commited #565 for me, i'd love to get a fresh rubinius bit :)
04:05:43rubuildius_ppcCezar Sá Espinola: a9282f193; 2175 files, 7168 examples, 25749 expectations, 0 failures, 0 errors
04:06:51benburkert leaves the room.
04:08:31ezmobius leaves the room.
04:17:16kw enters the room.
04:22:36headius_ enters the room.
04:22:44benburkert enters the room.
04:27:01charlenopires leaves the room.
04:28:59dysinger enters the room.
04:29:59jeremydurham_ enters the room.
04:30:44AndrewO leaves the room.
04:31:11jeremydurham leaves the room.
04:37:20michaellatta_ enters the room.
04:38:39headius leaves the room.
04:43:53Silva leaves the room.
04:51:58mediogre enters the room.
04:53:25michaellatta leaves the room.
04:59:35trythil enters the room.
05:10:01rubuildius_amd64Cezar Sá Espinola: a9282f193; 2175 files, 7166 examples, 25723 expectations, 0 failures, 0 errors
05:10:03rubuildius_amd64Eric Hodel: 6fd11a4da; 2175 files, 7165 examples, 25722 expectations, 0 failures, 0 errors
05:15:40RyanTM leaves the room.
05:16:43rueI wonder, after the "runs Rails" milestone, can we go for the "gets Rails to unfuck their codebase" milestone?
05:18:30jeremydurham leaves the room.
05:23:01benburkert leaves the room.
05:34:17robin_dewd leaves the room.
05:36:31ezmobius enters the room.
05:39:52corp enters the room.
05:43:53mernen leaves the room.
05:45:09corp leaves the room.
05:49:34rueHuh. I am surprised my change this morning did not break stuff.
05:52:32TheVoice leaves the room.
05:53:03headiusevan: ping
05:53:08headiuslooks like he's not around eh?
05:53:19rueDoes indeed
05:53:46edwardam enters the room.
05:54:10TheVoice enters the room.
05:54:11corp enters the room.
05:55:23TheVoic1 enters the room.
05:58:48corp leaves the room.
05:59:06TheVoic1 leaves the room.
05:59:20TheVoice leaves the room.
05:59:35dysinger leaves the room.
06:00:04evani'm back
06:00:21evangot a partial migraine after my jog
06:01:58TheVoice enters the room.
06:02:00blowmage enters the room.
06:02:46vertiginous leaves the room.
06:16:11scudco enters the room.
06:20:14benburkert enters the room.
06:32:38lstoll enters the room.
06:43:02wycatssends evan a o (that's a donut)
06:49:11TheVoice leaves the room.
06:49:42TheVoice enters the room.
06:59:31anteaya leaves the room.
07:03:35benburkert leaves the room.
07:04:52kw leaves the room.
07:05:08Ferdinand enters the room.
07:09:24Ferdinand leaves the room.
07:11:58headius
07:17:03_sk leaves the room.
07:17:25jzj enters the room.
07:17:29_sk enters the room.
07:17:44jzjhi, while im testing the compiler spec
07:19:17jzjwhere is the TestGenerator#push_literal defined?
07:19:40jzjcan't find it anywhere
07:21:02ruejzj: spec/compiler/spec_helper.rb. Some of the instructions may just be done through #method_missing
07:21:20edwardam leaves the room.
07:26:34jzjrue: i have checked there
07:26:42jzjbut #method_missing isn't used there
07:26:49jzjin the TestGenerator
07:28:23w1rele55 enters the room.
07:38:24jzji found it
07:38:24jzjthx
07:38:28ruejzj: It is in lines 69-80. It just grabs the instruction names
07:39:09jzjyeah
07:39:19jzji lost this line :)
07:39:22jzjthx, rue
07:40:31Maledictus enters the room.
07:53:46michaellatta_ leaves the room.
07:54:20michaellatta enters the room.
08:04:20rudebwoy enters the room.
08:04:33blowmage leaves the room.
08:10:15qwert666 enters the room.
08:12:18thehcdreamer enters the room.
08:12:31trythil leaves the room.
08:13:33dctanner enters the room.
08:29:30maharg_ enters the room.
08:33:43dbussinkmorning
08:35:45rueMorning
08:35:53trythil enters the room.
08:42:34maharg leaves the room.
08:44:29ezmobius leaves the room.
08:45:13lchin__ leaves the room.
08:47:39octopod enters the room.
08:49:50mutle enters the room.
08:54:17Spakmanbrixen: hi! I'm around now - what's up?
09:00:08dbussinkSpakman: he's probably asleep now
09:00:22Spakmandbussink: cheers
09:02:31brixenSpakman: rumors of my sleep have been exaggerated :)
09:03:40brixenSpakman: I was wondering about the BasicSocket specs, whether it would be possible to move the setup code into before :each actions
09:04:11brixendidn't know if you had tried that and ran into problems
09:04:29brixendbussink: morning btw :)
09:04:53dctanner leaves the room.
09:05:10dbussinkbrixen: i shouldn't assume things i guess ;)
09:06:03brixendbussink: I should be asleep, hope to be very soon
09:07:22crafterm leaves the room.
09:09:10Spakmanbrixen: no, I didn't play with that much because the code inside the threads are slightly different in each case.
09:09:44brixenahh, yes I see that now
09:09:56brixenI thought only the .send was different
09:10:08SpakmanI guess we should be able to reduce the code somewhat though, especially if more are added to the same file
09:10:08brixenit is rather a tough thing to spec
09:10:22brixenyeah, was just curious is all
09:10:30Spakmanit's fiddly - testing send and recv kind of depend on each other
09:10:37brixenyep
09:12:13SpakmanI'm trying to spec BasicSocket#recv_nonblock just now, but am a little confused about if I've found an MRI bug or not.
09:15:47rueOne of those two should really be verified independently of the other
09:16:14rueMay need to use external software for it, though
09:18:37Spakmanrue: I agree - have you got any thoughts?
09:18:45headius leaves the room.
09:20:54rueThe quick and dirty way would be to just use socat or netcat
09:22:53imajes enters the room.
09:25:40trythil leaves the room.
09:26:49rueOf course have to execute those conditionally and just do the mutually dependent ones if the system has neither
09:28:31rueCannot really think of any other reasonable approaches. I am actually just writing some more mocking code for recv() but I think dropping to an untested C extension for this is less than optimal :)
09:29:35Skip enters the room.
09:30:53Spakmanrue: I'd be really interested to see the mocking code once you're happy enough with it, if you don't mind
09:31:56imajes leaves the room.
09:32:02_mk_ enters the room.
09:49:42rueSpakman: Let me do a real quick writeup
09:53:20wvdschel enters the room.
09:57:40rueSpakman: http://pastie.org/200735
09:58:09rueStill pretty evil. Really extracting it to a proper framework would clean up a bit of course
10:00:12rueOh, and then of course you can access the arguments given for any of the invocations that took place
10:13:54fmardini enters the room.
10:17:09benny enters the room.
10:24:40corundum leaves the room.
10:25:41corundum enters the room.
10:26:00drbrain_ enters the room.
10:28:13dctanner enters the room.
10:34:44drbrain leaves the room.
10:42:51gnufied leaves the room.
10:44:29BlackEdder enters the room.
10:54:24Spakmanrue: my implementation of BasicSocket#send and #recv is http://rubinius.lighthouseapp.com/projects/5089/tickets/567-patch-basicsocket-send-and-basicsocket -recv
10:56:17olabini enters the room.
11:00:26hosiawak enters the room.
11:02:39zenspiderSpakman: you should be able to use __send__ instead of aliasing object_send
11:03:49jzj leaves the room.
11:05:09zenspiderI've assigned it to drbrain_
11:06:36Spakmanzenspider: ah, I *knew* there would be a nicer way - I've been looking for that. Cheers.
11:09:45rueYep. Otherwise fine
11:09:56atmos leaves the room.
11:10:13jtoy leaves the room.
11:17:28jzj enters the room.
11:20:40jzjin the Compiler, why are there @slot and @position
11:21:03jzji thought they are used to index locals, right?
11:24:19olabini leaves the room.
11:25:04olabini enters the room.
11:28:23radarek enters the room.
11:31:18ruejzj: Slots are the index numbers, so more like addresses
11:31:39jzjhow about stack_position
11:32:23jzjwhat's the different of them
11:32:52rueStack position is for arguments passed on the stack
11:33:30rueIt also takes into account the object sizes and so on
11:34:18jzjit is special for Argument, right?
11:34:34jzjslot are used to index normal locals
11:38:27rueWell, slots are also used for arguments so I think the more precise way to say it would be that only arguments can have a stack_position
11:38:40dctanner leaves the room.
11:39:41rueIt is used in this context by the slot to locate the correct argument object
11:40:47rueThis should all be unified a bit sometime soon too, by the way
11:44:04jzjthanks,rue.
11:45:42jzj leaves the room.
11:50:16thehcdreamer_ enters the room.
11:55:54benny leaves the room.
11:59:14thehcdreamer leaves the room.
12:07:07_sk leaves the room.
12:40:25webmat enters the room.
12:49:19RyanTM enters the room.
12:53:28qwert666 leaves the room.
12:57:56anteaya enters the room.
13:04:17charlenopires enters the room.
13:06:28cezarsa leaves the room.
13:07:21jeremydurham enters the room.
13:19:48yugui enters the room.
13:21:12yipstar enters the room.
13:25:16jeremydurham leaves the room.
13:26:48imajes_ enters the room.
13:27:45imajes_ leaves the room.
13:28:14imajes_ enters the room.
13:30:11fudgie leaves the room.
13:30:12imajes__ enters the room.
13:36:05cezarsa enters the room.
13:42:45imajes___ enters the room.
13:42:49imajes leaves the room.
13:44:03cezarsa leaves the room.
13:44:06cezarsa enters the room.
13:44:34gnufied enters the room.
13:48:53imajes_ leaves the room.
13:52:19anteaya leaves the room.
13:53:30imajes__ leaves the room.
13:56:15fmardini leaves the room.
14:00:57jtoy enters the room.
14:04:27fbuilesv enters the room.
14:14:04blakewatters leaves the room.
14:24:19yugui leaves the room.
14:27:22cezarsa leaves the room.
14:28:27charlenopires leaves the room.
14:28:39robin_dewd enters the room.
14:34:30pauldix enters the room.
14:35:32yugui enters the room.
14:35:51anteaya enters the room.
14:38:48cksouza enters the room.
14:46:34enebo enters the room.
14:49:31AndrewO enters the room.
14:49:59fbuilesv leaves the room.
14:50:28fbuilesv enters the room.
14:53:19jeremydurham enters the room.
15:01:07moofbong enters the room.
15:05:59enebo leaves the room.
15:06:08RyanTM leaves the room.
15:06:21enebo enters the room.
15:07:02RyanTM enters the room.
15:09:30Skip leaves the room.
15:10:24Ski1 enters the room.
15:22:22wmoxam enters the room.
15:24:56blakewatters enters the room.
15:25:06jeremydurham leaves the room.
15:32:29cyndis leaves the room.
15:40:55MenTaLguY enters the room.
15:41:05MenTaLguYhello
15:42:20TheProkrammerwaves
15:46:13rueMorning
15:48:40therealadam enters the room.
15:52:21moofbong leaves the room.
15:52:35moofbong enters the room.
15:58:44benstiglitz enters the room.
15:59:17RyanTM leaves the room.
15:59:30mediogre leaves the room.
16:00:10RyanTM enters the room.
16:00:52cyndis enters the room.
16:03:39yasuhito enters the room.
16:03:59wmoxam leaves the room.
16:04:54wmoxam enters the room.
16:05:26benburkert enters the room.
16:05:48foysavas leaves the room.
16:06:37foysavas enters the room.
16:13:57random8r enters the room.
16:15:59random8rhey all
16:18:55RyanTM leaves the room.
16:19:36RyanTM enters the room.
16:20:23nicksieger leaves the room.
16:21:53nicksieger enters the room.
16:23:29kw enters the room.
16:23:50anteaya leaves the room.
16:33:07chris2 enters the room.
16:34:58yasuhito leaves the room.
16:35:39yasuhito enters the room.
16:37:41shame leaves the room.
16:38:56dfg59 enters the room.
16:39:49trythil enters the room.
16:41:05dysinger enters the room.
16:41:46benburkert leaves the room.
16:45:26hosiawak leaves the room.
16:45:40random8r leaves the room.
16:46:18lstoll leaves the room.
16:49:53jtoy leaves the room.
16:55:10dctanner enters the room.
16:55:59yasuhito leaves the room.
17:00:17edwardam enters the room.
17:09:10mediogre enters the room.
17:09:37edwardam_ enters the room.
17:10:09edwardam_ leaves the room.
17:10:22edwardam_ enters the room.
17:10:35edwardam leaves the room.
17:11:33ShayArnett enters the room.
17:12:11joachimm enters the room.
17:12:17kw leaves the room.
17:13:43fbuilesv leaves the room.
17:18:35mapar enters the room.
17:18:37mutle leaves the room.
17:20:52hosiawak leaves the room.
17:21:04lopex enters the room.
17:22:03dbussinkevening people :)
17:25:32hosiawak enters the room.
17:28:45brixenevening dbussink
17:30:24rueMorning, oh timezonally challenged one
17:30:41dbussinkrue: talking in self reference? ;)
17:33:15rueAh, self, dbussink is here I says to myself
17:33:42dbussinknow you're losing me :)
17:40:16rubuildius_ppc leaves the room.
17:40:17dysinger leaves the room.
17:40:49rubuildius_ppc enters the room.
17:41:11thechdreamer leaves the room.
17:41:43mapar leaves the room.
17:42:02wycats leaves the room.
17:42:52dysinger enters the room.
17:48:10benburkert enters the room.
17:51:02joachimm leaves the room.
17:51:10xmlhacker enters the room.
17:53:29benburkert leaves the room.
17:54:14veek enters the room.
17:55:46trythil leaves the room.
17:57:18joachimm enters the room.
17:58:56octopod leaves the room.
18:00:59wycats enters the room.
18:01:55dfg59 leaves the room.
18:02:01charlenopires enters the room.
18:06:32ShayArnett leaves the room.
18:06:48olabini leaves the room.
18:07:07shame enters the room.
18:09:34anteaya enters the room.
18:15:13edwardam_ leaves the room.
18:16:06mapar enters the room.
18:16:26atmos enters the room.
18:17:13mkrauskopf enters the room.
18:18:57timo leaves the room.
18:22:43dctanner leaves the room.
18:27:36qwert666 enters the room.
18:30:49Yurik leaves the room.
18:31:22Yurik enters the room.
18:32:59benburkert enters the room.
18:36:01macournoyer enters the room.
18:36:32anteaya leaves the room.
18:39:44Yurik- enters the room.
18:39:48eventualbuddha enters the room.
18:40:50mapar leaves the room.
18:42:45trythil enters the room.
18:43:22reynard_ enters the room.
18:44:50Yurik-_ enters the room.
18:46:46Yurik-__ enters the room.
18:47:48mapar enters the room.
18:47:58evanmorning
18:49:14dgtizedevan: two things, the symlink to external_libs from vm doesn't appear to be in the repo should I add it
18:49:51dgtizedevan: and secondly I'm getting all kinds of warnings about casting from const char * to char *
18:49:53joachimm_ enters the room.
18:49:59lchin leaves the room.
18:50:10dgtizedevan: which is apparently a new "feature" of g++ 4.2
18:50:41dgtizedevan: it seems to be related to -Wwrite-strings but I can't turn it off
18:50:58dgtizedand it's not supposed to be automatically enabled with -Wall
18:51:40brixenevan: did you get the pub key pastie from cezarsa ? I committed his patch in #565 last night
18:52:13evandgtized: sure, add it.
18:52:20evandgtized: yeah, we should figure out how to fix that.
18:52:31evanbrixen: let me scroll up and see.
18:52:45trythil leaves the room.
18:52:55joachimm leaves the room.
18:53:19evangot it
18:53:20evanman
18:53:29evanpastie throws me a 500 pretty much 50% of the time.
18:55:00evanbrixen: ok, added his key.
18:55:15dgtizedevan: http://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Errors/compiling_warnings.htm l#string%20constants
18:56:30dgtizedevan: it's an insanely annoying warning because it's trying to force you to make a shit ton of things const, and I forsee that having other problems
18:56:37reynard_ enters the room.
18:56:39evandgtized: ok.
18:56:50dgtizedevan: I hate const, as soon as you start adding it it just starts bleeding all over everything
18:56:50evandgtized: so we need to treat all string literals as const char* then, right?
18:57:00evanyeah
18:57:11Yurik leaves the room.
18:57:12dgtizedevan: they are, the problem is that our function definitions are char * and not const char *
18:57:31dgtizedevan: but I don't know as we can swap them in many cases
18:57:39xhanjian_ enters the room.
18:58:03evanhm. ok.
18:58:08dgtizedevan: I mean does it make sense for VM::new_class to take a const char *?
18:58:28dgtizedevan: I mean we can duplicate code and make both versions but that seems idiotic as well
18:58:49evanyeah, i think so.
18:59:07dgtizedevan: that's why I have been trying to figure out how to just turn it off, but it doesn't seem to allow that
18:59:11evanthis is partly my ignorance
18:59:16dgtizedevan: the yes was to new_class can take a const char *?
18:59:20evanand thats why I turned it off.
18:59:27evanyeah, new_class can take a const char*
18:59:38evanmost things probably be const char*
18:59:40dgtizedevan: but does it also need to take a char *
18:59:47evanhow come?
18:59:50xhanjian leaves the room.
19:01:24dgtizedevan: I don't know for whenever it's a user specified type?
19:01:42Yurik- leaves the room.
19:01:53evani don't know when that would be
19:02:01evanit doesn't modify the name
19:02:06evanjust creates a symbol from it.
19:03:00dgtizedif I create a class Foo in ruby code
19:03:15dgtizedwill the symbol name :Foo be stored as a const char * or a char *?
19:03:22evanum.
19:03:35evani don't think it even uses VM::new_class currently
19:03:48evanbut none the less, Foo is already a symbol
19:03:50dgtizedk, but when it does we have to deal with it again, though I guess for that we could just cast it
19:03:52evanso there would be no char*
19:03:53mapar leaves the room.
19:03:55dgtizedk
19:06:15Yurik-_ leaves the room.
19:08:51thehcdreamer enters the room.
19:09:01headius enters the room.
19:10:31eventualbuddha leaves the room.
19:11:42dbussinkevan: hmm, i just tested -O2 for the cpp vm, but it breaks some stuff
19:13:06dbussinkevan: also results in some compile time warnings
19:14:57boyscout1 commit by Brian Ford
19:14:58boyscout * Updated MSpec submodule to 3b48d1b7; 8197cb5
19:15:59evandbussink: hm, ok.
19:16:09evandoes -O2 cause segfaults or just compile errors?
19:16:35dbussinkevan: http://pastie.caboo.se/200983
19:16:47dbussinka test failure
19:16:55evanthats
19:16:56evanawesome
19:16:57evanactually.
19:16:58evan:)
19:17:10evansince it shows us exactly what changed.
19:17:17evanin shotgun, when -O2 would break stuff
19:17:22evanit would take me a week to hunt it down.
19:17:43_mk_ leaves the room.
19:18:32dbussinkevan: on os x, so easy reproducible
19:18:41evanyep.
19:18:44evanthats interesting
19:19:07evansince that was calling strlen on "strlen"
19:19:14evani wonder why it got 5 instead of 6
19:19:27evanunless the String didn't get created properly
19:21:29trythil enters the room.
19:24:21dbussinkevan: and, any luck with it?
19:24:43evani'm debugging something else atm.
19:24:48dbussinkah ok
19:24:50evanif can't get to it, open a ticket
19:24:54evanso I don't forget.
19:24:58evaner.
19:25:01evanif you can't get to it...
19:27:26dgtizedevan: where is type_assert defined in the new vm?
19:27:53evanmmm
19:27:55evanobject.h i believe.
19:28:09evanoh, it's declared thene.
19:28:23evanhm, i seem to have put it in the wrong place.
19:28:31dgtizedyea it's in objects.hpp
19:28:36dgtizedsorry object.hpp
19:28:52evanoh
19:28:54evanthe body is in vm.cpp
19:28:58evanthats dumb place for it
19:29:03dgtizedah should I move it back?
19:29:11evanback to where?
19:29:20rubuildius_ppcBrian Ford: 8197cb5c4; 2175 files, 7168 examples, 25749 expectations, 0 failures, 0 errors
19:29:37dgtizedobject.cpp?
19:29:52evanbuiltin_object.cpp
19:29:55evanis probably where it should go.
19:30:00evanthough
19:30:03evaneven thats a bad place.
19:30:11evanhm.
19:30:12Fullmoon enters the room.
19:30:18evanbut thats a better place than it currently is
19:30:25dgtizedprelude?
19:30:25evandgtized: i pushed a change to the build system
19:30:27evaneverything ok?
19:30:29evanno no
19:30:31evannot prelude
19:30:32evanthats just headers
19:32:14pauldix_ enters the room.
19:35:02dgtizedevan: the change from much earlier today?
19:35:22evanyeah
19:36:31kw enters the room.
19:36:45dgtizedevan: I think it's still having some trouble further on but it's getting further anyway
19:37:43macournoyer leaves the room.
19:39:01evank
19:39:13evanwell, let me know what problems you have.
19:41:36dgtizedevan: ./global_cache.hpp:68: error: no matching function for call to ‘rubinius::MethodVisibility::public_p(rubinius::VM**)’
19:41:47dgtizedevan: it's there but it's a VM* not **
19:41:50evanhuh
19:41:52evanthats bizarre.
19:42:24evanthe call site doesn't have it being a ** either.
19:43:04thehcdreamer leaves the room.
19:44:58dgtizedevan: it seems to think that STATE is *& for just that method
19:45:20evanSTATE is always that.
19:45:27evanfor everyone.
19:47:13olabini enters the room.
19:47:26dgtizedevan: http://www.pastie.org/201011
19:48:13evanhm.
19:48:23evanG++ always lists stuff wih & in the args list
19:48:25pauldix leaves the room.
19:48:30evaneven if you never declare it as such.
19:48:44dgtizedah
19:49:15evanwhats odd is that you're the only one that gets that.
19:49:21evanwhat g++ version are you on?
19:49:36dgtizedgcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
19:49:49evanhm, ok.
19:50:01evani'm betting it's something about the version.
19:50:19evanhm
19:50:23evanthats the only place STATE is used..
19:50:26evanI wonder..
19:50:28joachimmevan: is this an acceptable way of testing type_to_name http://pastie.textmate.org/private/eirwara7nrlisezoa8wog
19:50:42evandgtized: what file was it compiling when that happened?
19:50:58evanjoachimm_: ack
19:51:02evani was about to remove type_to_name.
19:51:30evanhm, actually, I can leave it in
19:51:32evanit's still usefull
19:51:36evanthe answer is no though.
19:51:47evanwell
19:51:49evanhm.
19:52:00evani was going to say you should just pass in the type value directly
19:52:11evanObject::type_to_name(String::type)
19:52:13evanlike that.
19:53:14benburkert leaves the room.
19:53:23trythil leaves the room.
19:54:01dgtizedevan: looks like test/runner.cpp?
19:54:14evaninteresting.
19:54:31evani'm thinking that global_cache.hpp is included before prelude.hpp
19:55:12dgtizedah
19:55:52dgtizedevan: no because global_cach.hpp includes objects.hpp and that includes vm.hpp and that includes prelude.hpp
19:56:02evanyeah
19:56:04evani saw that.
19:57:21radarek leaves the room.
19:57:51evandbussink: interesting, i get 1 instead of 5 with -O2
19:57:56evanseems to be data corruption
20:01:41dgtizedevan: so still no idea on that? I have a bunch of const char * changes but I don't want to check them in if I can't at least get to the test phase
20:01:55stouset enters the room.
20:01:58evank
20:02:59stousetI've recently rewritten Pathname, since it's slow as crap and uses memory like a 747 uses gas. Any interest in replacing the version shipping with Rubinius with it, evan?
20:03:21evanone sec
20:03:25evanon the phone
20:03:39stousetOk.
20:04:00drbrainwhy don't we use Berger's Pathname2?
20:04:10drbrainisn't it feature compatible?
20:04:37stousetdrbrain_: pathname2 doesn't pass specs, AFAIK, and is also slow. He's got a C version, but it's not available through gems.
20:04:50drbrainok
20:05:08stousetAlso, it doesn't implement things like join correctly. He wrote a facade module, but it breaks on methods with rest args.
20:06:40stousetMine passes (almost) all specs. It doesn't pass the ones that test private method functionality, and most of the rest are non-meaningful differences. i.e., sometimes it'll return a path with extra slashes, and I don't.
20:06:56dgtizedevan: going to lunch, but the other thing is that this whole objects, object, builtin_object source files business makes finding methods confusing, any way we can consolidate?
20:07:41brixenstouset: sounds great. could you add a ticket with your code as a patch?
20:08:03stousetYeah. I was asking first mainly to see how compatible you wanted it to be.
20:08:18brixenstouset: also, if the existing specs are for really odd behavior, we can submit questions/bugs to ruby-core
20:09:01brixenstouset: compatible as in specs or compatible as in shipping the same stdlib files as MRI?
20:09:14stousetThere's (I think) two places where I act differently than pathname that ships with MRI, but one's a matter of consistency, and one is where I think theirs implements it incorrectly. But I can maintain a branch that has those two work like MRI.
20:09:31stousetAs in specs.
20:09:34brixensure
20:09:51MenTaLguYtarcieri: http://moonbase.rydia.net/mental/blog/programming/actor-object-protocol.html
20:10:10brixenwell, the spec some mostly from just seeing what MRI does. sometimes that results in really weird specs, so we can always ask for clarification
20:10:24brixenspec comes*
20:10:25evanstouset: if it breaks with MRI in only known places, and those places are speced, we could probably use it
20:10:33evanwe should try and get MRI to use it as well
20:10:48evanthere is a bigger issue of what the rubinius stdlib should look like
20:10:51stousetDo you care about specs that test private, internal-use-only methods?
20:10:56evani'd hate to have a stale version of your new pathname
20:11:19stousetAnd do you care about specs that fail on non-meaningful differences? e.g., "a//b" vs. "a/b"
20:12:14brixenstouset: specs like "a//b" should probably be bugs
20:12:21bdheeman enters the room.
20:12:36brixenstouset: we can guard the specs like those that fail for now and ask about them
20:12:42stousetOk.
20:13:17evanhm
20:13:26evanit's how to define "non-meaningful"
20:13:32brixenyeah
20:13:36evanwe have the same issue with MRI's internals
20:13:37brixenlet's see what fails
20:13:47evanlike, say, IO's buffering behavior
20:14:03evanwhats intended and whats impl. artifact.
20:14:04mediogre leaves the room.
20:14:37evanif we use your version, i'll want to set it up so that it can be upgraded without having to upgrade rubinius
20:14:54evanie, it's installed as a gem or something
20:15:00evanthat goes for a lot of the stdlib too.
20:15:45stousetevan: Fair enough. It's a pretty straightforward library, though. Not much maintenance other than bugfixes, I suspect.
20:16:10evanright, but i want to plan a little for the unplanned for.
20:16:18evancgi.rb is a good example of this
20:16:23evansince it had some NASTY bugs
20:16:35evanbut couldn't be upgraded unless the released a whole new version of MRI
20:16:50stousetYeah. Hence cgi_multipart_eof_fix :)
20:16:51benburkert enters the room.
20:17:32evanyep.
20:17:52evanif we can do a little prep now and avoid that kind of situation, i think well be in a better place
20:17:58evanstouset: oh! i should mention about pathname
20:18:06evanlong ago I submitted a patch to pathname
20:18:20evanto have it use 'self.class.new(...)' to create objects
20:18:26evanso that Pathname could be subclassed
20:18:27stousetAlready done. :)
20:18:30evanyay!
20:18:35stousetActually, slightly differently.
20:18:38stousetString#to_path
20:19:01stousetAnd Pathname#to_path noop
20:19:08stousetBut same effect.
20:19:16evanhm, not sure how that works.
20:19:20evani mean so that stuff like
20:19:32evanSub.new("a") + Sub.new("b")
20:19:35evanreturns an instance of Sub
20:19:58stousetAh. Hmm.
20:20:31evanin the curernt Pathname
20:20:32stousetI can look at that. I don't think that'll work as is. Everything in pathname uses to_path, which returns a pathname regardless of if it's a string or path.
20:20:38evanthose operations typically use Pathname.new
20:20:42stousetOh!
20:20:43evanthus defeating subclassing
20:20:44stousetEasy fix.
20:21:17stousetto_path on a pathname returns self. So it already works.
20:21:32stousetSubclass pathname, and to_path will still just return self.
20:21:47evanok
20:21:52stousetSince to_path is used everywhere internally, it should be alright.
20:22:20stousetOut of curiosity, why did you need to subclass to_path? :)
20:22:29stousets/to_path/Pathname/
20:22:59evanA good question...
20:23:02evani'm trying to recall.
20:23:13edwardam enters the room.
20:23:18mkrauskopf leaves the room.
20:23:19evanI think because I wanted to have operations on certain paths
20:23:33evanlike
20:23:42evanSub#lines_of_ruby
20:23:43stousetJesus. Just benchmarked Pathname. 1 million core Pathname.new's takes 3s vs 1 for mine. 1 million joins takes 94s vs 4s for min.
20:23:43evanor something
20:23:58evanby subclassing Pathname
20:24:02evani got all the path construction for free
20:24:15stousetFair enough.
20:24:33evanwow.
20:24:38brixenstouset: nice
20:24:39evani knew it was a hog, but wow.
20:25:00stousetIt's on github, by the way. http://github.com/stouset/pathname3/tree/master
20:25:08stousetI'm cloning rubinius right now, going to make a patch for it.
20:25:12tmm1 leaves the room.
20:25:26evanok.
20:25:53edwardam_ enters the room.
20:26:02tmm1 enters the room.
20:28:11brixenwho worked on iconv?
20:30:57evanme
20:31:39brixenevan: heh, yeah, just git blamed
20:31:50brixenle'me pastie you something
20:31:52tmm1 leaves the room.
20:32:06rubuildius_amd64Brian Ford: 8197cb5c4; 2175 files, 7166 examples, 25723 expectations, 0 failures, 0 errors
20:32:19brixenevan: http://pastie.org/201047
20:32:31brixenapparently iconv ignores multiple close calls
20:32:40brixenthat's a naive fix for now, was getting a double free error
20:32:44tmm1 enters the room.
20:32:44evanah
20:32:49evanthats a good fix.
20:32:51brixenwhat was cool, is that rbx handles double frees in stride
20:32:55brixenok, I'l push it
20:33:53brixencool, we have a bunch more (failing for now) iconv specs in
20:33:58evansweet.
20:34:03evanshould be easy to fix
20:34:09evani didn't write the whole API
20:34:12brixenyep
20:34:18evanprobably just need methods fleshed out.
20:34:23brixenyeah
20:34:49brixenevan: oh, and the error message on double free is great
20:34:56evanthe darwin one?
20:35:02brixenthe rbx one
20:35:06rueIconv was failing on rubuildius_amd64 when I pushed in the FFI error
20:35:07evanwe have one?
20:35:10evanwhats it look like
20:35:10brixentells you were to break to fix it
20:35:13brixenor debug it
20:35:15evanno
20:35:16evanthats darwin
20:35:17evannot rbx
20:35:19brixenahh
20:35:25brixenwell, thanks darwin then :)
20:35:31evandarwin has the nice FreeBSD malloc functions
20:35:35evanwhich track errors for you
20:35:44ezmobius enters the room.
20:36:41ruedgtized: Always always add const wherever possible. It is one of the top 3 bug squashers
20:37:01evanack.
20:37:08evandbussink: found the problem
20:37:18evani must have been doing drugs when I wrote ffi.cpp
20:37:37evanit stores pointers to memory returned from alloca() into an argument and returns it
20:38:13MenTaLguYwhoops
20:38:33tmm1 leaves the room.
20:39:04evanyeah, whoops.
20:39:15tmm1 enters the room.
20:40:21rueC const is kind of useless, C++ very useful particularly since you can apply it to return values
20:41:03edwardam leaves the room.
20:41:25MenTaLguYconst returns wouldn't exactly help with the alloca thing
20:41:43dbussinkevan: ah, nice
20:41:46MenTaLguYactually you can return const pointers in C also though
20:41:54MenTaLguYC simply doesn't have references in the C++ way
20:42:38boyscout3 commits by Brian Ford
20:42:39boyscout * Updated CI exclude tags for newest version of rubyspecs.; 5de72c0
20:42:40boyscout * Fixed Iconv#close to ignore multiple calls.; e321c71
20:42:41boyscout * Updated RubySpec submodule to fd97b295.; 7214e24
20:44:25boyscout1 commit by Ryan T Mulligan
20:44:26boyscout * Modifies INSTALL for Ubuntu; c18ecb5
20:44:44rueMenTaLguY: It only warns
20:45:31MenTaLguYdoes it?
20:45:35evan[1]cezarsa: allo! you have commit rights now
20:45:40MenTaLguYI thought it required a cast if you're assigning to a non-const pointer...
20:46:02Fullmoon leaves the room.
20:46:03mkrauskopf enters the room.
20:46:04cezarsa leaves the room.
20:46:18RyanTMIs rake git:safe_push meant to be used from within a checked out branch?
20:46:27evanRyanTM: can be
20:46:49RyanTMthanks
20:47:08rueMenTaLguY: Nah, you just get the {assignment,initialization} discards qualifiers even with -Wall -Wextra -std=c99 -pedantic
20:47:19dysinger leaves the room.
20:47:34rueWhich is not all bad, mind you. But the C++ variant seems much more useful
20:47:58MenTaLguYah, hm
20:49:11rueThere is always -Werror :)
20:50:22dbussinkevan: pushed the fix yet?
20:50:28evanabout to
20:50:32evanrunning the tests now.
20:50:34evanok, fixed.
20:50:48enebo leaves the room.
20:53:54ezmobiussup friends
20:54:12stousetevan: Do you want me to submit a patch for pathname3 or link to it, so you can include via submodule? Or otherwise
20:55:10evandbussink: ok, pushed.
20:55:16brixenhowdy ezmobius, how's things
20:55:17evanhm
20:55:24ezmobiusgood
20:55:27evanstouset: well, you want to use it on MRI too, right?
20:55:37stousetThat would be nice.
20:55:47evanstouset: you should submit a ticket about using your gem as rubinius' default pathname
20:55:57evandon't submit a patch that contains all of yours
20:55:59ezmobiusfinally finished implelenting our new protocol for distributed computing/automation on top of xmpp
20:56:12evanwe need to consider how to make this possible and not have a big duplication of code
20:56:20stousetnods
20:56:36stousetNo gem yet, unfortunately. It'll be up on github as soon as they fix their gem building support.
20:56:43evanok
20:56:50stousetEverything's in place, but they aren't building it.
20:56:56evanah
20:56:59evandid they turn it off?
20:57:27stousetDunno. First time I've tried it. Gem builds fine on my machine from the gemspec, and I followed their instructions. Others have complained about the same.
20:58:09evank
20:59:20evandbussink: just did another push
20:59:30evandbussink: primitives are resolved and executed now.
21:00:08evandbussink: compile http://pastie.org/201070
21:00:22evanusing 'ruby lib/compiler/mri_compiler.rb <file>'
21:00:22dbussinkcool!
21:00:36evanthen 'rake vm; vm ./file.rbc'
21:00:49evanthe architecture is starting to shine more
21:00:58evanwiring up primitives to be executed was trivial.
21:01:12dbussinkis everything exported?
21:01:18evanjust make a new VMPrimitiveMethod class with an execute() method
21:01:18dbussinkor are the annotations used?
21:01:25evanannotations.
21:01:38dbussinkcause i haven't been adding them everywhere
21:01:48evanthats k
21:01:50evanok
21:01:53evanwe're just starting that
21:02:06evancheck out gen/primitives_glue.gen.cpp
21:02:13evanto see what the annotations create
21:02:26dbussinkah, i see yeah
21:02:45evanresolve_primitive is called just once
21:02:58evanto return the pointer to the primitive to use
21:04:53dbussinkhmm, when having method overloading, Ruby.primitive! should work, shouldn't it?
21:05:41rubuildius_ppcRyan T Mulligan: c18ecb5f6; 2186 files, 7157 examples, 25818 expectations, 0 failures, 0 errors
21:05:42rubuildius_ppcBrian Ford: 5de72c0f7; 2186 files, 7157 examples, 25818 expectations, 0 failures, 0 errors
21:07:02evanyep
21:07:13evancheck the glue code is generated properly
21:07:40RyanTMI'm getting errors with the default rake inside of the spec/frozen submodule, is that normal right now?
21:08:54benburkert leaves the room.
21:08:58RyanTMaha, I figured it out
21:10:48dbussinkevan: found a small bug in it
21:11:13dbussinkevan: regexp that didn't accept the * in Float* Fixnum::add
21:12:04evanok
21:12:19cezarsa enters the room.
21:13:57dbussinkevan: hmm, i see the method overloading i used can become problematic
21:14:06evanhow so?
21:14:29dbussinkbecause of div uses it, although it should probably not be exposed as a direct primitive
21:14:38dbussinkuses more than 1 argument
21:14:53evanwhich function?
21:14:58evani'm looking for it
21:15:00boyscout1 commit by Ryan T Mulligan
21:15:01boyscout * Modifies INSTALL for Ubuntu; 807f8b5
21:15:41dbussinkevan: Bignum::divide
21:16:18evanyeah
21:16:28evanthose don't work as primitives anyway
21:16:37evanbecause it can't handle the 3rd arg
21:16:55dbussinktrue, but it could be refactored in such a way that divide just uses divmod for example
21:16:58evanjust write a version that can work as a primitive
21:17:03evanthat calls divmod
21:17:10evanthat returns an array of the 2 values
21:17:22antares enters the room.
21:17:47evanArray* divmod(STATE, FIXNUM b);
21:17:55brixendbussink: the general division of these methods in shotgun was pretty sane I think. just need to translate to cpp
21:18:04brixenevan: I tried to avoid creating the array unless necessary
21:18:10evansure
21:18:11chris2 leaves the room.
21:18:18dbussinkis creating that array that heavy?
21:18:19brixencreating the array just to pluck out the value is not sensible
21:18:22evanthis is just for the version that will be called directly as a primitive
21:18:31brixendbussink: think math ops in loops
21:18:39brixenwe shouldn't do this naively
21:18:43dbussinktrue
21:18:44evanif it's heavy or not doesn't matter
21:18:52evanbecause you have to return an Array for the operation
21:18:58brixenthe point is, it's not needed
21:19:06dbussinkthat's why i've written all of them with it in mind ;)
21:19:12evan>> 1.divmod(2)
21:19:13evan=> [0, 1]
21:19:13dbussinkbut i kept being annoyed by divide
21:19:16evanneed an array
21:19:19dbussinkyeah, but the point is div
21:19:24brixendivmod is a composite operator
21:19:41dbussinkcould also not compute the mod in divide, but that introduces quite some code duplication
21:19:41evanso write a version that just doesn't return the remandor
21:19:54dbussinkbecause the algo is the same as for divmod
21:19:58dbussinkcould also go that way
21:20:02evanthat calls the version that computes the remainder, but doesn't do anything with it
21:20:08brixendbussink: why doesn't the current way work?
21:20:23dbussinkbrixen: it doesn't make defining them as primitives very easy
21:20:32dbussinkbrixen: in combination with method overloading
21:20:37evanwait wait.
21:20:40evani'm confused
21:20:44evanthis seems really simple.
21:20:47evanwhats the issue?
21:21:14dbussinkwell, brixen is worried about performance if divide calls divmod and just plucks out one element from the array
21:21:26dbussinkbecause i arithmetic loops that could be heavy
21:21:40dbussinkthat's the reason behind the current construct with a pointer for the modulo
21:21:46evanwait
21:21:47brixenthis wasn't necessary in shotgun, why is it necessary now?
21:21:49evanit doesn't have to
21:22:03evanit doesn't have to use the version that returns an array
21:22:11dbussinkbrixen: well, shotgun had dedicated separate primitives
21:22:13evanjust use the version that returns the value in a pointer
21:22:20dbussinkbrixen: the new vm auto generates them from the c++ code
21:22:31dbussinkevan: yeah, that could work too
21:22:35brixendbussink: yes, but every function in the new vm doesn't have to be a primitive
21:22:43brixenyou can still use utility functions
21:22:58dbussinktrue, but i'd love to minimize it where possible
21:22:59brixenprimitives map to operations, not to precise functions, necessarily
21:23:07evannot anymore.
21:23:12evanthat thinking is gone.
21:23:13brixenconceptually
21:23:24evanperhaps
21:23:33brixenit's not gone,you just annotate which function
21:23:39brixenunless I'm totally confused
21:23:43evanno, thats how.
21:23:47evani think dbussink is confused
21:23:54evanand/or making this harder than it is.
21:24:22brixenmath ops need to be as fast as possible, period.
21:24:29brixennext, make it as clean as possible
21:24:35dbussinknot really confused, but i guess this is a case where a utility function would be most appropriate
21:24:36brixendon't get the primitive mapping confused with that
21:24:52evandbussink: what would this utility function be called and do?
21:25:13dbussinkevan: the current divide would not be a primitive
21:25:17evandbussink: i never assumed that the functions we annotate would always be ones we also use internally
21:25:21dbussinkand an additional function would be
21:25:24evancourse!
21:25:26evanof course!
21:25:27evanexactly.
21:25:54brixendbussink: there is also a full set of benches for the math ops. we should expect to see perf on the order of current shotgun
21:25:55evanI always assumed we'd have C++ functions that are only used as primitives
21:26:02brixenor else our impl is untenable
21:26:27dbussinkbrixen: well, i've implemented the same or more simple algorithms
21:26:35dbussinkbrixen: so that should be the case
21:26:53evandbussink: there is absolutely nothing wrote with writing
21:26:54brixendbussink: yeah, just saying, we should verify it
21:27:08evanINTEGER prim_divide(STATE, FIXNUM b);
21:27:16dbussinkbrixen: i couldn't agree more with that
21:27:22evanthats only reason for e