Search Results

Search found 61986 results on 2480 pages for 'launch time'.

Page 353/2480 | < Previous Page | 349 350 351 352 353 354 355 356 357 358 359 360  | Next Page >

  • Can I have a .desktop Launcher for both Python2 and Python3 depending on version installed?

    - by Takkat
    After very few issues only I moved my application from Python2 to Python3 making sure it will still run with Python 2.7, and hence has python = 2.7 as dependency only. This was mainly done because Python3, and some dependencies are not installed in a default 12.04 LTS, and I do not want my users to have to install all Python3 only to run my script. When I create an appname.desktop launcher I now need to decide if it starts my application using Python2, or Python3 like EXEC=python /path/app.py EXEC=python3 /path/app.py But what I would like it to do is to Launch the application with the Python3 interpreter if Python3 is installed. Otherwise use Python2 if Python3 is not installed. How can this be done? Do I need to tell it in my package installation script, or can I have a launcher which can handle both (in case people install Python3 after they had installed my script)?

    Read the article

  • Windows Store is open for business!

    - by pluginbaby
    In case you didn’t know, you don’t have to wait for the launch of Windows 8 on October 26 to start building and deploying your apps. Developers from 120 markets (including Canada) can publish Windows Store apps right now! How to start ? Anyone with an MSDN Subscription, Dreamspark account (students) or BizSpark account (startups) get a 1-year Windows Store membership for FREE!! If you don’t have such account, an annual membership is only CAD $49 and lasts a full year. Just go to the Windows Store Dashboard on the Windows Dev Center and sign up. The dev tools are free and the SDK is ready.

    Read the article

  • Optimization ended up in casting an object at each method call

    - by Aybe
    I've been doing some optimization for the following piece of code : public void DrawLine(int x1, int y1, int x2, int y2, int color) { _bitmap.DrawLineBresenham(x1, y1, x2, y2, color); } After profiling it about 70% of the time spent was in getting a context for drawing and disposing it. I ended up sketching the following overload : public void DrawLine(int x1, int y1, int x2, int y2, int color, BitmapContext bitmapContext) { _bitmap.DrawLineBresenham(x1, y1, x2, y2, color, bitmapContext); } Until here no problems, all the user has to do is to pass a context and performance is really great as a context is created/disposed one time only (previously it was a thousand times per second). The next step was to make it generic in the sense it doesn't depend on a particular framework for rendering (besides .NET obvisouly). So I wrote this method : public void DrawLine(int x1, int y1, int x2, int y2, int color, IDisposable bitmapContext) { _bitmap.DrawLineBresenham(x1, y1, x2, y2, color, (BitmapContext)bitmapContext); } Now every time a line is drawn the generic context is casted, this was unexpected for me. Are there any approaches for fixing this design issue ? Note : _bitmap is a WriteableBitmap from WPF BitmapContext is from WriteableBitmapEx library DrawLineBresenham is an extension method from WriteableBitmapEx

    Read the article

  • Marshalling the value of a char* ANSI string DLL API parameter into a C# string

    - by Brian Biales
    For those who do not mix .NET C# code with legacy DLL's that use char* pointers on a regular basis, the process to convert the strings one way or the other is non-obvious. This is not a comprehensive article on the topic at all, but rather an example of something that took me some time to go find, maybe it will save someone else the time. I am utilizing a third party too that uses a call back function to inform my application of its progress.  This callback includes a pointer that under some circumstances is a pointer to an ANSI character string.  I just need to marshal it into a C# string variable.  Seems pretty simple, yes?  Well, it is, (as are most things, once you know how to do them). The parameter of my callback function is of type IntPtr, which implies it is an integer representation of a pointer.  If I know the pointer is pointing to a simple ANSI string, here is a simple static method to copy it to a C# string: private static string GetStringFromCharStar(IntPtr ptr) {     return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(ptr); } The System.Runtime.InteropServices is where to look any time you are mixing legacy unmanaged code with your .NET application.

    Read the article

  • How can I rank teams based off of head to head wins/losses

    - by TMP
    I'm trying to write an algorithm (specifically in Ruby) that will rank teams based on their record against each other. If a team A and team B have won the same amount of games against each other, then it goes down to point differentials. Here's an example: A beat B two times B beats C one time A beats D three times C bests D two times D beats C one time B beats A one time Which sort of reduces to A[B] = 2 B[C] = 1 A[D] = 3 C[D] = 2 D[C] = 1 B[A] = 1 Which sort of reduces to A[B] = 1 B[C] = 1 A[D] = 3 C[D] = 1 D[C] = -1 B[A] = -1 Which is about how far I've got I think the results of this specific algorithm would be: A, B, C, D But I'm stuck on how to transition from my nested hash-like structure to the results. My psuedo-code is as follows (I can post my ruby code too if someone wants): For each game(g): hash[g.winner][g.loser] += 1 That leaves hash as the first reduction above hash2 = clone of hash For each key(winner), value(losers hash) in hash: For each key(loser), value(losses against winner): hash2[loser][winner] -= losses Which leaves hash2 as the second reduction Feel free to as me question or edit this to be more clear, I'm not sure of how to put it in a very eloquent way. Thanks!

    Read the article

  • Mobile Identity Management at SuperValu

    - by Tanu Sood
    While organizations are fast embracing BYOD (Bring Your Own Device) culture to attract and retain best talent, improve productivity, bring agility and drive down costs, SuperValu coined their own term (and trend): TYDH – Take Your Device Home. Yes, SuperValu, a Minn based, 18,000 employees strong, food retailer handed out 2,200 iPads to store directors at locations across the country. The motivation behind this reverse trend? Phillip Black, Director of Identity & Access Management at SuperValu, shared the reasoning behind this trend in his talk at last week’s Oracle OpenWorld 2012. "It gives them productivity tools to better manage their store," says Black. Intrigued? Find out more in this recently published news article. And learn more about Oracle Identity Management 11gR2 mobile- and social- ready sign-on features today. Additional Resources: Press Release: Oracle announces Identity Management 11g Release 2 On-Demand webcast: Identity Management 11gR2 Launch Oracle Magazine: Security on the Move Website: Oracle Identity Management Blog Post: Mobile and Social Sign-on with Oracle Access Management

    Read the article

  • Blank desktop when logging in via xrdp

    - by nitefrog
    I am trying to access Ubuntu 11.10 using Remote Desktop from a Win 7 machine. I installed xrdp. I launch the Windows remote desktop client and login in. I then get prompted for the user name and password. It then logs in, but all I see is the background, no menus, nothing. I have to kill remote desktop by closing it. Even if I right click , nothing. Any ideas??? The only reason I even went down the RDP road was that VNC would not work either, even after I enabled desktop sharing. I am in a bind as I need to connect to Ubuntu via Windows. In version 8 Ubuntu this was not an issue and it just worked.

    Read the article

  • ATI Catalyst doesn't retain changes after reboot when setting extended display

    - by rfc1484
    I have Ubuntu 11.10 and I'm trying to set up extended display for my two displays. I have an AMD 6870. fglrx and fglrx-updates are installed. When I launch amdcccle trough the terminal (using sudo), I select in tab "Multi-Display" the option "Multi-display Desktop with Display(s)". Then it says for changes to be done I have to reboot my computer. Being a good an obedient lad I do just that, but after rebooting the displays are still in the same "clone" option as before in the Catalyst Control Center and no changes are made. Any suggestions?

    Read the article

  • Silverlight Cream Top Posted Authors July to December, 2010

    - by Dave Campbell
    It's past the first of January, and it's now time to recognize devs that have a large number of posts in Silverlight Cream. Ground Rules I pick what posts are on the blog Only posts that go in the database are included The author has to appear in SC at least 4 of the 6 months considered I averaged the monthly posts and am only showing Authors with an average greater than 1. Here are the Top Posted Authors at Silverlight Cream for July 1, 2010 through December 31, 2010: It is my intention to post a new list sometime shortly after the 1st of every month to recognize the top posted in the previous 6 months, so next up is January 1! Some other metrics for Silverlight Cream: At the time of this posting there are 7304 articles aggregated and searchable by partial Author, partial Title, keywords (in the synopsis), or partial URL. There are also 118 tags by which the articles can be searched. This is an increase of 317 posts over last month. At the time of this posting there are 783 articles tagged wp7dev. This is an increase of 119 posts over last month, or over a third of the posts added. Stay in the 'Light!

    Read the article

  • Is MediaTemple's (gs) really worth the hassle? [closed]

    - by Andrew
    I have been hosting my sites with Dreamhost for a while, and although none of them are high-trafic atm, I am going to a launch a Rails app this summer and a couple of other stuff, so I need a serious host. Since my plan ends in a couple of days, I have been looking at alternatives, and because MT has such a good reputation in the webdesign world, I have been seriously considering paying the ridiculous 20$/month for its shared hosting services. That was until I actually read some reviews of it, most of which indicated it is slow and overpriced. So now I'm wondering whether switching over to (gs) would really be a good idea, or if I would be better off paying less money for something like a Site5 or Hostgator shared hosting plan. What is your experience with MT, and particularly their Grid Service? Do you think I should even switch to (gs) in the first place, or should I choose something else from its competitors?

    Read the article

  • Friday Fun: Abduction

    - by Mysticgeek
    Finally another Friday has arrived and it’s time to waste the afternoon on company time playing a flash game. Today we take a look at a fun game called Abduction. Abduction Abduction is a neat game where you snatch people and livestock to sell them on the intergalactic market.   The controls are basic using the arrow keys or W,A,S,D and the left mouse button. Here is the tutorial that you can play first to get the hang of it. While you’re abducting hillbillies, they throw pitch forks and other objects at your craft so you need to avoid them.   The game has several levels to keep you distracted until quitting time. Play Abduction at FreeWebArcade Similar Articles Productive Geek Tips Take Screenshots in Firefox the Easy WayFriday Fun: Portal, the Flash VersionFriday Fun: Play Bubble QuodFriday Fun: Gravitee 2Friday Fun: Compulse TouchFreeze Alternative in AutoHotkey The Icy Undertow Desktop Windows Home Server – Backup to LAN The Clear & Clean Desktop Use This Bookmarklet to Easily Get Albums Use AutoHotkey to Assign a Hotkey to a Specific Window Latest Software Reviews Tinyhacker Random Tips Revo Uninstaller Pro Registry Mechanic 9 for Windows PC Tools Internet Security Suite 2010 PCmover Professional How to Browse Privately in Firefox Kill Processes Quickly with Process Assassin Need to Come Up with a Good Name? Try Wordoid StockFox puts a Lightweight Stock Ticker in your Statusbar Explore Google Public Data Visually The Ultimate Excel Cheatsheet

    Read the article

  • How to decide how much to charge for development?

    - by rik
    So two other friends and I are a very small game dev studio. So far we haven't released a game but we have 2 games almost ready to launch. A bigger studio saw our work and now they want to work with us; they need people to develop mobile games for them (iOS, Android). They want us to set the price for the projects (can't tell the specifics we signed a NDA). They will give us all the assets (graphics/sound) so we only have to code. And because they only work with Unity3D we have to learn it. How do we decide how much to charge for the projects?

    Read the article

  • How to install an application manually into Natty's Application list

    - by Valorin
    I am trying to install ZendStudio 8 (Eclipse based) on 11.04 and am kinda stuck at the part were I can get it into the Applications list. ZendStudio prior to version 8 came with a magic .bin which installed it all no problems, but now it simply comes as a folder all set up to be run as-is. I have copied this folder to /opt/ZendStudio, and I can launch the program using /opt/ZendStudio/ZendStudio but in the Unity Launcher it shows up with a grey box and a big Question Mark as it's icon. However, I'd like it to be show up in the Applications list so I can search for it and load it like a normal application. I also want to Pin it to the launcher so it stays there the whole time, and I tried this with running it directly but it didn't work and it didn't load up the application icon. Any ideas how I can finish the install so it is in my menus etc?

    Read the article

  • Oracle Remarketer Level expansion in China

    - by martin.morganti(at)oracle.com
    Remarketer Level continues to expand and develop in Oracle's Asia Pacific region. Following the launch of Remarketer level in Korea and Taiwan earlier in FY11, it is great news to see the number of Remarketer VAD partners in China continue to increase. Recent weeks have seen Beijing Futong Dongfang Technology Co.,Ltd. and Digital China (China) Limited both execute the Remarketer VAD addendum. We are delighted that this takes the total of our Remarketer VADs in China to four. This means that we now have even broader coverage to address the opportunity that Remarketer level presents Oracle and our VAD remarketer partners. So welcome to our two latest additions. To find out who are the Remarketer VAD partners in your country, the latest list is posted at here.

    Read the article

  • Arguments for moving from LINQtoSQL to Nhibernate?

    - by sah302
    Backstory: Hi all, I just spent a lot of time reading many of the LINQ vs Nhibernate threads here and on other sites. I work in a small development team of 4 people and we don't even have really any super experienced developers. We work for a small company that has a lot of technical needs but not enough developers to implement them (and hiring more is out of the question right now). Typically our projects (which individually are fairly small) have been coded separately and weren't really layered in anyway, code wasn't re-used, no class libraries, and we just use the LINQtoSQL .dbml files for our pojects, we really don't even use objects but pass around values and stuff, the only time we use objects is when inserting to a database (heck not even querying since you don't need to assign it to a type and can just bind to gridview). Despite all this as I said our company has a lot of technical needs, no one could come to us for a year and we would have plenty of work to implement requested features. Well I have decided to change that a bit first by creating class libraries and actually adding layers to our applications. I am trying to meet these guys halfway by still using LINQtoSQL as the ORM yet and still use VB as the language. However I am finding it a b***h of a time dealing with so many thing in LINQtoSQL that I found easy in Nhibernate (automatic handling of the session, criteria creation easier than expression trees, generic an dynamic querying easier etc.) So... Question: How can I convince my lead developers and other senior programmers that switching to Nhibernate is a good thing? That being in control of our domain objects is a good thing? That being able to implement interfaces is a good? I've tried exlpaining the advantages of this before but it's not understood by them because they've never programmed in a true OO & layered way. Also one of the counter arguments to this I can see is sqlMetal generates those classes automatically and therefore it saves a lot of time. I can't really counter that other than saying spending more time on infrastructure to make it more scalable and flexible is good, but they can't see how. Again, I know the features and advantages (somewhat enough I believe) of each, but I need arguments applicable to my context, hence why I provided the context. I just am not a very good arguer I guess. (Caveat: For all the LINQtoSQL lovers, I may just not be super proficient as LINQ, but I find it very cumbersome that you are required to download some extra library for dynamic queries which don't by default support guid comparisons, and I also find the way of updating entitites to be cumbersome as well in terms of data context managing, so it could just be that I suck hehe.)

    Read the article

  • How to enable Mic in Wine (pulseaudio)

    - by Postadelmaga
    I'm not able to make mic work with wine 1.5 I found some suggestions but they don't seem to work: -Disable winepulse.drv (aka: PulseAudio): "A1: Go to winecfg, in the tab 'libraries', enter 'winepulse.drv' in the box and click on add, click yes on the warning. Select winepulse.drv and change load order to 'disabled'. Now try to trigger your bug again, if it was a winepulse bug it shouldn't trigger any more. A2 (easier and preferred): From 1.5.3 onward, launch your program with WINENOPULSE=1 wine program.exe to temporarily disable winepulse for that program." reference: http://ubuntuforums.org/showthread.php?t=1960599

    Read the article

  • How can I make the Ubuntu Software Center load?

    - by Kieran
    I launch it and it goes grey for almost immediately. Closing it prompts me to "force close" and no error report is given. I launched it in Terminal and this was the resulting log: 2012-11-23 22:39:25,175 - softwarecenter.ui.gtk3.app - INFO - setting up proxy 'None' 2012-11-23 22:39:25,179 - softwarecenter.db.database - INFO - open() database: path=None use_axi=True use_agent=True 2012-11-23 22:39:25,409 - softwarecenter.backend.reviews - WARNING - Could not get usefulness from server, no username in config file 2012-11-23 22:39:25,412 - softwarecenter.fixme - WARNING - logs to the root logger: '('/usr/lib/python2.7/dist-packages/gi/importer.py', 51, 'find_module')' 2012-11-23 22:39:25,412 - root - ERROR - Could not find any typelib for LaunchpadIntegration 2012-11-23 22:39:25,474 - softwarecenter.ui.gtk3.app - INFO - show_available_packages: search_text is '', app is None

    Read the article

  • Development teams do not scale

    - by Matt Watson
    Recently I have been thinking about how development teams don't scale very well. The bigger a team and the product get, the more time the team spends fixing software bugs. This means they spend more time doing troubleshooting and debugging as the grow. The problem is that since developers don't typically have access to production servers, there is a bottleneck in the process when doing production troubleshooting.For a team that has 10 developers, I would guess than 0-2 of them have access to production servers. If that team grows to 20 people, it is probably the same 0-2 people that have production access still. This means that those 2 key people are a bottleneck and the team does not scale correctly as you add more resources. All those new developers want is to help track down and fix software bugs, but they don't have the visibility to do it. So they end up being less productive and frustrated because they really want to fix the problems. The people who do have production access end up spending too much of their time doing troubleshooting instead of working on new projects.The solution is to remove the bottlenecks and get those people working on more important tasks. Stackify can solve this problem by giving all the developers read only access to production servers. This allows them to access the information they need to do troubleshooting on their own.

    Read the article

  • software architecture (OO design) refresher course

    - by PeterT
    I am lead developer and team lead in a small RAD team. Deadlines are tight and we have to release often, which we do, and this is what keep the business happy. While we (the development team) are trying to maintain the quality of the code (clean and short methods), I can't help but notice that the overall quality of the OO design&architecture is getting worse over the time - the library we are working on is gradually reducing itself to a "bag of functions". Well, we try to use the design patterns, but since we don't really have much time for a design as such we are mostly using the creational ones. I have read Code Complete / Design Patterns (GOF & enterprise) / Progmatic Programmer / and many books from Effective XXX series. Should I re-read them again as I have read them a long time ago and forgotten quite a lot, or there are other / better OO design / software architeture books been published since then which I should definitely read? Any ideas, recommendations on how can I get the situation under control and start improving the architecture. The way I see it - I will start improving the architectural / design quality of software components I am working on and then will start helping other team members once I find what is working for me.

    Read the article

  • How can I copy/paste files via RDP in Kubuntu?

    - by Dai
    I recently installed the latest Kubuntu (x64) on my work machine as I am trying to migrate away from Windows. Unfortunately I use RDP very frequently to connect to customer's servers and need to be able to copy files across. I have tried the following packages with no luck: remmina rdesktop xfreerdp My latest attempt to solve this involved connecting one of my folders to the remote server, here is the command I used to launch rdesktop: rdesktop -5 -K -r disk:home=/home/dai -r clipboard:CLIPBOARD -r sound:off -x l -P 192.168.0.2 -u "administrator" -p pass The servers are not all running the same version of Windows, the one I've been trying so far is running Server 2003 R2. Customer servers range from Server 2000 to Server 2008. I've been Googling this like mad but all the solutions I find seem to fail, maybe because almost all the help out there assumes that I'm running Gnome. Sorry if this is a stupid question. Thanks in advance for your help. Edit: Copying and pasting text seems to work just fine, but that's not what I need.

    Read the article

  • How to force VS 2010 to skip "builds" of projects which haven't changed?

    - by Ladislav Mrnka
    Our product's solution has more than 100+ projects (500+ksloc of production code). Most of them are C# projects but we also have few using C++/CLI to bridge communication with native code. Rebuilding the whole solution takes several minutes. That's fine. If I want to rebuilt the solution I expect that it will really take some time. What is not fine is time needed to build solution after full rebuild. Imagine I used full rebuild and know without doing any changes to to the solution I press Build (F6 or Ctrl+Shift+B). Why it takes 35s if there was no change? In output I see that it started "building" of each project - it doesn't perform real build but it does something which consumes significant amount of time. That 35s delay is pain in the ass. Yes I can improve the time by not using build solution but only build project (Shift+F6). If I run build project on particular test project I'm currently working on it will take "only" 8+s. It requires me to run project build on correct project (the test project to ensure dependent tested code is build as well). At least ReSharper test runner correctly recognizes that only this single project must be build and rerunning test usually contains only 8+s compilation. My current coding Kata is: don't touch Ctrl+Shift+B. The test project build will take 8s even if I don't do any changes. The reason why it takes 8s is because it also "builds" dependencies = in my case it "builds" more than 20 projects but I made changes only to unit test or single dependency! I don't want it to touch other projects. Is there a way to simply tell VS to build only projects where some changes were done and projects which are dependent on changed ones (preferably this part as another build option)? I worry you will tell me that it is exactly what VS is doing but in MS way ... I want to improve my TDD experience and reduce the time of compilation (in TDD the compilation can happen twice per minute). To make this even more frustrated I'm working in a team where most of developers used to work on Java projects prior to joining this one. So you can imagine how they are pissed off when they must use VS in contrast to full incremental compilation in Java. I don't require incremental compilation of classes. I expect working incremental compilation of solutions. Especially in product like VS 2010 Ultimate which costs several thousands dollars. I really don't want to get answers like: Make a separate solution Unload projects you don't need etc. I can read those answers here. Those are not acceptable solutions. We're not paying for VS to do such compromises.

    Read the article

  • Server and GUI?

    - by Kiara
    I have installed an Ubuntu Server. It obviously comes with no graphical interface. I tried to install it with: apt-get install xserver-xorg xfonts* gnome gdm Then I got an error message trying to login with Gnome and eventually I uninstalled everything: apt-get remove xserver-xorg xfonts* gnome gdm However, it seems Ubuntu still has some scripts trying to launch Gnome since when starting I get: Starting GNOME Display Manager fail ... Stopping system v run level compatibility And the system stops forever (I know I can use ALT+F1) What should I modify to have this completely uninstalled? I cannit find anything on the rc2.d...

    Read the article

  • We're Subversion Geeks and we want to know the benefits of Mercurial

    - by Matt
    Having read I'm a Subversion geek, why should I consider or not consider Mercurial or Git or any other DVCS. I have a related follow up question. I read that question and read the recommended links and videos and I see the benefits but I don't see the overall mindshift people are talking about. Our team is of 8-10 developers that work on one large code base consisting of 60 projects. We use Subversion and have a main trunk. When a developer starts a new Fogbugz case they create a svn branch, do the work on the branch and when they're done they merge back to the trunk. Occasionally they may stay on the branch for an extended time and merge the trunk to the branch to pick up the changes. When I watched Linus talk about people creating a branch and never doing it again, that's not us at all. We create probably 50-100 branches a week without issue. The biggest challenge is the merging but we've gotten pretty good at that as well. I tend to merge by fogbugz case & checkin rather than the entire root of the branch. We never work remotely and we never make branches off of branches. If you're the only one working in that section of the code base then the merge to the trunk goes smoothly. If someone else had modified the same section of code then the merge can get messy and you might need to do some surgery. Conflicts are conflicts, I don't see how any system could get it right most of the time unless if was smart enough to understand the code. After creating a branch the following checkout of 60k+ files takes some time but that would be an issue with any source control system we'd use. Is there some benefit of any DVCS that we're not seeing that would be of great help to us?

    Read the article

  • How to achieve a loosely coupled REST API but with a defined and well understood contract?

    - by BestPractices
    I am new to REST and am struggling to understand how one would properly design a REST system to both allow for loose coupling but at the same time allow a consumer of a REST API to understand the API. If, in my client code, I issue a GET request for a resource and get back XML, how do I know what to do with that xml? e.g. if it contains <fname>John</fname><lname>Smith</lname> how do I know that these refer to the concept of "first name", "last name"? Is it up to the person writing the REST API to define in documentation some place what each of the XML fields mean? What if producer of the API wants to change the implementation to be <firstname> instead of <fname>? How do they do this and notify their consumers that this change occurred? Or do the consumers just encounter the error and then look at the payload and figure out on their own that it changed? I've read in REST in Practice that using a WADL tool to create a client implementation based on the WADL (and hide the fact that you're doing a distributed call) is an "anti-pattern". But I was planning to do this-- at least then I would have a statically typed API call that, if it changed, I would know at compile time and not at run time. Why is this a bad thing to generate client code based on a WADL? And how do I know what to do with the links that returned in the response of a POST to a REST API? What defines this contract and gives true meaning to what each link will do? Please help! I dont understand how to go from statically-typed or even SOAP/RPC to REST!

    Read the article

  • Discuss: PLs are characterised by which (iso)morphisms are implemented

    - by Yttrill
    I am interested to hear discussion of the proposition summarised in the title. As we know programming language constructions admit a vast number of isomorphisms. In some languages in some places in the translation process some of these isomorphisms are implemented, whilst others require code to be written to implement them. For example, in my language Felix, the isomorphism between a type T and a tuple of one element of type T is implemented, meaning the two types are indistinguishable (identical). Similarly, a tuple of N values of the same type is not merely isomorphic to an array, it is an array: the isomorphism is implemented by the compiler. Many other isomorphisms are not implemented for example there is an isomorphism expressed by the following client code: match v with | ((?x,?y),?z = x,(y,z) // Felix match v with | (x,y), - x,(y,z) (* Ocaml *) As another example, a type constructor C of int in Felix may be used directly as a function, whilst in Ocaml you must write a wrapper: let c x = C x Another isomorphism Felix implements is the elimination of unit values, including those in tuples: Felix can do this because (most) polymorphic values are monomorphised which can be done because it is a whole program analyser, Ocaml, for example, cannot do this easily because it supports separate compilation. For the same reason Felix performs type-class dispatch at compile time whilst Haskell passes around dictionaries. There are some quite surprising issues here. For example an array is just a tuple, and tuples can be indexed at run time using a match and returning a value of a corresponding sum type. Indeed, to be correct the index used is in fact a case of unit sum with N summands, rather than an integer. Yet, in a real implementation, if the tuple is an array the index is replaced by an integer with a range check, and the result type is replaced by the common argument type of all the constructors: two isomorphisms are involved here, but they're implemented partly in the compiler translation and partly at run time.

    Read the article

< Previous Page | 349 350 351 352 353 354 355 356 357 358 359 360  | Next Page >