Language related articles

From Lazarus wiki
Revision as of 02:03, 6 September 2004 by (talk)

Back to Compiler development articles

Things FPC 1.9.x currently doesn't support

Things FPC 1.9.x partially support

  • variants rumouredly have some problems.
  • currency support needs testing (there was some work done recently afaik)
  • Dynarrays, inclding Slice function seems to have problems.
  • Reintroduce; is only skipped not processed (at least the compiler says so)

The heavily variants using package DECAL has been ported recently and worked fine. So I think the variants problems are mostly over, and only atypical conversions miss. (that can be usually fixed easily if you submit a bug with a simple example that works in Delphi and not in FPC). However some RTL support (the wrapper classes) are largely unimplemented

New in 1.9.x (not yet in the docs)

  • {$fputype xxx) to select a certain fpu style or -Cfxxx on command line/cfg file
    • all: soft (not yet implemented)
    • i386: x87, sse, sse2
      • code compiled with sse uses the sse to do calculations with the single data type. This code runs only on Pentium III and above and AthlonXP and above
      • code compiled with sse2 uses the sse unit to do calculations with the single and double data type. This code runs only on PentiumIV and above and Athlon64 and above
    • x86-64: sse64
    • powerpc: standard
    • arm: libgcc, fpa, fpa10, fpa11, vfp
  • procedural property support (property outside a class with normal procedures as getters/setters.
  • reuse keywords imports all units the reused unit imports.
  • reintroduce omits warning about hidden methods
  • Some mac pascal extensions, see Mode MacPas.
  • system.prefetch(const mem); depending on the target processor the compiler generates a prefetch hint on the given memory location. On iA32 this is the sse instruction prefetchnta which is supported by Pentium3/AthlonXP and above. If the intruction set, selected with -Cp (on iA-32, prefetch instructions are generated for -Oppentium3 and above) doesn't support this instruction, no code is generated for prefetch.
  • Interface type selection: The commandline switch -SI and the directive $interfaces (possible values: corba and com) allow you to choose the type of interfaces which has no parent. Interfaces with parent inherit the style from their parent regardless of the currently selected interface type.
    • COM style interfaces work like Delphi interfaces: they inherit implicitly from IUnknown and they are reference counted.
    • CORBA style interfaces are neither ref. counted nor do they inherit from IUnknown.

For new rtl related stuff have a look at New in the 1.9.x rtl (not yet in the docs).

SSE Usage

To determine the supported instruction set, use the is_sse_cpu and is_sse2_cpu of the mmx unit. Because the sse code is usually faster than x87-fpu code, it's recommended to use these switches for heavy floating point calculations. If you want an application which runs on all fpu architectures, a possible solution is to put the code into an include file and include this file twice into your program: once compiled with e.g. -Cfsse2 and once without. Use the e.g. is_sse2_cpu variable to select the appropriate code:

 {$fputype x87}
 procedure calc_x87;
 {$fputype sse2}
 procedure calc_sse2;
   if is_sse2_cpu then

very hot website:

装修 团购 门禁 虚拟主机 fireworks gemstone globe 监控 网址大全 手表 数据恢复 虚拟主机 fireworks 离心机 化学试剂 媒体 二手笔记本 手套 发动机 免费下载电影 免费下载电影 发动机 水泥 塑料制品 机床 免费音乐下载 随身听 防水材料 纺织机械 耐火材料 肺结核 肺炎 风机 家居装饰 啤酒 脱发 钢板 汽车美容 网络电话 监理 减速机 钢板网 钢管 网络设备 洗衣机 显卡 显示器 橡胶 刀具 电视机 锅炉 二手车 滑板 眼镜 办公用品 防盗门 包装机 仪器 保温材料 继电器 变频器 包装机械 办公家具 复印机 货运 高尔夫 视频 内衣 糖尿病 体育彩票 网页制作 性病 CISCO VOD 笔记本 笔记本电脑 成人用品 癌症 翻译 酒店 管理咨询 大屏幕 mp3 礼品 留学 旅游 培训 汽车 手机 鲜花 移民 招聘 装修 租房 MBA 门禁 乙肝 游戏 游戏下载 仪器 数码相机 网站建设 erp flash t mp3下载 爱滋病 办公自动化 出国 短信 对讲机 干燥设备 会计师事务所 货架 交友 聊天 美女 监控 门禁 手表 网址大全 不锈钢 打印机 钢结构 计算机 加盟 建筑材料 旅行社 企业管理 人力资源 网页设计 市场营销 室内设计 手机 饲料 涂料 卫星电视 物流 远程教育 展览 包装机械 包装设计 玻璃钢 瓷砖 地板 电池 电动工具 电话 电缆 电器 电线电缆 电源 雕塑 耳机 二手电脑 二手房 发电机 防盗门 纺织 机票 复印机 钢铁 工程机械 广告设计 继电器 家电 建筑设计 交换机 洁具 开关 乐器 木地板 皮革 啤酒 润滑油 摄像机 摄像头 数码摄像机 塑料机械 体育用品 网络电话 望远镜 文具 五金工具 显示器 相机 香水 仪表 中央空调 珠宝 平面设计 传感器 摩托车 玻璃 电机 工艺品 化工 化妆品 机械 空调 时装 食品 塑料 陶瓷 玩具 五金 印刷 轴承 钢材 汽车配件 橡胶 变压器 订房 订票 水处理 显示屏 礼品 旅游 汽车 服装 电影 手机 钢结构 建筑材料 企业管理 饲料 饲料 涂料 卫星电视 包装设计 玻璃钢 瓷砖 地板 电缆 http://www.66cable.com电缆 电线电缆 电源 雕塑 建筑设计 洁具 开关 皮革 啤酒 塑料机械 变压器 显示屏 数码相机 稳压器 招聘 触摸屏 机柜 显示屏 酒店预定 模具 在线电影 笔记本 虚拟主机 管理咨询 域名注册 肾病 免费电影 肿瘤 显微镜 婚介 股票 交换机 糖尿病 企业邮箱 五金 乙肝 对讲机 化妆品 股骨头坏死 网站推广 美女 UPS 液晶 文具 尿毒症 订房 条码打印机 酒店 电脑 珠宝 家具 投影幕 服饰 网站空间 轮胎 网上购物 包装机械 条码