Patch title: Release 96 bulk changes
Abstract:
File: /pliant/language/data/new.pli
Key:
    Removed line
    Added line
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# version 2 along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

scope "/pliant/language/" "/pliant/install/"
module "/pliant/install/ring2.pli"


meta new e
  if e:size=2 and { var Pointer:Type t :> (e:0 constant Type) map Type ; addressof:t<>null } and (e:1 cast t)
    var Link:Argument adr :> argument local Address
    var Link:Argument object :> argument indirect t adr 0
    e suckup e:0 ; e suckup e:1
    e add (instruction (the_function entry_new Type -> Address) e:0:result adr)
    e add (instruction (the_function 'copy Universal' Universal Universal Type) e:1:result object e:0:result)
    e set_result object access_read+access_write+access_object

export new