Index

Show enters and exits. Hide enters and exits.

01:20:36boyscoutAdd cast_multi_value instruction to deal with #to_a vs #to_ary - 59997cd - Evan Phoenix
01:25:13evaneh?
01:25:17evanthe Whence is throwing me off
01:25:26evando you mean why?
01:26:37evanwe've got some code that does
01:26:42evana, b = @blah[1]
01:26:48evanwhere @blah[1] is a Tuple
01:26:58evani could write Tuple #to_ary
01:27:01evanso it worked
01:27:03evanbut i was lazy
01:27:11evanso I just put the explicit case in there
01:28:07rueAh, best of reasons
01:30:01boyscoutCI: rubinius: 59997cd successful: 3037 files, 11966 examples, 36265 expectations, 0 failures, 0 errors
02:57:37evanhuh.
02:57:52evani keep forgetting that a block changes the $~ of it's invoking environment
02:58:15evancreated environment, rather.
03:12:55Defiler$~ is the last match as a Match instance or something?
03:13:26DefilerI suppose it makes sense for that to be lexical+thread scoped
03:13:38DefilerAs much sense as it existing at all that is
03:13:47evanas a MatchData, yeah.
03:13:50Defilerwhich is to say negative infinity minus 10
03:13:54evanit's method local
03:14:05evanand blocks created within that block see the creating methods version
03:14:17evanwhich is a little wonky
03:14:19evanbut oh well.
03:14:20Defilerwhoa
03:14:28Defilerso you can pass a block in along with its $~
03:14:31evaner. blocks created within that method
03:14:36Defilerand see that value in the same method body as a different $~?
03:14:37evanno
03:14:41evanblocks don't get their own $~
03:14:52Defiler'blocks created within that block'
03:14:54Defileroh, OK, I see
03:15:07Defilerbut if I pass you a proc that proc sees this method body's $~?
03:15:15DefilerWhich I have decided to call 'match squiggle'
03:16:22evani mistyped before
03:16:36evanyes, blocks created within that method
03:16:45Defileractually I'll bet it can be nil and that means I can someday write: something if $~?
03:16:54evanno
03:17:00evanif you pass around a proc
03:17:04evanwell,
03:17:07evanif you pass it around
03:17:11evanand it does $~
03:17:31evanit will give you the value for $~ in the context the proc was created
03:17:36evanso if you, say pass the proc to another thread
03:17:40evanyou can't use $~
03:17:48evanbecause $~ will just randomly change
03:18:10DefilerOK, so you could get handed a Proc.. and then call it with your $~ as an argument.. and the arg and the proc's $~ would be different
03:18:29evanum
03:18:32evanshow me in code
03:18:35evanyou're confusing me :)
03:18:47DefilerOK stand by
03:18:58Defilerfirst, what alters $~
03:19:01Defilerany regexp match?
03:19:28evanwell, thats part of this confusion
03:19:31evana bunch of crap does.
03:20:03evanRegexp#match and anything that appears to call that
03:20:05evanfor instance
03:20:18evanEnumerable#grep when passed a Regexp
03:20:21evani'm fixing this bug now
03:20:48evanstrings.grep(/stuff_(.*)_stuff/) { $1 }
03:21:21evangrep calls Regexp#=== internally
03:21:28evanand because that happens to be in C in MRI
03:21:39evanMRI sticks the MatchData into the caller of grep
03:21:49evanand then the invoked block sees it
03:22:29Defilerhttps://gist.github.com/7864832da182b75aa311
03:23:47Defilerbehaves the same when you return the proc before or after the bunnies
03:28:46Defilerwait, Enumerable#grep takes things other than regexps?
03:35:17Defilerthat makes grep vastly cooler than I thought
03:35:43Defilerthat means you could do bunch_of_classes.grep(SomeClass) and only get back subclasses
03:36:10Defilererr, bunch_of_instances I guess
03:36:12evanDefiler: sure
03:36:25evanDefiler: $~ in your case is still method scoped
03:36:33evaneasiest way to think about it
03:36:46Defileryeah, that code behaves the way I'd expect in 1.8
03:36:47evan"$~ is scoped from def to end"
03:37:41evanactually the easier way to say it is
03:37:48evan"$~ is scoped the same as self"
03:38:46DefilerOK, so what were you saying about it getting wacky in blocks?
03:38:53DefilerWhat would that code need to look like to get wacky
03:39:06evani thought that the scope thats created when you call a block would store $~
03:39:23evanie, not share the $~ for the method that created the block
03:40:45Defileraha, so like, fork off as you nested blocks?
03:40:58evannothing to do with nested blocks
03:41:01evanjust a normal block
03:41:09DefilerOK
03:41:14evanlike how blocks can have their own locals
03:41:17DefilerIt doesn't seem block-local at all though right?
03:41:20evanthat $~ would live there
03:41:24evancorrect
03:41:27evanit's not block-local at all.
03:42:08DefilerOK, so thread and root method only
03:42:13Defileror whatever they are called
03:42:30Defilerthe kind of thing methods are but blocks aren't, scope-wise. heh
03:42:38evannothing to do with threads actually
03:43:00evana toplevel lexical scope
03:43:08evanbecause the same goes for a class body
03:43:11DefilerThanks. Was grasping there
03:43:11evanor a script body
03:43:20Defilerright, that's what I was trying to group together with the correct term
03:43:52DefilerI mention threads because multiple threads executing a method with one of these squiggles can each have their own value
03:43:55Defilerlike $1 can
03:44:14evanthats only because each invocation of the method is different
03:44:30evanif you were to create a proc in a method, and then pass that proc to another thread
03:44:32DefilerOK, that makes sense
03:44:44evanand the other thread calls the proc, and the proc accesses $~
03:44:50evanthe $~ is now shared between 2 threads
03:44:59Defilerand your code is a whore
03:45:09evanyes
03:45:11evanwhorecode.
03:45:22evanit's like a horcrux
03:45:24evanonly real.
03:45:32Defilerand we will case you back to the firey perl from whence ye crawled
03:46:07evanBACK DEMON
03:46:18Defiler*whipcrack*
03:46:41evanDefiler: hey, would genre would you put that series about Dragons during the Napoleon wars?
03:46:48evanHistorical Fantasy?
03:46:49DefilerHrm
03:46:54rueFantastic history
03:46:56DefilerI suppose so, yeah
03:47:10Defilerpara-history
03:47:27rueI dunno, I think Historical Fantasy would be stuff like "The Terror"
03:47:30Defilerpara-historical fantasy
03:47:48rueFantasy: Alternate History
03:47:56Defileraha yeah
03:48:04Defilerthat's what wikipedia says for it at least
03:48:12Defiler'alternate history'
03:48:22Defilerthough this other site calls it alternate-multiverse
03:48:30Defilerfor reasons I can't say I fully understand
03:48:32rueToo complicated
03:48:47rueBy the by, "The Terror" and "Drood", *highly highly* recommended.
03:48:52Defilerauthor calls it 'historical fantasy'
03:48:54evanAlternate History is all those books about what would have happened if Germany had won WW2
03:49:02DefilerHaven't read those. Will investigate
03:49:12evanmost of those are within the realm of possibility
03:49:13DefilerYeah, or if neo-nazis went back to the civil war
03:49:16evanie, no dragons.
03:49:31evanwell, time travel puts it into alternative history scifi i guess
03:49:44DefilerPlease don't tell me the biology in those books isn't as fraught with detail as real creatures that evolved on Earth ha ha ha
03:49:46rueActually, Historical Fantasy is probably right
03:49:56rueI confused fantasy and fiction
03:50:24DefilerYeah, historical fiction is like 'what if jesus fought the nazis in WW2'
03:50:25evanrue: it happens.
03:50:36Defilerwait no that's poetry
03:50:52evanDefiler: for me, throwing jesus in there tips the fiction/fantasy scale
03:51:05evanhow about if the Egyptians had won WW2
03:51:07Defilerindeed. I prefer fightin' jesus
03:51:09evanthere ya go.
03:51:14evanHistorical Fiction
03:51:18Defilertwo-fisted jesus tales in darkest africa
03:51:30evanhah
03:51:33rueBoth books I gave are more Historical Fiction
03:51:40Defilerknife in teeth, matchlock in each hand
03:51:51rueFirst of the eponymous ship, latter of Dickens
03:51:51evanDefiler: the only way those books are good is if he's black and fighting white invasion.
03:51:51Defilerprincess across shoulder
03:52:00Defilerhe was raised by tigers
03:52:25Defilerbut his totem animal is the mighty gorilla
03:53:01evanfrom the top of Killamenjaro he can see into your soul
03:53:23Defilerwith eyes like an eagle loaning a pair of binoculars to another eagle
03:53:34evanhah
03:53:59evanok, i'm going to watch some olympics!
03:54:02evanbbiab.
03:55:53rueIce hokey
04:25:29rueHm, high-intensity game
06:48:50manveruheh, regexp is used in nearly every spec...
06:53:16brixenit is?
06:59:46manveruby mspec, i guess
07:00:23rueWhat kind of errors have you graduated to?
07:04:01manveruwell, i'm trying to increase the OPTION_MASK
07:08:39manveruanw, i have to reflect the changes to C... didn't do that before
07:08:49manveruseems the fail comes from that
07:08:56brixenmanveru: ah yes, if you are running mspec ci, it uses regexp for checking tags
07:11:00manverualright
07:11:07manveruthat seems much better
07:13:45manveruhttp://pastr.it/16652
07:13:50manverunow i just need to spec it
07:15:02manveruanyone knows where this would go?
07:15:35manveru # Specs for the matching semantics
07:15:37manveruthis?
07:16:29manveruwow...
07:16:31manveru"matches against $_ (last input) in a conditional if no explicit matchee provided"
07:16:35manverui had no idea :)
07:17:42brixenspecs would go in rbx specific specs
07:17:58brixenspec/core/regexp
07:18:52manveruhm, k
07:19:08manveruso i should copy the spec/ruby/language/regexp/modifiers_spec.rb to there and start extending it?
07:20:41brixenno, don't copy it
07:21:27rueJust add :)
07:21:41manverubut it's not part of the language spec
07:21:52brixenjust add spec/language/regexp_spec.rb
07:22:05manverui mean, i doubt mri will ever adopt these modifiers
07:22:25brixenthe rbx-specific specs are only for rbx-specific behaviors
07:22:53brixenspec/ruby/**/*_spec.rb is an import of rubyspec
07:23:13manverui thought so
07:23:14brixenspec/language spec/core, spec/library, etc are rbx-specific
07:23:21manveruok
07:47:12manverusweet
07:47:27manverui didn't actually expect it to work on first try...
07:48:38manverubrixen: http://pastr.it/16653
07:48:57manveruhrm
07:49:04manverushould've used .captures instead of .to_a everywhere
07:49:48manveruhttp://pastr.it/16654
07:51:11manverutotally awesome, anything else i should do?
07:52:07manveruthis is just these two flags, there are a couple of others that we could support
07:52:17manverubut i'd like to keep that commit small
07:52:40manverunow full suite once more
07:58:06rueMake sure to split the spec into a separate commit
07:59:06rueOther than that, should be fine..
08:01:40manveruhrm
08:01:43manverutwo failures
08:01:53manveruAn exception occurred during: loading /home/manveru/.rvm/src/rbx-head/spec/core/regexp/modifiers_spec.rb ERROR
08:01:55manveruLoadError: no such file to load -- /home/manveru/.rvm/src/rbx-head/spec/core/fixtures/classes
08:02:17manveruand one related to OpenStruct.frozen...
08:03:28ruemanveru: Hm, maybe also spec the expected disposition on the named groups
08:03:31evanmanveru: i'd prefer you submit them as an issue with patches
08:03:34evanrather than push them
08:03:39evanso that I can review them first
08:03:48evansince you're touching some rather critical things
08:03:56evanand you haven't commited in a long while
08:04:01manverurue: disposition?
08:04:13manveruevan: sure thing, i wasn't gonna push it directly anyway :)
08:04:19evanok cool
08:04:26evanjust keeping everything on the up and up.
08:04:31manveruyeah
08:04:31ruemanveru: That the named group is also captured (or not, I have not followed the logic)
08:04:40evanoff to bed
08:04:41evannite!
08:04:45manverusleep well
08:04:46rue*wave
08:05:43manverurue: you mean using /g with a named group?
08:06:52manveruif something shows up in .captures, it's captured
08:08:33manverui really only translated the docs into specs
08:08:49manverui don't really know much more about those options than this
08:19:18rueCan you also access it through the name?
08:21:50manveruyeah
08:21:56manveruadded specs for that too
08:22:37dbussinkmanveru: did you pull recently, evan fixed some frozen issues
08:22:58dbussinkso if you see frozen related failures, that would be the cause probably
08:23:00ruemanveru: Cool
08:23:09manverudbussink: thought so
08:26:44manverunow assembling ticket info
08:27:58manverubtw, the link from http://rubini.us/docs/faq to http://rubini.us/about/contributing is failing
08:30:14manveruticket should go to http://rubyspec.org/projects/rubyspec/issues i guess?
08:32:41dbussinkmanveru: github.com/evanphx/rubinius/issues
08:33:24manveruoh
08:34:36dbussinkrubyspec only specs mri behavior
08:34:46dbussinksince that is the defacto standard
08:34:58dbussinkso if you get this accepted into mri, the specs will be moved to rubyspec
08:35:04dbussinkuntill then, they are rubinius specific
08:37:54manveruheh
08:38:01manveruyou saw my ticket on redmine?
08:42:13dbussinkmanveru: i've seen it come by on ruby-core
08:51:47manveruyeah... based on that i have no hopes they'll add it
08:52:13manveruso i'll port ffi-tk and ver to rubinius
08:54:20scooprdo you use ver fulltime now?
08:56:35manveruscoopr: yeah
08:56:50manverusince october i think
08:57:00scooprnice
08:57:11scooprdo you feel missing anything important?
08:57:56manverumarkdown support :)
08:58:07manveruwhich is why i'm doing this all
08:59:58manveruthere are a couple of other features i'd like to add sometime... but it works really well for everyday stuff
09:02:59manveruuh
09:03:06manverui get build errors after rebasing
09:03:36manveruossl_x509name.c:145: warning: passing argument 2 of ‘d2i_X509_NAME’ from incompatible pointer type
09:04:08dbussinkmanveru: what platform?
09:04:24dbussinkprobably some gcc strictness that doesn't happen on os x
09:04:32manveruarchlinux
09:04:44manverulots of warnings
09:05:17manveru/usr/bin/ld: ossl_x509name.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
09:07:25mahargheh the post to ruby-core with a list of contributors to rubyspec includes me, but only my first name because for some reason that was all that was in my svn login back in the day. :/
09:08:13manverudbussink: any ideas?
09:08:36kronos_vanorake distclean && rake ?
09:09:07manveruis distclean different from clean?
09:09:13dbussinkmanveru: hmm, could you try this: http://gist.github.com/314387
09:09:56manveruhm, seems like
09:13:34dbussinkmanveru: what's the signature for d2i_X509_NAME on your system?
09:13:55manveruwhere do i find that?
09:14:15dbussinkman d2i_X509_NAME
09:14:47manveru X509_NAME *d2i_X509_NAME(X509_NAME **a, unsigned char **pp, long length);
09:14:49manveru int i2d_X509_NAME(X509_NAME *a, unsigned char **pp);
09:15:40dbussinkhmm, then i don't get the error since the type of the second argument seems to match
09:16:26manverui'm trying the fPIC now
09:16:34dbussinkmanveru: does this fix the first warning: http://gist.github.com/314389 ?
09:17:24manverui can only do one rebuild every 10 minutes or so... please wait :)
09:28:57manveruok, fPIC failed
09:47:17manverudbussink: still same with your patch
09:53:09manverudbussink: http://pastr.it/16655
09:56:25dbussinkmanveru: hmm, probably need to grab a linux vm then to check it out
10:07:08dbussinkmanveru: did my last suggested patch remove the warning when compiling openssl?
10:11:17manverudbussink: i lost the log... doing a full rebuild again
10:17:19manverudbussink: http://pastr.it/16656
10:20:13dbussinkmanveru: ah ok, probably needs some testing with linux then
10:21:56dbussinkmanveru: best is to create an issue with this
10:22:03dbussinkmanveru: and include all platform details, gcc version etc.
10:23:23manveruhrm
10:23:36manverui can't really file my last issue without a working rbx
10:23:47manveruoh well
10:23:58manverui'll just paste the patches for now
10:24:25dbussinkmanveru: hmm, how wonderfull, if i try add an explicit cast to work around the issue you showed, it throws warnings on os x
10:25:07dbussinkmanveru: ah, wait, seems like i have it working now
10:25:27dbussinkmanveru: one of the warnings that is
10:25:37manveruheh
10:25:43dbussinkdid you do a rake clean btw after adding that -fPIC patch?
10:26:02dbussinkmanveru: since i don't see it rebuilding the openssl .c files
10:26:20manverui used distclean and clean
10:26:28manveruright now it uses both patches
10:26:57dbussinkproblem is that i don't see -fPIC in this line in your paste
10:26:57dbussinkgcc -I. -I. -I/home/manveru/.rvm/src/rbx-head/vm/capi -I. -DRUBY_EXTCONF_H=\"extconf.h\" -ggdb3 -O2 -c ossl_x509name.c
10:27:08dbussinkand i do see it myself here with the -fPIC patch
10:28:45manveruhttp://pastr.it/16659
10:29:08manverui'm pretty sure that's the place
10:30:40dbussinkmanveru: weird
10:49:28manveruevan: http://github.com/evanphx/rubinius/issues#issue/198
13:17:51kronos_vanomanveru, around?
13:27:31manverukronos_vano: yeah
13:27:40kronos_vanoAbout your patch
13:28:13kronos_vanoRuby 1.8 and 1.9 doesn't support /g /G, Right?
13:28:20manveruyes
13:28:27kronos_vanohm
13:29:20manveruit was proposed and rejected around 4 years ago
13:30:13kronos_vanoThen specs is wrong. Because you should indicates on which versions of ruby interprets specs should pass.
13:31:22manveruuhm
13:31:48manveruevan and rue told me to put it in there because it's specific to rbx
13:32:03manveruis there some other place i should put it?
13:32:22kronos_vanoHere is some macroses
13:32:25kronos_vano1 sec
13:33:25ruekronos_vano: The spec is in spec/rubinius, so it will not go to RubySpec
13:33:29rueAs it stands
13:33:34kronos_vanohm
13:33:34kronos_vanook
13:36:22kronos_vanoWhy it was rejected in MRI? Is there any reasons?
13:37:01kronos_vanomanveru, never mind about wrong specs :)
13:38:43manverukronos_vano: http://redmine.ruby-lang.org/issues/show/2759
13:40:45kronos_vanothx
13:54:47matthewdI suspect this doesn't warrant a test, though I'm happy to be corrected: http://gist.github.com/314549 -- will create a ticket tomorrow.
15:15:21dbussinkmatthewd: good dedication to fix something even two years later ;)
15:16:19dbussinkmatthewd: but just a patch for this is fine
15:28:18kronos_vanodbussink, I think it should be commited :)
15:57:10dbussinkkronos_vano: how do you mean?
15:57:19dbussinkkronos_vano: that patch from matthewd?
15:57:30dbussinkif he makes a git format-patch he gets the credits too :0
15:57:32dbussink:)
15:58:09kronos_vanohttp://gist.github.com/314549 It isn't git format-patch?
16:12:24dbussinkkronos_vano: ah, doh, was not looking right
16:13:15boyscoutRemove duplicate module_function call in kernel.rb - fca9276 - Matthew Draper
16:13:16dbussinkmatthewd: there you go
16:18:19boyscoutCI: rubinius: fca9276 successful: 3037 files, 11966 examples, 36265 expectations, 0 failures, 0 errors
17:14:18evanmorning!
17:16:07brixenmorning!
17:17:51evandecided to redo $~ and friends
17:19:52brixenheh http://www.staringispolite.com/likepython/
17:20:16brixenlike, cool evan what are you doing to $~ bro?
17:20:22evanhaha
17:20:33BrianRice-workthere's already a squeak version; presumably ruby can just do that trivially
17:20:39brixenBrianRice-work: yeah
17:20:40evantotally like moving it into the VM dude
17:21:04brixenawesome, like totally
17:21:23evanif we made something like that for ruby, it should be called Totally Ruby
17:21:29brixenthey left out the redneck dialect
17:21:40brixenheh, good name
17:22:52evanBrianRice-work: anyway, i'm adding a last_match instruction
17:22:59evanthat is a pretty wierd instruction
17:23:14evanbut it will do all the duties of $~ and related globals
17:23:23evanlast_match(mode, which) is it's form
17:23:44evanmode says which 6 kinds of things can be returned
17:23:59evan$~ == mode 0, $` == mode 1, etc
17:24:21evan$1 is mode 5, which 1
17:24:28evan$2 is mode 5, which 2
17:24:38evanit's overloading one instruction
17:24:50evanbut it's actually cleaner than having seperate instructions for each of the modes I think
17:25:04brixeninteresting
17:26:08evanthis is where I almost want something above an instruction
17:26:11evanbut below a method
17:26:49brixena menstructod
17:26:50evani've considered something like the ability to invoke a primitive from an instruction
17:26:59brixenhmm
17:27:13evancall_primitive(which, args)
17:27:17brixeninvoke_primitive
17:27:21brixenheh
17:27:22brixenor that
17:27:24evanwhich points to a literal that has the name of the primitive to call
17:27:30brixenyeah
17:27:32evanand args says how many stack args are passed
17:27:44brixenseems useful
17:27:58brixenquite useful
17:28:06BrianRice-workour vm has a call_primitive now, mainly because our vm-inliner needs some way to completely bypass lookup
17:28:29evanBrianRice-work: sure, that's another use.
17:28:45evanprobably only useful for invoking static prims though
17:28:54BrianRice-workyeah, it's very restricted
17:29:02evani guess you can invoke receiver oriented prims
17:29:16evanyou'll just get a TypeError if you screw it up
17:30:40evanhm, this fits a nice middle ground
17:30:50evanmakes the instruction set "extensible"
17:32:53evanBrianRice-work: do you cache the looked up primitive in some way?
17:33:12evani'll have to figure out a way to do that
17:33:39evani don't want call_primitive to have to search through a big list of name => function pointers everytime
17:34:25BrianRice-workevan: in our runtime, we have a very tiny set of opcodes, but all "primitives" are PrimitiveMethod objects which are slate method objects in most senses. the vm has a little trickery of course to make that map to C code, but it's used like a pointer/ref
17:35:16evanBrianRice-work: so does your literals array hold a PrimitiveMethod in the slot?
17:35:32BrianRice-workso call_primitive just directly references that, I believe as an integer... *checks* yes
17:35:45BrianRice-workno, it holds an integer
17:35:58evanand that integer goes into a lookup routine?
17:36:16BrianRice-workwell, not "lookup" in the message-passing sense
17:36:18evanto find a PrimitiveMethod or function pointer or into a switch() ?
17:36:23evanno no
17:36:28BrianRice-workchecks to be sure
17:36:30evanjust it's the key to a mapping
17:37:20BrianRice-workcore code inside safety checks: primitives[primNum](oh, argsArray, arity, NULL, 0, i->framePointer + resultReg);
17:37:37evanah yes.
17:37:38evanok
17:37:48evani moved away from primitives as integers
17:37:57evanit's so easy to screw up the list
17:38:13evanprimitives are referenced by name in Rubinius, as a Symbol
17:38:13BrianRice-workwell, as I said this info is only shared between the compiler internals and the vm
17:38:34BrianRice-workand even then we only generate such code to make dynamic cached versions
17:39:08evandoes slate hook primitives up to regular methods too?
17:39:10BrianRice-worknormally *everything* is a message-send, even to primitive methods (which show up and are queryable polymorphically with regular methods)
17:39:20evanright ok.
17:39:44evanwe got into trouble a long time ago because the primitive numbers were embedded within .rbc files
17:39:50evanso we couldn't change/remove them
17:40:05BrianRice-workyeah I'm making sure to avoid that
17:40:14evanso we switched to pure named primitives
17:40:28BrianRice-workI'm still developing our equivalent of .rbc
17:40:41BrianRice-workI mean, it works; I'm developing improvements
17:40:45evan:D
17:41:26evanoh, I can just leverage the fact that I post-process bytecode
17:41:33evanlike I do for InlineCache
17:41:43evanin the post-processed array thats created from the bytecode
17:42:00evani'll have the 1st argument instead of being a literal index be a raw function pointer
17:42:07evanand just call straight to it
17:42:36evanso at runtime, the interpreter sees
17:42:53evan[<call_primitive opcode number>, 0xcafebabe, 1]
17:44:30BrianRice-workok
17:44:45BrianRice-work(busy at work, back to lurking)
17:48:59rueI tried to figure out how the hell the ruby-ffi implementation works today
18:09:31dbussinkevan: is it right that i get some sort of configure run for the openssl extension?
18:22:04brixendbussink: yes
18:22:12brixenit's using extconf.rb
18:22:31brixenand there are warnings for compiling the ext, but those should not cause the build to fail
18:22:44brixenbecause compiling the ext is rather insane :)
18:22:56dbussinkbrixen: well, the build is failing on some linux machines
18:23:00dbussinksince -fPIC isn't used
18:23:30dbussinkon a 64 bit debian lenny machine and manveru was also experience the same problem
18:30:16brixendbussink: well, should be able to add -fPIC in the configurator for those platforms
18:30:47brixenevan added some of the mkmf code into a module in rakelib/ext_helper.rb
18:30:50dbussinkbrixen: i added it to lib/rbconfig.rb as a general option, but that seemed to break other stuff
18:30:59brixenfun :)
18:31:06brixeniterate? :)
18:31:56dbussinkbrixen: apparently melbourne didn't like that: https://gist.github.com/d029bb04935a76940d9f
18:32:17brixenhmm
18:32:21brixennot sure why
18:32:32dbussinkmaybe because rbx itself isn't compiled with PIC either?
18:32:58brixenthere are some settings for -fPIC already in melbourne's extconf.rb
18:33:29brixenwould rbx be compiled with PIC? it's not a shared lib
18:40:57brixendbussink: btw, those discovery settings in melbourne/extconf.rb are what tmm1 gave me from EventMachine
18:40:58jvoorhishello
18:41:02brixenhi jvoorhis
18:41:32jvoorhisevan, brixen: imagine my surprise when i found this yesterday: http://lua-av.mat.ucsb.edu/pubs/WakefieldSmith_2009_ICMC09_ACMWJITC.pdf
18:41:40jvoorhisguess i won't be publishing anything first!
18:42:00brixenheh interesting
18:42:09brixenmeans you now have a collaborator! :)
18:42:13jvoorhispossibly
18:42:33jvoorhisthere's some really different semantic design desicions between our implementations
18:42:38jvoorhisand you know, Lua vs Ruby
18:43:43brixenyeah
18:43:49brixenjvoorhis: seen? http://twitter.com/binary42/status/9591763569
18:43:53jvoorhisbut the existence of my project, LuaAV, and hornets eye suggests that JIT-ing dsls is a pretty great idea
18:44:04brixenthat little box is sweet
18:44:08jvoorhisbrixen: not seen
18:44:20jvoorhisbrixen: oh, i've seen the product demo
18:44:57jvoorhisi could build that in my system once i have a working version of my fractional delay implementation
18:45:09brixennice
18:45:17dbussinkbrixen: hmm, that segsev is gone now, this is the diff i have now: http://gist.github.com/314884
18:45:24jvoorhisbit crushing and downsampling should be pretty easy
18:45:42dbussinkbrixen: still need to fix a bunch of warnings though, but that's another concern
18:46:08jvoorhisbut digital filter design is pretty wild stuff :)
18:51:44brixendbussink: I don't know if that belongs in rbconfig
18:53:42dbussinkbrixen: well, the same setup as melbourne won't work, since that doesn't add PIC for linux either
18:55:07dbussinkbrixen: hmm, it is in the general rbconfig cflags in mri on linux
18:55:25brixennot on os x
18:55:45dbussinktrue yeah, so maybe make that platform dependent in rbconfig then?
18:55:57brixenpossibly
18:56:05brixenI honestly don't know the right answer
19:19:52dbussinkbrixen: hmm, linux needs -fPIC if any external lib is used in an extension, so we should definitely add that then
19:24:38brixendbussink: ok, makes sense
19:29:21boyscoutUse -fPIC for extensions on Linux by default - 1bb682f - Dirkjan Bussink
19:29:52dbussinkevan: you there?
19:31:33brixendbussink: he'll be back ~noon or so
19:32:45dbussinkmanveru: that should fix your compile issue, be sure to delete the Makefile in lib/ext/openssl first though
19:34:28boyscoutCI: rubinius: 1bb682f successful: 3037 files, 11966 examples, 36265 expectations, 0 failures, 0 errors
19:58:42dbussinkbrixen: any reason why the ST_CONTINUE etc. weren't added for rb_hash_foreach?
19:58:55dbussinkbrixen: trying to clean up some warnings in openssl while keeping it mri compatible too
19:59:10brixenyou mean in compat.h?
20:00:09brixenin general there's no reason something isn't in the C-API other than it hasn't been needed yet
20:00:20brixenexcept for obvious things that depend on MRI internals
20:01:58dbussinkbrixen: because it is already in the comments
20:02:03dbussinkbut i guess i'll add it then
20:02:42brixenwhat is already in the comments?
20:02:49brixenpronoun fail :P
20:07:25dbussinkbrixen: ST_CONTINUE and ST_STOP :)
20:13:26brixenso they are in the comments but not in the code of some file I do not know the name of...
20:13:35brixendbussink: ok, I trust you'll do the right thing :)
20:16:17dbussinkbrixen: if i get these warnings fixed, i'll show some code, that works better :0
20:16:18dbussink:)
20:17:47brixendbussink: heh ok
20:38:15brixenMRI's defs is such a wacky node
21:09:10dbussinkopenssl headers are really whacky :S
21:19:58kronos_vanobreak own brain on array.cycle.take(n). But now it works! :)
21:20:08kronos_vano*breaks
21:24:25rueHa, MagLev implemented FFI callbacks too
21:25:51evani saw
21:26:00evani need to do that.
21:26:59evanok, i've got a passable syntax file for instructions.def now
21:54:59kronos_vanoevan, What is preferable: "unless variable" or "if variable.nil?"
21:55:09evanunless variable
21:55:20kronos_vanok
21:55:48rueThose are not the same
21:56:06rueIf that does not matter, then unless :)
21:56:12evanit rarely matters.
21:56:22evanwhen it matters, you know which to use.
21:57:23evanhm, ok, so one issue with invoke_primitive is primitive failure
21:57:44evanif the primitive is being invoked directly, it's not hooked up to a method to fail to
21:58:03evanI guess I can just raise an exception
21:58:21evanthe idea being that if you invoke a primitive directly, you don't get a chance to handle primitive failure
21:59:27Defilerevan: When you do the postprocessing, could you fill in both a function pointer to the primitive, and enough information to end up in the right method when you fail?
21:59:52evani'm not requiring these to even be hooked up to methods
21:59:54Defilerso Rubinius.primitive :foo; do_other_stuff would get built into a 'do other stuff' method, and a function pointer for that prim
21:59:55evanso no.
21:59:58DefilerAah
22:00:09evanthe instruction stream will just have
22:00:18evaninvoke_primitive :some_prim, 2
22:00:34evanstaticly dispatched
22:00:50Defilertricky
22:01:16DefilerI guess an exception? but you'd really want it to get raised in the body of the method that wrapped the primitive
22:01:54evanwell
22:02:01evanthats how invoke_primitive is different
22:02:07evanthere is no method wrapper
22:02:13DefilerOK, right
22:02:20evanthis is some random method directly invoking a primitive
22:02:32Defilerhey, 3rd-hand Rubinius mention on techcrunch http://techcrunch.com/2010/02/25/knowmore/
22:03:01DefilerThough I would hardly call myself a 'core rubinius developer' at this point
22:03:07evanhey!
22:03:09evancongrats!
22:03:15evanis that the company that does KGB?
22:03:20DefilerYeah
22:03:40BrianRice-workcool
22:04:04Defilerrunning the site on 1.8.7 right now, but it will be hosted on rbx very soon
22:04:14DefilerGoing to do that change alongside rails 3
22:04:31evanha!
22:04:33evanrad.
22:06:53brixenwhat sounds cool about Knowmore is that, if successful, it will start to lessen the importance of any 'social network provider' (a la facebook), which can only be a good thing
22:07:19brixencan't wait for Facebook to become friendster, etc
22:08:06brixenalso, hopefully they will change the name of Knowmore
22:08:22brixendoesn't exactly roll off the tongue and looks weird written
22:08:52brixenalso, like totally sounds weird in a complete sentence, bro
22:08:59DefilerI wish, yes
22:09:05DefilerI fought against it tooth and nail :(
22:09:43Defilerbut yeah, the idea is to let you see your social content how you want, not how facebook wants to mangle it up and display it mixed with farmville invites
22:10:06Defilersee your friends' flickr stuff alongside images people linked you to on twitter etc etc
22:10:15brixenI'm pretty much hating FB these days, about to pull the plug on it
22:10:21brixenDefiler: http://www.staringispolite.com/likepython/ :)
22:10:35DefilerYeah, I would have flattened my FB account already if I didn't need to use their API
22:11:09brixenbut more than hating FB in particular, the very *idea* of FB is totally broken
22:11:17DefilerIt truly is
22:11:32Defilerbut we're going to let you do things like only see events you get invited to, along with a shot of the map
22:11:42brixennice
22:11:45Defilerand never see the various invitations to crocheting clubs or whatever
22:12:06Defilerand my personal dream feature; search my entire stream of incoming content for something I read a few days ago
22:12:13Defilerso I can link somebody to it
22:12:17brixenyes!
22:13:38Defilerunified abstraction spanning twitter lists and rss feeds, as well
22:13:50DefilerSick of all these ridiculous silos behind unreliable APIs
22:13:58brixenabsolutely
22:14:13brixenjust tell them to change Knowmore -> Awesome
22:14:18brixenI'm sure they'll go for it
22:14:19DefilerGood call
22:14:28DefilerThis 'Like, Python' link is superb
22:14:34brixenheh yeah
22:14:37brixenlike, totally
22:15:51binary42s/more/awesome/
22:17:15brixenbinary42: the problem is 'know' and 'no' are homonyms and it really doesn't work well in spoken communication
22:17:53binary42Hmm.
22:17:55DefilerI brought that up and was told that people generally get linked to sites, rather than being told about them and remembering their domains
22:18:00brixen'hey, you using no more?' ... 'huh?' ... 'ya know, no more' ...
22:18:03DefilerI suppose we'll see how true that is
22:18:27binary42Branding is going to be important though.
22:18:45mahargfacebook didn't get where it is now without people saying, in person, to each other "are you on facebook?"
22:18:57brixenmaharg: you have proof of that?
22:18:59brixenheh
22:19:09brixenimagines the soccer moms discussions
22:19:12binary42no more is more common than no awesome so at least an improvement.
22:19:24Defilerluckily we also have nomore.com heh
22:19:24binary42brixen: I get that all the time.
22:19:28brixenI'd be skeptical of disregarding spoken word of mouth
22:19:31mahargI worked for a regional competitor that got slammed by them in 2008, we did some research huhu
22:20:10binary42Defiler: Now that I know it, I'll have to use that as a shorter URL.
22:20:46DefilerI use that as the asset host so as not to send cookies with every request heh
22:20:50Defilerso it will just redirect you :)
22:21:10DefilerWe've got some short url too that I just don't have the keys for, like k.mr or whatever
22:21:11mahargbut since I can't prove that either, I'll just say I've heard the question asked more than enough times personally to easily believe it's the case
22:22:05mahargand soccer moms say "are you on *the* facebook"
22:22:14brixenheh
22:22:17DefilerI'm in the "I believe word of mouth is important but can't prove it" category, personally
22:22:32evanI personally say "did you see that on the bookface?"
22:22:33evanor
22:22:40evan"check out her youface page!"
22:22:50evanand sometimes
22:23:09evan"I updated my status on the bookfacé"
22:23:13evan(note the accent)
22:23:27mahargour target demo was teenagers, and the parts of the year where kids had a lot of face to face (basically all the 'back to school' periods) contact were notably large drivers of signups
22:23:44brixenDefiler: interestingly enough, I distinctly *do not* want to know more, I want to find relevance
22:23:52brixenI have to know enough already
22:23:59DefilerThat was my #1 complaint with the name :)
22:24:05brixencool
22:24:06brixen:)
22:24:09mahargknowbetter
22:24:14DefilerThat I had been describing what we were building as a HUD for linkable content on the web
22:24:24Defilerwhere I want the important things indicated to me, not just 'more'
22:24:33DefilerLuckily the product team agrees, it just isn't reflected in the name
22:25:02evanDefiler: special glasses that show a persons bookface page when you look at them? cool!
22:25:07DefilerHell yeah
22:25:11DefilerThey Live style
22:26:05evanthere is some new PS3 game (Metro 2033 I think it's called) that has no HUD at all
22:26:21evanyou have to use subtle clues to figure out your health
22:26:28evanand you wear a gas mask for parts
22:26:32DefilerCool
22:26:47DefilerThat is definitely a trend.. Fable III is going to be pretty much overlay-free
22:26:51evanand the only way to know whether or not the mask is about empty is to a wristwatch timer the main character has
22:27:03evanie, you put on the mask, and start the watch
22:27:05Defilerand even 'hardcore' shooters are more and more often using your view of the world to indicate health
22:27:12evanand you have to glance at the watch every once in a while
22:27:16DefilerThat is awesome
22:27:29evanoh, no ammo meter either
22:27:34evani'm not sure how they're going to do that
22:27:47evanprobably you'll know if you have one clip left or not
22:27:55DefilerToo bad you can't feel the weight of the weapon and just guess
22:28:01evanyeah, thats what I was thinking
22:28:04Defilerwe need a visual way to perceive mass
22:28:06evanyou'd move slower with more ammo
22:28:24evanmove slower, jump less high
22:28:44binary42I'm sure 1mm differences are visible in HD :P
22:28:47evanor maybe a button where you can sling your pack down and then look inside it
22:28:57evanto check how many clips you have
22:28:58binary42I'd do it by sound.
22:29:09binary42I'd just slightly adjust the kick sound each round.
22:29:09evani guess the map is a real map
22:29:17evanthat the character has to fold and unfold everytime
22:29:32evani hope you can throw down the map when you're trying to fold it so you can shoot someone
22:30:14evanbinary42: ah, sure, to find out the bullets left in a clip
22:30:21evanbut i'm assuming you can carry a number of clips at a time
22:30:23DefilerYou should be able to blind someone with it by covering their face
22:30:24boyscoutUpdate specs for Enumerable#cycle and Array#cycle - b3ba787 - Ivan Samsonov
22:30:24boyscoutFix Array#cycle and Enumerable#cycle - c9f5011 - Ivan Samsonov
22:30:31evanDefiler: fuck yeah.
22:30:34binary42evan: That is just worth remembering?
22:30:43evanbinary42: maybe
22:30:52evanif you, the player, have to just remember
22:30:54evanthat would be sweet.
22:31:06DefilerThat's the best idea I think
22:31:12evanbe able te check your pack would be useful though
22:31:16evanand fine, realisticly
22:31:26DefilerYou have to be a serious fighting machine in the real world to count your remaining ammo anyway
22:31:34binary42Starting the game would have to give you a quick layout of what you have before you get going though.
22:31:37Defiler(in some crazy car-to-car city gunfight I'm imagining)
22:31:54evanDefiler: well, ammo is currency in the game
22:32:04evanso i hope you don't shoulder a gatling gun for long.
22:32:24evani hope there is a option to have a cash register sound everytime you shoot
22:32:34evan*ching* *ching* *ching*
22:32:38DefilerHaha, nice
22:32:53DefilerThat really tightens up the loop
22:33:08DefilerNo more selling leather caps to buy bullets to shoot people to get more leather caps to sell
22:33:15evanand i also hope that the hand-to-hand weapons are decent
22:33:36evanbecause then i'm going to carry my 45 mag and a hunting knife
22:35:30boyscoutCI: rubinius: c9f5011 successful: 3037 files, 11968 examples, 36267 expectations, 0 failures, 0 errors
22:35:57Defilerthis is.. amazing http://www.destructoid.com/deadly-premonition-is-the-greatest-game-ever-made-164794.phtml
22:38:20kronos_vanoGood. Now rubinius pass 20 of 53 1.8.7's test files.
22:39:33evanDefiler: is the whistling actually in the game?
22:39:56DefilerYes
22:40:43DefilerI love the part where she is listing the bars in town and one of them is called 'Galaxy of Terror'
22:43:53evanDefiler: I really hope that he's Scitzophrenic
22:44:00evanand Zach is in his head entirely
22:44:33DefilerI hope that as well
23:54:33evankronos_vano: what did you say about cycle.take(2) ?
23:55:03kronos_vanoI fixed it 1 hour aog
23:55:10kronos_vano*ago
23:55:39evansure, i can't read your language though :)
23:55:46evani was curious what you said on twitter
23:55:50kronos_vano1 sec
23:56:14kronos_vano"[1,2,3].cycle.take(2) now woks fine in rubinius"
23:56:18kronos_vanosomething like that)
23:56:24evanah ok
23:56:24evan:)
23:56:35kronos_vanoI didn't know that you read my twitter)
23:56:58kronos_vanoI'll write in english ;)
23:57:05evannow you know!
23:57:47brixenguy: "hey Ruby, have much syntax, eh?", Ruby: "what, who, me?"
23:58:44kronos_vano)))