mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Faster constructor for record types
TODO: validate number of args passed to record type constructor
This commit is contained in:
parent
26b426c307
commit
734d40a44d
1 changed files with 13 additions and 13 deletions
|
@ -1957,19 +1957,19 @@
|
|||
(,_type_slot_offset ,name ',(car f))))))
|
||||
fields)
|
||||
;; constructor
|
||||
(,_define ,make
|
||||
(,_let ((%make (,(rename 'make-constructor/args)
|
||||
,(symbol->string make) ;(identifier->symbol make))
|
||||
,name)))
|
||||
(,_lambda ,make-fields
|
||||
(%make ,@make-fields))))
|
||||
; Possible alternate version that inlines make-constructor/args
|
||||
;(,_define ,make
|
||||
; (,_lambda ,make-fields
|
||||
; (,(rename 'vector)
|
||||
; ',record-marker
|
||||
; ,name
|
||||
; (,(rename 'vector)
|
||||
; ,@make-fields))))
|
||||
; (,_let ((%make (,(rename 'make-constructor/args)
|
||||
; ,(symbol->string make) ;(identifier->symbol make))
|
||||
; ,name)))
|
||||
; (,_lambda ,make-fields
|
||||
; (%make ,@make-fields))))
|
||||
; Alternate version that inlines make-constructor/args
|
||||
(,_define ,make
|
||||
(,_lambda ,make-fields
|
||||
(,(rename 'vector)
|
||||
',record-marker
|
||||
,name
|
||||
(,(rename 'vector)
|
||||
,@make-fields))))
|
||||
)))))
|
||||
))
|
||||
|
|
Loading…
Add table
Reference in a new issue